@charset "UTF-8";
:root{color-scheme:light;--paper:#f5f3eb;--panel:#fffdf7;--ink:#20384a;--muted:#65716f;--line:#d7dbd1;--green:#dbe9de;--red:#f1ded7;--gold:#e9b955;--shadow:0 10px 30px #20384a08;--accent:#2b574c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--accent)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}.masthead{max-width:760px;margin:auto;padding:25px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:19px;font-weight:750;letter-spacing:.04em}.brand small{display:block;font-size:10px;font-weight:450;letter-spacing:.1em;color:var(--muted)}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1.5px solid var(--ink);border-radius:50%;font-family:serif;font-size:22px}.quiet{border:0;background:none;color:var(--muted);padding:8px;font-size:13px}main{max-width:660px;margin:auto;padding:36px 24px 20px}.issue-line,.section-line{display:flex;justify-content:space-between;align-items:center;gap:12px}.issue-line{font-size:11px;color:var(--muted);letter-spacing:.05em}#level{padding:2px 10px;border:1px solid var(--line);border-radius:20px}h1,h2,p{margin-top:0}h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:40px;line-height:1.55;letter-spacing:.04em;margin:26px 0 15px;font-weight:650}h2{font-size:19px}.intro{color:var(--muted);margin-bottom:30px}.case-file{position:relative;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--ink);padding:26px;box-shadow:var(--shadow)}.eyebrow{font:10px/1.6 system-ui;letter-spacing:.16em;color:var(--muted)}.case-file h2{font-family:serif;font-size:27px;margin:8px 0 14px}.case-file p{font-size:13px}.national{border-top:1px dashed var(--line);padding-top:14px;color:var(--muted);font-size:13px}.primary,.secondary{border-radius:6px;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:10px 18px;font-weight:650}.primary{background:var(--ink);color:var(--panel);border:1px solid var(--ink)}.primary span{margin-left:auto}.case-file .primary{width:100%;margin-top:4px}.secondary{background:var(--panel);border:1px solid var(--line);color:var(--ink)}.daily-note{text-align:center;color:var(--muted);font-size:10px!important;margin:10px 0 0}.how{margin-top:38px}.how ol{padding-left:25px;color:var(--muted);font-size:13px}.how li{padding-bottom:7px}.how p{font-size:12px;color:var(--muted)}.example{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--green);padding:18px;margin:20px 0;font-size:11px;border-radius:6px}.example b{font-size:12px}details{border-top:1px solid var(--line);padding:16px 0;font-size:13px}summary{cursor:pointer;font-weight:650}details p{margin-top:15px}.archive{margin-top:30px}#archive{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}#archive button{font-size:12px;min-height:42px}.personal{font-size:12px;color:var(--muted);margin:20px 0}.game-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.game-heading h1{font-size:23px;margin:6px 0 18px}.progress{display:flex;justify-content:space-between;font-size:13px;font-variant-numeric:tabular-nums}progress{width:100%;height:5px;appearance:none;border:0;display:block;margin:9px 0 15px}progress::-webkit-progress-bar{background:var(--line);border-radius:4px}progress::-webkit-progress-value{background:var(--accent);border-radius:4px}.board-note{font-size:10px;color:var(--muted);margin-bottom:12px}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.resident{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;min-height:95px;padding:8px 2px;background:var(--panel);border:1px solid var(--line);border-radius:7px;color:var(--ink);box-shadow:0 2px 0 #20384a08}.resident .name{font-weight:700;font-size:14px}.resident .job{font-size:10px;color:var(--muted)}.resident .state{font-size:11px;margin-top:5px}.resident .number{position:absolute;top:4px;left:7px;color:var(--muted);font-size:8px}.resident.innocent{background:var(--green);border-color:#a4bdab}.resident.criminal{background:var(--red);border-color:#c8a598}.resident .evidence-dot{position:absolute;right:5px;top:2px;color:var(--accent);font-size:12px}.lit{outline:3px solid var(--gold)!important;outline-offset:2px}.tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.tools button{font-size:12px;min-height:44px}.tools small,#penalties{font-size:10px;color:var(--muted)}.notice{font-size:12px;color:var(--accent);min-height:24px;margin:10px 0 22px}.section-line{border-bottom:1px solid var(--line);padding-bottom:8px}.section-line h2{font-size:17px;margin:0}.section-line small{font-size:10px;color:var(--muted)}.clue{display:block;text-align:left;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:13px 15px;margin-top:10px;color:var(--ink);font-size:13px;line-height:1.8}.clue small{display:block;font-size:10px;color:var(--muted)}.clue.used{opacity:.45}.clue.used small:after{content:" ／ 読了"}#result{text-align:center}#result h1{font-size:28px}.solved-stamp{margin:15px auto 25px;padding:12px;width:100px;border:2px solid var(--accent);color:var(--accent);font-family:serif;letter-spacing:.1em;transform:rotate(-5deg);font-weight:bold}.result-stats{display:grid;grid-template-columns:2fr 1fr 1fr;border:1px solid var(--line);background:var(--panel);padding:20px 8px;gap:5px}.result-stats small{display:block;font-size:11px;color:var(--muted)}.result-stats b{font-size:22px;font-variant-numeric:tabular-nums}.share-buttons{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}#share-preview{display:inline-block;text-align:left;font:13px/1.8 system-ui;background:var(--panel);padding:20px;border:1px dashed var(--line);border-radius:6px;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}.terms{margin-top:32px}.terms svg{display:block;width:140px;margin:15px auto}.term-example{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);text-align:center}.term-example>*{padding:10px 2px}.term-example b{background:var(--green)}.terms-board{display:grid;grid-template-columns:repeat(4,1fr);max-width:170px;margin:auto;border:1px solid var(--line);text-align:center}.terms-board span{border:1px solid var(--line);height:32px}.ad-slot:empty{display:none}footer{border-top:1px solid var(--line);padding:24px 0;margin-top:12px;display:flex;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:10px}footer p{flex-basis:100%;margin:0}footer a{color:var(--muted)}dialog{width:min(90vw,370px);border:1px solid var(--line);border-radius:12px;padding:28px;background:var(--panel);color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#12243280}dialog h2{font-size:25px;margin:12px 0 0}dialog p{font-size:13px;color:var(--muted)}.dialog-close{position:absolute;top:8px;right:12px;background:none;border:0;color:var(--muted);font-size:25px}.verdict-buttons{display:flex;gap:10px}.verdict-buttons button{flex:1}#verdict-notice{min-height:40px;margin:15px 0 0;color:var(--accent)}
@media(max-width:400px){main{padding:24px 16px}.masthead{padding:18px 16px}h1{font-size:34px}.case-file{padding:21px}.board{gap:6px}.resident{min-height:87px}.resident .name{font-size:13px}.resident .job{font-size:9px}.brand{font-size:17px}.example{padding:12px;font-size:10px}.example b{font-size:11px}}
:root[data-theme="dark"]{color-scheme:dark;--paper:#17262c;--panel:#203139;--ink:#e4e9df;--muted:#a6b4b2;--line:#405257;--green:#284b40;--red:#583d37;--accent:#b4d8c0;--shadow:none}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--paper:#17262c;--panel:#203139;--ink:#e4e9df;--muted:#a6b4b2;--line:#405257;--green:#284b40;--red:#583d37;--accent:#b4d8c0;--shadow:none}}
/* A small town puzzle: ink, cream paper, and hand-drawn residents. */
:root{--paper:#fcf8ef;--panel:#fffdf8;--ink:#263f4b;--muted:#65736f;--line:#d9dbcd;--green:#e5efda;--red:#f6e0d5;--accent:#346859;--shadow:none}
body{font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN",system-ui,sans-serif}.masthead{max-width:660px;padding:18px 24px;border-bottom:2px solid var(--ink)}.brand{font-size:21px;letter-spacing:-.025em}.brand small{font-size:10px;letter-spacing:.02em;margin-top:1px}.brand-mark{background:#f4c55b;border:2px solid var(--ink);border-radius:8px 8px 8px 2px;font-family:system-ui;font-size:30px;font-weight:800;width:37px;height:40px;transform:rotate(-5deg)}main{padding-top:24px}h1{font-family:inherit;font-weight:800;font-size:29px;letter-spacing:-.02em;line-height:1.4;margin:22px 0 12px}.intro{font-size:13px;margin-bottom:24px;line-height:1.9}.issue-line{font-size:10px}#level{border:0;background:var(--green);border-radius:5px;padding:3px 7px}.case-file{padding:22px;border:1.5px solid var(--ink);border-top:1.5px solid var(--ink);border-radius:12px;box-shadow:3px 4px 0 var(--line)}.eyebrow{font-size:11px;letter-spacing:.03em;font-weight:650}.case-file h2{font-family:inherit;font-weight:800;font-size:24px;margin:8px 0 12px}.case-file p{line-height:1.9}.town-preview{display:grid;grid-template-columns:repeat(4,1fr);margin:18px 0 8px;gap:5px}.cast{text-align:center;border-bottom:2px solid var(--line);padding:10px 2px 8px}.cast b{display:block;font-size:12px}.cast small{display:block;font-size:10px;color:var(--muted)}.cast .portrait{width:38px;height:35px;margin:0 auto 6px;transform:scale(1.15);transform-origin:bottom}.cast:nth-child(2){transform:rotate(-3deg)}.cast:nth-child(4){transform:rotate(3deg)}.case-file .cast-note{text-align:center;font-size:10px;color:var(--muted);margin-bottom:18px}.primary{border:1.5px solid var(--ink);background:#f4c55b;color:#263f4b;border-radius:8px;box-shadow:0 3px 0 var(--ink);min-height:48px;font-weight:800}.primary:active{box-shadow:none;transform:translateY(2px)}.secondary{border-radius:8px;min-height:44px;border:1.5px solid var(--line)}.national{font-size:11px;margin:17px 0 0;padding-top:12px}.how{margin-top:30px}.how h2{font-size:17px}.how ol{font-size:13px}.example{border-radius:9px;border:1px solid var(--line);background:var(--panel)}.archive{margin-top:25px}.game-heading h1{font-size:21px;margin:5px 0 12px}.game-heading .quiet{font-size:11px;border:1px solid var(--line);border-radius:6px}.progress{font-weight:650}.board-note{margin-bottom:10px}.board{gap:7px}.resident{border:1.5px solid var(--line);border-radius:9px;min-height:105px;box-shadow:0 2px 0 var(--line);padding:7px 2px 5px;transition:background .15s,transform .1s}.resident:not(.innocent):not(.criminal):hover{border-color:var(--ink)}.resident:active{transform:translateY(2px);box-shadow:none}.resident .number{font-size:7px;top:4px;left:5px}.resident .name{font-size:14px;letter-spacing:0}.resident .job{font-size:10px;line-height:1.4}.resident .state{font-size:10px;line-height:1.4;margin-top:5px;padding:2px 5px;border-radius:4px;color:var(--muted)}.resident.innocent .state{background:#cadfb7;color:#28482c}.resident.criminal .state{background:#edbfa8;color:#653c2c}.resident.innocent,.resident.criminal{box-shadow:none}.resident .evidence-dot{font-size:13px}.lit{outline:3px solid #dba327!important;outline-offset:1px}.portrait{display:block;position:relative;width:34px;height:29px;margin:6px auto 4px}.portrait .face{position:absolute;left:10px;top:6px;width:15px;height:18px;background:#f0c3a3;border:1.5px solid #393d38;border-radius:45% 45% 48% 48%;z-index:2}.portrait .face:after{content:"· ·";position:absolute;color:#393d38;font-family:serif;font-size:12px;letter-spacing:0;line-height:1;top:3px;left:2px;white-space:pre}.portrait .hair{position:absolute;left:9px;top:2px;width:17px;height:13px;background:#514336;border:1.5px solid #393d38;border-radius:8px 8px 2px 2px;z-index:3;clip-path:polygon(0 0,100% 0,100% 100%,70% 45%,0 70%)}.portrait .shirt{position:absolute;left:5px;top:21px;width:25px;height:9px;border-radius:10px 10px 1px 1px;background:#86a8af;border:1.5px solid #393d38;z-index:1}.look-1 .hair,.look-5 .hair{height:18px;width:21px;left:7px;clip-path:polygon(0 0,100% 0,100% 100%,85% 100%,75% 30%,20% 40%,15% 100%,0 100%)}.look-2 .hair{border-radius:5px 5px 0 0;transform:rotate(-7deg);background:#82715b}.look-3 .hair{background:#353c41;top:1px;clip-path:polygon(0 0,100% 0,100% 100%,85% 50%,55% 60%,0 80%)}.look-4 .hair,.look-8 .hair{background:#725140;transform:rotate(6deg)}.look-6 .hair{height:8px;top:3px;clip-path:none;background:#b4aaa0}.look-7 .hair{height:17px;left:8px;width:20px;border-radius:8px 8px 5px 5px;clip-path:polygon(0 0,100% 0,100% 100%,85% 100%,85% 45%,10% 60%,10% 100%,0 100%)}.look-9 .hair{background:#444146;clip-path:polygon(0 0,100% 0,100% 100%,90% 55%,50% 50%,10% 60%,0 100%)}.look-1 .shirt,.look-7 .shirt{background:#cf8b73}.look-2 .shirt,.look-8 .shirt{background:#a7b986}.look-3 .shirt,.look-9 .shirt{background:#d8bb68}.look-4 .shirt{background:#9a9fbb}.look-5 .shirt{background:#b3aa96}.look-6 .shirt{background:#7e9c90}.tools{margin-top:17px}.tools .secondary{background:var(--green);border-color:#aab99d}.notice{padding:9px 11px;background:var(--panel);border-left:3px solid var(--accent);font-size:11px;line-height:1.7;margin-bottom:20px}.section-line h2{font-size:16px}.clue{border:0;border-bottom:1px dashed var(--line);border-left:3px solid #b2c9b8;background:var(--panel);border-radius:0 7px 7px 0;font-size:13px;padding:12px 13px;margin-top:12px;line-height:1.8}.clue small{font-size:10px;color:var(--accent);margin-bottom:4px;font-weight:650}.clue.used{opacity:.55}.testimonies{padding-bottom:10px}.solved-stamp{border-radius:50%;width:90px;height:90px;display:grid;place-items:center;background:var(--green);font-family:inherit;font-size:22px;transform:rotate(-8deg);margin-bottom:18px}#result h1{font-size:27px}.result-stats{border-radius:9px}.share-buttons{margin-bottom:16px}.quiet{min-height:40px}.personal{white-space:pre-line;font-size:11px;line-height:1.9}footer{font-size:10px}
@media(max-width:400px){.masthead{padding:16px}.brand{font-size:20px}main{padding:22px 16px}h1{font-size:26px}.intro{font-size:12px}.case-file{padding:19px}.board{gap:6px}.resident{min-height:102px}.resident .name{font-size:13px}.resident .job{font-size:10px}.game-heading h1{font-size:20px}.cast-note{font-size:9px!important}.how h2{font-size:16px}}
:root[data-theme="dark"]{--paper:#1e2d31;--panel:#26393d;--ink:#e5e9de;--muted:#a8b9b4;--line:#4c615f;--green:#304d3d;--red:#594337;--accent:#b7d6bc}.portrait .face,.portrait .hair,.portrait .shirt{filter:none}
.tools{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,660px);padding:10px 16px max(8px,env(safe-area-inset-bottom));background:var(--paper);border-top:1.5px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;box-shadow:0 -4px 12px #263f4b08}.tools button{font-size:13px;padding:8px 4px;min-height:44px;background:var(--panel)}.tools #hint{background:var(--green)}#penalties{grid-column:1/-1;text-align:center;font-size:10px;line-height:1.4}.tools #clue-total{display:inline-grid;place-items:center;background:var(--green);border-radius:4px;font-size:10px;min-width:18px;padding:0 3px}body:has(#game:not([hidden])){padding-bottom:95px}.board{scroll-margin-top:15px}.testimonies{scroll-margin-top:15px}.notice{margin-top:20px}
@media(max-width:480px){main{padding-top:16px}.board{gap:5px}.resident{min-height:96px;padding:6px 2px 5px}.resident .portrait{margin:2px auto}.resident .name{line-height:1.4}.resident .state{line-height:1.2;margin-top:3px}.masthead{padding-top:12px;padding-bottom:12px}}
