
:root{color-scheme:dark;--ink:#0c1718;--panel:#122320;--paper:#e7dcc2;--muted:#a6ad99;--gold:#c7ab70;--teal:#a3caba;font-family:Georgia,'Noto Serif CJK SC','Songti SC',serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#0b1516;color:var(--paper)}button,a,input{font:inherit}button{color:inherit;cursor:pointer;min-height:44px;border:1px solid #77806555;background:#1b2b24;border-radius:4px;padding:10px 17px;transition:background .15s,transform .15s}button:hover{background:#2b4031;border-color:#c7ab7099}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid #e5c887;outline-offset:4px}a{color:var(--gold)}.primary{background:#c3a36a;color:#172019;border-color:#e0c18a;font-weight:bold;letter-spacing:.04em}.primary:hover{background:#ddbd82}.ghost{background:transparent;border-color:transparent}.small{font:12px ui-monospace,monospace;letter-spacing:.08em}.eyebrow{font:11px ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);line-height:1.8}.muted{color:var(--muted)}.site-header{height:76px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #d6c59820;background:#0b1719ef;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:13px}.sigil{display:inline-flex;width:35px;height:35px;align-items:center;justify-content:center;border:1px solid #baa46d;border-radius:50%;font-size:23px;color:#c7b077;box-shadow:0 0 0 4px #b39b5020}.brand b{font-weight:400;letter-spacing:.17em;font-size:14px}.brand small{display:block;font-size:8px;letter-spacing:.25em;color:#a4aa91;margin-top:5px}.header-actions{display:flex;gap:8px;align-items:center}.header-actions button{font-size:12px;padding:8px 12px}.hero{min-height:620px;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;overflow:hidden;background:#10211d}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0c191bf2 0%,#0c191ba6 35%,#0c191b00 65%),linear-gradient(0deg,#0b1718,transparent 20%),url('./assets/archive.webp') center right/cover;opacity:.9}.hero-content{position:relative;padding:65px 0 70px 9vw;max-width:650px}.hero h1{font-size:clamp(40px,4.5vw,68px);font-weight:400;line-height:1.3;letter-spacing:.08em;margin:26px 0 25px}.hero p{max-width:390px;line-height:1.95;color:#c4c9b3;font-size:16px}.hero .actions{display:flex;gap:12px;margin:30px 0 25px;flex-wrap:wrap}.specimen-label{position:absolute;right:6%;bottom:70px;border-left:1px solid #c1a567;padding-left:18px;line-height:1.6}.specimen-label strong{font-size:16px;font-weight:400;letter-spacing:.1em}.hero-index{display:flex;gap:35px;margin-top:38px;color:#bcc0a4;font-size:12px}.hero-index b{display:block;font-size:21px;font-weight:400;color:#d6c397;margin-bottom:8px}.archive{padding:48px 7vw 60px;max-width:1500px;margin:auto}.section-head{display:flex;align-items:end;justify-content:space-between;margin:12px 0 28px;gap:20px}.section-head h2{font-weight:400;font-size:28px;margin:0}.section-head p{margin:0;font-size:12px;color:#a8b29c}.case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.case-card{position:relative;min-height:204px;text-align:left;padding:25px 23px;border-radius:2px;background:linear-gradient(125deg,#24372d,#122522);overflow:hidden}.case-card:hover{background:linear-gradient(125deg,#324839,#162d25);transform:translateY(-3px)}.case-card:before{content:'◎';position:absolute;font-size:125px;right:-12px;bottom:-20px;color:#ccb1720c}.case-card .number{font:28px Georgia,serif;color:#c7ab70aa;display:block;margin-bottom:18px}.case-card strong{display:block;font-weight:400;font-size:19px;margin-bottom:8px}.case-card .status{position:absolute;right:18px;top:25px;font-size:10px;color:#a8c5ad}.case-card small{display:block;font-size:11px;line-height:1.6;color:#a5b09a}.chapter-divider{font-size:11px;letter-spacing:.18em;color:#b8aa7f;margin:35px 0 13px}.page-footer{padding:25px 7vw;border-top:1px solid #a9905525;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#8d9c8e;line-height:1.8}.page-footer a{text-decoration:none}.game-header{height:72px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c2a36b25;gap:12px}.game-header h1{font-size:21px;font-weight:400;letter-spacing:.06em;margin:3px 0}.game-header .eyebrow{font-size:9px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:calc(100vh - 148px);max-width:1600px;margin:auto}.bench{min-width:0;position:relative;background:#0a1415;display:flex;flex-direction:column}.instrument-wrap{position:relative;flex:1;min-height:480px}.instrument-wrap canvas{display:block;width:100%;height:100%;min-height:480px;position:absolute;touch-action:none}.bench-caption{position:absolute;top:25px;left:25px;z-index:1;pointer-events:none}.bench-caption .eyebrow{font-size:9px}.bench-caption strong{display:block;font-size:12px;font-weight:400;color:#aeb7a0;margin-top:6px}.mode-tabs{position:absolute;right:22px;top:22px;display:flex;gap:4px;z-index:1}.mode-tabs button{min-height:44px;padding:5px 12px;font-size:11px;background:#0a181acc}.mode-tabs button.active{color:#e1c68e;border-color:#c9ac70}.bench-tools{display:flex;gap:6px;justify-content:center;align-items:center;padding:13px;border-top:1px solid #a6b09c22;flex-wrap:wrap;background:#0c1a1c}.bench-tools button{font-size:12px;min-height:40px;padding:8px 15px}.dossier{padding:26px 26px 22px;border-left:1px solid #ae99602b;background:linear-gradient(135deg,#182c25,#10211e);display:flex;flex-direction:column}.dossier h2{font-size:24px;line-height:1.4;font-weight:400;margin:10px 0 13px}.dossier p{font-size:13px;line-height:1.9;color:#b8c1a9;margin:7px 0}.seals{display:flex;gap:9px;margin:17px 0}.seal{height:36px;width:36px;border:1px solid #ad956957;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#7d8d7a}.seal.taken{background:#bca06a;color:#1e2f22;border-color:#e2ca8c}.rule-note{border-top:1px solid #9f946936;border-bottom:1px solid #9f946936;padding:14px 0;margin:14px 0 17px}.rule-note .eyebrow{font-size:9px;margin:0 0 6px}.rule-note p{font-size:12px}.local-control{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.local-control button{flex:1;font-size:12px;background:#344937}.station-info{font:10px ui-monospace,monospace;color:#b3c5ab;letter-spacing:.1em;margin-bottom:5px}.precision{margin-top:16px;border-top:1px solid #b29b6433;padding-top:14px}.precision summary{cursor:pointer;font-size:12px;color:#d2c191;min-height:30px}.tilt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.tilt-grid button{font:11px ui-monospace,monospace;padding:8px 4px;background:#11261f}.hint{margin-top:auto;padding-top:17px}.hint button{font-size:12px;width:100%;background:transparent}.hint-result{border-left:2px solid #c1a668;padding:0 0 0 12px;margin-top:12px;font-size:12px;color:#dec894;line-height:1.8}.save-status{font:9px ui-monospace,monospace;color:#8fa48f;margin-top:18px;line-height:1.7}.save-status.warn{color:#e3ae7d}.message{font-size:12px;color:#d3caab;min-height:45px;line-height:1.7;background:#263c2c;margin:15px -2px 0;padding:10px 12px;border-left:2px solid #bca56f}.measure{display:flex;justify-content:space-between;font:10px ui-monospace,monospace;color:#91a38d;padding-top:12px}.screen-overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#051013d9;padding:24px;backdrop-filter:blur(8px)}.dialog{width:min(630px,100%);max-height:90vh;overflow:auto;background:linear-gradient(145deg,#213a2f,#142521);border:1px solid #ab935f;padding:40px;box-shadow:0 35px 100px #0009;border-radius:3px}.dialog h2{font-size:32px;font-weight:400;line-height:1.4;margin:12px 0 20px}.dialog p{font-size:15px;line-height:1.95;color:#bfcab4}.dialog .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.dialog .actions button{flex:1}.evidence{padding:22px;border:1px solid #9b89513d;margin:25px 0;background:#d1bc7820;font-size:13px;line-height:1.9}.evidence-mark{font-size:40px;display:block;text-align:center;color:#d4bf83;margin-bottom:15px}.help-list{padding-left:20px;color:#c4cbb5;font-size:14px;line-height:1.9}.settings-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #bcb08c25;padding:15px 0;gap:20px}.settings-row button{font-size:12px;min-width:100px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;max-width:90%;background:#344d3f;border:1px solid #c6ac71;color:#e6dcc0;z-index:15;font-size:13px}.hidden{display:none!important}.tutorial{position:absolute;left:22px;bottom:24px;max-width:330px;background:#172d24ef;border:1px solid #baa36c8a;padding:16px 18px;box-shadow:0 10px 30px #0006;pointer-events:none}.tutorial b{font-size:13px;font-weight:400;color:#e2cb91}.tutorial p{font-size:12px;line-height:1.8;color:#bbcbb1;margin:6px 0 0}.reduced *{animation:none!important;transition:none!important}@media(min-width:1600px){.hero:before{background-position:center right 0;}.hero-content{padding-left:10vw}.instrument-wrap{min-height:640px}}@media(max-width:1050px){.case-grid{grid-template-columns:repeat(2,1fr)}.hero{min-height:560px}.hero-content{padding-left:6vw}.hero h1{font-size:45px}.game-layout{grid-template-columns:minmax(0,1fr) 300px}.dossier{padding:22px 20px}.instrument-wrap,.instrument-wrap canvas{min-height:460px}.mode-tabs{top:65px;right:16px}.game-header{padding:0 18px}}@media(max-width:760px){.site-header{height:65px;padding:0 18px}.brand b{font-size:12px}.brand small{font-size:7px}.header-actions{gap:2px}.header-actions button{padding:7px 8px;font-size:11px}.hero{display:block;min-height:675px;align-items:end}.hero:before{background:linear-gradient(0deg,#0b1718 6%,#0b1718dd 35%,#0b171800 70%),url('./assets/archive.webp') 65% top/auto 460px no-repeat;opacity:.95}.hero-content{padding:330px 26px 35px}.hero h1{font-size:38px;margin:13px 0}.hero p{font-size:13px;margin:10px 0;max-width:none}.hero .actions{margin:22px 0}.hero-index{gap:28px;margin-top:22px;font-size:10px}.hero-index b{font-size:18px}.specimen-label{display:none}.archive{padding:24px 20px 40px}.section-head{align-items:start}.section-head h2{font-size:24px}.section-head p{font-size:10px;max-width:140px;line-height:1.7}.case-card{padding:20px 16px;min-height:190px}.case-card strong{font-size:17px}.case-card .status{right:12px;font-size:8px}.case-card small{font-size:10px}.case-grid{gap:10px}.game-header{height:68px;padding:0 14px}.game-header h1{font-size:16px}.game-header .eyebrow{font-size:8px}.game-header button{font-size:11px;padding:8px}.game-layout{display:block}.instrument-wrap,.instrument-wrap canvas{min-height:415px}.instrument-wrap{height:53vh;max-height:600px}.dossier{border-left:none;border-top:1px solid #ac9a6633;padding:22px}.dossier h2{font-size:22px}.bench-caption{top:17px;left:17px}.mode-tabs{top:15px;right:12px}.mode-tabs button{padding:6px 9px;font-size:10px}.bench-caption strong{font-size:10px;max-width:145px}.bench-caption .eyebrow{font-size:8px}.tutorial{max-width:260px;padding:10px 12px;left:14px;bottom:14px}.tutorial b{font-size:11px}.tutorial p{font-size:10px}.bench-tools{padding:9px 5px;gap:3px}.bench-tools button{font-size:10px;padding:8px 10px}.dialog{padding:25px;max-height:90vh}.dialog h2{font-size:26px}.dialog p{font-size:13px}.page-footer{display:block;padding:20px}.page-footer div+div{margin-top:6px}.precision{margin-top:15px}.tilt-grid{grid-template-columns:repeat(3,1fr)}.tilt-grid button{min-height:48px;font-size:12px}.hint{margin-top:10px}}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Desktop bench stays in view; long records scroll inside the dossier. */
@media(min-width:761px){.game-layout{height:calc(100vh - 148px);min-height:430px}.dossier{overflow-y:auto}.instrument-wrap{min-height:0}.instrument-wrap canvas{min-height:0}.bench{min-height:0}.bench-tools{flex-shrink:0}}
