:root{--ink:#263431;--muted:#7b827a;--green:#243e35;--gold:#b89451;--paper:#f6f4ec;--line:#dedfd5;--serif:Georgia,'Songti TC','Noto Serif TC',serif;font-family:-apple-system,BlinkMacSystemFont,'PingFang TC','Microsoft JhengHei',sans-serif;color:var(--ink);background:var(--paper);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c8a15d;outline-offset:3px}button{border:0;background:none}a{color:inherit}.rail{width:236px;position:fixed;inset:0 auto 0 0;background:#192a26;color:#d5dfd7;padding:38px 25px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;letter-spacing:2.4px;font-family:var(--serif);font-size:15px}.brand small{display:block;font-family:inherit;font-size:11px;font-weight:400;letter-spacing:4px;color:#9baba0;margin-top:7px}.brand-mark{font-family:Georgia,serif;font-size:42px;line-height:1;color:#cfb37a;position:relative}.brand-mark span{font-size:13px;position:absolute;top:-4px;right:-2px}.rail nav{margin-top:62px;display:grid;gap:12px}.nav-item{display:flex;align-items:center;text-align:left;gap:12px;border-radius:5px;padding:14px 12px;color:#afbeb4;font-size:13px}.nav-item span{font-size:21px;width:20px;color:#c2b58d}.nav-item.active{background:#31443a;color:#f0eada}.nav-item:hover{background:#304138}.nav-item b{margin-left:auto;background:#52614c;color:#e6e4cb;border-radius:4px;font-size:10px;padding:3px 7px}.rail-bottom{margin-top:auto;color:#bdc7bc;font-size:12px;line-height:1.8}.rail-bottom p{color:#8c9d91;font-size:11px;margin:12px 0 20px}.local-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b8c098;margin-right:7px}.text-button{font-size:12px;text-align:left;padding:4px 0;color:#64786a}.rail .text-button{display:block;color:#b2bdb1;margin-top:10px}.shell{margin-left:236px}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 40px;background:#f8f7f1}.breadcrumb{font-size:12px;color:#8c9288}.breadcrumb span{margin:0 14px;color:#b9bdb2}.breadcrumb b{color:#5c695f;font-weight:500}.top-actions{display:flex;align-items:center;gap:25px}#saveStatus{font-size:11px;color:#7c887a}.timer{border:1px solid #d7dbcf;border-radius:5px;padding:9px 12px;display:flex;gap:10px;font-variant-numeric:tabular-nums;font-size:12px;background:#eeeee4}main{max-width:1560px;margin:auto;padding:36px 40px 0}.case-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow,.tiny-label{font-size:10px;letter-spacing:2.5px;color:#8c967f;font-weight:600}.eyebrow{color:#a0854f;margin-bottom:10px}h1{font-family:var(--serif);font-size:36px;font-weight:500;letter-spacing:1px;margin:0 0 10px}h2{font-weight:500;margin:0;font-size:17px;font-family:var(--serif)}.case-header p{font-size:12px;color:var(--muted);margin:0}.case-badges{display:flex;gap:8px}.badge{padding:7px 11px;background:#e2e8d9;color:#61764f;border-radius:4px;font-size:11px;white-space:nowrap}.badge.soft{background:#eae9df;color:#7d7f6e}.workspace{display:grid;grid-template-columns:minmax(360px,1fr) 340px;gap:24px;align-items:start}.board-panel,.clue-panel{border:1px solid var(--line);border-radius:8px;background:#fdfcf7;overflow:hidden;box-shadow:0 4px 18px #293d2303}.board-head{padding:22px 25px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7e7dc}.board-head h2{margin-top:6px}.zoom-controls{display:flex;align-items:center;gap:7px}.zoom-controls button{width:30px;height:32px;border:1px solid #dfe1d5;border-radius:4px;color:#6c7667}.zoom-controls span{font-size:10px;color:#909487;min-width:34px;text-align:center}.board-scroll{overflow:auto;padding:32px 28px;background-color:#f0efe6;background-image:radial-gradient(#d5d7ca .6px,transparent .6px);background-size:8px 8px;max-height:70vh;overscroll-behavior:contain}.boards{display:flex;flex-wrap:wrap;gap:20px;align-items:start;justify-content:center;min-width:100%}.board-wrap{flex:0 0 auto;width:100%;max-width:680px}.board-wrap.multi{max-width:46%;min-width:200px}.board-name{font-size:11px;letter-spacing:1px;margin:0 0 9px;color:#71806b}.grid{position:relative;width:100%;background:#f4eedb;background-size:100% 100%;border:2px solid #4b5647;display:grid;box-shadow:0 7px 16px #263c2711}.grid.has-image{border:0}.cell{aspect-ratio:1;min-width:0;padding:0;border-right:1px solid #bcc4aa;border-bottom:1px solid #bcc4aa;position:relative;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.cell:nth-child(even){background:#ffffff22}.has-image .cell{border-color:#ffffff20;background:transparent}.cell:disabled{opacity:1;background:#ebeae3;visibility:hidden}.cell:hover{box-shadow:inset 0 0 0 2px #b18b4d;z-index:1}.cell.region-study{background:#e9dfb4;box-shadow:inset 0 0 0 2px #b3904e}.cell.region-single{background:#e2e7d9}.cell.conflict{box-shadow:inset 0 0 0 2px #bd5955;background:#efb2a855}.token{width:76%;height:76%;max-width:47px;max-height:47px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#2f5342;color:#f6f3df;font-family:Georgia,serif;font-weight:bold;font-size:clamp(10px,1.6vw,21px);border:2px solid #f8f6e8;box-shadow:0 2px 4px #0004}.token.victim{background:#824e4b}.token.active{outline:2px solid #c3a059;outline-offset:2px}.cell-mark{font-size:13px;background:#fffdf1de;padding:1px 4px;color:#355941;border-radius:3px;font-weight:600}.cell-mark.excluded{color:#965752}.coord{position:absolute;top:2px;left:3px;font-size:8px;color:#5e6d538c;pointer-events:none}.has-image .coord{display:none}.board-caption{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--line);font-size:10px;color:#929783;gap:8px}.legend-dot{display:inline-block;background:var(--gold);width:5px;height:5px;margin:0 6px 2px 0}.toolbar{display:flex;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #e6e7dd;gap:8px}.modes{display:flex;gap:3px}.modes button{font-size:11px;padding:9px 11px;border-radius:4px;color:#8b9282;min-height:36px}.modes button.selected{background:#e7edde;color:#3e5840}.history-controls{display:flex;gap:4px;border-left:1px solid #e5e7dc;padding-left:10px}.history-controls button{font-size:23px;width:30px;color:#85907d}.check-line{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;gap:12px}.check-line>span{font-size:11px;color:#8a907f}.primary{background:#294738;color:#f3efdc;border-radius:4px;padding:13px 18px;font-size:12px;white-space:nowrap}.primary:hover{background:#3b5944}.primary span{margin-left:18px}.secondary{border:1px solid #cdd4c3;border-radius:4px;padding:10px 14px;font-size:12px}.tabs{display:flex;border-bottom:1px solid var(--line);padding:0 18px}.tabs button{padding:20px 9px 17px;margin-right:16px;font-size:12px;color:#8d9586;border-bottom:2px solid transparent}.tabs .active{border-color:#a0864b;color:#3c4e3e}.pane-intro{padding:23px 22px 14px}.pane-intro h2{font-size:15px}.pane-intro p{font-size:10px;line-height:1.7;color:#949985;margin:8px 0}.character-list{padding:0 13px;max-height:490px;overflow:auto}.character-row{display:flex;align-items:start;gap:10px;border:1px solid transparent;border-bottom:1px solid #ecece3;padding:12px 9px;border-radius:4px;margin-bottom:3px}.character-row.selected{border:1px solid #cbd6bb;background:#f0f3e8}.character-pick{display:flex;gap:10px;text-align:left;padding:0;flex:1;min-width:0}.avatar{width:36px;height:40px;flex:0 0 36px;background:#e2e6d7;color:#5d7257;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:19px;border-radius:5px 5px 12px 12px;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.victim .avatar{background:#ead8d0;color:#965d58}.person-copy{flex:1;min-width:0}.person-name{font-family:var(--serif);font-size:14px;color:#43523e;display:block}.person-id{font-family:inherit;color:#9b9d87;font-size:10px;margin-left:5px}.person-clue{font-size:10px;line-height:1.7;color:#858b7a;display:block;margin-top:4px;white-space:pre-line}.person-position{font-size:9px;color:#7b8b68;display:block;margin-top:4px}.clue-toggle{font-size:13px;width:24px;min-height:28px;color:#b2b6a3;padding:0}.clue-toggle.checked{color:#64844c}.global-box{margin:18px 22px;padding:16px;background:#f1efe3;border:1px solid #e6e2cf;border-radius:5px;font-size:11px;line-height:1.8;color:#7b7e68}.global-box .tiny-label{font-size:9px;margin-bottom:8px;color:#9c8a59}.global-box p{margin:7px 0}.culprit-label{display:block;margin:18px 22px 23px;font-size:11px;color:#78846d}select,input,textarea{border:1px solid #d7dbcd;background:#fbfcf6;border-radius:4px;color:#465341;padding:10px}.culprit-label select{width:100%;margin-top:8px;font-size:12px}.role-label{display:block;margin:15px 22px;color:#7d8773;font-size:11px}.role-label input{display:block;width:100%;margin-top:8px}#notesInput{display:block;margin:0 22px;width:calc(100% - 44px);height:250px;resize:vertical;line-height:1.8;font-size:12px}#clearMarksBtn{margin:5px 22px 25px}.feedback{margin:16px 22px 0;padding:13px 15px;background:#eee8d6;border-left:3px solid #b79555;font-size:12px;line-height:1.8;white-space:pre-line}.feedback.success{background:#e6eddd;border-color:#6c8e57}.feedback.danger{background:#f4e5dd;border-color:#b47663}footer{padding:25px 0;display:flex;justify-content:space-between;color:#a0a48f;font-size:9px;letter-spacing:.5px}.footer-divider{margin:0 10px}.library-panel{padding:24px;background:#fffdf6;border:1px solid var(--line);border-radius:7px;margin-bottom:25px}.section-line{display:flex;justify-content:space-between;align-items:center}.section-line p{font-size:11px;color:var(--muted)}.icon-button{font-size:25px;color:#8d967f;min-width:36px;min-height:36px}.filters{display:flex;gap:10px;margin:17px 0}.filters input{flex:1;min-width:70px}.filters select{font-size:11px}.case-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;max-height:330px;overflow:auto}.case-card{padding:17px;border:1px solid #dfe3d4;background:#f8f8f0;border-radius:5px;text-align:left}.case-card.active{border-color:#8b9c78;background:#eef1e3}.case-card small{color:#9f8c5a;font-size:9px}.case-card strong{display:block;font-family:var(--serif);font-size:16px;margin:9px 0}.case-card p{font-size:10px;color:#929982;margin:6px 0}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:0 0 15px;margin-bottom:18px}dialog{width:min(840px,94vw);max-height:90vh;background:var(--paper);border:1px solid #cdd1c1;border-radius:10px;padding:25px;color:var(--ink);box-shadow:0 20px 100px #0005}dialog::backdrop{background:#15251dcc;backdrop-filter:blur(3px)}#modalBody{font-size:13px;line-height:1.8}#modalBody p{color:#6d7967}#modalBody img{max-width:100%;height:auto;display:block;margin:12px auto}#modalBody label{display:block;margin:14px 0}#modalBody input,#modalBody select{max-width:100%}.import-options{display:grid;gap:12px}.import-option{text-align:left;border:1px solid var(--line);padding:18px;border-radius:5px}.import-option strong{display:block;font-size:15px}.import-option span{font-size:11px;color:#8b947f}.import-option:hover{border-color:#8b9c78}.modal-actions{display:flex;gap:10px;margin-top:20px}.calibration-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:5px 16px}.calibration-fields input{width:100%}.calibration-stage{position:relative;max-width:600px;margin:auto;cursor:crosshair}.calibration-stage img{width:100%;margin:0!important}.calibration-point{position:absolute;width:16px;height:16px;border-radius:50%;background:#cb5e44;border:2px solid white;transform:translate(-50%,-50%);pointer-events:none}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:#263e32;color:#f0eddc;border:1px solid #869773;border-radius:5px;box-shadow:0 5px 30px #0003;padding:13px 22px;font-size:12px;max-width:90vw}.muted{color:#8f9785;font-size:11px}.help-list{padding-left:20px;color:#6e7c66}.switchline{display:flex!important;align-items:center;gap:10px}.private-callout{padding:12px;background:#ebeede;border-radius:5px;font-size:12px}.danger-button{color:#9e6555}.ref-caption{font-size:11px;color:#92957f}.loading{padding:30px;color:#8b987b;text-align:center}[hidden]{display:none!important}
@media(min-width:1600px){.workspace{grid-template-columns:minmax(480px,1fr) 380px}.character-list{max-height:570px}.board-scroll{max-height:76vh}}
@media(max-width:1180px){.rail{width:192px;padding:30px 17px}.shell{margin-left:192px}main{padding:28px 24px 0}.topbar{padding:0 24px}.workspace{grid-template-columns:minmax(300px,1fr) 300px;gap:16px}.board-scroll{padding:25px 16px}.case-badges{flex-direction:column;align-items:flex-end}.toolbar{padding:10px}.modes button{padding:8px}.check-line{padding:16px}.check-line>span{font-size:10px}.primary{padding:12px}.brand{font-size:13px}.brand-mark{font-size:36px}}
@media(max-width:950px){.rail{position:static;width:100%;height:auto;flex-direction:row;align-items:center;padding:15px 22px;gap:25px}.rail nav{margin:0 0 0 auto;display:flex;gap:8px}.rail-bottom{display:none}.rail nav .nav-item{font-size:11px;padding:8px}.rail .nav-item span{font-size:18px;width:auto}.brand small{font-size:9px}.brand-mark{font-size:30px}.shell{margin-left:0}.topbar{height:57px}.workspace{grid-template-columns:minmax(300px,1fr) 290px}.case-header{margin-bottom:22px}h1{font-size:30px}#saveStatus{max-width:125px}.board-scroll{max-height:65vh}}
@media(max-width:700px){.rail{padding:14px 16px;gap:12px;flex-wrap:wrap}.brand{font-size:12px}.brand small{letter-spacing:3px}.rail nav{gap:2px}.nav-item{gap:5px}.rail nav .nav-item{padding:7px 6px;font-size:10px}#generateBtn{display:none}.nav-item b{display:none}.topbar{padding:0 17px}.breadcrumb{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.breadcrumb span{margin:0 5px}.top-actions{gap:10px}#saveStatus{font-size:9px;max-width:100px}.timer{font-size:10px;padding:8px}main{padding:24px 15px 0}.case-header{align-items:flex-start;gap:10px}h1{font-size:27px}.eyebrow{font-size:8px;letter-spacing:1.5px}.case-header p{font-size:10px;line-height:1.7}.badge{padding:5px 7px;font-size:9px}.workspace{display:flex;flex-direction:column;gap:18px}.board-panel,.clue-panel{width:100%}.board-head{padding:17px}.board-scroll{padding:24px 16px;max-height:75vh}.board-wrap.multi{min-width:180px;max-width:100%}.token{font-size:clamp(11px,4vw,20px)}.character-list{display:grid;grid-template-columns:1fr 1fr;max-height:400px;padding:0 10px;gap:5px}.character-row{padding:10px 6px;gap:3px}.character-pick{gap:7px}.avatar{width:29px;flex-basis:29px;height:33px;font-size:16px}.person-name{font-size:12px}.person-clue{font-size:10px}.clue-toggle{width:20px}.pane-intro{padding:19px}.filters{flex-wrap:wrap}.filters input{flex-basis:100%}.filters select{flex:1}.board-caption{font-size:9px;padding:12px 15px}.modes button{font-size:10px;padding:9px}.history-controls button{font-size:21px;width:27px}.history-controls{padding-left:5px;gap:0}.check-line>span{max-width:45%;line-height:1.7}.primary{font-size:11px}.primary span{margin-left:8px}footer{font-size:8px;gap:15px;line-height:1.8}.case-list{grid-template-columns:1fr 1fr}.case-card{padding:12px}.case-card strong{font-size:13px}.library-panel{padding:17px}.coord{font-size:6px}}
.board-axes{display:grid;grid-template-columns:23px minmax(0,1fr);grid-template-rows:23px auto}.col-axis{grid-area:1/2;display:grid;text-align:center;align-items:center;color:#7f8975;font-size:9px}.row-axis{grid-area:2/1;display:grid;align-items:center;text-align:left;color:#7f8975;font-size:9px}.board-axes>.grid{grid-area:2/2}.notes-grid{position:absolute;inset:0;display:grid;grid-auto-rows:1fr;padding:1px;pointer-events:none;background:#fff9;z-index:2}.note-slot{font-size:clamp(6px,.85vw,12px);line-height:1;display:flex;align-items:center;justify-content:center;color:#314c3b;font-weight:700}.note-slot.active{color:#9b6132;background:#f0d9a755;border-radius:2px}.global-x{font-family:Arial,sans-serif;font-weight:600;font-size:clamp(12px,3vw,38px);line-height:1;pointer-events:none}.global-x.manual{color:#7b5149;background:#f9efe1ba;border-radius:4px;width:83%;height:83%;display:flex;align-items:center;justify-content:center}.global-x.automatic{color:#65746088;background:#eeeede88;width:85%;height:85%;display:flex;align-items:center;justify-content:center}.cell.blocked{cursor:not-allowed}.cell.candidate-focus{box-shadow:inset 0 0 0 2px #a3b9b6;background:#97c9d62e}.character-row.placed{opacity:.55;background:#eeeede}.additional-tools{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.additional-tools .secondary{padding:7px 11px;font-size:10px}.victory-seal{font-size:65px;text-align:center;color:#b79a59}.reward-card{text-align:center;padding:25px 20px}.reward-card h2{font-size:25px;margin:15px}.reward-card strong{font-family:var(--serif);font-size:36px;color:#9d844f}.reward-card p{max-width:480px;margin:20px auto}.reward-monogram{border:1px solid #ab9868;border-radius:50%;font-size:50px;font-family:Georgia,serif;width:90px;height:90px;line-height:90px;margin:0 auto 20px;color:#af9659}.modes{flex-wrap:wrap}.token{pointer-events:none}#hintResult{white-space:pre-line;margin-top:20px;padding:14px;color:#6d735e}#hintResult:empty{display:none}
@media(max-width:700px){.note-slot{font-size:8px}.global-x{font-size:22px}.board-axes{grid-template-columns:20px minmax(0,1fr);grid-template-rows:20px auto}.col-axis,.row-axis{font-size:7px}.additional-tools{padding:10px 14px}.toolbar{flex-wrap:wrap}.modes button{font-size:9px}.history-controls{margin-left:auto}}
@media(prefers-reduced-motion:no-preference){.character-row,.case-card,button{transition:background .15s,border-color .15s}.feedback{animation:appear .2s}@keyframes appear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}

.case-preview{height:90px;background-color:#e4e7d9;background-size:cover;background-position:center;border-radius:3px;margin-bottom:13px;display:flex;align-items:center;justify-content:center}.case-preview span{font-family:Georgia,serif;letter-spacing:2px;color:#f3f1df;background:#274333dd;padding:8px 12px;transform:rotate(-7deg);font-size:15px}.case-status{display:flex;justify-content:space-between;font-size:10px;color:#81906e;border-top:1px solid #e4e7da;padding-top:10px;margin-top:12px}.case-card.completed{background:#edf1e4}.case-list{max-height:500px}.filters{flex-wrap:wrap}.cell.holding::after{content:'';position:absolute;z-index:8;border:3px solid #c1a263;border-right-color:transparent;width:85%;height:85%;border-radius:50%;animation:hold-confirm .5s linear;pointer-events:none}@keyframes hold-confirm{from{transform:rotate(0deg);opacity:.3}to{transform:rotate(360deg);opacity:1}}

.token{position:relative;overflow:hidden}.token img{width:100%;height:100%;object-fit:cover}.token-code{position:absolute;right:0;bottom:0;line-height:1;font-size:9px;color:#fff;background:#294735d9;padding:1px 3px;border-radius:2px}.character-pick:focus-visible{outline-offset:1px}.cell{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.notes-grid{border-radius:2px}

.more-button{padding:8px;letter-spacing:2px;border:1px solid #dce0d3;border-radius:4px;color:#78876e;min-height:34px}

.vector-grid{isolation:isolate;border:0;background:transparent;box-shadow:0 8px 22px #20362b55}.reconstructed-scene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;image-rendering:pixelated}.vector-grid .cell{background:transparent;border-right:1px solid #1b352328;border-bottom:1px solid #1b352328}.vector-grid .cell:disabled{visibility:hidden}.vector-grid .cell.blocked{background:transparent}.vector-grid .cell.candidate-focus{background:#b1e6f52b;box-shadow:inset 0 0 0 2px #a1d0c3}.vector-grid .cell.area-focus{background:#ffe39140;box-shadow:inset 0 0 0 1px #d6b963}.vector-grid .coord{display:none}.vector-grid .token{width:84%;height:84%;max-width:none;max-height:none;image-rendering:pixelated;background:#3f5941}.vector-grid .token img{object-fit:contain;background:#e5dcc6}.vector-grid .notes-grid{background:#fff9}.room-legend{display:flex;flex-wrap:wrap;gap:5px;margin-top:14px}.room-legend button{padding:5px 8px;background:#fcfbef;border:1px solid #d8decc;border-radius:3px;font-size:10px}.room-legend i{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:1px}.board-scroll{background:#d9decc}.board-wrap{max-width:760px}.avatar{image-rendering:pixelated}.case-badges .badge{font-size:10px}.lab-banner{padding:13px 20px;border:1px solid #d9d2b9;background:#eee9d9;margin-bottom:18px;font-size:12px;color:#727355;line-height:1.8}
.home-hero{display:none;max-width:950px;margin:8px auto 30px;padding:30px 32px;border-radius:9px;background:#253e34;color:#f8f7ee;background-image:linear-gradient(120deg,#243d33,#3a5849)}.home-hero h1{font-size:36px;margin:8px 0 10px}.home-hero p{color:#d2dfd4;font-size:14px;line-height:1.6}.home-hero .eyebrow{color:#d2b77f}.home-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.home-actions .secondary{background:#f5f4ea;color:#2a3d32}.home-note{font-size:11px;color:#bacabe;margin-top:18px}.home-view .home-hero{display:block}.home-view .case-header,.home-view .workspace,.home-view .topbar .timer,.home-view #saveStatus{display:none}.home-view .library-panel{max-width:950px;margin:0 auto;display:block}.home-view #libraryBtn{display:none}.home-view .case-list{max-height:none}.play-view .home-hero,.play-view .library-panel{display:none}.play-view .rail #importBtn,.play-view .rail #generateBtn{display:none}.play-view .rail .nav-item{font-size:0}.play-view .rail .nav-item:after{content:'All cases';font-size:13px}.play-view #caseCount{display:none}@media(max-width:700px){.home-view .rail #generateBtn{display:flex}.home-hero{padding:24px 20px}.home-hero h1{font-size:28px}.home-actions button{flex:1}.home-view .case-list{grid-template-columns:1fr}.play-view .rail .nav-item:after{font-size:11px}}
.case-preview{position:relative;overflow:hidden;height:130px;background:#c7cbb6}.case-mini{display:grid;height:100%;aspect-ratio:1;margin:auto;border:3px solid #3b5144;box-shadow:0 2px 8px #26382d42}.case-mini span{min-width:0;position:relative;border:1px solid #26382d22}.case-mini img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;position:absolute;inset:0}.case-preview>span{position:absolute;z-index:1}
.cell.stroke-preview{background:#e7c26088!important;box-shadow:inset 0 0 0 2px #d1a55b;}

.cell.stroke-preview::after{content:attr(data-stroke-preview);position:absolute;z-index:9;font-weight:700;font-size:clamp(12px,2vw,24px);color:#273f34;pointer-events:none}

/* Focused case layout, inspired by the compact controls and paper case cards. */
body.home-view,body.play-view{background:#eeedf2;color:#202b2a}
.home-view .rail{position:relative;inset:auto;width:100%;height:68px;background:#f8f8fa;color:#172628;padding:0 clamp(18px,4vw,64px);flex-direction:row;align-items:center;border-bottom:1px solid #d9d9df}
.home-view .rail .brand{font-family:Arial,sans-serif;font-size:22px;font-weight:900;letter-spacing:1px;gap:7px}
.home-view .rail .brand-mark,.home-view .rail .brand small,.home-view .rail-bottom,.home-view .rail nav #libraryBtn{display:none}
.home-view .rail nav{margin:0 0 0 auto;display:flex;gap:6px}
.home-view .rail .nav-item{background:#fff;color:#25252b;border:1px solid #c6c7ce;box-shadow:3px 3px 0 #b2b2b8;border-radius:7px;padding:9px 14px;font-size:12px}
.home-view .shell,.play-view .shell{margin-left:0}
.home-view .topbar{display:none}
.home-view main{max-width:none;padding:0 0 55px}
.home-view .home-hero{display:block;max-width:none;text-align:center;border-radius:0;margin:0;padding:34px 20px 28px;background:linear-gradient(#fafafa,#f5f5f8);color:#202129;border-bottom:1px solid #d8d8de}
.home-view .home-hero h1{font-family:Arial,sans-serif;font-size:clamp(23px,2.7vw,36px);font-weight:800;letter-spacing:-.03em;margin:0 0 8px}
.home-view .home-hero p{color:#666873;font-size:13px;margin:0}
.home-view .home-hero .eyebrow{color:#5daeb0;font-size:10px;letter-spacing:2px}
.home-view .home-actions{justify-content:center;margin:18px 0 0}
.home-view .home-note{color:#7c7e89;margin-top:12px}
.home-view .library-panel{max-width:1500px;background:transparent;border:0;padding:25px clamp(15px,3vw,45px);margin:0 auto}
.home-view .section-line{display:none}
.home-view .filters{justify-content:center;margin:0 0 28px;gap:8px}
.home-view .filters input{max-width:280px;flex:1}
.home-view .filters input,.home-view .filters select{background:#fbfbfd;border:1px solid #c9c9d0;border-radius:6px;min-height:37px;box-shadow:2px 2px 0 #c1c1c8;color:#343641}
.home-view .case-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px;max-height:none;overflow:visible}
.home-view .case-card{background:#f3ebdc;border:2px solid #292a2d;border-radius:12px;padding:17px;box-shadow:7px 8px 0 #24242a50;min-height:320px;transform:translateY(0)}
.home-view .case-card:hover{transform:translateY(-3px);box-shadow:8px 11px 0 #24242a50}
.home-view .case-card.active{border-color:#b18b32}
.home-view .case-card.completed{background:#e8ecdd}
.home-view .case-preview{height:auto;aspect-ratio:1.12;margin-bottom:14px;background:#d2d6cf;border:1px solid #8f948a;box-shadow:inset 0 0 0 4px #f5efe0}
.home-view .case-mini{height:92%;width:auto;aspect-ratio:1;max-width:94%;border:2px solid #35443d}
.home-view .case-card strong{font-family:Arial,sans-serif;font-size:16px;color:#24282a}
.home-view .case-card p{font-size:11px;color:#716f6b;line-height:1.4}
.home-view .case-card small{font-weight:700;letter-spacing:1.3px;color:#7c697a}
.home-view .case-status{font-size:12px;color:#516a51}
.home-view footer{max-width:1500px;padding:0 clamp(15px,3vw,45px);margin:auto}
.play-view .rail{display:none}
.play-view .topbar{height:62px;background:#fafafd;padding:0 18px;border-bottom:2px solid #dad9e0;gap:10px}
.play-heading{display:flex;align-items:center;gap:13px;min-width:0}
.play-back{display:grid;place-items:center;border:2px solid #34343a;background:#fff;width:38px;height:38px;flex:none;border-radius:7px;font-size:21px;box-shadow:2px 2px 0 #b9b9c2}
.play-view .breadcrumb{display:flex;align-items:baseline;gap:14px;overflow:hidden;white-space:nowrap;font-size:12px}
.play-view .breadcrumb strong{font-size:20px;font-family:Arial,sans-serif;font-weight:900;letter-spacing:1px;color:#17191d}
.play-view .breadcrumb .top-title{overflow:hidden;text-overflow:ellipsis;color:#5b5c65;font-weight:600}
.play-view .top-actions{gap:10px}
.play-view #moreBtn{display:none}
.play-view .timer{font-size:13px;background:#fff;border:2px solid #34343a;color:#25252b;box-shadow:2px 2px 0 #b9b9c2}
.play-view main{max-width:none;padding:13px 16px 0}
.play-view .case-header{margin:0 0 12px;align-items:center;gap:10px}
.play-view .case-header h1{font-family:Arial,sans-serif;font-size:17px;font-weight:750;margin:0}
.play-view .case-header .eyebrow,.play-view .case-header p{display:none}
.play-view .workspace{grid-template-columns:minmax(0,1fr) clamp(320px,29vw,460px);gap:12px}
.play-view .board-panel,.play-view .clue-panel{background:#f9f9fb;border:1px solid #c7c8d0;border-radius:8px;box-shadow:3px 3px 0 #cbcbd2}
.play-view .board-head{padding:10px 16px;min-height:55px}
.play-view .board-head h2{font-family:Arial,sans-serif;font-size:15px;font-weight:700;margin:0}
.play-view .board-head .tiny-label{display:none}
.play-view .board-scroll{max-height:none;padding:12px;overflow:auto;background:#dce5e1}
.play-view .boards{justify-content:center;align-items:start}
.play-view .board-wrap{max-width:none}
.play-view .board-wrap.multi{max-width:calc(50% - 10px);min-width:260px}
.play-view .board-name{margin-bottom:5px;font-size:12px}
.play-view .board-axes{grid-template-columns:20px minmax(0,1fr);grid-template-rows:20px auto}
.play-view .col-axis,.play-view .row-axis{font-size:10px}
.play-view .vector-grid .token{width:90%;height:90%}
.play-view .room-legend{margin-top:8px}
.play-view .board-caption{padding:9px 14px;font-size:11px}
.play-view .toolbar{padding:8px 12px}
.play-view .modes button{font-size:12px;color:#4a4b53;border:1px solid transparent}
.play-view .modes button.selected{background:#d8e6e3;border-color:#5a8c86;color:#244840;font-weight:700}
.play-view .clue-panel{max-height:calc(100vh - 100px);overflow:auto;position:sticky;top:10px}
.play-view .tabs button{font-size:13px}
.play-view .pane-intro{padding:15px 16px 8px}
.play-view .pane-intro h2{font-family:Arial,sans-serif;font-weight:750;font-size:16px}
.play-view .pane-intro p{font-size:11px}
.play-view .character-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:7px 13px;max-height:none;overflow:visible}
.play-view .character-row{display:flex;position:relative;gap:4px;min-width:0;padding:8px;background:#e6eff2;border:2px solid #343c42;border-radius:6px;box-shadow:2px 2px 0 #b6b8bb;margin:0;align-items:start}
.play-view .character-row.selected{border-color:#b28329;background:#fff1d6}
.play-view .character-row.placed{opacity:.68}
.play-view .character-pick{display:block;min-width:0}
.play-view .avatar{display:block;width:62px;height:62px;margin:0 auto 5px;border:2px solid #343c42;border-radius:3px;background:#b8dbe7;image-rendering:pixelated}
.play-view .person-copy{display:block;text-align:center}
.play-view .person-name{font-family:Arial,sans-serif;font-weight:750;font-size:12px;color:#25313a}
.play-view .person-id{font-size:9px}
.play-view .person-clue{font-size:10px;line-height:1.3;color:#303c43;margin:5px 0 0}
.play-view .person-position{font-size:9px}
.play-view .clue-toggle{position:absolute;right:2px;top:2px;color:#36525a}
.play-view footer{padding:12px 0}
@media(max-width:980px){.play-view .workspace{grid-template-columns:minmax(0,1fr) 300px}.play-view .character-list{grid-template-columns:1fr}.play-view .character-pick{display:flex;align-items:start;gap:8px;text-align:left}.play-view .avatar{width:50px;height:54px;flex:0 0 50px;margin:0}.play-view .person-copy{text-align:left}}
@media(max-width:700px){.home-view .rail{padding:0 14px}.home-view .rail .brand{font-size:18px}.home-view .rail .nav-item{padding:7px 9px}.home-view .case-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.home-view .case-card{padding:10px;min-height:280px;box-shadow:4px 5px 0 #24242a50}.home-view .case-preview{aspect-ratio:1}.home-view .filters{gap:6px}.home-view .filters select{flex:1 1 42%;font-size:11px}.home-view .filters input{max-width:none;flex-basis:100%}.play-view .topbar{padding:0 9px}.play-view .breadcrumb{gap:5px}.play-view .breadcrumb strong{font-size:15px}.play-view .top-actions{gap:4px}.play-view #saveStatus,.play-view #moreBtn{display:none}.play-view main{padding:9px 7px 0}.play-view .case-header{padding:0 4px}.play-view .case-header h1{font-size:15px}.play-view .case-badges{display:none}.play-view .workspace{display:flex;flex-direction:column;gap:9px}.play-view .board-panel,.play-view .clue-panel{width:100%}.play-view .board-scroll{padding:8px}.play-view .board-wrap.multi{max-width:100%}.play-view .clue-panel{position:static;max-height:none}.play-view .character-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.play-view .character-pick{display:block}.play-view .avatar{margin:0 auto 5px}.play-view .person-copy{text-align:center}.play-view .toolbar{flex-wrap:wrap}.play-view .modes button{font-size:11px;padding:7px}.play-view .board-caption{font-size:9px}.play-view .board-axes{grid-template-columns:16px minmax(0,1fr);grid-template-rows:16px auto}.play-view .col-axis,.play-view .row-axis{font-size:8px}}

/* Desktop game: all people at left, a complete height-fitted map at right. */
@media(min-width:901px){
  body.play-view{height:100dvh;overflow:hidden}
  .play-view .shell{height:100dvh;display:flex;flex-direction:column}
  .play-view .topbar{flex:0 0 54px;height:54px}
  .play-view main{flex:1;width:100%;max-width:none;margin:0;min-height:0;padding:7px 9px 8px;overflow:hidden}
  .play-view .case-header,.play-view footer{display:none}
  .play-view .workspace{height:100%;min-height:0;grid-template-columns:clamp(390px,32vw,590px) minmax(0,1fr);gap:9px;align-items:stretch}
  .play-view .clue-panel{grid-column:1;grid-row:1;position:static;height:100%;max-height:none;min-height:0;overflow:auto}
  .play-view .board-panel{grid-column:2;grid-row:1;position:relative;height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 128px;grid-template-rows:auto auto minmax(0,1fr) auto;align-items:stretch}
  .play-view .board-head{position:absolute;top:7px;right:135px;z-index:4;min-height:0;border:0;padding:0;background:#f8f8f9e8;border-radius:5px}
  .play-view .board-head h2,.play-view .board-head .tiny-label{display:none}
  .play-view .zoom-controls{gap:2px}
  .play-view .board-scroll{grid-column:1;grid-row:1/5;min-width:0;min-height:0;max-height:none;height:100%;padding:7px;overflow:auto;display:flex;align-items:center;justify-content:center}
  .play-view .boards{height:100%;min-height:0;align-items:center;justify-content:center;flex-wrap:nowrap}
  .play-view .board-wrap{width:min(100%,calc((100dvh - 105px) * var(--board-ratio)));max-width:none;min-width:0;flex:0 0 auto}
  .play-view .board-wrap.multi{width:min(46%,calc((100dvh - 105px) * var(--board-ratio)));max-width:none;min-width:0}
  .play-view .board-name,.play-view .room-legend,.play-view .board-caption{display:none}
  .play-view .board-axes{grid-template-columns:18px minmax(0,1fr);grid-template-rows:18px auto}
  .play-view .toolbar{grid-column:2;grid-row:1;display:flex;flex-direction:column;justify-content:flex-start;padding:52px 7px 10px;gap:10px;border-left:1px solid #d7d8da;border-bottom:1px solid #d7d8da;background:#f8f8fa}
  .play-view .modes{display:flex;flex-direction:column;gap:6px}
  .play-view .modes button{width:100%;min-height:46px;border:1px solid #c8c9cd;border-radius:6px;background:#fff;box-shadow:2px 2px 0 #bbbcc1;text-align:center;font-size:11px;white-space:normal;padding:6px}
  .play-view .modes button.selected{background:#d5e6ea;border-color:#568794}
  .play-view .history-controls{padding:5px 0 0;border-left:0;border-top:1px solid #dedee1;justify-content:space-between}
  .play-view .history-controls button{width:34px}
  .play-view .additional-tools{grid-column:2;grid-row:2;display:flex;flex-direction:column;padding:10px 7px;gap:7px;border-left:1px solid #d7d8da;background:#f8f8fa}
  .play-view .additional-tools button{width:100%;white-space:normal;min-height:38px}
  .play-view .feedback{grid-column:2;grid-row:3;min-height:0;overflow:auto;margin:7px;padding:7px;font-size:10px;line-height:1.45}
  .play-view .check-line{grid-column:2;grid-row:4;display:block;padding:9px 7px;border-left:1px solid #d7d8da;background:#f8f8fa}
  .play-view .check-line>span{display:none}
  .play-view .check-line button{width:100%;white-space:normal;padding:10px 5px}
  .play-view .check-line button span{display:none}
  .play-view .tabs{position:sticky;top:0;background:#f9f9fb;z-index:2}
  .play-view .pane-intro{display:none}
  .play-view #peoplePane{display:flex;flex-direction:column}
  .play-view .global-box{order:-1;margin:8px 12px 2px;padding:8px 11px;font-size:10px;line-height:1.45}
  .play-view .global-box p{margin:3px 0}
  .play-view .character-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:7px 10px;max-height:none}
  .play-view .character-row{padding:6px 4px;box-shadow:1px 1px 0 #b6b8bb}
  .play-view .avatar{width:50px;height:50px;margin:0 auto 3px}
  .play-view .person-name{font-size:11px}
  .play-view .person-clue{font-size:9px;line-height:1.2;margin-top:3px}
  .play-view .person-position{font-size:8px;margin-top:3px}
  .play-view .culprit-label{margin:8px 12px 12px}
  .play-view .culprit-label select{margin-top:4px;padding:6px}
}
@media(min-width:901px) and (max-width:1350px){.play-view .workspace{grid-template-columns:360px minmax(0,1fr)}.play-view .character-list{grid-template-columns:repeat(2,minmax(0,1fr))}.play-view .board-panel{grid-template-columns:minmax(0,1fr) 112px}.play-view .board-head{right:119px}}
/* MKTDOKU: stronger board marks and compact case management. */
.library-actions{display:flex;gap:8px;align-items:center}.case-card{padding:0;overflow:hidden;position:relative}.case-open{display:block;width:100%;height:100%;padding:17px;text-align:left}.case-open:hover{background:#e9f0ea}.case-select{display:flex;align-items:center;gap:8px;padding:8px 16px 12px;border-top:1px solid #dfe3d4;font-size:12px;font-weight:750;cursor:pointer;background:#fff}.case-select input{width:18px;height:18px;accent-color:#922f31}.danger-confirm{background:#8c292b;color:white;border:2px solid #4c1012;border-radius:5px;padding:10px 16px;font-weight:800;box-shadow:2px 2px 0 #b9aa9d}.danger-confirm:hover{background:#a02b2f}.danger-button:not(:disabled){color:#892b2d;border-color:#892b2d;font-weight:800}
.play-view .cell:nth-child(even){background:transparent}.play-view .cell.vector-cell{background:transparent}.play-view .cell.vector-cell.candidate-focus{background:#71adc82f}.play-view .notes-grid{background:transparent;border:0;padding:2px;grid-auto-rows:1fr}.play-view .note-slot{background:transparent;color:var(--mark-color,#26323d);font-family:Arial Black,Arial,sans-serif;font-size:clamp(7px,.88vw,15px);font-weight:1000;-webkit-text-stroke:.35px #0c171a;text-shadow:1px 1px 0 #f9f8e9,-1px -1px 0 #f9f8e9,1px -1px 0 #f9f8e9,-1px 1px 0 #f9f8e9}.play-view .note-slot.active{background:#f3e2a34d;outline:1px solid #d4aa48}.play-view .global-x{width:100%;height:100%;font-family:Arial Black,Arial,sans-serif;font-size:clamp(22px,3.4vw,56px);font-weight:1000;color:#08090a;-webkit-text-stroke:1px #050505;text-shadow:1px 2px 0 #0006;border-radius:0}.play-view .global-x.manual{background:#6e727394}.play-view .global-x.automatic{background:#777b7d75}.play-view .token-code{font-family:Arial Black,Arial,sans-serif;font-size:clamp(12px,1.2vw,20px);font-weight:1000;color:var(--mark-color,#fff);-webkit-text-stroke:.6px #0b1113;text-shadow:1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;background:#f6f5e7df;border:1px solid #152026;border-radius:1px;padding:0 3px}.play-view .person-id{font-weight:900;color:#263640}.play-view .person-clue,.play-view .global-box{font-weight:650}.play-view .character-row{border-width:2px}.play-view .cell .coord{font-size:0}
@media(max-width:700px){.library-actions{flex-wrap:wrap;justify-content:flex-end}.library-actions button{font-size:10px;padding:7px}.case-open{padding:12px}}
.home-view .section-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.home-view .section-line h2{font-family:Arial,sans-serif;font-weight:900;font-size:16px}.home-view .section-line p{margin:3px 0 0}
.play-view .note-slot{font-size:clamp(11px,1.2vw,18px);-webkit-text-stroke:.55px #0c171a}
@media(min-width:901px){.play-view .workspace{grid-template-columns:clamp(420px,38vw,760px) minmax(0,1fr)}.play-view .character-list{grid-template-columns:repeat(3,minmax(0,1fr))}.play-view .character-row{padding:4px 3px}.play-view .avatar{width:40px;height:40px;margin-bottom:2px}.play-view .person-name{font-size:10px}.play-view .person-clue{font-size:9px;line-height:1.13;margin-top:2px}.play-view .person-position{font-size:8px;margin-top:2px}.play-view .global-box{font-size:9px;line-height:1.25;margin-top:5px;padding:6px 9px}.play-view .global-box p{margin:2px 0}}
@media(min-width:1500px){.play-view .character-list{grid-template-columns:repeat(4,minmax(0,1fr))}.play-view .avatar{width:54px;height:54px}.play-view .person-name{font-size:12px}.play-view .person-clue{font-size:10px;line-height:1.18}}
.play-view .note-slot.active{background:transparent;outline:0;filter:saturate(1.25)}
/* Keep selection visible and give thumbnail cells their own untransformed grid. */
.home-view .case-card{display:flex;flex-direction:column;padding:0;position:relative;overflow:visible}
.home-view .case-card.case-selected{border-color:#a63235;box-shadow:0 0 0 3px #a63235,7px 8px 0 #24242a50}
.home-view .case-open{height:auto;flex:1 1 auto;min-width:0;border-radius:10px}
.home-view .case-select{position:absolute;z-index:3;top:8px;right:8px;display:flex;align-items:center;gap:6px;padding:7px 9px;border:2px solid #30333a;border-radius:6px;background:#fff;color:#25282e;box-shadow:2px 2px 0 #0005}
.home-view .case-select input{appearance:auto;width:22px;height:22px;margin:0;accent-color:#a63235}
.home-view .case-mini{display:grid;flex:none;width:auto;height:auto;max-width:94%;max-height:92%;aspect-ratio:var(--mini-ratio,1);place-self:center;overflow:hidden}
.home-view .case-preview .case-mini span{display:block;position:relative;min-width:0;min-height:0;transform:none;letter-spacing:normal;font:inherit;color:inherit;padding:0;margin:0;border:1px solid #26382d22}
.home-view .case-preview .case-mini img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.home-view .case-preview>span{transform:rotate(-7deg)}
.home-view .case-mini{height:92%;width:auto}
/* Readable notes, role metadata, square tokens, and real-size zoom. */
.note-size-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:5px;font-size:11px;font-weight:700}.note-size-controls>span{margin-right:auto}.note-size-controls button{border:1px solid #818b87;border-radius:4px;background:#fff;padding:3px 7px;min-height:28px;font-weight:800}.note-size-controls output{font-size:10px;min-width:28px}
.play-view #globalClues{font-size:var(--case-note-size,12px);line-height:1.4}.play-view #notesInput{font-size:var(--case-note-size,12px)}
.play-view .vector-grid .token{width:90%;height:90%;max-width:none;max-height:none;border-radius:3px;overflow:visible;border:2px solid #182c31;background:#d7e8eb;box-shadow:1px 2px 0 #0006}.token img{border-radius:0}.play-view .token-code{left:1px;top:1px;right:auto;bottom:auto;z-index:2;border-radius:1px;line-height:1.05}
.play-view .character-row.placed{opacity:1}.character-row.placed .avatar{position:relative}.character-row.placed .avatar::after{content:'×';position:absolute;inset:-4px;display:flex;align-items:center;justify-content:center;font:1000 56px/1 Arial,sans-serif;color:#d32431;-webkit-text-stroke:1px #6e0e17;text-shadow:1px 1px #fff;pointer-events:none}.character-row.placed .avatar img{opacity:.6}
.gender-symbol{margin-left:4px;font-family:Arial,sans-serif;font-weight:900;font-size:14px}.role-badge{display:block;color:#6a237c;font-size:10px;font-weight:900;margin:2px 0}.play-view .character-row.role-noble{background:#efdef6;border-color:#7c388c}.play-view .character-row.role-knight{background:#dfe8f4;border-color:#4d6683}.play-view .character-row.role-noble.selected{outline:2px solid #b68a2b}.role-rule{color:#692c79;font-weight:800}
.play-view .boards.is-zoomed{align-items:flex-start;justify-content:flex-start;height:auto;min-height:100%}.play-view .board-scroll:has(.is-zoomed){align-items:flex-start;justify-content:flex-start}.play-view .board-wrap{flex-shrink:0}

.trait-badge{display:block;font-size:9px;font-weight:800;color:#354957}.play-view .token-code{left:-2px;top:-2px;transform:translate(-8%,-8%);background:transparent;padding:0}.play-view .vector-grid .token{width:80%;height:80%}
/* Long book rules scroll inside their own box; people stay visible at desktop size. */
@media(min-width:901px){
 .play-view .workspace{grid-template-columns:clamp(340px,34vw,650px) minmax(0,1fr)}
 .play-view .clue-panel{display:flex;flex-direction:column;overflow:hidden}
 .play-view .tabs{flex:0 0 auto}
 .play-view #peoplePane{flex:1;min-height:0;overflow:hidden}
 .play-view .global-box{flex:0 0 auto;max-height:23dvh;overflow:auto}
 .play-view .character-list{flex:1;min-height:0;grid-auto-rows:minmax(min-content,1fr);overflow:auto;align-items:stretch}
 .play-view .character-pick{display:block;width:100%;text-align:center}
 .play-view .person-copy{text-align:center}
 .play-view .character-row{min-height:0}
 .play-view .avatar{width:clamp(26px,4.5dvh,48px);height:clamp(26px,4.5dvh,48px);flex:none;margin:0 auto 2px}
 .play-view .culprit-label{flex:0 0 auto;margin:4px 10px 5px;font-size:10px}
 .play-view .gender-symbol{font-size:11px;margin-left:2px}
 .play-view .role-badge{font-size:9px;margin:1px 0}
}
@media(min-width:1100px){.play-view .character-list{grid-template-columns:repeat(4,minmax(0,1fr))}.play-view .avatar{width:clamp(26px,4dvh,44px);height:clamp(26px,4dvh,44px)}}
@media(min-width:901px){.play-view .character-row:not(.placed) .person-position{display:none}.play-view .character-row.placed .person-position{font-size:8px}.play-view .global-box{max-height:20dvh}}
