:root{--bg: #f4ead5;--bg-2: #eadcbd;--ink: #2a2238;--ink-soft: rgba(42, 34, 56, .72);--ink-faint: rgba(42, 34, 56, .45);--rule: rgba(42, 34, 56, .18);--stamp: #c8332f;--stamp-wash: rgba(200, 51, 47, .16);--evidence: #3e7d5a;--card: #fbf5e7;--inset: rgba(42, 34, 56, .07);--highlight: #f5e9a8;--manila: #e2c68f;--hover: rgba(42, 34, 56, .1);--shadow: 0 14px 34px rgba(42, 34, 56, .18);--lift: 0 4px 0 rgba(42, 34, 56, .25);--wall: #2a2238;--block: #5b4e64;--block-ink: #f4ead5;--place: rgba(255, 255, 255, .6);--tw: "Courier Prime", "Courier New", ui-monospace, monospace;--cond: "Rokkitt", "Arial Narrow", sans-serif;--headline: "Playfair Display", Georgia, serif;--room-K: #ecdba8;--room-L: #e1c9a6;--room-T: #c4ddd8;--room-S: #cfd3a8;--room-B: #e8c8c4;--room-P: #b4d4e2;--room-D: #d9c9df;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #16121c;--bg-2: #1f1928;--ink: #f1e6cf;--ink-soft: rgba(241, 230, 207, .72);--ink-faint: rgba(241, 230, 207, .45);--rule: rgba(241, 230, 207, .16);--stamp: #e2524b;--stamp-wash: rgba(226, 82, 75, .24);--evidence: #5fae82;--card: #241d2e;--inset: rgba(241, 230, 207, .07);--highlight: #4a4224;--manila: #b8995e;--hover: rgba(241, 230, 207, .12);--shadow: 0 14px 40px rgba(0, 0, 0, .55);--lift: 0 4px 0 rgba(0, 0, 0, .45);--wall: #f1e6cf;--block: #8b7f94;--block-ink: #16121c;--place: rgba(255, 255, 255, .14);--room-K: #4b4330;--room-L: #4a3c30;--room-T: #2f4542;--room-S: #3d4230;--room-B: #4a3335;--room-P: #2b4352;--room-D: #3f3547}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);background-image:radial-gradient(ellipse at 50% -10%,var(--bg-2),var(--bg) 60%);background-attachment:fixed;color:var(--ink);font:400 16px/1.45 var(--tw);overflow-x:hidden}main{flex:1;outline:none}a{color:inherit}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--stamp);outline-offset:2px;border-radius:6px}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;z-index:50}.skip-link:focus{left:8px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wrap{max-width:1120px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-left))}.wrap.narrow{max-width:560px}.noscript{text-align:center;padding:24px}.bar{border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--bg) 88%,transparent);position:sticky;top:0;z-index:10;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.bar-in{max-width:1120px;margin:0 auto;padding:10px max(16px,env(safe-area-inset-left));display:flex;align-items:center;gap:12px}.bar-home,.bar-links a{white-space:nowrap;font-family:var(--cond);font-weight:800;font-size:15px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--ink-soft);padding:6px 2px;border-radius:6px}.bar-brand{flex:1;text-align:center;font-family:var(--cond);font-weight:800;font-size:20px;letter-spacing:.2em;color:var(--stamp);text-decoration:none}.bar-links{display:flex;align-items:center;gap:12px}.bar-help{width:34px;height:34px;border-radius:999px;background:var(--inset);font-family:var(--cond);font-weight:800;font-size:18px}@media (max-width: 480px){.bar-in{gap:8px}.bar-home,.bar-links a{font-size:13px;letter-spacing:.05em}.bar-links{gap:8px}.bar-brand{font-size:17px;letter-spacing:.12em}}.ink-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:12px;background:var(--ink);color:var(--bg);font-family:var(--cond);font-weight:800;font-size:17px;letter-spacing:.14em;text-decoration:none;text-align:center;transition:transform .12s,filter .12s}.ink-btn.stamp{background:var(--stamp);color:#fbf5e7}.ink-btn.soft{background:var(--inset);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--rule)}.ink-btn.compact{min-height:40px;padding:0 14px;font-size:15px;letter-spacing:.1em}.ink-btn:active{transform:scale(.97)}.row-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}.row-btns .ink-btn{flex:1 1 140px;white-space:nowrap}@media (max-width: 420px){.row-btns .ink-btn{letter-spacing:.08em;padding:0 12px}}.store-cta{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 18px;border-radius:12px;background:var(--ink);color:var(--bg);text-decoration:none;text-align:center}.store-cta.wide{margin-top:14px}.store-cta-main{font-family:var(--cond);font-weight:800;font-size:17px;letter-spacing:.08em;text-transform:uppercase}.store-cta-sub{font-size:13px;opacity:.8}.card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:18px;position:relative}.h-card{font-family:var(--headline);font-weight:800;font-size:28px;line-height:1.1;margin:0 0 10px}.kicker{font-family:var(--cond);font-weight:800;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--stamp);margin:0 0 6px}.label{font-family:var(--cond);font-weight:800;font-size:13px;letter-spacing:.16em;color:var(--ink-soft);margin:0 0 8px}.label-note{font-family:var(--tw);font-weight:400;font-size:12px;letter-spacing:0;text-transform:none;color:var(--ink-faint);margin-left:6px}.tag{display:inline-block;font-family:var(--cond);font-weight:800;font-size:10px;letter-spacing:.1em;color:#fbf5e7;background:var(--stamp);border-radius:999px;padding:1px 6px;vertical-align:1px}.stamp-mark{position:absolute;top:-14px;right:14px;margin:0;font-family:var(--cond);font-weight:800;font-size:18px;letter-spacing:.14em;color:var(--stamp);background:var(--card);border:3px solid var(--stamp);border-radius:4px;padding:1px 10px;transform:rotate(-6deg)}.loading{text-align:center;padding:64px 0;color:var(--ink-soft)}.menu{padding-top:28px;padding-bottom:40px}.menu-head{text-align:center;max-width:520px;margin:0 auto}.stamp-title{display:inline-block;margin:8px 0 26px;font-family:var(--cond);font-weight:800;font-size:clamp(46px,12vw,72px);letter-spacing:.12em;line-height:1;color:var(--stamp);border:5px solid var(--stamp);border-radius:8px;padding:6px 18px 4px 26px;transform:rotate(-4deg)}.lede{margin:0 auto;color:var(--ink-soft);font-size:16px}.count{font-family:var(--cond);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:14px;color:var(--ink-faint);margin:12px 0 14px}.menu-head .ink-btn{width:100%;max-width:360px}.unlock{max-width:520px;margin:24px auto 8px;padding:16px;border-radius:14px;background:var(--inset);text-align:center}.unlock p{margin:0 0 12px;font-size:15px}.tier{margin-top:26px}.tier-title{font-family:var(--cond);font-weight:800;font-size:15px;letter-spacing:.18em;color:var(--ink-soft);margin:0 0 10px}.tier-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}@media (min-width: 720px){.tier-grid{grid-template-columns:repeat(10,minmax(0,1fr))}}.ptile{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px;border-radius:12px;background:var(--card);text-decoration:none;box-shadow:0 2px 0 var(--rule);transition:transform .12s,background .12s}.ptile-n{font-family:var(--cond);font-weight:800;font-size:21px;line-height:1}.ptile-sub{font-family:var(--cond);font-weight:800;font-size:9px;letter-spacing:.1em;margin-top:3px}.ptile.done{background:var(--evidence);color:#fbf5e7}.ptile.next{box-shadow:inset 0 0 0 2.5px var(--stamp);background:var(--highlight)}.ptile.locked{opacity:.55}.ptile.locked .ptile-sub{color:var(--stamp)}.play-wrap{padding-top:14px;padding-bottom:32px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.back{font-family:var(--cond);font-weight:800;font-size:14px;letter-spacing:.1em;text-decoration:none;color:var(--ink-soft);padding:8px 10px;border-radius:8px;margin-left:-10px}.title-card{display:flex;flex-direction:column;align-items:center;padding:5px 14px;background:var(--card);border-radius:12px;box-shadow:var(--lift)}.tc-n{font-family:var(--cond);font-weight:800;font-size:20px;letter-spacing:.12em;line-height:1.1}.tc-sub{font-family:var(--cond);font-weight:800;font-size:11px;letter-spacing:.12em;color:var(--ink-soft)}.locked-card{margin-top:24px}.play{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}@media (min-width: 900px){.play{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:28px}.panel{position:sticky;top:70px;max-height:calc(100vh - 86px);display:flex;flex-direction:column}.panel .clues-wrap{min-height:0;display:flex;flex-direction:column}.panel .clues{overflow-y:auto;min-height:0}}.board-col{min-width:0}.board{--axis: 18px;display:grid;grid-template-columns:var(--axis) repeat(var(--n),minmax(0,1fr));grid-template-rows:var(--axis) repeat(var(--n),auto);width:100%;max-width:620px;margin:0 auto;user-select:none;-webkit-user-select:none}.axis{font-family:var(--cond);font-weight:800;font-size:12px;color:var(--ink-faint);display:flex;align-items:center;justify-content:center}.tile{position:relative;aspect-ratio:1;min-width:0;display:block;padding:0;background:var(--room-L);border:0 solid var(--wall);box-shadow:inset 0 0 0 .5px var(--rule);transition:background-color .1s,filter .1s}.tile.outside{background:transparent;box-shadow:none}.room-K{background-color:var(--room-K)}.room-L{background-color:var(--room-L)}.room-T{background-color:var(--room-T)}.room-S{background-color:var(--room-S)}.room-B{background-color:var(--room-B)}.room-P{background-color:var(--room-P)}.room-D{background-color:var(--room-D)}.tile.wt{border-top-width:2px}.tile.wr{border-right-width:2px}.tile.wb{border-bottom-width:2px}.tile.wl{border-left-width:2px}.tile.ot{border-top-width:4px}.tile.or{border-right-width:4px}.tile.ob{border-bottom-width:4px}.tile.ol{border-left-width:4px}.tile.dt{border-top:1px dashed var(--ink-faint)}.tile.dr{border-right:1px dashed var(--ink-faint)}.tile.db{border-bottom:1px dashed var(--ink-faint)}.tile.dl{border-left:1px dashed var(--ink-faint)}.tile.taken:after{content:"";position:absolute;inset:0;background:var(--stamp-wash);pointer-events:none}.tile.scene:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent 0 6px,var(--stamp-wash) 6px 9px);pointer-events:none}.room-label{position:absolute;left:3px;top:2px;right:2px;z-index:1;text-align:left;pointer-events:none;font-family:var(--cond);font-weight:800;font-size:clamp(8px,1.6vw,11px);letter-spacing:.06em;text-transform:uppercase;line-height:1.05;color:var(--ink-soft)}.piece{--g: 12%;position:absolute;inset:var(--g);display:flex;align-items:center;justify-content:center;border-radius:7px;pointer-events:none}.piece svg{width:62%;height:62%;max-width:30px;max-height:30px}.piece.blocks{background:var(--block);color:var(--block-ink)}.piece.place{background:var(--place);color:var(--ink-soft);box-shadow:inset 0 0 0 1.5px var(--ink-faint)}.piece.k-rug{background:transparent;box-shadow:none;border:2px dashed var(--ink-faint);--g: 6%}.piece.k-rug svg{opacity:.6}.piece.k-pool{background:#5aa9c9;color:#eaf6fb}.piece.jt{top:0;border-top-left-radius:0;border-top-right-radius:0}.piece.jb{bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.piece.jl{left:0;border-top-left-radius:0;border-bottom-left-radius:0}.piece.jr{right:0;border-top-right-radius:0;border-bottom-right-radius:0}.tile:has(.tok) .piece svg{opacity:.55}.tok{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:999px;background:var(--shirt);color:var(--on);font-family:var(--cond);font-weight:800;font-size:15px;letter-spacing:.02em;line-height:1;box-shadow:inset 0 -3px #0000002e,0 0 0 2px var(--hair)}.tok.victim{box-shadow:inset 0 -3px #0000001f,0 0 0 2px var(--stamp);border:2px dashed var(--stamp)}.tile .tok{position:absolute;left:50%;top:52%;width:62%;height:62%;transform:translate(-50%,-50%);z-index:2;font-size:clamp(12px,3.4vw,20px);box-shadow:0 3px #00000040,0 0 0 2px var(--hair)}.tile .tok.victim{box-shadow:0 3px #0003,0 0 0 2px var(--stamp)}.tile .tok.sel{outline:3px solid var(--ink);outline-offset:2px}.tile .tok.trouble:after{content:"!";position:absolute;right:-6px;top:-6px;width:16px;height:16px;border-radius:999px;background:var(--stamp);color:#fbf5e7;font-size:11px;display:flex;align-items:center;justify-content:center}.tile .tok.killer{outline:3px solid var(--stamp);outline-offset:2px}.tok.mini{width:20px;height:20px;font-size:11px;margin-right:7px;box-shadow:0 0 0 1.5px var(--hair)}.tok.mini.victim{box-shadow:0 0 0 1.5px var(--stamp);border-width:1.5px}.tok.big{width:44px;height:44px;font-size:20px}.dagger{position:absolute;right:6%;bottom:2%;z-index:3;font-size:clamp(12px,3vw,18px);font-weight:700;color:var(--stamp)}.tile.picked{filter:brightness(1.04)}.legend{list-style:none;padding:0;margin:14px auto 0;max-width:620px;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink-soft)}.legend li{display:inline-flex;align-items:center;gap:6px}.legend .piece{position:static;width:24px;height:24px;border-radius:5px}.legend .piece svg{width:18px;height:18px}.legend-note{max-width:620px;margin:8px auto 0;font-size:12px;color:var(--ink-faint);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sw{display:inline-block;width:12px;height:12px;border-radius:3px}.sw.place{background:var(--place);box-shadow:inset 0 0 0 1.5px var(--ink-faint)}.sw.blocks{background:var(--block);margin-left:8px}.panel{padding:14px}.status{margin:0 0 10px;font-size:14px;min-height:2.9em}.status.hint{color:var(--stamp);font-weight:700}.cast{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 10px 4px 4px;border-radius:10px;background:var(--inset);box-shadow:inset 0 0 0 2px transparent;text-align:left;transition:background .1s,box-shadow .1s;min-height:44px}.chip .tok{width:30px;height:30px;font-size:14px}.chip-text{display:flex;flex-direction:column;line-height:1.15}.chip-name{font-family:var(--cond);font-weight:800;font-size:13px;letter-spacing:.08em}.chip-status{font-family:var(--cond);font-weight:800;font-size:10px;letter-spacing:.1em;color:var(--ink-faint)}.chip.placed .chip-status{color:var(--evidence)}.chip.trouble .chip-status{color:var(--stamp)}.chip.sel{background:var(--highlight);box-shadow:inset 0 0 0 2px var(--ink)}.chip:disabled{cursor:default}.actions:empty{display:none}.actions{flex-wrap:wrap;display:flex;align-items:center;gap:8px;margin:10px 0 4px;min-height:40px}.actions .spacer{flex:1}.actions .ink-btn{white-space:nowrap}.wrong{white-space:nowrap;font-family:var(--cond);font-weight:800;font-size:12px;letter-spacing:.1em;color:var(--stamp)}.clues-wrap{margin-top:10px;border-top:1px solid var(--rule);padding-top:12px}.clues{font-size:14px}.dead{display:flex;gap:8px;margin:0 0 8px;padding:0 6px;font-weight:700}.mark{flex:none;width:14px;text-align:center;font-weight:700;color:var(--ink-faint)}.dead .mark{color:var(--stamp)}.cgroup{margin-top:10px}.cgroup-h{display:flex;align-items:center;margin:0 0 2px;padding:0 6px;font-family:var(--cond);font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.cgroup-h .tag{margin-left:6px}.cgroup ul{list-style:none;margin:0;padding:0}.clue{display:flex;gap:8px;width:100%;text-align:left;padding:5px 6px;border-radius:7px;line-height:1.35;transition:background .1s}.clue.lit{background:var(--highlight)}.clue.ticked .clue-text{text-decoration:line-through;text-decoration-color:var(--ink-faint);color:var(--ink-faint)}.clue.ticked .mark{color:var(--evidence)}.clue.broken,.clue.broken .mark{color:var(--stamp)}.verdict{text-align:center;padding:6px 2px 2px}.stamp-big{display:inline-block;margin:6px 0 14px;font-family:var(--cond);font-weight:800;font-size:28px;letter-spacing:.14em;color:var(--stamp);border:4px solid var(--stamp);border-radius:6px;padding:3px 14px 1px;transform:rotate(-4deg)}.verdict-who{display:flex;align-items:center;justify-content:center;gap:12px;text-align:left}.verdict-line{font-weight:700;font-size:17px}.verdict-sub{color:var(--ink-soft);font-size:14px;margin:10px 0 0}.verdict-more{margin:16px 0 0;font-size:14px}.is-solved .clues-wrap{opacity:.8}.sheet{border:0;padding:0;border-radius:22px;background:var(--card);color:var(--ink);box-shadow:var(--shadow);width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 32px)}.sheet::backdrop{background:#16121c8c}.sheet-in{padding:20px;display:flex;flex-direction:column;gap:14px}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet-head h2{margin:0;font-family:var(--cond);font-weight:800;font-size:22px;letter-spacing:.12em}.x{width:44px;height:44px;font-size:28px;line-height:1;border-radius:999px;margin-right:-10px}.rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.rules li{display:flex;gap:12px}.rn{flex:none;width:22px;font-family:var(--cond);font-weight:800;font-size:20px;color:var(--stamp);line-height:1.2}.rules strong{font-size:15px}.rules p{margin:2px 0 0;font-size:14px}.rules-note{margin:0;font-size:13px;color:var(--ink-soft)}.sheet .ink-btn{width:100%}.foot{border-top:1px solid var(--rule);padding:22px 16px calc(28px + env(safe-area-inset-bottom));font-size:13px;color:var(--ink-soft);text-align:center}.foot p{margin:4px 0}.foot a{text-underline-offset:3px}@media (hover: hover){.play:not(.is-solved) .tile.can:hover{box-shadow:inset 0 0 0 3px var(--ink);background-image:linear-gradient(var(--hover),var(--hover))}.play:not(.is-solved) .tile.can:hover .tok{transform:translate(-50%,-50%) scale(1.08)}.tile.cannot,.is-solved .tile{cursor:default}.chip:not(:disabled):hover{background:var(--hover);box-shadow:inset 0 0 0 2px var(--ink-faint)}.chip.sel:hover{background:var(--highlight);box-shadow:inset 0 0 0 2px var(--ink)}.clue:hover{background:var(--hover)}.clue.lit:hover{background:var(--highlight);filter:brightness(.97)}.ptile:hover{transform:translateY(-2px);background:var(--highlight)}.ptile.done:hover{background:var(--evidence);filter:brightness(1.1)}.ink-btn:hover,.store-cta:hover{filter:brightness(1.12)}.ink-btn.soft:hover{background:var(--hover);filter:none}.back:hover,.bar-home:hover,.bar-links a:hover{color:var(--ink);background:var(--hover)}.bar-help:hover,.x:hover{background:var(--hover)}.tile.can,.chip:not(:disabled),.clue,.ptile{cursor:pointer}}.tile:focus-visible{outline:3px solid var(--stamp);outline-offset:-3px;border-radius:2px;z-index:4}.chip:focus-visible,.clue:focus-visible,.ptile:focus-visible{outline:3px solid var(--stamp);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}
