:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f8f5ed;--paper-light:#fdfbf6;--paper-edge:#e6dccc;--ink:#29221c;--muted:#685d52;--line:#c3b6a7;--line-strong:#968679;--rust:#ac4d38;--rust-dark:#8d3828;--rust-soft:#f0ded1;--petrol:#65755e;--danger:#913b35;--disabled-surface:#e0d9d1;--disabled-ink:#8c837b;--on-accent:#fff9ef;--font-body:Georgia, "Times New Roman", serif;--font-display:"Iowan Old Style", "Baskerville", Georgia, "Times New Roman", serif;--focus-width:2px;--focus-offset:3px;--motion-fast:.15s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#3c3026}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:var(--focus-width) solid var(--rust);outline-offset:var(--focus-offset)}a{color:inherit}::selection{color:#fff;background:#c57a58}.app-shell{background:repeating-linear-gradient(87deg,#0000 0 48px,#140f0c13 49px,#0000 53px,#f5dfbd0a 92px,#0000 115px),radial-gradient(80% 50% at 46% 2%,#ad8f6d4f,#0000 72%),linear-gradient(115deg,#4b3b2d 0%,#554336 40%,#342920 100%);min-height:100vh;padding:26px 20px 50px;position:relative;overflow:clip}.app-shell:before{content:"";z-index:0;pointer-events:none;opacity:.55;background:repeating-linear-gradient(0deg,#0e0b0812 0,#0000 1px 5px,#f6e5c509 6px);position:absolute;inset:0}.dossier-hero,.site-main,.save-notice{z-index:1;position:relative}.dossier-hero{color:#fff6e6;justify-content:space-between;align-items:flex-start;gap:16px;width:min(100%,920px);min-height:122px;margin:0 auto 8px;padding:8px 40px 17px;display:flex}.hero-copy{min-width:0}.hero-overline{letter-spacing:.26em;text-transform:uppercase;color:#e1caba;white-space:nowrap;align-items:center;gap:12px;font-size:11px;font-weight:700;display:flex}.hero-overline span{opacity:.75;background:#d8c2b2;width:34px;height:1px}.dossier-hero h1{font:700 clamp(32px,5.4vw,53px)/1.03 var(--font-display);letter-spacing:-.03em;text-shadow:0 2px 12px #21180e65;margin:9px 0 0}.hero-tools{align-items:flex-start;gap:14px;display:flex}.archive-link{color:#fff3df;white-space:nowrap;min-height:39px;font:700 12px var(--font-body);background:#25181252;border:1px solid #f7e9d361;border-radius:4px;justify-content:center;align-items:center;gap:7px;padding:9px 13px;display:inline-flex}.archive-link:hover{background:#25181294}.folio-tab{text-align:center;color:#352922;background:linear-gradient(110deg,#e9dbca,#f9eee0 45%,#eee0cf);border:1px solid #c6ad94;flex:0 0 155px;height:100px;margin-top:-12px;padding:30px 15px 10px;position:relative;transform:rotate(-2deg);box-shadow:4px 7px 16px #140a0533}.folio-tab strong{font:400 33px/1.1 var(--font-display);letter-spacing:.02em;display:block}.folio-tab span{letter-spacing:.24em;text-transform:uppercase;margin-top:3px;font-size:13px;display:block}.folio-tab:after{content:"";border:3px solid #953f34;border-bottom-color:#0000;border-radius:12px;width:21px;height:45px;position:absolute;top:-13px;right:17px;transform:rotate(8deg);box-shadow:1px 0 #ffffff8c}.site-main{max-width:940px;margin:0 auto}.paper-shell{background:radial-gradient(at 50% 60%,#fff6,#0000 70%),linear-gradient(130deg,#d9c8b3,#f3e9d8 40%,#d3c1ac);border:1px solid #b9aa97;border-radius:17px;width:100%;padding:21px;position:relative;box-shadow:0 16px 45px #1209035e,inset 0 0 0 3px #ffffff5c}.paper-shell:before{content:"";z-index:-1;background:#e6d8c6;border:1px solid #b9a891;border-radius:14px 14px 0 0;height:21px;position:absolute;top:-8px;left:11px;right:6px;transform:rotate(-.65deg)}.paper-contents{background:repeating-linear-gradient(3deg,#0000 0 7px,#5b422b03 8px,#0000 10px),radial-gradient(circle at 12% 20%,#fffdfa 0,#0000 60%),linear-gradient(124deg,#faf6ee,#f7f1e6);border:1px solid #7c644e4d;border-radius:9px;min-width:0;padding:clamp(22px,4vw,42px);position:relative;box-shadow:0 0 0 1px #ffffffb3,inset 0 0 55px #9e846313}.section-heading{align-items:center;gap:16px;min-width:0;display:flex}.section-heading h2{color:var(--ink);font:700 clamp(18px,2.5vw,25px)/1.2 var(--font-display);text-transform:uppercase;letter-spacing:.17em;flex:none;margin:0}.section-rule{opacity:.8;background:#a99a87;flex:auto;min-width:14px;height:1px}.section-icon{border:1px solid var(--line-strong);color:#29241f;background:#efe7d9b3;border-radius:50%;flex:0 0 43px;place-items:center;width:43px;height:43px;display:grid}.clue-list{margin:17px 0 0;padding:0;list-style:none}.clue-list li{grid-template-columns:45px minmax(0,1fr);align-items:center;gap:19px;min-height:61px;display:grid}.clue-list li:not(:last-child) .clue-copy{border-bottom:1px solid #96897852}.clue-number{width:44px;height:44px;font:700 21px/1 var(--font-display);color:#2d2620;background:linear-gradient(135deg,#eee5d6,#f9f4e9);border:1px solid #9b6a4e;border-radius:50%;place-items:center;display:grid}.clue-copy{align-items:center;min-width:0;min-height:61px;font-size:clamp(15px,2.3vw,20px);line-height:1.35;display:flex}.case-purpose{margin:9px 0 0;padding-bottom:16px}.case-purpose summary{cursor:pointer;color:#855a47;align-items:center;gap:7px;min-height:40px;font-size:13px;display:inline-flex}.case-purpose p{color:var(--muted);margin:5px 0 9px;padding-left:20px;font-size:13px;line-height:1.45}.time-section,.scene-section,.character-tray,.game-actions{border-top:1px solid #ad9f8e;margin-top:11px;padding-top:21px}.time-selector{background:#faf7f061;border:1px solid #9d8c7a;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;min-height:68px;margin:13px 0 0;padding:4px;display:grid}.time-option{color:#2a2420;min-height:58px;font:700 clamp(21px,3vw,29px)/1 var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:.02em;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;display:grid}.time-option.is-selected{color:#fff4e6;background:#af513d;border-color:#9c4b37;box-shadow:inset 0 1px 3px #ffffff30,0 1px 4px #6c2c1638}.time-option:hover:not(.is-selected){background:#ae7d591f}.scene-section{margin-top:22px}.placement-instruction{color:#66594e;white-space:nowrap;flex:0 auto;font-size:clamp(10px,1.8vw,15px)}.place-heading>svg{color:#494039;flex-shrink:0}.snapshot{min-width:0;margin-top:21px}.room-route{grid-template-columns:repeat(var(--room-count),minmax(0,1fr));gap:clamp(6px,2.3vw,22px);min-width:0;padding-top:17px;display:grid;position:relative}.room-route:before{content:"";height:2px;top:7px;left:calc(50% / var(--room-count));right:calc(50% / var(--room-count));pointer-events:none;background:#4d463f;position:absolute}.room-column{min-width:0;position:relative}.route-node{z-index:1;background:#f9f4eb;border:2px solid #41392f;border-radius:50%;width:18px;height:18px;position:absolute;top:-17px;left:50%;transform:translate(-50%)}.room-card{background:linear-gradient(135deg,#f1e8db,#f8f3e8);border:1px solid #ab9986;border-radius:4px;min-width:0;height:100%;padding:7px 6px 8px;position:relative;box-shadow:0 3px 5px #553c2424}.room-label{text-align:center;min-height:24px;font:700 clamp(12px,2.2vw,20px)/1.2 var(--font-display);overflow-wrap:anywhere;margin:0 0 6px}.room-illustration{aspect-ratio:180/130;object-fit:cover;filter:sepia(.24)contrast(.97);border:1px solid #d5c8b8;width:100%;height:auto;display:block}.room-slot{color:#5a5048;width:100%;min-width:0;min-height:120px;transition:background var(--motion-fast),border-color var(--motion-fast);background:#fffdf752;border:1.5px dashed #ab9a86;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;margin-top:9px;padding:10px 3px;display:flex}.room-slot:hover{border-color:var(--rust);background:#f5e6d8}.room-slot.is-occupied{background:#f6f0e6;border-style:solid;border-color:#827461}.room-slot.is-selected{border-color:var(--rust);background:#f2d9ca}.slot-portrait{color:#776c60;width:38px;height:38px;font:700 23px var(--font-display);border:1px solid #998f82;border-radius:50%;place-items:center;margin-bottom:7px;display:grid}.room-slot-copy{text-align:center;overflow-wrap:anywhere;font-size:clamp(10px,2vw,17px);line-height:1.26}.room-clear{z-index:2;color:#6e5447;background:#f8f3eb;border:1px solid #bcaa97;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;bottom:2px;right:2px}.room-clear:hover{color:var(--rust);border-color:var(--rust)}.character-tray{margin-top:22px;padding-top:19px}.character-list{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:clamp(8px,2.4vw,23px);margin-top:15px;display:grid}.character-option{min-width:0;min-height:110px;color:var(--ink);transition:border-color var(--motion-fast),background var(--motion-fast),transform var(--motion-fast);background:linear-gradient(155deg,#f8f3e9,#f1e8da);border:1px solid #9f8d7c;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:13px 5px 8px;display:flex;position:relative;box-shadow:0 3px 5px #3e2b1921}.character-option:hover{border-color:var(--rust);transform:translateY(-2px)}.character-option.is-selected{border:2px solid var(--rust);background:#eedbc8}.character-portrait{color:#b98772;place-items:center;height:52px;display:grid}.portrait-1 .character-portrait{color:#404f60}.portrait-2 .character-portrait{color:#6b8064}.portrait-3 .character-portrait{color:#76533d}.character-name{font:700 clamp(13px,2.3vw,20px)/1.1 var(--font-display)}.selection-check{background:var(--rust);color:#fff;border-radius:50%;place-items:center;width:19px;height:19px;display:grid;position:absolute;top:6px;right:6px}.game-actions{margin-top:21px;padding-top:19px}.progress-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:23px;display:flex}.board-progress{white-space:nowrap;margin:0;font-size:clamp(15px,2.5vw,22px);line-height:1.3}.board-progress strong{font-weight:700}.progress-dots{justify-content:flex-end;align-items:center;gap:clamp(5px,1vw,11px);min-width:0;display:flex}.progress-dots span{aspect-ratio:1;background:0 0;border:1.5px solid #ab9a87;border-radius:50%;flex:0 19px;min-width:9px}.progress-dots span.is-filled{background:var(--rust);border-color:var(--rust)}.action-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.secondary-button,.primary-button,.case-choose-button{color:#261f1a;min-width:0;min-height:66px;font:700 clamp(13px,2.4vw,21px)/1.25 var(--font-display);text-align:center;background:linear-gradient(155deg,#fbf8f1,#f5eee2);border:1px solid #9f8b7b;border-radius:6px;justify-content:center;align-items:center;gap:14px;padding:12px 16px;display:inline-flex;box-shadow:0 2px 4px #3b291a17}.secondary-button:hover:not(:disabled){background:#eddfd0;border-color:#875944}.secondary-button:disabled,.case-choose-button:disabled{color:#978f86;box-shadow:none;background:#ded9d2;border-color:#c7beb6}.primary-button{color:#fff5e9;background:linear-gradient(135deg,#b75a43,#a84633);border-color:#a94937;box-shadow:0 3px 9px #83372533}.primary-button:hover:not(:disabled){background:#923b29}.primary-button:disabled{color:#7e6055;box-shadow:none;background:#d9b6a9;border-color:#d4ad9f}.hint-panel{display:contents}.hint-button{width:100%}.hint-reveals{border:1px solid #b6a188;border-left:3px solid var(--rust);background:#f3e8dc;border-radius:4px;grid-area:3/1/auto/-1;padding:13px 18px}.hint-reveals strong{font:700 14px var(--font-display)}.hint-reveals li{margin-top:8px;font-size:14px;line-height:1.5}.feedback-message{color:#783c30;background:#f1e0d7;border:1px solid #c78b78;border-radius:5px;align-items:center;gap:12px;margin:15px 0 0;padding:12px 14px;font-size:14px;display:flex}.feedback-icon{border:1px solid;border-radius:50%;flex:0 0 24px;place-items:center;height:24px;font-weight:700;display:grid}.success-summary{background:#f0e5d6;border:1px solid #a99a87;border-radius:7px;flex-wrap:wrap;align-items:center;gap:15px;margin-top:22px;padding:20px;display:flex}.success-summary h2{font:700 27px var(--font-display);margin:5px 0}.success-summary p{font:15px/1.45 var(--font-body)}.success-emblem{color:var(--petrol);place-items:center;width:38px;height:38px;display:grid}.success-copy{flex:190px}.success-copy .eyebrow{letter-spacing:.08em;font-size:11px}.success-summary>.primary-button{flex:100%;min-height:48px}.save-notice{color:#462f29;background:#ffefe1;border:1px solid #b78974;border-radius:4px;max-width:850px;margin:0 auto 12px;padding:11px 15px;font-size:13px}.archive-paper{min-height:60vh}.case-picker{padding:17px 12px 30px}.archive-hero h1{font:700 40px/1.1 var(--font-display);margin:11px 0}.archive-hero>p{color:var(--muted);font-size:15px;line-height:1.5}.archive-hero>.eyebrow,.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#8b4738;align-items:center;gap:7px;font-size:10px;display:inline-flex}.archive-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.archive-toolbar>span{align-items:center;gap:9px;font-size:12px;display:inline-flex}.text-button{color:#783f31;background:0 0;border:0;align-items:center;gap:8px;min-height:44px;text-decoration:underline;display:inline-flex}.case-picker-list{gap:11px;padding:0;list-style:none;display:grid}.case-picker-item{background:#ffffff45;border:1px solid #bdaa95;border-radius:5px;grid-template-columns:65px minmax(0,1fr) auto;align-items:center;gap:15px;padding:20px;display:grid}.case-picker-item.is-current{border-color:var(--rust)}.case-picker-item.is-locked{opacity:.65}.case-index{flex-direction:column;font-size:32px;line-height:1.1;display:flex}.case-index span{text-transform:uppercase;letter-spacing:.1em;font-size:11px}.case-item-status{color:#824b3b;letter-spacing:.11em;align-items:center;gap:7px;font-size:10px;display:flex}.case-status-dot{background:var(--rust);border-radius:50%;width:7px;height:7px}.case-status-dot.is-complete{background:var(--petrol)}.case-item-content h2{font:700 24px/1.2 var(--font-display);margin:8px 0}.case-item-content>p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.case-item-meta{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.case-item-meta span{color:#64574b;align-items:center;gap:5px;font-size:11px;display:inline-flex}.case-choose-button{white-space:nowrap;min-height:43px;padding:8px 15px;font-size:14px}.case-choose-button.is-complete{color:var(--petrol)}.archive-footnote{color:#8d8071;letter-spacing:.12em;text-align:center;margin-top:20px;font-size:10px}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1d140eb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.restart-dialog{background:var(--paper);border:1px solid var(--line-strong);border-radius:11px;width:min(100%,450px);padding:30px;box-shadow:0 20px 60px #0000004d}.restart-dialog h2{font:700 27px/1.2 var(--font-display);margin:0}.restart-dialog p{color:var(--muted);font-size:14px;line-height:1.5}.restart-dialog-actions{gap:12px;margin-top:24px;display:flex}.restart-dialog-actions>*{flex:1;min-height:46px;font-size:15px}@media (width<=740px){.app-shell{padding:13px 8px 28px}.dossier-hero{min-height:110px;padding:14px 19px 17px}.dossier-hero h1{max-width:390px;font-size:clamp(30px,7vw,43px)}.hero-overline{letter-spacing:.2em;gap:8px;font-size:9px}.hero-overline span{width:22px}.folio-tab{flex-basis:94px;height:74px;padding:23px 5px 4px}.folio-tab strong{font-size:22px}.folio-tab span{letter-spacing:.12em;font-size:8px}.folio-tab:after{border-width:2px;width:15px;height:30px;top:-9px;right:10px}.hero-tools{gap:5px}.archive-link{min-height:28px;padding:5px 7px;font-size:10px;position:absolute;top:80px;right:20px}.archive-link svg{width:13px;height:13px}.paper-shell{border-radius:12px;padding:9px}.paper-contents{border-radius:7px;padding:18px 15px}.section-heading{gap:9px}.section-heading h2{letter-spacing:.15em;font-size:18px}.section-icon{flex-basis:34px;width:34px;height:34px}.section-icon svg{width:19px;height:19px}.clue-list{margin-top:10px}.clue-list li{grid-template-columns:33px minmax(0,1fr);gap:13px;min-height:46px}.clue-number{width:32px;height:32px;font-size:16px}.clue-copy{min-height:46px;font-size:14px;line-height:1.35}.case-purpose{padding-bottom:9px}.time-section,.scene-section,.character-tray,.game-actions{padding-top:17px}.time-selector{min-height:53px;margin-top:12px}.time-option{min-height:45px;font-size:21px}.scene-section{margin-top:18px}.placement-instruction{white-space:normal;text-align:right;font-size:10px}.place-heading>svg{width:18px}.snapshot{margin-top:19px}.room-route{gap:7px}.room-card{padding:5px 4px}.route-node{width:14px;height:14px;top:-17px}.room-label{min-height:20px;margin-bottom:4px;font-size:13px}.room-slot{min-height:78px;margin-top:5px;padding:7px 1px}.slot-portrait{width:27px;height:27px;margin-bottom:5px}.slot-portrait svg{width:17px;height:17px}.room-slot-copy{font-size:11px}.room-clear{width:26px;height:26px;bottom:0;right:0}.character-tray{margin-top:16px}.character-list{gap:8px}.character-option{min-height:82px;padding:9px 4px}.character-portrait{height:40px}.character-portrait svg{width:36px;height:36px}.character-name{font-size:14px}.selection-check{width:16px;height:16px;top:2px;right:2px}.game-actions{margin-top:17px}.progress-heading{margin-bottom:16px}.board-progress{font-size:14px}.progress-dots{gap:5px}.progress-dots span{flex-basis:13px;min-width:7px}.action-row{gap:9px}.secondary-button,.primary-button{gap:7px;min-height:51px;padding:10px 6px;font-size:13px}.secondary-button svg,.primary-button svg{width:18px;height:18px}.case-picker{padding:14px 6px}.case-picker-item{grid-template-columns:37px minmax(0,1fr);gap:9px;padding:14px}.case-index{font-size:24px}.case-item-content h2{font-size:20px}.case-choose-button{grid-column:1/-1}}@media (width<=375px){.dossier-hero{padding-inline:8px}.dossier-hero h1{font-size:29px}.paper-contents{padding:16px 9px}.section-heading h2{font-size:16px}.room-route{gap:5px}.room-label{font-size:11px}.room-slot-copy{font-size:10px}.room-slot{min-height:72px}.placement-instruction{display:none}.character-list{gap:5px}.character-name{font-size:12px}.action-row{gap:7px}.secondary-button,.primary-button{gap:5px;font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
