@font-face{font-family:Nomo;src:url('/landing/assets/nunito.ttf') format('truetype');font-display:swap;font-weight:400 950}
:root{--sc-canvas:#0a202c;--sc-surface:#153340;--sc-ink:#f3f5e7;--sc-ink-soft:#c0d7d4;--sc-accent:#d9dcb6;--sc-accent-ink:#17343f;--sc-font-display:Nomo,system-ui,sans-serif;--sc-font-text:Nomo,system-ui,sans-serif;--p:0;--eye:0;--weave:0;color-scheme:dark}
*{box-sizing:border-box}html{background:var(--sc-canvas);scroll-behavior:auto;overflow-x:hidden}body{margin:0;background:var(--sc-canvas);color:var(--sc-ink);font-family:Nomo,system-ui,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit;cursor:pointer}button,a,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid #dce7c9;outline-offset:5px}img{display:block;max-width:100%}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;z-index:999;padding:14px 20px;background:#173d46}
.masthead{position:fixed;z-index:250;inset:0 0 auto;height:100px;padding:24px 4vw;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand,.header-tools{display:flex;align-items:center;pointer-events:auto}.brand{gap:11px}.brand img{width:34px;height:34px;border-radius:10px}.brand span{font-size:22px;font-weight:950;letter-spacing:-1px}.header-tools{gap:16px}.language select{background:transparent;border:0;min-height:44px;font-size:12px;padding:8px 4px}.language option{background:#183544}.motion{background:transparent;border:1px solid #c8e0d31c;border-radius:50%;width:40px;height:40px;padding:10px}.motion svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.motion:hover{background:#c8e0d312}
.theatre{position:fixed;inset:0;z-index:2;overflow:hidden;isolation:isolate;background:#0a202c;pointer-events:none}.night{position:absolute;inset:-12%;background:linear-gradient(180deg,#071b2b33,transparent 60%),url('/landing/assets/sky.webp') center 26%/cover;opacity:.86;transform:translate3d(0,calc(var(--p)*-45px),0) scale(1.06)}.nebula{position:absolute;inset:-10%;background:radial-gradient(ellipse at 50% 38%,#87bea81c,transparent 43%),radial-gradient(ellipse at 15% 80%,#3e769c38,transparent 45%);opacity:calc(.3 + var(--p)*.7);transform:rotate(calc(var(--p)*-12deg))}.starlight,.spirit-flight{position:absolute;inset:0;width:100%;height:100%}.starlight{z-index:1}.spirit-flight{z-index:8}.distant-stars{position:absolute;inset:0;opacity:calc(.4 + var(--p)*.4)}.distant-stars i{position:absolute;width:5px;height:5px;background:#e7f1d5;transform:rotate(45deg);box-shadow:0 3px 13px #b2d9c66b;animation:twinkle 5s ease-in-out infinite}.distant-stars i:nth-child(1){left:17%;top:23%}.distant-stars i:nth-child(2){left:77%;top:18%;animation-delay:-2s}.distant-stars i:nth-child(3){left:87%;top:70%;animation-delay:-1s}.distant-stars i:nth-child(4){left:11%;top:63%;animation-delay:-4s}.distant-stars i:nth-child(5){left:67%;top:49%;animation-delay:-3s}
.constellations{position:absolute;inset:0;width:100%;height:100%;z-index:6;overflow:visible;opacity:0}.sky-branches{stroke:#d5dfbe;stroke-width:1;opacity:.24;stroke-dasharray:1200;stroke-dashoffset:calc((1 - var(--weave))*1200)}.nomo-constellation{stroke:#d4e3c9;stroke-width:1.5;stroke-linejoin:round}.nomo-constellation>path{stroke-dasharray:1800;stroke-dashoffset:calc((1 - var(--weave))*1800);opacity:.68}.nomo-constellation .eye-line{stroke-width:4;stroke-linecap:round;opacity:var(--eye);stroke-dasharray:none}.nomo-constellation .star-core{fill:#f5f4da;stroke:none}.nomo-constellation .star-rays{stroke:#d7e9d0;stroke-width:1;opacity:.7}.nomo-constellation .star-haze{fill:#c7e7c3;stroke:none;opacity:.11}.vignette{position:absolute;inset:0;z-index:11;background:linear-gradient(180deg,#071b2c22,transparent 20%,transparent 80%,#071b2c66);pointer-events:none}
.story-copy{z-index:15!important;pointer-events:none}.intro,.ending{position:absolute;left:5%;width:90%;text-align:center;pointer-events:none}.intro{top:13%}.intro h1{font-size:clamp(72px,10vw,154px);line-height:1;font-weight:950;letter-spacing:-.075em;margin:0;color:#f6f3df;text-shadow:0 7px 35px #10293666}.intro p,.ending p{font-size:13px;letter-spacing:.13em;color:#d7e0cf;font-weight:700;margin:22px 0 0}.ending{top:77%}.ending h2{font-size:clamp(44px,5vw,76px);line-height:1;font-weight:950;letter-spacing:-.07em;margin:0}.ending p{margin-top:13px;font-size:12px;letter-spacing:.1em}
.flight-nav{position:fixed;right:23px;top:50%;transform:translateY(-50%);z-index:200;display:grid;gap:5px}.flight-nav::before{content:'';position:absolute;width:1px;left:50%;top:22px;bottom:22px;background:#bfdac524}.flight-nav a{position:relative;width:40px;height:40px;display:block}.flight-nav a::before{content:'';position:absolute;left:18px;top:18px;width:4px;height:4px;border-radius:50%;background:#b7ccbf66;transition:background .25s,transform .25s}.flight-nav a[aria-current=true]::before{background:#e4e9ce;transform:rotate(45deg) scale(1.5);border-radius:1px}.touch-star{position:fixed;width:44px;height:44px;transform:translate(-50%,-50%);background:transparent;border:0;z-index:40;opacity:0;visibility:hidden;pointer-events:none}.touch-star span{display:block;width:6px;height:6px;margin:auto;background:#f6f4d4;transform:rotate(45deg);box-shadow:0 3px 18px #bfe8b6aa}.touch-star:hover span{transform:rotate(45deg) scale(1.4)}.credits{position:fixed;bottom:17px;left:50%;transform:translateX(-50%);z-index:200;display:flex;width:max-content;gap:24px;align-items:center;justify-content:center;white-space:nowrap;font-size:10px;font-weight:600;color:#bfd2c7;opacity:0;visibility:hidden}.credits a{min-height:36px;display:flex;align-items:center}.credits a:hover{color:#fff8d9}.credits small{font-size:9px;opacity:.6}
@keyframes breath{50%{transform:translateY(-3px) scaleY(1.01)}}@keyframes cloud-drift{to{translate:6vw 0}}@keyframes twinkle{0%,100%{opacity:.2;scale:.55}50%{opacity:.8;scale:1.1}}
@media(max-width:700px){.masthead{height:78px;padding:17px 5vw}.brand{gap:8px}.brand span{font-size:19px}.brand img{width:30px;height:30px;border-radius:8px}.header-tools{gap:8px}.motion{width:36px;height:36px;padding:8px}.language select{font-size:11px}.intro{top:10%}.intro h1{font-size:clamp(65px,18vw,110px);letter-spacing:-.075em}.intro p{font-size:11px;margin-top:16px;letter-spacing:.12em}.far{width:210vw;left:-65%;top:39%}.near{width:250vw;left:-90%;top:68%}.veil{width:250vw;left:-80%;top:100%}.ending{top:72%}.ending h2{font-size:57px}.ending p{font-size:11px;letter-spacing:.08em}.credits{gap:14px;bottom:13px;font-size:9px;max-width:94vw;flex-wrap:nowrap;row-gap:0}.credits small{display:none}.flight-nav{right:0;gap:0}.flight-nav a{width:32px;height:38px}.flight-nav a::before{left:14px;top:17px}.flight-nav::before{top:20px;bottom:20px}.vignette{background:linear-gradient(180deg,#071b2c22,transparent 20%,transparent 83%,#071b2c66)}}
@media(max-height:600px) and (min-width:701px){.intro{top:18%}.intro h1{font-size:80px}.ending{top:73%}.ending h2{font-size:44px}.ending p{margin-top:8px}.credits{bottom:4px}}
body[data-quiet=true] *,body[data-quiet=true] *::before,body[data-quiet=true] *::after{animation:none!important;transition:none!important}body[data-hidden=true] *,body[data-hidden=true] *::before{animation-play-state:paused!important}

body[data-quiet=true] .night,body[data-quiet=true] .nebula,body[data-quiet=true] [data-sc-copy]{transform:none!important}

/* The unaltered story camera and independent native layers are painted together.
   Keep this canvas untransformed so its contact/camera coordinates match Godot. */
.starlight{transform:none!important}
.intro{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}


/* Three star silhouettes share the zoom transform and soul projection. */
.constellations{transform-origin:50% 40%;will-change:transform,opacity}
.nomo-constellation{stroke:currentColor}
.nomo-constellation>path.outline{stroke-width:1.35;opacity:.64}
.nomo-constellation .star-core{fill:currentColor}
.nomo-constellation .star-haze{fill:currentColor;opacity:.10}
.nomo-constellation .star-rays{animation:star-shimmer 4.8s ease-in-out infinite}
.star-bridge{stroke:#d4e3c9;stroke-width:1;opacity:calc(var(--weave)*.23);stroke-dasharray:4 8}
@keyframes star-shimmer{0%,100%{opacity:.28}50%{opacity:.85}}
