@font-face{font-family:Doto;src:url(/fonts/doto/Doto-VariableFont.ttf)format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono/IBMPlexMono-Regular.ttf)format("truetype");font-weight:400;font-display:swap}:root{--bg:#050505;--ink:#ece6d6;--ink-dim:#ece6d68c;--brass:#c9a227;--brass-dim:#c9a22766;--dread:#8a1f1f;--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--dot:"Doto", var(--mono)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--mono);overscroll-behavior:none;-webkit-text-size-adjust:100%;overflow:hidden}.stage{background:var(--bg);-webkit-user-select:none;user-select:none;height:100dvh;position:fixed;inset:0}.world-video{filter:saturate(.92)contrast(1.04)}.grain{pointer-events:none;z-index:3;opacity:.35;mix-blend-mode:multiply;background-image:repeating-linear-gradient(0deg,#00000024 0 1px,#0000 1px 3px);position:absolute;inset:0}.vignette{pointer-events:none;z-index:4;background:radial-gradient(ellipse at center, transparent 42%, rgba(0, 0, 0, var(--vig,.3)) 100%);transition:background 1s linear;position:absolute;inset:0}.is-critical .vignette{animation:1.1s ease-in-out infinite dread-pulse}@keyframes dread-pulse{0%,to{box-shadow:inset 0 0 120px #8a1f1f00}50%{box-shadow:inset 0 0 160px #8a1f1f73}}.hud{z-index:10;pointer-events:none;position:absolute;inset:0}.hud-corner{flex-direction:column;gap:6px;display:flex;position:absolute}.hud-top-left{top:28px;left:32px}.hud-top-right{align-items:flex-end;top:28px;right:32px}.hud-bottom-left{bottom:28px;left:32px}.hud-bottom-right{align-items:flex-end;bottom:28px;right:32px}.loop-counter{font-family:var(--dot);letter-spacing:.08em;color:var(--ink);text-shadow:0 0 18px #000c;font-size:40px;font-weight:700}.variation-label{letter-spacing:.42em;color:var(--brass);font-size:11px}.clock{font-family:var(--dot);letter-spacing:.1em;text-shadow:0 0 18px #000c;font-size:34px;font-weight:700}.clock-critical{color:#d05c5c;animation:1s steps(2,start) infinite clock-blink}@keyframes clock-blink{50%{opacity:.55}}.time-bar{background:#ece6d629;width:180px;height:2px}.time-bar-fill{background:var(--brass);height:100%;transition:width 1s linear}.key-tag{letter-spacing:.28em;color:var(--ink-dim);text-transform:uppercase;font-size:11px}.key-held{color:var(--brass);text-shadow:0 0 14px #c9a22780}.controls-hint{letter-spacing:.3em;color:#ece6d659;font-size:10px}.hud-hint{text-align:center;letter-spacing:.28em;max-width:min(90vw,720px);color:var(--ink);border:1px solid var(--brass-dim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0505058c;padding:10px 22px;font-size:13px;animation:.42s ease-out hint-in;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.hint-objective{color:var(--bg);background:var(--brass);border-color:var(--brass);font-weight:700;box-shadow:0 0 40px #c9a22759}.hint-nudge{color:var(--ink-dim)}.blocked-flash{letter-spacing:.42em;color:#d05c5c;pointer-events:none;background:#05050580;border:1px solid #d05c5c73;padding:8px 18px;font-size:12px;animation:.22s ease-out blocked-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes blocked-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.94)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.lock-prompt{letter-spacing:.36em;color:#ece6d68c;pointer-events:none;font-size:10px;animation:2.6s ease-in-out infinite boot-breathe;position:absolute;top:50%;left:50%;transform:translate(-50%,calc(44px - 50%))}.overlay{z-index:20;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:40px;display:flex;position:absolute;inset:0}.overlay-title{background:var(--bg)}.kicker{letter-spacing:.5em;color:var(--brass);font-size:11px}.title{font-family:var(--dot);letter-spacing:.06em;font-size:clamp(46px,9vw,110px);font-weight:800;line-height:1}.premise{max-width:460px;color:var(--ink-dim);font-size:13px;line-height:1.8}.anchor-row{letter-spacing:.16em;color:var(--ink-dim);align-items:center;gap:16px;font-size:11px;display:flex}.anchor-missing{color:#d05c5c}.anchor-pick{cursor:pointer;border-bottom:1px solid var(--brass-dim);color:var(--brass)}.anchor-pick input{display:none}.start-button{font-family:var(--mono);letter-spacing:.5em;text-indent:.5em;color:var(--bg);background:var(--brass);cursor:pointer;border:none;margin-top:14px;padding:16px 44px;font-size:15px;transition:background .16s,transform .16s}.start-button:hover:not(:disabled){background:#e0b83a;transform:translateY(-1px)}.start-button:disabled{color:#ece6d666;cursor:not-allowed;background:#ece6d624}.config-warning{letter-spacing:.14em;color:#d05c5c;font-size:11px}.overlay-boot{background:#050505eb}.boot-line{letter-spacing:.4em;color:var(--ink-dim);font-size:13px;animation:2.4s ease-in-out infinite boot-breathe}@keyframes boot-breathe{0%,to{opacity:.45}50%{opacity:1}}.overlay-wake{background:#000;animation:.8s ease-out wake-in}@keyframes wake-in{0%{opacity:0}to{opacity:1}}.wake-line{letter-spacing:.2em;color:var(--ink);font-size:clamp(20px,3.4vw,34px);animation:1.6s ease-out wake-line-in}@keyframes wake-line-in{0%{opacity:0;transform:translateY(6px)}40%{opacity:0}to{opacity:1;transform:none}}.wake-loop{font-family:var(--dot);letter-spacing:.2em;color:var(--brass);font-size:22px;font-weight:700;animation:2.2s ease-out wake-line-in}.wake-hint{letter-spacing:.1em;max-width:420px;color:var(--ink-dim);font-size:12px;line-height:1.8;animation:2.8s ease-out wake-line-in}.settings-root{z-index:30;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;top:26px;left:50%;transform:translate(-50%)}.settings-gear{width:34px;height:34px;color:var(--ink-dim);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0505058c;border:1px solid #ece6d62e;border-radius:50%;place-items:center;transition:color .16s,border-color .16s,transform .3s;display:grid}.settings-gear:hover{color:var(--brass);border-color:var(--brass-dim)}.settings-gear.is-open{color:var(--brass);border-color:var(--brass);transform:rotate(60deg)}.settings-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050505f0;border:1px solid #c9a22747;width:330px;padding:16px 18px;animation:.2s ease-out hint-in}.settings-title{letter-spacing:.42em;color:var(--brass);margin-bottom:12px;font-size:10px}.setting-row{letter-spacing:.08em;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:7px 0;font-size:11px;display:flex}.setting-label{flex-direction:column;gap:2px;display:flex}.setting-hint{letter-spacing:.16em;color:#ece6d666;text-transform:uppercase;font-size:9px}.setting-control{flex:0 0 128px;justify-content:flex-end;display:flex}.setting-control input[type=range]{width:128px;accent-color:var(--brass);cursor:pointer}.setting-control input[type=checkbox]{width:16px;height:16px;accent-color:var(--brass);cursor:pointer}.settings-divider{background:#ece6d61f;height:1px;margin:10px 0}.settings-footer{letter-spacing:.12em;color:#ece6d657;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:9px;display:flex}.settings-footer button{font-family:var(--mono);letter-spacing:.12em;color:var(--brass);border:1px solid var(--brass-dim);cursor:pointer;background:0 0;padding:5px 9px;font-size:9px}.settings-footer button:disabled{color:#ece6d638;cursor:not-allowed;border-color:#ece6d61f}.setting-control select{font-family:var(--mono);letter-spacing:.1em;color:var(--ink);cursor:pointer;background:#101010;border:1px solid #ece6d633;padding:4px 6px;font-size:10px}.touch-controls{z-index:15;touch-action:none;position:absolute;inset:0}.touch-look-pad{touch-action:none;position:absolute;inset:0}.touch-stick{left:max(24px, env(safe-area-inset-left));bottom:max(28px, env(safe-area-inset-bottom));touch-action:none;place-items:center;width:140px;height:140px;display:grid;position:absolute}.touch-stick-ring{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05050552;border:1px solid #ece6d647;border-radius:50%;position:absolute;inset:0}.touch-stick-knob{background:#c9a227cc;border-radius:50%;width:56px;height:56px;transition:transform 60ms linear;position:relative;box-shadow:0 0 24px #c9a22766}.touch-stick-label{letter-spacing:.34em;color:#ece6d673;font-size:9px;position:absolute;bottom:-18px}.touch-actions{right:max(24px, env(safe-area-inset-right));bottom:max(34px, env(safe-area-inset-bottom));flex-direction:column;align-items:flex-end;gap:14px;display:flex;position:absolute}.touch-interact{width:108px;height:108px;font-family:var(--mono);letter-spacing:.18em;color:var(--bg);background:var(--brass);cursor:pointer;touch-action:manipulation;border:none;border-radius:50%;font-size:13px;box-shadow:0 0 34px #c9a22766}.touch-interact:active{transform:scale(.95)}.touch-tilt{font-family:var(--mono);letter-spacing:.16em;color:var(--ink-dim);cursor:pointer;touch-action:manipulation;background:#0505058c;border:1px solid #ece6d638;border-radius:999px;padding:8px 14px;font-size:10px}.touch-tilt.is-on{color:var(--brass);border-color:var(--brass)}@media (max-width:760px){.hud-corner{gap:3px}.hud-top-left{top:16px;left:16px}.hud-top-right{top:16px;right:16px}.hud-bottom-left,.hud-bottom-right{display:none}.loop-counter{font-size:26px}.clock{font-size:24px}.time-bar{width:110px}.hud-hint{bottom:unset;letter-spacing:.16em;max-width:86vw;padding:8px 14px;font-size:10px;top:84px}.lock-prompt{display:none}.settings-root{top:14px}.settings-panel{width:min(92vw,330px);max-height:66vh;overflow-y:auto}.title{font-size:clamp(34px,12vw,64px)}.premise,.anchor-row{font-size:11px}.anchor-row{flex-direction:column;gap:8px}.end-title,.error-title{font-size:clamp(24px,8vw,40px)}}@media (max-width:420px){.touch-stick{width:118px;height:118px}.touch-interact{width:88px;height:88px;font-size:11px}}.overlay-escape{pointer-events:none;background:#fff;animation:6s ease-in forwards white-out}@keyframes white-out{0%{opacity:0}55%{opacity:.25}to{opacity:1}}.overlay-end{color:#0a0a0a;background:#f4efe2}.end-title{font-family:var(--dot);letter-spacing:.04em;color:#0a0a0a;font-size:clamp(34px,6vw,72px);font-weight:800}.end-stats{letter-spacing:.3em;color:#0a0a0a99;font-size:14px}.end-hint{letter-spacing:.4em;color:#0a0a0a73;margin-top:26px;font-size:11px}.overlay-error{background:#050505e6}.error-title{font-family:var(--dot);letter-spacing:.06em;color:var(--ink);font-size:clamp(26px,4.6vw,52px);font-weight:700}.error-detail{max-width:520px;color:var(--ink-dim);font-size:12px;line-height:1.7}.overlay-error .end-hint{color:var(--brass);margin-top:10px}.error-retry{margin-top:20px}.debug-panel{z-index:40;max-width:520px;color:var(--ink-dim);background:#000000d1;border:1px solid #c9a2274d;padding:12px 14px;font-size:11px;line-height:1.7;position:absolute;bottom:16px;left:16px}.debug-prompt{color:#ece6d659;word-break:break-word}.debug-actions{gap:8px;margin-top:8px;display:flex}.debug-actions button{font-family:var(--mono);letter-spacing:.1em;color:var(--brass);border:1px solid var(--brass-dim);cursor:pointer;background:0 0;padding:5px 10px;font-size:10px}.debug-actions button:hover{background:#c9a2271f}
