:root{color-scheme:dark;--bg:#080e14;--panel:#111b24;--line:#31414e;--text:#eaf1f0;--muted:#97aab4;--accent:#87e8d5;--gold:#dfc48f;font-family:'Yu Gothic UI','Yu Gothic','Meiryo',system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;background:#121d27e8;border:1px solid #52606b;color:var(--text);padding:11px 17px;border-radius:4px;transition:background .17s,border-color .17s}button:hover{border-color:var(--accent);background:#21323c}button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{cursor:wait;opacity:.55}button:disabled:hover{border-color:#52606b}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;outline:none;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 44%,transparent 43%,#01060955 100%)}.top{position:fixed;left:0;right:0;top:0;padding:24px 30px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#02070bd9,transparent);pointer-events:none;z-index:2}.top>*{pointer-events:auto}.brand{display:flex;gap:14px;align-items:center}.monogram{display:grid;place-content:center;width:44px;height:44px;border:1px solid #557c7b;font-family:Georgia,serif;font-size:27px;position:relative}.monogram span{color:#84d9c4;position:absolute;right:1px;font-size:19px;bottom:3px}.brand strong{font-size:15px;letter-spacing:.22em}.brand strong span{font-weight:400;color:#a7c3c5}.brand small{font-size:8px;display:block;letter-spacing:.23em;color:#8ea8ad;margin-top:7px}nav{display:flex;gap:8px;align-items:center}nav button{font-size:11px;background:#09141ca6;backdrop-filter:blur(8px)}.status{font-size:9px;letter-spacing:.13em;color:#94b5b0;margin-right:12px}.room-label{position:fixed;left:30px;top:112px;border-left:2px solid #7ca8a2;padding:6px 0 6px 18px;pointer-events:none}.room-label span{font-size:10px;letter-spacing:.15em;color:var(--accent)}.room-label h1{font-size:20px;font-weight:500;letter-spacing:.1em;margin:9px 0}.room-label p{font-size:9px;color:#a7bbc1;letter-spacing:.12em;margin:0}#reticle{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);font:20px monospace;color:#e8fff88c;pointer-events:none}.lock-hint{position:fixed;top:calc(50% + 24px);left:50%;transform:translateX(-50%);padding:9px 14px;background:#07131ceb;border:1px solid #607d88;font-size:12px;pointer-events:none}.bottom{position:fixed;bottom:0;left:0;right:0;padding:20px 30px;display:flex;align-items:flex-end;justify-content:space-between;background:linear-gradient(transparent,#01070be3);pointer-events:none}.bottom>*{pointer-events:auto}.keys{font-size:11px;display:flex;gap:8px;align-items:center;padding:12px 0;color:#acbfc8}.keys i{font-style:normal;color:#415965;margin:0 5px}kbd{display:inline-block;min-width:23px;padding:4px 5px;border:1px solid #66808880;border-radius:3px;font-size:11px;text-align:center;background:#1a2932;color:#e9f9f4;margin-right:3px}.bottom-actions{display:flex;align-items:flex-end;gap:15px}.bottom-actions>button{font-size:11px;padding:9px 14px;margin-bottom:10px}#map{width:157px;height:120px;border:1px solid #52697966;background:#07111bb3;border-radius:4px}.proximity{position:fixed;bottom:113px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:17px;min-width:365px;max-width:calc(100vw - 28px);text-align:left;background:#0b1b26f5;border:1px solid var(--accent);box-shadow:0 16px 60px #0009;padding:16px 20px;z-index:5}.proximity img{width:60px;height:60px;border-radius:8px}.proximity span{display:grid;gap:6px;flex:1}.proximity small{font-size:8px;letter-spacing:.12em;color:var(--accent)}.proximity strong{font-size:16px}.proximity em{font-size:10px;font-style:normal;color:#adbfcb}.proximity kbd{margin-left:12px;padding:12px 9px;font-size:13px}.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--accent);font-weight:600}#intro{position:fixed;inset:0;z-index:10;background:linear-gradient(90deg,#051018f7 0%,#06101ed4 36%,#07131d36 73%,#040e1680 100%);display:flex;align-items:center}.intro-content{margin-left:9%;max-width:540px}.intro-content h2{font-size:clamp(50px,6.2vw,99px);line-height:.98;letter-spacing:.035em;margin:30px 0 25px;font-family:Arial,Helvetica,sans-serif;font-weight:750}.intro-content h2 span{color:var(--accent)}.intro-content h2 i{font-style:normal;display:block;font-size:.3em;letter-spacing:.11em;margin-top:19px}.intro-content p{font-size:14px;line-height:2.2;color:#c0d0d4}.primary{padding:16px 24px;background:var(--accent);border:1px solid var(--accent);color:#09201e;font-weight:700;font-size:14px;min-width:225px}.primary:hover{background:#b0f4e6;color:#09201e}.primary:disabled{opacity:.55;cursor:default}.intro-content>button{margin-top:17px}.intro-content>small{display:block;margin-top:14px;font-size:11px;color:#9eafb9;max-width:420px;line-height:1.7}.intro-chips{display:flex;gap:18px;margin-top:36px;color:#9eb3bd;font-size:10px}.intro-caption{position:absolute;bottom:27px;left:9%;font-size:8px;letter-spacing:.16em;color:#71898f}dialog{background:#0b151e;color:var(--text);border:1px solid #3b545f;border-radius:10px;width:min(1020px,94vw);padding:0;max-height:90vh;box-shadow:0 30px 120px #000b;overflow:auto}dialog::backdrop{background:#000b;backdrop-filter:blur(9px)}dialog h2{font-size:27px;margin:14px 0;line-height:1.45}.detail-grid{display:grid;grid-template-columns:.95fr 1.05fr}.detail-image{background:#050c12;position:relative;min-height:480px;overflow:hidden}.detail-image>img{height:100%;width:100%;object-fit:cover;opacity:.82}.detail-image:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,#030c13e8)}#detailBadge{position:absolute;bottom:30px;left:25px;z-index:1;font-size:12px;letter-spacing:.13em;color:#d0e8e3}.detail-grid article{padding:39px 32px 24px;position:relative}.close{position:absolute;right:14px;top:12px;width:34px;height:34px;padding:0;line-height:30px;font-size:26px;z-index:2;background:#06131fe6;border:1px solid #52717b}.meta{font-size:11px;color:var(--accent);border-bottom:1px solid #2a3f4b;padding-bottom:17px;margin-bottom:18px}.intro-text{white-space:pre-line;font-size:13px;line-height:2;color:#d4e1e5}.control-box{background:#152531;border:1px solid #2d4555;padding:13px 16px;margin:19px 0}.control-box h3{font-size:11px;margin:0 0 9px;color:#9bb5c5}.control-box p{white-space:pre-line;font-size:11px;line-height:1.95;margin:0;color:#e2eeeb}.note{font-size:11px;line-height:1.85;color:#93aab8}.launch-info{font-size:12px;line-height:1.9;color:#b1d7cf;white-space:pre-line}.text-button{font-size:11px;background:transparent;border:0;display:block;margin:9px 0 0;padding:10px 0;color:#aabdc7}.detail-grid .primary{width:100%}#library,#guide{padding:34px;width:min(660px,94vw)}#libraryItems{display:grid;gap:12px;margin:26px 0 8px}.library-item{display:flex;align-items:center;gap:18px;text-align:left;background:#112431;padding:16px}.library-item img{width:68px;height:68px;border-radius:9px}.library-item span{display:grid;gap:9px;flex:1}.library-item strong{font-size:16px}.library-item small{font-size:10px;color:#adc0ce}.library-item em{font-size:11px;font-style:normal;color:var(--accent)}.guide-text p{font-size:13px;line-height:2}.guide-text label{display:block;font-size:13px;padding:12px 0;cursor:pointer}.guide-text input{accent-color:var(--accent);margin-right:10px}#gamePlayer{position:fixed;inset:0;z-index:30;background:#06131b}#gamePlayer>header{height:62px;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid #356170;background:#091a24}#gamePlayer>header>div{display:flex;align-items:center;gap:18px}#gamePlayer>header span{font-size:9px;letter-spacing:.12em;color:var(--accent)}#gamePlayer>header strong{font-size:14px}#gamePlayer>header button{font-size:12px;background:#153442;border-color:#428575}#frameContainer{position:absolute;top:62px;bottom:0;left:0;right:0}#frameContainer iframe{width:100%;height:100%;border:0;display:block}#toast{position:fixed;top:90px;left:50%;transform:translateX(-50%);z-index:50;max-width:calc(100vw - 36px);background:#15332fff;border:1px solid #63b3a2;padding:14px 22px;font-size:12px;box-shadow:0 8px 24px #0009;line-height:1.6}#touchControls{position:fixed;bottom:26px;left:18px;right:20px;pointer-events:none;display:flex;justify-content:space-between;align-items:end}#touchControls button{touch-action:none;pointer-events:auto;width:48px;height:46px;padding:0;font-size:22px;background:#15332ac9;margin:2px}#touchControls .touch-pad>button{margin-left:54px}#touchControls span{font-size:10px;color:#c4d5dc;background:#10212ccc;padding:7px}.touch-mode .keys{display:none}.touch-mode .bottom-actions{margin-left:auto}.touch-mode .bottom-actions>button{display:none}.touch-mode #map{display:none}
@media(max-width:900px){.top{padding:18px}.brand strong{font-size:12px}.status{display:none}.room-label{top:95px;left:20px}.room-label h1{font-size:16px}.bottom{padding:15px 18px}.keys{font-size:9px;gap:4px}.keys i{margin:0 2px}#map{width:118px;height:90px}.bottom-actions>button{display:none}.proximity{bottom:101px}.intro-content{margin-left:7%}.detail-grid{grid-template-columns:1fr}.detail-image{min-height:0;height:200px}.detail-grid article{padding:26px}.close{position:fixed}.detail-grid .close{position:absolute}nav #capture{display:none}}
@media(max-width:600px){nav button{padding:8px 10px;font-size:10px}.brand small{font-size:6px}.brand{gap:8px}.monogram{width:34px;height:34px}.room-label{top:86px}.room-label p{display:none}.room-label h1{font-size:14px}.intro-content h2{font-size:56px}.intro-content p{font-size:12px}.intro-chips{gap:12px;font-size:9px}.proximity{bottom:143px;min-width:0;width:calc(100% - 28px);gap:10px;padding:12px}.proximity strong{font-size:14px}.proximity img{width:46px;height:46px}.proximity kbd{font-size:10px;margin:0;padding:10px 6px}.keys{display:none}#gamePlayer>header{height:60px;padding:7px 10px;gap:12px}#gamePlayer>header>div{display:grid;gap:5px}#gamePlayer>header strong{font-size:11px}#gamePlayer>header button{font-size:10px;padding:8px}#frameContainer{top:60px}.lock-hint{font-size:10px;max-width:82vw;width:max-content}.library-item{gap:12px}.library-item strong{font-size:13px}dialog h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
