:root{color-scheme:dark;font-family:Georgia,'Times New Roman',serif;color:#ecdfc3;background:#0b1210}*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button{font:14px Georgia;color:inherit;background:none;border:0;min-height:44px;padding:10px 18px;cursor:pointer}button:disabled{opacity:.35;cursor:wait}button:focus-visible,input:focus-visible,a:focus-visible{outline:1px solid #c9aa70;outline-offset:6px}button:hover{color:#fff6df}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}#experience,#world{position:absolute;inset:0}#world{touch-action:none;user-select:none;-webkit-user-select:none}#world canvas{display:block;width:100%;height:100%}.paper-compatible{position:absolute;inset:0}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#06100b55,transparent 20%,transparent 70%,#06100b85);box-shadow:inset 0 0 110px #0005}#intro{position:absolute;left:0;right:0;bottom:14%;text-align:center;pointer-events:none;z-index:3}#intro button{pointer-events:auto;font-size:21px;letter-spacing:.01em;border-bottom:1px solid #ba9b6860;padding-bottom:15px}.signature{font-size:12px;letter-spacing:.30em;margin-bottom:12px;color:#cfb785}.hint{font:12px/1.5 Georgia;color:#b9b5a6;margin-top:17px}#loading{position:absolute;left:0;right:0;bottom:7%;text-align:center;font:12px Georgia;color:#b0ad9d}#load-percent{margin-left:12px}#chapter{position:absolute;top:8%;left:15%;right:15%;text-align:center;margin:0;font:italic 20px Georgia;letter-spacing:.015em;pointer-events:none;text-shadow:0 2px 20px #000;transition:opacity .5s}#lantern-hint{position:absolute;bottom:15%;left:10%;right:10%;text-align:center;font:italic 17px/1.5 Georgia;pointer-events:none;text-shadow:0 2px 18px #000;transition:opacity .5s}.holding-light #world{cursor:none}#lantern-keyboard:focus{clip:auto;width:auto;height:auto;left:30%;right:30%;bottom:14%;margin:0;padding:14px;background:#122019de;z-index:10}#ending{position:absolute;bottom:15%;left:0;right:0;text-align:center;pointer-events:none}#ending p{font:italic 26px Georgia;margin:0 0 12px;text-shadow:0 2px 20px #000}#ending button{pointer-events:auto;font-size:14px;color:#cfb785}footer{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(420px,calc(100% - 36px));display:flex;align-items:center;gap:12px;z-index:5;opacity:.6;transition:opacity .7s}footer button{font:12px Georgia;white-space:nowrap;padding:8px 12px}.quiet footer{opacity:0}.quiet footer:hover,.quiet footer:focus-within{opacity:.9}footer:hover{opacity:.9}.timeline{position:relative;flex:1;height:44px;min-width:50px}.timeline input{position:absolute;inset:0;width:100%;height:44px;margin:0;opacity:0;cursor:ew-resize;z-index:2}.track{position:absolute;left:0;right:0;top:22px;height:1px;background:#bcab823b}.track i{display:block;width:100%;height:1px;background:#c8aa73;transform:scaleX(0);transform-origin:left}.timeline:focus-within{outline:1px solid #c9aa70;outline-offset:3px}#error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(450px,90%);background:#122019;padding:35px;text-align:center;z-index:20}#error a{display:block;font-size:14px;margin-top:20px}@media(max-width:700px){#intro{bottom:15%}#intro button{font-size:20px}.hint{font-size:12px;padding:0 35px}.signature{font-size:11px}#chapter{top:9%;font-size:18px}#lantern-hint{bottom:15%;font-size:16px}#ending{bottom:17%}#ending p{font-size:23px}.vignette{box-shadow:inset 0 0 50px #0004}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Flight remains inside the story's visual language. */
.flight-mode #controls,.flight-mode #intro,.flight-mode #ending,.flight-mode #chapter,.flight-mode #lantern-hint,.flight-mode #lantern-keyboard{display:none!important}
.flight-mode .vignette{box-shadow:inset 0 0 90px #071c1533;background:linear-gradient(#07110c33,transparent 25%,transparent 75%,#06100b66)}
#world:focus{outline:none}#flight-ui{position:absolute;inset:0;pointer-events:none;z-index:4}#flight-ui button{pointer-events:auto}
.flight-heading{position:absolute;top:max(30px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);text-align:center;width:65%;text-shadow:0 2px 18px #05110c}
.flight-heading .signature{font-size:11px;letter-spacing:.25em;color:#b8a983;margin:0 0 10px}#flight-objective{font:italic 22px/1.3 Georgia;margin:0;color:#f0e2c5}
#beacon-marks{display:flex;justify-content:center;gap:12px;margin-top:16px}#beacon-marks i{display:block;width:6px;height:6px;border:1px solid #ceae6c80;transform:rotate(45deg);transition:background 1s,box-shadow 1s}#beacon-marks i.lit{background:#f9cf80;box-shadow:0 0 12px #efb44a}
#flight-pause{position:absolute;right:22px;top:22px;font-size:14px;color:#d9c7a3;background:#091b122b;border-radius:2px}
#flight-hint{position:absolute;bottom:max(110px,calc(env(safe-area-inset-bottom) + 90px));left:15%;right:15%;text-align:center;font:italic 17px/1.5 Georgia;color:#ead8b2;text-shadow:0 2px 16px #000}
#breathe{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border:1px solid #bd9d5f55;padding:13px 23px;background:#0a201ab8;backdrop-filter:blur(8px);border-radius:2px;font-size:15px;color:#e9cea0;transition:border-color .4s,box-shadow .4s}#breathe span{font:10px Arial;letter-spacing:.1em;margin-left:16px;padding:4px 5px;border:1px solid #b7986155;color:#bcb296}#breathe.ready{border-color:#e9b467bb;box-shadow:0 0 26px #ffb13b19}#breathe:disabled{cursor:default;opacity:.55}
.flight-panel{position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 36px));text-align:center;padding:38px 28px;background:#0c201be8;border:1px solid #b3935840;box-shadow:0 25px 100px #0005;backdrop-filter:blur(14px)}
.flight-panel h1{font:normal 32px/1.1 Georgia;margin:19px 0}.flight-panel p:not(.signature){font:16px/1.6 Georgia;color:#c3b699;margin:18px 0 25px}.flight-panel button{display:block;width:100%;min-height:44px;margin:3px 0;color:#cbb78d}.flight-panel .primary-action{border:1px solid #b9955860;color:#f1dfb8;margin:20px 0 14px;background:#cba6630a}.flight-panel.finale{top:auto;bottom:12%;transform:translateX(-50%);background:linear-gradient(#10281fe6,#0b1c17ed);padding:28px}.finale h1{font-size:29px}
@media(pointer:coarse){#breathe{left:auto;right:22px;transform:none;min-height:58px;padding:14px 22px}#breathe span{display:none}#flight-hint{bottom:110px}}
@media(max-width:700px){.flight-heading{top:28px;width:70%}.flight-heading .signature{font-size:10px;letter-spacing:.15em}#flight-objective{font-size:19px}#flight-pause{top:18px;right:6px;padding:10px;font-size:12px}#flight-hint{font-size:15px;left:9%;right:9%}.flight-panel{padding:24px 20px}.flight-panel h1{font-size:28px}.flight-panel.finale{bottom:13%;}.finale h1{font-size:25px}}

/* A quiet steering reference; only the live controls appear over the paper world. */
#flight-reins{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border:1px solid #ead6a326;border-radius:50%;pointer-events:none;opacity:.65}
#flight-reins i{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px;border:1px solid #f5e4bf99;border-radius:50%;box-shadow:0 1px 6px #081b1680}
#reins-dot{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;background:#fff0cc;border-radius:50%;box-shadow:0 0 5px #fff0cc55;will-change:transform}
#flight-reins.touch-reins{background:#081a1433;border-color:#ead6a366}
#flight-menu{max-height:calc(100dvh - 32px);overflow-y:auto}

/* The only route marker is anchored to the next unlit ember. */
#beacon-target{position:absolute;left:0;top:0;will-change:transform;pointer-events:none;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:14px;color:#f4dca5;filter:drop-shadow(0 2px 5px #071511);z-index:3}
#beacon-target[hidden]{display:none}#beacon-target i{display:block;width:20px;height:20px;border:1px solid #f1ce8799;transform:rotate(45deg);box-shadow:0 0 0 6px #e1b45f09;transition:border-color .3s,box-shadow .3s}
#beacon-target span{font:11px/1.3 Georgia,serif;letter-spacing:.04em;white-space:nowrap;background:#0c201aab;padding:5px 9px;border-radius:2px}
#beacon-target.offscreen i{width:12px;height:12px;border-width:1px 1px 0 0;box-shadow:none;transform:rotate(calc(var(--bearing) + 45deg))}
#beacon-target.in-range i{border-color:#fff3c6;box-shadow:0 0 22px #edbb6566,0 0 0 8px #f0c77c15}#beacon-target.in-range span{color:#fff4cf}
@media(max-width:600px){#beacon-target span{font-size:10px}#beacon-target{gap:10px}}
