:root{--bg: #07090e;--bg-2: #0c1018;--panel: #111621;--panel-2: #171d2b;--paper: #e9dfc6;--paper-dim: #b9ad90;--ink: #2a2218;--lamp: #f0b955;--lamp-deep: #c98a2b;--blood: #b3302f;--moon: #8fb0c4;--ok: #6fbf8e;--line: rgba(233, 223, 198, .14);--line-strong: rgba(233, 223, 198, .26);--text: #e9dfc6;--muted: #9a9484;--radius: 14px;--font-display: "Cormorant Garamond", "Times New Roman", serif;--font-ui: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-story: "Spectral", Georgia, serif;--font-type: "Courier Prime", "Courier New", monospace;--font-hand: "Caveat", "Segoe Script", cursive;--safe-top: env(safe-area-inset-top, 0px);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;margin:0 0 .5em;letter-spacing:.005em}h1{font-size:clamp(2.4rem,6vw,4.6rem)}h2{font-size:clamp(1.8rem,3.6vw,2.8rem)}h3{font-size:1.5rem}h4{font-size:1.15rem}p{margin:0 0 1em}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}button:disabled{cursor:not-allowed}img,svg{max-width:100%}:focus-visible{outline:2px solid var(--lamp);outline-offset:3px;border-radius:6px}::selection{background:#f0b95559}.muted{color:var(--muted)}.small{font-size:.86rem}.err{color:#f08a7e}.center{text-align:center}.hide-sm{display:inline}.shell{width:min(1180px,100% - 2.4rem);margin-inline:auto}.section{padding:clamp(3rem,7vw,6rem) 0}.section.tight{padding:1.5rem 0 4rem}.eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--lamp);margin:0 0 .9rem}.lead{font-size:1.12rem;color:var(--paper-dim);max-width:60ch}.hand{font-family:var(--font-hand);font-size:1.35rem;line-height:1.3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.78rem 1.3rem;border-radius:999px;font-weight:700;font-size:.95rem;transition:transform .2s,box-shadow .3s,background .2s,border-color .2s;border:1px solid transparent;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:disabled{opacity:.45}.btn-lg{padding:1rem 1.9rem;font-size:1.02rem}.btn-sm{padding:.42rem .85rem;font-size:.82rem}.btn-lamp{background:linear-gradient(180deg,#f6c969,var(--lamp-deep));color:#1b1305;box-shadow:0 0 #f0b95580,0 10px 30px -10px #f0b95599}.btn-lamp:hover:not(:disabled){box-shadow:0 0 30px 2px #f0b95559,0 12px 34px -10px #f0b955b3}.btn-ghost{border-color:var(--line-strong);background:#e9dfc60a;color:var(--paper)}.btn-ghost:hover:not(:disabled){border-color:var(--lamp);background:#f0b95514}.btn-blood{background:linear-gradient(180deg,#cc4140,var(--blood));color:#fff;box-shadow:0 10px 30px -10px #b3302fb3}.icon-btn{width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;border:1px solid var(--line);color:var(--paper-dim);transition:.2s}.icon-btn:hover,.icon-btn.is-on{color:var(--lamp);border-color:var(--lamp);background:#f0b95514}.text-btn{display:inline-flex;align-items:center;gap:.4rem;color:var(--paper-dim);font-size:.88rem;font-weight:600}.text-btn:hover{color:var(--lamp)}.text-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--lamp);font-weight:700}.chip{padding:.45rem .95rem;border-radius:999px;border:1px solid var(--line);color:var(--paper-dim);font-size:.86rem;font-weight:600;transition:.2s}.chip:hover:not(:disabled){border-color:var(--line-strong);color:var(--paper)}.chip.on{background:#f0b95524;border-color:var(--lamp);color:var(--lamp)}.chip:disabled{opacity:.4}.chip.wide{display:inline-flex;gap:.35rem;align-items:center}.form{display:grid;gap:1rem}.form label,label.block{display:grid;gap:.35rem;font-size:.82rem;font-weight:700;color:var(--paper-dim);letter-spacing:.04em}input,select,textarea{width:100%;padding:.8rem .95rem;background:#e9dfc60d;border:1px solid var(--line);border-radius:10px;color:var(--paper);font-weight:500}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--lamp);box-shadow:0 0 0 3px #f0b95526}select option{background:#11151f}textarea{resize:vertical}.site-root{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.page{position:relative;flex:1}.site-header{position:sticky;top:0;z-index:50;padding-top:var(--safe-top);background:linear-gradient(180deg,#07090eeb,#07090e9e);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}.brand{display:inline-flex;align-items:center;gap:.7rem}.brand-word{font-family:var(--font-display);font-size:1.55rem;font-weight:600;letter-spacing:.01em}.brand-word b{color:var(--lamp);font-weight:700;font-style:italic}.logo-flap{transform-origin:12px 30px;transition:transform .4s}.brand:hover .logo-flap{transform:skewY(-6deg) translateY(1px)}.primary-nav{display:flex;gap:.25rem}.primary-nav a{padding:.5rem .95rem;border-radius:999px;font-weight:600;font-size:.92rem;color:var(--paper-dim);transition:.2s;display:inline-flex;gap:.35rem;align-items:center}.primary-nav a:hover{color:var(--paper);background:#e9dfc60f}.primary-nav a.active{color:var(--lamp);background:#f0b9551a}.header-actions{display:flex;align-items:center;gap:.5rem}.login-link,.member-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .95rem;border-radius:999px;border:1px solid var(--line-strong);font-weight:700;font-size:.9rem;transition:.2s}.login-link:hover,.member-chip:hover{border-color:var(--lamp);color:var(--lamp)}.member-chip{padding-left:.4rem}.member-initial{width:28px;height:28px;border-radius:50%;background:var(--lamp);color:#1b1305;display:grid;place-items:center;font-weight:800}.menu-btn{display:none}.site-footer{position:relative;margin-top:4rem;border-top:1px solid var(--line);background:linear-gradient(180deg,transparent,rgba(0,0,0,.45))}.footer-inner{display:grid;grid-template-columns:1.4fr 1fr auto;gap:2rem;padding:2.6rem 0 3rem;align-items:start}.footer-word{font-family:var(--font-display);font-size:1.7rem;margin:0 0 .3rem}.footer-word b{color:var(--lamp);font-style:italic}.footer-line{color:var(--muted);margin:0;font-style:italic;font-family:var(--font-story)}.footer-links{display:grid;gap:.4rem;font-weight:600;color:var(--paper-dim)}.footer-links a:hover{color:var(--lamp)}.footer-meta{color:var(--muted);font-size:.82rem;text-align:right;margin:0}.fatal{min-height:100vh;display:grid;place-content:center;gap:1rem;text-align:center;padding:2rem}@media (max-width: 860px){.menu-btn{display:inline-grid}.primary-nav{position:absolute;inset:100% 0 auto;flex-direction:column;padding:.8rem 1.2rem 1.2rem;background:#07090ef7;border-bottom:1px solid var(--line);transform:translateY(-8px);opacity:0;pointer-events:none;transition:.25s}.primary-nav.is-open{transform:none;opacity:1;pointer-events:auto}.primary-nav a{padding:.9rem .6rem;font-size:1.02rem}.footer-inner{grid-template-columns:1fr;gap:1.4rem}.footer-meta{text-align:left}.hide-sm{display:none}}.brand-word{white-space:nowrap}@media (max-width: 560px){.brand-word{font-size:1.28rem}.header-inner{gap:.4rem}.login-link{padding:.4rem .75rem}.shell{width:min(1180px,100% - 1.8rem)}}.fx{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.fx-fog{position:absolute;width:140%;height:60%;left:-20%;filter:blur(60px);opacity:.55}.fx-fog-a{bottom:-10%;background:radial-gradient(closest-side,rgba(90,120,150,.22),transparent);animation:fog-drift 38s ease-in-out infinite alternate}.fx-fog-b{top:10%;background:radial-gradient(closest-side,rgba(240,185,85,.07),transparent);animation:fog-drift 52s ease-in-out infinite alternate-reverse}.fx-rain{position:absolute;inset:-20% 0 0;background-image:repeating-linear-gradient(103deg,transparent 0 22px,rgba(160,190,215,.22) 22px 23px,transparent 23px 52px);background-size:130px 100%;opacity:.16;animation:rain-fall .9s linear infinite}.fx-rain-b{background-image:repeating-linear-gradient(104deg,transparent 0 41px,rgba(160,190,215,.28) 41px 42px,transparent 42px 77px);background-size:210px 100%;opacity:.1;animation-duration:1.35s}.fx[data-level=calm] .fx-rain{opacity:0}.fx[data-level=storm] .fx-rain-a{opacity:.3}.fx[data-level=storm] .fx-rain-b{opacity:.2}.fx[data-level=storm]:after{content:"";position:absolute;inset:0;background:#cfe3f5;opacity:0;animation:lightning 11s infinite}.fx-grain{position:absolute;inset:-50%;opacity:.09;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .7 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain .9s steps(6) infinite;mix-blend-mode:overlay}.fx-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,transparent 45%,rgba(0,0,0,.65) 100%)}@keyframes rain-fall{to{background-position:-30px 160px}}@keyframes fog-drift{0%{transform:translate(-6%) scale(1)}to{transform:translate(8%) scale(1.15)}}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,-2%)}80%{transform:translate(5%,4%)}to{transform:translate(0)}}@keyframes lightning{0%,91%,93.4%,to{opacity:0}92%{opacity:.1}92.7%{opacity:.02}93%{opacity:.07}}@keyframes flicker{0%,to{opacity:1}8%{opacity:.75}10%{opacity:1}52%{opacity:.9}55%{opacity:.6}57%{opacity:1}}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}@keyframes drift-x{0%{transform:translate(0)}to{transform:translate(-80px)}}@keyframes caret-blink{50%{opacity:0}}@keyframes smoke{0%{transform:translateY(0);opacity:.5}to{transform:translateY(-34px) translate(8px);opacity:0}}@keyframes walk{0%{transform:translate(-80px)}to{transform:translate(1300px)}}@keyframes bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(4px) rotate(.6deg)}}@keyframes wave-move{to{transform:translate(-120px)}}@keyframes sway{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.6deg)}}@keyframes beam{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(1.5px) scale(1.006)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.08)}}@keyframes talk{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.9)}}@keyframes bars{0%,to{height:18%}50%{height:100%}}@keyframes ping{0%{transform:scale(.6);opacity:.8}to{transform:scale(2.2);opacity:0}}@keyframes route{to{stroke-dashoffset:-30}}@keyframes steam{0%{transform:translateY(0);opacity:.6}to{transform:translateY(-26px);opacity:0}}@keyframes stamp-in{0%{transform:scale(2.2) rotate(-18deg);opacity:0}to{transform:scale(1) rotate(-8deg);opacity:1}}.cv-win,.ns-win{animation:flicker 7s infinite}.cv-flicker{animation:flicker 5s infinite}.cv-moon{animation:pulse-glow 8s ease-in-out infinite;transform-origin:center;transform-box:fill-box}.cv-fog{animation:drift-x 20s linear infinite alternate}.cv-wave,.cv-bob{animation:wave-move 6s linear infinite}.cv-bob{animation:bob 5s ease-in-out infinite}.cv-sway{animation:sway 5s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom center}.cv-beam{animation:beam 9s linear infinite}.cv-hand{animation:beam 60s linear infinite}.cv-steam{animation:steam 3s ease-out infinite}.ns-clouds{animation:drift-x 60s linear infinite alternate}.ns-cone,.ns-bulb,.ns-puddle{animation:flicker 6s infinite}.ns-ember{animation:pulse-glow 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.ns-smoke{animation:smoke 4s ease-out infinite}.ns-walker{animation:walk 46s linear infinite}.ns-detective{animation:bob 7s ease-in-out infinite;transform-origin:760px 600px}.portrait{display:block;width:100%;height:auto;border-radius:inherit;background:#07090e}.portrait .p-body{animation:breathe 5s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom center}.portrait .p-head{animation:bob 8s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom center}.portrait .p-eye{animation:blink 5.5s infinite;animation-delay:var(--blink-delay, 0s);transform-box:fill-box;transform-origin:center}.portrait .p-mouth{transform-box:fill-box;transform-origin:center}.portrait .p-mouth.is-talking{animation:talk .28s ease-in-out infinite}.portrait.is-cleared{filter:grayscale(1) brightness(.65)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.fx-rain,.fx-grain{display:none}}@keyframes ev-glow{0%,to{opacity:0}50%{opacity:.85}}.page-head{padding:clamp(2.6rem,6vw,4.6rem) 0 1.6rem}.page-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}.page-head.center{text-align:center}.page-head.center .lead{margin-inline:auto}.head-actions{display:flex;gap:.6rem;flex-wrap:wrap}.section-head{margin-bottom:2.2rem}.section-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}.small-h{font-size:1.5rem}.empty{text-align:center;padding:3rem 1rem;border:1px dashed var(--line-strong);border-radius:var(--radius)}.loading-line{animation:flicker 2s infinite}.banner{padding:.9rem 1.2rem;border:1px solid rgba(111,191,142,.4);background:#6fbf8e14;border-radius:12px;color:var(--ok)}.hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line)}.noir-scene{position:absolute;inset:0;width:100%;height:100%}.hero-veil{position:absolute;inset:0;background:linear-gradient(90deg,#07090ef0,#07090e99 48%,#07090e14),linear-gradient(180deg,transparent 60%,var(--bg) 100%)}.hero-inner{position:relative;z-index:3;padding:5rem 0 6rem}.hero h1{max-width:12ch;text-shadow:0 6px 40px rgba(0,0,0,.7)}.hero h1 em{color:var(--lamp);font-style:italic}.hero-lead{font-size:1.15rem;color:var(--paper-dim);max-width:46ch;margin:1.4rem 0 2rem;font-family:var(--font-story)}.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}.step{position:relative;padding:1.6rem 1.4rem 1.5rem;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.3s}.step:hover{border-color:var(--lamp);transform:translateY(-4px)}.step svg{color:var(--lamp);margin-bottom:.9rem}.step h3{font-size:1.3rem}.step p{color:var(--paper-dim);font-size:.94rem;margin:0}.step-no{position:absolute;right:1rem;top:.4rem;font-family:var(--font-display);font-size:3.6rem;font-weight:700;color:#e9dfc60f}.cast-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}.cast-card{margin:0;border-radius:var(--radius);overflow:hidden;background:var(--panel);border:1px solid var(--line);transition:.35s}.cast-card:hover{transform:translateY(-8px) rotate(-.6deg);border-color:var(--lamp);box-shadow:0 24px 50px -20px #000c}.cast-card figcaption{display:grid;padding:.9rem 1rem 1rem}.cast-card figcaption span{color:var(--muted);font-size:.85rem}.map-teaser{display:flex;align-items:center;gap:1.5rem;padding:1.8rem 2rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:radial-gradient(circle at 0 0,rgba(240,185,85,.1),transparent 55%),var(--panel)}.map-teaser svg{color:var(--lamp);flex-shrink:0}.map-teaser h3{margin-bottom:.2rem}.map-teaser p{margin:0;color:var(--paper-dim)}.map-teaser>div{flex:1}.case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.5rem}.case-card{display:flex;flex-direction:column;height:100%;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .35s,border-color .3s,box-shadow .35s}.case-card:hover{transform:translateY(-8px);border-color:var(--lamp);box-shadow:0 28px 60px -24px #000000e6,0 0 40px -14px #f0b95573}.case-card-art{position:relative;aspect-ratio:4 / 3;overflow:hidden}.case-card-art .cover-art{position:absolute;inset:0;width:100%;height:100%;transition:transform .9s}.case-card:hover .cover-art{transform:scale(1.07)}.case-tab{position:absolute;left:.9rem;top:.9rem;padding:.25rem .7rem;background:#07090eb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line-strong);border-radius:999px;font-size:.68rem;letter-spacing:.14em;font-weight:800;color:var(--lamp)}.case-state{position:absolute;right:.9rem;top:.9rem;display:inline-flex;gap:.3rem;align-items:center;padding:.25rem .7rem;border-radius:999px;font-size:.72rem;font-weight:800;background:#07090ec7}.state-in_progress{color:var(--lamp);border:1px solid var(--lamp)}.state-completed{color:var(--ok);border:1px solid var(--ok)}.case-fav{position:absolute;right:.9rem;bottom:.9rem;color:#e46b6b}.case-stamp{position:absolute;left:1rem;bottom:.9rem;padding:.15rem .7rem;border:2px solid rgba(179,48,47,.8);color:#e05a58e6;font-family:var(--font-type);font-weight:700;letter-spacing:.2em;font-size:.8rem;transform:rotate(-6deg);border-radius:3px}.case-card-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.2rem;flex:1}.case-kicker{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:700}.case-card h3{font-size:1.55rem;margin:.15rem 0 .4rem}.case-excerpt{color:var(--paper-dim);font-size:.92rem;margin:0 0 .9rem;flex:1}.case-meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;font-size:.8rem;color:var(--muted);align-items:center}.case-meta span{display:inline-flex;gap:.3rem;align-items:center}.diff{padding:.12rem .6rem;border-radius:999px;border:1px solid var(--line-strong);font-weight:700;font-size:.72rem!important}.diff-intro{color:var(--ok);border-color:#6fbf8e80}.diff-intermediate{color:var(--lamp);border-color:#f0b95580}.diff-expert{color:#e46b6b;border-color:#e46b6b80}.filters{display:grid;gap:.9rem;padding-bottom:1rem}.search{display:flex;align-items:center;gap:.6rem;padding:0 1rem;border:1px solid var(--line);border-radius:999px;background:#e9dfc60a;max-width:440px;color:var(--muted)}.search input{border:0;background:transparent;padding:.8rem 0;box-shadow:none!important}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;padding-bottom:2rem}.guide-card{padding:1.7rem;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--panel-2),var(--panel))}.guide-card svg{color:var(--lamp);margin-bottom:.7rem}.guide-card p{color:var(--paper-dim);margin:0}.auth-wrap{display:grid;place-items:center;padding:3rem 0 5rem}.auth-card{width:min(480px,100%);padding:2.2rem;border:1px solid var(--line-strong);border-radius:20px;background:linear-gradient(180deg,#171d2beb,#111621eb);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 40px 80px -30px #000}.auth-card h1{font-size:2.4rem}.auth-switch{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:1.3rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat{padding:1.3rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);display:grid;gap:.2rem}.stat svg{color:var(--lamp)}.stat b{font-family:var(--font-display);font-size:2.4rem;line-height:1}.stat span{color:var(--muted);font-size:.85rem}@media (max-width: 960px){.steps,.cast-row{grid-template-columns:repeat(2,1fr)}.guide-grid{grid-template-columns:1fr}.hero-veil{background:linear-gradient(180deg,rgba(7,9,14,.5),rgba(7,9,14,.9) 70%,var(--bg))}.hero{align-items:flex-end}.hero-inner{padding:7rem 0 3.5rem}}@media (max-width: 560px){.steps,.cast-row{grid-template-columns:1fr}.cast-row{grid-template-columns:1fr 1fr;gap:.8rem}.map-teaser{flex-direction:column;align-items:flex-start}.auth-card{padding:1.5rem}}.typewriter p{margin:0 0 1em}.typewriter{cursor:pointer}.caret{display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.18em;background:currentColor;animation:caret-blink .8s steps(1) infinite}.page-flush{padding:0}.folder-stage{position:relative;min-height:calc(100dvh - 69px);display:flex;align-items:center;overflow:hidden}.folder-bg{position:absolute;inset:0;filter:blur(3px) saturate(.9);transform:scale(1.08)}.folder-bg .cover-art{width:100%;height:100%}.folder-bg-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,#07090e80,#07090ef0 75%)}.folder-layout{position:relative;z-index:3;display:grid;grid-template-columns:minmax(280px,400px) 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;padding:3rem 0}.folder-wrap{perspective:1800px;display:grid;place-items:center}.folder{position:relative;width:min(380px,100%);aspect-ratio:3 / 4;filter:drop-shadow(0 40px 50px rgba(0,0,0,.7))}.folder-tab{position:absolute;left:14px;top:-22px;padding:.35rem 1.1rem .5rem;background:#b99455;color:#2a1d08;font-size:.66rem;font-weight:800;letter-spacing:.16em;border-radius:10px 10px 0 0}.folder-inside{position:absolute;inset:0;background:#d9c9a2;border-radius:4px 12px 12px 4px;padding:2rem 1.6rem;color:var(--ink);font-family:var(--font-story);font-size:.98rem;overflow:hidden}.folder-inside-label{font-family:var(--font-type);letter-spacing:.24em;text-transform:uppercase;font-size:.72rem;font-weight:700;color:#7a5f2d}.folder-front{position:absolute;inset:0;border-radius:4px 12px 12px 4px;overflow:hidden;background:#3b2f1d;border:1px solid rgba(255,220,150,.25);backface-visibility:hidden;box-shadow:inset 0 0 0 6px #00000040}.folder-front-art{position:absolute;inset:0;opacity:.9}.folder-front-art .cover-art{width:100%;height:100%}.folder-front:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000001a 30%,#05070beb)}.folder-front-text{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:1.6rem 1.5rem 3.4rem}.folder-front-text h1{font-size:clamp(1.8rem,3.6vw,2.5rem);margin:.3rem 0 0;text-shadow:0 4px 20px #000}.folder-season{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--lamp);font-weight:800}.folder-seal{position:absolute;z-index:3;left:1.5rem;bottom:1.2rem;display:inline-flex;gap:.4rem;align-items:center;padding:.25rem .8rem;border:2px solid rgba(224,90,88,.85);color:#e05a58f2;font-family:var(--font-type);font-weight:700;letter-spacing:.2em;font-size:.74rem;transform:rotate(-4deg)}.folder-info h1,.folder-info .eyebrow{margin-top:0}.folder-excerpt{font-family:var(--font-story);font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.6;color:var(--paper);max-width:40ch}.folder-facts{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;color:var(--paper-dim);font-size:.9rem;margin:1.2rem 0;align-items:center}.folder-facts span{display:inline-flex;gap:.4rem;align-items:center}.folder-score{color:var(--ok)}.folder-actions{display:flex;gap:.7rem;align-items:center}.folder-note{margin-top:1rem;font-size:.84rem;color:var(--muted)}.story-stage{position:relative;min-height:calc(100dvh - 69px);padding:1.6rem 0 2.4rem;background:radial-gradient(ellipse at 50% 0,rgba(240,185,85,.07),transparent 60%)}.story-shell{max-width:820px}.story-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.story-count{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700}.book{position:relative}.book-spine{position:absolute;left:-10px;top:6px;bottom:-6px;width:14px;border-radius:6px 0 0 6px;background:linear-gradient(90deg,#2a1d10,#4a3520);box-shadow:-8px 12px 30px #00000080}.page-sheet{position:relative;min-height:min(62dvh,560px);padding:clamp(1.5rem,4vw,3rem) clamp(1.4rem,5vw,3.4rem) 2.4rem;color:var(--ink);background:radial-gradient(circle at 20% 0,rgba(255,255,255,.35),transparent 50%),linear-gradient(95deg,#d8c9a3,#ece2c7 12%,#e9dfc6 90%,#d6c7a0);border-radius:3px 10px 10px 3px;box-shadow:0 34px 60px -26px #000,inset 6px 0 18px -6px #3c280a66;backface-visibility:hidden}.page-sheet:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/><feColorMatrix values='0 0 0 0 .4  0 0 0 0 .3  0 0 0 0 .15  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23p)'/></svg>")}.sheet-head{display:flex;gap:1rem;align-items:flex-start;border-bottom:1px solid rgba(60,40,10,.25);padding-bottom:1rem;margin-bottom:1.4rem}.sheet-no{font-family:var(--font-display);font-size:3.2rem;line-height:.9;color:#6e461473;font-weight:700}.sheet-head h2{font-size:clamp(1.7rem,3.4vw,2.3rem);margin:0 0 .3rem;color:#1e170c}.sheet-meta{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin:0;font-family:var(--font-type);font-size:.8rem;color:#6a5a3a}.sheet-meta span{display:inline-flex;gap:.3rem;align-items:center}.sheet-text p{font-family:var(--font-story);font-size:clamp(1.06rem,2.2vw,1.26rem);line-height:1.85;margin:0 0 1.1em;color:#2a2218}.sheet-text p:first-child:first-letter{font-family:var(--font-display);float:left;font-size:3.7em;line-height:.82;padding:.06em .1em 0 0;color:#8b3a22;font-weight:700}.sheet-foot{position:absolute;bottom:.8rem;left:0;right:0;text-align:center;font-family:var(--font-type);font-size:.8rem;color:#46321480}.story-nav{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-top:1.8rem}.dots{display:flex;gap:.45rem}.dot{width:8px;height:8px;border-radius:50%;background:#e9dfc62e;transition:.3s}.dot.read{background:#f0b95580}.dot.on{background:var(--lamp);transform:scale(1.5);box-shadow:0 0 12px var(--lamp)}.desk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;padding:2.4rem 0 1.4rem}.desk-head h1{font-size:clamp(2rem,4.6vw,3.2rem);margin:0}.desk-tabs{position:sticky;top:68px;z-index:40;background:#07090ee0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-block:1px solid var(--line)}.tabs-inner{display:flex;gap:.2rem;overflow-x:auto;scrollbar-width:none}.tab{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.95rem 1.1rem;color:var(--muted);font-weight:700;font-size:.92rem;white-space:nowrap;transition:color .2s}.tab:hover{color:var(--paper)}.tab.on{color:var(--lamp)}.tab-line{position:absolute;left:.6rem;right:.6rem;bottom:0;height:2px;background:var(--lamp);box-shadow:0 0 12px var(--lamp)}.desk-body{padding:2rem 0 3rem;min-height:50vh}.board-hint{color:var(--paper-dim);margin-bottom:1.6rem}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.6rem 1.4rem}.ev-tile{position:relative;display:grid;gap:.3rem;text-align:left;padding:1.5rem 1.3rem 1.2rem;border-radius:4px;color:var(--ink);background:#e6dbbd;box-shadow:0 16px 30px -12px #000c;transition:box-shadow .3s}.ev-tile:hover{box-shadow:0 26px 44px -14px #000000e6,0 0 36px -10px #f0b9558c}.ev-tile strong{font-family:var(--font-display);font-size:1.45rem;line-height:1.1;color:#1c150a}.ev-pin{position:absolute;top:-8px;left:50%;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ff8a73,#a82a20);box-shadow:0 4px 6px #00000080}.ev-icon{color:#7b5a24}.ev-cat{font-family:var(--font-type);font-size:.68rem;letter-spacing:.16em;font-weight:700;color:#7b5a24}.ev-desc{font-size:.88rem;color:#4a4030}.ev-foot{display:inline-flex;gap:.35rem;align-items:center;margin-top:.4rem;font-size:.75rem;font-weight:800;color:#7b5a24}.ev-tile.fresh .ev-foot{color:#a1311f}.ev-tile.fresh:after{content:"";position:absolute;inset:-2px;border-radius:6px;border:2px solid var(--lamp);opacity:0;animation:ev-glow 2.6s ease-in-out infinite;pointer-events:none}.ev-stamp{position:absolute;right:.8rem;top:1.3rem;padding:.1rem .5rem;border:1.5px solid rgba(160,50,40,.7);color:#a03228cc;font-family:var(--font-type);font-size:.6rem;font-weight:700;letter-spacing:.08em;transform:rotate(5deg);max-width:55%;text-align:center}.ev-tile.ev-document{background-image:repeating-linear-gradient(transparent 0 25px,#3c508c24 25px 26px);background-color:#e9dfc6}.ev-tile.ev-photo{background:#f1ede2;padding:1.2rem 1.2rem 1.6rem}.ev-tile.ev-photo:before{content:"";display:block;height:70px;margin-bottom:.6rem;background:radial-gradient(circle at 70% 30%,rgba(255,220,160,.6),transparent 40%),linear-gradient(160deg,#2a2f3a,#0b0d12);filter:sepia(.5)}.ev-tile.ev-note{background:#f2d96c;transform-origin:top center}.ev-tile.ev-note strong,.ev-note .ev-desc{color:#3a2e05}.ev-tile.ev-object{background:linear-gradient(160deg,#2a2d36,#171a22);color:var(--paper);border:1px solid rgba(205,170,100,.4)}.ev-tile.ev-object strong{color:var(--paper)}.ev-tile.ev-object .ev-desc{color:var(--paper-dim)}.ev-tile.ev-object .ev-icon,.ev-object .ev-cat,.ev-object .ev-foot{color:var(--lamp)}.ev-tile.ev-recording{background:linear-gradient(160deg,#3a1a1c,#1b0e11);color:var(--paper);border:1px solid rgba(224,90,88,.35)}.ev-tile.ev-recording strong{color:var(--paper)}.ev-tile.ev-recording .ev-desc{color:var(--paper-dim)}.ev-tile.ev-recording .ev-icon,.ev-recording .ev-cat,.ev-recording .ev-foot{color:#f08a7e}.ev-tile.ev-record{background:#cfdcc6;background-image:repeating-linear-gradient(90deg,transparent 0 59px,rgba(40,80,50,.2) 59px 60px),repeating-linear-gradient(transparent 0 25px,#28503233 25px 26px)}.viewer-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;overflow-y:auto;background:#030408d6;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.viewer{position:relative;width:min(700px,100%)}.viewer-close{position:absolute;right:-6px;top:-16px;z-index:5;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line-strong)}.viewer-close:hover{color:var(--lamp);border-color:var(--lamp)}.viewer-paper{max-height:calc(100dvh - 8rem);overflow-y:auto;padding:clamp(1.4rem,4vw,2.4rem);background:#eadfc4;color:var(--ink);border-radius:4px;box-shadow:0 40px 80px -20px #000}.viewer.ev-note .viewer-paper{background:#f2d96c}.viewer.ev-object .viewer-paper{background:linear-gradient(160deg,#2a2d36,#171a22);color:var(--paper)}.viewer.ev-recording .viewer-paper{background:linear-gradient(160deg,#3a1a1c,#1b0e11);color:var(--paper)}.viewer.ev-record .viewer-paper{background:#cfdcc6}.viewer-cat{font-family:var(--font-type);letter-spacing:.16em;font-size:.74rem;font-weight:700;opacity:.7;margin-bottom:.4rem}.viewer-paper h3{font-size:clamp(1.7rem,4vw,2.3rem)}.viewer-text p{font-family:var(--font-type);font-size:clamp(.98rem,2.2vw,1.1rem);line-height:1.75}.viewer.ev-note .viewer-text p{font-family:var(--font-hand);font-size:1.5rem;line-height:1.4}.viewer-nav{display:flex;justify-content:center;align-items:center;gap:1.2rem;margin-top:1rem;color:var(--paper-dim)}.note-added{margin-top:1.4rem;padding:.9rem 1rem;border:1px dashed rgba(120,40,30,.6);background:#a0322814;border-radius:6px}.viewer.ev-object .note-added,.viewer.ev-recording .note-added{border-color:var(--lamp);background:#f0b95514}.note-added span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:#a1311f}.viewer.ev-object .note-added span,.viewer.ev-recording .note-added span{color:var(--lamp)}.note-added strong{display:block;font-family:var(--font-display);font-size:1.25rem}.note-added p{margin:.2rem 0 0;font-size:.92rem}.wave{display:flex;align-items:center;gap:3px;height:46px;margin:.6rem 0 1.2rem}.wave span{flex:1;background:#f08a7e;border-radius:2px;animation:bars .9s ease-in-out infinite;height:20%}.photo-frame{padding:10px 10px 34px;background:#f1ede2;margin:.6rem 0 1.2rem;transform:rotate(-1deg);box-shadow:0 8px 20px #0006}.photo-frame div{height:150px;background:radial-gradient(circle at 70% 30%,rgba(255,220,160,.55),transparent 40%),repeating-linear-gradient(95deg,rgba(255,255,255,.04) 0 2px,transparent 2px 9px),linear-gradient(160deg,#3a3f4a,#0b0d12);filter:sepia(.55) contrast(1.1)}.suspect-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.4rem}.suspect-card{position:relative;display:block;text-align:left;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);transition:border-color .3s,box-shadow .3s}.suspect-card:hover{border-color:var(--lamp);box-shadow:0 24px 50px -20px #000,0 0 36px -14px #f0b95580}.suspect-portrait{display:block}.suspect-body{display:grid;gap:.1rem;padding:.9rem 1rem 1.1rem;font-size:.88rem;color:var(--paper-dim)}.suspect-body strong{font-family:var(--font-display);font-size:1.35rem;color:var(--paper);line-height:1.1}.suspect-meta{color:var(--muted);font-size:.78rem;margin-top:.3rem}.cleared-stamp{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) rotate(-12deg);padding:.2rem .9rem;border:3px solid rgba(111,191,142,.9);color:var(--ok);background:#07090e99;font-family:var(--font-type);font-weight:700;letter-spacing:.18em;font-size:.9rem;animation:stamp-in .5s both;white-space:nowrap}.dossier{position:relative;width:min(1000px,100%);max-height:calc(100dvh - 2rem);display:grid;grid-template-columns:300px 1fr;background:var(--panel);border:1px solid var(--line-strong);border-radius:18px;overflow:hidden;box-shadow:0 40px 90px -20px #000}.dossier .viewer-close{right:12px;top:12px}.dossier-side{padding:1.3rem;background:linear-gradient(180deg,#0d1119,#0a0d14);border-right:1px solid var(--line);overflow-y:auto}.dossier-portrait{border-radius:12px;overflow:hidden;border:1px solid var(--line-strong);margin-bottom:1rem}.dossier-side h3{font-size:1.7rem;margin-bottom:.1rem}.dossier-role{color:var(--lamp);font-size:.86rem;font-weight:700}.dossier-look{display:flex;gap:.4rem;color:var(--paper-dim);font-size:.86rem;font-style:italic}.dossier-look svg{flex-shrink:0;margin-top:.25rem}.dossier-facts dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:800;margin-top:.8rem}.dossier-facts dd{margin:.1rem 0 0;font-size:.9rem;color:var(--paper-dim)}.dossier-main{display:flex;flex-direction:column;padding:1.4rem;overflow-y:auto;gap:1rem;min-height:0}.chat{display:grid;gap:.8rem;align-content:start;flex:1;min-height:160px;overflow-y:auto;padding-right:.3rem}.chat-pair{display:grid;gap:.6rem}.bubble{max-width:88%;padding:.8rem 1rem;border-radius:14px;font-size:.97rem;line-height:1.65}.bubble p{margin:0}.bubble .who{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;margin-bottom:.2rem}.bubble.them{background:var(--panel-2);border:1px solid var(--line);border-top-left-radius:4px;font-family:var(--font-story)}.bubble.them .who{color:var(--lamp)}.bubble.you{justify-self:end;background:#f0b9551f;border:1px solid rgba(240,185,85,.35);border-top-right-radius:4px}.bubble.you .who{color:var(--paper-dim)}.questions{display:grid;gap:.5rem}.q{display:flex;gap:.6rem;align-items:center;text-align:left;padding:.75rem 1rem;border:1px solid var(--line-strong);border-radius:12px;font-weight:600;font-size:.93rem;transition:.2s}.q:hover:not(:disabled){border-color:var(--lamp);background:#f0b95514;transform:translate(4px)}.q.asked{opacity:.4}.observation{padding:.9rem 1.1rem;border-radius:12px;border:1px solid rgba(111,191,142,.4);background:#6fbf8e12}.observation p{margin:.35rem 0 0;font-size:.93rem}.observation.locked{border-color:var(--line);background:#e9dfc608;color:var(--muted)}.obs-title{display:inline-flex;gap:.4rem;align-items:center;font-weight:800;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ok)}.observation.locked .obs-title{color:var(--muted)}.obs-hint{margin:-.4rem 0 0;font-size:.82rem;color:var(--muted)}.map-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:1.3rem;align-items:start}.map-board{position:relative;aspect-ratio:4 / 3;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;background:#0e1520;box-shadow:inset 0 0 80px #0009}.map-svg{position:absolute;inset:0;width:100%;height:100%}.map-route{animation:route 1.4s linear infinite}.map-compass{position:absolute;right:.9rem;top:.9rem;color:#e9dfc659}.pin{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:34px;height:34px}.pin-dot{position:relative;z-index:2;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--lamp);color:#1b1305;font-weight:800;font-size:.78rem;box-shadow:0 0 18px #f0b955b3}.pin-ring{position:absolute;inset:2px;border-radius:50%;border:2px solid var(--lamp);animation:ping 2.4s infinite}.pin-label{position:absolute;top:100%;margin-top:3px;padding:.1rem .5rem;border-radius:6px;background:#07090ed9;font-size:.7rem;font-weight:700;white-space:nowrap;color:var(--paper-dim)}.pin.on .pin-dot{background:#fff2cf;transform:scale(1.2)}.pin.on .pin-label{color:var(--lamp)}.map-card{padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:160px}.map-time{font-family:var(--font-type);color:var(--lamp);font-weight:700}.notebook{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}.nb-page{padding:1.6rem 1.6rem 2rem;background:#efe5cb;color:#2d2a24;border-radius:4px 12px 12px 4px;box-shadow:0 24px 50px -22px #000;background-image:repeating-linear-gradient(transparent 0 33px,#465a8c38 33px 34px)}.nb-page h3,.nb-page h4{color:#2a1c0c;display:flex;gap:.5rem;align-items:center}.nb-page .muted{color:#7a705c}.facts{list-style:none;padding:0;margin:0;display:grid;gap:.9rem}.facts li{display:grid;padding-left:.2rem;border-left:3px solid rgba(160,50,40,.5);padding-left:.8rem}.facts b{color:#8b2a1c}.facts span{color:#2d2a24}.facts em{font-size:.74rem;font-style:normal;color:#7a705c;font-weight:700;letter-spacing:.06em}.cleared-list{margin-top:1.4rem}.nb-notes{width:100%;background:transparent;border:0;border-bottom:0;color:#20324f;line-height:34px;padding:0;min-height:270px;font-size:1.5rem}.nb-notes:focus{box-shadow:none}.hint-box{margin-top:1.4rem;padding:1rem;border:1px dashed rgba(100,60,20,.5);border-radius:10px;background:#ffffff59}.hint-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;font-weight:800}.hint-head span{display:inline-flex;gap:.4rem;align-items:center;color:#8b2a1c}.hint-box .btn-ghost{color:#2a1c0c;border-color:#3c280a66}.hint-line{margin:.6rem 0 0;color:#20324f}.accuse{max-width:900px;margin-inline:auto}.accuse-head{display:flex;gap:1rem;align-items:flex-start;padding:1.2rem 1.4rem;border:1px solid rgba(179,48,47,.5);background:#b3302f14;border-radius:var(--radius);margin-bottom:2rem}.accuse-head svg{color:#e46b6b;flex-shrink:0;margin-top:.3rem}.accuse-head h3{margin-bottom:.2rem}.accuse-head p{margin:0;color:var(--paper-dim)}.step-title{display:flex;gap:.7rem;align-items:center;font-family:var(--font-ui);font-size:1rem;font-weight:800;margin:1.8rem 0 1rem}.step-title span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--lamp);color:#1b1305;font-size:.85rem}.step-title small{color:var(--muted);font-weight:600}.pick-suspects{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.pick{position:relative;display:flex;align-items:center;gap:.9rem;padding:.6rem .9rem .6rem .6rem;border:1px solid var(--line-strong);border-radius:14px;text-align:left;transition:.2s}.pick:hover:not(:disabled){border-color:var(--lamp)}.pick.on{border-color:var(--lamp);background:#f0b9551a;box-shadow:0 0 26px -10px var(--lamp)}.pick:disabled{opacity:.45}.pick b{display:block;font-family:var(--font-display);font-size:1.2rem;line-height:1.1}.pick small{color:var(--muted)}.pick-portrait{width:62px;height:62px;border-radius:50%;overflow:hidden;flex-shrink:0;border:1px solid var(--line-strong)}.pick-portrait .portrait{transform:scale(1.7) translateY(10%)}.pick-check{position:absolute;right:.8rem;color:var(--lamp)}.pick-evidence{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem}.verdict{padding:1rem 1.2rem;margin-bottom:1.4rem;border-radius:12px;font-weight:600}.verdict.wrong{border:1px solid rgba(228,107,107,.6);background:#b3302f1f;color:#f3a8a0}.verdict.partial{border:1px solid rgba(240,185,85,.6);background:#f0b9551a;color:var(--lamp)}.ending{max-width:980px;margin-inline:auto;padding:1rem 0 3rem;position:relative}.ending-stamp{display:inline-block;padding:.4rem 1.6rem;margin-bottom:1.6rem;border:4px solid rgba(111,191,142,.9);color:var(--ok);font-family:var(--font-type);font-weight:700;letter-spacing:.22em;font-size:clamp(1.2rem,4vw,2rem);border-radius:4px}.ending-grid{display:grid;grid-template-columns:220px 1fr;gap:2rem;align-items:start;margin-bottom:1.6rem}.ending-portrait{border-radius:14px;overflow:hidden;border:1px solid var(--lamp);box-shadow:0 0 40px -10px var(--lamp);text-align:center}.ending-portrait p{margin:0;padding:.6rem;font-family:var(--font-display);font-size:1.2rem;background:var(--panel)}.ending h2{margin-bottom:.2rem}.score{font-size:1.1rem;color:var(--paper-dim)}.score b{font-family:var(--font-display);font-size:2.6rem;color:var(--lamp)}.ending-text p{font-family:var(--font-story);font-size:1.12rem;line-height:1.8}.ending-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.ending-box{padding:1.3rem 1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:1rem}.ending-cols .ending-box{margin-bottom:0}.ending-box h4{color:var(--lamp);font-family:var(--font-ui);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}.ending-box ul{margin:0;padding-left:1.1rem;color:var(--paper-dim);display:grid;gap:.4rem}.ending-box p{margin:0;color:var(--paper-dim)}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.timeline li{display:grid;grid-template-columns:76px 1fr;gap:.8rem;padding-bottom:.5rem;border-bottom:1px dashed var(--line)}.timeline b{font-family:var(--font-type);color:var(--lamp)}.review textarea{margin:.8rem 0}.stars{display:flex;gap:.2rem}.star{color:var(--muted)}.star.on{color:var(--lamp)}.ending-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.4rem}.reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.review{padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.review p{margin:0 0 .5rem;color:var(--paper-dim)}.review-stars{display:flex;gap:2px;color:var(--lamp)}.review small{color:var(--muted)}@media (max-width: 900px){.folder-layout{grid-template-columns:1fr;padding:2.2rem 0 3rem}.map-layout,.notebook,.ending-cols{grid-template-columns:1fr}.dossier{grid-template-columns:1fr;overflow-y:auto}.dossier-side{display:grid;grid-template-columns:120px 1fr;gap:0 1rem;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.dossier-portrait{grid-row:span 3;margin-bottom:0}.dossier-facts{grid-column:1 / -1}.ending-grid{grid-template-columns:1fr}.ending-portrait{max-width:200px}}@media (max-width: 700px){.desk-tabs{position:fixed;inset:auto 0 0;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--line-strong);border-bottom:0;background:#07090ef5}.tabs-inner{justify-content:space-between;gap:0;width:100%;padding-inline:.3rem}.tab{flex:1;flex-direction:column;gap:.15rem;padding:.6rem .2rem;font-size:.66rem}.tab-line{top:0;bottom:auto}.desk-body{padding-bottom:6rem}.story-nav .btn{padding-inline:1rem}.story-nav .btn-ghost{font-size:0;gap:0;padding:.78rem}.book-spine{display:none}.evidence-grid{grid-template-columns:1fr 1fr;gap:1.2rem .8rem}.ev-tile{padding:1.2rem .9rem 1rem}.ev-tile strong{font-size:1.15rem}.ev-desc,.ev-stamp{display:none}.suspect-grid{grid-template-columns:1fr 1fr;gap:.8rem}}.admin-tabs{display:flex;flex-wrap:wrap;gap:.5rem;padding-bottom:1.2rem}.admin-body{padding-bottom:5rem}.admin-stack{display:grid;gap:1.2rem}.admin-state{display:flex;align-items:flex-start;gap:.8rem}.admin-state h3{margin-bottom:.35rem}.admin-state-error>svg,.admin-empty>svg{color:var(--lamp)}.admin-empty{display:grid;justify-items:center;gap:.45rem;text-align:center}.admin-empty h3,.admin-empty p{margin:0}.panel{padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.panel h3{display:flex;gap:.5rem;align-items:center;font-size:1.4rem}.panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:.8rem}.panel-head h3{margin:0}.row-form{display:flex;gap:.7rem;flex-wrap:wrap}.row-form input{flex:1;min-width:220px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.form-row label,.panel label.block{display:grid;gap:.35rem;font-size:.8rem;font-weight:700;color:var(--paper-dim)}.panel label.block{margin-bottom:1rem}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th{text-align:left;padding:.8rem 1rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}.table td{padding:.9rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}.table td small{display:block;color:var(--muted);margin-top:.15rem}.table tr:last-child td{border-bottom:0}.table .actions,.actions{display:flex;gap:.4rem;flex-wrap:wrap}.row-actions{margin-top:1.4rem}.badge{display:inline-block;padding:.15rem .7rem;border-radius:999px;font-size:.74rem;font-weight:800;border:1px solid var(--line-strong);color:var(--paper-dim)}.badge.ok,.st-published{color:var(--ok);border-color:#6fbf8e80}.badge.bad{color:#f08a7e;border-color:#f08a7e80}.st-draft{color:var(--lamp);border-color:#f0b95580}.report{padding:.9rem 1.1rem;border-radius:12px;margin:.8rem 0;border:1px solid var(--line-strong)}.report p{margin:0 0 .25rem;display:flex;gap:.4rem;align-items:center}.report p.small{display:block}.report.ok{border-color:#6fbf8e80;background:#6fbf8e12}.report.warn{border-color:#f0b95580;background:#f0b95512}.report.bad{border-color:#f08a7e8c;background:#b3302f1a}.generating{display:flex;gap:1rem;align-items:flex-start}.spin{animation:spin 1s linear infinite;color:var(--lamp)}.gen-steps{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;list-style:none;padding:0;margin:.5rem 0;color:var(--muted);font-size:.86rem}.gen-steps li.now{color:var(--lamp);font-weight:800}.gen-steps li.done{color:var(--ok)}.gen-steps li.done:before{content:"✓ "}.solution{display:grid;gap:.6rem}.solution h4{font-family:var(--font-ui);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lamp);margin:1.2rem 0 .4rem}.solution-head{display:flex;gap:1.4rem;align-items:flex-start;margin-top:.6rem}.solution-portrait{width:130px;flex-shrink:0;border-radius:12px;overflow:hidden;border:1px solid var(--lamp)}.solution-head h3{margin:0 0 .2rem}.solution-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}.solution ul,.solution ol{margin:0;padding-left:1.2rem;color:var(--paper-dim);display:grid;gap:.35rem}.solution .timeline{padding:0}.solution-suspects{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.8rem}.solution-suspects figure{margin:0;border-radius:10px;overflow:hidden;border:1px solid var(--line);font-size:.78rem;text-align:center;background:var(--panel-2)}.solution-suspects figcaption{padding:.4rem;display:grid}.solution-suspects small{color:var(--muted)}.json-editor{display:grid;gap:.7rem;margin-top:1rem}.json-editor textarea{font-family:var(--font-type);font-size:.82rem;line-height:1.5}@media (max-width: 760px){.solution-cols,.form-row{grid-template-columns:1fr}.solution-head{flex-direction:column}}@media (max-width: 560px){.admin-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:1rem;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs .chip{flex:0 0 auto;white-space:nowrap}.row-form{align-items:stretch}.row-form input{min-width:0}.row-form .btn{width:100%}.admin-state{padding:1.1rem}}
