:root{--gold:#c9a35b;--gold-dim:#c9a35b8c;--ink:#e9e3d6;--ink-dim:#e9e3d69e;--panel:#0a0c0bb8;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:"Avenir Next", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{background:#070808;height:100%;margin:0;overflow:hidden}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none;overscroll-behavior:none}#app{position:fixed;inset:0}#game-canvas{touch-action:none;outline:none;display:block;position:absolute;inset:0}#ui-root{pointer-events:none;position:absolute;inset:0}#ui-root>*{pointer-events:none}#ui-root .interactive{pointer-events:auto}.layer{opacity:0;visibility:hidden;transition:opacity .6s,visibility 0s linear .6s;position:absolute;inset:0}.layer.show{opacity:1;visibility:visible;transition:opacity .6s,visibility}.loading{background:radial-gradient(at 50% 60%,#151a17 0%,#070808 70%);flex-direction:column;justify-content:center;align-items:center;display:flex}.loading .title{font-family:var(--serif);letter-spacing:.42em;color:var(--ink);margin-right:-.42em;font-size:clamp(28px,3.4vw,54px);font-weight:400}.loading .sub{letter-spacing:.4em;color:var(--gold-dim);text-transform:uppercase;margin-top:18px;font-size:12px}.loading .bar{background:#ffffff1a;width:min(420px,50vw);height:1px;margin-top:56px;position:relative;overflow:hidden}.loading .bar i{background:linear-gradient(90deg, transparent, var(--gold));width:0%;transition:width .25s;position:absolute;top:0;bottom:0;left:0}.loading .status{letter-spacing:.2em;color:var(--ink-dim);text-transform:uppercase;min-height:1em;margin-top:14px;font-size:11px}.loading .tip{text-align:center;width:min(640px,80vw);font-family:var(--serif);color:var(--ink-dim);font-size:15px;font-style:italic;line-height:1.6;position:absolute;bottom:8vh}.loading .sun{opacity:.8;width:64px;height:64px;margin-bottom:36px;animation:18s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.menu{background:linear-gradient(90deg,#050606c7 0%,#05060659 38%,#0000 60%);flex-direction:column;justify-content:center;padding-left:9vw;display:flex}.menu .title{font-family:var(--serif);letter-spacing:.18em;text-shadow:0 4px 30px #0009;font-size:clamp(34px,4.6vw,76px);font-weight:400;line-height:1.05}.menu .title small{letter-spacing:.62em;color:var(--gold);font-size:.32em;font-family:var(--sans);margin-bottom:.9em;display:block}.menu .rule{background:var(--gold-dim);width:90px;height:1px;margin:34px 0 30px}.menu nav{flex-direction:column;gap:6px;display:flex}.menu button,.panel button.item{pointer-events:auto;color:var(--ink-dim);font-family:var(--sans);letter-spacing:.34em;text-align:left;cursor:pointer;text-transform:uppercase;background:0 0;border:0;padding:10px 0;font-size:15px;transition:color .2s,letter-spacing .3s,padding .3s;position:relative}.menu button:before{content:"";background:var(--gold);transform-origin:0;width:14px;height:1px;transition:transform .3s;position:absolute;top:50%;left:-26px;transform:scaleX(0)}.menu button:hover,.menu button:focus-visible{color:var(--ink);outline:none;padding-left:8px}.menu button:hover:before,.menu button:focus-visible:before{transform:scaleX(1)}.menu button[disabled]{opacity:.28;cursor:default}.menu button[disabled]:hover{color:var(--ink-dim);padding-left:0}.menu button[disabled]:before{display:none}.menu .meta{letter-spacing:.18em;color:var(--ink-dim);text-transform:uppercase;min-height:1.4em;margin-top:26px;font-size:11px}.menu .foot{letter-spacing:.22em;color:#e9e3d659;text-transform:uppercase;font-size:10px;position:absolute;bottom:4vh;left:9vw}.pause{background:#00000040}.pause .objective{text-align:right;max-width:380px;position:absolute;bottom:12vh;right:7vw}.pause .objective h4{letter-spacing:.34em;color:var(--gold);text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:400}.pause .objective p{font-family:var(--serif);color:var(--ink);margin:0;font-size:18px;line-height:1.5}.pause .objective .progress{letter-spacing:.18em;color:var(--ink-dim);text-transform:uppercase;margin-top:16px;font-size:11px}.panel-wrap{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0405059e;justify-content:center;align-items:center;display:flex}.panel{pointer-events:auto;background:var(--panel);border:1px solid #c9a35b2e;width:min(760px,92vw);max-height:84vh;padding:36px 44px 30px;overflow:auto}.panel h2{font-family:var(--serif);letter-spacing:.28em;margin:0 0 6px;font-size:22px;font-weight:400}.panel .tabs{border-bottom:1px solid #ffffff14;gap:26px;margin:18px 0;display:flex}.panel .tabs button{pointer-events:auto;color:var(--ink-dim);letter-spacing:.3em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;margin-bottom:-1px;padding:10px 0;font-size:11px}.panel .tabs button.on{color:var(--ink);border-bottom-color:var(--gold)}.row{letter-spacing:.08em;border-bottom:1px solid #ffffff0a;grid-template-columns:1fr 260px;align-items:center;padding:11px 0;font-size:13px;display:grid}.row label{color:var(--ink)}.row .hint{color:var(--ink-dim);letter-spacing:.04em;margin-top:3px;font-size:11px;display:block}.seg{gap:4px;display:flex}.seg button{pointer-events:auto;color:var(--ink-dim);letter-spacing:.2em;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;flex:1;padding:7px 0;font-size:11px}.seg button.on{color:#111;background:var(--gold);border-color:var(--gold)}input[type=range]{pointer-events:auto;width:100%;accent-color:var(--gold)}.keybtn{pointer-events:auto;color:var(--ink);letter-spacing:.14em;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;min-width:90px;padding:6px 12px;font-size:12px}.keybtn.wait{border-color:var(--gold);color:var(--gold)}.panel .actions{justify-content:space-between;margin-top:24px;display:flex}.panel .actions button{pointer-events:auto;color:var(--ink);letter-spacing:.3em;cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid #c9a35b66;padding:10px 22px;font-size:11px}.panel .actions button:hover{background:#c9a35b1f}.panel .note{color:var(--ink-dim);letter-spacing:.06em;margin-top:10px;font-size:11px}.hud{opacity:1;visibility:visible}.prompt{opacity:0;letter-spacing:.26em;text-transform:uppercase;text-shadow:0 1px 8px #000c;align-items:center;gap:12px;font-size:12px;transition:opacity .25s,transform .25s;display:flex;position:absolute;bottom:17vh;left:50%;transform:translate(-50%)translateY(8px)}.prompt.show{opacity:1;transform:translate(-50%)translateY(0)}.key{letter-spacing:.06em;background:#00000059;border:1px solid #e9e3d6b3;border-radius:3px;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 7px;font-size:11px;display:inline-flex}.subs{text-align:center;opacity:0;text-shadow:0 2px 10px #000000f2,0 0 2px #000000e6;width:min(900px,80vw);font-size:clamp(15px,1.25vw,20px);line-height:1.45;transition:opacity .3s;position:absolute;bottom:7vh;left:50%;transform:translate(-50%)}.subs.show{opacity:1}.subs b{letter-spacing:.16em;color:var(--gold);margin-right:10px;font-size:.72em;font-weight:600}.subs b.TOBY{color:#9fc3c0}.subs .radio:after{content:" ◦ radio";letter-spacing:.2em;color:var(--ink-dim);font-size:.6em;font-weight:400}.toasts{flex-direction:column;gap:10px;display:flex;position:absolute;bottom:8vh;left:4vw}.toast{opacity:0;letter-spacing:.26em;text-transform:uppercase;text-shadow:0 1px 6px #000000e6;align-items:center;gap:14px;font-size:11px;transition:opacity .5s,transform .5s;display:flex;transform:translate(-12px)}.toast.show{opacity:1;transform:none}.toast .ico{border:1px solid var(--gold);border-radius:50%;width:22px;height:22px;position:relative}.toast .ico:after{content:"";background:var(--gold);opacity:.7;border-radius:50%;position:absolute;inset:6px}.toast small{color:var(--ink-dim);letter-spacing:.14em;text-transform:none;margin-top:3px;font-size:11px;display:block}.card{opacity:0;text-shadow:0 2px 20px #000c;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1.4s;display:flex;position:absolute;inset:0}.card.show{opacity:1}.card .num{letter-spacing:.7em;color:var(--gold);margin-right:-.7em;font-size:12px}.card .name{font-family:var(--serif);letter-spacing:.3em;margin-top:18px;margin-right:-.3em;font-size:clamp(30px,3.4vw,56px);font-weight:400}.card .line{background:var(--gold-dim);width:60px;height:1px;margin-top:22px}.skip{opacity:0;letter-spacing:.26em;color:var(--ink-dim);text-transform:uppercase;align-items:center;gap:10px;font-size:10px;transition:opacity .4s;display:flex;position:absolute;bottom:5vh;right:4vw}.skip.show{opacity:1}.skip svg{width:26px;height:26px;transform:rotate(-90deg)}.skip circle.fg{stroke:var(--gold);stroke-dasharray:69.1;stroke-dashoffset:69.1px}.fade{opacity:0;background:#000;transition:opacity .8s;position:absolute;inset:0}.fade.show{opacity:1}.minimap{opacity:0;filter:drop-shadow(0 2px 10px #0000008c);border-radius:50%;transition:opacity .5s;position:absolute;top:3.2vh;right:2.6vw}.minimap.show{opacity:1}.dev{color:#ffffffb3;text-align:right;white-space:pre;text-shadow:0 1px 2px #000;font:11px/1.4 ui-monospace,Menlo,monospace;position:absolute;bottom:10px;right:12px}.click-hint{letter-spacing:.3em;color:var(--ink-dim);text-transform:uppercase;opacity:0;font-size:11px;transition:opacity .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.click-hint.show{opacity:1}.journal{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#040505a8;justify-content:center;align-items:center;display:flex}.journal .book{pointer-events:auto;background:var(--panel);border:1px solid #c9a35b33;grid-template-columns:260px 1fr;width:min(1000px,92vw);height:min(620px,82vh);display:grid}.journal ul{border-right:1px solid #ffffff0f;margin:0;padding:26px 0;list-style:none;overflow:auto}.journal li{letter-spacing:.1em;color:var(--ink-dim);cursor:pointer;padding:12px 24px;font-size:12px}.journal li.on{color:var(--ink);box-shadow:inset 2px 0 0 var(--gold);background:#c9a35b14}.journal li.locked{opacity:.3;cursor:default}.journal li small{letter-spacing:.24em;color:var(--gold-dim);text-transform:uppercase;margin-bottom:4px;font-size:10px;display:block}.journal .page{color:#2b2217;background:linear-gradient(#e8dcbef2,#d6c6a0f2);padding:40px 48px;overflow:auto}.journal .page h3{font-family:var(--serif);letter-spacing:.05em;margin:0 0 22px;font-size:24px;font-weight:400}.journal .page p{font-family:var(--serif);margin:0;font-size:18px;font-style:italic;line-height:1.75}.journal .page img{mix-blend-mode:multiply;max-width:100%;margin:26px auto 0;display:block}.journal .close{letter-spacing:.3em;color:var(--ink-dim);text-transform:uppercase;font-size:10px;position:absolute;bottom:7vh;left:50%;transform:translate(-50%)}.end-card{text-align:center;background:#000000d1;flex-direction:column;justify-content:center;align-items:center;display:flex}.end-card h1{font-family:var(--serif);letter-spacing:.3em;margin:18px 0 8px;font-size:clamp(26px,3vw,46px);font-weight:400}.end-card p{font-family:var(--serif);color:var(--ink-dim);max-width:620px;font-size:17px;font-style:italic;line-height:1.7}.end-card .stats{letter-spacing:.24em;color:var(--ink-dim);text-transform:uppercase;margin-top:18px;font-size:11px}.end-card nav{gap:20px;margin-top:38px;display:flex}.end-card button{pointer-events:auto;color:var(--ink);letter-spacing:.3em;cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid #c9a35b66;padding:12px 26px;font-size:11px}.end-card button:hover{background:#c9a35b1f}.hud.paused .subs,.hud.paused .prompt{opacity:0!important}:root{--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--tb:clamp(54px, 15vmin, 84px)}.touch-only{display:none!important}body.touch .touch-only{display:inline-block!important}body.touch .kb-only{display:none}.touch-ui{visibility:hidden;opacity:0;transition:opacity .3s;position:absolute;inset:0}.touch-ui.show{visibility:visible;opacity:1}.touch-ui .stick{opacity:0;pointer-events:none;background:#0000002e;border:1.5px solid #e9e3d659;border-radius:50%;width:clamp(110px,30vmin,150px);height:clamp(110px,30vmin,150px);margin:calc(clamp(110px,30vmin,150px)/-2) 0 0 calc(clamp(110px,30vmin,150px)/-2);transition:opacity .2s,border-color .2s;position:absolute;top:0;left:0}.touch-ui .stick.on{opacity:1}.touch-ui .stick.sprint{border-color:var(--gold)}.touch-ui .knob{background:#e9e3d68c;border-radius:50%;width:42%;height:42%;margin:-21% 0 0 -21%;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #0006}.touch-ui .tbtn{width:var(--tb);height:var(--tb);color:var(--ink);letter-spacing:.18em;text-indent:.18em;text-shadow:0 1px 4px #000;touch-action:none;background:#080a0961;border:1.5px solid #e9e3d673;border-radius:50%;justify-content:center;align-items:center;font-size:11px;transition:background .12s,border-color .2s,transform .12s;display:flex;position:absolute}.touch-ui .tbtn.on{background:#c9a35b59;transform:scale(.94)}.touch-ui .jump{right:calc(4vmin + var(--sar));bottom:calc(5vmin + var(--sab));width:calc(var(--tb) * 1.2);height:calc(var(--tb) * 1.2)}.touch-ui .interact{right:calc(4vmin + var(--sar) + var(--tb) * 1.35);bottom:calc(5vmin + var(--sab) + var(--tb) * .1)}.touch-ui .interact.ready{border-color:var(--gold);color:var(--gold);box-shadow:0 0 14px #c9a35b80}.touch-ui .drop{right:calc(4vmin + var(--sar) + var(--tb) * .1);bottom:calc(5vmin + var(--sab) + var(--tb) * 1.4);width:calc(var(--tb) * .75);height:calc(var(--tb) * .75);font-size:12px}.touch-ui .pause,.touch-ui .journal{top:calc(2.4vmin + var(--sat));letter-spacing:0;text-indent:0;width:44px;height:44px;font-size:14px}.touch-ui .pause{left:calc(3vmin + var(--sal))}.touch-ui .journal{left:calc(3vmin + var(--sal) + 56px)}.touch-ui.cine .stick,.touch-ui.cine .interact,.touch-ui.cine .drop,.touch-ui.cine .journal{display:none}body.touch .prompt{bottom:calc(5vmin + var(--sab) + var(--tb) * 2.4)}body.touch .skip{bottom:calc(5vmin + var(--sab) + var(--tb) * 1.5)}body.touch .toasts{bottom:auto;top:calc(2.4vmin + var(--sat) + 60px);left:calc(3vmin + var(--sal))}body.touch .dev{top:calc(2.4vmin + var(--sat) + 48px);bottom:auto;right:calc(3vmin + var(--sar))}.journal .close button{pointer-events:auto;color:var(--ink);letter-spacing:.3em;text-transform:uppercase;background:0 0;border:1px solid #c9a35b66;padding:12px 28px;font-size:11px}.panel,.journal ul,.journal .page{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}input[type=range]{touch-action:pan-x}@media (hover:none){.menu button:hover{color:var(--ink-dim);padding-left:0}.menu button:hover:before{transform:scaleX(0)}.menu button:active{color:var(--ink)}}.minimap{top:calc(3.2vh + var(--sat));right:calc(2.6vw + var(--sar))}@media (max-width:900px),(max-height:560px){.minimap{width:clamp(96px,24vmin,176px)!important;height:clamp(96px,24vmin,176px)!important}.menu{padding-left:calc(7vw + var(--sal));padding-right:6vw}.menu .rule{margin:18px 0 16px}.menu nav{gap:0}.menu button,.panel button.item{letter-spacing:.26em;padding:11px 0;font-size:13px}.menu .foot{left:calc(7vw + var(--sal));bottom:calc(2vh + var(--sab))}.pause .objective{right:calc(5vw + var(--sar));bottom:calc(6vh + var(--sab));max-width:min(380px,40vw)}.pause .objective p{font-size:15px}.panel{width:min(760px, calc(100vw - 24px - var(--sal) - var(--sar)));max-height:calc(100dvh - 24px - var(--sat) - var(--sab));padding:22px 20px 18px}.panel h2{font-size:18px}.panel .tabs{touch-action:pan-x;gap:16px;margin:10px 0;overflow-x:auto}.panel .tabs button{white-space:nowrap;padding:12px 0}.row{grid-template-columns:1fr minmax(150px,46%);gap:12px}.seg button{padding:10px 0}.panel .actions{flex-wrap:wrap;gap:10px}.panel .actions button{padding:12px 18px}.subs{width:88vw;bottom:calc(4vh + var(--sab));font-size:clamp(13px,3.6vmin,18px)}body.touch .subs{bottom:calc(5vmin + var(--sab) + var(--tb) * 1.35);width:min(88vw, calc(100vw - var(--tb) * 4.4))}.journal .book{width:calc(100vw - 24px - var(--sal) - var(--sar));height:calc(100dvh - 80px - var(--sat) - var(--sab));grid-template-columns:minmax(150px,34%) 1fr;margin-bottom:40px}.journal .page{padding:22px}.journal .page h3{margin-bottom:14px;font-size:19px}.journal .page p{font-size:15px;line-height:1.6}.journal li{padding:12px 14px}.journal .close{bottom:calc(8px + var(--sab))}.end-card{padding:16px calc(16px + var(--sar)) 16px calc(16px + var(--sal));overflow-y:auto}.end-card p{font-size:15px}.end-card nav{flex-wrap:wrap;justify-content:center;margin-top:22px}.loading .tip{font-size:13px}}@media (max-width:600px) and (orientation:portrait){.menu{padding-bottom:calc(14vh + var(--sab));background:linear-gradient(#0000 20%,#05060666 45%,#050606d9 100%);justify-content:flex-end}.menu .title{letter-spacing:.12em;font-size:clamp(30px,10vw,44px)}.pause .objective{left:calc(7vw + var(--sal));right:7vw;top:calc(4vh + var(--sat));text-align:left;max-width:none;bottom:auto}.pause{justify-content:flex-end}.row{grid-template-columns:1fr;gap:8px}.journal .book{grid-template-rows:minmax(90px,30%) 1fr;grid-template-columns:1fr}.journal ul{border-bottom:1px solid #ffffff0f;border-right:0;padding:8px 0}.loading .title{letter-spacing:.24em;margin-right:-.24em;font-size:26px}.loading .bar{width:70vw}.card .name{letter-spacing:.16em;text-align:center;margin-right:-.16em;font-size:26px}.toasts{left:4vw;right:4vw}body.touch .subs{width:90vw;bottom:calc(5vmin + var(--sab) + var(--tb) * 2.25)}body.touch .prompt{bottom:calc(5vmin + var(--sab) + var(--tb) * 3.6)}}@media (max-height:460px) and (orientation:landscape){.menu .title{font-size:clamp(24px,8vh,40px)}.menu .title small{margin-bottom:.5em}.menu .rule{margin:10px 0 8px}.menu button,.panel button.item{padding:7px 0}.menu .meta{margin-top:10px}.card .name{font-size:clamp(22px,7vh,36px)}.loading .sun{width:44px;height:44px;margin-bottom:16px}.loading .bar{margin-top:24px}}
