/* Glow motion edition • 25 September 2026. Content stays visible without JS. */
body.cinematic-ready .reveal{opacity:1;transform:none}
body.cinematic-ready .section-heading h2,body.cinematic-ready [data-scroll-surface],body.cinematic-ready .style-row,body.cinematic-ready .intro,body.cinematic-ready .card{transform:none!important}
.glow-word{display:inline-block;white-space:pre}
body.cinematic-ready .section{isolation:isolate}
body.cinematic-ready .classes-section,body.cinematic-ready .events-section{background-image:radial-gradient(ellipse at 10% 20%,#65d7eb19,transparent 55%),radial-gradient(ellipse at 95% 80%,#62e1e414,transparent 60%)}
body.cinematic-ready .belong-section,body.cinematic-ready .prices-section{background-image:radial-gradient(ellipse at 95% 15%,#63dced20,transparent 60%)}
body.cinematic-ready .style-row,body.cinematic-ready .belong-item,body.cinematic-ready .event-agenda-row{border-radius:18px;transition:border-color .25s,box-shadow .25s;background-clip:padding-box}
body.cinematic-ready .style-row:hover,body.cinematic-ready .belong-item:hover{border-color:#74d9e5;box-shadow:0 12px 40px #48c3d219}
body.cinematic-ready .agenda-main,body.cinematic-ready .agenda-board{filter:none!important;opacity:1!important}
.glow-intro{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;overflow:hidden;background:#07171f;color:white;animation:glow-intro-out .5s 1.85s both;pointer-events:none}
.glow-intro-logo{position:relative;z-index:2;width:min(65vw,420px);height:auto;filter:drop-shadow(0 0 28px #75ddeb44);animation:glow-logo-in 1.6s cubic-bezier(.16,1,.3,1) both}
.glow-intro-wave{position:absolute;width:150vmax;height:75vmax;border-radius:44%;border:1px solid #81ecfa4d;background:radial-gradient(ellipse at 50% 0%,#67dced25,transparent 65%);top:52%;left:50%;transform:translateX(-50%) rotate(-16deg);animation:glow-wave 2.5s ease-out both}
.glow-intro-wave:nth-child(2){top:62%;animation-direction:reverse;opacity:.6;transform:translateX(-50%) rotate(12deg)}
.glow-intro-halo{position:absolute;inset:0;background:radial-gradient(ellipse at center,#4ac9df30,transparent 62%)}
.glow-intro-spark{position:absolute;width:3px;height:3px;border-radius:50%;background:#a9f0fa;box-shadow:0 0 12px #79e4f2;animation:glow-spark 2.3s ease-out both}
.glow-intro-skip{pointer-events:auto;position:absolute;right:20px;top:max(20px,env(safe-area-inset-top));z-index:3;border:1px solid #a5e4ee55;background:#0d2634;color:#e3fafc;border-radius:30px;padding:12px 20px;font:500 14px Inter,Arial,sans-serif;cursor:pointer}
@keyframes glow-logo-in{0%{opacity:0;transform:scale(.8) translateY(16px);filter:blur(10px)}45%,100%{opacity:1;transform:scale(1) translateY(0);filter:blur(0) drop-shadow(0 0 28px #75ddeb44)}}
@keyframes glow-wave{from{translate:0 60px;rotate:-8deg}to{translate:0 -80px;rotate:8deg}}
@keyframes glow-spark{from{opacity:0;translate:0 25px}35%{opacity:.7}to{opacity:0;translate:0 -55px}}
@keyframes glow-intro-out{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.glow-intro{display:none}.glow-word{filter:none!important;opacity:1!important;transform:none!important}}

body.cinematic-ready .classes-section,body.cinematic-ready .events-section{background-size:140% 140%;background-position:calc(var(--scene-progress,.5)*100%) center}
/* Second edition: layered flowing light, paced logo reveal and luminous exit. */
.glow-intro{background:#041018;animation:glow-intro-out .65s 2.4s both}
.glow-intro-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.glow-intro-brand{position:relative;z-index:2;width:min(72vw,560px);display:grid;justify-items:center;gap:32px;animation:glow-brand-exit .65s 2.4s both}
.glow-intro-logo{width:100%;animation:glow-logo-reveal 2.4s cubic-bezier(.22,1,.36,1) both}
.glow-intro-line{height:1px;width:45%;background:linear-gradient(90deg,transparent,#a6f4ff,transparent);box-shadow:0 0 18px #70ddeb;animation:glow-line 2.4s both}
.glow-intro-halo{background:radial-gradient(ellipse at 50% 48%,#46c5df30,transparent 58%);animation:glow-breathe 2.8s both}
.glow-intro-flash{position:absolute;inset:0;background:radial-gradient(ellipse at center,#bbf5ff66,transparent 65%);opacity:0;animation:glow-flash .8s 2.05s both}
.glow-intro-skip{top:auto;bottom:max(28px,env(safe-area-inset-bottom));right:50%;transform:translateX(50%);background:transparent;border-color:#a5e4ee30;font-size:13px;letter-spacing:.06em}
@keyframes glow-logo-reveal{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(14px) scale(.94);filter:blur(8px)}25%{opacity:1}55%{clip-path:inset(0 -8% 0 -8%);filter:blur(0)}100%{opacity:1;clip-path:inset(0 -8% 0 -8%);transform:translateY(0) scale(1);filter:drop-shadow(0 0 28px #72e0f344)}}
@keyframes glow-line{0%,22%{opacity:0;transform:scaleX(0)}60%,100%{opacity:.9;transform:scaleX(1)}}
@keyframes glow-breathe{0%{opacity:0;transform:scale(.6)}65%{opacity:1;transform:scale(1)}100%{opacity:.6;transform:scale(1.2)}}
@keyframes glow-flash{0%,100%{opacity:0}40%{opacity:1}}
@keyframes glow-brand-exit{to{transform:scale(1.07) translateY(-12px);opacity:0;filter:blur(5px)}}
body.cinematic-ready h2{perspective:800px}
body.cinematic-ready .style-row,body.cinematic-ready .event-agenda-row{box-shadow:inset 0 1px 0 #a7edfa18,0 20px 45px #00111e18;border-color:#83c7d44d}
body.cinematic-ready .style-row a:focus-visible,body.cinematic-ready button:focus-visible{outline:2px solid #7cdeef;outline-offset:5px}
body.cinematic-ready .belong-item{transition:background .35s,border-color .35s,box-shadow .35s}
body.cinematic-ready .belong-item:hover{box-shadow:inset 3px 0 #69d4e4,0 16px 32px #143f4910}
@media(max-width:680px){.glow-intro-brand{width:78vw;gap:24px}.glow-intro-skip{min-height:44px}.glow-intro-halo{background:radial-gradient(ellipse at 50% 48%,#46c5df30,transparent 70%)}}
/* Word wrappers must inherit typography, including the smaller subtitle. */
body.cinematic-ready h1 .glow-word,body.cinematic-ready h2 .glow-word{display:inline-block;font:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;max-width:none;white-space:normal}
/* Edition 3: logo-to-header handoff and masked typography. */
.glow-intro{animation:glow-safety-exit .2s 3.4s forwards}
.glow-intro-brand{animation:none;gap:0;transform-origin:center}
.glow-intro-logo{animation:glow-logo-unveil 1.65s cubic-bezier(.16,1,.3,1) both}
.glow-intro-line{position:absolute;top:calc(100% + 28px);animation:glow-line 1.8s both;transition:opacity .25s}
.glow-intro-flash{animation:glow-flash .7s 1.4s both}
.glow-intro-leaving .glow-intro-canvas,.glow-intro-leaving .glow-intro-halo,.glow-intro-leaving .glow-intro-flash,.glow-intro-leaving .glow-intro-line,.glow-intro-leaving .glow-intro-skip{opacity:0!important;transition:opacity .45s}
@keyframes glow-logo-unveil{0%{opacity:0;clip-path:inset(0 50% 0 50%);transform:scale(.92);filter:blur(8px)}30%{opacity:1}75%,100%{opacity:1;clip-path:inset(-12% -8% -12% -8%);transform:scale(1);filter:blur(0) drop-shadow(0 0 22px #70dce72b)}}
@keyframes glow-safety-exit{to{opacity:0;visibility:hidden}}
body.cinematic-ready h1 .glow-word-shell,body.cinematic-ready h2 .glow-word-shell{display:inline-block;overflow:clip;vertical-align:bottom;padding:.08em .025em;margin:-.08em -.025em;font:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;max-width:100%}
body.cinematic-ready h1 .glow-word,body.cinematic-ready h2 .glow-word{transform-origin:left bottom;vertical-align:bottom}
body.cinematic-ready .style-row a,body.cinematic-ready .btn{transition:background .2s,box-shadow .2s,border-color .2s}
body.cinematic-ready .btn:hover{box-shadow:0 8px 26px #63d6e42b}
@media(prefers-reduced-motion:reduce){.glow-word-shell{overflow:visible!important}}
/* Explicit surface contrast: heading colour follows the panel, not a global white rule. */
body.cinematic-ready :is(.schedule-studio,.prices-section,.directors-section,.contact-section){--glow-heading:#102c3b;--glow-heading-accent:#086779}
body.cinematic-ready :is(.hero,.belong-section,.classes-section,.events-section){--glow-heading:#f2fbff;--glow-heading-accent:#79dfef}
body.cinematic-ready .free-class{--glow-heading:#102c3b;--glow-heading-accent:#07596b}
body.cinematic-ready :is(.hero,.belong-section,.classes-section,.events-section,.schedule-studio,.prices-section,.directors-section,.contact-section,.free-class) :is(h1,h2){color:var(--glow-heading);-webkit-text-fill-color:currentColor;text-shadow:none}
body.cinematic-ready :is(.hero,.belong-section,.classes-section,.events-section,.schedule-studio,.prices-section,.directors-section,.contact-section,.free-class) :is(h1,h2) em{color:var(--glow-heading-accent);-webkit-text-fill-color:currentColor}
body.cinematic-ready :is(h1,h2) .glow-word-shell,body.cinematic-ready :is(h1,h2) .glow-word{color:inherit!important;-webkit-text-fill-color:currentColor!important;background:none!important}
body.cinematic-ready .price-editorial-card:not(.price-editorial-card--featured) :is(h3,.price-type){color:#102c3b}
body.cinematic-ready .price-editorial-card--featured :is(h3,strong){color:#f2fbff}
body.cinematic-ready .contact-info-card :is(h3,strong){color:#102c3b}
body.cinematic-ready .agenda-class-info h4{color:#102c3b}
body.cinematic-ready .trial-alt-cta-box :is(h2,h3){color:#f2fbff}
body.trial-page.cinematic-ready .intro h1{color:#f2fbff;-webkit-text-fill-color:currentColor}
body.trial-page.cinematic-ready .intro h1 em{color:#79dfef;-webkit-text-fill-color:currentColor}
body.trial-page .modal-card{background:#fff;color:#102c3b}
body.trial-page .modal-card h2{color:#102c3b;-webkit-text-fill-color:currentColor}

/* Critical heading contrast. Independent of JavaScript, animation and viewport. */
html body :is(.schedule-studio,.prices-section,.directors-section,.contact-section,.free-class) :is(h1,h2,h3,h4){--title-ink:#102c3b;--title-accent:#086779}
html body :is(.hero,.belong-section,.classes-section,.events-section) :is(h1,h2,h3,h4){--title-ink:#f2fbff;--title-accent:#79dfef}
html body .price-editorial-card--featured :is(h2,h3,h4){--title-ink:#f2fbff;--title-accent:#79dfef}
html body .trial-alt-cta-box :is(h2,h3,h4){--title-ink:#f2fbff;--title-accent:#79dfef}
html body.trial-page .intro h1{--title-ink:#f2fbff;--title-accent:#79dfef}
html body.trial-page .modal-card{background:#fff!important;color:#102c3b!important}
html body.trial-page .modal-card h2{--title-ink:#102c3b;--title-accent:#086779}
html body :is(h1,h2,h3,h4){color:var(--title-ink,#102c3b)!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important;mix-blend-mode:normal!important}
html body :is(h1,h2,h3,h4) :is(span,strong,b,i){color:inherit!important;-webkit-text-fill-color:currentColor!important;background:none!important;mix-blend-mode:normal!important}
html body :is(h1,h2,h3,h4) em{color:var(--title-accent,#086779)!important;-webkit-text-fill-color:currentColor!important;background:none!important}

/* Styles and Events: same heading palette as the other sections. */
html body :is(.classes-section,.events-section) h2{--title-ink:#102c3b;--title-accent:#086779}

/* Light heading surface keeps the shared dark palette readable. */
html body :is(.classes-section,.events-section)>.section-heading{background:#eef4f7;border-radius:16px;padding:clamp(24px,4vw,48px);color:#102c3b}
html body :is(.classes-section,.events-section)>.section-heading .kicker{color:#086779}
html body :is(.classes-section,.events-section)>.section-heading>p:not(.kicker){color:#405b69}

/* Reference-inspired section rhythm. Keep native scrolling and all touch controls. */
body.cinematic-ready .glow-motion-group{transform:none!important;opacity:1!important;filter:none!important}
body.cinematic-ready .glow-motion-group :is(h1,h2){transform-origin:left center}
body.cinematic-ready .glow-motion-group>.kicker{transform-origin:left center}
body.cinematic-ready :is(.classes-section,.events-section){background-position:calc(var(--scene-progress,.5)*100%) calc(var(--scene-progress,.5)*60%)}
body.cinematic-ready .style-row,body.cinematic-ready .event-agenda-row{transform-origin:center center}
@media(prefers-reduced-motion:reduce){body.cinematic-ready .glow-motion-group,body.cinematic-ready .glow-motion-group>*{translate:none!important;scale:none!important;filter:none!important;opacity:1!important}}
body.motion-paused .glow-motion-group,body.motion-paused .glow-motion-group>*{translate:none!important;scale:none!important;filter:none!important;opacity:1!important}
