:root{--night:#0d1413;--surface:#15201e;--surface-2:#1c2a27;--paper:#eee4ce;--muted:#909a94;--gold:#d6a84e;--gold-light:#f0d38b;--red:#b55047;--line:rgba(238,228,206,.15);--accent:#8e4b40}
*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--paper);background:radial-gradient(circle at 50% 20%,rgba(63,103,94,.18),transparent 32%),var(--night);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,select{font:inherit}.back-link{position:fixed;left:16px;top:16px;z-index:30;padding:8px 12px;border:1px solid rgba(255,255,255,.22);border-radius:99px;color:#eee8db;background:rgba(9,14,13,.72);font-size:.7rem;font-weight:750;text-decoration:none;backdrop-filter:blur(12px)}.back-link a{color:inherit;text-decoration:none}.back-link:hover{border-color:var(--gold);color:var(--gold-light)}
.case-hero{position:relative;min-height:360px;display:flex;align-items:flex-end;background-position:center;background-size:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,14,13,.12),rgba(9,14,13,.32) 40%,var(--night) 100%),linear-gradient(90deg,rgba(9,14,13,.82),transparent 70%)}.hero-content{position:relative;z-index:1;width:min(1180px,calc(100% - 36px));display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:0 auto;padding:100px 0 38px}.case-kicker,.mini-label{margin:0 0 7px;color:var(--gold);font-size:.65rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.hero-content h1{margin:0;font-family:Georgia,serif;font-size:clamp(2.8rem,6vw,5.3rem);font-weight:400;letter-spacing:-.045em;line-height:.98;text-shadow:0 3px 25px rgba(0,0,0,.5)}.hero-content p:not(.case-kicker){max-width:600px;margin:15px 0 0;color:#c3c8c2;font-size:.88rem}.case-switch{min-width:225px}.case-switch label{display:block;margin:0 0 6px;color:#c6cbc6;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.case-switch select{width:100%;height:43px;padding:0 11px;border:1px solid rgba(255,255,255,.25);border-radius:10px;color:#fff;background:rgba(12,18,17,.75);outline:none}.case-switch option{color:#111;background:#fff}
.game-layout{width:min(1180px,calc(100% - 28px));display:grid;grid-template-columns:minmax(0,710px) minmax(300px,1fr);gap:20px;margin:0 auto 45px}.scene-panel,.dossier{border:1px solid var(--line);border-radius:20px;background:rgba(21,32,30,.96);box-shadow:0 24px 70px rgba(0,0,0,.28)}.scene-panel{padding:22px}.scene-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.scene-heading h2,.dossier h2{margin:0;font-family:Georgia,serif;font-weight:400}.scene-heading>div>p:last-child{margin:2px 0 0;color:var(--muted);font-size:.72rem}.stats{display:flex;gap:6px}.stats span{min-width:74px;padding:7px 9px;border-radius:9px;background:rgba(255,255,255,.04)}.stats small{display:block;color:#77817b;font-size:.52rem;font-weight:800;letter-spacing:.08em}.stats strong{display:block;margin-top:1px;color:#d8d9d2;font-size:.83rem;font-variant-numeric:tabular-nums}
.board-frame{width:100%;aspect-ratio:1;padding:3px;border-radius:8px;background:#b58b44;box-shadow:0 12px 35px rgba(0,0,0,.3)}#board{display:grid;grid-template:repeat(6,1fr)/repeat(6,1fr);width:100%;height:100%;overflow:hidden;border-radius:5px}.cell{position:relative;min-width:0;padding:0;border:0;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);color:#fff;cursor:pointer;overflow:hidden;transition:filter .12s,box-shadow .12s}.cell:nth-child(6n){border-right:0}.cell:nth-child(n+31){border-bottom:0}.cell:hover{filter:brightness(1.18)}.cell.edge-r{border-right:3px solid #b58b44}.cell.edge-b{border-bottom:3px solid #b58b44}.room-a{background:#3f625a}.room-b{background:#5f4b3d}.room-c{background:#455563}.room-d{background:#714b42}.room-e{background:#514861}.room-f{background:#5b644d}.room-g{background:#365947}.room-name{position:absolute;left:5px;top:4px;z-index:1;max-width:calc(100% - 8px);color:rgba(255,248,230,.72);font-size:clamp(.36rem,1vw,.61rem);font-weight:850;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.prop{position:absolute;right:5px;bottom:3px;font-size:clamp(.8rem,2.2vw,1.55rem);filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));pointer-events:none}.person-token{position:absolute;inset:12%;border:2px solid rgba(255,255,255,.75);border-radius:50%;background-image:var(--sheet);background-size:300% 200%;background-position:var(--pos);box-shadow:0 6px 15px rgba(0,0,0,.45)}.person-token.victim::after{content:'†';position:absolute;right:-5px;top:-8px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--red);font-family:Georgia,serif;font-size:.7rem}.cross{position:absolute;inset:16%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.44);border-radius:50%;color:rgba(255,255,255,.7);font-size:clamp(1rem,3vw,2rem)}.cell.conflict{z-index:3;box-shadow:inset 0 0 0 4px #ff746a}.cell.hinted{z-index:4;animation:pulse 1s ease 2}.cell:focus-visible{z-index:5;outline:3px solid var(--gold);outline-offset:-3px}@keyframes pulse{50%{box-shadow:inset 0 0 0 6px var(--gold),0 0 22px var(--gold)}}.columns{display:grid;grid-template-columns:repeat(6,1fr);margin:7px 0 0;color:#77827b;font-size:.62rem;text-align:center}.game-status{min-height:24px;margin:10px 0 0;color:#a8b0ab;font-size:.79rem;text-align:center}.game-status.error{color:#f08b81}.game-status.success{color:#9dd0b5}
.dossier{padding:20px;max-height:850px;overflow:auto;scrollbar-color:#58655f transparent}.dossier-head{margin-bottom:13px}.people-list{display:grid;gap:6px}.person-card{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:9px;width:100%;padding:7px 9px;border:1px solid rgba(255,255,255,.11);border-radius:11px;color:var(--paper);background:rgba(255,255,255,.025);text-align:left;cursor:pointer}.person-card:hover{background:rgba(255,255,255,.06)}.person-card.selected{border-color:var(--gold);background:rgba(214,168,78,.1);box-shadow:0 0 0 2px rgba(214,168,78,.1)}.portrait{width:42px;height:42px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background-image:var(--sheet);background-size:300% 200%;background-position:var(--pos)}.person-info strong{display:block;font-size:.78rem}.person-info small{display:block;color:#818b85;font-size:.64rem}.placed{color:#7f8883;font-size:.61rem}.person-card.selected .placed{color:var(--gold-light)}.clue-title{display:flex;align-items:center;justify-content:space-between;margin:17px 0 8px;color:var(--gold);font-size:.62rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.clue-title button{border:0;color:#828d87;background:transparent;font-size:.61rem;cursor:pointer}.clues{display:grid;gap:6px}.clues.hidden{display:none}.clue{display:grid;grid-template-columns:22px 1fr;gap:7px;padding:8px 9px;border-radius:9px;color:#b8bdb9;background:rgba(255,255,255,.035);font-size:.7rem;line-height:1.4}.clue b{color:var(--gold);font-family:Georgia,serif}.game-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:16px}.game-actions button{min-height:44px;padding:5px;border:1px solid rgba(255,255,255,.14);border-radius:9px;color:#d2d4ce;background:transparent;font-size:.65rem;font-weight:750;cursor:pointer}.game-actions button:hover{background:rgba(255,255,255,.055)}.game-actions button.active{border-color:var(--gold);color:var(--gold-light);background:rgba(214,168,78,.09)}.solve-button{width:100%;margin-top:7px;padding:12px;border:0;border-radius:10px;color:#1c211e;background:var(--gold);font-weight:850;cursor:pointer}.solve-button:hover{background:var(--gold-light)}
.verdict-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:rgba(7,11,10,.8);backdrop-filter:blur(9px)}.verdict-overlay[hidden]{display:none}.verdict{width:min(500px,100%);padding:30px;border:1px solid rgba(214,168,78,.35);border-radius:22px;color:#272b27;background:#eee4ce;box-shadow:0 35px 100px rgba(0,0,0,.55);text-align:center}.verdict-portraits{display:flex;justify-content:center;margin-bottom:10px}.verdict-portraits .portrait{width:76px;height:76px;margin:0 -7px;border:4px solid #eee4ce;box-shadow:0 7px 18px rgba(0,0,0,.2)}.verdict h2{margin:5px 0;font-family:Georgia,serif;font-size:2.2rem;font-weight:400}.verdict p{color:#61645b;font-size:.85rem;line-height:1.6}.verdict .mini-label{color:#9f7130}.verdict-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.verdict-actions button,.verdict-actions a{display:grid;place-items:center;min-height:44px;border:1px solid #a9a391;border-radius:10px;color:#40453f;background:transparent;font-size:.75rem;font-weight:800;text-decoration:none;cursor:pointer}.verdict-actions a{border-color:#356b64;color:#fff;background:#356b64}
@media(max-width:900px){.case-hero{min-height:320px}.hero-content{align-items:flex-start;flex-direction:column}.case-switch{width:100%;max-width:380px}.game-layout{grid-template-columns:1fr}.dossier{max-height:none}.people-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:570px){.back-link{left:8px;top:8px}.case-hero{min-height:380px}.hero-content{width:calc(100% - 22px);padding-bottom:25px}.game-layout{width:calc(100% - 10px);gap:8px}.scene-panel,.dossier{border-radius:14px;padding:9px}.scene-heading{align-items:flex-start}.scene-heading>div>p{display:none}.stats span{min-width:58px;padding:5px}.stats span:nth-child(3){display:none}.people-list{grid-template-columns:1fr 1fr;gap:4px}.person-card{grid-template-columns:38px 1fr;padding:5px}.portrait{width:35px;height:35px}.placed{display:none}.game-actions{position:sticky;bottom:0;padding-top:7px;background:var(--surface)}.room-name{left:2px;top:2px}.prop{right:2px;bottom:1px}.verdict{padding:24px 18px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.person-token,.portrait{background-size:cover;background-position:center}
