/* ─── ANIMATIONS ───────────────────────────────────────── */
@keyframes heroFadeUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes heroFadeIn{from{opacity:0}to{opacity:1}}
@keyframes calSlide{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes photoRise{from{opacity:0;transform:translateY(44px)}to{opacity:1;transform:none}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes heroPulse{0%,100%{box-shadow:0 0 32px rgba(219,255,0,.2)}50%{box-shadow:0 0 56px rgba(219,255,0,.42)}}
@keyframes shimmer{0%{left:-80%}100%{left:120%}}
@keyframes lineExpand{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
@keyframes invGlow{0%,100%{box-shadow:0 0 20px rgba(0,0,0,.1)}50%{box-shadow:0 0 40px rgba(0,0,0,.28)}}
@keyframes dotPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.5}}
@keyframes photoFloatLight{0%,100%{transform:translateY(0px)}50%{transform:translateY(-8px)}}
@keyframes glowBreathe{0%,100%{opacity:.6;filter:blur(48px)}50%{opacity:.75;filter:blur(52px)}}
@keyframes imageGlow{0%,100%{box-shadow:0 0 32px rgba(219,255,0,.15)}50%{box-shadow:0 0 48px rgba(219,255,0,.25)}}
@keyframes cardFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes cardGlowHover{0%,100%{box-shadow:0 10px 32px rgba(219,255,0,.1),0 0 24px rgba(0,0,0,.3)}50%{box-shadow:0 10px 40px rgba(219,255,0,.18),0 0 24px rgba(0,0,0,.4)}}

/* Hero staggered load */
.hero-badge{animation:heroFadeUp .7s cubic-bezier(.22,1,.36,1) .05s both}
.hero-heading{animation:heroFadeUp .85s cubic-bezier(.22,1,.36,1) .15s both}
.hero-locations{animation:heroFadeUp .75s cubic-bezier(.22,1,.36,1) .25s both}
.hero-stat{animation:heroFadeUp .7s cubic-bezier(.22,1,.36,1) .35s both}
.hero-desc{animation:heroFadeUp .7s cubic-bezier(.22,1,.36,1) .42s both}
.hero-actions{animation:heroFadeUp .65s cubic-bezier(.22,1,.36,1) .52s both}
.hero-cta{animation:heroPulse 3s ease-in-out 2s infinite}
.hero-cal{animation:calSlide .7s cubic-bezier(.22,1,.36,1) .3s both}
.hero-glow{animation:heroFadeIn 1.2s ease .2s both,glowBreathe 3.5s ease-in-out 1.5s infinite}
.hero-photo{animation:photoRise .8s cubic-bezier(.22,1,.36,1) .4s both}

/* Brands section staggered load */
.brands-grid .brand-card:nth-child(1){animation:cardFadeUp .6s cubic-bezier(.22,1,.36,1) .05s both}
.brands-grid .brand-card:nth-child(2){animation:cardFadeUp .6s cubic-bezier(.22,1,.36,1) .15s both}
.brands-grid .brand-card:nth-child(3){animation:cardFadeUp .6s cubic-bezier(.22,1,.36,1) .25s both}
.brands-grid .brand-card:nth-child(4){animation:cardFadeUp .6s cubic-bezier(.22,1,.36,1) .35s both}
.brands-title{animation:heroFadeUp .7s cubic-bezier(.22,1,.36,1) .08s both}

/* Scroll reveal */
.rv{opacity:0;transform:translateY(32px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.rv-l{opacity:0;transform:translateX(-32px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.rv-r{opacity:0;transform:translateX(32px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.rv.in,.rv-l.in,.rv-r.in{opacity:1;transform:none}

/* Stagger */
.steps .step:nth-child(1){transition-delay:0s}
.steps .step:nth-child(2){transition-delay:.12s}
.steps .step:nth-child(3){transition-delay:.24s}

.step{position:relative;overflow:hidden}
.step::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--y);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.22,1,.36,1);opacity:.7}
.step:hover::before{transform:scaleX(1)}

.wcard{transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,background .2s,border-color .2s}
.wfree:hover{transform:translateY(-7px);box-shadow: 0 28px 64px rgba(219,255,0,.08);}
.wreg:hover{transform:translateY(-7px);box-shadow:0 28px 52px rgba(0,0,0,.32);background:#1e1e1e;border-color:rgba(255,255,255,.18)}

.ways-grid .wcard:nth-child(1){transition-delay:0s}
.ways-grid .wcard:nth-child(2){transition-delay:.13s}

.pstat{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease,background .25s}
.proof-stats.vis .pstat{opacity:1;transform:none}
.proof-stats.vis .pstat:nth-child(1){transition-delay:0s}
.proof-stats.vis .pstat:nth-child(2){transition-delay:.12s}
.proof-stats.vis .pstat:nth-child(3){transition-delay:.24s}
.pstat:hover{background:#161616}
.pstat:hover .pstat-num{color:var(--y);transition:color .3s}

.ppt{transition:background .25s,border-color .25s,transform .25s}
.proof-pts .ppt:nth-child(1){transition-delay:.05s}
.proof-pts .ppt:nth-child(2){transition-delay:.17s}
.proof-pts .ppt:nth-child(3){transition-delay:.29s}
.ppt:hover{background:rgba(219,255,0,.05);border-color:rgba(219,255,0,.18);transform:translateY(-3px)}

.stag{transition:border-color .2s,color .2s,background .2s,transform .2s}
.stag:hover{transform:translateY(-2px);background:rgba(219,255,0,.07);border-color:rgba(219,255,0,.3);color:var(--ink)}

.fc{transition:transform .25s ease,box-shadow .25s ease}
.fc:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.07)}

.faq-item{transition:background .2s}
.faq-item:hover{background:rgba(0,0,0,.02)}
.faq-item.open .faq-btn{padding-left:4px;transition:padding-left .2s ease}

.nav-links a{position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-3px;left:0;right:0;height:1.5px;background:var(--y);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-links a:hover::after{transform:scaleX(1)}

.nav-cta{position:relative;overflow:hidden}
.nav-cta::after{content:'';position:absolute;top:0;left:-80%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);animation:shimmer 3.5s ease-in-out 2s infinite;pointer-events:none}

.btn-dark{animation:invGlow 3s ease-in-out infinite;transition:transform .2s,box-shadow .2s}
.btn-dark:hover{transform:translateY(-3px);animation:none;box-shadow:0 16px 40px rgba(0,0,0,.28)}

.about-quote{border-left:3px solid transparent;transition:border-color .7s ease .4s}
.rv-r.in .about-quote{border-color:var(--y)}

.bdot{animation:dotPulse 2s ease-in-out infinite}

.mq:hover .mq-track{animation-play-state:paused}
.mq-sep{display:inline-block;transition:transform .3s}
.mq-item:hover .mq-sep{transform:scale(1.5)}

#progress-bar{position:fixed;top:0;left:0;height:2px;z-index:200;background:var(--y);width:0%;transition:width .08s linear;pointer-events:none}
