:root{--ink:#d8e4df;--ink-dim:#8fa6a2;--amber:#f0a64a;--amber-dim:#9a6a2e;--teal:#2f7f8c;--deep:#02080b;--panel:#041014db;--line:#a0cdc82e;--danger:#d8412f;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;--sans:"Noto Sans SC", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--deep);height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}[hidden]{display:none!important}#view{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}.screen{z-index:10;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.screen-dark{background:radial-gradient(at 50% 60%,#06161b 0%,#010507 70%)}.screen-dim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0106089e}.screen-title{background:linear-gradient(90deg,#010608d1 0%,#01060859 45%,#01060800 70%);justify-content:flex-start;padding-left:clamp(24px,8vw,140px)}.screen-death{pointer-events:none;background:radial-gradient(#2800001a 0%,#0800008c 100%)}.screen-win{background:#02080ab8}.logo{font-family:var(--serif);letter-spacing:.18em;color:#e6efe9;text-shadow:0 0 24px #50b4be59,0 2px #0009;margin:0 0 12px;font-size:clamp(48px,8vw,96px);font-weight:700;line-height:1.05}html[lang=en] .logo{letter-spacing:.1em;font-size:clamp(44px,5vw,64px)}.logo small{font-family:var(--sans);letter-spacing:.9em;color:var(--ink-dim);text-shadow:none;margin-top:10px;font-size:.17em;font-weight:500;display:block}.loading-box{text-align:center;width:min(420px,90vw)}.bar{background:#96c8c81f;height:3px;margin:36px 0 14px;overflow:hidden}.bar span{background:linear-gradient(90deg, var(--teal), var(--amber));width:0;height:100%;transition:width .25s ease-out;display:block}.load-step{color:var(--ink-dim);letter-spacing:.1em;min-height:1.4em;font-size:13px}.title-box{max-width:460px;animation:2.4s ease-out both rise}.title-locale-toggle{z-index:1;position:absolute;top:clamp(18px,4vh,36px);right:clamp(16px,4vw,48px)}.tagline{font-family:var(--serif);color:#b8cac5;margin:18px 0 34px;font-size:15px;line-height:1.9}.hint{color:var(--ink-dim);letter-spacing:.12em;opacity:.8;margin-top:30px;font-size:12px}@keyframes rise{0%{opacity:0;filter:blur(4px);transform:translateY(14px)}to{opacity:1;filter:none;transform:none}}.menu{flex-direction:column;align-items:stretch;gap:8px;width:min(280px,80vw);display:flex}button{font:inherit;letter-spacing:.25em;color:var(--ink);border:1px solid var(--line);text-align:left;cursor:pointer;background:#081a1e8c;padding:11px 18px;font-size:16px;transition:background .15s,border-color .15s,color .15s,padding-left .2s}button:hover,button:focus-visible{color:#fff4e2;background:#1e464c8c;border-color:#f0a64a8c;outline:none;padding-left:26px}button:focus-visible{box-shadow:0 0 0 2px #f0a64a99}button.primary{color:#ffe3bd;border-color:#f0a64a73}.panel{background:var(--panel);border:1px solid var(--line);width:min(460px,92vw);padding:30px 34px;box-shadow:0 30px 80px #0009}.panel h2,.dialog h2{font-family:var(--serif);letter-spacing:.3em;margin:0 0 14px;font-size:26px;font-weight:700}.panel .menu{width:100%}.objective{color:#b9cbc6;margin:0 0 22px;font-size:14px;line-height:1.7}.death-box{text-align:center;animation:1.6s ease-out both rise}#death-title{font-family:var(--serif);letter-spacing:.35em;color:#c9372a;text-shadow:0 0 30px #c81e1473;margin:0;font-size:clamp(34px,5vw,58px)}#death-sub{color:#b09a94;letter-spacing:.2em;margin-top:14px}.win-sub{color:#b9cbc6;font-family:var(--serif);margin:0 0 20px}.stats{grid-template-columns:auto 1fr;gap:6px 18px;margin:0 0 26px;font-size:14px;display:grid}.stats dt{color:var(--ink-dim)}.stats dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.modal{z-index:30;background:#00040699;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{border:1px solid var(--line);background:#061418;width:min(480px,94vw);max-height:90vh;padding:28px 32px;overflow:auto;box-shadow:0 30px 90px #000000b3}.form{flex-direction:column;gap:16px;display:flex}fieldset{border:0;margin:0;padding:0}legend{color:var(--ink-dim);margin-bottom:8px;font-size:14px}.seg{gap:6px;display:flex}.seg label{text-align:center;border:1px solid var(--line);cursor:pointer;flex:1;padding:8px 0;font-size:14px}.seg input{opacity:0;pointer-events:none;position:absolute}.seg label:has(input:checked){border-color:var(--amber);color:#ffe3bd;background:#f0a64a1a}.seg label:has(input:focus-visible){box-shadow:0 0 0 2px #f0a64a99}.difficulty-choice{width:min(100%,340px);margin:24px 0}.difficulty-note{color:var(--ink-dim);min-height:1.7em;margin:8px 0 0;font-size:12px;line-height:1.7}.row{color:var(--ink-dim);grid-template-columns:7em 1fr 3.2em;align-items:center;gap:10px;font-size:14px;display:grid}.row output{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.row.check{cursor:pointer;grid-template-columns:auto 1fr}.row:has(.locale-toggle){grid-template-columns:7em minmax(0,1fr)}.locale-toggle{letter-spacing:.08em;text-align:center;white-space:nowrap;width:auto;padding:8px 12px;font-size:12px}button.locale-toggle:hover,button.locale-toggle:focus-visible{padding-left:12px}input[type=range]{accent-color:var(--amber);width:100%}input[type=checkbox]{accent-color:var(--amber);width:16px;height:16px}.dialog-actions{justify-content:flex-end;margin-top:22px;display:flex}.dialog-actions button{text-align:center}.keys{grid-template-columns:7em 1fr;gap:8px 16px;margin:0;font-size:14px;display:grid}.keys dt{color:#ffe3bd;letter-spacing:.05em;font-family:ui-monospace,Consolas,monospace}.keys dd{color:#c3d2ce;margin:0}.help-note{color:var(--ink-dim);margin:18px 0 0;font-size:13px;line-height:1.8}.hud{pointer-events:none;z-index:5;font-size:14px;position:fixed;inset:0}.crosshair{background:#e6f0eb8c;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%;box-shadow:0 0 3px #000c}.hud-top{text-align:right;position:absolute;top:18px;right:22px}.valves{letter-spacing:.2em;color:#d7e4dfb3;text-shadow:0 1px 3px #000}.valves b{color:#ffe3bd;font-weight:600}.valves.done b{color:#7ff0a0}.navigation{margin-top:12px}.route-map{background:var(--panel);border:1px solid var(--line);text-align:left;width:252px;padding:12px}.route-heading{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.route-heading span:last-child{color:var(--ink-dim)}#hud-map{width:100%;height:auto;margin:10px 0;display:block}.route-target{color:#ffe3bd;margin:0;font-size:13px}.route-legend{color:var(--ink-dim);justify-content:space-between;gap:8px;margin:0 0 10px;font-size:11px;display:flex}.route-legend i{background:#ff7974;width:6px;height:6px;margin-right:6px;display:inline-block;transform:rotate(45deg)}.route-status{color:var(--ink-dim);margin:4px 0 0;font-size:12px;line-height:1.5}.direction-guide{background:var(--panel);width:76px;color:var(--amber);flex-direction:column;align-items:center;gap:4px;margin-left:auto;padding:8px;display:flex}.direction-guide svg{flex:none}.direction-guide span{color:var(--ink);text-align:center;font-size:12px;line-height:1.5}@media (width<=600px),(height<=500px){.hud-top{top:12px;right:12px}.route-map{width:184px;padding:9px}.route-heading,.route-status{font-size:11px}.difficulty-choice{margin:16px 0}}@media (height<=500px){.screen-title{align-items:flex-start;overflow-y:auto}}.eye{opacity:0;filter:drop-shadow(0 0 6px #000000e6);transition:opacity .4s;position:absolute;top:16px;left:50%;transform:translate(-50%)}.eye svg{display:block}.eye-lid{fill:#f0b46414;stroke:#f0b464cc;stroke-width:2px;transition:stroke .3s,fill .3s}.eye-pupil{fill:#f0b464e6;transition:fill .3s}.eye.alert .eye-lid{stroke:#ff4632f2;fill:#ff3c282e}.eye.alert .eye-pupil{fill:#ff4a36}.breath{opacity:0;text-shadow:0 1px 3px #000;align-items:center;gap:10px;transition:opacity .5s;display:flex;position:absolute;bottom:70px;left:50%;transform:translate(-50%)}.breath.show{opacity:1}.breath-label{letter-spacing:.3em;color:#c8e1e6cc;font-size:12px}.breath-track{background:#96c8d229;width:220px;height:4px;overflow:hidden}.breath-fill{transform-origin:0;background:#8fd3e6;width:100%;height:100%;display:block}.breath.low .breath-fill{background:var(--danger);animation:.6s infinite alternate pulse}.breath.low .breath-label{color:#ff9a8a}@keyframes pulse{to{opacity:.35}}.prompt{letter-spacing:.15em;color:#f2ead9;text-shadow:0 1px 3px #000;white-space:nowrap;align-items:center;gap:10px;display:flex;position:absolute;top:calc(50% + 46px);left:50%;transform:translate(-50%)}.ring{--p:0;background:conic-gradient(var(--amber) calc(var(--p) * 1turn), #ffffff26 0);border-radius:50%;width:22px;height:22px;-webkit-mask:radial-gradient(circle,#0000 7px,#000 8px);mask:radial-gradient(circle,#0000 7px,#000 8px)}.depth{color:#ff8a6e;letter-spacing:.4em;text-shadow:0 0 10px #ff281499;font-size:15px;animation:.5s infinite alternate pulse;position:absolute;top:28%;left:50%;transform:translate(-50%)}.message{text-align:center;max-width:80vw;font-family:var(--serif);letter-spacing:.12em;color:#efe6d4;text-shadow:0 1px 4px #000,0 0 12px #000c;opacity:0;font-size:17px;transition:opacity .6s;position:absolute;bottom:118px;left:50%;transform:translate(-50%)}.message.show{opacity:1}.flash-ind{letter-spacing:.2em;color:#d7e4df59;text-shadow:0 1px 2px #000;font-size:12px;position:absolute;bottom:18px;left:22px}.flash-ind.on{color:#ffecbed9}@media (prefers-reduced-motion:reduce){.title-box,.death-box,.breath.low .breath-fill,.depth{animation:none}}
