/* ===== BASE ===== */
*{box-sizing:border-box;margin:0;padding:0}
body{background:#131313;color:#e5e2e1;font-family:'Inter',sans-serif;overflow-x:hidden}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:#131313}
::-webkit-scrollbar-thumb{background:#2e2e2e;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#444}

/* ===== BACKGROUND ===== */
.grid-overlay{
  background-image:
    linear-gradient(rgba(255,255,255,.03)1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03)1px,transparent 1px);
  background-size:44px 44px
}

/* ===== SURFACE / GLASS ===== */
.glass-card{background:rgba(28,27,27,.65);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.09)}
.emissive-glow{box-shadow:0 0 24px rgba(255,184,0,.2),0 0 60px rgba(255,184,0,.07)}
.input-glow:focus{box-shadow:0 0 0 3px rgba(255,184,0,.15);border-color:rgba(255,184,0,.6);outline:none;transition:all .2s}
.scanline{background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.01)2px,rgba(255,255,255,.01)4px)}
.mask-marquee{-webkit-mask-image:linear-gradient(to right,transparent 0%,black 12%,black 88%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 12%,black 88%,transparent 100%)}

/* ===== MODAL ===== */
.modal-overlay{display:none;position:fixed;inset:0;z-index:100;background:rgba(10,10,10,.88);backdrop-filter:blur(10px);align-items:center;justify-content:center;padding:1rem}
.modal-overlay.open{display:flex;animation:modalFadeIn .25s ease}
@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}

/* ===== MOBILE MENU ===== */
#mobile-menu{display:none}
#mobile-menu.open{display:block;animation:slideDown .25s cubic-bezier(.22,1,.36,1)}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* ===== NAV LINKS ===== */
.nav-link{color:#d5c4ab;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s ease;position:relative}
.nav-link::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background:#ffb800;border-radius:2px;transition:width .25s cubic-bezier(.22,1,.36,1)}
.nav-link:hover::after,.nav-link.active::after{width:100%}
.nav-link:hover,.nav-link.active{color:#ffdca1}
.nav-link.active{font-weight:700}

/* ===== PAGE BANNER ===== */
.page-banner{padding:8.5rem 1.25rem 5rem;text-align:center;position:relative;z-index:10;overflow:hidden;animation:bannerIn .8s cubic-bezier(.22,1,.36,1) forwards}
.page-banner-content{position:relative;z-index:10}
@keyframes bannerIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:640px){.page-banner{padding:6.5rem 1.25rem 3rem}}

/* ===== CARD HOVER ===== */
.card-hover{transition:transform .38s cubic-bezier(.22,1,.36,1),box-shadow .38s ease,border-color .38s ease}
.card-hover:hover{
  transform:translateY(-9px) scale(1.01);
  box-shadow:0 24px 50px rgba(0,0,0,.35),0 0 0 1px rgba(255,184,0,.22),inset 0 1px 0 rgba(255,255,255,.06);
  border-color:rgba(255,184,0,.28)
}

/* ===== ANIMATED GRADIENT TEXT ===== */
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.text-grad{
  background:linear-gradient(135deg,#ffb800 0%,#ffd060 35%,#ff9f00 65%,#ffb800 100%);
  background-size:300% 300%;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:gradShift 6s ease-in-out infinite
}

/* ===== KEYFRAMES ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(36px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes floatSlow{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-16px) rotate(4deg)}}
@keyframes glowPulse{0%,100%{opacity:.35}50%{opacity:.9}}
@keyframes blip{0%,100%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.7)}}
@keyframes spinSlow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.84) translateY(28px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes orbDrift1{0%,100%{transform:translate(0,0) scale(1)}30%{transform:translate(50px,-35px) scale(1.08)}65%{transform:translate(-30px,25px) scale(.92)}}
@keyframes orbDrift2{0%,100%{transform:translate(0,0) scale(1)}30%{transform:translate(-40px,30px) scale(1.05)}65%{transform:translate(35px,-25px) scale(.95)}}
@keyframes orbDrift3{0%,100%{transform:translate(0,0)}40%{transform:translate(25px,40px)}75%{transform:translate(-35px,-15px)}}
@keyframes borderPulse{0%,100%{box-shadow:0 0 0 1px rgba(255,184,0,.12),0 8px 32px rgba(255,184,0,.06)}50%{box-shadow:0 0 0 1px rgba(255,184,0,.32),0 8px 40px rgba(255,184,0,.16)}}
@keyframes badgePing{0%,100%{box-shadow:0 0 0 0 rgba(255,184,0,.5)}70%{box-shadow:0 0 0 10px rgba(255,184,0,0)}}
@keyframes lineGrow{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes numberPop{from{opacity:0;transform:translateY(18px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(0)}45%,55%{opacity:1;transform:scale(1)}}
@keyframes heroOrb{0%,100%{opacity:.07}50%{opacity:.14}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* ===== ANIMATION CLASSES ===== */
.anim-fadeup{animation:fadeInUp .85s cubic-bezier(.22,1,.36,1) forwards}
.anim-float{animation:float 3.5s ease-in-out infinite}
.anim-float-slow{animation:floatSlow 6s ease-in-out infinite}
.anim-glow{animation:glowPulse 5s ease-in-out infinite}
.anim-spin{animation:spinSlow 12s linear infinite}
.anim-marquee{animation:marquee 34s linear infinite;width:max-content}
.anim-scalein{animation:scaleIn .5s cubic-bezier(.34,1.56,.64,1) forwards}
.anim-orb1{animation:orbDrift1 16s ease-in-out infinite}
.anim-orb2{animation:orbDrift2 20s ease-in-out infinite}
.anim-orb3{animation:orbDrift3 24s ease-in-out infinite}
.anim-border-pulse{animation:borderPulse 3.5s ease-in-out infinite}
.anim-badge-ping{animation:badgePing 2.8s ease-in-out infinite}
.blip{animation:blip 4s ease-in-out infinite}
.opacity-0-init{opacity:0}

/* ===== ANIMATION DELAYS ===== */
.delay-1{animation-delay:.15s}
.delay-2{animation-delay:.32s}
.delay-3{animation-delay:.5s}
.delay-4{animation-delay:.68s}
.delay-5{animation-delay:1.6s}
.delay-6{animation-delay:2s}

/* ===== SCROLL REVEALS ===== */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}
.reveal.revealed{opacity:1;transform:translateY(0)}

.reveal-left{opacity:0;transform:translateX(-60px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.reveal-left.revealed{opacity:1;transform:translateX(0)}

.reveal-right{opacity:0;transform:translateX(60px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.reveal-right.revealed{opacity:1;transform:translateX(0)}

.reveal-scale{opacity:0;transform:scale(.93) translateY(20px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.reveal-scale.revealed{opacity:1;transform:scale(1) translateY(0)}

/* ===== STAGGER GRID — data-stagger attribute on wrapper ===== */
[data-stagger]>*{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)
}
[data-stagger].stagger-go>*:nth-child(1){opacity:1;transform:none;transition-delay:.04s}
[data-stagger].stagger-go>*:nth-child(2){opacity:1;transform:none;transition-delay:.14s}
[data-stagger].stagger-go>*:nth-child(3){opacity:1;transform:none;transition-delay:.24s}
[data-stagger].stagger-go>*:nth-child(4){opacity:1;transform:none;transition-delay:.34s}
[data-stagger].stagger-go>*:nth-child(5){opacity:1;transform:none;transition-delay:.44s}
[data-stagger].stagger-go>*:nth-child(6){opacity:1;transform:none;transition-delay:.54s}
[data-stagger].stagger-go>*:nth-child(7){opacity:1;transform:none;transition-delay:.64s}
[data-stagger].stagger-go>*:nth-child(8){opacity:1;transform:none;transition-delay:.74s}
[data-stagger].stagger-go>*:nth-child(9){opacity:1;transform:none;transition-delay:.84s}
