.streak{margin-top:1.5rem}.streak-card{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1.25rem;background:color-mix(in srgb,var(--accent) 22%,var(--panel))}.streak-card h2{font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.streak-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.streak-big{font-family:var(--font-display);font-size:clamp(1.5rem,3.5vw,2.1rem);font-weight:900;line-height:1.1;font-variant-numeric:tabular-nums}.streak-best{font-weight:700}.streak-status{flex:1 1 240px;margin:0;padding:.5rem .8rem;border:2px solid var(--ink-soft);border-radius:10px;background:var(--panel);font-size:.9rem;font-weight:700}.streak-status.urgent{background:color-mix(in srgb,var(--accent-2) 30%,var(--panel));border-color:var(--accent-2);color:var(--text);animation:streak-nudge 1.4s ease-in-out infinite alternate}.streak-status.safe{background:color-mix(in srgb,var(--ok) 20%,var(--panel));border-color:var(--ok)}@keyframes streak-nudge{0%{box-shadow:0 0 color-mix(in srgb,var(--accent-2) 55%,transparent)}to{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent-2) 0%,transparent)}}@media (max-width: 600px){.streak-card{flex-direction:column;align-items:stretch}.streak-status{flex-basis:auto}}.daily-countdown{display:inline-block;font-size:.82rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.stars{display:inline-block;letter-spacing:.05em;line-height:1;white-space:nowrap;color:var(--accent-2);-webkit-text-stroke:.6px var(--ink);paint-order:stroke fill}.stars .off{color:var(--muted);opacity:.55}:root[data-mode=noir] .stars{color:var(--accent-2)}.level-stars{font-size:.85rem;margin-top:.1rem}@media (max-width: 600px){.level-stars{font-size:.78rem;letter-spacing:.02em}}.chapters-meta{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem .7rem;text-align:right}.chapter-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.chapter-stars{flex:0 0 auto;font-size:.85rem;font-weight:800;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.streak-chip{display:inline-flex;align-items:center;gap:.35rem;border:var(--border);border-radius:999px;padding:.3rem .85rem;font-weight:800;font-size:.9rem;background:color-mix(in srgb,var(--accent) 26%,var(--panel));box-shadow:var(--shadow-sm)}.streak-chip.urgent{background:color-mix(in srgb,var(--accent-2) 34%,var(--panel))}.card-link{align-self:flex-start;margin-top:.2rem}.win-hero{position:relative;overflow:hidden;padding-top:.4rem}.confetti{position:absolute;top:-14px;width:8px;height:13px;border:2px solid var(--ink);border-radius:3px;pointer-events:none;opacity:0;animation:confetti-fall 1.7s cubic-bezier(.2,.7,.4,1) forwards}@keyframes confetti-fall{0%{transform:translateZ(0) rotate(0);opacity:1}80%{opacity:1}to{transform:translate3d(var(--drift, 0px),150px,0) rotate(var(--spin, 540deg));opacity:0}}.win-stars{display:flex;justify-content:center;gap:.35rem;margin:.7rem 0 .15rem;font-size:2rem;line-height:1}.win-star{color:var(--ink-soft);transform-origin:50% 60%}.win-star.lit{color:var(--accent);text-shadow:2px 2px 0 var(--ink);animation:star-pop .55s cubic-bezier(.2,1.4,.4,1) both}@keyframes star-pop{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.35) rotate(8deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.win-stars-hint{text-align:center;margin:.2rem 0 0}.win-best{display:flex;justify-content:center;margin:.5rem 0 0}.win-best .badge{background:var(--ok);color:#fff;animation:pop .25s ease .7s both}.win-prev{text-align:center;margin:.4rem 0 0;font-variant-numeric:tabular-nums}.win-daily{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem 1rem;margin-top:.9rem;padding:.55rem .8rem;background:var(--panel-2);border:2px solid var(--ink);border-radius:10px}.win-streak{margin:0;font-weight:800}.win-streak .plus{color:var(--accent-2);margin-right:.35rem}.win-countdown{color:var(--muted);font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums}.win-share{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem;margin-top:1rem}.win-share-notice{font-size:.85rem;font-weight:700;color:var(--ok);animation:fade .15s ease}.win-share-notice.error{color:var(--danger)}@media (prefers-reduced-motion: reduce){.confetti{display:none}}.share-panel{width:100%;display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:.7rem .6rem .5rem;background:var(--panel-2);border:2px solid var(--ink);border-radius:12px;animation:fade .15s ease}.share-panel-title{margin:0;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.share-targets,.share-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem}.share-target-mark{display:inline-block;min-width:1.1em;margin-right:.3rem;font-weight:900}.share-target.x .share-target-mark{font-size:1.05em}.share-image-hint{margin:0;text-align:center;max-width:34ch}.tut-layer{position:fixed;inset:0;z-index:45;overflow:hidden;pointer-events:auto;touch-action:none;animation:fade .15s ease}.tut-spot{position:fixed;border-radius:14px;box-shadow:0 0 0 9999px #140f0a94,0 0 0 3px var(--accent),0 0 0 6px #f2b23359;pointer-events:none;transition:top .28s cubic-bezier(.2,.8,.2,1),left .28s cubic-bezier(.2,.8,.2,1),width .28s cubic-bezier(.2,.8,.2,1),height .28s cubic-bezier(.2,.8,.2,1)}.tut-spot.hidden{top:50%;left:50%;width:0;height:0;box-shadow:0 0 0 9999px #140f0a94}:root[data-mode=noir] .tut-spot{box-shadow:0 0 0 9999px #000000ad,0 0 0 3px var(--accent),0 0 0 6px #d9a83a59}.tut-card{position:fixed;width:min(calc(100vw - 24px),380px);background:var(--panel);color:var(--text);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1rem 1.1rem .95rem;display:flex;flex-direction:column;gap:.55rem;animation:pop .18s ease}:root[data-mode=noir] .tut-card{border-color:#3a3d4a}.tut-card.dock{left:50%;bottom:12px;transform:translate(-50%)}.tut-card.below,.tut-card.above{transition:top .28s cubic-bezier(.2,.8,.2,1),left .28s cubic-bezier(.2,.8,.2,1)}.tut-card.below:before,.tut-card.above:before{content:"";position:absolute;left:50%;width:14px;height:14px;background:var(--panel);border-left:var(--border);border-top:var(--border);transform:translate(-50%) rotate(45deg)}.tut-card.below:before{top:-9px}.tut-card.above:before{bottom:-9px;transform:translate(-50%) rotate(225deg)}:root[data-mode=noir] .tut-card:before{border-color:#3a3d4a}.tut-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.tut-title{font-family:var(--font-display);font-weight:900;font-size:1.15rem;margin:0}.tut-step{white-space:nowrap}.tut-text{margin:0;line-height:1.5;font-size:.98rem;animation:fade .2s ease}.tut-dots{list-style:none;display:flex;gap:6px;margin:0;padding:0}.tut-dots li{width:8px;height:8px;border-radius:50%;background:var(--ink-soft);transition:background .15s ease,transform .15s ease}.tut-dots li.done{background:var(--muted)}.tut-dots li.on{background:var(--accent);transform:scale(1.25)}.tut-actions{display:flex;align-items:center;gap:.5rem;margin-top:.2rem;flex-wrap:wrap}.tut-spacer{flex:1}.tut-layer.narrow .tut-card{left:50%;right:auto;top:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);width:calc(100vw - 20px);max-height:55vh;overflow:auto}.tut-layer.narrow .tut-card:before{display:none}@media (prefers-reduced-motion: reduce){.tut-layer,.tut-card,.tut-text{animation:none}.tut-spot,.tut-card.below,.tut-card.above,.tut-dots li{transition:none}}.collection-hint{margin:0 0 .5rem;font-size:.92rem;line-height:1.45}.collection-count{margin:0 0 .6rem;font-family:var(--font-display);font-weight:900;font-size:1.05rem}.collection-section+.collection-section{margin-top:1.3rem}.collection-title{font-size:.85rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:.8rem}.collection-grid.bonus{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.cat-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;padding:.4rem .4rem .55rem;border:var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-sm)}:root[data-mode=noir] .cat-card{border-color:#3a3d4a}.cat-card-portrait{position:relative;width:100%;aspect-ratio:1;display:flex;align-items:flex-end;justify-content:center;border:2px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--panel-2)}.cat-card-portrait svg{width:88%;height:88%;margin-bottom:-6%;filter:drop-shadow(0 3px 0 rgba(0,0,0,.25))}.cat-card-tag{position:absolute;top:4px;left:4px;font-size:.68rem;padding:0 .5rem}.cat-card-name{font-family:var(--font-display);font-weight:800;font-size:1rem;margin-top:.15rem}.cat-card-bio,.cat-card-req{margin:0;line-height:1.35;color:var(--muted)}.cat-card-req{color:var(--text);font-weight:700}.cat-card-state{background:var(--ok);color:#fff;margin-top:.15rem}.cat-card.locked{background:var(--panel-2);border-style:dashed;box-shadow:none}.cat-card.locked .cat-card-portrait{background:repeating-linear-gradient(45deg,#00000029 0 8px,#00000014 8px 16px),var(--panel-2)}.cat-card.locked .cat-card-portrait svg{filter:none}.cat-card.locked .cat-card-tag{background:var(--panel);color:var(--muted)}.unlock-bar{width:100%;height:10px;margin-top:.3rem;border:2px solid var(--ink);border-radius:999px;background:var(--panel);overflow:hidden}.unlock-bar-fill{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.unlock-toast{position:fixed;left:50%;bottom:1.25rem;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:.45rem;max-width:min(92vw,420px);padding:.7rem 1rem .8rem;border:var(--border);border-radius:12px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);text-align:center;animation:toast-in .35s cubic-bezier(.2,1.3,.4,1) both}:root[data-mode=noir] .unlock-toast{border-color:#3a3d4a}.unlock-toast-title{font-family:var(--font-display);font-weight:900;font-size:1.05rem;color:var(--accent-2)}.unlock-toast-cats{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}.unlock-toast-cat{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-weight:800;font-size:.85rem}.unlock-toast-portrait{display:flex;align-items:flex-end;justify-content:center;width:52px;height:52px;border:2px solid var(--ink);border-radius:8px;overflow:hidden}.unlock-toast-portrait svg{margin-bottom:-4px}@keyframes toast-in{0%{transform:translate(-50%,24px) scale(.95);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}@media (max-width: 600px){.collection-grid,.collection-grid.bonus{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){.unlock-toast{animation:none}.unlock-bar-fill{transition:none}}.archive-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:.4rem 0 .8rem}.archive-month{font-family:var(--font-display);font-size:1.15rem;margin:0;text-align:center;flex:1;text-transform:capitalize}.archive-nav-btn{min-width:2.4rem;font-size:1.3rem;line-height:1;padding:.25rem .6rem}.archive-nav-btn:disabled{opacity:.35;cursor:default;box-shadow:none;transform:none}.archive-grid{display:flex;flex-direction:column;gap:.35rem}.archive-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.archive-weekday{text-align:center;font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;padding-bottom:.15rem}.archive-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;aspect-ratio:1;min-width:0;border-radius:10px;border:2px solid var(--ink-soft);background:var(--panel-2);color:var(--text);font:inherit;font-size:.8rem;padding:.2rem;text-align:center}.archive-cell.empty{border-color:transparent;background:transparent}.archive-cell.blank,.archive-cell.future{color:var(--muted);opacity:.45;background:transparent;border-style:dashed}button.archive-cell{cursor:pointer;border:2px solid var(--ink);background:var(--panel);box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .08s ease}button.archive-cell:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}button.archive-cell:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}button.archive-cell:focus-visible{outline:3px solid var(--blue);outline-offset:2px}button.archive-cell.solved{background:color-mix(in srgb,var(--ok) 28%,var(--panel))}button.archive-cell.inProgress{background:color-mix(in srgb,var(--accent) 30%,var(--panel))}.archive-cell.today{box-shadow:0 0 0 3px var(--panel),0 0 0 6px var(--accent)}button.archive-cell.today{box-shadow:var(--shadow-sm),0 0 0 3px var(--panel),0 0 0 6px var(--accent)}button.archive-cell.today:hover{box-shadow:4px 4px 0 var(--ink),0 0 0 3px var(--panel),0 0 0 6px var(--accent)}.archive-daynum{font-size:.75rem;font-weight:700;line-height:1;opacity:.85}.archive-mark{font-size:1.05rem;line-height:1.1}.archive-cell.solved .archive-mark{color:var(--ok);font-weight:900;-webkit-text-stroke:.6px var(--ink);paint-order:stroke fill}.archive-cell.inProgress .archive-mark{color:var(--accent-2);-webkit-text-stroke:.6px var(--ink);paint-order:stroke fill}.archive-stars{font-size:.6rem;letter-spacing:0}.archive-legend{display:flex;gap:1rem;justify-content:center;margin:.7rem 0 0}.archive-legend-mark{font-weight:900}.archive-footer{margin-top:.7rem;padding-top:.7rem;border-top:2px dashed var(--ink-soft);display:flex;flex-direction:column;gap:.3rem}.archive-count{font-weight:700}.archive-hint{margin:0}@media (max-width: 480px){.archive-row{gap:.25rem}.archive-cell{border-radius:8px;font-size:.7rem}.archive-mark{font-size:.9rem}.archive-stars{font-size:.5rem}.archive-daynum{font-size:.65rem}}.pwa-card,.pwa-toast,.pwa-pill{position:fixed;left:50%;transform:translate(-50%);bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:40;box-sizing:border-box;background:var(--panel);color:var(--text);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);animation:pwa-rise .2s ease}@keyframes pwa-rise{0%{opacity:0;transform:translate(-50%,12px)}}@media (prefers-reduced-motion: reduce){.pwa-card,.pwa-toast,.pwa-pill{animation:none}}.pwa-card{width:min(calc(100vw - 2rem),440px);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.8rem}.pwa-card-title{margin:0 0 .25rem;font-family:var(--font-display);font-size:1.1rem;font-weight:900}.pwa-card-body{margin:0;color:var(--muted);font-size:.95rem;line-height:1.4}.pwa-card-hint{margin:.5rem 0 0;padding:.5rem .7rem;background:var(--panel-2);border:2px solid var(--ink-soft);border-radius:10px;font-size:.9rem;font-weight:700}.pwa-card-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.pwa-toast{width:min(calc(100vw - 2rem),440px);padding:.7rem .9rem;display:flex;align-items:center;gap:.8rem}.pwa-toast-text{flex:1;font-weight:700;font-size:.95rem}.pwa-pill{padding:.45rem .9rem;border-radius:999px;font-size:.9rem;font-weight:800;box-shadow:var(--shadow-sm);pointer-events:none}:root{--bg: #ece7df;--bg-2: #f6f2ea;--panel: #ffffff;--panel-2: #f3efe7;--text: #1b1a17;--muted: #6f6a62;--ink: #17161a;--ink-soft: rgba(23, 22, 26, .18);--accent: #f2b233;--accent-2: #e09a10;--accent-text: #1b1a17;--blue: #3d8bff;--blue-soft: rgba(61, 139, 255, .28);--ok: #4fae6a;--danger: #e2483f;--danger-bg: rgba(226, 72, 63, .26);--select: #ffd45c;--shadow: 4px 4px 0 var(--ink);--shadow-sm: 3px 3px 0 var(--ink);--shadow-lg: 8px 8px 0 var(--ink);--radius: 12px;--border: 3px solid var(--ink);--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-display: "Avenir Next", "Trebuchet MS", system-ui, -apple-system, "Segoe UI", "PingFang SC", "Noto Sans SC", "Apple SD Gothic Neo", sans-serif}:root[data-mode=noir]{--bg: #15161c;--bg-2: #1d1f28;--panel: #262934;--panel-2: #1f2129;--text: #ece6da;--muted: #9a938a;--ink: #0b0b0e;--ink-soft: rgba(236, 230, 218, .15);--accent: #d9a83a;--accent-2: #f0c14f;--accent-text: #1a1a1a;--blue: #6fa8ff;--blue-soft: rgba(111, 168, 255, .32);--ok: #7fbf8a;--danger: #ef6b62;--danger-bg: rgba(239, 107, 98, .3);--select: #f0d27a}:root[data-mode=noir] .suspect-card,:root[data-mode=noir] .bubble,:root[data-mode=noir] .tool,:root[data-mode=noir] .card,:root[data-mode=noir] .chapter,:root[data-mode=noir] .modal,:root[data-mode=noir] .level-btn,:root[data-mode=noir] .btn,:root[data-mode=noir] .seg,:root[data-mode=noir] .timer,:root[data-mode=noir] .board-frame{border-color:#3a3d4a}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:var(--bg);background-image:radial-gradient(rgba(0,0,0,.05) 1px,transparent 1px);background-size:18px 18px;min-height:100vh;line-height:1.45;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3{margin:0;line-height:1.2}p{margin:.25rem 0}ul,ol{margin:0;padding:0;list-style:none}.muted{color:var(--muted)}.small{font-size:.82rem}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.btn{border:var(--border);background:var(--panel);border-radius:10px;padding:.5rem 1rem;font-weight:800;box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .08s ease}.btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.btn.primary{background:var(--accent);color:var(--accent-text)}.btn.ghost{background:var(--panel-2)}.btn.on{background:var(--select);color:#1b1a17}.small-btn{padding:.3rem .7rem;font-size:.85rem}.seg{display:inline-flex;border:var(--border);border-radius:10px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-sm)}.seg button{border:0;background:transparent;padding:.4rem .85rem;font-size:.9rem;font-weight:700}.seg button+button{border-left:2px solid var(--ink)}.seg button.on{background:var(--accent);color:var(--accent-text)}.lang-picker{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .5rem .25rem .6rem;border:var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-sm);font-size:.9rem;font-weight:700;cursor:pointer}.lang-picker select{border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:.15rem 0;cursor:pointer;max-width:8.5rem}.lang-picker select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.lang-picker option{color:#1b1b1f;background:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:700;cursor:pointer}.toggle input{accent-color:var(--accent);width:1.15rem;height:1.15rem}.settings-bar{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:center;margin-top:1rem}.landing{max-width:1120px;margin:0 auto;padding:1rem 1.25rem 3rem}.landing-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem}.landing-top .settings-bar{margin-top:0;justify-content:flex-end}.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:2.5rem;align-items:center;margin-top:2.5rem}.eyebrow{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:2px solid var(--ink);border-radius:999px;padding:.15rem .7rem;background:var(--panel)}.hero-title{margin-top:.8rem;font-size:clamp(2.6rem,6vw,4rem)}.hero-tagline{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:900;margin:.6rem 0 .4rem;line-height:1.2}.hero-tagline:after{content:"";display:block;width:84px;height:8px;margin-top:.6rem;background:var(--accent);border:2px solid var(--ink);border-radius:999px}.hero-body{font-size:1.05rem;line-height:1.6;max-width:34rem;margin:.9rem 0 1.4rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}.btn.big{font-size:1.05rem;padding:.7rem 1.3rem;box-shadow:var(--shadow)}.hero-visual{display:flex;flex-direction:column;align-items:center;gap:.9rem;min-width:0}.hero-board{position:relative;width:min(100%,460px);transform:rotate(-1.5deg)}.hero-board .board-frame{width:100%}.hero-board .cell{cursor:default}.hero-stamp{position:absolute;top:-14px;right:-10px;background:var(--accent);color:var(--accent-text);border:var(--border);border-radius:999px;padding:.2rem .75rem;font-weight:800;font-size:.85rem;box-shadow:var(--shadow-sm);transform:rotate(4deg)}.hero-clues{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;width:100%}.hero-clue{flex:1 1 200px;max-width:260px;display:flex;gap:.55rem;align-items:flex-start;background:var(--panel);border:var(--border);border-radius:10px;padding:.5rem .6rem;box-shadow:var(--shadow-sm);transform:rotate(var(--tilt, 0deg));font-size:.85rem;line-height:1.35}.hero-clue-portrait{flex:0 0 auto;width:44px;height:44px;border:2px solid var(--ink);border-radius:6px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.hero-clue-portrait svg{margin-bottom:-4px}.hero-clue-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.hero-clue-text>b{font-family:var(--font-display);font-size:.9rem}.hero-caption{text-align:center;max-width:34rem}.section-title{font-family:var(--font-display);font-size:1.5rem;text-align:center;margin:3rem 0 1.2rem}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}.step{position:relative;align-items:flex-start;padding-top:1.4rem}.step h3{font-size:1.1rem}.step .mini-grid{--mg: 34px;width:calc(var(--mg) * 3 + 6px)}.step-num{position:absolute;top:-16px;left:14px;width:34px;height:34px;border-radius:50%;border:var(--border);background:var(--accent);color:var(--accent-text);font-family:var(--font-display);font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.9rem}.feature{display:flex;gap:.8rem;align-items:flex-start;background:var(--panel);border:2px solid var(--ink);border-radius:12px;padding:.85rem 1rem}.feature h3{font-size:1rem;margin-bottom:.2rem}.feature-icon{font-size:1.6rem;line-height:1;flex:0 0 auto}.landing-faq .faq{max-width:46rem;margin:0 auto}.landing-cta{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem;margin-top:3rem}.landing-foot{text-align:center;margin-top:3rem;border-top:2px solid var(--ink-soft);padding-top:1.2rem}.landing-links{display:flex;justify-content:center;gap:1.2rem;margin-top:.4rem}.linkish{border:0;background:none;padding:0;color:var(--muted);font-weight:700;text-decoration:underline;text-underline-offset:3px}.linkish:hover{color:var(--text)}.menu-head{position:relative}.menu-home{position:absolute;left:0;top:0}@media (max-width: 600px){.menu-home{position:static;margin-bottom:.6rem}}@media (max-width: 900px){.hero{grid-template-columns:1fr;gap:1.8rem;margin-top:1.5rem}.hero-copy{text-align:center}.hero-tagline:after{margin-left:auto;margin-right:auto}.hero-body{margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.hero-board{transform:none}.section-title{margin-top:2.2rem}}.menu{max-width:1000px;margin:0 auto;padding:2rem 1rem 3rem}.menu-head{text-align:center}.title{font-family:var(--font-display);font-size:clamp(2.2rem,5.5vw,3.4rem);font-weight:900;letter-spacing:.01em;-webkit-text-stroke:1px var(--ink)}.title-icon{margin-right:.4rem;-webkit-text-stroke:0}.subtitle{display:inline-block;margin-top:.4rem;font-size:1rem;font-weight:800;background:var(--accent);color:var(--accent-text);border:var(--border);border-radius:999px;padding:.15rem .9rem;box-shadow:var(--shadow-sm)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.25rem;margin:1.75rem 0}.card,.chapter{background:var(--panel);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.55rem}.card h2{font-size:1.2rem}.card .btn{align-self:flex-start}.card-meta{font-size:.9rem;color:var(--muted)}.chapters-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.9rem}.chapter{padding:1rem 1.2rem;margin-bottom:1.25rem}.chapter h3{font-size:1.05rem}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;margin-top:.8rem}.level-btn{width:100%;border:var(--border);background:var(--panel-2);border-radius:10px;padding:.6rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .08s ease}.level-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.level-btn.done{background:color-mix(in srgb,var(--ok) 28%,var(--panel-2))}.level-num{font-weight:800}.level-size{font-size:1.1rem;font-weight:700}.level-diff,.level-best{font-size:.75rem;color:var(--muted)}.level-best{color:var(--ok);font-weight:700}.level-btn.playing{background:color-mix(in srgb,var(--blue) 22%,var(--panel-2))}.level-playing{font-size:.75rem;color:var(--blue);font-weight:700}.menu-foot{text-align:center;margin-top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.6rem}.resume{margin-top:1.5rem}.resume-card{flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;background:color-mix(in srgb,var(--blue) 14%,var(--panel))}.resume-card h2{font-size:1.1rem}.resume-card .btn{align-self:center;white-space:nowrap}@media (max-width: 600px){.resume-card{flex-direction:column;align-items:stretch}}.account{display:inline-flex;align-items:center;gap:.45rem;border:var(--border);border-radius:999px;background:var(--panel);padding:.2rem .4rem .2rem .25rem;box-shadow:var(--shadow-sm);max-width:100%}.account-avatar{width:26px;height:26px;border-radius:50%;border:2px solid var(--ink);object-fit:cover;flex:0 0 auto}.account-avatar.initial{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);font-weight:900;font-size:.8rem}.account-name{font-size:.85rem;font-weight:700;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account .btn{box-shadow:none;padding:.15rem .55rem}.sync-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);background:var(--muted);flex:0 0 auto}.sync-dot.synced{background:var(--ok)}.sync-dot.syncing{background:var(--accent);animation:pulse .9s ease-in-out infinite alternate}.sync-dot.error{background:var(--danger)}@keyframes pulse{0%{opacity:.4}to{opacity:1}}.auth-block{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}.auth-google{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--panel);color:var(--text)}.google-mark{flex:0 0 auto}.auth-divider{display:flex;align-items:center;gap:.6rem;margin:1rem 0 .2rem;color:var(--muted);font-size:.8rem;font-weight:700}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:2px solid var(--ink-soft)}.auth-label{font-weight:800;font-size:.9rem}.auth-row{display:flex;gap:.5rem}.auth-input{flex:1;min-width:0;font:inherit;color:var(--text);background:var(--panel-2);border:var(--border);border-radius:10px;padding:.45rem .7rem}.auth-sent{margin-top:.9rem;padding:.6rem .8rem;border:var(--border);border-radius:10px;background:color-mix(in srgb,var(--ok) 22%,var(--panel));font-weight:700}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin:.2rem 0 .9rem;padding:.25rem;border:var(--border);border-radius:12px;background:var(--panel-2)}.auth-tab{font:inherit;font-weight:800;color:var(--muted);background:transparent;border:2px solid transparent;border-radius:9px;padding:.4rem .6rem;cursor:pointer}.auth-tab:hover{color:var(--text)}.auth-tab.on{color:var(--text);background:var(--panel);border-color:var(--ink);box-shadow:var(--shadow-sm)}.auth-form{display:flex;flex-direction:column;gap:.7rem;margin-top:.9rem}.auth-field{display:flex;flex-direction:column;gap:.3rem}.auth-field .auth-input{width:100%}.auth-password{position:relative;display:flex}.auth-password .auth-input{padding-right:2.6rem}.auth-eye{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;background:transparent;border:2px solid transparent;border-radius:8px;cursor:pointer}.auth-eye:hover,.auth-eye:focus-visible{border-color:var(--ink-soft);background:var(--panel)}.auth-submit{width:100%;margin-top:.2rem}.auth-links{display:flex;justify-content:flex-end;margin-top:-.3rem}.auth-link{font:inherit;font-size:.85rem;font-weight:800;color:var(--text);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.auth-link:hover:not(:disabled){color:var(--accent-ink, var(--text));text-decoration-color:var(--accent)}.auth-link:disabled{opacity:.5;cursor:default}.auth-footer{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;margin-top:1rem}.auth-consent{margin:0;text-align:center}.auth-consent a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}.auth-setup{margin-top:.9rem;padding:.8rem;border:var(--border);border-radius:10px;background:var(--panel-2)}.auth-setup-title{margin:0 0 .35rem;font-weight:900}.auth-config{margin:.7rem 0 0;padding:.65rem .75rem;overflow-x:auto;border:var(--border);border-radius:8px;background:var(--panel);color:var(--text);font:.82rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.game{display:grid;grid-template-columns:minmax(320px,34%) minmax(0,1fr) 176px;min-height:100vh}.col-left{border-right:var(--border);background:var(--bg-2);padding:.9rem 1rem 1.5rem;overflow-y:auto;max-height:100vh}.col-board{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem 1.25rem}.tools{border-left:var(--border);background:var(--bg-2);padding:.9rem .8rem 1rem;display:flex;flex-direction:column;gap:.6rem;max-height:100vh;overflow-y:auto}@media (max-width: 980px){.game{grid-template-columns:1fr;grid-template-areas:"head" "board" "tools" "suspects"}.col-left{display:contents}.game-head{grid-area:head;padding:.8rem 1rem 0}.suspects{grid-area:suspects;padding:0 1rem 2rem}.col-board{grid-area:board;padding:.75rem .75rem .5rem}.tools{grid-area:tools}}.brand-row{display:flex;align-items:center;gap:.6rem}.brand{font-family:var(--font-display);font-weight:900;font-size:1.35rem;letter-spacing:.02em}.brand-sub{margin-left:auto}.case-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.5rem}.case-title{font-size:1rem}.timer{font-variant-numeric:tabular-nums;font-weight:800;background:var(--panel);border:var(--border);padding:.15rem .6rem;border-radius:8px;box-shadow:var(--shadow-sm)}.case-line{margin:.5rem 0 .9rem;font-size:.9rem}.suspects-head{text-align:center;margin-bottom:.6rem}.suspects-head h2{font-size:1rem}.suspect-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:1.1rem .8rem}.suspect{display:flex;flex-direction:column;gap:.5rem}.suspect-card{width:100%;padding:0;border:var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;text-align:center;transition:transform .08s ease,box-shadow .08s ease}.suspect-card:not(.static):hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}.suspect-card:not(.static):active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.portrait{position:relative;display:flex;align-items:flex-end;justify-content:center;aspect-ratio:1;margin:6px 6px 0;border:var(--border);border-radius:6px;overflow:hidden}.portrait svg{width:88%;height:88%;margin-bottom:-6%;filter:drop-shadow(0 3px 0 rgba(0,0,0,.25))}.victim-portrait,.log-portrait{background:repeating-linear-gradient(45deg,#f3e2b3 0 10px,#eed59a 10px 20px);align-items:center}.log-portrait{background:repeating-linear-gradient(0deg,#e9eef3 0 12px,#d9e2ec 12px 24px)}.victim-icon{font-size:3rem;filter:drop-shadow(0 3px 0 rgba(0,0,0,.25))}.prop-art{width:1em;height:1em;display:block;object-fit:contain;user-select:none}.prop-art.wide{width:1.4em}.portrait .cat-artwork,.cat-card-portrait .cat-artwork,.hero-clue-portrait .cat-artwork,.unlock-toast-portrait .cat-artwork{margin-bottom:0;align-self:center}.suspect-name{font-family:var(--font-display);font-weight:800;font-size:1.05rem;padding:.3rem .3rem .4rem}.placed-tag{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:2px solid var(--ink);background:var(--ok);color:#fff;font-size:.8rem;font-weight:900;display:flex;align-items:center;justify-content:center}.suspect.placed .suspect-card{background:var(--panel-2)}.suspect.placed .portrait svg{opacity:.85}.suspect.selected .suspect-card{outline:4px solid var(--blue);outline-offset:-1px}.suspect.selected .suspect-name{color:var(--blue)}.bubble{border:var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-sm);padding:.35rem;display:flex;flex-direction:column;gap:.3rem;position:relative}.bubble:before{content:"";position:absolute;top:-9px;left:18px;width:12px;height:12px;background:var(--panel);border-left:var(--border);border-top:var(--border);transform:rotate(45deg)}.suspect.selected .bubble{background:color-mix(in srgb,var(--blue) 12%,var(--panel))}.suspect.selected .bubble:before{background:color-mix(in srgb,var(--blue) 12%,var(--panel))}.clue{width:100%;text-align:left;border:0;background:transparent;border-radius:6px;padding:.35rem .45rem;font-size:.88rem;line-height:1.4}.clue b{font-weight:800}.clue:not(.static-clue):hover{background:var(--panel-2)}.clue.struck{text-decoration:line-through;opacity:.45}.clue.violated{background:var(--danger-bg);box-shadow:inset 4px 0 0 var(--danger)}.clue.silent{text-align:center}.clue.static-clue{display:block;cursor:default}.board-frame{width:min(100%,calc(96px * var(--n) + 40px),640px);border:var(--border);border-radius:4px;box-shadow:var(--shadow-lg);background:var(--ink);padding:4px}.board{display:grid;width:100%;aspect-ratio:1;gap:0}.cell{position:relative;min-width:0;min-height:0;width:100%;height:100%;container-type:size;border:0;padding:0;margin:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-top:1px solid var(--ink-soft);border-left:1px solid var(--ink-soft);transition:filter .12s ease,box-shadow .12s ease}.cell.wall-t{border-top:5px solid var(--ink)}.cell.wall-l{border-left:5px solid var(--ink)}.cell.wall-b{border-bottom:5px solid var(--ink)}.cell.wall-r{border-right:5px solid var(--ink)}.cell.blocked{cursor:default}.cell:after{content:"";position:absolute;inset:0;pointer-events:none;background:transparent;border:0 solid var(--blue);transition:background .1s ease;z-index:1}.cell.room-hover:after{background:#ffffff1a}.cell.room-hover.edge-t:after{border-top-width:4px}.cell.room-hover.edge-l:after{border-left-width:4px}.cell.room-hover.edge-b:after{border-bottom-width:4px}.cell.room-hover.edge-r:after{border-right-width:4px}.cell.cell-hover:after{background:#ffffff8c}:root[data-mode=noir] .cell.room-hover:after{background:#ffffff0d}:root[data-mode=noir] .cell.cell-hover:after{background:#ffffff4d}.cell>*{position:relative;z-index:2}.cell>.cell-caption{position:absolute}.cell.hl{box-shadow:inset 0 0 0 4px var(--blue)}.cell.dim{filter:saturate(.75) brightness(.94)}:root[data-mode=noir] .cell.dim{filter:brightness(.75)}.cell.selected{box-shadow:inset 0 0 0 5px var(--select)}.cell.conflict{box-shadow:inset 0 0 0 100vmax var(--danger-bg)}.cell.conflict.selected{box-shadow:inset 0 0 0 5px var(--select),inset 0 0 0 100vmax var(--danger-bg)}.cell.culprit{animation:glow 1.1s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:inset 0 0 0 4px var(--accent)}to{box-shadow:inset 0 0 0 8px var(--accent)}}.cell-emoji{font-size:46cqw;line-height:1;user-select:none;filter:drop-shadow(0 3px 0 rgba(0,0,0,.35));transform:translateY(-6cqw)}.cell-emoji.prop{opacity:.95}.cell-cat{width:84cqw;height:84cqw;display:block;filter:drop-shadow(0 3px 0 rgba(0,0,0,.3))}.cell-mark{font-size:40cqw;line-height:1;color:var(--ink);opacity:.55;font-weight:900}.cell-notes{display:flex;flex-wrap:wrap;gap:2cqw;justify-content:center;align-items:center;max-width:90cqw}.note-cat{width:24cqw;height:24cqw;display:block;background:#fff;border-radius:50%;border:1.5px solid var(--ink)}.board{position:relative}.room-labels{position:absolute;inset:0;pointer-events:none;z-index:2;container-type:size}.room-label{position:absolute;font-family:var(--font-display);font-size:clamp(.62rem,calc(18cqw / var(--n)),1.05rem);font-weight:900;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1}.cell-caption{position:absolute;bottom:3cqw;left:0;right:0;text-align:center;font-size:clamp(8px,12cqw,12px);font-weight:700;color:#fff;-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}.cell.has-label .cell-caption{display:none}.mode-banner{max-width:620px;background:var(--blue);color:#fff;border:var(--border);border-radius:10px;padding:.5rem .8rem;font-size:.85rem;font-weight:700;box-shadow:var(--shadow-sm)}.tools-title{font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.tools-group{display:flex;flex-direction:column;gap:.6rem}.tools-group.bottom{margin-top:auto}.tools-row{display:flex;gap:.6rem}.tool{border:var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);padding:.55rem .5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;font-weight:800;min-height:48px;transition:transform .08s ease,box-shadow .08s ease}.tool:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}.tool:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.tool:disabled{box-shadow:var(--shadow-sm)}.tool.on{background:var(--blue);color:#fff}.tool.primary{background:var(--accent);color:var(--accent-text)}.tool.accuse{min-height:64px}.tool-icon{font-size:1.3rem;line-height:1}.tool-label{font-size:.82rem;line-height:1.2;text-align:center}.tool-sub{font-size:.68rem;font-weight:600;opacity:.8;text-align:center}.tool.icon-only{flex:1;padding:.4rem;font-size:1.1rem;min-height:42px}.tool.back{flex:0 0 auto;width:42px;box-shadow:var(--shadow-sm)}.modal-backdrop{position:fixed;inset:0;background:#140f0a80;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.4rem 1.5rem;width:min(100%,480px);max-height:90vh;overflow:auto;animation:pop .18s ease}.modal.wide{width:min(100%,640px)}@keyframes pop{0%{transform:translateY(12px) scale(.98);opacity:0}}.modal-title{font-family:var(--font-display);font-size:1.5rem;margin-bottom:.4rem}.modal-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.2rem}.accuse-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.8rem;margin-top:.9rem}.accuse-cat{width:100%;display:flex;flex-direction:column;align-items:center;gap:.25rem;border:var(--border);background:var(--panel);border-radius:10px;padding:.35rem .35rem .5rem;font-weight:800;box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .08s ease}.accuse-cat .portrait{width:100%;margin:0}.accuse-cat:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.accuse-cat.wrong{opacity:.5;outline:3px solid var(--danger)}.feedback{margin-top:.9rem;padding:.6rem .8rem;border-radius:10px;border:var(--border);background:var(--danger-bg);color:var(--text);font-weight:700}.shake{animation:shake .35s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.win-hero{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin:.4rem 0}.badge{background:var(--accent);color:var(--accent-text);border:2px solid var(--ink);border-radius:999px;padding:.1rem .7rem;font-size:.8rem;font-weight:800}.win-body{text-align:center;font-size:1.02rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem 0 0}.stats div{background:var(--panel-2);border:2px solid var(--ink);border-radius:10px;padding:.5rem;text-align:center}.stats dt{font-size:.75rem;color:var(--muted);font-weight:700}.stats dd{margin:0;font-weight:900;font-size:1.15rem;font-variant-numeric:tabular-nums}.rules-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.4rem 0 .9rem;border-bottom:3px solid var(--ink);padding-bottom:.6rem}.rules-tab{border:var(--border);border-radius:999px;background:var(--panel-2);padding:.3rem .9rem;font-weight:800;font-size:.9rem;box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .08s ease}.rules-tab:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.rules-tab.on{background:var(--accent);color:var(--accent-text)}.rules-panel{display:flex;flex-direction:column;gap:1rem;font-size:.95rem}.rules-section h3{font-family:var(--font-display);font-size:1.05rem;margin-bottom:.35rem}.rules-section p{margin:.2rem 0}.rules-list{padding-left:1.3rem;display:flex;flex-direction:column;gap:.35rem}.rules-list.ordered{list-style:decimal}.rules-list.bullets{list-style:disc}.kw-list{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.kw{display:flex;gap:.7rem;align-items:flex-start;background:var(--panel-2);border:2px solid var(--ink);border-radius:10px;padding:.6rem}.kw-text{min-width:0}.kw dt{font-weight:800;margin-bottom:.15rem}.kw dd{margin:0;font-size:.88rem;color:var(--text)}.tech-steps{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.5rem}.tech-step{margin:0;display:flex;gap:.6rem;align-items:center;flex:1 1 240px;background:var(--panel-2);border:2px solid var(--ink);border-radius:10px;padding:.5rem .6rem}.tech-step figcaption{font-size:.85rem;color:var(--muted)}.faq{display:flex;flex-direction:column;gap:.5rem}.faq-item{border:2px solid var(--ink);border-radius:10px;background:var(--panel-2);padding:.45rem .8rem}.faq-item summary{cursor:pointer;font-weight:800;list-style:none;display:flex;gap:.5rem;align-items:baseline}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:before{content:"▸";flex:0 0 auto;transition:transform .12s ease}.faq-item[open] summary:before{transform:rotate(90deg)}.faq-item p{margin:.45rem 0 .2rem 1.1rem;font-size:.9rem}.mini-grid{--mg: 30px;display:grid;flex:0 0 auto;border:3px solid var(--ink);border-radius:3px;background:var(--ink);width:calc(var(--mg) * 3 + 6px);aspect-ratio:1}.mg-cell{position:relative;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--ink-soft);border-left:1px solid var(--ink-soft);font-size:.85rem;line-height:1}.mg-cell.mg-wall-t{border-top:3px solid var(--ink)}.mg-cell.mg-wall-l{border-left:3px solid var(--ink)}.mg-cell.mg-hl{box-shadow:inset 0 0 0 3px var(--blue)}.mg-cat{width:20px;height:20px;border-radius:50%;border:2px solid var(--ink);background:#fff;color:var(--ink);font-weight:900;font-size:.75rem;display:flex;align-items:center;justify-content:center}.mg-cat.maybe{border-style:dashed;background:#ffffff8c;font-weight:700}.mg-icon{font-size:1rem;filter:drop-shadow(0 1px 0 rgba(0,0,0,.3))}.mg-x{font-weight:900;color:var(--ink);opacity:.55}.mg-must{font-weight:900;color:var(--blue);font-size:1rem}:root[data-mode=noir] .mg-cat{background:#ece6da}:root[data-mode=noir] .mg-x{color:#ece6da;opacity:.7}.loading{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--muted)}@media (max-width: 980px){.tools{border-left:0;max-height:none;overflow:visible;background:transparent;padding:.25rem .75rem .5rem;gap:.5rem}.tools-title{display:none}.tools-group,.tools-group.bottom{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:0}.tools-row{display:contents}.tool{flex:1 1 0;min-width:72px;max-width:140px;min-height:52px;padding:.35rem .3rem;box-shadow:var(--shadow-sm)}.tool.accuse{flex:2 1 0;max-width:220px;min-height:52px}.tool.icon-only{flex:0 0 52px;min-height:52px}.tool-icon{font-size:1.1rem}.tool-label{font-size:.75rem}.suspect-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.board-frame{box-shadow:var(--shadow)}.hide-mobile{display:none}.brand-sub{white-space:nowrap;font-size:.75rem}.brand{font-size:1.15rem}.tool.back{min-height:40px;width:40px}}:root[data-mode=noir] .bubble:before{border-color:#3a3d4a}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.scene-art-icon{display:inline-flex;width:1em;height:1em;vertical-align:-.15em}
