*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#10231e;color:#f2e9da;font:16px/1.6 system-ui,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,video:focus-visible,canvas:focus-visible{outline:3px solid #e8bc72;outline-offset:5px}header{height:96px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,5vw,86px);border-bottom:1px solid #d6bc8533;background:#122820}.brand{display:flex;align-items:center;gap:14px;letter-spacing:.22em;font-size:19px}.brand small{display:block;letter-spacing:.07em;font-size:11px;color:#c8bda9}.seal{font-size:40px;color:#e4bb78}nav{display:flex;gap:32px;font-size:14px}nav a:hover{color:#edc589}main{min-height:calc(100vh - 173px)}.hero{position:relative;min-height:650px;height:calc(100vh - 96px);max-height:1100px;display:grid;align-items:end;overflow:hidden}.hero img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.77}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#10231ef5 0%,#10231e70 55%,transparent)}.hero-copy{position:relative;z-index:1;max-width:870px;padding:70px clamp(24px,6vw,100px)}.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#f0c891}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.12}h1{font-size:clamp(44px,5.7vw,84px);margin:18px 0 24px}h2{font-size:34px;margin:12px 0}.hero p{max-width:650px;color:#e7dfd2;font-size:19px}.actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;border:1px solid #a5947366;border-radius:5px;color:#f6eedd;background:#26483e}.button.primary{background:#e9c48d;color:#182b22;border-color:#e9c48d}.button:hover{filter:brightness(1.08)}.button:disabled{opacity:.55;cursor:wait}.meta{font-size:13px;color:#cabcaa;letter-spacing:.06em;margin-top:24px}.intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:70px clamp(24px,6vw,100px);border-top:1px solid #d6bc8522}.intro p{color:#c9c4b6;max-width:580px}.page{max-width:1600px;padding:40px clamp(20px,4vw,65px);margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.page-heading h1{font-size:38px;margin:8px 0}.watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.screen{background:#081610;border:1px solid #d6bc8533;border-radius:9px;overflow:hidden;position:relative}video{display:block;width:100%;aspect-ratio:16/9;background:#000}.chapters{max-height:680px;overflow:auto;border-top:1px solid #d6bc8533}.chapter{display:flex;gap:14px;text-align:left;width:100%;background:none;color:#e9e3d7;border:0;border-bottom:1px solid #d6bc851a;padding:13px 10px;font-size:13px}.chapter:hover,.chapter.active{background:#e9c48d15}.chapter time{font-variant-numeric:tabular-nums;color:#d1af78;white-space:nowrap}.caption{font-size:14px;color:#bdbbad}.player-shell{min-height:420px;aspect-ratio:16/9;display:grid;place-items:center;position:relative;background:#081610;overflow:hidden}.player-shell canvas{width:100%;height:100%;position:absolute;inset:0;touch-action:none;outline-offset:-4px}.load-card{max-width:620px;text-align:center;padding:38px;z-index:2;background:#10231eea;border:1px solid #d6bc8533;border-radius:9px}.load-card h2{font-size:36px}.load-card p{color:#c9c4b6}progress{display:block;width:100%;height:8px;margin:24px 0;accent-color:#e9c48d}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;background:#18372c;flex-wrap:wrap}.toolbar p{margin:0;font-size:12px;color:#c8c6b5}.toolbar .button{padding:8px 14px;font-size:13px}.status{padding:70px;text-align:center}.error{color:#ffc5a9}footer{display:flex;justify-content:space-between;gap:24px;padding:25px clamp(24px,5vw,86px);color:#a9b4a9;font-size:12px;border-top:1px solid #d6bc8522}.hidden{display:none!important}body.playing header,body.playing footer{display:none}body.playing .page{padding:0;max-width:none}body.playing .page-heading{display:none}body.playing .player-shell{height:calc(100vh - 57px);min-height:0;aspect-ratio:auto}body.playing .screen{border-radius:0;border:0}body.playing main{min-height:0}@media(max-width:850px){header{height:auto;min-height:90px;gap:20px;padding:16px 22px}nav{gap:16px;font-size:12px}.watch-layout{grid-template-columns:1fr}.chapters{max-height:300px}.intro{grid-template-columns:1fr;gap:25px;padding:42px 24px}.hero{min-height:580px;height:calc(100vh - 100px)}.hero-copy{padding:45px 24px}.page-heading{align-items:start;flex-direction:column}.page-heading h1{font-size:31px}footer{flex-direction:column;gap:6px}.player-shell{aspect-ratio:auto;min-height:460px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

body.playing{height:100dvh;overflow:hidden}body.playing main,body.playing .page,body.playing .screen{height:100%}body.playing .screen{display:flex;flex-direction:column}body.playing .player-shell{flex:1;height:auto;min-height:0}body.playing .toolbar{flex:none}

/* Scene controls retain CSS-pixel resolution independently of the renderer. */
body.playing .toolbar{display:none}body.playing .player-shell{height:100dvh}.player-shell:fullscreen{width:100vw;height:100dvh}
.mobile-visit{--control-size:1;position:absolute;inset:0;pointer-events:none;font:13px/1.4 system-ui;color:#fff4df;user-select:none;-webkit-user-select:none}
.mobile-visit button,.mobile-visit select,.mobile-visit input,.mobile-visit summary{pointer-events:auto;touch-action:manipulation;font:inherit;color:inherit}
.mobile-visit button{min-height:44px;border:1px solid #fff2cf40;border-radius:14px;background:#102824c9;padding:9px 14px;cursor:pointer}.mobile-visit button:focus-visible{outline:2px solid #f2c575;outline-offset:3px}.mobile-visit svg{width:24px;height:24px;display:block;margin:auto}.mobile-visit button:disabled{opacity:.52}.mobile-visit [hidden],.mobile-visit .game-only,.mobile-visit .walk-only,#touch-pad{display:none}.mobile-visit[data-mode="Game"] .game-only,.mobile-visit[data-mode="Walk"] .walk-only,.mobile-visit[data-mode="Walk"] #touch-pad{display:block}.mobile-visit[data-mode="Game"] .visit-only{display:none}
.visit-heading{position:absolute;left:max(20px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));display:flex;align-items:center;gap:14px;text-shadow:0 2px 5px #000}.hud-brand{font-size:12px;letter-spacing:.2em}.visit-heading #mode-label{color:#f4ca83;font-size:12px}.touch-top{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));display:flex;gap:8px}.touch-top button{width:46px;height:44px;padding:10px}
#touch-game{position:absolute;left:max(18px,env(safe-area-inset-left));top:max(12px,env(safe-area-inset-top));width:min(280px,46%);filter:drop-shadow(0 2px 3px #000)}.trial-line{display:flex;justify-content:space-between;gap:12px;font-size:11px}.trial-line span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#resolve{height:10px;width:100%;accent-color:#9ed194}#touch-message{position:absolute;top:70px;left:25%;right:25%;text-align:center;font-size:12px;text-shadow:0 1px 4px #000;background:#10282480;border-radius:12px;padding:3px 8px}#touch-message:empty{display:none}
.touch-reticle{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border:1px solid #ffffffb0;border-radius:50%;box-shadow:0 0 2px #000}.touch-reticle i{position:absolute;width:4px;height:4px;background:#fff;left:8px;top:8px;border-radius:50%}
#touch-fire{position:absolute;left:max(42px,env(safe-area-inset-left));bottom:max(40px,env(safe-area-inset-bottom));width:calc(84px * var(--control-size));height:calc(84px * var(--control-size));border-radius:50%;border:2px solid #f3ce8980;background:#9b692ca0;touch-action:none}#touch-fire svg{width:32px;height:32px}#touch-fire small{font-size:8px;letter-spacing:.1em}#touch-fire.pressed{background:#bf8a3bd9;box-shadow:0 0 0 7px #eac07a26}
.touch-actions{position:absolute;right:max(28px,env(safe-area-inset-right));bottom:max(38px,env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center}.touch-actions button{width:calc(52px * var(--control-size));height:calc(52px * var(--control-size));border-radius:50%;padding:9px;font-size:10px}.touch-actions button[aria-pressed="true"]{border-color:#f2c575;background:#906026bd}
#touch-powers{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);gap:8px}.mobile-visit[data-mode="Game"] #touch-powers{display:flex}#touch-powers button{position:relative;width:44px;height:44px;min-height:44px;padding:8px;border-radius:50%;background:linear-gradient(#102824,#102824) padding-box,conic-gradient(#e3b966 var(--ready,100%),#45564e 0) border-box;border:2px solid transparent}#touch-powers svg{width:23px;height:23px}#touch-powers small{position:absolute;inset:13px 0;text-shadow:0 1px 3px #000;font-size:12px;font-weight:700}#touch-powers button:disabled svg{opacity:.25}
#touch-pad{position:absolute;pointer-events:auto;touch-action:none;bottom:max(28px,env(safe-area-inset-bottom));left:max(32px,env(safe-area-inset-left));width:calc(112px * var(--control-size));height:calc(112px * var(--control-size));border:1px solid #fff4df38;border-radius:50%;background:#10282445}#touch-pad span{position:absolute;left:32%;top:32%;width:36%;height:36%;border-radius:50%;border:1px solid #ffedc966;background:#fff4df38}.speed-button{position:absolute;left:160px;bottom:30px;min-width:44px}
#touch-menu{position:absolute;pointer-events:auto;touch-action:pan-y;inset:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) auto;width:min(430px,calc(100% - 28px));overflow:auto;overscroll-behavior:contain;padding:16px 22px;background:#102420fa;border:1px solid #ddc59640;border-radius:18px;box-shadow:0 12px 60px #0009}.panel-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.panel-heading h2{font-size:24px;flex:1;margin:0}.panel-heading button{border:0;background:transparent;font-size:22px;padding:6px}.mode-choices,.quality-choices{display:grid;gap:8px}.mode-choices button,.quality-choices button{text-align:left;padding:12px 16px;font-size:15px}.mode-choices span,.quality-choices span{display:block;font-size:12px;color:#c1cbc3;margin-top:3px}.quality-choices button[aria-pressed="true"]{border-color:#f1c373;background:#55482b}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.touch-row{display:flex;gap:8px;margin-top:12px}.touch-row button{flex:1}.destination-list{display:grid;gap:7px}.destination-list button{display:flex;text-align:left;justify-content:space-between;align-items:center;gap:16px;padding:12px}.destination-list button span{color:#ddbd80}.mobile-visit label{display:block;margin:20px 0}.mobile-visit input[type="range"]{display:block;width:100%;margin-top:14px;accent-color:#e3b966}.mobile-visit details{margin-top:24px}.mobile-visit select{width:100%;margin-top:8px}.astra-description{display:flex;align-items:center;gap:16px;padding:9px}.astra-description svg{margin:0}.menu-open #touch-fire,.menu-open #touch-pad,.menu-open .touch-actions,.menu-open #touch-powers,.menu-open .speed-button,.menu-open #trial-dialog{display:none!important}
#trial-dialog{position:absolute;pointer-events:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 40px));background:#102420f5;border:1px solid #dec39666;border-radius:18px;padding:24px;text-align:center;max-height:85%;overflow:auto}#trial-dialog h2{font-size:28px;margin:12px 0}#trial-dialog p{font-size:13px;color:#ced6cc}#trial-dialog button{margin:6px}#trial-dialog .primary{background:#e3bc7b;color:#182a22}
.mirrored #touch-fire{left:auto;right:max(42px,env(safe-area-inset-right))}.mirrored[data-mode="Game"] .touch-actions{right:auto;left:max(28px,env(safe-area-inset-left))}
@media(orientation:portrait){#touch-powers{bottom:130px;gap:8px}#touch-game{width:52%}#touch-message{top:74px;left:12%;right:12%}.touch-actions{bottom:40px;right:24px}#touch-fire{left:28px}#touch-menu{inset:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));width:auto}}
@media(max-height:430px){#touch-powers{bottom:12px;gap:6px}#touch-fire{bottom:24px;width:72px;height:72px}.touch-actions{bottom:30px}#touch-pad{bottom:20px;width:96px;height:96px}#touch-menu{padding:10px 18px}.panel-heading{margin-bottom:10px}}

.playing canvas:focus{outline:none}
