:root{--canvas:#edf3f7;--surface:#fbfcfd;--ink:#101a1f;--muted:#5f6d75;--line:#b7c6cf;--night:#101f24;--rust:#cb593d;--amber:#efb349;--cyan:#52bdc5;--font-ui:Aptos, "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--weight-regular:400;--weight-medium:550;--weight-semibold:650;--weight-bold:780;background:var(--canvas);color:var(--ink);font-family:var(--font-ui);font-synthesis:none}*{box-sizing:border-box}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}body{background:radial-gradient(circle at 8% 0,#ffffffe6,#0000 34rem),linear-gradient(135deg,#f2f7fa,#e8f0f5);min-width:320px;margin:0}button,select{font:inherit}button:focus-visible,.case-menu:focus-within{outline:3px solid var(--amber);outline-offset:2px}.case-app{max-width:1280px;min-height:100dvh;margin:0 auto;padding:.65rem 1rem 1rem}.case-header{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.3rem 1rem;min-height:62px;padding-bottom:.55rem;display:grid;position:relative}.brand-wordmark{object-fit:contain;width:clamp(8.4rem,15vw,11rem);height:auto;display:block}.case-heading{min-width:0}.case-heading h1{font-size:clamp(1.15rem,2.2vw,1.6rem);font-weight:var(--weight-bold);text-overflow:ellipsis;white-space:nowrap;margin:0;line-height:1.05;overflow:hidden}.case-heading p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:.16rem 0 0;padding-bottom:.06rem;font-size:.69rem;line-height:1.35;overflow:hidden}.header-actions{gap:.35rem;display:flex}.header-icon{background:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:1.05rem;font-weight:850;display:flex;position:relative}.header-icon:disabled{cursor:not-allowed;opacity:.34}.header-check:not(:disabled){background:var(--amber);border-color:#d8931f}.case-menu{overflow:hidden}.header-hint{border:1px solid #dfb65d;border-left:3px solid var(--amber);z-index:30;background:#fff7df;border-radius:0 0 .35rem .35rem;align-items:center;gap:.5rem;padding:.42rem .5rem;font-size:.72rem;line-height:1.3;display:flex;position:absolute;top:100%;left:0;right:0;box-shadow:0 .35rem .8rem #101f242e}.header-hint strong{color:#93421f;letter-spacing:.035em;text-transform:uppercase;flex:none;font-size:.65rem}.header-hint span{flex:1}.header-hint button{color:var(--night);cursor:pointer;background:0 0;border:0;flex:none;width:44px;height:44px;padding:0;font-size:1rem;font-weight:900}.header-hint .hint-more{border:1px solid #9a6b2f;border-radius:.25rem;width:auto;height:44px;padding:0 .45rem;font-size:.65rem}.library-backdrop,.solve-backdrop{z-index:100;background:#091418c2;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.case-library{background:#f5f8fa;border:1px solid #8ca0aa;border-radius:.8rem;width:100%;max-width:1060px;max-height:calc(100dvh - 2rem);padding:1rem;overflow:auto;box-shadow:0 1.3rem 4rem #00000061}.case-library>header{border-bottom:1px solid var(--line);z-index:5;background:#f5f8fa;justify-content:space-between;align-items:center;margin:-1rem -.1rem .8rem;padding:1rem .2rem .7rem;display:flex;position:sticky;top:-1rem}.case-library>header span{gap:.1rem;display:grid}.case-library h2{margin:0;font-size:1.35rem;line-height:1}.case-library small,.library-card-kicker{color:var(--rust);letter-spacing:.1em;text-transform:uppercase;font-size:.58rem;font-weight:850}.case-library>header button,.solve-close{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:1.2rem;font-weight:900;display:flex}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.library-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;border-radius:.55rem;grid-template-columns:112px minmax(0,1fr);align-items:stretch;min-height:118px;padding:.38rem;display:grid;overflow:hidden}.library-card:hover{border-color:var(--cyan);transform:translateY(-1px);box-shadow:0 .35rem 1rem #1e4a5624}.library-card.is-current{border:2px solid var(--amber);padding:calc(.38rem - 1px)}.library-mini-board{aspect-ratio:1;background:var(--night);border:2px solid var(--night);object-fit:cover;width:108px;display:block;overflow:hidden}.library-card-copy{align-content:center;gap:.18rem;min-width:0;padding:.2rem .35rem .2rem .55rem;display:grid}.library-card-copy strong{font-size:.9rem;line-height:1.05}.library-card-copy>span:not(.library-card-kicker):not(.progress-badge){color:var(--muted);font-size:.66rem}.progress-badge{border-radius:999px;justify-self:start;margin-top:.16rem;padding:.16rem .4rem;font-size:.6rem;font-weight:850}.progress-badge.is-new{color:#52656e;background:#e7eef2}.progress-badge.is-in-progress{color:#8a5815;background:#fff0c9}.progress-badge.is-solved{color:#246b3c;background:#d9f0de}.tutorial-card{background:linear-gradient(145deg,#fff7df,#f4e0ac)}.tutorial-card-art{background:var(--night);color:#fff;border-radius:.35rem;justify-content:center;align-items:center;gap:.4rem;width:108px;font-size:1.55rem;font-weight:900;display:flex}.tutorial-card-art b{color:var(--amber);font-size:2rem}.load-screen{text-align:center;align-content:center;justify-items:center;min-height:100dvh;padding:2rem;display:grid}.load-screen img{width:min(70vw,260px);height:auto;margin-bottom:1.2rem}.load-screen h1{margin:0;font-size:1.35rem}.load-screen p{color:var(--muted);margin:.5rem 0}.load-screen button{background:var(--amber);cursor:pointer;border:1px solid #c98922;border-radius:.35rem;min-height:42px;margin-top:.6rem;padding:.45rem 1rem;font-weight:850}.load-spinner{border:3px solid var(--line);border-top-color:var(--rust);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.load-deduction{align-items:center;gap:.48rem;display:flex}.load-deduction b{color:var(--night);font-size:1.15rem}.load-deduction i{background:var(--amber);opacity:.35;border-radius:50%;width:.36rem;height:.36rem;animation:1.05s ease-in-out infinite deduction-pulse}.load-deduction i:nth-child(3){animation-delay:.14s}.load-deduction i:nth-child(4){animation-delay:.28s}@keyframes deduction-pulse{50%{opacity:1;transform:translateY(-2px)}}.case-transition{z-index:500;background:#e8f1f6d1;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.case-transition>div{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;background:#fbfcfdf0;border:1px solid #a9bbc5;border-radius:.8rem;place-items:center;gap:.22rem;width:300px;max-width:calc(100vw - 2rem);padding:1.15rem 1.6rem 1.25rem;animation:.18s ease-out both case-transition-in;display:grid;box-shadow:0 1.2rem 3.5rem #101f2433}.case-transition img{width:150px;height:auto;margin-bottom:.45rem}.case-transition small{color:var(--rust);letter-spacing:.13em;text-transform:uppercase;font-size:.58rem;font-weight:900}.case-transition strong{font-size:1rem;line-height:1.15}.case-transition span{color:var(--muted);font-size:.7rem}@keyframes case-transition-in{0%{opacity:0;transform:translateY(6px)scale(.985)}}@media (prefers-reduced-motion:reduce){.load-deduction i,.case-transition>div{animation:none}}.pwa-notice{background:var(--night);border:1px solid #496069;border-left:4px solid var(--amber);color:#f7fafb;z-index:300;border-radius:.45rem;align-items:center;gap:.7rem;width:max-content;max-width:calc(100vw - 1.2rem);padding:.6rem .7rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 .75rem 2rem #09141847}.pwa-notice>span{color:#c8d4d9;min-width:0;font-size:.7rem;line-height:1.25;display:grid}.pwa-notice b{color:#fff;font-size:.78rem}.pwa-notice>button{background:var(--amber);color:var(--night);cursor:pointer;border:0;border-radius:.28rem;flex:none;min-height:34px;padding:.35rem .7rem;font-size:.72rem;font-weight:900}.pwa-notice>.pwa-dismiss{color:#fff;background:0 0;width:32px;min-height:32px;padding:0;font-size:1.1rem}.pwa-notice.is-offline{border-left-color:var(--cyan)}.device-check-page{max-width:1040px;margin:0 auto;padding:1rem 1.1rem 3rem}.device-check-header{border-bottom:1px solid var(--line);grid-template-columns:132px 1fr auto;align-items:center;gap:.8rem;padding-bottom:.7rem;display:grid}.device-check-header img{width:122px;display:block}.device-check-header small,.device-auto-panel small,.device-hold-panel>small,.device-manual-panel>small{color:var(--rust);letter-spacing:.12em;text-transform:uppercase;font-size:.62rem;font-weight:900}.device-check-header h1,.device-check-page h2{margin:0}.device-check-header h1{font-size:1.5rem;line-height:1.05}.device-check-header button,.device-section-heading button,.device-check-actions button{background:var(--night);border:1px solid var(--night);color:#fff;cursor:pointer;border-radius:.35rem;min-height:44px;padding:.5rem .8rem;font-weight:850}.device-gate{border:1px solid;border-left-width:5px;border-radius:.5rem;justify-content:space-between;align-items:center;gap:1rem;margin:.8rem 0;padding:.65rem .75rem;display:flex}.device-gate>div{gap:.08rem;display:grid}.device-gate strong{font-size:.92rem}.device-gate span{font-size:.7rem}.device-gate.is-pending{background:#fff5d8;border-color:#d19a32}.device-gate.is-pass{background:#e5f5e9;border-color:#42a360}.device-gate.is-fail{background:#ffebe5;border-color:#cf5c3f}.device-check-intro,.device-auto-panel,.device-hold-panel,.device-manual-panel{border:1px solid var(--line);background:#fbfcfde6;border-radius:.55rem;margin-top:.7rem;padding:.8rem}.device-check-intro h2,.device-auto-panel h2,.device-hold-panel h2,.device-manual-panel h2{font-size:1.1rem}.device-check-intro p,.device-hold-panel p,.device-check-actions p{color:var(--muted);font-size:.75rem;line-height:1.45}.device-check-intro label{gap:.25rem;max-width:560px;font-size:.72rem;font-weight:850;display:grid}.device-check-intro input{font:inherit;background:#fff;border:1px solid #81949e;border-radius:.3rem;min-height:44px;padding:.45rem .55rem}.device-section-heading{justify-content:space-between;align-items:center;display:flex}.device-section-heading button{color:var(--night);background:0 0}.device-facts{grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;margin:.65rem 0;display:grid}.device-facts div{background:#edf3f7;border-radius:.35rem;gap:.08rem;min-width:0;padding:.45rem;display:grid}.device-facts dt{color:var(--muted);text-transform:uppercase;font-size:.58rem;font-weight:800}.device-facts dd{overflow-wrap:anywhere;margin:0;font-size:.72rem;font-weight:800}.device-auto-panel details{color:var(--muted);font-size:.68rem}.device-auto-panel details p{overflow-wrap:anywhere}.hold-test{color:var(--night);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:#edf3f7;border:2px solid #6d828c;border-radius:.65rem;place-items:center;gap:.18rem;width:100%;min-height:96px;margin-top:.6rem;padding:.8rem;display:grid}.hold-test strong{font-size:1rem}.hold-test span{color:var(--muted);font-size:.7rem}.hold-test.is-pass{background:#e5f5e9;border-color:#42a360}.hold-test.is-fail{background:#ffebe5;border-color:#cf5c3f}.device-manual-panel fieldset{border:0;border-top:1px solid var(--line);margin:.8rem 0 0;padding:.7rem 0 0}.device-manual-panel legend{color:var(--rust);letter-spacing:.06em;text-transform:uppercase;padding:0 .45rem 0 0;font-size:.7rem;font-weight:900}.device-check-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.5rem 0;display:grid}.device-check-row+.device-check-row{border-top:1px solid #dbe4e9}.device-check-row>div:first-child{gap:.12rem;display:grid}.device-check-row strong{font-size:.78rem}.device-check-row span{color:var(--muted);font-size:.67rem;line-height:1.35}.device-status-options{grid-template-columns:repeat(3,78px);gap:.22rem;display:grid}.device-status-options button{cursor:pointer;background:#fff;border:1px solid #879aa3;border-radius:.3rem;min-height:44px;padding:.25rem;font-size:.64rem;font-weight:800}.device-status-options button[aria-pressed=true]{background:var(--night);border-color:var(--night);color:#fff}.device-status-options button:last-child[aria-pressed=true]{background:#a93f2b;border-color:#a93f2b}.device-check-actions{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;margin-top:.8rem;display:grid}.device-check-actions button:disabled{cursor:not-allowed;opacity:.4}.solve-backdrop{z-index:110}.solve-dialog{text-align:left;background:#f9fbfc;border:1px solid #8599a3;border-radius:.8rem;width:100%;max-width:460px;padding:1.1rem 1.25rem 1.2rem;position:relative;box-shadow:0 1.3rem 4rem #0000006b}.solve-close{position:absolute;top:.75rem;right:.75rem}.solve-dialog>small{color:var(--rust);letter-spacing:.14em;text-align:center;margin-bottom:.6rem;font-size:.62rem;font-weight:900;display:block}.culprit-portrait{aspect-ratio:1;box-shadow:0 0 0 2px var(--night), 0 .45rem 1.2rem #101f2440;background-repeat:no-repeat;border:3px solid #ffffffbf;border-radius:50%;width:112px;margin:0 auto .55rem}.culprit-label{color:var(--rust);letter-spacing:.14em;text-align:center;margin:0;font-size:.56rem;font-weight:900}.solve-title{color:#1f9b4d;letter-spacing:.08em;text-align:center;margin:.05rem 0 .6rem;font-size:2rem;line-height:1}.solve-dialog h3{text-align:center;margin:.18rem 0 .8rem;font-size:1.65rem;line-height:1}.solve-dialog ol{border-left:3px solid var(--cyan);background:#edf3f7;border-radius:.25rem;gap:.42rem;margin:0;padding:.65rem .7rem .65rem 2rem;font-size:.75rem;line-height:1.3;display:grid}.difficulty-feedback{border:0;margin:.75rem 0 0;padding:0}.difficulty-feedback legend{margin-bottom:.35rem;font-size:.72rem;font-weight:850}.difficulty-feedback>div{grid-template-columns:repeat(3,1fr);gap:.35rem;display:grid}.difficulty-feedback button{cursor:pointer;background:#fff;border:1px solid #879aa3;border-radius:.3rem;min-height:44px;padding:.3rem;font-size:.68rem;font-weight:800}.difficulty-feedback button.is-selected{background:#fff1c9;border-color:#ba761f;box-shadow:inset 0 0 0 1px #ba761f}.difficulty-feedback p{color:var(--muted);margin:.3rem 0 0;font-size:.62rem}.solve-actions{grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.85rem;display:grid}.solve-actions button{border:1px solid var(--night);color:var(--night);cursor:pointer;background:0 0;border-radius:.35rem;justify-content:center;align-items:center;gap:.5rem;min-height:42px;padding:.4rem .65rem;font-weight:850;display:flex}.solve-actions button span[aria-hidden=true]{font-size:1.15rem;line-height:1}.solve-actions button.primary{background:var(--night);color:#fff}.library-header-actions{gap:.4rem;display:flex}.library-header-actions button:disabled{cursor:not-allowed;opacity:.38}.tutorial-coach{border:1px solid #e0bc69;border-left:4px solid var(--amber);background:#fff7df;border-radius:.35rem;justify-content:space-between;align-items:center;gap:.7rem;max-width:976px;margin:.55rem auto 0;padding:.48rem .62rem;font-size:.76rem;line-height:1.3;display:flex}.tutorial-coach span{gap:.08rem;display:grid}.tutorial-coach strong{color:#8b4a20;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.tutorial-coach button{background:var(--night);color:#fff;cursor:pointer;border:0;border-radius:.28rem;flex:none;min-height:34px;padding:.35rem .75rem;font-weight:800}.game-stage{grid-template-columns:460px minmax(0,680px);justify-content:center;align-items:start;gap:1rem;width:fit-content;max-width:100%;margin:.75rem auto 0;display:grid}.play-column{width:min(72vh,680px);max-width:100%}.suspect-panel{max-width:100%;margin:0;overflow:hidden}.suspect-list{scrollbar-color:var(--amber) transparent;scrollbar-width:thin;max-width:100%;position:relative;overflow-y:hidden}.suspect-panel.is-sidebar .suspect-list{overflow-x:hidden}.suspect-panel.is-strip .suspect-list{scrollbar-gutter:stable;padding-bottom:10px;overflow-x:auto}.suspect-fallback-grid{pointer-events:none;-webkit-touch-callout:none;display:grid;position:absolute;inset:0 auto auto 0}.suspect-fallback-grid>span{border:2px solid var(--night);border-radius:11px;height:104px;margin:5px 10px 5px 5px;display:block;position:relative;box-shadow:.18rem .2rem #101f2429}.suspect-fallback-grid>span.is-selected{border-width:3px;border-color:#d59125}.suspect-fallback-portrait{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:7px;width:78px;height:92px;display:block;position:absolute;top:4px;left:4px}.pixi-suspect-art{pointer-events:none;position:absolute;inset:0 auto auto 0}.pixi-suspect-art canvas{display:block}.suspect-hit-grid{display:grid;position:absolute;inset:0 auto auto 0}.suspect-hit-grid button{color:var(--ink);cursor:pointer;text-align:center;background:0 0;border:0;padding:0;position:relative}.suspect-hit-grid button:focus-visible{outline:0}.suspect-hit-grid button:focus-visible:after{border:2px solid var(--amber);content:"";pointer-events:none;border-radius:12px;position:absolute;inset:5px 10px 9px 5px}.suspect-card-name{font-size:.91rem;font-weight:var(--weight-bold);letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;background:0 0;border:0;justify-content:flex-start;align-items:center;height:23px;padding:.08rem .35rem;display:flex;position:absolute;top:7px;left:90px;right:8px;overflow:hidden}.suspect-card-name strong{color:var(--suspect-accent,var(--rust));font:inherit}.suspect-card-name>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.victim-badge{border:1px solid var(--rust);color:var(--rust);letter-spacing:.06em;text-transform:uppercase;background:#fbfcfde6;border-radius:999px;padding:.06rem .18rem;font-size:.34rem;font-weight:850;position:absolute;top:80px;left:10px}.suspect-card-clue{color:#26343a;font-size:.68rem;font-weight:var(--weight-medium);overflow-wrap:break-word;text-align:left;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:flex-start;height:65px;max-height:65px;padding:.05rem .35rem;line-height:1.16;display:flex;position:absolute;top:30px;left:90px;right:8px;overflow:hidden}.suspect-card-clue .clue-line{text-align:left;width:100%;max-width:100%;display:block}.suspect-card-clue.has-multiple{justify-content:center;gap:.06rem;font-size:.56rem;line-height:1.14}.suspect-hit-grid button.is-placed:before{-webkit-backdrop-filter:grayscale(.85);backdrop-filter:grayscale(.85);content:"";pointer-events:none;z-index:1;background:#edf3f775;border-radius:7px;width:78px;height:92px;position:absolute;top:11px;left:11px}.suspect-hit-grid button.is-placed .suspect-card-name,.suspect-hit-grid button.is-placed .suspect-card-clue{opacity:.52}.suspect-hit-grid button.is-placed .victim-badge{opacity:.62}.suspect-hit-grid button.is-clue-reference:after{content:"";pointer-events:none;border-left:4px solid #29c2d2e6;border-radius:8px;position:absolute;inset:7px 7px 11px 4px}.case-grid-frame{grid-template-rows:1.2rem minmax(0,1fr);grid-template-columns:1.2rem minmax(0,1fr);width:100%;max-width:100%;display:grid}.column-coordinate-labels{color:#52646a;font-variant-numeric:tabular-nums;letter-spacing:-.02em;grid-area:1/2;font-size:.54rem;font-weight:850;display:grid}.row-coordinate-labels{color:#52646a;font-variant-numeric:tabular-nums;letter-spacing:-.02em;grid-area:2/1;font-size:.54rem;font-weight:850;display:grid}.column-coordinate-labels span,.row-coordinate-labels span{justify-content:center;align-items:center;min-width:0;min-height:0;display:flex}.case-grid{aspect-ratio:1;touch-action:manipulation;background:#1d292d;border:3px solid #1d292d;grid-area:2/2;width:100%;display:grid;position:relative;overflow:hidden;box-shadow:.35rem .42rem #101f2429,0 .9rem 2rem #1a2b321f;container-type:inline-size}.case-grid,.suspect-panel,.grid-cell,.suspect-hit-grid button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.grid-cell{color:var(--ink);cursor:pointer;border:0;justify-content:center;align-items:center;min-width:0;min-height:0;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:inset -.6px -.6px #0f1d2121}.grid-cell:disabled{cursor:default}.grid-cell:not(:disabled):active{filter:brightness(1.06)}.grid-cell:focus-visible{z-index:5;outline:0;box-shadow:inset -.6px -.6px #0f1d2121,inset 0 0 0 2px #101f2485}.floor-material-detail{opacity:.86;pointer-events:none;z-index:0;position:absolute;inset:0}.grid-cell.is-clue-reference-cell:before{content:"";pointer-events:none;z-index:1;background:#3dcadb40;position:absolute;inset:0}.ambient-detail{pointer-events:none;z-index:0;display:block;position:absolute}.room-boundary-overlay{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.room-boundary-segment{fill:none;stroke:#202a2d;stroke-linecap:butt;stroke-width:3px;vector-effect:non-scaling-stroke}.room-boundary-junction{pointer-events:none;z-index:5;background:#202a2d;width:3px;height:3px;display:block;position:absolute;transform:translate(-50%,-50%)}.room-label-overlay{color:#f8fbfc;font-family:"Arial Narrow", "Avenir Next Condensed", var(--font-ui);letter-spacing:.01em;pointer-events:none;text-shadow:-1px -1px #121f23db,1px -1px #121f23db,-1px 1px #121f23db,1px 1px #121f23db;text-transform:uppercase;z-index:6;align-items:end;padding:0 .18rem .18rem;font-size:.68rem;font-weight:900;line-height:.92;display:flex;position:absolute;overflow:hidden}.room-label-text{white-space:normal;max-width:100%;display:block}.room-label-overlay.is-clue-reference .room-label-text{color:#152a30;text-shadow:none;background:#a7e8efe6;border-radius:.18rem;padding:.08rem .16rem}.case-grid.size-8 .room-label-overlay{font-size:.6rem}.case-grid.size-10 .room-label-overlay{letter-spacing:0;font-size:.57rem}.object-cell{cursor:default}.furnishing-overlay{pointer-events:none;z-index:2;display:block;position:absolute}.furnishing-overlay.role-boundary-anchor{z-index:3}.furnishing-art{filter:drop-shadow(.08rem .12rem .08rem #0f141259);pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:contain;width:100%;height:100%;display:block;position:relative}.placed-person-sprite{aspect-ratio:1;z-index:4;width:82%;height:auto;display:block;position:relative}.placed-person-frame{border:2px solid #ffffff8f;border-radius:50%;display:block;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 .7rem #ffffff40,0 .16rem .3rem #080d0f66}.placed-person-image{max-width:none;display:block;position:absolute}.placed-person-sprite.is-flipped .placed-person-frame{transform:scaleX(-1)}.placed-person-code{aspect-ratio:1;color:var(--rust);background:#f8fbfce0;border:1px solid #1f323847;border-radius:50%;justify-content:center;align-items:center;width:32%;font-size:clamp(.48rem,1.25vw,.7rem);font-weight:950;line-height:1;display:flex;position:absolute;top:-7%;left:-7%;box-shadow:0 .1rem .25rem #09141838}.placed-person-sprite.is-clue-reference:not(.is-confirmed) .placed-person-frame{border-color:#b4f4f9e6;box-shadow:0 0 0 2px #29c2d2e0,0 0 .7rem #29c2d27a}.placed-person-sprite.is-confirmed .placed-person-frame{border-color:#e9fff0;animation:.45s ease-out confirm-person;box-shadow:0 0 0 3px #2cac59,0 0 .8rem #2cac59b8,0 .16rem .3rem #080d0f66}@keyframes confirm-person{0%{box-shadow:0 0 #2cac59e6,0 0 #2cac5900}to{box-shadow:0 0 0 3px #2cac59,0 0 .8rem #2cac59b8,0 .16rem .3rem #080d0f66}}.candidate{color:#24393e;letter-spacing:.06em;z-index:3;background:#f9fcfdb8;border-radius:.28rem;max-width:calc(100% - .45rem);padding:.14rem .2rem;font-size:clamp(.55rem,1.7vw,.9rem);font-weight:900;line-height:1;position:absolute;top:.2rem;right:.2rem;overflow:hidden}.is-auto-excluded:after,.is-manual-cross:after{aspect-ratio:1;color:#10191c;content:"";opacity:.48;pointer-events:none;z-index:4;background:linear-gradient(45deg,#0000 43%,currentColor 44% 56%,#0000 57%),linear-gradient(-45deg,#0000 43%,currentColor 44% 56%,#0000 57%);width:52%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.is-auto-excluded .candidate,.is-manual-cross .candidate{opacity:.18}.game-tools{color:var(--night);background:#f8fbfcf0;border:1px solid #9daeb3;border-radius:.48rem;width:fit-content;margin:.42rem auto 0;padding:.18rem;position:relative;box-shadow:0 .18rem .45rem #101f2429}.mode-row{grid-template-columns:repeat(4,48px);gap:.16rem;display:grid}.game-tools button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:.3rem;justify-content:center;align-items:center;min-height:44px;padding:.2rem;display:flex}.game-tools button b{font-size:1.05rem;line-height:1}.game-tools button.is-active{background:var(--night);color:#f8fbfc}.game-tools button:not(.is-active):not(:disabled):hover{background:#e3ecef}.game-tools button:disabled{cursor:not-allowed;opacity:.35}.status{color:#dce7e9;min-width:0;margin:0;font-size:.7rem;line-height:1.2}.feedback-toast{color:var(--night);white-space:normal;z-index:8;background:#fff7df;border:1px solid #dca23b;border-radius:.32rem;margin:0;padding:.42rem .55rem;font-size:.7rem;line-height:1.25;position:absolute;bottom:calc(100% + .35rem);left:0;right:0}.status-solved{color:#9fe0ad;font-weight:750}.status-incorrect{color:#ffc0aa}@media (width<=1079px){.game-stage{width:100%;margin-top:.5rem;display:block}.suspect-panel{margin-bottom:.45rem}.play-column{width:100%;margin:0 auto}.case-grid-frame{width:min(100%,68vh,680px);margin:0 auto}.game-tools{z-index:20;margin:.35rem auto 0;position:sticky;bottom:.35rem}}@media (width<=760px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=679px){.device-check-page{padding:.55rem .6rem 2rem}.device-check-header{grid-template-columns:100px 1fr}.device-check-header img{width:94px}.device-check-header h1{font-size:1.05rem}.device-check-header button{grid-column:1/-1;width:100%}.device-gate{flex-direction:column;align-items:flex-start;gap:.35rem}.device-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.device-check-row{grid-template-columns:1fr;align-items:stretch}.device-status-options{grid-template-columns:repeat(3,minmax(0,1fr))}.device-check-actions{grid-template-columns:1fr}.device-check-actions button{width:100%}.case-app{padding:.45rem .55rem .1rem}.case-header{grid-template-columns:1fr auto;gap:.3rem .5rem;padding-bottom:.4rem}.brand-wordmark{grid-area:1/1;width:6.5rem}.header-actions{grid-area:1/2;gap:.22rem}.header-icon{width:44px;height:44px;font-size:1rem}.case-heading{grid-area:2/1/auto/-1}.case-heading h1{font-size:.96rem}.case-heading p{font-size:.58rem}.header-hint{font-size:.62rem}.tutorial-coach{margin-top:.3rem;padding:.26rem .4rem;font-size:.62rem}.tutorial-coach strong{font-size:.55rem}.tutorial-coach button{min-height:32px;padding:.3rem .55rem}.tutorial-coach+.game-stage{margin-top:.25rem}.game-tools{padding:.18rem}.mode-row{grid-template-columns:repeat(4,48px);gap:.12rem}.game-tools button{min-height:44px}.status{text-overflow:ellipsis;white-space:nowrap;font-size:.61rem;overflow:hidden}.library-backdrop,.solve-backdrop{padding:.45rem}.case-library{border-radius:.55rem;max-height:calc(100dvh - .9rem);padding:.65rem}.case-library>header{margin-top:-.65rem;padding-top:.65rem;top:-.65rem}.case-library h2{font-size:1.05rem}.library-grid{grid-template-columns:1fr}.library-card{grid-template-columns:86px minmax(0,1fr);min-height:90px}.library-mini-board,.tutorial-card-art{width:82px}.library-card-copy strong{font-size:.82rem}.solve-dialog{padding:.8rem .9rem .9rem}.culprit-portrait{width:88px}.solve-title{margin-bottom:.45rem;font-size:1.55rem}.solve-dialog h3{margin-bottom:.55rem;font-size:1.35rem}.solve-dialog ol{gap:.3rem;padding-top:.5rem;padding-bottom:.5rem;font-size:.68rem}.pwa-notice{width:calc(100vw - 1rem);bottom:.55rem}}@media (width>=1080px) and (height<=720px){.case-app{padding-top:.4rem}.case-header{min-height:54px}.brand-wordmark{width:8.2rem}.game-stage{margin-top:.5rem}.play-column{width:min(72vh,560px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
