.game-shell{--cell-size: 52px;margin:0 auto;max-width:1560px;padding:1.3rem clamp(.8rem,2vw,2rem) 4rem}.case-header{align-items:flex-end;display:flex;gap:2rem;justify-content:space-between;margin:0 auto 1.3rem;max-width:1200px}.case-header h1{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,5.4rem);letter-spacing:-.055em;line-height:.92;margin:.35rem 0 .65rem}.case-header p{color:var(--ink-muted);margin:0;max-width:720px}.case-number{color:var(--case-accent);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.case-status{align-items:center;background:var(--ink);border-radius:1rem;color:var(--paper);display:grid;flex:0 0 auto;grid-template-columns:auto auto;padding:.85rem 1rem;text-align:right}.case-status span{color:var(--teal-light);font-size:.68rem;font-weight:800;grid-column:1/-1;letter-spacing:.1em;text-transform:uppercase}.case-status strong{font-family:var(--font-display);font-size:1.65rem}.case-status small{margin-left:.4rem}.game-layout{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(210px,260px) minmax(420px,1fr) minmax(260px,330px)}.game-panel,.scene-panel{background:color-mix(in srgb,var(--paper) 92%,transparent);border:1px solid var(--line);border-radius:1.1rem;box-shadow:var(--shadow);overflow:hidden}.game-panel{max-height:calc(100vh - 2rem);overflow-y:auto;position:sticky;top:1rem}.panel-heading{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:.65rem;padding:1rem}.panel-heading span{align-items:center;background:var(--ink);border-radius:50%;color:var(--paper);display:flex;font-size:.66rem;height:1.8rem;justify-content:center;width:1.8rem}.panel-heading h2{font-family:var(--font-display);font-size:1.15rem;margin:0}.character-list{display:grid;gap:.35rem;padding:.6rem}.character-card{align-items:center;background:transparent;border:1px solid transparent;border-radius:.8rem;color:var(--ink);cursor:pointer;display:flex;gap:.7rem;padding:.55rem;text-align:left;width:100%}.character-card:hover{background:var(--paper-deep)}.character-card.selected{background:color-mix(in srgb,var(--case-accent) 12%,var(--paper));border-color:var(--case-accent)}.portrait{align-items:center;background:var(--portrait);border:2px solid color-mix(in srgb,var(--portrait),#000 20%);border-radius:42% 42% 50% 50%;color:#fff;display:flex;flex:0 0 auto;font-family:var(--font-display);font-size:.78rem;height:2.8rem;justify-content:center;text-shadow:0 1px 2px #0005;width:2.6rem}.portrait.has-art{background-color:var(--portrait);background-repeat:no-repeat;border-radius:.65rem;box-shadow:inset 0 0 0 1px #fff5}.character-card span:last-child{display:grid;min-width:0}.character-card strong{font-size:.84rem}.character-card small{color:var(--ink-muted);font-size:.68rem}.character-card em{color:var(--case-accent);font-size:.64rem;font-style:normal;font-weight:800;text-transform:uppercase}.scene-panel{min-width:0;padding-bottom:.7rem}.scene-toolbar{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:.7rem;justify-content:space-between;padding:.65rem}.mode-switch,.display-switch,.zoom-tools{align-items:center;display:flex;flex-wrap:wrap;gap:.3rem}.scene-toolbar button,.action-bar button,.proof-controls button,.objective-card button{background:var(--paper);border:1px solid var(--line-strong);border-radius:.55rem;color:var(--ink);cursor:pointer;font:inherit;font-size:.7rem;font-weight:800;min-height:2.35rem;padding:.45rem .68rem}.scene-toolbar button.active{background:var(--ink);color:var(--paper)}.zoom-tools span{color:var(--ink-muted);font-size:.67rem;min-width:2.7rem;text-align:center}.selected-strip{align-items:center;background:color-mix(in srgb,var(--case-accent) 10%,var(--paper));display:flex;font-size:.78rem;gap:.5rem;min-height:2.6rem;padding:.55rem .8rem}.selected-strip span:last-child{color:var(--ink-muted);margin-left:auto}.status-dot{background:var(--case-accent);border-radius:50%;height:.55rem;width:.55rem}.board-scroll{background:radial-gradient(circle at 25% 10%,#163b49,var(--blueprint) 58%);max-height:70vh;overflow:auto;padding:1.35rem}.scene-caption{align-items:baseline;color:#d8e5e8;display:flex;gap:.65rem;margin:0 auto .7rem;max-width:max-content}.scene-caption strong{color:var(--teal-light);font-family:var(--font-display);font-size:.85rem;letter-spacing:.03em}.scene-caption span{font-size:.64rem;opacity:.78}.board-stage{background:var(--paper-deep);border:7px solid #0c2630;box-shadow:0 14px 40px #03141d77,inset 0 0 0 2px #f4ead7;margin:0 auto;position:relative}.board-stage.has-outside{background:transparent;border-color:transparent;box-shadow:none}.scene-architecture,.scene-furnishings{inset:0;pointer-events:none;position:absolute}.scene-architecture{overflow:hidden;z-index:0}.scene-furnishings{z-index:2}.floor-tile{background-color:var(--room-color);box-shadow:inset 0 0 0 .5px color-mix(in srgb,var(--ink) 12%,transparent);position:absolute}.floor-tile.is-outside{background:transparent;box-shadow:none}.surface-terrazzo{background-image:radial-gradient(circle,#698c8790 0 1px,transparent 1.5px),radial-gradient(circle,#b8906f60 0 1px,transparent 1.5px);background-position:3px 5px,13px 17px;background-size:21px 19px,29px 31px}.surface-wood{background-image:repeating-linear-gradient(90deg,transparent 0 12px,#7b572c24 12px 13px),linear-gradient(#fff3,transparent)}.surface-rubber{background-image:radial-gradient(circle,#27465328 0 1px,transparent 1.5px);background-size:8px 8px}.surface-tile{background-image:radial-gradient(circle at 25% 30%,#fff6 0 1px,transparent 1.5px),radial-gradient(circle at 72% 68%,#526b7920 0 1px,transparent 1.5px);background-size:23px 19px,29px 31px}.surface-concrete{background-image:linear-gradient(135deg,#fff2,transparent 45%,#23384114)}.surface-carpet{background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--room-color) 82%,var(--ink)) 0 1px,transparent 1px 4px),repeating-linear-gradient(-45deg,#fff3 0 1px,transparent 1px 5px)}.surface-parquet{background-image:linear-gradient(45deg,transparent 42%,color-mix(in srgb,var(--room-color) 76%,var(--ink)) 42% 48%,transparent 48%),linear-gradient(-45deg,transparent 42%,#fff5 42% 48%,transparent 48%);background-size:20px 20px}.surface-checker{background-image:conic-gradient(from 90deg,color-mix(in srgb,var(--room-color) 84%,var(--ink)) 25%,transparent 0 50%,color-mix(in srgb,var(--room-color) 84%,var(--ink)) 0 75%,transparent 0);background-size:24px 24px}.surface-metal{background-image:radial-gradient(circle at 4px 4px,color-mix(in srgb,var(--ink) 52%,transparent) 0 1px,transparent 1.6px),linear-gradient(135deg,#fff5,transparent 38%,color-mix(in srgb,var(--ink) 12%,transparent));background-size:var(--cell-size) var(--cell-size),100% 100%}.surface-stone{background-image:radial-gradient(ellipse at 18% 28%,#fff4 0 10%,transparent 11%),radial-gradient(ellipse at 74% 72%,color-mix(in srgb,var(--ink) 10%,transparent) 0 12%,transparent 13%),linear-gradient(118deg,transparent 46%,color-mix(in srgb,var(--ink) 11%,transparent) 47% 49%,transparent 50%);background-size:31px 27px,37px 33px,43px 39px}.surface-marble{background-image:linear-gradient(112deg,transparent 25%,#fff7 27%,transparent 30% 58%,color-mix(in srgb,var(--ink) 12%,transparent) 60%,transparent 63%),linear-gradient(22deg,transparent 45%,#fff4 47%,transparent 50%);background-size:41px 37px,29px 31px}.surface-grass{background-image:radial-gradient(ellipse at 30% 35%,#fff3 0 1px,transparent 1.5px),repeating-linear-gradient(76deg,transparent 0 7px,color-mix(in srgb,var(--room-color) 80%,var(--ink)) 7px 8px);background-size:17px 19px,23px 23px}.surface-dirt{background-image:radial-gradient(circle,color-mix(in srgb,var(--ink) 18%,transparent) 0 1px,transparent 1.4px),radial-gradient(circle,#fff4 0 1px,transparent 1.4px);background-position:3px 5px,12px 14px;background-size:19px 17px,23px 21px}.surface-water{background-image:repeating-linear-gradient(0deg,transparent 0 8px,#fff5 8px 9px,transparent 9px 15px),linear-gradient(115deg,#fff3,transparent 45%)}.surface-field{background-image:repeating-linear-gradient(90deg,transparent 0 9px,color-mix(in srgb,var(--room-color) 72%,var(--ink)) 9px 11px),repeating-linear-gradient(0deg,#fff2 0 1px,transparent 1px 16px)}.surface-cobble{background-image:radial-gradient(ellipse at center,transparent 45%,color-mix(in srgb,var(--ink) 20%,transparent) 47% 52%,transparent 54%);background-size:18px 13px}.room-label{background:#f8f0dfda;border-left:3px solid var(--case-accent);box-shadow:0 1px 4px #071d2650;color:var(--ink);font-size:clamp(.38rem,calc(var(--cell-size) / 9),.58rem);font-weight:900;letter-spacing:.04em;max-width:calc(var(--cell-size) * 1.6);padding:2px 4px;position:absolute;text-transform:uppercase;z-index:4}.scene-edge{position:absolute;z-index:5}.scene-edge.horizontal{height:0;transform:translateY(-50%)}.scene-edge.vertical{transform:translate(-50%);width:0}.edge-wall.horizontal{border-top:calc(var(--cell-size) / 10) solid #102c38}.edge-wall.vertical{border-left:calc(var(--cell-size) / 10) solid #102c38}.edge-window.horizontal{border-top:calc(var(--cell-size) / 13) double #4ba7ad}.edge-window.vertical{border-left:calc(var(--cell-size) / 13) double #4ba7ad}.edge-door.horizontal{border-top:calc(var(--cell-size) / 24) dashed #b87f2d}.edge-door.vertical{border-left:calc(var(--cell-size) / 24) dashed #b87f2d}.edge-gate.horizontal{border-top:calc(var(--cell-size) / 14) double #72562f}.edge-gate.vertical{border-left:calc(var(--cell-size) / 14) double #72562f}.edge-hedge.horizontal{border-top:calc(var(--cell-size) / 9) dotted #496642}.edge-hedge.vertical{border-left:calc(var(--cell-size) / 9) dotted #496642}.edge-riverbank.horizontal{border-top:calc(var(--cell-size) / 16) solid #5e7e88}.edge-riverbank.vertical{border-left:calc(var(--cell-size) / 16) solid #5e7e88}.edge-opening{opacity:0}.scene-sprite{background-repeat:no-repeat;position:absolute;transform-origin:center}.object-art.blocked{filter:drop-shadow(0 3px 2px #10263045)}.object-art.allowed{filter:drop-shadow(0 0 4px #e0a13d) drop-shadow(0 2px 1px #10263055);z-index:3}.decoration-art{filter:saturate(.88);opacity:.9}.board-grid{display:grid;inset:0;position:absolute;z-index:6}.board-cell{align-items:center;background:transparent;border:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 44%,transparent);color:var(--ink);cursor:crosshair;display:flex;height:var(--cell-size);justify-content:center;padding:0;position:relative;width:var(--cell-size)}.board-cell:hover:not([aria-disabled=true]){background:#fff6;box-shadow:inset 0 0 0 2px var(--case-accent)}.board-cell:focus-visible{background:#fff9;box-shadow:inset 0 0 0 4px var(--focus);outline:3px solid var(--paper);outline-offset:-3px;z-index:8}.board-cell.is-blocked{cursor:not-allowed}.board-cell.is-outside{background:transparent;box-shadow:none;cursor:default;pointer-events:none}.cell-coordinate{background:#f8f0df9c;border-radius:2px;color:color-mix(in srgb,var(--ink) 62%,transparent);font-size:clamp(.42rem,calc(var(--cell-size) / 8),.62rem);left:3px;line-height:1;padding:1px 2px;position:absolute;top:2px}.object-token{align-items:center;border:1px solid var(--ink);border-radius:.25rem;display:flex;font-size:calc(var(--cell-size) / 3.5);height:58%;justify-content:center;opacity:.8;width:58%}.view-scene .object-token.has-art{opacity:0}.object-token.blocked{background:var(--ink);color:var(--paper)}.object-token.allowed{background:var(--amber);color:var(--ink)}.character-token{align-items:center;background:var(--token);border:2px solid white;border-radius:50% 50% 46% 46%;box-shadow:0 3px 7px #0005;color:#fff;display:flex;font-family:var(--font-display);font-size:calc(var(--cell-size) / 5.2);height:72%;justify-content:center;position:absolute;text-shadow:0 1px 1px #0007;width:66%;z-index:2}.view-evidence .floor-tile{background-image:none;filter:saturate(.55) brightness(1.06)}.view-evidence .scene-sprite{opacity:.42}.view-evidence .board-cell{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 58%,transparent)}.view-evidence .object-token.has-art{opacity:.95}.view-contrast .scene-furnishings,.view-contrast .room-label{display:none}.view-contrast .floor-tile{background-image:none;filter:saturate(0)}.view-contrast .board-cell{box-shadow:inset 0 0 0 1px var(--ink)}.view-evidence .board-cell.is-outside,.view-contrast .board-cell.is-outside{box-shadow:none}.view-contrast .cell-coordinate{background:var(--paper);color:var(--ink)}.view-contrast .object-token{opacity:1}.note-mark{color:var(--case-accent);font-family:var(--font-display);font-size:calc(var(--cell-size) / 2.6);font-weight:900;position:absolute;z-index:3}.note-eliminated{background:#9f536025}.note-possible{background:#1d8c8625}.cell-inspector{align-items:center;border-top:1px solid var(--line);display:flex;font-size:.72rem;gap:.55rem;min-height:2.7rem;padding:.55rem .8rem}.cell-inspector span{color:var(--case-accent);font-weight:900}.cell-inspector small{color:var(--ink-muted);margin-left:auto}.action-bar{display:flex;flex-wrap:wrap;gap:.35rem;padding:.65rem .65rem 0}.action-bar button:disabled,.proof-controls button:disabled{cursor:not-allowed;opacity:.4}.action-bar .hint-button{background:var(--amber);border-color:var(--amber-deep)}.action-bar .danger-link{color:var(--danger);margin-left:auto}.clue-list{display:grid;gap:.55rem;padding:.65rem}.clue-card{background:var(--paper);border:1px solid var(--line);border-radius:.8rem;display:grid;gap:.45rem;grid-template-columns:1.5rem 1fr;padding:.65rem}.clue-card.resolved{opacity:.58}.clue-card.resolved p{text-decoration:line-through}.clue-index{color:var(--case-accent);font-family:var(--font-display);font-size:.72rem}.clue-card strong{font-size:.75rem}.clue-card p{color:var(--ink-muted);font-size:.74rem;line-height:1.45;margin:.2rem 0 0}.clue-card button{background:transparent;border:0;color:var(--case-accent);cursor:pointer;font-size:.65rem;font-weight:800;grid-column:2;justify-self:start;padding:0}.objective-card{background:var(--ink);color:var(--paper);margin:.65rem;padding:1rem}.objective-card.ready{box-shadow:inset 0 0 0 2px var(--amber)}.objective-card>span{color:var(--teal-light);font-size:.65rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.objective-card h3{font-family:var(--font-display);font-size:1.25rem;margin:.35rem 0 .55rem}.objective-card p,.objective-card label{color:#d7e1e5;font-size:.72rem}.objective-card select{border:0;border-radius:.4rem;display:block;font:inherit;margin:.3rem 0 .55rem;min-height:2.55rem;padding:.5rem;width:100%}.objective-card button{background:var(--amber);border-color:var(--amber);width:100%}.live-message{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--case-accent);border-radius:.65rem;box-shadow:var(--shadow);font-size:.78rem;margin:1rem auto;max-width:780px;padding:.7rem 1rem;text-align:center}.proof-panel{background:var(--ink);border-radius:1rem;color:var(--paper);margin:1rem auto;max-width:760px;padding:clamp(1rem,4vw,2.5rem);text-align:center}.proof-kicker{color:var(--teal-light);font-size:.7rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.proof-panel h2{font-family:var(--font-display);font-size:clamp(1.8rem,5vw,3.4rem);margin:.4rem 0}.proof-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.proof-controls .share-button{background:var(--amber);margin-left:1rem}.mobile-tabs{display:none}@media(max-width:1100px){.game-layout{grid-template-columns:210px minmax(420px,1fr)}.clue-panel{grid-column:1/-1;max-height:none;position:static}.clue-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.game-shell{padding-inline:.5rem}.case-header{align-items:flex-start;padding:0 .35rem}.case-header h1{font-size:clamp(2.4rem,15vw,4.2rem)}.case-header p{font-size:.82rem}.case-status{display:none}.mobile-tabs{background:var(--ink);border-radius:.8rem;display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:.6rem;padding:.25rem;position:sticky;top:.3rem;z-index:20}.mobile-tabs button{background:transparent;border:0;border-radius:.55rem;color:#c9d7dc;font:inherit;font-size:.72rem;font-weight:900;min-height:2.7rem;text-transform:capitalize}.mobile-tabs button.active{background:var(--paper);color:var(--ink)}.game-layout{display:block}.game-panel,.scene-panel{max-height:none;position:static}.mobile-hidden{display:none}.scene-toolbar{align-items:flex-start;flex-direction:column}.board-scroll{max-height:64vh;padding:.75rem}.clue-list{grid-template-columns:1fr}.action-bar{bottom:0;background:var(--paper);border-top:1px solid var(--line);position:sticky;z-index:8}.action-bar .danger-link{margin-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
