:root{--bg:#14120f;--surface:#1f1c18;--surface-2:#29251f;--line:#3a342c;--paper:#efe6d2;--paper-2:#e4d8bd;--ink:#1e1a15;--text:#f2ede4;--muted:#a39b8e;--accent:#d9a441;--accent-2:#f0c46a;--stamp:#b3261e;--chat-in:#2a2622;--chat-out:#1f4d3a;--cctv:#9be59b;--ok:#6fcf8e;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--serif:Georgia, "Noto Serif", serif;--mono:ui-monospace, "Roboto Mono", "SFMono-Regular", Menlo, Consolas, monospace;--title:"Special Elite", "Courier New", var(--mono);--r:12px;--tap:44px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{background:radial-gradient(120% 60% at 50% -10%, #2a231a 0%, transparent 60%), var(--bg);min-height:100vh;color:var(--text);font:16px/1.5 var(--sans);-webkit-tap-highlight-color:transparent;background-attachment:fixed;margin:0;overflow-x:hidden}body.no-scroll{overflow:hidden}#app{max-width:480px;min-height:100vh;margin:0 auto}h1,h2,h3,h4{margin:0;line-height:1.25}p{margin:0 0 .75em}a{color:var(--accent)}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:var(--mono)}.pre{white-space:pre-line}.err{color:#ff8a80}.center-text{text-align:center}.screen{padding:16px}.has-cta .screen,.has-cta>main{padding-bottom:110px}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:90vh;display:flex}.row{align-items:center;gap:10px;display:flex}.row>.btn{flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px}.notice{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:.95rem}.btn{background:var(--accent);color:#1b1408;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:48px;padding:10px 18px;font-weight:700;text-decoration:none;transition:transform 80ms,filter .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-block{width:100%}.row>.btn-narrow{flex:none}.btn-big{min-height:56px;font-size:1.08rem}.btn-ghost{color:var(--text);border:1px solid var(--line);background:0 0}.btn-warn{background:var(--surface-2);color:var(--accent-2);border:1px solid var(--accent)}.btn-pay{animation:2.4s ease-out infinite pulse;box-shadow:0 0 #d9a44199}.muted-dark{opacity:.6;font-weight:500}.icon-btn{min-width:var(--tap);min-height:var(--tap);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;display:inline-flex}.icon-btn:active{background:var(--surface-2)}.link-btn{min-height:var(--tap);color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-items:center;margin-right:16px;padding:0;font-size:.95rem;text-decoration:underline;display:inline-flex}.link-btn.inline{min-height:0;margin:0}.sticky-cta{z-index:20;max-width:480px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 70%, #14120f00);margin:0 auto;position:fixed;bottom:0;left:0;right:0}.topbar{z-index:15;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:4px;min-height:56px;padding:4px 6px;display:flex;position:sticky;top:0}.topbar-title{flex:1;min-width:0;padding:0 6px}.topbar-title h1{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:650;overflow:hidden}.topbar-title p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.78rem;overflow:hidden}.topbar-actions{display:flex}.state{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:14px;padding:48px 16px;display:flex}.state-err{color:var(--text)}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}.skel{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);background-size:200% 100%;border-radius:6px;animation:1.4s linear infinite shimmer}.skel-title{width:75%;height:40px;margin:4px 0 12px}.skel-line{width:95%;height:18px;margin-bottom:22px}.stamp{border:2px solid var(--stamp);color:var(--stamp);font:700 .8rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;opacity:.9;border-radius:4px;padding:6px 8px;display:inline-block}.stamp-tilt{transform:rotate(-6deg)}.stamp-small{padding:3px 6px;font-size:.66rem}.landing{flex-direction:column;min-height:100vh;display:flex}.landing-main{flex:1;padding:8px 20px 24px}.brand{font:.8rem var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}.case-title{font-family:var(--title);letter-spacing:.01em;text-shadow:0 2px 18px #d9a44140;margin-bottom:8px;font-size:2.6rem;font-weight:400}.tagline{color:#e4dccd;margin-bottom:22px;font-size:1.1rem}.how{gap:10px;margin:22px 0 8px;padding:0;list-style:none;display:grid}.how li{padding-left:22px;position:relative}.how li:before{content:"";background:var(--accent);width:8px;height:8px;position:absolute;top:.55em;left:2px;transform:rotate(45deg)}.restore-link{margin:14px 0}.restore-link a{padding:10px 0;display:inline-block}.fiction{color:var(--muted);font-size:.8rem;font-style:italic}.footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);padding:18px 16px 28px;font-size:.8rem}.footer nav{flex-wrap:wrap;justify-content:center;gap:0 4px;margin-bottom:6px;display:flex}.footer a{color:var(--muted);padding:12px 8px;display:inline-block}.haveli{background:linear-gradient(#07070a 0%,#121016 55%,#1b1610 100%);height:230px;position:relative;overflow:hidden}.moon{opacity:.85;border-radius:50%;width:34px;height:34px;position:absolute;top:26px;right:18%;box-shadow:-9px 6px #e8dcc0}.hv-body{background:#0b0a09;border-top:3px solid #17140f;flex-direction:column;justify-content:flex-end;gap:12px;width:250px;height:128px;padding:0 18px 10px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hv-dome{background:#0b0a09;border-radius:50% 50% 0 0/100% 100% 0 0;width:70px;height:46px;position:absolute;top:-44px;left:50%;transform:translate(-50%)}.hv-dome:after{content:"";background:#0b0a09;width:3px;height:16px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.hv-dome-l,.hv-dome-r{width:34px;height:26px;top:-24px}.hv-dome-l{left:14%}.hv-dome-r{left:86%}.hv-row{justify-content:space-between;align-items:flex-end;display:flex}.win{background:#16130f;border-radius:11px 11px 2px 2px;width:22px;height:30px}.win.lit{background:radial-gradient(circle at 50% 70%,#ffd27a,#c9871f 70%);box-shadow:0 0 18px 4px #f0b45059}.win.dim{opacity:.55}.win.flicker{animation:5s infinite flicker}.hv-door{background:#120f0b;border-radius:17px 17px 0 0;width:34px;height:46px;position:relative;overflow:hidden}.door-light{background:#ffcf70;height:3px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 0 12px 4px #ffbe5a8c}.hv-plaque{font:700 .7rem var(--mono);color:#6b5a3c;border:1px solid #3a3022;padding:0 4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.fog{background:linear-gradient(to top, var(--bg), #14120f00);height:60px;position:absolute;inset:auto 0 0}.intro,.cut{min-height:100vh}.thread{flex-direction:column;gap:6px;padding-bottom:120px;display:flex}.chap-card{text-align:center;padding:18px 0 14px}.chap-n{font:.75rem var(--mono);letter-spacing:.25em;text-transform:uppercase;color:var(--accent)}.chap-card h2{font-family:var(--title);margin-top:4px;font-size:1.8rem;font-weight:400}.file-head{background:var(--paper);color:var(--ink);border-radius:6px 6px var(--r) var(--r);margin:4px 0 14px;padding:18px 16px 14px;position:relative;box-shadow:0 6px 20px #00000059}.file-head:before{content:"";background:var(--paper-2);border-radius:6px 6px 0 0;width:90px;height:12px;position:absolute;top:-10px;left:14px}.file-head .stamp{position:absolute;top:14px;right:12px}.file-title{font-family:var(--title);font-size:1.5rem;font-weight:400}.file-progress{color:#5b5040;margin:4px 0 8px;font-size:.9rem}.progress{background:#1e1a1526;border-radius:3px;height:6px;overflow:hidden}.progress span{background:#a87418;height:100%;transition:width .4s;display:block}.ev-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ev-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-height:64px;color:var(--text);align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.ev-item:active{background:var(--surface-2)}.ev-item.unread{border-color:#5a4a2c}.ev-icon{background:var(--surface-2);border-radius:10px;flex:none;place-items:center;width:40px;height:40px;font-size:1.2rem;display:grid}.ev-text{flex-direction:column;flex:1;min-width:0;display:flex}.ev-title{font-weight:600;line-height:1.3}.unread .ev-title{color:#fff}.ev-sub{color:var(--muted);margin-top:2px;font-size:.82rem;line-height:1.35}.dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 8px var(--accent);border-radius:50%;flex:none}.earlier{border:1px solid var(--line);border-radius:var(--r);background:#1f1c1880;margin-top:14px}.earlier summary{min-height:var(--tap);cursor:pointer;color:var(--muted);padding:12px 14px;font-weight:600}.earlier .ev-list{padding:0 8px 8px}.ev-screen{padding-bottom:32px}.ev-nav{gap:10px;margin-top:22px;display:flex}.ev-nav .btn{flex:1}.chat{background:radial-gradient(circle at 20% 10%,#ffffff06 0 2px,#0000 3px) 0 0/22px 22px,#171410;min-height:60vh;margin:-16px -16px 0}.chat-head{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 14px;display:flex}.chat-avatar{width:38px;height:38px;color:var(--accent-2);background:#3b342b;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.chat-head-text{flex:1;min-width:0}.chat-name{font-weight:650}.chat-sub{color:var(--muted);font-size:.78rem}.chat-body{flex-direction:column;gap:3px;padding:12px 10px 18px;display:flex}.chat-date{text-align:center;margin:10px 0}.chat-date span{color:#cfc6b6;background:#2b2620;border-radius:8px;padding:4px 10px;font-size:.75rem;display:inline-block}.chat-system{text-align:center;color:#d8cfbf;background:#d9a4411a;border:1px dashed #d9a44159;border-radius:8px;align-self:center;max-width:88%;margin:8px 0;padding:6px 10px;font-size:.78rem}.bubble{word-wrap:break-word;overflow-wrap:anywhere;border-radius:10px;max-width:84%;padding:7px 10px 5px;position:relative;box-shadow:0 1px 1px #0000004d}.bubble.in{background:var(--chat-in);border-top-left-radius:3px;align-self:flex-start;margin-top:5px}.bubble.out{background:var(--chat-out);border-top-right-radius:3px;align-self:flex-end;margin-top:5px}.bubble.cont{border-radius:10px;margin-top:0}.bubble.wide{width:92%;max-width:92%}.bubble-name{color:var(--accent);margin-bottom:1px;font-size:.8rem;font-weight:700}.bubble-text{white-space:pre-line}.bubble-text.deleted{color:var(--muted);font-style:italic}.bubble-meta{color:#f2ede499;text-align:right;justify-content:flex-end;align-items:center;gap:4px;margin-top:1px;font-size:.68rem;display:flex}.ticks{letter-spacing:-.3em;color:#9a9286;padding-right:.3em;font-size:.78rem}.ticks-read{color:var(--accent-2)}.media{background:#0d0c0a;border-radius:8px;align-items:center;gap:10px;min-height:72px;margin:2px 0 5px;padding:12px;display:flex}.media-icon{background:#ffffff1f;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:.95rem;display:grid}.media-desc{color:#cfc6b6;font-size:.85rem;font-style:italic}.typing{gap:4px;padding:12px 14px;display:flex}.typing span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.2s infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}.pop{animation:.22s ease-out pop}.paper{background:linear-gradient(#00000005 1px, transparent 1px) 0 0 / 100% 28px, var(--paper);color:var(--ink);border-radius:4px;box-shadow:0 8px 24px #0006}.doc{font-family:var(--serif);padding:20px 16px 22px;font-size:1rem;line-height:1.55;position:relative}.doc-kind{font:.65rem var(--mono);letter-spacing:.15em;text-transform:uppercase;color:#8a7c63;position:absolute;top:8px;right:10px}.letterhead{white-space:pre-line;text-align:center;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #8a7c63;margin-bottom:12px;padding:6px 0 8px;font-size:.85rem;font-weight:700}.doc-heading{text-align:center;text-underline-offset:4px;margin:4px 0 14px;font-size:1.2rem;text-decoration:underline}.doc-fields{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:.92rem}.doc-fields th,.doc-fields td{text-align:left;vertical-align:top;border-bottom:1px dotted #b9ab8e;padding:4px 6px}.doc-fields th{color:#4a4033;width:38%;font-weight:600}.doc-section{margin-bottom:12px}.doc-section h4{margin:12px 0 6px;font-size:.98rem}.doc-section p{white-space:pre-line;margin-bottom:8px}.doc-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:18px;display:flex}.signature{border-top:1px solid #8a7c63;margin-left:auto;padding-top:4px;font-size:1.05rem;font-style:italic}.doc-stamp{white-space:pre-line;text-align:center;max-width:60%;line-height:1.3;transform:rotate(-8deg)}.redact{color:#0c0b0a;letter-spacing:-.1em;-webkit-user-select:none;user-select:none;background:#0c0b0a;border-radius:2px}.rec{padding:12px 0 10px;overflow:hidden}.rec-caption{color:var(--accent-2);padding:0 12px 10px;font-size:.82rem;font-weight:700}.tbl-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overflow-x:auto}.tbl{border-collapse:separate;border-spacing:0;min-width:100%;font-size:.8rem}.tbl th,.tbl td{white-space:nowrap;text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.tbl thead th{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.tbl tbody tr:nth-child(2n) td,.tbl tbody tr:nth-child(2n) th{background:#24201b}.tbl tbody tr:nth-child(odd) td,.tbl tbody tr:nth-child(odd) th{background:var(--surface)}.tbl tr>:first-child{z-index:1;border-right:1px solid var(--line);position:sticky;left:0}.tbl thead tr>:first-child{background:var(--surface-2);z-index:2}.tbl tbody th{font-weight:600}.scroll-hint{text-align:right;padding:4px 12px 0;font-size:.72rem}.rec-notes{border-top:1px dashed var(--line);color:#cfc6b6;margin:10px 12px 0;padding:10px 0 0 18px;font-size:.82rem}.rec-notes li{margin-bottom:4px}.bank-head{border-bottom:2px solid #5b4a2a;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:0 12px 8px;display:flex}.bank-name{color:var(--accent-2);font-weight:700}.bank-meta{grid-template-columns:auto 1fr;gap:2px 12px;margin:10px 12px;font-size:.82rem;display:grid}.bank-meta dt{color:var(--muted)}.bank-meta dd{overflow-wrap:anywhere;margin:0}.txns{margin:0;padding:0;list-style:none}.txn{border-top:1px solid var(--line);gap:10px;padding:10px 12px;display:flex}.txn:nth-child(2n){background:#24201b}.txn-main{flex:1;min-width:0}.txn-when{color:var(--muted)}.txn-desc{overflow-wrap:anywhere;font-size:.8rem}.txn-ref{color:#7d766a;overflow-wrap:anywhere;font-size:.7rem}.txn-amt{text-align:right;flex:none;font-size:.88rem}.debit{color:#ff7b72;font-weight:700}.credit{color:var(--ok);font-weight:700}.txn-bal{color:var(--muted);font-size:.7rem}.receipt-wrap{justify-content:center;display:flex}.receipt{color:#222;--zig:radial-gradient(circle at 6px 0, transparent 6px, #f7f4ec 6.5px);background:#f7f4ec;width:100%;max-width:300px;padding:18px 14px 22px;font-size:.82rem;line-height:1.45;box-shadow:0 8px 24px #00000073;-webkit-mask:radial-gradient(circle at 6px 100%,#0000 5px,#000 5.5px) 0 100%/12px 8px repeat-x,linear-gradient(#000,#000) 0 0/100% calc(100% - 7px) no-repeat;mask:radial-gradient(circle at 6px 100%,#0000 5px,#000 5.5px) 0 100%/12px 8px repeat-x,linear-gradient(#000,#000) 0 0/100% calc(100% - 7px) no-repeat}.r-center{text-align:center}.r-shop{text-transform:uppercase;font-size:.95rem;font-weight:700}.r-rule{border:0;border-top:1px dashed #777;margin:8px 0}.r-row{justify-content:space-between;gap:8px;display:flex}.r-item{margin-bottom:6px}.r-total{font-size:.95rem;font-weight:700}.people{gap:12px;margin:0;padding:0;list-style:none;display:grid}.person-top{align-items:center;gap:12px;margin-bottom:8px;display:flex}.person-name{font-size:1.05rem;font-weight:700}.person-role{color:var(--accent);font-size:.85rem}.person-line{color:#ddd5c6;font-size:.92rem}.person-claim{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 8px 8px 0;margin:0;padding:8px 12px;font-size:.92rem;font-style:italic}.claim-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-style:normal;display:block}.silhouette{border:1px solid var(--line);background:radial-gradient(circle at 50% 30%,#3e372e,#24201a);border-radius:50%;flex:none;width:54px;height:54px;position:relative;overflow:hidden}.silhouette.small{width:46px;height:46px}.sil-head{background:#0f0d0b;border-radius:50%;width:34%;height:34%;position:absolute;top:22%;left:50%;transform:translate(-50%)}.sil-body{background:#0f0d0b;border-radius:50% 50% 0 0;width:74%;height:46%;position:absolute;bottom:-20%;left:50%;transform:translate(-50%)}.scene-intro{font-family:var(--serif);background:var(--surface);border-left:3px solid var(--accent);border-radius:0 var(--r) var(--r) 0;padding:12px 14px}.scene-count{margin:4px 0 10px}.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.scene-item{text-align:left;background:repeating-linear-gradient(45deg, #ffffff05 0 6px, transparent 6px 12px), var(--surface);border-radius:var(--r);cursor:pointer;border:1px dashed #5a4a2c;min-height:76px;padding:12px;font-weight:600;position:relative}.scene-item.seen{border-style:solid;border-color:var(--line);color:var(--muted)}.scene-tick{color:var(--accent);font-size:.9rem;position:absolute;bottom:6px;right:8px}.seen .scene-tick{color:var(--ok)}.scene-detail{font-family:var(--serif);font-size:1.02rem;line-height:1.6}.sticky-note{color:#2b250f;background:#f3d86b;margin:0 4px 18px;padding:12px 14px 10px;font-size:.88rem;transform:rotate(-1deg);box-shadow:0 6px 14px #0006}.sticky-note ul{margin:0;padding-left:18px}.cctv-head{color:var(--cctv);margin-bottom:10px;font-size:.85rem}.cctv-list{gap:18px;margin:0;padding:0;list-style:none;display:grid}.cctv-box{aspect-ratio:16/9;background:#050605;border:1px solid #1e241e;border-radius:6px;position:relative;overflow:hidden}.cctv-scene{background:radial-gradient(at 40% 60%,#1d241d 0%,#070807 70%);position:absolute;inset:0}.cctv-stairs{clip-path:polygon(0 100%,100% 100%,100% 0,70% 0);opacity:.7;background:repeating-linear-gradient(170deg,#1a1f1a 0 9px,#0d100d 9px 18px);width:46%;height:70%;position:absolute;bottom:0;left:12%}.cctv-rail{background:#2a322a;width:52%;height:2px;position:absolute;bottom:30%;left:30%;transform:rotate(-32deg)}.cctv-figure{filter:blur(6px);background:#3b3a35;border-radius:40% 40% 10% 10%;width:14%;height:58%;position:absolute;top:26%;left:58%}.cctv-box.blurred .cctv-scene{filter:blur(3px)}.cctv-overlay{color:var(--cctv);text-shadow:0 0 4px #9be59b99;justify-content:space-between;gap:8px;font-size:.72rem;display:flex;position:absolute;top:6px;left:8px;right:8px}.cctv-rec{color:#ff6b6b;text-shadow:none;animation:1.6s infinite blink}.scanlines{pointer-events:none;background:repeating-linear-gradient(#ffffff0a 0 1px,#0000 1px 3px);position:absolute;inset:0}.cctv-label{margin-top:8px;font-weight:650}.cctv-desc,.cctv-caption{color:var(--muted);margin:2px 0 0;font-size:.85rem;font-style:italic}.cctv-caption{color:var(--cctv);margin-top:6px;font-size:.75rem;font-style:normal}.frames-source{font-size:.85rem}.frames-list{gap:22px;margin:0;padding:0;list-style:none;display:grid}.phone-shot{aspect-ratio:9/14;background:#000;border:6px solid #0a0908;border-radius:22px;width:min(100%,270px);margin:0 auto;position:relative;overflow:hidden;box-shadow:0 10px 26px #00000080}.shot-scene{background:radial-gradient(circle at 20% 35%,#ffc8648c 0 3px,#0000 4px),radial-gradient(circle at 40% 33%,#ffc86480 0 3px,#0000 4px),radial-gradient(circle at 60% 35%,#ffc8648c 0 3px,#0000 4px),radial-gradient(circle at 80% 33%,#ffc86480 0 3px,#0000 4px),radial-gradient(at 50% 85%,#3a2a1a 0%,#0000 60%),linear-gradient(#141018,#1d1610 60%,#2a2016);position:absolute;inset:0}.status-bar{z-index:2;color:#fff;background:linear-gradient(#0009,#0000);justify-content:space-between;padding:6px 12px;font-size:.72rem;display:flex;position:absolute;top:0;left:0;right:0}.shot-top{z-index:2;align-items:center;gap:6px;display:flex;position:absolute;top:30px;left:10px}.live-badge{color:#fff;letter-spacing:.06em;background:#e0245e;border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:800}.viewers{color:#fff;background:#00000080;border-radius:4px;padding:2px 6px;font-size:.68rem}.shot-comments{z-index:2;color:#fff;background:linear-gradient(#0000,#000000bf 35%);gap:3px;margin:0;padding:40px 10px 12px;font-size:.8rem;list-style:none;display:grid;position:absolute;bottom:0;left:0;right:0}.shot-comments li{text-shadow:0 1px 2px #000}.frame-desc{color:#cfc6b6;margin:10px 2px 0;font-size:.88rem;font-style:italic}.frame-n{font-style:normal;font:700 .7rem var(--mono);color:var(--accent);text-transform:uppercase;margin-right:4px}.diagram{gap:14px;display:grid}.floor-name{font:700 .8rem var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent-2);margin-bottom:8px}.plan{background:linear-gradient(#d9a4410f 1px,#0000 1px) 0 0/16px 16px,linear-gradient(90deg,#d9a4410f 1px,#0000 1px) 0 0/16px 16px,#15130f;border-radius:8px;position:relative;overflow:hidden}.plan-lines{width:100%;height:100%;position:absolute;inset:0}.ln{stroke:#8f7a52;stroke-width:2px}.ln-service{stroke:#ff9f6b;stroke-dasharray:6 5}.room{cursor:pointer;text-align:center;overflow-wrap:anywhere;background:#2c2720;border:2px solid #8f7a52;border-radius:6px;flex-wrap:wrap;justify-content:center;align-items:center;min-height:52px;padding:6px 4px;font-size:.72rem;font-weight:600;line-height:1.2;display:flex;position:absolute;transform:translate(-50%,-50%)}.room.ghost{color:var(--muted);background:#1a1814;border-style:dotted}.room.service{border-style:dashed;border-color:#ff9f6b}.room.cam{border-color:var(--cctv)}.cam-icon{font-size:.95rem;position:absolute;top:-11px;right:-8px}.routes{gap:4px;margin:10px 0 0;padding:0;font-size:.8rem;list-style:none;display:grid}.routes li{align-items:center;gap:8px;display:flex}.route-line{border-top:2px solid #8f7a52;flex:none;width:22px}.route-line.dashed{border-top:2px dashed #ff9f6b}.legend{margin:0;padding-left:30px;font-size:.85rem}.composite{gap:22px;display:grid}.part-label{font:600 .75rem var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;margin-bottom:8px;display:flex}.part-label span{background:var(--surface-2);border:1px solid var(--line);color:var(--accent);border-radius:4px;padding:2px 6px}.part .chat{border-radius:var(--r);min-height:0;margin:0;overflow:hidden}.sheet-wrap{z-index:50;background:#0009;justify-content:center;align-items:flex-end;animation:.18s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-top:1px solid var(--line);width:100%;max-width:480px;max-height:85vh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;flex-direction:column;animation:.22s ease-out rise;display:flex}.sheet-tall{height:85vh}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 6px 6px 16px;display:flex}.sheet-head h2{font-size:1.05rem}.sheet-body{flex:1;padding:14px 16px 20px;overflow-y:auto}.sheet-sub{color:var(--accent);margin:14px 0 6px;font-size:.9rem}.plain-list{margin:0;padding-left:18px}.notes-pad{resize:none;background:linear-gradient(transparent 27px, #1e1a152e 28px) 0 6px / 100% 28px, var(--paper);width:100%;height:calc(100% - 30px);min-height:240px;color:var(--ink);font:1rem/28px var(--sans);border:0;border-radius:6px;padding:8px 12px}.clues{gap:12px;display:grid}.clue-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.clue-head h3{font-size:1rem}.clue-list{color:var(--accent-2);margin:0 0 10px;padding-left:20px}.clue-list li{margin-bottom:6px}.confirm{background:var(--surface-2);border-radius:10px;padding:12px}.chips{border:0;gap:8px;margin:18px 0 0;padding:0;display:grid}.chips legend{margin-bottom:10px;font-weight:700}.chip{text-align:left;background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:12px;min-height:52px;padding:10px 14px;line-height:1.35}.chip.on{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent);background:#3a2f1b}.suspects{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.suspect{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:6px;min-height:132px;padding:14px 8px 12px;display:flex;position:relative}.suspect.on{border-color:var(--stamp);background:#2c1c19}.suspect-name{font-weight:700}.suspect-role{color:var(--muted);font-size:.75rem}.suspect-stamp{background:#14120fb3;position:absolute;top:8px;right:6px;transform:rotate(10deg)}.cs-head{font-family:var(--serif);margin-bottom:14px;padding:14px 16px}.q{margin:0 0 12px;padding:14px}.q legend{display:contents}.q-n{font:600 .72rem var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;display:block}.q-text{margin:4px 0 10px;font-size:1.05rem;font-weight:700;display:block}.q-wrong{border-color:var(--stamp)}.badge-wrong{color:#ff8a80;border:1px solid var(--stamp);border-radius:4px;margin-top:4px;padding:1px 6px;font-size:.7rem;display:inline-block}.opt{min-height:var(--tap);border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin-top:6px;padding:10px 12px;line-height:1.35;display:flex}.opt.on{border-color:var(--accent);background:#3a2f1b}.opt input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:1px 0 0}.wrong-list ul{color:#ff8a80;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.choice{gap:10px;margin-top:14px;display:grid}.lab-card{font-family:var(--serif);padding:14px;position:relative}.lab-title{font:600 .78rem var(--sans);color:#6b5f4c;margin-bottom:8px}.lab-readable{margin-bottom:8px;font-size:1.35rem;font-weight:700;line-height:1.3}.lab-blurred{margin:0}.blur{filter:blur(5px);-webkit-user-select:none;user-select:none;font-size:1.05rem}.lab-stamp{background:#efe6d2cc;position:absolute;bottom:10px;right:10px;transform:rotate(-10deg)}.paywall{border-color:var(--accent);background:radial-gradient(120% 80% at 50% 0%, #d9a44129, transparent 60%), var(--surface);margin-top:18px;animation:.3s ease-out pop}.pw-headline{font-family:var(--title);margin-bottom:12px;font-size:1.55rem;font-weight:400}.pw-body{gap:6px;margin:0 0 12px;padding-left:18px;display:grid}.pw-price{color:var(--accent-2);margin:6px 0 10px;font-size:2.2rem;font-weight:800}.pw-small{margin-top:10px}.pay-fail{border:1px solid var(--stamp);background:#2c1c19;border-radius:10px;padding:12px}.unlocked .big-head,.notfound .big-head{font-family:var(--title);font-size:2rem;font-weight:400}.unlock-mark{font-size:3rem}.code{letter-spacing:.12em;color:var(--accent-2);background:var(--surface);border:2px dashed var(--accent);-webkit-user-select:all;user-select:all;border-radius:12px;padding:14px 18px;font-size:2.2rem;font-weight:800}.code-note{font-weight:600}.restore{gap:10px;display:grid}.field-label{font-weight:700}.code-input{letter-spacing:.15em;text-align:center;background:var(--bg);width:100%;min-height:56px;color:var(--text);border:2px solid var(--line);border-radius:10px;padding:8px;font-size:1.5rem}.code-input:focus{border-color:var(--accent)}.result{gap:12px;margin-top:16px;display:grid}.result-card{background:var(--paper);color:var(--ink);border-radius:var(--r);text-align:center;padding:22px 18px 16px;animation:.35s ease-out pop;position:relative;box-shadow:0 10px 30px #00000073}.result-kicker{font:.75rem var(--mono);letter-spacing:.25em;text-transform:uppercase;color:#7a6a4e;margin:0}.rank{font-family:var(--title);color:var(--stamp);overflow-wrap:anywhere;margin:4px 0 6px;font-size:3.2rem;font-weight:400;line-height:1.1}.score-line{font-size:.85rem;font-weight:700}.rank-line{font-family:var(--serif);font-style:italic}.breakdown{text-align:left;border-top:1px dashed #b9ab8e;gap:6px;margin:0 0 12px;padding:10px 0 0;font-size:.88rem;list-style:none;display:grid}.breakdown li{gap:8px;display:flex}.bd-q{flex:1}.breakdown .ok>:first-child{color:#1f7a3f;font-weight:800}.breakdown .half>:first-child{color:#a87418;font-weight:800}.breakdown .bad>:first-child{color:var(--stamp);font-weight:800}.stat-line{background:var(--paper-2);border-radius:8px;padding:8px;font-weight:600}.result-card .fiction{color:#7a6a4e;margin:8px 0 0}.share-text{background:var(--surface);width:100%;min-height:90px;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:10px;padding:10px}.policy-title{margin:6px 0 14px;font-size:1.5rem}.policy p{color:#e2dacb;overflow-wrap:anywhere}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:.5;transform:translateY(40px)}}@keyframes pulse{0%{box-shadow:0 0 #d9a4418c}70%,to{box-shadow:0 0 0 14px #d9a44100}}@keyframes flicker{0%,44%,48%,52%,to{opacity:1}46%,50%{opacity:.3}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.composite,.diagram,.people,.cctv-list,.frames-list,.clues,.result,.ev-list,.choice,.chips{grid-template-columns:minmax(0,1fr)}
