@import "https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400&family=Playfair+Display:wght@400;700;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@500;700&display=swap";:root{--bg-dark:#0a0e14;--bg-card:#141a24;--bg-elevated:#1c2433;--text-primary:#e8e4dc;--text-secondary:#9a958a;--text-muted:#6b6560;--accent-amber:#d4a054;--accent-amber-dim:#a67c3a;--accent-red:#c44b4b;--accent-green:#4a9e6e;--border:#2a3344;--border-light:#3a4558;--font-display:"Playfair Display", Georgia, serif;--font-mono:"Courier Prime", "Courier New", monospace;--radius:8px;--shadow:0 4px 24px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{font-family:var(--font-mono);background:var(--bg-dark);color:var(--text-primary);-webkit-font-smoothing:antialiased;width:100%;line-height:1.6;overflow-x:clip}.app{width:100%;min-height:100dvh}.btn{font-family:var(--font-mono);border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border:2px solid #0000;padding:.65rem 1.4rem;font-size:.9rem;font-weight:700;transition:all .2s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-amber);color:var(--bg-dark);border-color:var(--accent-amber)}.btn-primary:hover:not(:disabled){background:var(--accent-amber-dim);border-color:var(--accent-amber-dim)}.btn-secondary{color:var(--text-primary);border-color:var(--border-light);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--accent-amber);color:var(--accent-amber)}.btn-accent{background:var(--accent-red);color:#fff;border-color:var(--accent-red)}.btn-accent:hover:not(:disabled){background:#a33a3a}.btn-large{padding:.9rem 2.2rem;font-size:1rem}.btn-small{padding:.4rem .9rem;font-size:.8rem}.title-screen{-webkit-overflow-scrolling:touch;background:linear-gradient(#0a0e14 0%,#141a2e 50%,#0a0e14 100%);flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:100dvh;display:flex;position:relative;overflow:hidden auto}.rain{pointer-events:none;background-image:repeating-linear-gradient(#0000,#0000 2px,#ffffff05 2px 4px);animation:.5s linear infinite rain;position:absolute;inset:0}@keyframes rain{0%{transform:translateY(-4px)}to{transform:translateY(0)}}.title-content{text-align:center;width:100%;max-width:min(1100px,100%);padding:2rem 1rem;padding-bottom:calc(2rem + env(safe-area-inset-bottom));z-index:1;flex:1;margin:0 auto;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--accent-amber);margin-bottom:.5rem;font-size:.75rem}.game-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;margin-bottom:.5rem;font-size:4rem;font-weight:900;line-height:1}.game-tagline{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1.1rem;font-style:italic}.title-divider{background:var(--accent-amber);width:60px;height:2px;margin:0 auto 1.5rem}.title-description{color:var(--text-secondary);margin-bottom:2rem;font-size:.95rem}.title-meta{color:var(--text-muted);margin-top:1.5rem;font-size:.8rem}.briefing-screen{background:var(--bg-dark);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.briefing-card{background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);max-width:640px;box-shadow:var(--shadow);padding:2.5rem}.briefing-card h2{font-family:var(--font-display);margin-bottom:.25rem;font-size:2rem}.case-subtitle{color:var(--accent-amber);margin-bottom:1.5rem;font-style:italic}.victim-box{background:var(--bg-elevated);border-left:3px solid var(--accent-red);flex-direction:column;gap:.25rem;margin-bottom:1.5rem;padding:.75rem 1rem;display:flex}.victim-box .label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.7rem}.briefing-text p{color:var(--text-secondary);margin-bottom:1rem}.briefing-rules{background:var(--bg-elevated);border-radius:var(--radius);flex-direction:column;gap:.75rem;margin:1.5rem 0 2rem;padding:1rem;display:flex}.rule{align-items:center;gap:.75rem;font-size:.9rem;display:flex}.rule-icon{font-size:1.2rem}.game-header{background:var(--bg-card);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.75rem clamp(1rem,2.5vw,1.5rem);display:flex}.header-left{flex-direction:column;display:flex}.header-brand{font-family:var(--font-display);color:var(--accent-amber);font-size:.85rem;font-weight:700}.header-case{color:var(--text-secondary);font-size:.8rem}.header-center{text-align:center;flex:1}.progress-stats{color:var(--text-muted);font-size:.8rem}.stat-divider{margin:0 .5rem}.header-right{align-items:center;gap:1rem;display:flex}.timer{text-align:center;background:var(--bg-elevated);border-radius:var(--radius);padding:.25rem .75rem}.timer.urgent{color:var(--accent-red);background:#c44b4b33}.timer-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.65rem;display:block}.timer-value{font-size:1.1rem;font-weight:700}.tab-bar{background:var(--bg-card);border-bottom:1px solid var(--border);width:100%;display:flex}.tab{color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem;font-size:.85rem;transition:all .2s}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent-amber);border-bottom-color:var(--accent-amber)}.tab__icon{margin-right:.25rem}.investigation-screen{flex-direction:column;width:100%;min-height:100dvh;display:flex;overflow-x:clip}.investigation-content{box-sizing:border-box;flex-direction:column;flex:1;width:100%;min-height:0;padding:1rem clamp(.75rem,2.5vw,1.5rem);display:flex}.map-layout{flex:1;grid-template-columns:minmax(0,1.35fr) minmax(260px,340px);align-items:stretch;gap:1rem;width:100%;min-height:0;display:grid}.map-side-panel{flex-direction:column;min-width:0;min-height:0;display:flex}@media (width>=901px){.map-side-panel{-webkit-overflow-scrolling:touch;max-height:clamp(280px,52vh,560px);overflow-y:auto}.map-side-panel .location-panel{flex:1}}@media (width<=900px){.map-layout{flex-direction:column;flex:1;grid-template-columns:1fr;min-height:0;display:flex}.investigation-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:visible}.city-map{flex-shrink:0;height:auto}.map-side-panel{flex-direction:column;flex:1;min-height:12rem;display:flex;overflow:visible}.map-side-panel>.location-panel{flex:1;min-height:100%}.map-svg-wrap{aspect-ratio:4/3;min-height:clamp(200px,38vh,360px)}}.city-map{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.map-svg-wrap{aspect-ratio:4/3;background:#0a0e14;flex:1;width:100%;min-height:clamp(300px,min(56vh,50vw),640px);position:relative}.map-svg{touch-action:pan-x pan-y pinch-zoom;width:100%;height:100%;display:block}.district-label{font-family:var(--font-mono);fill:var(--text-muted);opacity:.72;letter-spacing:.12em;paint-order:stroke fill;stroke:#0a0e14d9;stroke-width:.35px;font-size:2.8px;font-weight:600}.district-zone--active{stroke:var(--accent-amber);stroke-width:.35px}.street{stroke:var(--border-light);stroke-width:.3px;opacity:.4}.street-minor{stroke-width:.15px;opacity:.25}.river{fill:none;stroke:#1e3a5f;stroke-width:1.5px;opacity:.6}.pin-dot{fill:var(--accent-amber);transition:all .2s}.map-pin:hover .pin-dot{fill:#f0c070;r:4}.map-pin.visited .pin-dot{fill:var(--accent-green)}.map-pin.selected .pin-dot{fill:#f0c070}.pin-select-ring{fill:none;stroke:var(--accent-amber);stroke-width:.55px;opacity:0;pointer-events:none;transition:opacity .15s}.map-pin.selected .pin-select-ring{opacity:.95}.pin-label{font-family:var(--font-mono);fill:var(--text-secondary);text-anchor:middle;pointer-events:none;opacity:0;font-size:2.2px;transition:opacity .15s}.pin-label--visible,.map-pin:hover .pin-label,.map-pin.selected .pin-label{opacity:1}@media (width>=901px){.pin-label{opacity:.85}}.map-pin.selected .pin-label{fill:var(--accent-amber);opacity:1;font-weight:700}.pin-ring{fill:none;stroke:var(--accent-green);stroke-width:.3px;opacity:.5}.map-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.map-stats{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.map-stats-sep{opacity:.5;margin:0 .35rem}.map-zoom{align-items:center;gap:.35rem;display:flex}.map-zoom-btn{border:1px solid var(--border-light);background:var(--bg-elevated);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--text-primary);cursor:pointer;border-radius:4px;font-size:1rem;line-height:1}.map-zoom-btn:hover{border-color:var(--accent-amber);color:var(--accent-amber)}.map-zoom-level{color:var(--text-muted);text-align:center;min-width:2.5rem;font-size:.75rem}.district-filters{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:.35rem;padding:.5rem .75rem;display:flex;overflow-x:auto}.district-filters::-webkit-scrollbar{display:none}.district-chip{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;padding:.35rem .65rem;font-size:.65rem;transition:all .15s}.district-chip:hover{border-color:var(--accent-amber-dim);color:var(--text-primary)}.district-chip.active{background:var(--accent-amber);color:var(--bg-dark);border-color:var(--accent-amber)}.map-tooltip{border:1px solid var(--border-light);border-radius:var(--radius);pointer-events:none;z-index:2;background:#0a0e14f2;padding:.65rem .85rem;position:absolute;bottom:.5rem;left:.5rem;right:.5rem}.map-tooltip strong{color:var(--accent-amber);font-size:.85rem;display:block}.map-tooltip span{color:var(--text-muted);text-transform:uppercase;font-size:.7rem}.map-tooltip p{color:var(--text-secondary);margin:.35rem 0;font-size:.8rem}.map-tooltip-meta{color:var(--accent-green)!important;font-size:.7rem!important}.map-hint{color:var(--text-muted);text-align:center;border-top:1px solid var(--border);padding:.5rem;font-size:.7rem}.map-tips{color:var(--text-secondary);margin-top:1rem;font-size:.8rem;list-style:none}.map-tips li{padding:.35rem 0 .35rem 1rem;position:relative}.map-tips li:before{content:"›";color:var(--accent-amber);position:absolute;left:0}.map-pin.dimmed{opacity:.2;pointer-events:none}.map-pin.unvisited .pin-pulse{fill:var(--accent-amber);opacity:.2;animation:2s ease-in-out infinite pinPulse}@keyframes pinPulse{0%,to{r:5;opacity:.12}50%{r:7.5;opacity:.28}}.map-pin.partial .pin-dot{fill:#e8b060}.map-pin.explored .pin-dot{fill:var(--accent-green)}.pin-badge{font-family:var(--font-mono);fill:var(--bg-dark);text-anchor:middle;pointer-events:none;font-size:3px;font-weight:700}.pin-badge.partial{fill:var(--bg-dark)}.pin-badge.done{fill:var(--accent-green);font-size:3.5px}.pin-hit-area{fill:#0000}.map-pin.hovered .pin-label,.map-pin:hover .pin-label{fill:var(--text-primary)}@media (hover:none){.map-tooltip{display:none}}.scene-hotspots{margin:1rem 0}.hotspot-prompt{color:var(--accent-amber);margin-bottom:.5rem;font-size:.8rem}.scene-image{border-radius:var(--radius);position:relative;overflow:hidden}.scene-preview .scene-preview-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);background:#000000b3;border-radius:3px;padding:.2rem .5rem;font-size:.65rem;position:absolute;top:.5rem;right:.5rem}.scene-image-overlay-light{opacity:.35!important}.scene-hotspot{cursor:pointer;z-index:2;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.hotspot-ping{background:var(--accent-amber);opacity:.35;border-radius:50%;width:28px;height:28px;animation:1.8s ease-out infinite hotspotPing;position:absolute}@keyframes hotspotPing{0%{opacity:.5;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.hotspot-dot{background:var(--accent-amber);border:2px solid var(--bg-dark);z-index:1;border-radius:50%;width:14px;height:14px;position:relative;box-shadow:0 0 8px #d4a05499}.hotspot-label{white-space:nowrap;color:var(--accent-amber);border:1px solid var(--border-light);pointer-events:none;background:#0a0e14e6;border-radius:3px;padding:.15rem .4rem;font-size:.65rem;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.scene-hotspot:hover .hotspot-dot,.scene-hotspot:focus .hotspot-dot{background:#f0c070;transform:scale(1.15)}.scene-hotspot.just-found .hotspot-dot{background:var(--accent-green);animation:.6s clueFound}@keyframes clueFound{0%{transform:scale(1)}50%{transform:scale(1.5)}to{transform:scale(1)}}.location-progress{color:var(--text-muted);margin-left:.5rem;font-size:.7rem}.location-meta{color:var(--text-muted);margin-bottom:1rem;font-size:.8rem}.location-complete{color:var(--accent-green);margin-top:.75rem;font-size:.8rem;font-style:italic}.clue-card{background:var(--bg-elevated);border-radius:var(--radius);gap:.75rem;margin-bottom:.5rem;padding:.75rem;transition:border-color .2s;display:flex}.clue-card.new-clue{border:1px solid var(--accent-green);animation:1.2s newClueFlash}@keyframes newClueFlash{0%{background:#4a9e6e40}to{background:var(--bg-elevated)}}.clue-card-body{flex:1;min-width:0}.clue-title-btn{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;font-family:inherit;display:flex}.clue-expand-icon{color:var(--accent-amber);font-size:1.1rem}.clue-implicates{color:var(--accent-amber);margin-top:.5rem;font-size:.8rem}.clue-examine-btn{text-align:left;width:100%;margin-bottom:.35rem;display:block}.clue-actions{margin-top:1rem}.evidence-summary{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.evidence-summary-chip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:.25rem .5rem;font-size:.7rem}.evidence-item-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.implicates-link{color:var(--accent-amber);font-family:var(--font-mono);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:.35rem 0 0;font-size:.8rem;text-decoration:underline}.implicates-link:hover{color:#f0c070}.suspects-hint{color:var(--text-secondary);margin:-.5rem 0 1rem;font-size:.85rem}.suspect-card.highlighted{border-color:var(--accent-amber);box-shadow:0 0 0 1px var(--accent-amber-dim)}.suspect-card.has-evidence{border-left:3px solid var(--accent-amber)}.suspect-evidence-badge{background:var(--accent-amber);color:var(--bg-dark);white-space:nowrap;border-radius:999px;margin-left:auto;padding:.1rem .4rem;font-size:.65rem}.suspect-header{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.location-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.location-panel.placeholder{height:100%;min-height:200px;color:var(--text-muted);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.75rem;font-style:italic;display:flex}.placeholder-lead{color:var(--text-secondary);margin:0;font-size:.95rem;font-style:normal;line-height:1.45}.location-panel.placeholder .map-tips{flex:1;width:100%;margin-top:0}.panel-header{margin-bottom:1rem}.district-badge{text-transform:uppercase;letter-spacing:.1em;color:var(--accent-amber);font-size:.7rem}.panel-header h3{font-family:var(--font-display);margin-top:.25rem;font-size:1.3rem}.location-description{color:var(--text-secondary);margin-bottom:1rem;font-size:.9rem}.visited-text{color:var(--text-secondary);background:var(--bg-elevated);border-radius:var(--radius);margin-bottom:1rem;padding:.75rem;font-style:italic}.clues-found h4{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.75rem;font-size:.8rem}.clues-found{margin-top:.5rem}.clue-card p{color:var(--text-secondary);font-size:.85rem}.clue-category{text-transform:uppercase;letter-spacing:.1em;border-radius:3px;margin-bottom:.35rem;padding:.15rem .4rem;font-size:.65rem;display:inline-block}.clue-category.physical{color:#c9a0dc;background:#3d2a4a}.clue-category.testimony{color:#a0c9dc;background:#2a3d4a}.clue-category.document{color:#dcc9a0;background:#3d3a2a}.clue-category.financial{color:#a0dca0;background:#2a4a3a}.evidence-board,.suspects-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.evidence-board h3,.suspects-panel h3{font-family:var(--font-display);margin-bottom:1rem}.evidence-board-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.evidence-board-header h3{margin-bottom:0}.evidence-notebook-hint{border-top:1px solid var(--border);color:var(--text-muted);margin-top:1rem;padding-top:.75rem;font-size:.85rem}.inline-link-btn{color:var(--accent-amber);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.detective-notebook{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:1rem}.notebook-header h3{font-family:var(--font-display);margin-bottom:.35rem}.notebook-hint{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem;line-height:1.45}.notebook-link-tip{color:var(--text-secondary);background:color-mix(in srgb, var(--accent-amber) 8%, var(--bg-elevated));border-left:3px solid var(--accent-amber);border-radius:0 var(--radius) var(--radius) 0;margin-bottom:.85rem;padding:.55rem .65rem;font-size:.8rem;line-height:1.45}.notebook-link-tip__label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-amber);margin-right:.35rem;font-size:.65rem;font-weight:700;display:inline-block}.notebook-board-wrap{margin-bottom:.85rem;position:relative}.notebook-board{border-radius:calc(var(--radius) * 1.5);border:1px solid color-mix(in srgb, var(--accent-amber) 25%, var(--border));touch-action:none;background:radial-gradient(circle at 20% 15%,#d4a0540f,#0000 45%),repeating-linear-gradient(-2deg,#0000,#0000 28px,#ffffff05 28px 29px),linear-gradient(165deg,#1a1410 0%,#121820 55%,#0f1218 100%);width:100%;min-height:clamp(320px,48vh,520px);position:relative;overflow:hidden}.notebook-strings{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.notebook-string{stroke:color-mix(in srgb, var(--accent-red) 75%, #c45c5c);stroke-width:2px;stroke-linecap:round;opacity:.85;filter:drop-shadow(0 1px 2px #0006);pointer-events:none}.notebook-string-hit{stroke:#0000;stroke-width:20px;pointer-events:stroke;cursor:pointer}.notebook-string-unlink{cursor:pointer;pointer-events:all}.notebook-string-unlink__bg{fill:var(--bg-card);stroke:color-mix(in srgb, var(--accent-red) 70%, var(--border));stroke-width:1.5px}.notebook-string-unlink__icon{fill:var(--accent-red);font-size:14px;font-weight:700;font-family:var(--font-body);pointer-events:none;-webkit-user-select:none;user-select:none}.notebook-string-unlink:hover .notebook-string-unlink__bg{fill:color-mix(in srgb, var(--accent-red) 15%, var(--bg-card))}.notebook-pin{z-index:3;color:#2a2218;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#f4e8c8 0%,#e8d4a8 100%);border-radius:3px;flex-direction:column;gap:.1rem;min-width:108px;max-width:148px;padding:.45rem .55rem .4rem;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000059,inset 0 1px #ffffff80}.notebook-pin:before{content:"";background:radial-gradient(circle at 35% 30%,#ff6b6b,#b91c1c);border-radius:50%;width:10px;height:10px;position:absolute;top:-7px;left:50%;transform:translate(-50%);box-shadow:0 1px 3px #00000073}.notebook-pin--dragging{cursor:grabbing;z-index:5;box-shadow:0 8px 20px #00000073}.notebook-pin--linking{outline:2px solid var(--accent-amber);outline-offset:2px}.notebook-pin__icon{font-size:.85rem;line-height:1}.notebook-pin__title{font-family:var(--font-mono);font-size:.68rem;font-weight:700;line-height:1.25}.notebook-pin__log{font-family:var(--font-mono);opacity:.75;font-size:.58rem}.notebook-pin__linked-list{flex-direction:column;gap:.2rem;margin-top:.15rem;display:flex}.notebook-pin__unlink{border:1px solid color-mix(in srgb, var(--accent-red) 35%, #8a6a4a);color:#4a3020;cursor:pointer;text-align:left;background:#ffffff73;border-radius:3px;justify-content:space-between;align-items:center;gap:.25rem;width:100%;padding:.12rem .3rem;font-size:.58rem;font-weight:600;line-height:1.2;display:flex}.notebook-pin__unlink:hover{background:color-mix(in srgb, var(--accent-red) 12%, #f4e8c8);border-color:var(--accent-red)}.notebook-pin__unlink-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notebook-pin__unlink-icon{color:var(--accent-red);flex-shrink:0;font-size:.75rem;font-weight:700;line-height:1}.notebook-pin__links{background:var(--accent-amber);color:#1a1208;border-radius:999px;justify-content:center;align-items:center;min-width:1rem;height:1rem;padding:0 .2rem;font-size:.6rem;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notebook-pin__link-btn{border:1px solid var(--border);background:var(--bg-card);z-index:1;width:1.35rem;height:1.35rem;color:var(--accent-amber);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;line-height:1;display:flex;position:absolute;bottom:-6px;right:-6px}.notebook-pin__link-btn.active{background:var(--accent-amber);color:#1a1208}.notebook-suspects{z-index:2;flex-direction:column;gap:.45rem;width:min(38%,168px);padding-left:.35rem;display:flex;position:absolute;top:.65rem;bottom:.65rem;right:.65rem;overflow-y:auto}.notebook-suspects-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 .15rem;font-size:.65rem}.notebook-suspect{border:1px solid var(--border);border-radius:var(--radius);background:#0a0e14d1;align-items:center;gap:.45rem;padding:.45rem;transition:border-color .15s,box-shadow .15s;display:flex}.notebook-suspect--drop-target,.notebook-suspect--link-ready:hover{border-color:var(--accent-amber);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-amber) 30%, transparent)}.notebook-suspect--linked-to-source{border-color:var(--accent-red);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-red) 25%, transparent)}.notebook-suspect__photo,.notebook-suspect__avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:2rem;height:2rem}.notebook-suspect__avatar{background:var(--bg-elevated);color:var(--accent-amber);font-family:var(--font-display);justify-content:center;align-items:center;font-weight:700;display:flex}.notebook-suspect__info{flex-direction:column;gap:.05rem;min-width:0;display:flex}.notebook-suspect__info strong{font-size:.72rem;line-height:1.2}.notebook-suspect__info span{color:var(--text-muted);font-size:.62rem;line-height:1.2}.notebook-suspect__linked{color:var(--accent-amber)!important}.notebook-suspect__muted{font-style:italic}.notebook-tray{margin-bottom:.85rem}.notebook-tray-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.4rem;font-size:.72rem}.notebook-tray-scroll{-webkit-overflow-scrolling:touch;gap:.45rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.notebook-tray-card{border:1px dashed color-mix(in srgb, var(--accent-amber) 45%, var(--border));background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:.35rem;padding:.45rem .65rem;font-size:.78rem;display:flex}.notebook-tray-card:hover{border-color:var(--accent-amber);color:var(--text-primary)}.notebook-tray-done{color:var(--text-muted);padding:.35rem 0;font-size:.82rem;font-style:italic}.notebook-link-prompt{color:var(--accent-amber);background:color-mix(in srgb, var(--accent-amber) 10%, var(--bg-elevated));border-radius:var(--radius);margin-bottom:.65rem;padding:.5rem .65rem;font-size:.85rem}.notebook-link-cancel{color:var(--text-muted);cursor:pointer;font:inherit;background:0 0;border:none;text-decoration:underline}.notebook-notes{margin-top:.25rem;margin-bottom:0}.notebook-empty{margin:1rem 0}.case-theme-cyber-noir .notebook-board{border-color:color-mix(in srgb, #00ffc8 30%, var(--border));background:linear-gradient(#00ffc808 1px,#0000 1px) 0 0/24px 24px,linear-gradient(90deg,#00ffc808 1px,#0000 1px) 0 0/24px 24px,linear-gradient(165deg,#060d12 0%,#0a1520 100%)}.case-theme-cyber-noir .notebook-pin{color:#b8fff0;background:linear-gradient(#0d1a22 0%,#091218 100%);border:1px solid #00ffc859}.case-theme-cyber-noir .notebook-string{stroke:#00ffc8bf}.case-theme-cyber-noir .notebook-pin__unlink{color:#b8fff0;background:#00ffc814;border-color:#ff647873}.case-theme-cyber-noir .notebook-string-unlink__bg{fill:#0a1520;stroke:#ff647899}.case-theme-cyber-noir .notebook-string-unlink__icon{fill:#ff7a8a}@media (width<=768px){.notebook-board{min-height:360px}.notebook-suspects{width:42%}.notebook-pin{min-width:96px;max-width:120px}.tab-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.tab-bar .tab{white-space:nowrap;flex-shrink:0}}.empty-state{color:var(--text-muted);text-align:center;padding:2rem;font-style:italic}.clue-list{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.evidence-item{background:var(--bg-elevated);border-radius:var(--radius);gap:.75rem;padding:.75rem;display:flex}.evidence-icon{flex-shrink:0;font-size:1.2rem}.evidence-item strong{margin-bottom:.15rem;display:block}.evidence-item p{color:var(--text-secondary);font-size:.85rem}.notes-section label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem;display:block}.notes-section textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);resize:vertical;padding:.75rem;font-size:.9rem}.notes-section textarea:focus{border-color:var(--accent-amber);outline:none}.suspect-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;display:grid}.suspect-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;transition:border-color .2s}.suspect-card.interviewed{border-color:var(--accent-amber-dim)}.suspect-header{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.suspect-role{color:var(--text-muted);font-size:.75rem}.suspect-desc{color:var(--text-secondary);margin-bottom:.75rem;font-size:.85rem}.suspect-details{border-top:1px solid var(--border);padding-top:.75rem}.detail-row{margin-bottom:.5rem}.detail-label{text-transform:uppercase;letter-spacing:.1em;color:var(--accent-amber);margin-bottom:.15rem;font-size:.7rem;display:block}.detail-row span:last-child{color:var(--text-secondary);font-size:.85rem}.modal-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow);padding:2rem;overflow-y:auto}.modal h2{font-family:var(--font-display);margin-bottom:.5rem}.modal-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem}.purchase-modal .purchase-price{text-align:center;margin-bottom:1.25rem}.purchase-modal .price-amount{font-family:var(--font-display);color:var(--accent-amber);font-size:2.5rem;display:block}.purchase-modal .price-label{color:var(--text-muted);font-size:.85rem}.purchase-razorpay-hint{margin-bottom:.75rem}.purchase-modal .purchase-razorpay-checkout{text-align:center;place-items:center;width:100%;min-height:3.25rem;margin:.75rem 0 1.25rem;display:grid}.purchase-modal .purchase-razorpay-checkout .razorpay-button-container{width:fit-content;max-width:100%;margin:0 auto}.purchase-modal .purchase-razorpay-checkout .razorpay-button-container form{width:fit-content!important;max-width:100%!important;margin:0 auto!important;display:block!important}.purchase-modal .purchase-razorpay-checkout .razorpay-button-container iframe,.purchase-modal .purchase-razorpay-checkout .razorpay-button-container .razorpay-payment-button,.purchase-modal .purchase-razorpay-checkout .razorpay-button-container .razorpay-payment-button-wrapper{max-width:100%!important;margin-left:auto!important;margin-right:auto!important;display:block!important}.purchase-modal .purchase-razorpay-checkout .razorpay-button-container .razorpay-payment-button button,.purchase-modal .purchase-razorpay-checkout .razorpay-button-container button[type=submit]{box-sizing:border-box;min-width:min(100%,280px);min-height:3rem}.paypal-button-container{min-height:3rem;margin:.75rem 0 1rem}.paypal-button-stack paypal-button{width:100%;max-width:100%;margin-bottom:.5rem;display:block}.paypal-card-fields{background:#0003;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:.65rem;margin-bottom:.75rem;padding:.85rem;display:flex}.paypal-card-fields-row{gap:.65rem;display:flex}.paypal-card-field{width:100%;height:3rem;min-height:3rem}.paypal-card-field-half{flex:1;min-width:0}.paypal-card-postal-label{color:var(--text-muted);text-align:left;flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.paypal-card-postal-input{width:100%;color:var(--text-primary);background:#00000040;border:1px solid #ffffff26;border-radius:6px;padding:.65rem .75rem;font-size:1rem}.paypal-card-postal-input:focus{border-color:#d4af3780;outline:2px solid #d4af3773}.paypal-card-pay-btn{width:100%;margin:0}.paypal-card-fields-title{text-align:left;margin:0 0 .25rem;font-size:.9rem;font-weight:600}.paypal-guest-card{margin-bottom:.75rem}.paypal-wallet-secondary{border-top:1px solid #ffffff14;margin-top:.75rem;padding-top:.75rem}.paypal-wallet-hint{color:var(--text-muted);text-align:left;margin:0 0 .5rem;font-size:.85rem}.paypal-button-stack paypal-button{--paypal-button-border-radius:6px}.paypal-india-help{text-align:left;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;margin:.5rem 0 .75rem;padding:.75rem 1rem}.paypal-india-help-title{margin:0 0 .35rem;font-weight:600}.paypal-india-help-steps{margin:0 0 .5rem 1.1rem;padding:0}.paypal-india-help-steps li{margin-bottom:.25rem}.paypal-india-help-note{opacity:.85;margin:0;font-size:.85rem}.tip-selected-amount{margin-bottom:.5rem}.purchase-pay-btn{width:100%;margin-bottom:1rem}.purchase-config-warning{margin-bottom:1rem}.purchase-divider{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.75rem;margin:1rem 0;font-size:.8rem;display:flex}.purchase-divider:before,.purchase-divider:after{content:"";background:var(--border);flex:1;height:1px}.purchase-promo-form{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.purchase-promo-form label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}.purchase-promo-form input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.08em;padding:.6rem}.purchase-close-btn{width:100%}.tip-modal .tip-preset-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.tip-preset-btn{border:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-display);cursor:pointer;background:#ffffff0a;border-radius:8px;padding:.85rem 1rem;font-size:1.1rem;transition:border-color .15s,background .15s}.tip-preset-btn:hover,.tip-preset-btn.selected{border-color:var(--accent-amber);background:#d4a0541f}.tip-custom-field,.tip-message-field{margin-bottom:1rem;display:block}.tip-custom-field input,.tip-message-field textarea{width:100%;margin-top:.35rem}.tip-pay-btn{width:100%;margin-bottom:.75rem}.tip-thanks{text-align:center;padding:1rem 0}.tip-thanks-amount{font-family:var(--font-display);color:var(--accent-amber);margin-bottom:.75rem;font-size:1.35rem}.tip-thanks-note{color:var(--text-secondary);margin-bottom:1.25rem}.tip-loading{text-align:center;margin:1rem 0}.tip-jar-banner{padding:.75rem clamp(1rem,3vw,1.5rem);padding-top:calc(.75rem + env(safe-area-inset-top));padding-left:calc(clamp(1rem, 3vw, 1.5rem) + env(safe-area-inset-left));padding-right:calc(clamp(1rem, 3vw, 1.5rem) + env(safe-area-inset-right));background:linear-gradient(90deg, color-mix(in srgb, var(--accent-amber) 12%, var(--bg-card)), color-mix(in srgb, var(--accent-amber) 6%, var(--bg-dark)));border-bottom:1px solid color-mix(in srgb, var(--accent-amber) 35%, var(--border));flex-shrink:0;width:100%;margin:0}.dashboard-screen .tip-jar-banner,.title-screen .tip-jar-banner{z-index:2;position:sticky;top:0}.title-screen .title-content{padding-top:1.5rem}.tip-jar-banner__inner{align-items:center;gap:.75rem;width:100%;max-width:min(1200px,100%);margin:0 auto;display:flex}.tip-jar-banner__head{display:contents}.tip-jar-banner__title{display:none}.tip-jar-banner__icon{width:1.5rem;height:1.5rem;color:var(--accent-amber);flex-shrink:0;display:flex}.tip-jar-banner__icon svg{width:100%;height:100%}.tip-jar-banner__text{color:var(--text-secondary);flex:1;margin:0;font-size:.9rem;line-height:1.4}.tip-jar-banner .tip-jar-banner__cta{white-space:nowrap;flex-shrink:0;width:auto;max-width:none}@media (width<=768px){.tip-jar-banner{padding:.65rem clamp(.85rem,4vw,1.25rem);padding-top:calc(.65rem + env(safe-area-inset-top));padding-left:calc(clamp(.85rem, 4vw, 1.25rem) + env(safe-area-inset-left));padding-right:calc(clamp(.85rem, 4vw, 1.25rem) + env(safe-area-inset-right))}.tip-jar-banner__inner{flex-direction:column;align-items:stretch;gap:.5rem}.tip-jar-banner__head{align-items:center;gap:.5rem;display:flex}.tip-jar-banner__title{font-family:var(--font-display);color:var(--text-primary);font-size:.95rem;font-weight:600;line-height:1.25;display:block}.tip-jar-banner__text{flex:none;padding-left:2rem;font-size:.82rem;line-height:1.4}.tip-jar-banner .tip-jar-banner__cta{white-space:normal;width:100%;min-height:44px}}@media (width>=769px){.tip-jar-banner__text:before{content:"Enjoying the mysteries? ";color:var(--text-primary);font-weight:600}}.tip-jar-fab{bottom:max(1.25rem, env(safe-area-inset-bottom));z-index:40;border:1px solid color-mix(in srgb, var(--accent-amber) 55%, var(--border));background:linear-gradient(145deg, color-mix(in srgb, var(--bg-card) 92%, var(--accent-amber)), var(--bg-card));color:var(--accent-amber);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.65rem .9rem .65rem .75rem;font-size:.8rem;font-weight:600;transition:transform .15s,box-shadow .15s,border-color .15s;display:inline-flex;position:fixed;box-shadow:0 8px 24px #00000059,inset 0 0 0 1px #00000026}.tip-jar-fab--right{right:max(1.25rem, env(safe-area-inset-right))}.tip-jar-fab--left{left:max(1.25rem, env(safe-area-inset-left))}.tip-jar-fab:hover{border-color:var(--accent-amber);box-shadow:0 12px 28px #0006, 0 0 18px color-mix(in srgb, var(--accent-amber) 25%, transparent);transform:translateY(-2px)}.tip-jar-fab:active{transform:translateY(0)}.tip-jar-fab__icon{flex-shrink:0;width:1.35rem;height:1.35rem;display:flex}.tip-jar-fab__icon svg{width:100%;height:100%}.tip-jar-fab__label{line-height:1}@media (width<=480px){.tip-jar-fab{border-radius:50%;justify-content:center;width:3rem;height:3rem;padding:0}.tip-jar-fab__label{display:none}}.purchase-hint{color:var(--accent-amber)}.form-section{margin-bottom:1.25rem}.form-section>label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem;display:block}.form-section select{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);padding:.6rem}.motive-options{flex-direction:column;gap:.4rem;display:flex}.motive-option{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;transition:border-color .2s;display:flex}.motive-option.selected{border-color:var(--accent-amber)}.motive-option input{accent-color:var(--accent-amber)}.evidence-checklist{flex-direction:column;gap:.35rem;display:flex}.evidence-check{cursor:pointer;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;display:flex}.evidence-check input{accent-color:var(--accent-amber)}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.result-screen{background:var(--bg-dark);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.result-card{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);max-width:560px;box-shadow:var(--shadow);padding:2.5rem}.result-card.correct{border-color:var(--accent-green)}.result-card.incorrect{border-color:var(--accent-red)}.result-icon{margin-bottom:1rem;font-size:3rem}.result-card h2{font-family:var(--font-display);margin-bottom:1rem;font-size:2rem}.result-message{color:var(--text-secondary);margin-bottom:1rem}.result-detail{color:var(--text-primary);margin-bottom:1rem}.result-detail--hint{color:var(--text-muted);font-style:italic}.accusation-evidence-hint{color:var(--text-muted);margin:-.25rem 0 .65rem;font-size:.85rem}.evidence-check--required span{font-weight:500}.evidence-required-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-amber);vertical-align:middle;background:#d4a05433;border-radius:3px;margin-left:.4rem;padding:.1rem .35rem;font-size:.65rem;display:inline-block}.lobby-briefing-panel{max-width:1100px;margin:0 auto 1rem}.lobby-briefing-excerpt{background:var(--bg-elevated);border-left:3px solid var(--accent-amber);border-radius:var(--radius);color:var(--text-secondary);margin-bottom:.75rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.5}.lobby-briefing-excerpt p{margin:0 0 .5rem}.lobby-briefing-excerpt p:last-child{margin-bottom:0}.result-hint{color:var(--text-muted);margin-bottom:1.5rem;font-size:.85rem;font-style:italic}.scene-image{border-radius:var(--radius);margin-bottom:1rem;position:relative;overflow:hidden}.scene-image img{object-fit:cover;width:100%;height:100%;display:block}.scene-image-overlay{pointer-events:none;background:linear-gradient(#0000 40%,#0a0e14d9 100%);position:absolute;inset:0}.scene-image-briefing{height:160px}.scene-image-location{height:140px}.scene-image-result,.scene-image-locked{height:120px}.case-card{background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);text-align:left;margin-bottom:1.5rem;overflow:hidden}.case-card-image{height:140px;position:relative;overflow:hidden}.case-card-image img{object-fit:cover;width:100%;height:100%}.case-card--scheduled .case-card-image img,.dashboard-case-card--scheduled .case-card-image img{filter:grayscale(.35)brightness(.55)}.case-card-lock-overlay{background:linear-gradient(#080a1059,#080a10d1);justify-content:center;align-items:center;padding:.75rem;display:flex;position:absolute;inset:0}.case-release-countdown{text-align:center;color:var(--text-primary)}.case-release-countdown--compact .case-release-label{font-size:.75rem}.case-release-badge{background:color-mix(in srgb, var(--accent-amber) 22%, transparent);border:1px solid color-mix(in srgb, var(--accent-amber) 55%, var(--border));color:var(--accent-amber);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-bottom:.45rem;padding:.2rem .55rem;font-size:.68rem;font-weight:700;display:inline-block}.case-release-timer{color:var(--text-primary);margin:0;font-size:.95rem}.case-release-timer strong{color:var(--accent-amber);font-family:var(--font-mono);font-weight:600}.case-release-label{color:var(--text-secondary);margin:.35rem 0 0;font-size:.8rem}.case-scheduled-hint{color:var(--accent-amber)}.dashboard-case-card--scheduled{border-color:color-mix(in srgb, var(--accent-amber) 35%, var(--border))}.case-card-body{padding:1rem 1.25rem}.case-card-body h2{font-family:var(--font-display);margin-bottom:.25rem;font-size:1.25rem}.case-card-meta{color:var(--accent-amber);margin-bottom:.5rem;font-size:.8rem}.case-card-desc{color:var(--text-secondary);margin-bottom:.75rem;font-size:.85rem}.home-case-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;max-width:1100px;margin-bottom:1.5rem;margin-left:auto;margin-right:auto;display:grid}.home-case-grid .case-card{margin-bottom:0}.home-case-grid .case-card-actions{margin-top:.25rem}.dashboard-cases{width:100%;margin:0 0 1.5rem;padding:0}.dashboard-cases h2{font-family:var(--font-display);margin-bottom:1rem;font-size:1.35rem}.case-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1rem;width:100%;display:grid}.dashboard-case-card{background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);overflow:hidden}.dashboard-case-card h3{font-family:var(--font-display);margin-bottom:.25rem;font-size:1.1rem}.case-card-victim{color:var(--text-secondary);margin-bottom:.75rem;font-size:.85rem}.case-card-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.case-select-panel{max-width:1100px;margin:0 auto 1rem}.case-select-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.case-select-chip{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);border-radius:999px;padding:.45rem .85rem;font-size:.85rem;text-decoration:none;transition:border-color .15s,color .15s;display:inline-block}.case-select-chip:hover,.case-select-chip.active{border-color:var(--accent-amber);color:var(--accent-amber)}.title-actions{flex-direction:column;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.attempts-badge{text-transform:uppercase;letter-spacing:.08em;background:var(--bg-elevated);border:1px solid var(--border);color:var(--accent-amber);border-radius:999px;padding:.35rem .65rem;font-size:.75rem;display:inline-block}.attempts-badge-inline{margin-bottom:1rem}.briefing-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.briefing-actions .btn-large{flex:1;min-width:180px}.victim-box{align-items:center;gap:1rem;display:flex}.victim-scene-thumb{object-fit:cover;border-radius:var(--radius);flex-shrink:0;width:72px;height:72px}.header-attempt{color:var(--text-muted);font-size:.7rem}.suspect-portrait{object-fit:cover;border-radius:var(--radius);width:100%;height:120px;margin-bottom:.75rem}.clue-card{align-items:flex-start;gap:.75rem;display:flex}.clue-thumb,.evidence-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:56px;height:56px}.locked-screen{background:var(--bg-dark);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.locked-card{background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);text-align:center;width:100%;max-width:480px;padding:1.5rem}.locked-card h2{font-family:var(--font-display);margin-bottom:.5rem}.locked-case-title{color:var(--accent-amber);margin-bottom:1rem}.locked-message{color:var(--text-secondary);margin-bottom:1rem}.attempts-summary{color:var(--text-muted);margin-bottom:1.5rem;font-size:.85rem}.quit-warning{color:var(--accent-amber);margin-bottom:1rem;font-size:.9rem}.result-actions{flex-direction:column;align-items:center;gap:.75rem;display:flex}.result-actions .btn{width:100%;max-width:280px}.auth-screen{background:var(--bg-dark);width:100%;min-height:100dvh;padding:2rem clamp(1rem,3vw,2rem)}.dashboard-screen{background:var(--bg-dark);flex-direction:column;width:100%;min-height:100dvh;padding:0;display:flex}.dashboard-inner{box-sizing:border-box;flex:1;width:100%;max-width:min(1200px,100%);margin:0 auto;padding:1.25rem clamp(1rem,3vw,2rem) 2rem}.dashboard-screen .tip-jar-banner{margin-bottom:1.25rem;margin-left:-1rem;margin-right:-1rem}.dashboard-screen .dashboard-header{padding-top:1.5rem}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);max-width:400px;margin:4rem auto;padding:2rem}.auth-card h1,.dashboard-header h1{font-family:var(--font-display);margin-bottom:.5rem}.auth-subtitle,.dashboard-header p{color:var(--text-secondary);margin-bottom:1.5rem}.auth-card label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:1rem;font-size:.8rem;display:block}.auth-card input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);margin-top:.35rem;padding:.65rem .75rem;font-size:1rem;display:block}.auth-error{color:var(--accent-red);margin-bottom:1rem;font-size:.9rem}.auth-success{color:var(--accent-green);margin-bottom:1rem;font-size:.9rem}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.9rem}.auth-footer a{color:var(--accent-amber)}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.dashboard-nav{flex-wrap:wrap;gap:.5rem;display:flex}.dashboard-grid,.teams-grid,.lobby-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;width:100%;display:grid}.dashboard-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.dashboard-panel h2{font-family:var(--font-display);margin-bottom:.75rem;font-size:1.15rem}.panel-desc,.panel-meta{color:var(--text-secondary);margin-bottom:.75rem;font-size:.9rem}.panel-warning{color:var(--accent-red);margin-bottom:.75rem;font-size:.85rem}.leaderboard-list{list-style:none}.leaderboard-list li{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.6rem 0;font-size:.9rem;display:flex}.leaderboard-list .rank{color:var(--accent-amber);min-width:2rem;font-weight:700}.leaderboard-list .name{flex:1}.leaderboard-list .score{color:var(--text-muted)}.badge-solved{text-transform:uppercase;color:var(--accent-green);background:#4a9e6e33;border-radius:3px;padding:.15rem .4rem;font-size:.65rem}.team-list{flex-direction:column;gap:.75rem;display:flex}.team-row{background:var(--bg-elevated);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.team-meta{color:var(--text-muted);margin-top:.25rem;font-size:.8rem}.team-meta code{color:var(--accent-amber)}.roster-list{margin-bottom:1rem;list-style:none}.roster-list li{align-items:center;gap:.5rem;padding:.4rem 0;font-size:.9rem;display:flex}.roster-list li.offline{opacity:.5}.status-dot{background:var(--accent-green);border-radius:50%;width:8px;height:8px}.roster-list li.offline .status-dot{background:var(--text-muted)}.chat-panel{flex-direction:column;min-height:320px;display:flex}.chat-messages{flex:1;max-height:240px;margin-bottom:.75rem;padding-right:.25rem;overflow-y:auto}.chat-message{border-bottom:1px solid var(--border);flex-direction:column;gap:.15rem;padding:.5rem 0;font-size:.85rem;display:flex}.chat-message strong{color:var(--accent-amber);font-size:.75rem}.chat-input{gap:.5rem;display:flex}.chat-input input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-mono);flex:1;padding:.5rem .75rem}.team-play-layout{grid-template-columns:1fr 300px;min-height:100vh;display:grid}.team-play-layout .investigation-screen{min-height:auto}@media (width<=900px){.team-play-layout{grid-template-columns:1fr}.chat-panel{z-index:40;border-radius:0;max-height:200px;position:fixed;bottom:56px;left:0;right:0}}.pin-hit-area{fill:#0000;pointer-events:all}.map-pin{cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}.map-pin:focus,.map-pin:focus-visible,.map-pin:focus-within,.pin-hit-area,.pin-hit-area:focus,.pin-hit-area:focus-visible{outline:none}.map-pin:has(.pin-hit-area:focus-visible):not(.selected) .pin-select-ring{opacity:.95}.btn,.tab,.motive-option,.evidence-check,.map-pin{touch-action:manipulation}@media (width<=768px){:root{--radius:6px}html,body,#root,.app{min-height:100dvh}.game-title{font-size:clamp(2.5rem,12vw,3.5rem)}.title-content{padding:1.25rem .85rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.title-screen .title-content{padding-top:1rem}.title-screen{padding-bottom:0}.game-tagline{margin-bottom:1rem;font-size:1rem}.title-divider{margin-bottom:1rem}.title-meta{padding:0 .25rem;font-size:.75rem;line-height:1.5}.title-description{font-size:.9rem}.btn{width:100%;max-width:320px;min-height:44px}.case-card-actions .btn,.case-card-actions .btn-small,.dashboard-nav .btn{width:100%;max-width:none}.case-card-actions{flex-direction:column;align-items:stretch;gap:.45rem}.home-case-grid{grid-template-columns:1fr;gap:.85rem;margin-bottom:1.25rem}.case-grid{grid-template-columns:1fr}.case-card,.dashboard-case-card{border-radius:calc(var(--radius) * 1.5)}.case-card-body{padding:.85rem 1rem 1rem}.case-card-body h2{font-size:1.1rem}.dashboard-screen{min-height:100dvh}.dashboard-inner{padding:1rem .85rem;padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}.dashboard-screen .tip-jar-banner{padding-left:calc(.85rem + env(safe-area-inset-left));padding-right:calc(.85rem + env(safe-area-inset-right));margin-bottom:1rem;margin-left:-.85rem;margin-right:-.85rem}.dashboard-screen .dashboard-header{padding-top:1rem}.dashboard-header{flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:1rem}.dashboard-header h1{font-size:1.65rem}.dashboard-header p{margin-bottom:0}.dashboard-nav{grid-template-columns:1fr 1fr;gap:.5rem;width:100%;display:grid}.dashboard-cases{margin-bottom:1rem;padding:0}.dashboard-cases h2{font-size:1.2rem}.dashboard-grid,.teams-grid,.lobby-grid{grid-template-columns:1fr;gap:.85rem}.auth-screen{min-height:100dvh;padding:1rem .85rem;padding-top:calc(1rem + env(safe-area-inset-top));padding-bottom:calc(1rem + env(safe-area-inset-bottom));align-items:flex-start}.auth-card{width:100%;margin:1.5rem auto;padding:1.35rem}.auth-card input,.tip-custom-field input,.purchase-promo-form input,.form-section select,.notes-section textarea{font-size:16px}.tip-preset-btn{min-height:48px;font-size:1rem}.case-release-countdown--compact .case-release-label{display:none}.case-release-timer{font-size:.85rem}.panel-warning,.panel-meta,.case-scheduled-hint{font-size:.8rem}.btn-large{padding:.85rem 1.5rem}.briefing-screen,.result-screen{padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top));padding-bottom:calc(1rem + env(safe-area-inset-bottom));align-items:flex-start}.briefing-card,.result-card{border-radius:var(--radius);padding:1.5rem}.briefing-card h2,.result-card h2{font-size:1.5rem}.game-header{padding:.6rem .75rem;padding-top:calc(.6rem + env(safe-area-inset-top));flex-direction:column;align-items:stretch;gap:.6rem}.header-left{flex-direction:row;justify-content:space-between;align-items:baseline;gap:.5rem}.header-case{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:55%;font-size:.7rem;overflow:hidden}.header-center{text-align:left;order:3}.header-right{order:2;justify-content:space-between;width:100%}.header-right .btn-accent{flex:1;min-height:44px;padding:.5rem .75rem;font-size:.75rem}.investigation-screen{min-height:100dvh;padding-bottom:calc(56px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;overflow-y:auto}.tab-bar{z-index:50;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);background:var(--bg-card);border-bottom:none;position:fixed;bottom:0;left:0;right:0}.tab{border-top:2px solid #0000;border-bottom:none;min-height:48px;padding:.6rem .25rem;font-size:.75rem}.tab.active{border-bottom-color:#0000;border-top-color:var(--accent-amber)}.investigation-content{padding:.75rem;padding-bottom:calc(56px + env(safe-area-inset-bottom) + .75rem);flex-direction:column;flex:1;min-height:0;display:flex;overflow:visible}.map-layout{flex-direction:column;flex:1;grid-template-columns:1fr;gap:.75rem;min-height:0;display:flex}.city-map{flex-shrink:0;width:100%;height:auto;min-height:0}.map-side-panel{flex-direction:column;flex:1;min-height:calc(100dvh - 38vh - 220px);display:flex;overflow:visible}.map-side-panel>.location-panel{flex-direction:column;flex:1;min-height:100%;display:flex}.location-panel.placeholder{justify-content:flex-start;min-height:100%;padding:1.25rem}.location-panel.placeholder .map-tips{flex-direction:column;flex:1;justify-content:center;gap:.35rem;display:flex}.placeholder-lead{font-size:1rem}.map-svg-wrap{aspect-ratio:4/3;min-height:clamp(200px,38vh,360px);max-height:none}.district-filters{padding:.45rem .65rem}.district-chip{align-items:center;min-height:36px;font-size:.7rem;display:inline-flex}.pin-label{font-size:2.6px}.location-panel{min-width:0;padding:1rem 1rem 1.25rem}.clues-found{scroll-margin-bottom:calc(72px + env(safe-area-inset-bottom));padding-bottom:.25rem}.clue-card{margin-bottom:.5rem}.panel-header h3{font-size:1.15rem}.suspect-list{grid-template-columns:1fr}.suspect-header{flex-direction:column;align-items:flex-start;gap:.15rem}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:calc(var(--radius) * 2) calc(var(--radius) * 2) 0 0;max-width:none;max-height:92dvh;padding:1.25rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%;max-width:none}.motive-option{min-height:44px;padding:.65rem .75rem}.evidence-check{min-height:44px;padding:.5rem .25rem}.form-section select{min-height:44px;font-size:1rem}.notes-section textarea{min-height:120px;font-size:16px}.empty-state{padding:1.5rem 1rem;font-size:.9rem}.dashboard-header .btn{text-align:center;justify-content:center;width:100%;max-width:none;min-height:44px}.case-select-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;margin-left:-.15rem;margin-right:-.15rem;padding-bottom:4px;padding-left:.15rem;padding-right:.15rem;overflow-x:auto}.case-select-row::-webkit-scrollbar{display:none}.case-select-chip{flex-shrink:0;align-items:center;min-height:44px;display:inline-flex}.team-row{flex-direction:column;align-items:stretch;gap:.65rem}.team-row .btn{width:100%;max-width:none}.dashboard-panel label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.75rem;font-size:.8rem;display:block}.dashboard-panel label input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);min-height:44px;margin-top:.35rem;padding:.65rem .75rem;font-size:16px;display:block}.dashboard-panel .btn{width:100%;max-width:none}.chat-input input{min-height:44px;font-size:16px}.chat-input .btn{flex-shrink:0;min-width:72px;min-height:44px}.briefing-actions{flex-direction:column}.briefing-actions .btn-large{width:100%;min-width:0;max-width:none}.title-actions .btn{max-width:none}.home-case-grid .case-card--scheduled .case-card-lock-overlay{padding:.5rem}}@media (width<=380px){.progress-stats{font-size:.7rem}.stat-divider{margin:0 .25rem}.game-title{font-size:2.15rem}.case-card-image{height:118px}.dashboard-nav{grid-template-columns:1fr}.tip-jar-fab{width:2.85rem;height:2.85rem}}@media (hover:none) and (pointer:coarse){.map-pin:active .pin-dot{fill:var(--accent-amber)}.btn-primary:active:not(:disabled){background:var(--accent-amber-dim)}}.admin-screen{background:var(--bg-dark);max-width:1400px;min-height:100vh;margin:0 auto;padding:1.5rem}.admin-login-screen .admin-login-card{border-color:var(--accent-amber-dim);max-width:420px}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-header h1{font-family:var(--font-display);font-size:1.75rem}.admin-header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.admin-tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1.5rem;display:flex;overflow-x:auto}.admin-tab{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1rem;font-size:.8rem}.admin-tab:hover{color:var(--text-primary)}.admin-tab.active{color:var(--accent-amber);border-bottom-color:var(--accent-amber)}.admin-content{flex-direction:column;gap:1.5rem;display:flex}.admin-kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.admin-kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.25rem;padding:1rem;display:flex}.admin-kpi-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.7rem}.admin-kpi-value{font-family:var(--font-display);color:var(--accent-amber);font-size:1.75rem}.admin-kpi-sub{color:var(--text-secondary);font-size:.75rem}.admin-panels-row{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.admin-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.admin-panel h2{font-family:var(--font-display);margin-bottom:1rem;font-size:1.1rem}.admin-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-panel-header h2{margin-bottom:0}.admin-webhook-filter-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}.admin-webhook-filter-row label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.admin-date-input{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-primary);font:inherit;border-radius:6px;padding:.4rem .5rem}.admin-webhook-payload{border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;background:#00000059;border-radius:8px;max-height:320px;margin:0;padding:.75rem 1rem;font-size:.72rem;line-height:1.45;overflow:auto}.admin-webhook-payload-row td{background:#00000026}.admin-table{border-collapse:collapse;width:100%;font-size:.85rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .5rem}.admin-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.7rem}.admin-table tr:hover td{background:var(--bg-elevated)}.admin-muted{color:var(--text-muted);font-size:.75rem}.admin-mono{font-family:var(--font-mono);font-size:.8rem}.admin-badge{text-transform:uppercase;letter-spacing:.06em;background:var(--bg-elevated);color:var(--text-secondary);border-radius:999px;padding:.2rem .5rem;font-size:.65rem;display:inline-block}.admin-badge-paid{color:var(--accent-green);background:#4a9e6e33}.admin-badge-created{color:var(--accent-amber);background:#d4a05426}.admin-badge-failed{color:var(--accent-red);background:#c44b4b26}.admin-activity-list{flex-direction:column;gap:.75rem;list-style:none;display:flex}.admin-activity-list li{border-bottom:1px solid var(--border);flex-direction:column;gap:.15rem;padding-bottom:.75rem;font-size:.85rem;display:flex}.admin-activity-list time{color:var(--text-muted);font-size:.75rem}.admin-promo-form{margin-bottom:0}.admin-form-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.admin-form-row label{color:var(--text-secondary);flex-direction:column;flex:1;gap:.35rem;min-width:140px;font-size:.8rem;display:flex}.admin-form-row input,.admin-form-row select,.admin-select{font-family:var(--font-mono);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);padding:.5rem .75rem;font-size:.9rem}.admin-msg{color:var(--accent-green);margin-top:.75rem;font-size:.85rem}.admin-error{margin-bottom:1rem}.admin-denied{text-align:center;max-width:400px;margin:0 auto;padding:4rem 2rem}.admin-denied h1{font-family:var(--font-display);margin-bottom:.5rem}.admin-denied p{color:var(--text-secondary);margin-bottom:1.5rem}.feedback-fab{bottom:max(1.25rem, env(safe-area-inset-bottom));left:max(1.25rem, env(safe-area-inset-left));z-index:110;border:1px solid color-mix(in srgb, var(--accent-amber) 40%, var(--border));background:color-mix(in srgb, var(--bg-card) 90%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.55rem .85rem;font-size:.72rem;transition:border-color .15s,transform .15s;display:inline-flex;position:fixed}.feedback-fab:hover{border-color:var(--accent-amber);transform:translateY(-1px)}.feedback-fab__icon{color:var(--accent-amber);font-size:.95rem}.feedback-modal{width:min(560px,100vw - 2rem);max-width:560px}.feedback-eyebrow{margin-bottom:.35rem}.feedback-form label,.feedback-form fieldset{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border:none;margin-bottom:1rem;padding:0;font-size:.8rem;display:block}.feedback-form legend{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}.feedback-form input,.feedback-form select,.feedback-form textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);margin-top:.35rem;padding:.65rem .75rem;font-size:.95rem;display:block}.feedback-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.feedback-category-chip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.55rem .65rem;display:flex}.feedback-category-chip.active{border-color:var(--accent-amber);color:var(--text-primary);background:color-mix(in srgb, var(--accent-amber) 10%, var(--bg-elevated))}.feedback-category-label{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:700}.feedback-category-hint{color:var(--text-muted);font-size:.68rem}.feedback-actions{flex-wrap:wrap;gap:.75rem;display:flex}.feedback-success{gap:1rem;display:grid}.feedback-page-card{max-width:920px;margin:0 auto}.feedback-page-card h1{font-family:var(--font-display);margin-bottom:.5rem}.feedback-page-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0;display:grid}.feedback-page-panel h2{font-family:var(--font-display);margin-bottom:.75rem;font-size:1.1rem}.feedback-topic-list{color:var(--text-secondary);gap:.65rem;font-size:.9rem;list-style:none;display:grid}.feedback-page-footer{gap:.75rem;display:flex}.title-meta-link{color:var(--accent-amber);text-decoration:none}.title-meta-link:hover{text-decoration:underline}.admin-feedback-message{white-space:pre-wrap;margin:.35rem 0}.admin-feedback-notes{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-width:180px;color:var(--text-primary);font-family:var(--font-mono);margin-bottom:.35rem;padding:.45rem .55rem;font-size:.78rem}.admin-feedback-actions{min-width:200px}@media (width<=768px){.admin-screen{padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top));padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.admin-kpi-grid{grid-template-columns:repeat(2,1fr)}.admin-table{display:block;overflow-x:auto}.feedback-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feedback-page-grid{grid-template-columns:1fr}.feedback-fab{bottom:max(.75rem, env(safe-area-inset-bottom));left:max(.75rem, env(safe-area-inset-left));padding:.5rem .7rem}.feedback-fab__label{display:none}}@media (width>=600px) and (width<=1024px){.home-case-grid,.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.title-content{padding-left:1.25rem;padding-right:1.25rem}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal{max-width:520px;margin:0 auto}.modal-overlay{align-items:center;padding:1rem}}@media (hover:none) and (pointer:coarse){.case-card,.dashboard-case-card{transition:transform .12s,border-color .12s}.case-card:active:not(.case-card--scheduled),.dashboard-case-card:active:not(.dashboard-case-card--scheduled){border-color:color-mix(in srgb, var(--accent-amber) 45%, var(--border));transform:scale(.985)}.tip-preset-btn:active,.case-select-chip:active,.btn:active:not(:disabled){transform:scale(.98)}}.case-music-control{z-index:120;border:1px solid color-mix(in srgb, var(--accent-amber) 35%, var(--border));background:color-mix(in srgb, var(--bg-card) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-muted);font-size:.72rem;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .65rem;transition:border-color .15s,color .15s,background .15s;display:inline-flex;position:fixed;bottom:1rem;left:1rem}.case-music-control:hover{border-color:var(--accent-amber);color:var(--text-primary)}.case-music-control--muted,.case-music-control--blocked{opacity:.85}.case-music-control__label{line-height:1}.competition-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.competition-card .case-card-image{position:relative}.competition-badge{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-amber);background:#000000bf;border-radius:3px;padding:.2rem .45rem;font-size:.62rem;position:absolute;top:.5rem;left:.5rem}.competition-badge--active{color:#7dffb8}.competition-prize{color:var(--accent-amber);margin:.35rem 0;font-size:.85rem}.competition-registered{color:#7dffb8;font-size:.8rem}.competition-detail-grid{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.competition-tagline{color:var(--text-muted);margin:.35rem 0 0;font-size:.95rem}.competition-description{flex-direction:column;gap:.75rem;margin:.75rem 0 1rem;display:flex}.competition-description p{color:var(--text-muted);margin:0;font-size:.92rem;line-height:1.55}.competition-description-note{border:1px solid var(--border);background:#ffffff08;border-radius:.5rem;padding:.65rem .85rem;color:var(--accent-amber)!important;font-size:.82rem!important}.competition-facts{margin:1rem 0;padding:0;list-style:none}.competition-facts li{border-bottom:1px solid var(--border);padding:.35rem 0;font-size:.9rem}.competition-actions{margin-top:1rem}.competition-back{margin-bottom:.5rem;text-decoration:none;display:inline-block}.competition-play-banner{z-index:100;border:1px solid var(--accent-amber);color:var(--accent-amber);pointer-events:none;background:#0a0e14e6;border-radius:999px;padding:.35rem .85rem;font-size:.75rem;position:fixed;top:.5rem;left:50%;transform:translate(-50%)}.leaderboard-list__me{outline:1px solid var(--accent-amber);border-radius:var(--radius)}.admin-form-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.admin-form-span2{grid-column:span 2}.admin-row-selected{background:color-mix(in srgb, var(--accent-amber) 8%, transparent)}.admin-actions-cell{flex-wrap:wrap;gap:.35rem;display:flex}.admin-prize-form{align-items:center;gap:.35rem;display:flex}.admin-prize-form input{min-width:120px;font-size:.8rem}@media (width<=768px){.case-music-control{bottom:calc(.75rem + env(safe-area-inset-bottom,0px));padding:.45rem .55rem;left:.75rem}.case-music-control__label{display:none}.competition-detail-grid,.admin-form-grid{grid-template-columns:1fr}.admin-form-span2{grid-column:span 1}}.case-theme-cyber-noir{--accent-amber:#00e5c7;--accent-amber-dim:#00a896;--accent-green:#39ff14;--accent-red:#f36;--bg-card:#0c1018;--bg-elevated:#121a28;--border:#1e3a5f;--border-light:#2a5080;--font-display:"Orbitron", "Share Tech Mono", sans-serif;--font-mono:"Share Tech Mono", "Courier New", monospace;--cyber-cyan:#00e5c7;--cyber-green:#39ff14;--cyber-magenta:#f0a;--scanline-opacity:.04}.case-theme-cyber-noir.investigation-screen{background:radial-gradient(ellipse at 20% 0%, #00e5c70f 0%, transparent 50%), radial-gradient(ellipse at 80% 100%, #39ff140a 0%, transparent 40%), var(--bg-dark);position:relative}.case-theme-cyber-noir.investigation-screen:before{content:"";pointer-events:none;background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 229, 199, var(--scanline-opacity)) 2px, rgba(0, 229, 199, var(--scanline-opacity)) 4px);z-index:0;position:fixed;inset:0}.case-theme-cyber-noir .game-header,.case-theme-cyber-noir .tab-bar,.case-theme-cyber-noir .investigation-content{z-index:1;position:relative}.case-theme-cyber-noir .header-brand{color:var(--cyber-cyan);font-family:var(--font-mono);letter-spacing:.15em;font-size:.75rem}.case-theme-cyber-noir .header-case{font-family:var(--font-display);color:var(--text-primary)}.case-theme-cyber-noir .timer.urgent .timer-value{color:var(--cyber-magenta);animation:.8s infinite cyber-glitch}@keyframes cyber-glitch{0%,to{opacity:1;transform:translate(0)}25%{opacity:.85;transform:translate(-1px)}75%{opacity:.9;transform:translate(1px)}}.case-theme-cyber-noir .btn-accent{background:linear-gradient(135deg, var(--cyber-cyan), #08a);border-color:var(--cyber-cyan);color:#0a0e14;box-shadow:0 0 12px #00e5c74d}.case-theme-cyber-noir .tab.active{color:var(--cyber-cyan);border-bottom-color:var(--cyber-cyan);text-shadow:0 0 8px #00e5c766}.case-theme-cyber-noir .city-map{border-color:var(--border-light);box-shadow:0 0 24px #00e5c714,inset 0 0 40px #00000080}.case-theme-cyber-noir .map-svg .district-label{fill:var(--cyber-cyan);opacity:.6}.case-theme-cyber-noir .district-zone--active{stroke:var(--cyber-cyan);stroke-width:.35px}.case-theme-cyber-noir .map-pin.selected .pin-dot{fill:var(--cyber-cyan);filter:none}:is(.case-theme-cyber-noir .map-pin.selected .pin-select-ring,.case-theme-cyber-noir .map-pin:has(.pin-hit-area:focus-visible):not(.selected) .pin-select-ring){stroke:var(--cyber-green);stroke-width:.6px;opacity:.95}.case-theme-cyber-noir .map-pin.selected .pin-label{fill:var(--cyber-green)}.case-theme-cyber-noir .street{stroke:#1e4a6f;opacity:.6}.case-theme-cyber-noir .river{stroke:var(--cyber-cyan);opacity:.25}.case-theme-cyber-noir .pin-dot{fill:var(--cyber-cyan)}.case-theme-cyber-noir .map-pin.unvisited .pin-pulse{fill:var(--cyber-cyan);opacity:.15;animation:2s ease-out infinite cyber-pulse}@keyframes cyber-pulse{0%{r:3.5;opacity:.35}to{r:8;opacity:0}}.case-theme-cyber-noir .map-pin.visited .pin-dot{fill:var(--cyber-green)}.case-theme-cyber-noir .district-chip.active{background:var(--cyber-cyan);color:#0a0e14;border-color:var(--cyber-cyan);box-shadow:0 0 8px #00e5c766}.case-theme-cyber-noir .map-tooltip{border-color:var(--cyber-cyan);box-shadow:0 0 16px #00e5c733}.case-theme-cyber-noir .scene-hotspot .hotspot-dot{background:var(--cyber-cyan);box-shadow:0 0 12px var(--cyber-cyan), 0 0 24px #00e5c766}.case-theme-cyber-noir .scene-hotspot .hotspot-ping{border-color:var(--cyber-cyan)}.case-theme-cyber-noir .scene-hotspot .hotspot-label{border:1px solid var(--cyber-cyan);color:var(--cyber-cyan);font-family:var(--font-mono);letter-spacing:.05em;background:#00e5c726;font-size:.65rem}.case-theme-cyber-noir .hotspot-prompt{color:var(--cyber-cyan);font-family:var(--font-mono);letter-spacing:.05em;border-left:3px solid var(--cyber-cyan);margin-bottom:.75rem;padding-left:.75rem;font-size:.75rem}.case-theme-cyber-noir .location-panel{border-color:var(--border-light);box-shadow:0 0 20px #0006}.case-theme-cyber-noir .district-badge{color:var(--cyber-green);background:#39ff1414;border:1px solid #39ff144d;border-radius:3px;padding:.2rem .5rem}.case-theme-cyber-noir .panel-header h3{font-family:var(--font-display);letter-spacing:.05em}.case-theme-cyber-noir .location-progress{font-family:var(--font-mono);color:var(--cyber-cyan);font-size:.7rem}.case-theme-cyber-noir .visited-text{border-left:3px solid var(--cyber-magenta);font-style:normal;font-family:var(--font-mono);background:#ff00aa0d;font-size:.82rem}.case-theme-cyber-noir .scene-preview-label{color:var(--cyber-cyan);border:1px solid var(--cyber-cyan);font-family:var(--font-mono);background:#00e5c733}.case-theme-cyber-noir .forensic-scan-bar{font-family:var(--font-mono);color:var(--cyber-cyan);letter-spacing:.08em;background:#00e5c70f;border:1px solid #00e5c740;border-radius:4px;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.7rem;display:flex}.case-theme-cyber-noir .forensic-scan-bar .scan-dot{background:var(--cyber-green);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite scan-blink}@keyframes scan-blink{0%,to{opacity:1;box-shadow:0 0 6px var(--cyber-green)}50%{opacity:.3}}.case-theme-cyber-noir .clue-card{border:1px solid var(--border-light);background:#0c1018e6;position:relative;overflow:hidden}.case-theme-cyber-noir .clue-card:before{content:"";background:var(--cyber-cyan);width:3px;height:100%;position:absolute;top:0;left:0}.case-theme-cyber-noir .clue-card.new-clue{border-color:var(--cyber-green);animation:.6s ease-out log-recovered;box-shadow:0 0 16px #39ff1433}@keyframes log-recovered{0%{opacity:.5;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.case-theme-cyber-noir .forensic-meta{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.05em;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:.5rem;font-size:.65rem;display:flex}.case-theme-cyber-noir .forensic-meta span{color:var(--cyber-cyan)}.case-theme-cyber-noir .hex-highlight{border:1px solid var(--cyber-green);font-family:var(--font-mono);color:var(--cyber-green);letter-spacing:.12em;text-shadow:0 0 8px #39ff1466;background:#0a140a;border-radius:4px;margin-top:.5rem;padding:.5rem .75rem;font-size:.8rem;display:block}.case-theme-cyber-noir .evidence-board{border-color:var(--border-light)}.case-theme-cyber-noir .evidence-board h3{font-family:var(--font-display);color:var(--cyber-cyan);letter-spacing:.08em;font-size:1rem}.case-theme-cyber-noir .evidence-summary-chip{font-family:var(--font-mono);border:1px solid var(--border-light)}.case-theme-cyber-noir .evidence-item{border:1px solid var(--border);border-left:3px solid var(--cyber-cyan)}.case-theme-cyber-noir .notes-section textarea{border-color:var(--border-light);color:var(--cyber-green);font-family:var(--font-mono);background:#060a10;font-size:.85rem;box-shadow:inset 0 0 20px #00000080}.case-theme-cyber-noir .notes-section textarea::placeholder{color:#39ff1459}.case-theme-cyber-noir .notes-section label{color:var(--cyber-cyan);font-family:var(--font-mono)}.case-theme-cyber-noir .suspects-panel h3{font-family:var(--font-display);color:var(--cyber-cyan)}.case-theme-cyber-noir .suspect-card{border:1px solid var(--border-light);position:relative}.case-theme-cyber-noir .suspect-card.has-evidence{border-color:var(--cyber-magenta);box-shadow:0 0 12px #ff00aa1a}.case-theme-cyber-noir .suspect-card.highlighted{border-color:var(--cyber-cyan);box-shadow:0 0 20px #00e5c740}.case-theme-cyber-noir .suspect-portrait{border:2px solid var(--border-light);filter:contrast(1.1)saturate(.85)}.case-theme-cyber-noir .suspect-evidence-badge{color:var(--cyber-magenta);font-family:var(--font-mono);background:#ff00aa26;border:1px solid #f0a6}.case-theme-cyber-noir .detail-label{color:var(--cyber-cyan);font-family:var(--font-mono);letter-spacing:.1em;font-size:.7rem}.case-theme-cyber-noir .location-panel.placeholder{font-style:normal;font-family:var(--font-mono);color:var(--text-secondary);flex-direction:column;align-items:stretch;gap:1rem}.case-theme-cyber-noir .placeholder-lead{font-family:var(--font-display);color:var(--cyber-cyan);letter-spacing:.02em;font-size:1.05rem}.case-theme-cyber-noir .map-tips{padding:0;list-style:none}.case-theme-cyber-noir .map-tips li{padding:.35rem 0 .35rem 1.25rem;font-size:.8rem;position:relative}.case-theme-cyber-noir .map-tips li:before{content:">";color:var(--cyber-cyan);position:absolute;left:0}.case-theme-cyber-noir.briefing-screen .briefing-card{border-color:var(--border-light);box-shadow:0 0 40px #00e5c714}.case-theme-cyber-noir.briefing-screen .eyebrow{color:var(--cyber-cyan);font-family:var(--font-mono);letter-spacing:.2em}.case-theme-cyber-noir.briefing-screen h2{font-family:var(--font-display);letter-spacing:.05em}.case-theme-cyber-noir .case-dossier-header{font-family:var(--font-mono);grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem;font-size:.75rem;display:grid}.case-theme-cyber-noir .dossier-field{border:1px solid var(--border);background:#00e5c70d;border-radius:4px;padding:.5rem .75rem}.case-theme-cyber-noir .dossier-field .label{color:var(--cyber-cyan);letter-spacing:.1em;margin-bottom:.2rem;font-size:.65rem;display:block}.case-theme-cyber-noir .victim-box{border-color:var(--cyber-magenta);background:#ff00aa0a}.case-theme-cyber-noir .accusation-modal h2{font-family:var(--font-display);color:var(--cyber-cyan)}.case-theme-cyber-noir .motive-option.selected{border-color:var(--cyber-cyan);background:#00e5c714}.case-theme-cyber-noir .implicates-link{color:var(--cyber-magenta)}.case-theme-cyber-noir .implicates-link:hover{color:var(--cyber-cyan)}.case-theme-cyber-noir .investigation-hud{border-bottom:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);background:#00e5c70a;flex-wrap:wrap;gap:.75rem 1rem;width:100%;padding:.4rem clamp(1rem,2.5vw,1.5rem);font-size:.6rem;display:flex}@media (width<=768px){.case-theme-cyber-noir .investigation-hud{gap:.35rem .65rem;padding:.35rem .6rem;font-size:.55rem}.case-theme-cyber-noir .investigation-hud span:nth-child(n+3){display:none}}.case-theme-cyber-noir .investigation-hud span{color:var(--cyber-cyan)}.case-theme-cyber-noir .investigation-hud .hud-status-secure{color:var(--cyber-green)}body{margin:0}
