:root{color-scheme:dark;--ink:#101717;--line:#46514c;--paper:#e7e3d6;--muted:#a2aaa3;--accent:#b8c5ab;--red:#b76859;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#090e10;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,input,select{font:inherit}button{background:#1a2422;border:1px solid #56605a;color:var(--paper);padding:12px 20px;border-radius:3px;cursor:pointer;touch-action:none;min-height:44px;letter-spacing:.05em}button:hover{background:#303b35;border-color:#b8c5ab}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}#app{height:100vh;height:100dvh;width:100%;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:relative;overflow:hidden}#hud{height:78px;flex:none;background:#111a19;border-bottom:1px solid #37443d;display:flex;align-items:center;padding:12px 26px;gap:34px;z-index:3}.location{min-width:116px;display:flex;flex-direction:column;gap:5px}.location span,.eyebrow{font-size:10px;letter-spacing:.22em;color:#adb7a9}.location strong{font-family:serif;font-size:21px;font-weight:500;letter-spacing:.1em}.mission{display:flex;flex:1;flex-direction:column;gap:5px}.mission span{font-size:10px;color:#a4afa3}.mission strong{font-size:13px;font-weight:400}nav{display:flex;gap:8px}nav button{padding:8px 13px}kbd{font:10px monospace;opacity:.5;margin-left:6px}#stage{flex:1;min-height:0;position:relative;overflow:hidden;background:#101819}#game{width:100%;height:100%;display:block;image-rendering:pixelated}#vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 100px #02070866}#danger{position:absolute;top:16px;left:22px;display:none;align-items:center;gap:8px;color:#c3c8b9;font-size:11px;letter-spacing:.12em;background:#0a1114bb;padding:7px 10px;border-left:2px solid #738a76}#danger i{width:5px;height:5px;background:currentColor;border-radius:50%}#danger.chase{color:#f0a58a;border-color:#c17158}#prompt{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);padding:9px 16px;background:#0d1518e8;border:1px solid #6c7564;color:var(--paper);font-size:12px;white-space:nowrap;display:none;pointer-events:none}#toast{position:absolute;top:60px;left:50%;transform:translateX(-50%);width:max-content;max-width:86%;padding:10px 18px;border-left:2px solid #adbc9c;background:#111a1bea;color:#e6e5d9;font-size:13px;line-height:1.7;opacity:0;transition:opacity .2s;pointer-events:none}#toast.show{opacity:1}#areaCard{position:absolute;top:30%;left:0;right:0;text-align:center;pointer-events:none;color:#ebe9dc;opacity:0;transition:opacity 1s;text-shadow:0 2px 12px #000}#areaCard.show{opacity:1}#areaCard span{font-size:10px;letter-spacing:.4em}#areaCard h2{font:30px serif;letter-spacing:.2em;margin:14px}#areaCard p{font-size:12px;letter-spacing:.1em}#controls{height:74px;background:#111a19;border-top:1px solid #37443d;flex:none;align-items:center;justify-content:space-between;display:flex;padding:10px 26px;gap:20px;position:relative}#stick{display:none;width:114px;height:114px;border:1px solid #7d87774d;border-radius:50%;position:relative;touch-action:none;flex:none;background:#1c282666}#knob{position:absolute;width:44px;height:44px;left:34px;top:34px;border:1px solid #95a18899;background:#54655355;border-radius:50%;pointer-events:none}.stick-cross{position:absolute;inset:14px;border:1px solid #697b6040;border-radius:50%}#stick small{position:absolute;bottom:8px;width:100%;text-align:center;color:#798477;font-size:9px}.breath{width:160px;flex:none}.breath span{font-size:11px;color:#b7bdae}.meter{height:3px;background:#333c34;margin:8px 0 4px}.meter i{display:block;width:100%;height:100%;background:#acb795}.breath small{font-size:8px;letter-spacing:.15em;color:#798676}.action-group{display:flex;gap:10px;order:3}.action-group button{padding:9px 18px;min-width:88px}.action-group small{display:block;font-size:8px;color:#a0aa9a;margin-top:4px}#actionBtn{background:#344037;border-color:#899077}#desktopHelp{font-size:10px;color:#879787;flex:1;text-align:center;letter-spacing:.02em}.screen{position:absolute;inset:0;z-index:10}.title-art{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 72% 42%,#52655d 0,#1a2d2e 22%,#111d21 50%,#060d13 100%)}.title-art:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 7px,#ffffff03 8px);opacity:.5}.title-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#081118 5%,#081118b3 36%,transparent 75%),linear-gradient(0deg,#050b11 0,transparent 60%)}.hall-frame{position:absolute;border:18px solid #20302f;box-shadow:0 0 0 3px #66766740,inset 0 0 30px #060c0e;right:-15%;width:86%;top:-20%;height:143%;transform:perspective(500px) rotateY(-16deg)}.f2{width:54%;height:89%;top:8%;right:6%;border-width:12px}.f3{width:28%;height:57%;top:23%;right:19%;border-width:9px}.end-door{position:absolute;right:27%;top:34%;width:12%;height:43%;background:#0a1013;border:4px solid #66776a55;box-shadow:0 -8px 40px #a4aa7140}.hall-light{position:absolute;right:29%;top:26%;width:8%;height:3px;background:#c7c7a9;box-shadow:0 0 20px #d7d9b333}.shadow-figure{position:absolute;right:30%;top:49%;width:4%;height:25%;background:#04070c;border-radius:45% 45% 8% 8%;filter:blur(2px)}.title-content{position:absolute;top:50%;left:10%;transform:translateY(-50%);max-width:65%;color:var(--paper)}.red-line{width:28px;height:2px;background:#ae6956;margin:25px 0}h1{font:clamp(44px,7vw,88px) serif;letter-spacing:.15em;margin:0 0 12px;font-weight:500}.subtitle{font:15px serif;letter-spacing:.3em;color:#b8c0b7;margin:0}.tagline{font:13px/2.2 serif;letter-spacing:.15em;color:#9fafa4;margin:30px 0}.title-actions{display:flex;flex-direction:column;gap:10px;width:240px}.title-actions button{text-align:left;font-size:13px;background:#172522bb}.title-actions .primary{background:#c3c9b5;color:#1d2825;border-color:#c3c9b5}.title-note{font-size:10px;line-height:1.8;letter-spacing:.04em;color:#8b9d92;margin-top:23px}.title-bottom{position:absolute;bottom:25px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;color:#84968b;letter-spacing:.13em}.modal-screen{background:#050b0edc;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px}.panel{width:520px;max-width:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;background:#16201f;border:1px solid #566356;padding:30px;color:var(--paper);box-shadow:0 20px 100px #0007}h2{font:28px serif;letter-spacing:.12em;font-weight:400;margin:12px 0 20px}#modalBody{font-size:13px;line-height:1.9;color:#bac6b9}#modalBody p{margin:0 0 15px}#modalBody strong{color:#e5e5d7;font-weight:500}#modalActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}#modalActions button{flex:1;min-width:120px;font-size:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:15px 0}.setting-row input[type=range]{width:170px;accent-color:#c1c9ae;touch-action:pan-x}.setting-row select{max-width:180px;padding:8px;background:#202c26;border:1px solid #5a6658;color:#e6e6d8}#mapCanvas{display:block;width:100%;height:auto;margin:15px 0;border:1px solid #42503d;image-rendering:pixelated}.note-entry{padding:10px 0;border-top:1px solid #374536;white-space:pre-line}.code-display{font:30px monospace;letter-spacing:.4em;text-align:center;color:#ecedde;margin:14px 0}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-width:280px;margin:auto}.keypad button{min-height:46px;padding:8px}#codeMessage{text-align:center;min-height:24px;font-size:12px;color:#c7ac95}.ending-quote{font:18px/2 serif;letter-spacing:.1em;color:#dedfce}.muted{color:#82937f;font-size:11px}.legend{font-size:10px;line-height:1.7;color:#b6c0a4}
@media(pointer:coarse),(max-width:760px){#hud{height:86px;padding:10px 15px;gap:14px;flex-wrap:wrap;position:relative;align-content:center}.location{min-width:0;width:calc(100% - 125px);gap:2px}.location strong{font-size:18px}.location span{font-size:8px}.mission{flex-basis:100%;gap:0;flex-direction:row;align-items:center}.mission span{margin-right:8px;font-size:9px;white-space:nowrap}.mission strong{font-size:11px}nav{position:absolute;right:12px;top:12px}nav button{min-height:38px;padding:5px 12px;font-size:12px}kbd{display:none}#controls{height:150px;padding:12px 18px;gap:12px}#stick{display:block}#desktopHelp{display:none}.breath{position:absolute;top:9px;left:calc(50% - 33px);width:66px}.breath span{display:none}.breath small{font-size:7px}.meter{margin-top:0}.action-group{gap:8px;align-self:flex-end;margin-bottom:12px}.action-group button{padding:12px 8px;min-width:66px;height:63px;font-size:12px}.action-group small{font-size:7px}#actionBtn{min-width:78px}#danger{top:12px;left:12px;font-size:10px}#toast{top:51px;font-size:12px}#prompt{max-width:95%;overflow:hidden;text-overflow:ellipsis;font-size:11px}.title-content{left:8%;max-width:87%}.title-content .eyebrow{font-size:8px}.title-art{background-position:center}.title-art:after{background:linear-gradient(90deg,#081118ed 0,#08111888 70%,transparent)}.title-actions{width:210px}.panel{padding:23px}.title-bottom{font-size:8px}.title-note{font-size:9px}.tagline{margin:25px 0}h1{font-size:48px}}
@media(max-height:500px){#hud{height:64px;padding-top:6px;padding-bottom:6px}.location strong{font-size:15px}.mission strong{font-size:10px}#controls{height:99px;padding:5px 25px}#stick{width:84px;height:84px}#knob{left:24px;top:24px;width:34px;height:34px}.breath{position:static;width:110px}.breath span{display:block;font-size:9px}.action-group{margin-bottom:10px;align-self:center}.action-group button{height:52px}#desktopHelp{display:none}.title-content{left:8%;top:47%;width:85%;display:grid;grid-template-columns:1fr 240px;column-gap:30px}.title-content .eyebrow,.red-line,h1,.subtitle{grid-column:1}.red-line{margin:12px 0}h1{font-size:42px}.subtitle{font-size:12px}.tagline{grid-column:1;font-size:11px;margin:13px 0}.title-actions{grid-column:2;grid-row:2/6;align-self:center}.title-note{grid-column:2;grid-row:6;margin:0;font-size:9px}.title-bottom{bottom:12px}.panel{padding:20px}#areaCard h2{font-size:24px;margin:8px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.location strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#modalBody,.panel{overflow-wrap:anywhere}
