/* Scroll reveals keep the page fully visible when JavaScript or motion support is unavailable. */
html.motion-active [data-reveal]{opacity:0;filter:blur(7px);transform:translate3d(0,32px,0);transition:opacity .8s cubic-bezier(.2,.7,.2,1),filter .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform,filter}
html.motion-active [data-reveal="poster"]{transform:translate3d(30px,20px,0) scale(.96)}
html.motion-active [data-reveal].is-visible{opacity:1;filter:none;transform:translate3d(0,0,0);will-change:auto}
html.motion-active .hero-content [data-reveal]:nth-child(2){--reveal-delay:90ms}
html.motion-active .hero-content [data-reveal]:nth-child(3){--reveal-delay:170ms}
html.motion-active .hero-content [data-reveal]:nth-child(4){--reveal-delay:250ms}
html.motion-active .hero-content [data-reveal]:nth-child(5){--reveal-delay:330ms}
html.motion-active .hero-poster{--reveal-delay:170ms}
html.motion-active .experience-card:nth-child(2){--reveal-delay:75ms}
html.motion-active .experience-card:nth-child(3){--reveal-delay:150ms}
html.motion-active .experience-card:nth-child(4){--reveal-delay:225ms}
html.motion-active .experience-card:nth-child(5){--reveal-delay:300ms}
html.motion-active .program-card:nth-child(2){--reveal-delay:100ms}
html.motion-active .program-card:nth-child(3){--reveal-delay:200ms}
html.motion-active .form-panel{--reveal-delay:150ms}

@keyframes posterFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-9px,0)}}
@keyframes posterShine{0%,42%{transform:translateX(-120%) rotate(15deg);opacity:0}48%{opacity:.2}57%{transform:translateX(360%) rotate(15deg);opacity:0}100%{opacity:0}}
@keyframes softPulse{0%,100%{box-shadow:0 0 0 5px #f40c2e34,0 0 18px #ff1c42}50%{box-shadow:0 0 0 9px #f40c2e12,0 0 26px #ff1c42}}
@keyframes blueStreak{0%,100%{transform:translateX(0) rotate(31deg);opacity:.7}50%{transform:translateX(35px) rotate(31deg);opacity:1}}
@keyframes redStreak{0%,100%{transform:translateX(0) rotate(145deg);opacity:.7}50%{transform:translateX(-30px) rotate(145deg);opacity:1}}

.hero-poster img{animation:posterFloat 6s ease-in-out infinite;transition:filter .4s ease}
.hero-poster:hover img{filter:brightness(1.12) saturate(1.08)}
.hero-poster:after{content:'';position:absolute;inset:0 0 26px;pointer-events:none;background:linear-gradient(105deg,transparent 44%,#fff9 50%,transparent 56%);width:38%;mix-blend-mode:screen;animation:posterShine 9s ease-in-out infinite}
.pulse-dot{animation:softPulse 3.4s ease-in-out infinite}
.hero-glow-blue{animation:blueStreak 10s ease-in-out infinite}
.hero-glow-red{animation:redStreak 12s ease-in-out infinite}
.icon-ring{transition:transform .3s ease,box-shadow .3s ease}
.experience-card:hover .icon-ring{transform:scale(1.09) rotate(-6deg);box-shadow:0 0 0 8px #16aaff16,0 0 30px #03b4ffb0,inset 0 0 19px #009dff2e}
.experience-card:nth-child(even):hover .icon-ring{box-shadow:0 0 0 8px #f3224816,0 0 30px #ff143bb0,inset 0 0 18px #ff153e25}
.program-card{transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
.program-card:hover{transform:translateY(-5px);border-color:#6fe0ff;box-shadow:0 0 26px #0787db85,inset 0 0 25px #087ede20}
.program-card.hot:hover{border-color:#ff7489;box-shadow:0 0 28px #ed174488,inset 0 0 25px #fa174421}
.btn:active,.header-cta:active{transform:translateY(1px) scale(.99)}
.choice{transition:border-color .2s ease,background-color .2s ease,transform .2s ease}
.choice:hover{transform:translateY(-2px);border-color:#139ce0}

/* The reveal transform is complete before interactive hover begins. */
html.motion-active .experience-card.is-visible:hover,html.motion-active .program-card.is-visible:hover{transform:translateY(-6px);transition-delay:0ms}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}html.motion-active [data-reveal]{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}.hero-poster img,.hero-poster:after,.pulse-dot,.hero-glow-blue,.hero-glow-red{animation:none!important}.icon-ring,.program-card,.choice{transition:none!important}}
