:root{--bg:#050607;--ink:#d9d6cf;--ink-dim:#8d8a83;--ink-faint:#55534f;--accent:#c9a227;--danger:#c4321f;--ok:#4fd27a;--line:#d9d6cf29;--mono:"Courier New", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--sans:"Helvetica Neue", "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#app{position:fixed;inset:0}.game-canvas{outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hidden{display:none!important}.overlay{z-index:20;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.menu{background:radial-gradient(at 30% 40%,#05060759,#030304eb 70%);justify-content:flex-start;padding-left:clamp(24px,9vw,160px)}.menu:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 3px);position:absolute;inset:0}.menu-inner{z-index:1;max-width:520px;position:relative}.kicker{font-family:var(--mono);letter-spacing:.35em;color:var(--ink-dim);margin-bottom:18px;font-size:12px}.title{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:clamp(44px,7vw,92px);font-weight:200;line-height:.95;animation:7s infinite title-flicker}.subtitle-line{font-family:var(--mono);letter-spacing:.5em;color:var(--accent);align-items:center;gap:14px;margin-top:14px;font-size:clamp(14px,1.6vw,18px);display:flex}.subtitle-line:before{content:"";background:var(--accent);width:42px;height:1px}.tagline{max-width:400px;color:var(--ink-dim);margin:28px 0 36px;font-size:14px;line-height:1.7}.btn-col{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.btn{appearance:none;color:var(--ink);font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:10px 0;font-size:15px;transition:color .2s,letter-spacing .3s;position:relative}.btn:before{content:"";background:var(--accent);opacity:0;width:10px;height:1px;transition:opacity .2s,width .3s;position:absolute;top:50%;left:-22px}.btn:hover:not(:disabled),.btn:focus-visible{color:#fff;letter-spacing:.36em;outline:none}.btn:hover:not(:disabled):before,.btn:focus-visible:before{opacity:1;width:14px}.btn:disabled{color:var(--ink-faint);cursor:default}.btn.primary{font-size:18px}.loading{width:260px;font-family:var(--mono);color:var(--ink-dim);letter-spacing:.15em;margin-top:28px;font-size:11px}.loading-bar{background:var(--line);height:1px;margin-top:8px;overflow:hidden}.loading-bar>div{background:var(--accent);width:0;height:100%;transition:width .2s}.menu-foot{font-family:var(--mono);letter-spacing:.2em;color:var(--ink-faint);z-index:1;justify-content:space-between;font-size:11px;display:flex;position:absolute;bottom:24px;left:clamp(24px,9vw,160px);right:24px}.panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08090ae0;min-width:min(440px,100vw - 32px);max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);padding:32px 36px;overflow-y:auto}.panel h2{letter-spacing:.3em;text-transform:uppercase;margin:0 0 22px;font-size:26px;font-weight:300}.controls-table{grid-template-columns:auto 1fr;gap:10px 26px;margin-bottom:26px;font-size:14px;display:grid}.controls-table kbd{font-family:var(--mono);border:1px solid var(--line);color:var(--ink);white-space:nowrap;padding:3px 8px;font-size:12px}.controls-table span{color:var(--ink-dim);align-self:center}.setting{font-family:var(--mono);letter-spacing:.15em;color:var(--ink-dim);grid-template-columns:110px 1fr 46px;align-items:center;gap:14px;margin-bottom:14px;font-size:12px;display:grid}.setting output{text-align:right;color:var(--ink)}input[type=range]{appearance:none;background:0 0;width:100%;height:18px}input[type=range]::-webkit-slider-runnable-track{background:var(--ink-faint);height:1px}input[type=range]::-moz-range-track{background:var(--ink-faint);height:1px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:none;width:10px;height:10px;margin-top:-5px}input[type=range]::-moz-range-thumb{background:var(--accent);border:none;border-radius:0;width:10px;height:10px}select{color:var(--ink);border:1px solid var(--line);font-family:var(--mono);background:0 0;padding:4px 6px;font-size:12px}select option{background:#111}.pause{background:#020203b8}.hint{font-family:var(--mono);color:var(--ink-faint);letter-spacing:.1em;min-height:1em;margin-top:16px;font-size:11px}.hud{pointer-events:none;z-index:10;font-family:var(--mono);position:absolute;inset:0}.crosshair{background:#e6e4dcbf;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;transition:transform .15s,background .15s;position:absolute;top:50%;left:50%;box-shadow:0 0 3px #000000e6}.crosshair.active{background:#fffffff2;transform:scale(1.8)}.objective{max-width:min(420px,100vw - 64px);transition:opacity .6s;position:absolute;top:28px;left:32px}.objective .label{letter-spacing:.35em;color:var(--accent);margin-bottom:6px;font-size:10px}.objective .text{font-family:var(--sans);color:var(--ink);text-shadow:0 1px 6px #000000f2;font-size:15px;line-height:1.45}.objective .sub{color:var(--ink-dim);letter-spacing:.06em;margin-top:4px;font-size:11px}.objective.updated .text{animation:1.2s ease-out obj-in}.clock{text-align:right;letter-spacing:.12em;color:var(--ink);text-shadow:0 1px 6px #000000f2;font-size:22px;position:absolute;top:28px;right:32px}.clock small{letter-spacing:.3em;color:var(--ink-dim);margin-top:4px;font-size:10px;display:block}.clock .flash-icon{letter-spacing:.25em;color:var(--ink-dim);margin-top:10px;font-size:10px;display:inline-block}.clock .flash-icon.off{color:var(--ink-faint);text-decoration:line-through}.prompt{letter-spacing:.12em;color:var(--ink);text-shadow:0 1px 4px #000;white-space:nowrap;opacity:0;font-size:13px;transition:opacity .15s;position:absolute;top:calc(50% + 30px);left:50%;transform:translate(-50%)}.prompt.visible{opacity:1}.prompt kbd{font-family:var(--mono);border:1px solid #e6e4dc99;margin-right:8px;padding:1px 6px;font-size:12px;display:inline-block}.prompt.info{color:var(--ink-dim)}.notify{letter-spacing:.15em;color:var(--ink);border-left:2px solid var(--accent);opacity:0;white-space:nowrap;text-overflow:ellipsis;background:#0000008c;max-width:calc(100vw - 32px);padding:8px 16px;font-size:13px;transition:opacity .4s;position:absolute;bottom:22%;left:50%;overflow:hidden;transform:translate(-50%)}.notify.visible{opacity:1}.subtitles{text-align:center;width:min(760px,100vw - 32px);font-family:var(--sans);color:#eee;text-shadow:0 1px 4px #000,0 0 12px #000;opacity:0;font-size:17px;line-height:1.5;transition:opacity .35s;position:absolute;bottom:9%;left:50%;transform:translate(-50%)}.subtitles.visible{opacity:1}.subtitles .speaker{font-family:var(--mono);letter-spacing:.35em;color:var(--accent);margin-bottom:4px;font-size:10px;display:block}.countdown{letter-spacing:.3em;color:#ffb020;text-shadow:0 0 18px #ff8c1480;font-size:42px;position:absolute;top:14%;left:50%;transform:translate(-50%)}.fade{opacity:0;pointer-events:none;z-index:30;background:#000;transition:opacity 1.2s;position:absolute;inset:0}.fade.white{background:#f4f1ea}.note-overlay{z-index:25;background:#0009}.note-sheet{color:#1c1c1c;width:min(560px,100vw - 32px);max-height:calc(100vh - 48px);font-family:var(--sans);background:#d8d3c4 linear-gradient(#00000008,#00000014);padding:34px 38px 26px;position:relative;overflow:auto;transform:rotate(-.6deg);box-shadow:0 20px 60px #000c}.note-sheet.handwritten{background-color:#e3dcc2;background-image:repeating-linear-gradient(#0000 0 27px,#28468c2e 27px 28px);font-family:Segoe Print,Bradley Hand,Comic Sans MS,cursive;transform:rotate(.8deg)}.note-sheet.log{font-family:var(--mono);background-color:#cfcab8}.note-sheet h3{letter-spacing:.08em;margin:0 0 4px;font-size:18px}.note-sheet .meta{font-family:var(--mono);color:#555;letter-spacing:.05em;margin-bottom:20px;font-size:11px}.note-sheet p{margin:0 0 12px;font-size:15px;line-height:1.55}.note-sheet .sig{color:#333;margin-top:18px;font-style:italic}.note-sheet .close-hint{font-family:var(--mono);color:#666;letter-spacing:.15em;text-align:right;margin-top:24px;font-size:11px}.end{z-index:40;text-align:center;background:#000;flex-direction:column}.end .title{font-size:clamp(34px,5vw,60px);animation:none}.end .stats{font-family:var(--mono);letter-spacing:.2em;color:var(--ink-dim);margin:26px 0 34px;font-size:13px;line-height:2}.end .btn-col{align-items:center}.error-box{max-width:520px;font-family:var(--mono);color:var(--ink);font-size:13px;line-height:1.6}@keyframes title-flicker{0%,91%,93%,96%,to{opacity:1}92%{opacity:.35}94.5%{opacity:.6}}@keyframes obj-in{0%{opacity:0;color:var(--accent);transform:translate(-6px)}40%{opacity:1;color:var(--accent);transform:none}to{color:var(--ink)}}@media (max-width:700px){.objective{top:16px;left:16px}.clock{font-size:16px;top:16px;right:16px}.menu{padding-left:16px;padding-right:16px}.menu-foot{flex-direction:column;gap:4px;left:16px}}.waypoint{text-align:center;font-family:var(--mono);color:#ffd84a;text-shadow:0 1px 4px #000;font-size:11px;transition:opacity .3s;position:absolute;transform:translate(-50%,-50%)}.waypoint .diamond{background:#ffd84a40;border:2px solid #ffd84a;width:14px;height:14px;margin:0 auto 4px;animation:1.4s ease-in-out infinite wp-pulse;transform:rotate(45deg);box-shadow:0 0 10px #ffd84a99}.waypoint.edge .diamond{background:#ffd84a}@keyframes wp-pulse{50%{transform:rotate(45deg)scale(1.3)}}.tutorial{color:var(--ink);background:#0000009e;border:1px solid #ffffff26;padding:14px 18px;font-size:12px;transition:opacity .5s;position:absolute;bottom:32px;left:32px}.tutorial.hidden{opacity:0}.tutorial .label{letter-spacing:.35em;color:var(--accent);margin-bottom:8px;font-size:10px}.tutorial .row{align-items:center;gap:12px;margin:4px 0;display:flex}.tutorial kbd{text-align:center;min-width:64px;font-family:var(--mono);background:#ffffff14;border:1px solid #fff6;border-radius:3px;padding:2px 8px}.tutorial .tip{color:#ffd84a;margin-top:10px}
