/* Image-only entrance, independent from the scroll transform. */
.hero{background:#010409}
.hero.reveal-ready .hero-image{animation:background-awakening 3.6s cubic-bezier(.19,1,.22,1) both;transform-origin:50% 40%}
.reveal-haze{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.reveal-haze:before{content:'';position:absolute;inset:-20%;background:radial-gradient(ellipse at 48% 42%,transparent 10%,#01040955 50%,#010409b8 80%);opacity:0;animation:veil-dissolve 4s ease-out both}
.reveal-haze:after{content:'';position:absolute;left:-30%;top:-20%;width:160%;height:150%;background:radial-gradient(ellipse at 40% 50%,#0066ff12,transparent 40%),radial-gradient(ellipse at 65% 40%,#61a7ff0a,transparent 35%);filter:blur(22px);opacity:0;animation:haze-drift 15s 2s ease-in-out infinite;animation-play-state:paused}
.hero.motion-active .reveal-haze:after{animation-play-state:running}
.reveal-wave{position:absolute;pointer-events:none;z-index:1;left:50%;top:42%;width:50px;height:50px;border:1px solid #3094ff60;border-radius:50%;box-shadow:0 0 35px #087dff50,inset 0 0 25px #087dff20;opacity:0;animation:light-expand 3s .2s cubic-bezier(.12,.7,.2,1) both}
@keyframes background-awakening{0%{clip-path:ellipse(3% 5% at 50% 42%);filter:brightness(.12) blur(14px);scale:1.1;opacity:.15}24%{clip-path:ellipse(24% 32% at 50% 42%);filter:brightness(.6) blur(5px);opacity:1}65%{clip-path:ellipse(70% 90% at 50% 42%);filter:brightness(.95) blur(.5px)}100%{clip-path:ellipse(110% 140% at 50% 42%);filter:brightness(1) blur(0);scale:1;opacity:1}}
@keyframes veil-dissolve{0%{opacity:1;transform:scale(.9)}100%{opacity:0;transform:scale(1.3)}}
@keyframes light-expand{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}15%{opacity:.7}65%{opacity:.15}100%{opacity:0;transform:translate(-50%,-50%) scale(32)}}
@keyframes haze-drift{0%,100%{opacity:.3;transform:translate(-3%,2%) rotate(-3deg)}50%{opacity:.7;transform:translate(4%,-2%) rotate(3deg)}}
@media(max-width:760px){.hero.reveal-ready .hero-image{animation-duration:2.8s}.reveal-haze:after{filter:none;animation-duration:18s}.reveal-wave{display:none}}
@media(prefers-reduced-motion:reduce){.hero.reveal-ready .hero-image{animation:none!important;clip-path:none;filter:none;scale:1;opacity:1}.reveal-haze,.reveal-wave{display:none}}
