/* Academy V4 — luminous signal / hopeful cyber-future */
.splash{display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 43%,rgba(165,237,241,.2),transparent 24%),radial-gradient(ellipse 80% 62% at 18% 30%,rgba(52,154,166,.42),transparent 66%),radial-gradient(ellipse 74% 70% at 84% 18%,rgba(99,104,173,.32),transparent 68%),radial-gradient(ellipse 100% 46% at 50% 100%,rgba(222,193,124,.30),transparent 68%),linear-gradient(180deg,#0d2438 0%,#173c53 58%,#315f6a 100%)}
.splash::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 0 38%,rgba(169,242,244,.055) 49%,transparent 61%),repeating-linear-gradient(180deg,transparent 0 5px,rgba(207,250,250,.028) 6px,transparent 7px);mix-blend-mode:screen;animation:atmosphere-drift 13s ease-in-out infinite alternate}
.signal-stage{position:absolute;inset:0;z-index:5;display:grid;place-items:center;pointer-events:none;animation:signal-stage-exit 1.25s cubic-bezier(.2,.75,.2,1) 6.5s forwards}
.signal-stage::before,.signal-stage::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0}
.signal-stage::before{background:repeating-linear-gradient(180deg,transparent 0 14px,rgba(165,237,241,.05) 15px,transparent 17px);animation:static-charge-field 6.5s steps(2,end) both}
.signal-stage::after{width:150%;left:-25%;height:3px;top:50%;background:linear-gradient(90deg,transparent,rgba(165,237,241,.75),#fff,rgba(222,193,124,.7),transparent);box-shadow:0 0 24px rgba(165,237,241,.8);animation:signal-scan 6.5s cubic-bezier(.22,.7,.2,1) both}
.signal-orbit{--jx:0px;--jy:0px;position:relative;width:clamp(17rem,46vw,34rem);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;isolation:isolate;transform:translate(var(--jx),var(--jy));filter:drop-shadow(0 0 28px rgba(165,237,241,.22));animation:orbit-arrive 1.2s cubic-bezier(.18,.8,.2,1) both}
.signal-orbit::before,.signal-orbit::after,.signal-ring{position:absolute;border-radius:50%;content:""}
.signal-orbit::before{inset:5%;border:1px solid rgba(222,193,124,.58);box-shadow:0 0 30px rgba(222,193,124,.18),inset 0 0 32px rgba(165,237,241,.08)}
.signal-orbit::after{inset:14%;border:1px solid rgba(165,237,241,.68);box-shadow:0 0 34px rgba(165,237,241,.18)}
.signal-ring.r1{inset:0;border:1px solid rgba(165,237,241,.21);border-left-color:rgba(222,193,124,.75);animation:ring-turn 9s linear infinite}
.signal-ring.r2{inset:9%;border:1px dashed rgba(237,250,248,.26);animation:ring-turn 16s linear infinite reverse}
.signal-ring.r3{inset:23%;border:1px solid rgba(222,193,124,.22);border-top-color:rgba(165,237,241,.85);animation:ring-turn 6s linear infinite}
.signal-tick{position:absolute;inset:-3%;border-radius:50%;opacity:.5;background:repeating-conic-gradient(from 0deg,rgba(165,237,241,.6) 0 .25deg,transparent .25deg 8deg);-webkit-mask:radial-gradient(circle,transparent 0 49%,#000 49.3% 50%,transparent 50.3%);mask:radial-gradient(circle,transparent 0 49%,#000 49.3% 50%,transparent 50.3%);animation:ring-turn 28s linear infinite}
.signal-word{position:relative;z-index:4;color:#f7fbf8;font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-size:clamp(2.2rem,7vw,5.7rem);font-weight:600;letter-spacing:.2em;text-indent:.2em;line-height:1;text-shadow:0 0 26px rgba(165,237,241,.52);transition:opacity .16s ease}
.signal-word::before,.signal-word::after{content:attr(data-text);position:absolute;inset:0;opacity:0;pointer-events:none}.signal-word::before{color:#a5edf1;text-shadow:9px 0 rgba(165,237,241,.45)}.signal-word::after{color:#dec17c;text-shadow:-9px 0 rgba(222,193,124,.42)}
.signal-orbit.is-breaking{animation:orbit-break .52s steps(1,end)}.signal-orbit.is-breaking .signal-word{animation:word-break .52s steps(1,end)}.signal-orbit.is-breaking .signal-word::before{animation:slice-a .52s steps(1,end)}.signal-orbit.is-breaking .signal-word::after{animation:slice-b .52s steps(1,end)}.signal-orbit.is-breaking::before{animation:circle-slice-a .52s steps(1,end)}.signal-orbit.is-breaking::after{animation:circle-slice-b .52s steps(1,end)}
.brand-resolve{position:relative;z-index:6;display:flex;flex-direction:column;align-items:center;width:min(76rem,94vw);opacity:0;transform:translateY(12px) scale(.985);animation:brand-resolve 1.7s cubic-bezier(.18,.8,.2,1) 6.65s forwards}
.brand-resolve .splash-mark{animation:resolved-mark 1.8s cubic-bezier(.2,.75,.2,1) 6.65s both;width:clamp(96px,12vw,148px);margin-bottom:1.4rem}.brand-resolve .splash-word{animation:none;font-size:clamp(2.8rem,8.5vw,7rem);letter-spacing:.11em;color:#f7fbf8}.brand-resolve .splash-word::before,.brand-resolve .splash-word::after{animation:none;display:none}.brand-resolve .splash-sub,.brand-resolve .splash-rule,.brand-resolve .splash-motto{animation:none;opacity:1}.brand-resolve .splash-sub{font-size:clamp(1rem,2.5vw,1.65rem);letter-spacing:.72em;color:#dec17c;margin-top:.8rem}.brand-resolve .splash-rule{margin-top:1rem}.brand-resolve .splash-motto{margin-top:1.25rem;color:rgba(247,251,248,.84)}
.splash .range{z-index:3;opacity:.52}.splash .range.r4{opacity:.75}.splash .range .crest{stroke:#baf6f2;opacity:.68}.splash .cue{z-index:10;background:rgba(13,36,56,.48);border-color:rgba(165,237,241,.5);backdrop-filter:blur(12px);animation:cue-arrive .8s ease 8s both}.motion-control{background:rgba(13,36,56,.46);border-color:rgba(165,237,241,.42);backdrop-filter:blur(12px)}
@keyframes orbit-arrive{0%{opacity:0;transform:scale(.55) rotate(-14deg)}35%{opacity:.8}100%{opacity:1;transform:scale(1)}}@keyframes ring-turn{to{transform:rotate(1turn)}}@keyframes atmosphere-drift{to{transform:translate3d(2%,-1%,0);opacity:.75}}@keyframes static-charge-field{0%,100%{opacity:0}6%,18%,32%,47%,61%,78%,91%{opacity:.7;transform:translateY(-3px)}10%,23%,39%,55%,70%,84%{opacity:.25;transform:translateY(4px)}}@keyframes signal-scan{0%{opacity:0;transform:translateY(-36vh)}8%{opacity:.55}16%{opacity:.08;transform:translateY(-8vh)}30%{opacity:.42;transform:translateY(24vh)}45%{opacity:.08;transform:translateY(-14vh)}62%{opacity:.35;transform:translateY(18vh)}82%{opacity:.15;transform:translateY(-4vh)}100%{opacity:0;transform:translateY(42vh)}}
@keyframes orbit-break{0%,100%{transform:translate(var(--jx),var(--jy))}10%{transform:translate(calc(var(--jx) - 22px),calc(var(--jy) + 3px)) scaleX(1.04)}22%{transform:translate(calc(var(--jx) + 18px),calc(var(--jy) - 10px)) scaleY(.97)}35%{transform:translate(calc(var(--jx) - 8px),calc(var(--jy) + 15px)) skewX(5deg)}47%{transform:translate(calc(var(--jx) + 12px),calc(var(--jy) - 5px))}58%{transform:translate(calc(var(--jx) - 28px),var(--jy)) scaleX(1.08)}73%{transform:translate(calc(var(--jx) + 7px),calc(var(--jy) + 9px))}86%{transform:translate(calc(var(--jx) - 4px),calc(var(--jy) - 3px))}}@keyframes word-break{0%,100%{opacity:1;transform:none}8%,34%,64%{opacity:.35;transform:scaleX(1.08)}18%,48%,78%{opacity:.92;transform:translateY(-7px)}27%,57%,88%{opacity:.18;transform:translateY(9px)}}
@keyframes slice-a{0%,100%{opacity:0}9%,28%,55%,76%{opacity:.92;clip-path:inset(8% 0 70%);transform:translateX(24px)}18%,39%,66%,88%{opacity:.72;clip-path:inset(46% 0 34%);transform:translateX(-32px)}}@keyframes slice-b{0%,100%{opacity:0}12%,32%,59%,80%{opacity:.86;clip-path:inset(72% 0 8%);transform:translateX(-25px)}22%,45%,69%,91%{opacity:.62;clip-path:inset(25% 0 57%);transform:translateX(30px)}}@keyframes circle-slice-a{0%,100%{transform:none;opacity:1}15%{clip-path:inset(9% 0 72%);transform:translateX(28px)}37%{clip-path:inset(43% 0 38%);transform:translateX(-34px)}66%{clip-path:inset(71% 0 10%);transform:translateX(23px)}}@keyframes circle-slice-b{0%,100%{transform:none;opacity:1}20%{clip-path:inset(68% 0 12%);transform:translateX(-28px)}48%{clip-path:inset(25% 0 55%);transform:translateX(35px)}78%{clip-path:inset(48% 0 34%);transform:translateY(14px)}}
@keyframes signal-stage-exit{to{opacity:0;visibility:hidden;transform:scale(1.08);filter:blur(7px)}}@keyframes brand-resolve{0%{opacity:0;transform:translateY(12px) scale(.985);filter:blur(8px)}35%{opacity:.9}100%{opacity:1;transform:none;filter:none}}@keyframes resolved-mark{0%{opacity:0;transform:scale(.75);filter:drop-shadow(-10px 0 rgba(165,237,241,.6)) drop-shadow(10px 0 rgba(222,193,124,.55))}28%{opacity:.85;transform:scale(1.04)}100%{opacity:1;transform:scale(1);filter:drop-shadow(0 0 24px rgba(222,193,124,.38))}}@keyframes cue-arrive{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.motion-paused .signal-stage{display:none}.motion-paused .brand-resolve{opacity:1;transform:none;filter:none}.motion-paused .brand-resolve .splash-mark{opacity:1;transform:none}
@media(max-width:700px){.signal-orbit{width:min(78vw,25rem)}.signal-word{font-size:clamp(1.8rem,10vw,4rem);letter-spacing:.12em;text-indent:.12em}.brand-resolve .splash-word{font-size:clamp(2.25rem,11vw,4.2rem);letter-spacing:.055em}.brand-resolve .splash-sub{letter-spacing:.52em;text-indent:.52em}.brand-resolve .splash-motto{font-size:.78rem}.splash .cue{bottom:1rem}}
@media(prefers-reduced-motion:reduce){.signal-stage{display:none}.brand-resolve,.brand-resolve .splash-mark,.splash .cue{animation:none;opacity:1;transform:none;filter:none}.splash::after{animation:none}}
body:not(:has(.splash)) .pagehead{position:relative;isolation:isolate;padding:clamp(4rem,8vw,7rem) 0 2rem}body:not(:has(.splash)) .pagehead::before{content:"";position:absolute;z-index:-1;inset:-2rem calc(50% - 50vw) 0;background:radial-gradient(circle at 15% 20%,rgba(165,237,241,.14),transparent 36%),linear-gradient(180deg,rgba(31,75,96,.34),transparent);border-bottom:1px solid var(--rule)}.door,.roster,.roles,.standing,.passage{backdrop-filter:blur(14px)}.door{box-shadow:0 24px 60px rgba(2,13,24,.14),inset 0 1px rgba(255,255,255,.035)}.door::after{content:"↗";margin-top:auto;color:var(--gold);font-family:system-ui,sans-serif;font-size:1.1rem}

/* V5: one CSS timeline keeps every word in step with the final reveal. */
.signal-orbit{width:min(88vw,70rem)}
.signal-word{grid-area:1/1;opacity:0;visibility:hidden;font-family:Arial,Helvetica,sans-serif;font-size:clamp(3rem,12vw,10rem);font-weight:800;letter-spacing:.035em;text-indent:0;line-height:1.1;white-space:nowrap;text-shadow:0 0 22px rgba(165,237,241,.25);animation:signal-word-frame 1.3s var(--word-delay) both}
.signal-word::before,.signal-word::after{animation:none}
@keyframes signal-word-frame{0%{opacity:0;visibility:visible;transform:translateY(12px);filter:blur(5px)}12%,82%{opacity:1;visibility:visible;transform:none;filter:none}100%{opacity:0;visibility:hidden;transform:translateY(-8px);filter:blur(3px)}}
@media(max-width:700px){.signal-orbit{width:90vw}.signal-word{font-size:clamp(2.5rem,15vw,6.5rem);letter-spacing:.015em;text-indent:0}}

/* V6: visible logo directly above the name throughout the introduction. */
.brand-resolve{animation:none;opacity:1;transform:none;margin-top:-14vh}
.brand-resolve .splash-mark{width:clamp(120px,16vw,190px);height:auto;opacity:1;margin-bottom:1rem;animation:logo-tear 1.3s steps(1,end) 5;filter:drop-shadow(0 0 20px rgba(222,193,124,.38))}
.signal-stage{inset:auto 0 11%;height:clamp(70px,14vw,170px)}
.signal-orbit{width:90vw;height:100%;aspect-ratio:auto;animation:none}
.signal-ring,.signal-tick,.signal-orbit::before,.signal-orbit::after{display:none}

@media(max-width:700px){.brand-resolve{margin-top:-16vh}.brand-resolve .splash-mark{width:clamp(110px,29vw,150px)}.signal-stage{bottom:15%}}
@media(max-height:550px){.brand-resolve{margin-top:-15vh}.brand-resolve .splash-mark{width:75px;margin-bottom:.4rem}.brand-resolve .splash-word{font-size:2.3rem}.brand-resolve .splash-sub{font-size:1rem;margin-top:.3rem}.brand-resolve .splash-motto{margin-top:.4rem}.signal-stage{bottom:12%;height:55px}.signal-word{font-size:3rem}}
@media(prefers-reduced-motion:reduce){.brand-resolve .splash-mark{animation:none!important;clip-path:none;transform:none;filter:none}}
.motion-paused .brand-resolve .splash-mark{clip-path:none;filter:none}

/* V7: original cinematic ridge artwork, with a slow camera drift. */
.splash{background:#111b27;isolation:isolate;min-height:780px;min-height:max(780px,100svh)}
.splash-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;z-index:0;pointer-events:none;animation:ridge-camera 26s ease-in-out infinite alternate;transform:scale(1.025)}
.splash::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(12,19,30,.16),transparent 55%,rgba(12,19,30,.5)),radial-gradient(ellipse at 50% 36%,rgba(12,19,30,.28),transparent 64%)}
.splash::after{display:none}
.splash .range,.splash .nebula,.splash .milkyway{display:none}
.splash .sky{z-index:2;opacity:.22}
.brand-resolve .splash-word{color:#faf7f0;text-shadow:0 3px 28px rgba(0,0,0,.55)}
.brand-resolve .splash-sub,.brand-resolve .splash-mark{color:#c9a84c}
.brand-resolve .splash-motto{color:#faf7f0;text-shadow:0 2px 12px #111b27}
.signal-word{color:#faf7f0;text-shadow:0 3px 24px #111b27}
.signal-stage::before,.signal-stage::after{display:none}
.splash .cue,.motion-control{background:rgba(17,27,39,.64);border-color:rgba(201,168,76,.6);color:#faf7f0}
@keyframes ridge-camera{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.09) translate3d(-.7%,.5%,0)}}
@media(max-width:700px){.splash{min-height:max(720px,100svh)}.splash-scene{object-position:74% center}.splash::before{background:linear-gradient(180deg,rgba(12,19,30,.32),rgba(12,19,30,.16) 55%,rgba(12,19,30,.55))}}
@media(prefers-reduced-motion:reduce){.splash-scene{animation:none;transform:none}}
.motion-paused .splash-scene{animation-play-state:paused!important}

/* V8: subdued atmosphere keeps the Academy identity dominant. */
.splash-scene{object-position:center bottom;animation-duration:36s}
.splash::before{background:linear-gradient(180deg,rgba(17,27,39,.05),transparent 65%,rgba(17,27,39,.12))}
.splash .sky{opacity:.12}
@media(max-width:700px){.splash-scene{object-position:65% bottom}.splash::before{background:rgba(17,27,39,.08)}}

/* V9: hard horizontal signal tears across the complete brand lockup. */
.brand-identity{position:relative;width:100%;isolation:isolate}
.brand-original,.brand-slice{display:flex;flex-direction:column;align-items:center;width:100%}
.brand-slice{position:absolute;inset:0;pointer-events:none;visibility:hidden;will-change:transform,clip-path;z-index:2}
.signal-corrupt .brand-slice{visibility:visible}
.brand-resolve .splash-mark{animation:none!important;clip-path:none!important;transform:none!important;filter:drop-shadow(0 0 16px rgba(201,168,76,.2))}
.signal-corrupt .brand-original{text-shadow:3px 0 #96bfc8,-3px 0 #c9a84c}
.signal-corrupt .brand-original .splash-word,.signal-corrupt .brand-original .splash-sub{text-shadow:3px 0 #96bfc8,-3px 0 #c9a84c}
.motion-paused .brand-slice{display:none!important}
@media(prefers-reduced-motion:reduce){.brand-slice{display:none!important}.brand-original{transform:none!important}}

/* V10: smaller repeating creed words; the stage remains visible. */
.signal-stage{animation:none;opacity:1;visibility:visible;transform:none;filter:none}
.signal-word{font-size:clamp(1.8rem,5vw,4.5rem);letter-spacing:.06em;animation:signal-word-loop 6.5s var(--word-delay) infinite both}
@keyframes signal-word-loop{0%{opacity:0;visibility:hidden;transform:translateY(6px)}2.4%,16.4%{opacity:1;visibility:visible;transform:none}20%,100%{opacity:0;visibility:hidden;transform:translateY(-6px)}}
@media(max-width:700px){.signal-word{font-size:clamp(1.6rem,7vw,2.6rem);letter-spacing:.04em}}
@media(max-height:550px){.signal-word{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.signal-stage{display:none}.signal-word{animation:none}}

/* V11: stable Academy identity; only the words and background move. */
.brand-identity,.brand-original,.brand-resolve .splash-mark,.brand-resolve .splash-word,.brand-resolve .splash-sub{animation:none!important;transform:none!important;clip-path:none!important}
.brand-slice,.signal-word::before,.signal-word::after,.brand-resolve .splash-word::before,.brand-resolve .splash-word::after{display:none!important}

/* V13: one focal point, without rotating words. */
.brand-resolve{margin-top:-4vh}
.splash .cue{animation:none;opacity:1}
@media(max-width:700px){.brand-resolve{margin-top:-5vh}}
@media(max-height:550px){.brand-resolve{margin-top:-4vh}}

/* V14: discreet scrolling words beneath the motto. */
.creed-scroll{height:1.5rem;width:12rem;overflow:hidden;margin-top:1.5rem;color:#baa66d;font-family:Arial,Helvetica,sans-serif;font-size:1rem;font-weight:500;letter-spacing:.16em;text-align:center}
.creed-scroll-track{animation:creed-scroll-up 15s cubic-bezier(.4,0,.2,1) infinite}
.creed-scroll-track span{display:block;height:1.5rem;line-height:1.5rem}
@keyframes creed-scroll-up{0%,16%{transform:translateY(0)}20%,36%{transform:translateY(-1.5rem)}40%,56%{transform:translateY(-3rem)}60%,76%{transform:translateY(-4.5rem)}80%,96%{transform:translateY(-6rem)}100%{transform:translateY(-7.5rem)}}
.motion-paused .creed-scroll-track{animation:none!important;transform:none}
@media(prefers-reduced-motion:reduce){.creed-scroll-track{animation:none;transform:none}}
