*{box-sizing:border-box} :root{color-scheme:dark;--bg:#101717;--panel:#192421;--line:#35423b;--gold:#d9b779;--muted:#a7b1a8;--cream:#f0e7d7;--wine:#863c3f}body{margin:0;background:radial-gradient(ellipse at 25% 0,#29332c,transparent 55%),var(--bg);color:var(--cream);font:15px/1.55 'Segoe UI',Arial,sans-serif}button,select{font:inherit;color:inherit}button{cursor:pointer;background:transparent;border:1px solid var(--line);padding:9px 15px;border-radius:4px;transition:background .15s,border-color .15s}button:hover{border-color:var(--gold);background:#d9b77912}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible,.map-wrap:focus-visible{outline:2px solid var(--gold);outline-offset:3px}select{background:#1c2825;border:1px solid var(--line);padding:6px;border-radius:3px;max-width:100%}header{max-width:1540px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:24px 40px;border-bottom:1px solid var(--line);gap:20px}.brand{color:var(--cream);display:flex;align-items:center;gap:15px;text-decoration:none;letter-spacing:3px;font-size:18px;white-space:nowrap}.brand small{display:block;font-size:9px;letter-spacing:2px;color:var(--muted)}.monogram{border:1px solid var(--gold);width:45px;height:50px;display:grid;place-content:center;font:24px Georgia;color:var(--gold);background:#7a28261a}nav{display:flex;gap:12px;align-items:center}nav button{border:0;font-size:13px;color:var(--muted)}main{max-width:1540px;margin:auto;padding:32px 40px 0}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.eyebrow{color:var(--gold);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{font:clamp(32px,4vw,56px)/1.18 Georgia,serif;margin:10px 0 13px}h2{font:25px/1.3 Georgia;margin:6px 0}h3{font-size:14px;font-weight:500;letter-spacing:.3px}.intro p{color:var(--muted);max-width:700px;font-size:14px}.case-stamp{display:flex;flex-direction:column;align-items:center;border:1px solid #89765166;padding:12px 20px;color:var(--gold);font-size:9px;letter-spacing:1.2px;flex-shrink:0}.case-stamp strong{font:40px Georgia;letter-spacing:4px}.toolbar{display:flex;gap:12px;align-items:center;padding:12px 0;border-block:1px solid var(--line);font-size:12px;color:var(--muted);margin-bottom:24px;flex-wrap:wrap}.toolbar .live{margin-right:auto;display:flex;align-items:center;gap:9px}.live i{width:6px;height:6px;background:#a5b98e;border-radius:50%;flex-shrink:0}.toolbar button{padding:5px 9px;border:0}.toolbar label{display:flex;align-items:center;gap:8px}.workspace{display:grid;grid-template-columns:minmax(430px,1.6fr) minmax(330px,1fr);gap:24px;align-items:start}.workspace.board-wide{grid-template-columns:1fr}.board-wide aside{max-width:900px;width:100%;margin:auto}.scene-panel,.dossier{background:linear-gradient(145deg,#1b2624,#151d1d);border:1px solid var(--line);border-radius:6px;padding:23px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.north{font-size:12px;color:var(--gold);white-space:nowrap}.map-tools{display:flex;gap:14px;align-items:center}.map-tools button{padding:4px 8px;font-size:10px}.timeline{display:flex;align-items:center;justify-content:center;margin:20px 0;gap:12px}.timeline button{font-size:16px;border-color:transparent;color:var(--muted);padding:7px 20px}.timeline button span{display:block;font-size:10px;letter-spacing:.4px}.timeline .active{color:var(--gold);border:1px solid #89765188;background:#d9b7790a}.timeline-line{height:1px;width:45px;background:var(--line)}.map-wrap{overflow:auto;border:1px solid #89765188;border-radius:4px;background:#0b1010;max-height:76vh;scrollbar-color:#897651 #111b1a;scrollbar-width:thin;overscroll-behavior:contain}.map{position:relative;aspect-ratio:1;width:100%;isolation:isolate}.rooms,.grid,.room-labels{position:absolute;inset:0}.room{position:absolute;border:3px solid #564638;background:#352e27;overflow:hidden;box-shadow:inset 0 0 0 2px #aa916a66}.room-art{position:absolute;inset:0;background-image:url('assets/interiors.webp');background-size:400% 200%;filter:brightness(.85) saturate(.8)}.room-trim{position:absolute;inset:5px;border:1px solid #d9b77955;box-shadow:inset 0 0 25px #0007;pointer-events:none}.grid{display:grid;z-index:2}.tile{position:relative;border-radius:0;border:1px solid #f5e7ca33;padding:0;display:flex;align-items:center;justify-content:center;background:#00000003;min-width:0;aspect-ratio:1;overflow:visible}.tile:hover{background:#d9b77935}.tile .coord{position:absolute;top:3px;left:4px;font-size:9px;color:#fff9;text-shadow:0 1px 4px #000;z-index:4;background:#0e141744;padding:0 2px;border-radius:2px}.tile.blocked{opacity:1;background:repeating-linear-gradient(135deg,#122022b8 0px,#122022b8 5px,#36453f9c 5px,#36453f9c 6px);border-color:#8d98802c;cursor:not-allowed}.tile.blocked .coord{color:#c7ccc580}.tile.blocked:after{content:'×';position:absolute;font:13px Georgia;color:#b8c4b070}.tile.occupied{z-index:5;background:#080d0c2a}.tile.occupied:hover{background:#d9b77925}.tile.exercise-target{box-shadow:inset 0 0 0 3px #e0bf7e;background:#d9b77925}.tile.exercise-target:before{content:'';position:absolute;inset:8px;border:1px dashed #ffe4ac;pointer-events:none}.room-labels{z-index:3;pointer-events:none}.room-label{position:absolute;color:#e8dbc1;background:#101817ed;border:1px solid #d9b77988;padding:1px 7px;font-size:10px;letter-spacing:.6px;text-transform:uppercase;transform:translate(-50%,3px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.victim{position:absolute;color:#ffe0a2;font-size:27px;pointer-events:none;text-shadow:0 0 6px #000,0 2px 2px #000;z-index:7;transform:translate(-50%,-50%);line-height:1}.token{display:block;width:78%;aspect-ratio:1;border-radius:50%;border:2px solid #e2c68c;box-shadow:0 4px 12px #000c,0 0 0 3px #1e2924;position:relative;background-size:200% 200%;margin-top:-6px;background-color:#17211f}.token-selected{box-shadow:0 0 0 3px #e8d5a688,0 5px 12px #000c}.token-name{position:absolute;bottom:2%;left:50%;transform:translateX(-50%);border:1px solid #ae9060;color:#f8e9c9;font:italic 14px/1.15 Georgia,'Times New Roman',serif;padding:3px 8px;background:linear-gradient(#24342f,#111c1a);border-radius:3px;white-space:nowrap;box-shadow:0 3px 8px #0009;text-shadow:0 1px #000;z-index:6;max-width:125%;overflow:hidden;text-overflow:ellipsis}.map-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:10px;margin:12px 0}.map-caption>div{white-space:nowrap}.map-caption button{padding:1px 7px;font-size:11px}.map-caption #zoomValue{margin:0 5px}.legend{display:flex;gap:15px;font-size:10px;color:var(--muted);flex-wrap:wrap}.legend>span{display:flex;align-items:center;gap:5px}.legend i{width:12px;height:12px;border:1px solid #d9b77988;display:inline-block}.legend .blocked-key{background:repeating-linear-gradient(135deg,#415348 0 3px,#14221c 3px 5px)}#status{font-size:12px;color:var(--gold);min-height:24px;margin:15px 0}.suspect-heading,.clue-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:18px 0 12px;gap:8px}.suspect-heading>div{display:flex;align-items:center;gap:10px}.suspect-heading span,.clue-heading span{font-size:11px;color:var(--muted)}#undo{font-size:10px;padding:3px 7px}.suspects{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:11px}.suspect{padding:0;overflow:hidden;text-align:left;background:#111a19;border:1px solid var(--line);position:relative;min-width:0}.suspect.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.suspect.is-placed{background:#223129}.portrait{display:block;width:100%;aspect-ratio:1;background-size:200% 200%;background-color:#16211e}.suspect strong{display:block;font:16px/1.2 Georgia,serif;padding:9px 9px 0;min-height:28px}.suspect small{display:block;color:var(--muted);font-size:10px;padding:5px 9px 25px}.suspect em{font:11px Georgia;color:var(--gold);position:absolute;bottom:7px;right:9px}.selection-help{font-size:11px;color:var(--muted);margin-top:14px}.dossier h2{margin:10px 0}.dossier>p{color:var(--muted);font-size:13px;line-height:1.7}.victim-card{display:flex;align-items:center;gap:13px;border-block:1px solid var(--line);padding:16px 0;margin:20px 0}.victim-card strong{font:18px Georgia}.victim-card small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.seal{color:var(--gold);border:1px solid #d9b77955;border-radius:50%;width:40px;height:40px;flex-shrink:0;display:grid;place-content:center}.rules-summary{font-size:12px;color:#ccd0c5;background:#ffffff05;border-left:2px solid var(--gold);padding:12px}.difficulty-info{font-size:12px;margin:16px 0;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:14px}.difficulty-info summary{cursor:pointer;color:var(--gold)}.difficulty-info p{padding:10px 0}.difficulty-info small{font-size:10px}.clue{display:flex;gap:11px;border-bottom:1px solid #34403a99;padding:13px 0;font-size:12px;color:#d9ddd3;cursor:pointer;align-items:start}.clue input{accent-color:var(--gold);margin:4px 0;flex-shrink:0}.clue.checked span{text-decoration:line-through;opacity:.5}.clue em{font-style:normal;color:var(--gold);display:block;font-size:9px;letter-spacing:1.5px;margin-bottom:4px}.hint{margin-top:19px;width:100%;border-color:#89765188;color:var(--gold)}#hintText{font-size:12px;color:var(--gold);padding:10px 0;line-height:1.6}#accusation{border-top:1px solid var(--line);padding-top:18px}#accusation label{display:block;font:18px Georgia;margin-bottom:10px}#killer{width:100%;margin-bottom:10px}.primary{background:var(--gold);color:#19211c;border:0;width:100%;font-size:13px;font-weight:600;padding:12px}.primary:hover{background:#e7c895;color:#101717}footer{display:flex;justify-content:space-between;gap:20px;color:#839087;font-size:9px;letter-spacing:1px;padding:28px 0}.tutorial{display:flex;align-items:center;gap:28px;padding:20px 24px;background:linear-gradient(120deg,#354131,#20342d);border:1px solid #9e895e;border-left:4px solid var(--gold);border-radius:5px;margin-bottom:24px}.tutorial[hidden]{display:none}.tutorial p{font-size:14px;margin-top:6px;color:#e8e7d9}.tutorial .primary{width:auto;white-space:nowrap;flex-shrink:0}dialog{background:#192522;color:var(--cream);border:1px solid #89765188;border-radius:8px;max-width:930px;width:calc(100% - 32px);padding:32px;max-height:90vh;overflow:auto}dialog::backdrop{background:#050b0be6;backdrop-filter:blur(5px)}dialog h2{margin:12px 0 18px}dialog p{color:var(--muted);margin:15px 0}dialog ol{padding-left:22px;color:#cbd0c6}dialog li{padding-bottom:12px}.close{position:absolute;right:9px;top:9px;padding:0 9px;font-size:22px;border:0}.solved-seal{font:60px Georgia;color:var(--gold)}.catalog-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.catalog-tabs button{font-size:12px;flex:1;min-width:90px}.catalog-tabs small{display:block;font-size:9px;color:var(--muted)}.catalog-tabs .active{color:var(--gold);border-color:var(--gold);background:#d9b77910}.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.case-card{text-align:left;padding:16px;display:flex;flex-direction:column;gap:8px;min-height:140px;background:#111c19}.case-card strong{font:20px Georgia}.case-card small{color:var(--muted);font-size:11px}.case-card>span:last-child{font-size:11px;color:var(--gold);margin-top:auto}.case-card.solved{border-color:#6d8c65}.download{display:inline-block;color:var(--gold);font-size:13px;margin-top:20px}@media(max-width:1050px){main{padding-inline:24px}.workspace{grid-template-columns:minmax(380px,1.4fr) minmax(300px,1fr)}.suspects{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.toolbar .live{width:100%}.scene-panel,.dossier{padding:18px}}@media(max-width:850px){header{padding:18px 22px}.brand{font-size:15px;letter-spacing:2px}nav{gap:3px}nav button{font-size:11px;padding:6px}main{padding:25px 20px 0}.workspace{grid-template-columns:1fr}.intro h1{font-size:38px}.toolbar{gap:8px}.toolbar label{flex-wrap:wrap}.toolbar select{font-size:12px}.map-caption{font-size:9px}.suspects{grid-template-columns:repeat(4,minmax(0,1fr))}.suspect strong{font-size:14px}.suspect small{font-size:9px}.tutorial{align-items:start;flex-direction:column;gap:12px;padding:18px}.tutorial .primary{width:100%}.map-wrap{max-height:70vh}.map-tools button{font-size:9px}footer{font-size:8px}}@media(max-width:500px){header{padding:15px 14px;gap:9px;flex-wrap:wrap}.brand{font-size:12px;gap:8px;letter-spacing:1.7px}.brand small{display:none}.monogram{width:31px;height:35px;font-size:18px}nav{margin-left:auto}nav button{font-size:10px;padding:4px}.intro{align-items:flex-start}.intro h1{font-size:34px}.case-stamp{font-size:7px;padding:9px 6px;max-width:102px;white-space:normal}.case-stamp strong{font-size:30px}.timeline button{padding:7px 12px}.panel-heading h2{font-size:22px}.map-tools{gap:6px;flex-direction:column}.scene-panel{padding:12px}.suspects{gap:7px}.suspect strong{font-size:12px;padding:7px 6px 0}.suspect small{padding:4px 6px 24px;font-size:9px}.case-grid{grid-template-columns:1fr}.catalog-tabs button{min-width:95px}dialog{padding:26px 18px}.map-caption{align-items:flex-start}.map-caption>span{max-width:52%}.toolbar{font-size:11px}.legend{gap:9px;font-size:9px}.eyebrow{letter-spacing:1.5px;font-size:9px}.token-name{font-size:13px}.suspect-heading h3{font-size:13px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Manor collection presentation */
.intro{position:relative;isolation:isolate;min-height:260px;padding:34px 28px;border:1px solid #a28b574d;border-radius:5px;overflow:hidden;background:#18241f}.intro:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/manor-exterior.webp') center/cover}.intro:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#101c19f5 0%,#101c19d9 35%,#101c1933 70%,#101c1944 100%)}.intro>div:first-child{max-width:65%;text-shadow:0 2px 8px #0008}.intro p{color:#d0d2c2;max-width:560px}.case-stamp{background:#11201dd9;backdrop-filter:blur(6px);box-shadow:0 10px 35px #0006}.rooms svg{width:100%;height:100%;display:block}.room-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.room-legend button{font-size:10px;padding:3px 7px;background:#15221e}.room-legend button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}.suspect-wrap{display:flex;flex-direction:column;min-width:0;gap:4px}.suspect-wrap .suspect{width:100%;flex:1}.portrait{aspect-ratio:3/8;background-size:400% 100%}.view-profile{font-size:10px;color:var(--gold);padding:5px 3px;border-color:transparent}.full-profile{height:min(66vh,760px);aspect-ratio:3/8;background-size:400% 100%;margin:0 auto;border:1px solid #a28b5788;border-radius:4px}.scene-panel{box-shadow:0 12px 40px #0002}.dossier{border-top:2px solid #b49a6955;background:linear-gradient(145deg,#26312a,#17201c 40%)}@media(max-width:500px){.intro{padding:22px 16px;min-height:245px}.intro>div:first-child{max-width:66%}.intro:after{background:linear-gradient(90deg,#101c19f0,#101c19b3 55%,#101c1944)}.case-stamp{max-width:95px}.view-profile{font-size:9px}.suspect-wrap{gap:2px}}

/* Installation and touch layouts */
nav .install-button{color:#f2dcad;border:1px solid #c1a269;background:linear-gradient(130deg,#633331,#322b23);border-radius:4px;font-size:12px;padding:9px 14px;box-shadow:inset 0 1px #e5c99222}.install-button[hidden]{display:none}.install-ready{padding:14px;margin:15px 0;border:1px solid #7f795d;border-radius:4px;color:#d9bf8b;font-size:13px}.install-ready.ready{border-color:#8ea67a;color:#c5dbb2;background:#8ca47511}.install-guide{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.install-note{font-size:11px}.map-wrap{touch-action:pan-x pan-y}.tile{touch-action:manipulation}.map-caption button{min-width:34px;min-height:34px}.north{flex-shrink:0}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}footer{padding-bottom:calc(28px + env(safe-area-inset-bottom))}@media(hover:none){button,select{min-height:42px}.map-caption button{min-width:40px;min-height:42px}.tile{min-height:0}.view-profile{min-height:34px}.room-legend button{min-height:34px}.map-tools button{min-height:36px}}@media(min-width:768px) and (max-width:1180px){main{padding-inline:26px}.workspace{grid-template-columns:1fr}.workspace.board-wide{grid-template-columns:1fr}.scene-panel{padding:22px}.suspects{grid-template-columns:repeat(6,minmax(0,1fr))}.dossier{max-width:100%}.intro{min-height:255px}.map-wrap{max-height:66vh}.intro h1{font-size:42px}}@media(max-width:500px){header{padding-bottom:12px}.brand{font-size:13px}.brand .monogram{width:35px;height:38px}nav{width:100%;display:flex;justify-content:space-between;gap:7px}nav .install-button{margin-right:auto;min-height:40px;padding:7px 12px}nav button{font-size:11px;min-height:40px}nav select{min-height:40px}.map-caption{flex-wrap:wrap}.map-caption>span{max-width:none;width:100%;font-size:10px}.map-caption>div{display:flex;align-items:center;margin-left:auto}.map-wrap{max-height:60vh}.intro{min-height:225px}}
