*{margin:0;padding:0;box-sizing:border-box}

:root{
  --primary-pink:#FFB6D9;
  --primary-purple:#B4A7D6;
  --primary-blue:#A7C7E7;
  --bg-gradient-start:#FFE5F1;
  --bg-gradient-end:#E8DFF5;
  --text-primary:#2D2D2D;
  --text-secondary:#6B6B6B;
  --text-light:#FFFFFF;
  --accent-color:#FF69B4;
  --success-color:#7FDBCA;
  --error-color:#FF6B9D;
  --warning-color:#FFB74D;
  --card-bg:rgba(255,255,255,0.7);
  --card-border:rgba(255,255,255,0.3);
  --shadow-light:0 4px 20px rgba(255,182,217,0.15);
  --shadow-medium:0 8px 30px rgba(255,182,217,0.25);
  --shadow-heavy:0 12px 40px rgba(255,182,217,0.35);
  --nav-height:72px
}

html{scroll-behavior:smooth;font-size:16px}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:linear-gradient(135deg,var(--bg-gradient-start) 0%,var(--bg-gradient-end) 100%);
  background-attachment:fixed;
  color:var(--text-primary);
  line-height:1.6;
  overflow-x:hidden
}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

h1,h2,h3,h4,h5,h6{
  font-family:'Space Grotesk','Inter',sans-serif;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-0.02em
}
.section-header{
  margin-bottom:4rem;
  width:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  overflow:visible
}
.section-title{
  font-size:clamp(2.5rem,5vw,4rem);
  margin-bottom:1rem;
  text-align:center;
  background:linear-gradient(135deg,var(--accent-color),var(--primary-purple));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  overflow:visible;
  line-height:1.15;
  padding-bottom:.15em;
  display:inline-block
}
.section-subtitle{
  font-size:clamp(1rem,2vw,1.25rem);
  color:var(--text-secondary);
  text-align:center;
  margin-bottom:3rem
}

.navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:1.5rem 0;
  backdrop-filter:blur(20px);
  background:rgba(255,255,255,0.8);
  border-bottom:1px solid var(--card-border);
  transition:all .3s ease
}
.navbar.scrolled{padding:1rem 0;box-shadow:var(--shadow-light)}
.nav-container{max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:1rem;cursor:pointer;transition:opacity .3s ease}
.nav-logo:hover{opacity:.8}
.logo-img{width:50px;height:50px;border-radius:12px;object-fit:cover;box-shadow:var(--shadow-light)}
.logo-text{font-family:'Space Grotesk',sans-serif;font-size:1.2rem;font-weight:700;letter-spacing:.05em;color:var(--text-primary)}
.nav-menu{display:flex;gap:2.5rem;align-items:center}
.nav-link{
  font-size:.95rem;font-weight:600;color:var(--text-primary);text-decoration:none;position:relative;transition:color .3s ease;letter-spacing:.05em
}
.nav-link::after{
  content:'';position:absolute;bottom:-5px;left:0;width:0;height:2px;
  background:linear-gradient(90deg,var(--accent-color),var(--primary-purple));
  transition:width .3s ease
}
.nav-link:hover{color:var(--accent-color)}
.nav-link:hover::after{width:100%}
.connect-btn{
  padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;color:var(--text-light);
  background:linear-gradient(135deg,var(--accent-color),var(--primary-purple));
  border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-light);letter-spacing:.05em
}
.connect-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-medium)}
.connect-btn.connected{background:linear-gradient(135deg,var(--success-color),var(--primary-blue))}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;width:30px;height:30px;cursor:pointer}
.hamburger span{width:100%;height:3px;background:var(--text-primary);border-radius:2px;transition:all .3s ease}
.hamburger.active span:first-child{transform:rotate(45deg) translateY(8px)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:last-child{transform:rotate(-45deg) translateY(-8px)}

.hero{min-height:100vh;display:flex;align-items:center;padding:8rem 0 4rem;position:relative;overflow:hidden}
.hero::before{
  content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;
  background:radial-gradient(circle,rgba(255,182,217,.15) 0%,transparent 70%);
  animation:float 20s ease-in-out infinite
}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-30px)}}
.hero-content{position:relative;z-index:2;text-align:center;max-width:900px;margin:0 auto}
.hero-badge{
  display:inline-block;padding:.5rem 1.5rem;background:rgba(255,255,255,.8);
  border:2px solid var(--card-border);border-radius:50px;font-weight:700;
  letter-spacing:.15em;color:var(--accent-color);margin-bottom:2rem;font-size:.9rem
}
.hero-title{font-size:clamp(3rem,8vw,6rem);margin-bottom:1.5rem;line-height:1.1}
.hero-subtitle{font-size:clamp(1.1rem,2.5vw,1.5rem);color:var(--text-secondary);margin-bottom:3rem;line-height:1.6}
.hero-stats{display:flex;justify-content:center;align-items:center;gap:3rem;margin-bottom:3rem}
.stat-item{text-align:center}
.stat-value{font-size:clamp(2rem,4vw,3rem);font-weight:800;color:var(--accent-color);font-family:'Space Grotesk',sans-serif}
.stat-label{font-size:.9rem;color:var(--text-secondary);letter-spacing:.1em;margin-top:.5rem}
.stat-divider{width:2px;height:60px;background:var(--card-border)}
.hero-actions{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}
.btn{
  padding:1rem 2.5rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;
  cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block;
  letter-spacing:.05em;box-shadow:var(--shadow-light)
}
.btn-primary{color:var(--text-light);background:linear-gradient(135deg,var(--accent-color),var(--primary-purple))}
.btn-primary:hover{transform:translateY(-3px);box-shadow:var(--shadow-medium)}
.btn-secondary{
  color:var(--accent-color);background:rgba(255,255,255,.9);
  border:2px solid var(--accent-color)
}
.btn-secondary:hover{background:var(--accent-color);color:var(--text-light);transform:translateY(-3px)}

.mint-section,.nft-section,.schedule-section,.faq-section{padding:5rem 0;position:relative}
.mint-section::before,.schedule-section::before{
  content:'';position:absolute;top:0;left:-30%;width:400px;height:400px;
  background:radial-gradient(circle,rgba(180,167,214,.1) 0%,transparent 70%);opacity:.5
}
.reveal-box{
  max-width:400px;margin:0 auto 3rem;padding:2rem;
  background:var(--card-bg);border:2px solid var(--card-border);
  border-radius:24px;backdrop-filter:blur(10px);box-shadow:var(--shadow-medium)
}
.reveal-gif{width:100%;height:auto;border-radius:16px}

.mint-card{
  max-width:600px;margin:0 auto;padding:3rem;background:var(--card-bg);
  border:2px solid var(--card-border);border-radius:24px;
  backdrop-filter:blur(10px);box-shadow:var(--shadow-medium)
}
.mint-info{margin-bottom:2rem}
.info-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:1rem 0;border-bottom:1px solid var(--card-border)
}
.info-row:last-child{border-bottom:none}
.info-label{font-weight:600;color:var(--text-secondary)}
.info-value{font-weight:700;color:var(--text-primary);font-size:1.1rem}
.total-cost-row{
  background:linear-gradient(135deg,rgba(255,182,217,0.1),rgba(180,167,214,0.1));
  margin:1rem -1rem;
  padding:1rem!important;
  border-radius:12px;
  border:none!important;
}
.total-cost-row .info-value{
  color:var(--accent-color);
  font-size:1.3rem;
}
.mint-controls{display:flex;flex-direction:column;gap:2rem;margin-bottom:2rem}
.amount-control{
  display:flex;align-items:center;justify-content:center;gap:1.5rem;flex-wrap:wrap;
}
.amount-btn{
  width:50px;height:50px;font-size:1.5rem;font-weight:700;color:var(--text-primary);
  background:rgba(255,255,255,.5);border:2px solid var(--card-border);
  border-radius:12px;cursor:pointer;transition:all .3s ease
}
.amount-btn:hover{background:var(--accent-color);color:var(--text-light);transform:scale(1.05)}
.amount-btn.max-btn{
  width:auto;
  padding:0 1.5rem;
  font-size:1rem;
  background:linear-gradient(135deg,var(--primary-purple),var(--primary-blue));
  color:var(--text-light);
  border:none;
}
.amount-btn.max-btn:hover{
  transform:scale(1.05);
  box-shadow:var(--shadow-medium);
}
.amount-input{
  width:100px;height:55px;text-align:center;font-size:1.8rem;font-weight:700;color:var(--text-primary);
  background:rgba(255,255,255,.5);border:2px solid var(--card-border);border-radius:14px;outline:none
}
.mint-notice{padding:1.5rem;background:rgba(255,182,217,.1);border:1px solid var(--card-border);border-radius:14px;text-align:center}
.mint-notice p{font-size:.9rem;color:var(--text-secondary);margin:.25rem 0}

.nft-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;margin-top:3rem}
.nft-card{
  background:var(--card-bg);border:2px solid var(--card-border);border-radius:20px;overflow:hidden;transition:all .3s ease;
  backdrop-filter:blur(10px);box-shadow:var(--shadow-light)
}
.nft-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-heavy)}
.nft-card img{width:100%;height:280px;object-fit:cover}
.nft-card h3{padding:1.5rem;font-size:1.2rem;color:var(--text-primary);text-align:center}

.empty-state{grid-column:1/-1;text-align:center;padding:5rem 2rem}
.empty-icon{font-size:5rem;margin-bottom:1.5rem;opacity:.7;display:flex;justify-content:center;align-items:center}
.empty-character{
  width:200px;height:200px;border-radius:50%;object-fit:cover;border:4px solid var(--card-border);
  box-shadow:var(--shadow-medium);animation:bob 3s ease-in-out infinite
}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
.empty-state p{font-size:1.2rem;color:var(--text-secondary);margin:.5rem 0}
.empty-hint{font-size:1rem!important;opacity:.7}

.timeline{max-width:800px;margin:0 auto;position:relative}
.timeline::before{content:'';position:absolute;left:20px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--primary-pink),var(--primary-purple))}
.timeline-item{position:relative;padding-left:60px;margin-bottom:3rem}
.timeline-marker{
  position:absolute;left:10px;top:0;width:22px;height:22px;border-radius:50%;
  background:var(--card-bg);border:3px solid var(--card-border);transition:all .3s ease
}
.timeline-marker.completed{background:linear-gradient(135deg,var(--success-color),var(--primary-blue));border-color:var(--success-color)}
.timeline-marker.active{
  background:linear-gradient(135deg,var(--accent-color),var(--primary-purple));
  border-color:var(--accent-color);box-shadow:0 0 0 4px rgba(255,105,180,.2)
}
.timeline-content{
  padding:1.5rem;background:var(--card-bg);border:2px solid var(--card-border);
  border-radius:16px;backdrop-filter:blur(10px);box-shadow:var(--shadow-light)
}
.timeline-content h3{font-size:1.4rem;margin-bottom:.75rem;color:var(--text-primary)}
.timeline-content p{color:var(--text-secondary);line-height:1.6}

.faq-list{max-width:800px;margin:0 auto}
.faq-item{
  margin-bottom:1.5rem;background:var(--card-bg);border:2px solid var(--card-border);
  border-radius:16px;overflow:hidden;backdrop-filter:blur(10px);box-shadow:var(--shadow-light);transition:all .3s ease
}
.faq-item:hover{box-shadow:var(--shadow-medium)}
.faq-question{
  width:100%;padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;
  background:none;border:none;cursor:pointer;font-size:1.1rem;font-weight:600;color:var(--text-primary);text-align:left;transition:all .3s ease
}
.faq-question:hover{color:var(--accent-color)}
.faq-icon{font-size:1.5rem;font-weight:300;color:var(--accent-color);transition:transform .3s ease}
.faq-item.active .faq-icon{transform:rotate(45deg)}
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease
}
.faq-item.active .faq-answer{
  max-height:600px; /* 높이 증가 */
}
.faq-content-scroll{
  max-height:400px; /* 스크롤 영역 최대 높이 */
  overflow-y:auto; /* 세로 스크롤 활성화 */
  padding:0 2rem 1.5rem;
  scrollbar-width:thin;
  scrollbar-color:var(--accent-color) var(--card-border);
}
.faq-content-scroll::-webkit-scrollbar{
  width:8px;
}
.faq-content-scroll::-webkit-scrollbar-track{
  background:var(--card-border);
  border-radius:4px;
}
.faq-content-scroll::-webkit-scrollbar-thumb{
  background:var(--accent-color);
  border-radius:4px;
}
.faq-content-scroll::-webkit-scrollbar-thumb:hover{
  background:var(--primary-purple);
}
.faq-content-scroll p{color:var(--text-secondary);line-height:1.8}
.faq-content-scroll a{color:var(--accent-color);text-decoration:none;font-weight:600;transition:all .3s ease;border-bottom:1px solid transparent}
.faq-content-scroll a:hover{border-bottom-color:var(--accent-color);opacity:.8}
.faq-content-scroll ul,.faq-content-scroll ol{color:var(--text-secondary);line-height:1.8}
.faq-content-scroll li{margin-bottom:.5rem}
.faq-content-scroll strong{color:var(--text-primary);font-weight:600}

/* 지갑 선택 모달 스타일 */
.wallet-modal{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;
  align-items:center;justify-content:center
}
.wallet-modal.show{display:flex}
.wallet-modal-overlay{
  position:absolute;top:0;left:0;right:0;bottom:0;
  background:rgba(0,0,0,.6);backdrop-filter:blur(5px)
}
.wallet-modal-content{
  position:relative;z-index:2001;background:var(--card-bg);
  border:2px solid var(--card-border);border-radius:24px;
  padding:2rem;max-width:450px;width:90%;max-height:80vh;
  overflow-y:auto;box-shadow:var(--shadow-heavy);
  backdrop-filter:blur(20px);animation:modalSlideIn .3s ease
}
.wallet-modal-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--card-border)
}
.wallet-modal-header h3{
  font-size:1.5rem;color:var(--text-primary);
  background:linear-gradient(135deg,var(--accent-color),var(--primary-purple));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.wallet-modal-close{
  width:32px;height:32px;border-radius:50%;border:none;
  background:rgba(255,255,255,.5);color:var(--text-primary);
  font-size:1.5rem;cursor:pointer;transition:all .3s ease;
  display:flex;align-items:center;justify-content:center
}
.wallet-modal-close:hover{
  background:var(--error-color);color:var(--text-light);transform:rotate(90deg)
}
.wallet-modal-body{display:flex;flex-direction:column;gap:1rem}
.wallet-option{
  display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;
  background:rgba(255,255,255,.5);border:2px solid var(--card-border);
  border-radius:14px;cursor:pointer;transition:all .3s ease
}
.wallet-option:hover{
  background:linear-gradient(135deg,rgba(255,182,217,.2),rgba(180,167,214,.2));
  border-color:var(--accent-color);transform:translateX(5px)
}
.wallet-icon{font-size:1.8rem}
.wallet-name{font-size:1.1rem;font-weight:600;color:var(--text-primary)}

.footer{
  padding:4rem 2rem 2rem;background:rgba(255,255,255,.5);border-top:2px solid var(--card-border);backdrop-filter:blur(20px)
}
.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:3rem;margin-bottom:3rem}
.footer-logo{display:flex;flex-direction:column;gap:1rem;transition:opacity .3s ease;cursor:pointer}
.footer-logo:hover{opacity:.8}
.footer-logo-img{width:60px;height:60px;border-radius:12px;box-shadow:var(--shadow-light)}
.footer-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);letter-spacing:.05em}
.footer-links,.footer-social{display:flex;flex-direction:column;gap:1rem}
.footer-links h4,.footer-social h4{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}
.footer-links a{color:var(--text-secondary);text-decoration:none;transition:color .3s ease}
.footer-links a:hover{color:var(--accent-color)}
.social-links{display:flex;gap:1rem}
.social-link{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-primary);
  background:var(--card-bg);border:2px solid var(--card-border);border-radius:10px;transition:all .3s ease;backdrop-filter:blur(10px)
}
.social-link:hover{background:var(--accent-color);color:var(--text-light);transform:translateY(-3px)}
.footer-bottom{text-align:center;padding-top:2rem;border-top:1px solid var(--card-border);color:var(--text-secondary)}

.modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1500;align-items:center;justify-content:center}
.modal.show{display:flex}
.modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);backdrop-filter:blur(5px)}
.modal-content{
  position:relative;z-index:1501;background:var(--card-bg);backdrop-filter:blur(20px);
  border:2px solid var(--card-border);border-radius:24px;padding:3rem;max-width:500px;width:90%;
  text-align:center;animation:modalSlideIn .3s ease
}
@keyframes modalSlideIn{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}
.modal-icon{font-size:4rem;margin-bottom:1.5rem}
.modal-content h3{font-size:1.8rem;margin-bottom:1rem;color:var(--text-primary)}
.modal-content p{font-size:1.1rem;color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}

.loading-overlay{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:9000;background:rgba(255,255,255,.9);
  backdrop-filter:blur(10px);align-items:center;justify-content:center;flex-direction:column
}
.loading-overlay.show{display:flex}
.loading-spinner{width:60px;height:60px;border:4px solid var(--card-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-overlay p{margin-top:1.5rem;font-size:1.2rem;font-weight:600;color:var(--text-primary)}

@media (max-width:968px){
  .nav-menu{
    position:fixed;top:80px;left:-100%;width:100%;height:calc(100vh - 80px);
    background:rgba(255,255,255,.95);backdrop-filter:blur(20px);flex-direction:column;padding:3rem 2rem;transition:left .3s ease;border-right:2px solid var(--card-border)
  }
  .nav-menu.active{left:0}
  .hamburger{display:flex}
  .connect-btn{padding:.6rem 1.2rem;font-size:.85rem}
  .hero-stats{flex-direction:column;gap:1.5rem}
  .stat-divider{width:100px;height:2px}
  .hero-actions{flex-direction:column}
  .btn{width:100%}
  .footer-content{grid-template-columns:1fr;text-align:center}
  .footer-logo{align-items:center}
  .social-links{justify-content:center}
  .timeline::before{left:10px}
  .timeline-item{padding-left:50px}
  .timeline-marker{left:0}
  .section-title{line-height:1.18}
  .section-header{padding-top:6px}
}

@media (max-width:640px){
  .logo-text{display:none}
  .mint-card{padding:2rem 1.5rem}
  .amount-control{gap:1rem}
  .amount-btn{width:45px;height:45px}
  .amount-btn.max-btn{width:auto;padding:0 1rem;font-size:.9rem}
  .amount-input{width:80px;height:50px;font-size:1.5rem}
  .nft-grid{grid-template-columns:1fr;gap:1.5rem}
  .reveal-box{padding:1.5rem;margin-bottom:2rem}
  .reveal-gif{max-width:300px}
  .empty-character{width:150px;height:150px}
  .wallet-modal-content{padding:1.5rem}
  .wallet-option{padding:.75rem 1rem}
  .wallet-icon{font-size:1.5rem}
  .wallet-name{font-size:1rem}
  .total-cost-row .info-value{font-size:1.1rem}
}

.fade-in{animation:fadeIn .6s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.pulse{animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}

/* === App Loading Overlay === */
#appLoadingOverlay{
  position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;
  background:linear-gradient(135deg,var(--bg-gradient-start) 0%,var(--bg-gradient-end) 100%);
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  opacity:1;transition:opacity .5s ease
}
#appLoadingOverlay.fade-out{opacity:0;pointer-events:none}
.app-loading-content{text-align:center;animation:fadeInUp .8s ease}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.app-loading-logo{width:120px;height:120px;border-radius:24px;box-shadow:var(--shadow-heavy);margin-bottom:2rem;animation:pulse 2s ease-in-out infinite}
.app-loading-title{font-size:2rem;font-weight:800;margin-bottom:1rem;color:var(--text-primary);font-family:'Space Grotesk',sans-serif}
.app-loading-spinner{width:50px;height:50px;margin:2rem auto;border:3px solid var(--card-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin .8s linear infinite}
/* Center the "Load My NFTs" button */
#view-nfts .section-header + #loadNftsBtn,
#loadNftsBtn {
  display: block;
  margin: 0 auto;
}
