@import url('/assets/game/interface.css');
html { scroll-behavior:smooth; }
.landing-hero { display:grid; grid-template-columns:1fr 1fr; min-height:600px; border-bottom:1px solid #ffffff18; }
.hero-copy { align-self:center; padding:70px 5vw 70px max(5vw,calc((100vw - 1160px)/2)); }
.hero-copy h1 { font-size:clamp(36px,4.2vw,63px); line-height:1.45; margin:24px 0!important; letter-spacing:.04em; }
.hero-copy h1 em { font-style:normal; color:#d1bc7f; }
.hero-copy>p { color:#a8ad9b; font:16px/2.1 var(--serif); margin-bottom:30px!important; }
.hero-copy .hero-caption { color:#8b9480; font-size:11px; margin-top:24px; }
.hero-secondary { color:#b8c0aa!important; font-size:13px; padding:12px; }
.hero-scene { position:relative; min-height:600px; overflow:hidden; }
.hero-scene>img { position:absolute; width:100%; height:100%; object-fit:cover; filter:saturate(.65) brightness(.75); }
.hero-scene::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#14161355,transparent 35%,#14161311),linear-gradient(0deg,#141613,transparent 60%); }
.hero-file { position:absolute; z-index:1; bottom:90px; left:12%; width:72%; background:#e9e3d0; color:#2c3027; padding:30px; transform:rotate(-4deg); box-shadow:0 16px 50px #0006; }
.hero-file .eyebrow { color:#8c704b; font-size:10px; }
.hero-file h2 { font-size:32px; margin:14px 0!important; }
.hero-file p { font:15px/1.9 var(--serif); color:#646958; }
.hero-file a { display:inline-block; margin-top:24px; border-bottom:1px solid #65694c; font-size:12px; }
.hero-stamp { position:absolute; right:20px; bottom:30px; border:3px double #975b4988; color:#975b49; padding:6px 10px; font:22px var(--serif); transform:rotate(-12deg); }
.photo-caption { position:absolute; z-index:1; bottom:24px; left:12%; font:10px monospace; color:#ced2bc; letter-spacing:.1em; }
.landing-section { width:min(1160px,calc(100% - 64px)); margin:64px auto; }
.landing-section .section-label { margin-bottom:30px; }
.landing-section .section-label h2 { margin-top:12px; font-size:29px; }
.steps-row { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; border-top:1px solid #ffffff18; padding-top:32px; }
.steps-row b { font:14px monospace; color:#d1bc7f; }
.steps-row h3 { font-size:25px; margin:14px 0!important; }
.steps-row p { color:#a8ad9b; font-size:14px; line-height:1.9; }
.landing-outro { padding:70px 20px; text-align:center; border-top:1px solid #ffffff18; }
.landing-outro h2 { font-size:30px; margin:18px 0 28px!important; }
.landing-outro p { margin-top:20px!important; }
.site-footer { display:flex; gap:20px; align-items:center; flex-wrap:wrap; justify-content:space-between; padding:30px max(4vw,calc((100vw - 1160px)/2)); border-top:1px solid #ffffff18; color:#939d86; font-size:11px; }
.site-footer>a { font-size:20px; color:#c8cbb6; }
.site-footer>p { width:100%; line-height:1.9; max-width:800px; }
.site-footer p a { text-decoration:underline; }
.document { max-width:800px; padding:54px 24px 80px; margin:auto; }
.document h1 { font-size:42px; margin:14px 0 22px!important; }
.document .lead { color:#d1bc7f; font:19px/1.9 var(--serif); }
.document h2 { font-size:24px; margin:36px 0 14px!important; }
.document p { color:#b9c2ac; line-height:2; margin-bottom:18px!important; }
.document p>a:not(.btn) { color:#d1bc7f; text-decoration:underline; }
.modal-body .guide-step { background:#dedbc7; border-color:#6c75522d; }
.modal-body .guide-step p,.modal-body .guide-step b { color:#586048; }
.modal-body .guide-step h3 { font-size:22px; }
.modal-body .rule { background:#363c2520; }
.modal-body .passport-page { padding:4px; gap:12px; }
.modal-body .passport-stamp b { font-size:23px; }
.modal-body .passport-stamp { font-size:10px; }
@media(max-width:760px) {
 .landing-hero { grid-template-columns:1fr; }
 .hero-copy { padding:48px 24px 30px; }
 .hero-copy h1 { font-size:39px; }
 .hero-copy>p { font-size:14px; }
 .hero-scene { min-height:370px; }
 .hero-file { bottom:55px; padding:23px; }
 .hero-file h2 { font-size:29px; }
 .hero-stamp { font-size:20px; }
 .landing-section { width:calc(100% - 40px); margin:44px auto; }
 .landing-section .section-label { align-items:start; flex-direction:column; }
 .landing-section .section-label h2 { font-size:25px; }
 .steps-row { grid-template-columns:1fr; gap:28px; }
 .steps-row article { padding-left:42px; position:relative; }
 .steps-row b { position:absolute; top:9px; left:0; }
 .steps-row h3 { margin:0 0 10px!important; }
 .landing-outro { padding:45px 22px; }
 .landing-outro h2 { font-size:25px; }
 .document h1 { font-size:34px; }
 .modal-body .passport-page { grid-template-columns:1fr; }
 .modal-body .passport-stamp { max-width:180px; }
}
:root { --desk:#141613; --desk-2:#1d211d; --desk-3:#272d26; --paper:#e9e3d0; --paper-light:#f3efdf; --ink:#2c3027; --muted:#a8ad9b; --gold:#d1bc7f; --red:#9b4c3c; --line:#ffffff18; --serif:"Songti SC","Noto Serif CJK SC","STSong",serif; --sans:"PingFang SC","Microsoft YaHei",sans-serif; }
.game-body { background:var(--desk); color:var(--paper); margin:0; font:15px/1.65 var(--sans); -webkit-font-smoothing:antialiased; }
.game-body *, .game-body *::before, .game-body *::after { box-sizing:border-box; }
.game-body button, .game-body input, .game-body textarea, .game-body select { font:inherit; }
.game-body button, .game-body a, .game-body input, .game-body textarea, .game-body select { -webkit-tap-highlight-color:transparent; }
.game-body button { cursor:pointer; }
.game-body button:disabled { opacity:.48; cursor:wait; }
.game-body a { color:inherit; text-decoration:none; }
.game-body h1,.game-body h2,.game-body h3,.game-body p { margin:0; }
.game-body h1,.game-body h2,.game-body h3 { font-family:var(--serif); }
.game-body button { border:0; background:none; color:inherit; }
.game-body :focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.icon { width:20px; height:20px; vertical-align:middle; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.eyebrow { color:var(--gold); font-size:11px; letter-spacing:.24em; font-weight:600; }
.muted { color:var(--muted); }
.small { font-size:12px; }
.serif { font-family:var(--serif); }
.rule { height:1px; background:var(--line); margin:24px 0; }
.btn { display:inline-flex; gap:10px; align-items:center; justify-content:center; padding:12px 20px; border-radius:3px; font-weight:500; transition:background .15s,transform .15s; }
.game-body .btn-primary { background:var(--gold); color:#20251e; border:1px solid var(--gold); }
.game-body .btn-primary:hover { background:#e3d3a4; transform:translateY(-1px); }
.game-body .btn-ghost { border:1px solid #b9c0a533; color:var(--paper); }
.game-body .btn-ghost:hover { background:#ffffff08; }
.game-body .btn-ink { background:var(--ink); color:var(--paper); }
.game-body .btn-danger { color:#e8aa96; border:1px solid #9b4c3c; }
.game-body .btn-small { padding:8px 12px; font-size:12px; }
.game-body .link-button { color:var(--gold); padding:6px 0; text-decoration:underline; text-underline-offset:4px; }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.topbar { height:80px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 4vw; }
.game-logo { display:flex; align-items:center; gap:13px; }
.logo-mark { width:40px; height:40px; border:1px solid var(--gold); color:var(--gold); display:grid; place-items:center; transform:rotate(-7deg); font:22px var(--serif); }
.game-logo strong { display:block; font:23px var(--serif); letter-spacing:.13em; }
.game-logo small { color:var(--muted); font-size:9px; letter-spacing:.26em; }
.top-links { display:flex; gap:24px; align-items:center; font-size:13px; }
.detective { display:flex; align-items:center; gap:10px; }
.detective-avatar { width:32px; height:32px; border:1px solid #d1bc7f55; border-radius:50%; display:grid; place-items:center; color:var(--gold); }
.desk-wrap { width:min(1160px,calc(100% - 64px)); margin:42px auto 64px; }
.desk-intro { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:28px; }
.desk-intro h1 { font-size:38px; margin:8px 0; letter-spacing:.07em; }
.desk-stats { display:flex; gap:30px; color:var(--muted); font-size:11px; text-align:center; }
.desk-stats b { display:block; font:32px var(--serif); color:var(--paper); }
.featured-file { display:grid; grid-template-columns:1.12fr 1fr; background:var(--paper); color:var(--ink); border-radius:5px; overflow:hidden; box-shadow:0 15px 45px #0003; }
.feature-art { position:relative; min-height:340px; overflow:hidden; }
.feature-art>img { width:100%; height:100%; position:absolute; object-fit:cover; filter:saturate(.75); }
.feature-art::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#111b16b0,transparent 55%); }
.feature-coordinate { position:absolute; left:24px; bottom:20px; color:#fff9df; z-index:1; font:11px monospace; letter-spacing:.15em; }
.feature-copy { position:relative; padding:32px 36px; background:repeating-linear-gradient(0deg,#75642b03,#75642b03 1px,transparent 1px,transparent 4px); }
.feature-copy .eyebrow { color:#7c6240; }
.game-body .feature-copy .link-button { color:#76603b; }
.feature-copy h2 { margin:12px 0 16px; font-size:36px; line-height:1.3; }
.feature-copy>p { color:#5c5e4e; font-family:var(--serif); line-height:1.9; }
.feature-copy .actions { margin-top:26px; }
.file-tag { display:inline-block; padding:4px 9px; border:1px solid #817f6633; font-size:10px; letter-spacing:.1em; color:#6b6d5b; }
.section-label { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:34px 0 18px; }
.section-label h2 { font-size:22px; letter-spacing:.08em; }
.case-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.case-card { background:var(--desk-2); border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:transform .2s,border-color .2s; }
.case-card:hover { transform:translateY(-3px); border-color:#d1bc7f66; }
.case-card .card-image { position:relative; aspect-ratio:1.9; overflow:hidden; }
.case-card img { width:100%; height:100%; object-fit:cover; filter:saturate(.65); transition:filter .2s; }
.case-card:hover img { filter:saturate(.95); }
.card-number { position:absolute; top:12px; left:12px; font:10px monospace; padding:4px 8px; background:#141613d9; color:#ded9bd; letter-spacing:.1em; }
.card-content { padding:20px; }
.card-content h3 { font-size:24px; margin:8px 0; }
.card-content>p { font-size:13px; color:var(--muted); min-height:44px; }
.card-bottom { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); margin-top:18px; padding-top:14px; font-size:11px; color:var(--muted); }
.status-chip { padding:3px 8px; font-size:10px; border:1px solid #ffffff25; border-radius:2px; }
.status-chip.solved { color:#a9caa1; border-color:#a9caa14d; }
.desk-footnote { display:flex; justify-content:space-between; gap:18px; margin-top:30px; color:#838a78; font-size:11px; }
.investigation-header { padding:15px 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); min-height:74px; }
.case-heading { display:flex; align-items:center; gap:22px; }
.back-desk { color:var(--muted); font-size:12px; display:flex; align-items:center; gap:6px; }
.case-heading h1 { font-size:23px; letter-spacing:.05em; }
.case-heading small { display:block; color:var(--muted); font-size:10px; margin-top:3px; letter-spacing:.1em; }
.save-indicator { color:#a8b69d; font-size:11px; display:flex; gap:7px; align-items:center; }
.save-indicator::before { content:""; width:5px; height:5px; border-radius:50%; background:#95ae85; }
.investigation { display:grid; grid-template-columns:228px minmax(0,1fr); min-height:calc(100dvh - 74px); }
.case-sidebar { border-right:1px solid var(--line); padding:28px 18px; display:flex; flex-direction:column; }
.case-sidebar .eyebrow { padding:0 14px; margin-bottom:18px; }
.case-nav { display:flex; flex-direction:column; gap:7px; }
.case-nav button { display:flex; align-items:center; gap:13px; width:100%; text-align:left; padding:12px 14px; border-radius:3px; color:var(--muted); font-size:13px; }
.case-nav button.active { background:#d1bc7f13; color:var(--gold); box-shadow:inset 2px 0 var(--gold); }
.case-nav button:hover { background:#ffffff07; }
.nav-count { margin-left:auto; font:10px monospace; background:#ffffff0b; border-radius:3px; padding:1px 5px; }
.sidebar-progress { margin-top:32px; padding:0 14px; }
.progress-line { background:#ffffff12; height:3px; margin:12px 0 20px; }
.progress-line>span { display:block; height:100%; background:var(--gold); }
.sidebar-note { padding:16px 14px; color:#87907e; font:12px/1.9 var(--serif); margin-top:auto; }
.case-workspace { padding:32px clamp(20px,4vw,56px) 60px; max-width:1250px; width:100%; margin:0 auto; min-width:0; }
.view-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:24px; }
.view-heading h2 { font-size:30px; line-height:1.4; margin-top:5px; }
.paper { background:var(--paper); color:var(--ink); padding:28px; border-radius:3px; box-shadow:0 10px 28px #0002; }
.paper p { line-height:2; font-family:var(--serif); }
.paper .eyebrow { color:#927345; }
.paper h3 { font-size:25px; margin:9px 0 16px; }
.case-brief { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.brief-image { width:100%; height:100%; min-height:320px; object-fit:cover; border-radius:3px; filter:saturate(.8); }
.dispatch { border-left:2px solid #d1bc7f55; margin:24px 0; padding:4px 18px; font:15px/1.9 var(--serif); color:#bbc2ac; }
.people-row { display:flex; gap:12px; flex-wrap:wrap; margin:24px 0; }
.person-mini { display:flex; align-items:center; gap:10px; padding:10px 14px; border:1px solid var(--line); border-radius:3px; font-size:12px; }
.portrait { display:grid; place-items:center; width:44px; height:44px; border:1px solid #e0d1ad4d; background:radial-gradient(ellipse at 50% 110%,#bac39a33 0 38%,transparent 39%),#31392d; border-radius:50%; font:24px var(--serif); color:var(--gold); flex:none; }
.person-mini small { color:var(--muted); display:block; font-size:10px; }
.city-map { position:relative; height:300px; border:1px solid #75847332; overflow:hidden; border-radius:5px; background:#26362c; margin-bottom:25px; }
.city-map>svg { position:absolute; width:100%; height:100%; }
.map-label { position:absolute; top:18px; left:22px; font:11px monospace; letter-spacing:.2em; color:#b7c1a3; }
.map-marker { position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; gap:8px; align-items:center; z-index:1; }
.map-marker>span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--paper); color:var(--ink); border:4px solid #283b2b; box-shadow:0 0 0 1px #c6cba17f; font:13px monospace; }
.map-marker>strong { background:#16241be6; color:#e4e7d3; padding:3px 9px; font-size:11px; white-space:nowrap; font-weight:normal; }
.location-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.location-card { padding:20px; border:1px solid var(--line); border-radius:4px; background:var(--desk-2); }
.location-card h3 { font-size:22px; margin:9px 0; }
.location-card p { color:var(--muted); font-size:12px; min-height:60px; }
.location-card .btn { width:100%; margin-top:16px; }
.clue-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.clue-card { position:relative; border-radius:3px; background:var(--paper); color:var(--ink); padding:22px; border-top:3px solid #c3b68f; }
.clue-card.found { border-top-color:#72906f; }
.clue-card .eyebrow { color:#876d49; }
.clue-card h3 { font-size:23px; margin:10px 0 12px; }
.clue-card p { font:14px/1.8 var(--serif); color:#5a5d4e; }
.clue-card .actions { margin-top:20px; }
.clue-card .btn-ghost { color:var(--ink); border-color:#6a715b4d; }
.empty-state { padding:56px 24px; border:1px dashed #d1bc7f40; text-align:center; color:var(--muted); border-radius:4px; }
.empty-state .icon { width:40px; height:40px; color:var(--gold); margin-bottom:16px; }
.empty-state h3 { color:var(--paper); font-size:24px; margin:0 0 12px; }
.empty-state p { max-width:460px; margin:auto; font-size:13px; }
.empty-state .btn { margin-top:20px; }
.interview-layout { display:grid; grid-template-columns:185px minmax(0,1fr); gap:22px; align-items:start; }
.suspect-list { display:flex; flex-direction:column; gap:10px; }
.suspect-button { display:flex; align-items:center; gap:12px; border:1px solid var(--line)!important; background:var(--desk-2)!important; text-align:left; border-radius:4px; padding:15px 12px; }
.suspect-button.active { border-color:#d1bc7f88!important; background:#d1bc7f0e!important; }
.suspect-button strong { font-size:13px; }
.suspect-button small { display:block; color:var(--muted); font-size:10px; }
.suspect-button .portrait { width:37px; height:37px; font-size:21px; }
.chat-panel { border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--desk-2); }
.chat-title { display:flex; justify-content:space-between; gap:15px; align-items:center; padding:18px 24px; border-bottom:1px solid var(--line); }
.chat-title h3 { font-size:23px; }
.chat-title small { display:block; font-size:11px; color:var(--muted); }
.chat-messages { min-height:290px; max-height:500px; overflow-y:auto; padding:22px; scroll-behavior:smooth; }
.original-statement { background:var(--paper); color:var(--ink); padding:18px 20px; margin-bottom:24px; border-radius:3px; }
.original-statement small { font-size:10px; color:#7c745c; letter-spacing:.15em; }
.original-statement p { font:16px/1.9 var(--serif); margin-top:10px; }
.chat-message { margin:18px 0; max-width:90%; }
.chat-message.user { margin-left:auto; text-align:right; }
.chat-message small { display:block; font-size:10px; margin-bottom:6px; color:var(--muted); }
.chat-message p { white-space:pre-wrap; overflow-wrap:anywhere; display:inline-block; padding:13px 16px; background:#2b3329; border-radius:2px 12px 12px 12px; color:#e0e6d6; font-size:14px; line-height:1.8; text-align:left; }
.chat-message.user p { background:#4b4933; border-radius:12px 2px 12px 12px; }
.chat-message .shown { font-size:10px; color:var(--gold); display:block; margin-bottom:5px; }
.question-chips { display:flex; flex-wrap:wrap; gap:7px; margin:0 22px 16px; }
.question-chips button { border:1px solid #b4bb9e33; border-radius:15px; padding:5px 10px; font-size:11px; color:#bec6ae; text-align:left; }
.question-chips button:hover { border-color:var(--gold); color:var(--gold); }
.compose { padding:16px 22px 20px; border-top:1px solid var(--line); }
.compose label { display:flex; align-items:center; gap:10px; font-size:11px; color:var(--muted); }
.compose select { background:#141913; border:1px solid var(--line); color:var(--paper); padding:6px 9px; border-radius:3px; min-width:0; }
.compose-row { display:flex; gap:12px; margin:12px 0 8px; }
.compose textarea { flex:1; min-width:0; resize:vertical; min-height:82px; max-height:180px; background:#141913; border:1px solid #ffffff20; border-radius:3px; color:var(--paper); padding:12px; font-size:13px; }
.compose-row .btn { align-self:stretch; padding:12px 18px; }
.compose-foot { display:flex; justify-content:space-between; gap:12px; font-size:10px; color:#939d86; }
.notice-bar { border:1px solid #b2945055; background:#b294500b; padding:12px 16px; color:#d2c399; border-radius:3px; font-size:12px; margin-bottom:18px; display:flex; gap:15px; align-items:center; justify-content:space-between; }
.case-closed { background:#71946b12; border-color:#71946b55; color:#abc4a4; }
.board-layout { display:grid; grid-template-columns:1fr 1.05fr; gap:22px; align-items:start; }
.evidence-wall { background:radial-gradient(#6e755e28 1px,transparent 1px) 0 0/8px 8px,#242b22; border:1px solid #68725433; border-radius:4px; padding:20px; min-height:340px; }
.pin-note { position:relative; background:#e1d9bb; color:var(--ink); padding:18px; margin:14px 0; border-radius:2px; box-shadow:2px 4px 8px #0003; transform:rotate(-.6deg); }
.pin-note:nth-of-type(even) { transform:rotate(.6deg); background:#d9dfc8; }
.pin-note::before { content:""; position:absolute; top:-5px; left:50%; width:10px; height:10px; background:var(--red); border-radius:50%; box-shadow:1px 2px 2px #0004; }
.pin-note h3 { font-size:19px; margin-bottom:8px; }
.pin-note p { font:13px/1.7 var(--serif); }
.pin-note button { position:absolute; top:6px; right:8px; font-size:14px; opacity:.6; }
.form-panel { background:var(--desk-2); border:1px solid var(--line); padding:24px; border-radius:4px; }
.form-panel h3 { font-size:23px; margin-bottom:12px; }
.field { margin:18px 0; }
.field>label { display:block; color:#bfc7ad; font-size:12px; margin-bottom:9px; }
.field select,.field input,.field textarea { width:100%; border:1px solid #ffffff25; padding:11px; border-radius:3px; background:#151a14; color:var(--paper); min-width:0; }
.field textarea { resize:vertical; min-height:150px; font-size:13px; line-height:1.8; }
.proved { padding:16px; border-left:3px solid #8ca47c; background:#8ca47c12; margin-top:18px; font-size:13px; color:#b9d1ad; }
.report-layout { display:grid; grid-template-columns:minmax(0,1fr) 245px; gap:24px; align-items:start; }
.report-paper { background:var(--paper); color:var(--ink); padding:32px; border-radius:3px; }
.report-paper h3 { font-size:29px; border-bottom:1px solid #3333; padding-bottom:16px; }
.report-paper .field>label { color:#666b56; }
.report-paper .field select { background:var(--paper-light); color:var(--ink); border-color:#8d91775e; }
.proof-option { display:flex; align-items:center; gap:10px; border:1px solid #8d917744; border-radius:3px; padding:10px 12px; margin:8px 0; font-size:13px; cursor:pointer; }
.proof-option input { width:16px; height:16px; accent-color:#6e815a; flex:none; }
.report-help { padding:20px; border:1px dashed #c2cb9e44; font-size:12px; color:var(--muted); }
.report-help h3 { font-size:20px; color:var(--gold); margin-bottom:14px; }
.report-help ol { padding-left:18px; }
.report-help li { margin:12px 0; }
.result-sheet { text-align:center; background:var(--paper); color:var(--ink); padding:46px; border-radius:4px; }
.result-stamp { display:inline-block; border:3px double #55724c; color:#55724c; padding:6px 18px; transform:rotate(-7deg); font:27px var(--serif); letter-spacing:.18em; margin-bottom:24px; }
.result-stamp.failed { color:var(--red); border-color:var(--red); }
.result-sheet h2 { font-size:33px; margin:12px 0; }
.result-sheet .stars { font-size:25px; color:#9c7b2c; letter-spacing:6px; }
.result-sheet .explanation { text-align:left; font:17px/2 var(--serif); margin:28px 0; padding-top:24px; border-top:1px solid #8d917744; }
.result-sheet .actions { justify-content:center; }
.passport { background:#233528; padding:34px; border:1px solid #a7b38e4d; border-radius:7px; box-shadow:0 14px 40px #0004; }
.passport h1 { color:var(--gold); text-align:center; letter-spacing:.25em; font-size:32px; margin-bottom:24px; }
.passport-page { display:grid; grid-template-columns:repeat(3,1fr); background:var(--paper); color:var(--ink); padding:36px; gap:24px; }
.passport-stamp { aspect-ratio:1; border:2px dashed #8d967b66; border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; color:#8d967b; font:12px monospace; }
.passport-stamp.done { border:3px double #596f57; color:#596f57; transform:rotate(-9deg); }
.passport-stamp b { font:26px var(--serif); margin:8px 0; }
.passport-stamp small { font-size:10px; }
.guide-steps { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.guide-step { border:1px solid var(--line); padding:24px; background:var(--desk-2); }
.guide-step b { color:var(--gold); font:14px monospace; }
.guide-step h3 { font-size:23px; margin:10px 0; }
.guide-step p { font-size:13px; color:var(--muted); }
#game-dialog { width:min(600px,calc(100vw - 32px)); max-height:calc(100dvh - 48px); overflow-y:auto; padding:0; border:1px solid #a5946c; border-radius:5px; background:var(--paper); color:var(--ink); margin:auto; box-shadow:0 25px 100px #0009; }
#game-dialog::backdrop { background:#090d0bbf; backdrop-filter:blur(3px); }
.modal-head { display:flex; justify-content:space-between; align-items:start; gap:18px; padding:24px 28px 16px; border-bottom:1px solid #363c2520; }
.modal-head h2 { font:26px var(--serif); line-height:1.5; margin:5px 0 0; }
.modal-head .eyebrow { color:#7f6942; }
.modal-close { color:#6c6f5f!important; padding:4px 8px; font-size:25px!important; line-height:1; }
.modal-body { padding:24px 28px 28px; }
.modal-body>p { font:17px/2 var(--serif); white-space:pre-wrap; margin-bottom:20px; }
.modal-body .field>label { color:#5d634f; }
.modal-body .field input { background:var(--paper-light); color:var(--ink); border-color:#8d91775e; }
.modal-body .btn-ghost { color:var(--ink); border-color:#8d917766; }
.modal-body .btn-danger { color:var(--red); }
.modal-error { font:13px/1.7 var(--sans); color:var(--red); margin:14px 0; }
#game-toast { position:fixed; bottom:28px; left:50%; transform:translate(-50%,20px); opacity:0; pointer-events:none; background:#e8e1ca; color:#30372b; border:1px solid #aaa17d; box-shadow:0 7px 24px #0004; padding:12px 20px; border-radius:4px; max-width:min(560px,calc(100% - 32px)); z-index:100; font:13px/1.7 var(--sans); transition:opacity .2s,transform .2s; }
#game-toast.show { opacity:1; transform:translate(-50%,0); }
.game-loading { display:grid; place-content:center; text-align:center; min-height:75dvh; gap:18px; color:var(--paper); }
.game-loading h1 { font:28px var(--serif); }
.game-loading p { color:var(--muted); font-size:13px; }
.loading-seal { border:1px solid var(--gold); padding:14px; color:var(--gold); justify-self:center; transform:rotate(-9deg); font:27px var(--serif); }
@media(max-width:1100px) { .investigation { grid-template-columns:190px minmax(0,1fr); } .case-sidebar { padding:24px 10px; } .interview-layout { grid-template-columns:1fr; } .suspect-list { display:grid; grid-template-columns:repeat(3,1fr); } .suspect-button { padding:10px; } .case-brief { grid-template-columns:1fr; } .brief-image { max-height:330px; } .report-layout { grid-template-columns:1fr; } .report-help { order:-1; } .report-help ol { display:flex; gap:22px; flex-wrap:wrap; padding-left:18px; } .report-help li { margin:0; } }
@media(max-width:760px) { .topbar { height:72px; padding:0 20px; } .top-links { gap:16px; } .top-links .desktop-only { display:none; } .game-logo strong { font-size:21px; } .game-logo small { font-size:8px; } .desk-wrap { width:calc(100% - 36px); margin:28px auto 40px; } .desk-intro { align-items:start; } .desk-intro h1 { font-size:30px; } .desk-stats { gap:18px; } .desk-stats b { font-size:26px; } .desk-intro .muted { font-size:12px; max-width:240px; } .featured-file { grid-template-columns:1fr; } .feature-art { min-height:210px; } .feature-copy { padding:24px; } .feature-copy h2 { font-size:30px; } .case-grid { grid-template-columns:1fr; gap:16px; } .case-card { display:grid; grid-template-columns:34% 1fr; } .case-card .card-image { aspect-ratio:auto; height:100%; } .card-content { padding:16px; } .card-content h3 { font-size:23px; } .card-content>p { font-size:12px; min-height:0; } .card-bottom { margin-top:12px; padding-top:10px; } .card-number { left:8px; top:8px; font-size:8px; } .desk-footnote { flex-direction:column; } .investigation-header { padding:12px 16px; min-height:72px; } .case-heading { gap:12px; } .case-heading h1 { font-size:19px; } .back-desk span { display:none; } .save-indicator { font-size:10px; white-space:nowrap; } .investigation { display:block; } .case-sidebar { padding:0; border:0; } .case-sidebar>.eyebrow,.sidebar-progress,.sidebar-note { display:none; } .case-nav { position:fixed; z-index:30; bottom:0; left:0; right:0; background:#1b211af5; backdrop-filter:blur(12px); flex-direction:row; justify-content:space-around; padding:9px 5px max(10px,env(safe-area-inset-bottom)); border-top:1px solid #ffffff24; gap:0; } .case-nav button { width:auto; min-width:46px; flex-direction:column; padding:5px 7px; gap:4px; font-size:10px; border-radius:3px; position:relative; } .case-nav button.active { box-shadow:none; background:#d1bc7f10; } .nav-count { position:absolute; top:0; right:0; font-size:8px; padding:0 3px; } .case-workspace { padding:24px 18px 110px; } .view-heading h2 { font-size:27px; } .view-heading { gap:12px; } .view-heading .btn { font-size:11px; padding:8px 10px; } .view-heading .eyebrow { font-size:9px; } .paper { padding:23px; } .paper p { font-size:15px; } .brief-image { min-height:220px; max-height:240px; } .case-brief { gap:18px; } .people-row { gap:8px; } .person-mini { padding:8px 10px; } .city-map { height:250px; } .map-marker strong { font-size:10px; } .location-grid { grid-template-columns:1fr; gap:12px; } .location-card { padding:18px; } .location-card p { min-height:0; } .location-card .btn { margin-top:14px; } .clue-grid { grid-template-columns:1fr; gap:14px; } .suspect-list { gap:7px; } .suspect-button { flex-direction:column; text-align:center; gap:7px; padding:12px 4px; } .suspect-button strong { font-size:12px; } .suspect-button small { font-size:9px; } .suspect-button .portrait { width:34px; height:34px; } .chat-title { padding:16px; } .chat-messages { min-height:250px; max-height:440px; padding:16px; } .chat-message { max-width:95%; } .compose { padding:14px; } .compose-row { gap:8px; } .compose-row .btn { padding:10px 12px; font-size:12px; } .compose select { max-width:200px; font-size:11px; } .compose-foot { flex-direction:column; gap:4px; } .question-chips { margin:0 14px 14px; } .original-statement p { font-size:15px; } .notice-bar { align-items:start; flex-direction:column; gap:6px; } .board-layout { grid-template-columns:1fr; } .evidence-wall { min-height:200px; } .report-paper { padding:24px 20px; } .report-help { padding:18px; } .report-help ol { display:block; } .report-help li { margin:8px 0; } .result-sheet { padding:32px 22px; } .result-sheet h2 { font-size:28px; } .result-sheet .explanation { font-size:15px; } .passport { padding:20px; } .passport-page { padding:18px; gap:18px; grid-template-columns:1fr; } .passport-stamp { max-width:210px; width:100%; margin:auto; } .guide-steps { grid-template-columns:1fr; } #game-toast { bottom:95px; } .modal-head { padding:22px 22px 14px; } .modal-body { padding:20px 22px 24px; } }
@media(prefers-reduced-motion:reduce) { .game-body *, .game-body *::before,.game-body *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
