@font-face{font-family:"AGINE Terminal";src:url("assets/fonts/jetbrains-mono-regular-full.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:dark;--paper:#f5eee3;--ink:#100c08;--terminal:#f3e5ca;--terminal-glow:0 0 1px #ffffffa6,0 0 7px #ffffff66,0 0 18px #fff0d333;--font-heading:"AGINE Terminal",monospace;--heading-tracking:.14em}
h1,h2,h3{font-family:var(--font-heading);font-weight:400;text-transform:uppercase;letter-spacing:var(--heading-tracking);font-synthesis:none}
*{box-sizing:border-box}
html{background:var(--ink);overscroll-behavior-y:none;scrollbar-width:none}
html::-webkit-scrollbar{display:none}
body{margin:0;background:var(--ink);color:var(--paper);overflow-x:clip}
button,a{-webkit-tap-highlight-color:transparent}
button{color:inherit;font:inherit}
button:focus-visible,a:focus-visible{outline:2px solid var(--paper);outline-offset:6px}
.journey{height:175svh;position:relative;background:var(--ink)}
.stage{position:sticky;top:0;height:100svh;min-height:min(360px,100svh);overflow:hidden;isolation:isolate}
.poster,.film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.poster,.film{filter:saturate(.94) brightness(.98)}
.poster{transform:scale(1.065)}
.film{opacity:0}
.journey[data-ready="true"] .film{opacity:1}
.veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0c090638,transparent 34%,transparent 76%,#0c090640)}
.header{position:absolute;left:36px;top:30px;z-index:3}
.brand{display:inline-flex;align-items:center;gap:13px;font:400 10px/1 var(--font-heading);letter-spacing:.16em;text-decoration:none;color:rgba(245,238,227,.72)}
.brand-mark{position:relative;width:18px;height:17px;display:block}
.brand-mark i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--paper)}
.brand-mark i:nth-child(1){top:0;left:7px}.brand-mark i:nth-child(2){bottom:0;left:0}.brand-mark i:nth-child(3){bottom:0;right:0}
.greeting{position:absolute;z-index:2;top:var(--eye-y,42%);left:var(--caption-x,clamp(30px,4.5vw,100px));width:var(--caption-width,clamp(200px,27vw,410px));transform:translateY(-50%);pointer-events:none}
h1{position:relative;display:block;margin:0;font:500 calc(var(--caption-width,320px) / 12.9)/1.2 "Academy Dossier",monospace;letter-spacing:0;white-space:nowrap;color:var(--terminal)}
.terminal-art{position:relative;display:block;width:100%;overflow:visible;text-shadow:var(--terminal-glow);-webkit-font-smoothing:antialiased}
.terminal-letter{display:inline-block;width:1ch;margin-right:.18em}
.caret{position:absolute;bottom:.13em;width:.6em;height:2px;background:currentColor;box-shadow:0 0 5px #ffffff55;animation:blink 1.05s step-end infinite}
.journey[data-typing="true"] .caret{animation:none;opacity:1}
@keyframes blink{0%,48%{opacity:1}49%,100%{opacity:0}}
.scroll-cue{position:absolute;left:50%;bottom:32px;transform:translateX(-50%);padding:12px 20px;border:0;background:none;cursor:pointer;opacity:.72;transition:opacity .35s}
.scroll-cue svg{fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;animation:breathe 2s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:translateY(0);opacity:.65}50%{transform:translateY(5px);opacity:1}}
.journey[data-phase="playing"] .scroll-cue,.journey[data-phase="complete"] .scroll-cue{opacity:0;pointer-events:none;visibility:hidden}
@media(max-width:600px){.header{left:22px;top:24px}.brand{font-size:9px;gap:10px}.greeting{left:var(--caption-x,18px);width:var(--caption-width,220px)}.greeting .terminal-art{width:max-content;left:50%;transform:translateX(-50%)}.greeting .terminal-letter:nth-last-child(2){margin-right:0}.scroll-cue{bottom:22px}}
@media(max-height:500px) and (min-width:601px){.header{top:23px}.scroll-cue{bottom:20px}}
@media(prefers-reduced-motion:reduce){.journey{height:100svh}.caret,.scroll-cue svg{animation:none}.scroll-cue{display:none}}
