.h1-glow{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);width:min(760px,88vw);height:220px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(233,192,106,.22) 0%,rgba(95,208,224,.10) 30%,transparent 66%);filter:blur(6px);animation:h1Breath 6.5s ease-in-out infinite}
@keyframes h1Breath{0%,100%{opacity:.75;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
.hero .tag,h1,.phase-line,.opentime,.hero-actions,.hero-tip{position:relative;z-index:1}
h1{opacity:0;animation:h1In 1.1s cubic-bezier(.2,.75,.2,1) .08s forwards}
@keyframes h1In{from{opacity:0;transform:translateY(22px) scale(.98);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
.hero .tag{opacity:0;animation:fadeUp .8s ease .02s forwards}
.phase-line{opacity:0;animation:fadeUp .8s ease .16s forwards}
.opentime{opacity:0;animation:fadeUp .8s ease .3s forwards}
.hero-actions{opacity:0;animation:fadeUp .8s ease .4s forwards}
.hero-tip{opacity:0;animation:fadeUp .8s ease .55s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.opentime::after{content:"";position:absolute;inset:-6px;border-radius:999px;pointer-events:none;border:1px solid rgba(233,192,106,.5);opacity:.55;animation:otPulse 2.6s ease-out infinite}
@keyframes otPulse{0%{transform:scale(.96);opacity:.7}100%{transform:scale(1.12);opacity:0}}
.hero-actions .bigbtn{opacity:0;animation:fadeUp .8s cubic-bezier(.2,.75,.2,1) forwards}
.hero-actions .bigbtn:nth-child(1){animation-delay:.42s}
.hero-actions .bigbtn:nth-child(2){animation-delay:.5s}
.hero-actions .bigbtn:nth-child(3){animation-delay:.58s}
.bigbtn-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);width:20px;height:20px;pointer-events:none;transform:translate(-50%,-50%) scale(0);animation:ripple .6s ease-out forwards}
@keyframes ripple{to{transform:translate(-50%,-50%) scale(26);opacity:0}}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.75,.2,1),transform .7s cubic-bezier(.2,.75,.2,1)}
.reveal.in{opacity:1;transform:none}
.perk{animation:perkIn .5s cubic-bezier(.2,.75,.2,1) both}
@keyframes perkIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@keyframes perkShine{to{left:120%}}
@keyframes kbSweep{0%,100%{transform:translateX(-45%)}50%{transform:translateX(45%)}}
@keyframes jmIn{from{opacity:0}to{opacity:1}}
@keyframes jmOut{from{opacity:1}to{opacity:0}}
@keyframes jcIn{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes qqShake{0%,100%{transform:translateX(0)}18%{transform:translateX(-5px)}36%{transform:translateX(5px)}54%{transform:translateX(-3px)}72%{transform:translateX(3px)}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.h1-glow,h1,.hero .tag,.phase-line,.opentime,.hero-actions,.hero-tip,.bigbtn,.perk{animation:none!important;opacity:1!important}.opentime::after,.killbang::before{animation:none}.perk::after{display:none}}
