:root{--bg:#03060d;--panel:#060e1ad1;--panel-strong:#040a14f0;--line:#5ce1ff47;--line-strong:#5ce1ff99;--text:#d8f3ff;--text-dim:#bee1f599;--cyan:#5ce1ff;--amber:#ffc53d;--red:#ff2f55;--green:#3dffa8;--orange:#ff8a3d;--violet:#a46bff;--gold:#ffd166;--font-jp:"M PLUS 1 Code", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", monospace;--font-display:"Orbitron", "Rajdhani", var(--font-jp);--font-num:"Rajdhani", "Orbitron", var(--font-jp);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-jp);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#app{position:fixed;inset:0}#stage{position:absolute;inset:0}.game-canvas{outline:none;width:100%;height:100%;display:block}#ui{pointer-events:none;position:absolute;inset:0}#ui button,#ui input,#ui select,#ui .clickable{pointer-events:auto}.hidden{display:none!important}.hud{z-index:2;transition:opacity .4s;position:absolute;inset:0}.hud.off{opacity:0}.hud-tl{flex-direction:column;gap:8px;max-width:min(520px,60vw);display:flex;position:absolute;top:22px;left:26px}.agent{align-items:baseline;gap:12px;display:flex}.agent-id{font-family:var(--font-display);letter-spacing:.08em;color:var(--orange);text-shadow:0 0 12px #ff8a3d99;font-size:22px;font-weight:700}.agent-gen{color:var(--text-dim);letter-spacing:.05em;font-size:12px}.sector{border-left:2px solid var(--cyan);flex-direction:column;gap:2px;padding-left:10px;display:flex}.sector-en{font-family:var(--font-display);letter-spacing:.25em;color:var(--cyan);opacity:.85;font-size:11px}.sector-name{letter-spacing:.08em;font-size:17px;font-weight:700}.objective{color:var(--text);opacity:.9;background:linear-gradient(90deg,#5ce1ff1f,#0000);border-radius:2px;padding:6px 10px;font-size:13px}.objective:before{content:"▸ ";color:var(--cyan)}.hud-tr{flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;top:20px;right:24px}.status{--c:var(--cyan);background:var(--panel);border:1px solid color-mix(in srgb, var(--c) 45%, transparent);min-width:190px;box-shadow:0 0 24px color-mix(in srgb, var(--c) 18%, transparent);border-radius:4px;grid-template-rows:auto auto auto;grid-template-columns:46px auto;align-items:center;column-gap:12px;padding:10px 14px 10px 12px;transition:border-color .2s,box-shadow .2s;display:grid}.status[data-state=noticed]{--c:var(--amber)}.status[data-state=alert]{--c:var(--red);animation:.25s infinite shake}.status[data-state=hidden]{--c:var(--violet)}.status svg{width:46px;height:46px;color:var(--c);filter:drop-shadow(0 0 6px var(--c));grid-row:1/4}.status-text{color:var(--c);letter-spacing:.1em;font-size:16px;font-weight:700}.status-sub{font-family:var(--font-display);letter-spacing:.3em;color:var(--text-dim);font-size:10px}.meter{background:#ffffff14;border-radius:2px;height:4px;margin-top:4px;overflow:hidden}.meter>div{background:var(--c);width:0%;height:100%;box-shadow:0 0 8px var(--c);transition:width 80ms linear}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-1px,1px)}75%{transform:translate(1px,-1px)}}.minimap{border:1px solid var(--line);background:#030810b8;border-radius:50%;width:176px;height:176px;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #000c,0 0 18px #5ce1ff1f}.minimap canvas{width:100%;height:100%;display:block}.minimap:after{content:"N";font-family:var(--font-display);color:var(--cyan);opacity:.8;font-size:9px;position:absolute;top:5px;left:50%;transform:translate(-50%)}.hud-bl{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:24px;left:26px}.stance{background:var(--panel);border:1px solid var(--line);border-radius:4px;align-items:center;gap:10px;min-width:220px;padding:8px 12px;display:flex}.stance-icon{background:var(--orange);width:12px;height:12px;box-shadow:0 0 10px var(--orange);border-radius:50%}.stance[data-mode=sneak] .stance-icon{background:var(--violet);box-shadow:0 0 10px var(--violet);transform:scale(.7)}.stance[data-mode=dash] .stance-icon{background:#fff;box-shadow:0 0 16px #fff}.stance-label{letter-spacing:.08em;flex:1;font-size:13px;font-weight:700}.dash-bar{background:#ffffff1a;border-radius:2px;width:70px;height:4px;overflow:hidden}.dash-bar>div{background:var(--orange);width:100%;height:100%}.cover-pill{color:#d9c6ff;letter-spacing:.08em;opacity:0;background:#a46bff2e;border:1px solid #a46bff99;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:12px;transition:opacity .2s,transform .2s;transform:translateY(4px)}.cover-pill.on{opacity:1;transform:none}.hud-br{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:24px;right:24px}.inv{background:var(--panel);border:1px solid var(--line);border-radius:4px;align-items:center;gap:14px;padding:8px 14px;display:flex}.inv-group{color:var(--text-dim);align-items:center;gap:6px;font-size:12px;display:flex}.pip{border:1px solid var(--cyan);background:0 0;width:10px;height:10px;margin:0 2px;display:inline-block;transform:rotate(45deg)}.pip.on{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.keyicon{width:16px;height:16px;color:var(--gold);filter:drop-shadow(0 0 6px var(--gold))}.timers{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.timer{color:var(--green);font-size:12px;font-family:var(--font-jp);background:#3dffa81f;border:1px solid #3dffa880;border-radius:3px;padding:4px 10px}.timer b{font-family:var(--font-num);margin-left:6px;font-size:15px}.hud-bc{flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.prompt{background:var(--panel-strong);border:1px solid var(--line-strong);letter-spacing:.05em;border-radius:4px;align-items:center;gap:10px;padding:8px 16px;font-size:14px;display:flex;box-shadow:0 0 20px #5ce1ff26}.prompt kbd,.keys kbd{font-family:var(--font-display);border:1px solid var(--cyan);color:var(--cyan);background:#5ce1ff14;border-radius:3px;padding:2px 7px;font-size:11px}.prompt .ring{width:22px;height:22px}.prompt.warn{color:var(--amber);border-color:#ffc53db3}.hints{color:var(--text-dim);letter-spacing:.05em;text-align:center;font-size:11px;line-height:1.9;transition:opacity 1s}.hints kbd{font-family:var(--font-display);color:var(--cyan);border:1px solid #5ce1ff66;border-radius:2px;margin:0 3px 0 10px;padding:1px 5px;font-size:10px}.toasts{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:26px;left:50%;transform:translate(-50%)}.toast{background:var(--panel-strong);border:1px solid var(--line-strong);letter-spacing:.06em;white-space:nowrap;border-radius:3px;padding:10px 22px;font-size:14px;animation:.35s ease-out both toastIn;box-shadow:0 0 30px #5ce1ff2e}.toast.green{color:#bfffe0;border-color:#3dffa8b3;box-shadow:0 0 30px #3dffa833}.toast.gold{color:#fff0c4;border-color:#ffd166cc}.toast.red{color:#ffc4cf;border-color:#ff2f55cc}.toast.out{animation:.4s ease-in both toastOut}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)scale(.98)}}@keyframes toastOut{to{opacity:0;transform:translateY(-8px)}}.scan-warn{letter-spacing:.3em;color:#e5d4ff;background:#3c146e8c;border:1px solid #a46bffe6;padding:8px 26px;font-size:15px;font-weight:700;animation:.5s steps(2,end) infinite blink;position:absolute;top:110px;left:50%;transform:translate(-50%);box-shadow:0 0 40px #a46bff73}@keyframes blink{50%{opacity:.35}}.markers{z-index:1;position:absolute;inset:0;overflow:hidden}.mk{width:34px;height:34px;font-family:var(--font-display);color:var(--amber);text-shadow:0 0 8px;will-change:transform;place-items:center;margin:-17px 0 0 -17px;font-size:17px;font-weight:900;display:grid;position:absolute;top:0;left:0}.mk svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.mk .bg{stroke:#00000080}.mk .fg{stroke:currentColor;transition:stroke-dashoffset 80ms linear}.mk.alert{color:var(--red)}.mk.noise{color:#9ee8ff}.dir{will-change:transform;width:0;height:0;position:absolute;top:0;left:0}.dir>div{filter:drop-shadow(0 0 6px);border-top:4px solid;border-radius:50% 50% 0 0/100% 100% 0 0;width:48px;height:18px;position:absolute;top:-86px;left:-24px}.note3d{color:#ffd0d8;background:#28060ec7;border:1px solid #ff2f5599;border-radius:3px;max-width:280px;padding:8px 12px;font-size:12px;line-height:1.6;position:absolute;top:0;left:0;transform:translate(-50%,-100%);box-shadow:0 0 20px #ff2f5540}.note3d b{color:var(--red);font-family:var(--font-display);letter-spacing:.1em;margin-bottom:2px;font-size:11px;display:block}.screen{z-index:10;pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.screen.dim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(#0308128c,#02040aeb)}.title-screen{background:linear-gradient(90deg,#02050ceb 0%,#02050c8c 45%,#02050c00 75%);justify-content:flex-start;align-items:stretch}.title-inner{flex-direction:column;justify-content:center;gap:34px;max-width:640px;padding:0 0 0 clamp(24px,7vw,110px);display:flex}.logo{position:relative}.logo-kicker{font-family:var(--font-display);letter-spacing:.5em;color:var(--cyan);opacity:.85;margin-bottom:14px;font-size:11px}.logo h1{font-family:var(--font-display);letter-spacing:.02em;color:#eafaff;text-shadow:0 0 24px #5ce1ff8c,0 0 60px #5ce1ff40;margin:0;font-size:clamp(40px,6.4vw,84px);font-weight:900;line-height:.95;position:relative}.logo h1 .box{border:.06em solid var(--cyan);margin-left:.06em;padding:0 .12em;display:inline-block;position:relative}.logo h1 .box:after{content:"";background:var(--orange);width:.28em;height:.28em;box-shadow:0 0 20px var(--orange), 0 0 40px var(--orange);border-radius:50%;animation:3.2s ease-in-out infinite escapeDot;position:absolute;top:-.2em;right:-.2em}@keyframes escapeDot{0%,to{transform:translate(0)}50%{transform:translate(.12em,-.12em)}}.logo .glitch{animation:4s infinite glitch}@keyframes glitch{0%,91%,to{clip-path:none;transform:none}92%{clip-path:inset(10% 0 55%);transform:translate(-3px,1px)}94%{clip-path:inset(60% 0 10%);transform:translate(3px,-1px)}96%{clip-path:inset(30% 0 40%);transform:translate(-1px)}}.logo-sub{letter-spacing:.4em;color:var(--text);opacity:.85;margin-top:16px;font-size:16px}.lore{color:var(--text-dim);border-left:1px solid var(--line);max-width:470px;padding-left:16px;font-size:13px;line-height:2}.menu{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.menu button{all:unset;cursor:pointer;min-width:300px;font-family:var(--font-jp);letter-spacing:.12em;color:var(--text);border-left:2px solid #0000;align-items:baseline;gap:14px;padding:9px 18px 9px 16px;font-size:16px;transition:background .15s,border-color .15s,color .15s,padding .15s;display:flex;position:relative}.menu button small{color:var(--text-dim);letter-spacing:.05em;font-size:11px}.menu button:hover,.menu button:focus-visible,.menu button.sel{border-left-color:var(--cyan);color:#fff;background:linear-gradient(90deg,#5ce1ff29,#0000);padding-left:22px}.menu button.primary{color:var(--orange)}.menu button.danger:hover{border-left-color:var(--red);background:linear-gradient(90deg,#ff2f5529,#0000)}.lang-switch{border:1px solid var(--line);z-index:1;border-radius:3px;display:flex;position:absolute;top:22px;right:28px;overflow:hidden}.lang-switch button{all:unset;cursor:pointer;font-family:var(--font-jp);letter-spacing:.08em;color:var(--text-dim);background:#03081099;padding:6px 14px;font-size:12px;transition:background .15s,color .15s}.lang-switch button+button{border-left:1px solid var(--line)}.lang-switch button:hover,.lang-switch button:focus-visible{color:var(--text);background:#5ce1ff1f}.lang-switch button.on{color:#04121a;background:var(--cyan)}.title-foot .credit{color:var(--orange);opacity:.9}.title-foot{color:var(--text-dim);letter-spacing:.1em;font-size:11px;position:absolute;bottom:22px;left:clamp(24px,7vw,110px)}.title-stats{text-align:right;color:var(--text-dim);letter-spacing:.08em;font-size:11px;line-height:1.9;position:absolute;bottom:22px;right:28px}.title-stats b{font-family:var(--font-num);color:var(--text);margin-left:6px;font-size:15px}.card{background:var(--panel-strong);border:1px solid var(--line-strong);border-radius:6px;width:min(760px,100vw - 32px);max-height:calc(100vh - 48px);padding:28px 32px;overflow:auto;box-shadow:0 0 60px #5ce1ff1f}.card h2{font-family:var(--font-display);letter-spacing:.25em;color:var(--cyan);margin:0 0 18px;font-size:18px}.card h2 span{font-family:var(--font-jp);letter-spacing:.1em;color:var(--text);margin-left:12px;font-size:14px}.howto-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px 26px;font-size:13px;line-height:1.8;display:grid}.howto-grid dt{color:var(--cyan);margin-top:6px;font-weight:700}.howto-grid dd{color:var(--text);opacity:.88;margin:0 0 4px}.keys{grid-template-columns:auto 1fr;align-items:center;gap:8px 14px;font-size:13px;display:grid}.keys span{opacity:.9}.card .row{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.btn{all:unset;cursor:pointer;letter-spacing:.1em;border:1px solid var(--line-strong);color:var(--text);background:#5ce1ff0f;border-radius:3px;padding:8px 18px;font-size:14px;transition:background .15s}.btn:hover,.btn:focus-visible{background:#5ce1ff2e}.btn.danger{color:#ffc4cf;border-color:#ff2f55b3}.settings{grid-template-columns:170px 1fr;align-items:center;gap:16px 20px;font-size:14px;display:grid}.settings input[type=range]{width:100%;accent-color:var(--cyan)}.settings select{color:var(--text);border:1px solid var(--line-strong);font-family:var(--font-jp);background:#0a1426;border-radius:3px;padding:6px 10px}.settings input[type=checkbox]{accent-color:var(--cyan);width:18px;height:18px}.settings .note{color:var(--text-dim);grid-column:1/-1;font-size:12px}.board{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto;background:radial-gradient(#00140c80,#000604e6);justify-content:center;align-items:center;animation:.3s ease-out both boardIn;display:flex;position:absolute;inset:0}@keyframes boardIn{0%{opacity:0;transform:scale(1.02)}}.board-win{color:#cfeee0;background:linear-gradient(#02160ff5,#010c09f7);border:1px solid #3dffa88c;border-radius:4px;grid-template-rows:auto 1fr auto;width:min(1180px,100vw - 32px);height:min(760px,100vh - 40px);display:grid;position:relative;overflow:hidden;box-shadow:0 0 80px #3dffa826,inset 0 0 120px #0009}.board-win:before{content:"";pointer-events:none;z-index:2;background:repeating-linear-gradient(0deg,#00000024 0 1px,#0000 1px 3px);position:absolute;inset:0}.board-head{border-bottom:1px solid #3dffa84d;align-items:center;gap:16px;padding:12px 18px;font-size:13px;display:flex}.board-head .node{color:var(--green);letter-spacing:.08em;font-weight:700}.board-head .state{color:#3dffa8a6;flex:1;font-size:12px}.board-head .state.writing{color:var(--amber)}.board-head .close{color:#cfeee0b3;font-size:12px}.board-body{grid-template-columns:260px 1fr;min-height:0;display:grid}.threads{border-right:1px solid #3dffa833;padding:10px 0;overflow:auto}.thread-item{all:unset;cursor:pointer;color:#cfeee0bf;box-sizing:border-box;border-left:2px solid #0000;width:100%;padding:10px 16px;font-size:12px;line-height:1.55;display:block}.thread-item:hover,.thread-item.sel{border-left-color:var(--green);color:#eafff4;background:#3dffa814}.thread-item .sec{font-family:var(--font-display);letter-spacing:.18em;color:#3dffa88c;margin-bottom:3px;font-size:9.5px;display:block}.thread-item.sel .sec{color:var(--green)}.thread-view .thread-sec{font-family:var(--font-display);letter-spacing:.25em;color:#3dffa8b3;margin-bottom:6px;font-size:11px}.thread-item .tag.done{color:var(--green);background:#3dffa81f;border-color:#3dffa880}.board-foot .next-btn.pulse{background:#3dffa824;animation:1.1s ease-in-out infinite nextPulse}@keyframes nextPulse{50%{box-shadow:0 0 18px #3dffa88c}}@media (prefers-reduced-motion:reduce){.board-foot .next-btn.pulse{animation:none}}.thread-item .cnt{color:var(--amber);font-family:var(--font-num);font-size:13px}.thread-item .tag{color:var(--amber);background:#ffc53d2e;border:1px solid #ffc53d80;border-radius:2px;margin-left:6px;padding:0 6px;font-size:10px;display:inline-block}.thread-item .tag.next{color:var(--cyan);background:#5ce1ff26;border-color:#5ce1ff80}.thread-item .tag.locked{color:#cfeee066;background:0 0;border-color:#cfeee033}.thread-view{scroll-behavior:smooth;padding:18px 26px 40px;overflow:auto}.thread-view h3{color:#ffcf6b;margin:0 0 18px;font-size:17px;line-height:1.5}.post{margin:0 0 18px;font-size:13.5px;line-height:1.75}.post-head{color:#cfeee099;font-size:12px}.post-head .no{color:#cfeee0;margin-right:4px}.post-head .name{color:#56f5a2;font-weight:700}.post-head .trip{color:#8fd6ff;margin-left:2px}.post-body{color:#e6fff3;white-space:pre-wrap;word-break:break-all;margin:2px 0 0 1.4em}.post.lost .post-body{color:pink}.post.clear .post-body{color:#f2fff8}.post.escape .post-body{color:#ffe9b0}.post.fresh{border-left:2px solid var(--green);background:linear-gradient(90deg,#3dffa81a,#0000 70%);margin-left:-12px;padding:6px 12px}.post.lost.fresh{border-left-color:var(--red);background:linear-gradient(90deg,#ff2f551a,#0000 70%)}.anchor{color:#7fc8ff;-webkit-text-decoration:underline #7fc8ff66;text-decoration:underline #7fc8ff66}.caret{background:var(--green);vertical-align:text-bottom;width:.55em;height:1.05em;margin-left:2px;animation:.8s steps(2,end) infinite blink;display:inline-block}.board-foot{color:#cfeee099;border-top:1px solid #3dffa833;flex-wrap:wrap;gap:18px;padding:10px 18px;font-size:11px;display:flex}.board-foot kbd{font-family:var(--font-display);color:var(--green);border:1px solid #3dffa880;border-radius:2px;margin-right:4px;padding:1px 6px;font-size:10px}.board-foot .spacer{flex:1}.board-foot button{all:unset;cursor:pointer;color:var(--green);border:1px solid #3dffa880;border-radius:2px;padding:3px 12px}.board-foot button:hover{background:#3dffa81f}.transition{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.tr-big{font-family:var(--font-display);letter-spacing:.12em;color:var(--red);text-shadow:0 0 30px #ff2f55cc,3px 0 #00ffff80,-3px 0 #ff005099;font-size:clamp(42px,8vw,110px);font-weight:900;animation:.2s steps(2,end) infinite glitchBig}.tr-sub{text-align:center;letter-spacing:.3em;color:#ffd0d8;margin-top:10px;font-size:16px}@keyframes glitchBig{50%{transform:translate(2px,-1px)skew(-3deg)}}.tr-log{color:#bfffe0;background:#000805db;border:1px solid #3dffa866;border-radius:3px;width:min(640px,100vw - 40px);padding:18px 24px;font-size:14px;line-height:2;box-shadow:0 0 50px #3dffa81f}.tr-log .l-red{color:#ff9aac}.tr-log .l-dim{color:#bfffe08c}.tr-log .l-hi{color:#fff;font-weight:700}.tr-flash{opacity:0;background:#fff;position:absolute;inset:0}.ending{text-align:center;background:radial-gradient(#fff0,#00000059);flex-direction:column;gap:26px}.ending h2{font-family:var(--font-display);letter-spacing:.1em;color:#fff;text-shadow:0 0 40px #5ce1ffb3;margin:0;font-size:clamp(34px,6vw,76px);font-weight:900}.ending p{color:#eaf8ff;letter-spacing:.1em;margin:0;font-size:15px;line-height:2.1}.ending .stats{border:1px solid var(--line-strong);background:#030a14b3;border-radius:4px;grid-template-columns:repeat(4,minmax(120px,1fr));gap:14px;padding:18px 22px;display:grid}.ending .stats div{color:var(--text-dim);letter-spacing:.1em;flex-direction:column;gap:4px;font-size:11px;display:flex}.ending .stats b{font-family:var(--font-num);color:#fff;font-size:28px}.fade-in{animation:1.2s ease-out both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}}.loading{font-family:var(--font-display);letter-spacing:.4em;color:var(--cyan);background:var(--bg);z-index:50;justify-content:center;align-items:center;font-size:12px;transition:opacity .6s;display:flex;position:absolute;inset:0}.fatal{text-align:center;color:var(--text);background:var(--bg);z-index:60;justify-content:center;align-items:center;padding:24px;line-height:2;display:flex;position:absolute;inset:0}@media (max-width:1000px){.toasts{top:auto;bottom:120px}.toast{white-space:normal;text-align:center;max-width:calc(100vw - 40px)}}@media (max-width:760px){.hud-tl{top:12px;left:14px}.hud-tr{top:12px;right:12px}.minimap{width:120px;height:120px}.board-body{grid-template-columns:1fr}.threads{display:none}.ending .stats{grid-template-columns:repeat(2,1fr)}.hints{display:none}}
