:root{--ink:#181613;--deep:#100f0e;--panel:#211e1a;--line:#514638;--gold:#d1ad70;--cream:#eee4d0;--muted:#b4a996;--red:#973e31;--paper:#e6dcc4;--green:#a7c1a4;--serif:Georgia,'Times New Roman','Songti SC',serif;--sans:Arial,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--cream);font:15px/1.6 var(--sans)}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit;border:0}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,textarea:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #f4cb83;outline-offset:4px}::selection{background:#945846;color:white}.masthead{height:92px;padding:0 4%;border-bottom:1px solid #62513b66;display:flex;justify-content:space-between;align-items:center;background:#171612f5;position:sticky;top:0;z-index:20;gap:20px}.brand{display:flex;align-items:center;gap:13px;letter-spacing:2.8px;font-size:16px;font-family:var(--serif);white-space:nowrap}.brand img{width:51px;height:51px;object-fit:cover}.brand small{display:block;font:8px/2 var(--sans);letter-spacing:1.9px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:14px}.header-actions a,.quiet{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;min-height:42px;white-space:nowrap}.support{background:var(--red);padding:9px 14px;border:1px solid #bc6d56}.support:hover{background:#b14c3d}.support>span:first-child{font-size:21px;line-height:1}.facebook{border:1px solid #806c4d;padding:8px 11px}.facebook svg{width:17px;height:17px;fill:var(--cream)}.quiet{background:transparent;color:var(--muted);padding:8px}.quiet:hover{color:white}.language{border-left:1px solid var(--line);padding-left:17px;color:var(--cream)}.skip{position:absolute;left:15px;top:-70px;z-index:90;background:var(--paper);color:var(--ink);padding:12px}.skip:focus{top:5px}main:focus{outline:none}.hero{min-height:calc(100svh - 92px);position:relative;display:flex;align-items:center;background:url('assets/cinema.webp') center center/cover;isolation:isolate;padding:65px 7% 95px}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,12,11,.97) 0%,rgba(13,12,11,.76) 33%,rgba(13,12,11,.14) 75%),linear-gradient(0deg,#181613,transparent 24%);z-index:-1}.hero-copy{max-width:630px}.eyebrow{font-size:10px;letter-spacing:3.5px;color:var(--gold);text-transform:uppercase;margin:0 0 22px}.case-marker{display:flex;gap:15px;align-items:center;margin-bottom:30px;font-size:11px;letter-spacing:2px}.case-marker:after{content:'';height:1px;width:80px;background:var(--gold)}h1{font-family:var(--serif);font-weight:400;font-size:clamp(62px,7.4vw,116px);line-height:.98;letter-spacing:-3px;margin:0 0 30px}h1 em{color:var(--gold);font-weight:400}.hero-sub{font:italic 21px/1.5 var(--serif);color:#dfcdb1;max-width:490px;margin:0 0 20px}.hero-desc{font-size:14px;max-width:440px;color:var(--muted);line-height:1.9}.hero-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:30px 0 20px}.primary{background:var(--gold);border:1px solid var(--gold);color:#231d14;padding:14px 25px;font-size:12px;letter-spacing:1.2px;font-weight:bold}.primary:hover{background:#e3c591}.secondary{background:transparent;border:1px solid #8c7858;color:var(--cream);padding:12px 20px;font-size:12px;letter-spacing:.6px}.secondary:hover{background:#59493444}.hero-meta{display:flex;gap:23px;flex-wrap:wrap;font:10px/1.7 var(--sans);letter-spacing:1.1px;color:var(--muted);margin-top:27px}.hero-meta span+span:before{content:'·';margin-right:23px;color:var(--gold)}.landing-note{font-size:10px;color:#a59c90;margin-top:19px}.case-stamp{position:absolute;right:6%;bottom:85px;writing-mode:vertical-rl;letter-spacing:6px;font-size:10px;color:#d0b68d}.features{max-width:1300px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:45px;padding:52px 6%;border-top:1px solid var(--line)}.features b{font:22px var(--serif);display:block;margin-bottom:13px}.features p{font-size:13px;color:var(--muted)}.features span{color:var(--gold);font:11px monospace;display:block;margin-bottom:14px}footer{padding:22px 4%;border-top:1px solid #51463880;display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap;font-size:10px;color:#a69b8b}.game-top{padding:27px 4% 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;background:linear-gradient(110deg,#29231c,#181613)}.game-top h2{font:29px var(--serif);margin:3px 0}.game-top .eyebrow{font-size:9px;margin:0}.progress-rail{display:flex;align-items:center;gap:7px}.act-tab{background:transparent;border:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:10px 13px;text-align:left;max-width:155px;font-size:10px}.act-tab b{font:18px var(--serif);color:var(--gold)}.act-tab.active{background:#4a3a25;border-color:var(--gold)}.act-tab.complete b{color:var(--green)}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr);max-width:1540px;margin:auto;min-height:680px}.sidebar{border-right:1px solid var(--line);padding:28px 22px;background:#151411}.side-heading{font-size:9px;letter-spacing:2px;color:var(--gold);margin:0 0 15px}.evidence-button{background:transparent;width:100%;padding:11px 0;border-bottom:1px solid #51463877;text-align:left;display:flex;gap:11px;align-items:center;font-size:12px;color:var(--muted)}.evidence-button:hover{color:var(--cream)}.evidence-button .number{font:11px monospace;color:var(--gold);min-width:22px}.evidence-button.read .number{color:#92a687}.side-quote{font:italic 15px/1.7 var(--serif);margin:24px 0;color:var(--muted)}.notes-label{font-size:10px;letter-spacing:1px;display:block;margin:30px 0 8px}textarea{width:100%;min-height:120px;resize:vertical;background:#211e18;color:var(--cream);border:1px solid var(--line);padding:11px;font:12px/1.7 var(--sans)}.notes-state{font-size:9px;color:#aaa08f}.desk{padding:35px 4% 50px;min-width:0;background:radial-gradient(ellipse at 50% 0,#3a302333,transparent 65%)}.act-intro{display:flex;justify-content:space-between;gap:30px;margin-bottom:26px;align-items:start}.act-intro h2{font:38px/1.2 var(--serif);margin:5px 0 12px}.act-intro p{color:var(--muted);font-size:13px;max-width:670px}.act-intro .eyebrow{font-size:9px;margin:0 0 8px}.act-count{font:60px/1 var(--serif);color:#6b573955}.instruction{border-left:2px solid var(--gold);padding:11px 16px;background:#d1ad700a;color:#d2c6af;font-size:12px;margin:18px 0 25px}.tabletop{padding:24px;background:#100f0ddd;border:1px solid #67543a;box-shadow:0 15px 30px #0004;position:relative}.tabletop:before{content:'';position:absolute;inset:5px;border:1px solid #5a493822;pointer-events:none}.panel-head{display:flex;justify-content:space-between;gap:15px;color:var(--gold);font-size:9px;letter-spacing:2px;margin-bottom:20px}.filmstrip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.film-card{background:#302a21;border:1px solid #706047;min-width:0;position:relative}.sprockets{height:17px;background:repeating-linear-gradient(90deg,transparent 0 10px,#c6b58c 10px 17px,transparent 17px 25px);opacity:.38;margin:0 7px}.frame-art{height:140px;background:radial-gradient(ellipse at bottom,#716041,#30291f 60%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;border-block:1px solid #756547}.frame-art svg{width:90px;height:90px;opacity:.8;stroke:#d6c69f;fill:none;stroke-width:1.5}.frame-number{position:absolute;right:8px;bottom:3px;font:31px var(--serif);color:#e4d5ac}.edge-labels{display:flex;justify-content:space-between;font:10px monospace;padding:5px 8px;background:#16130f;color:#d9c797}.frame-title{font-size:10px;padding:9px 7px;min-height:47px;color:#c5b99f}.move-buttons{display:flex;justify-content:space-between;padding:0 5px 7px}.move-buttons button{background:#54453055;border:1px solid #736244;width:35px;height:32px;color:#d3bd96}.lock-row{margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.lock-caption{font:italic 15px var(--serif);color:var(--muted)}.lock-input{display:flex;align-items:center;gap:8px}.lock-input input{width:165px;letter-spacing:8px;font:24px monospace;text-align:center;padding:11px;background:#262117;border:1px solid #947c52;color:var(--cream)}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.under-desk{display:flex;justify-content:space-between;margin-top:22px;align-items:center;gap:20px}.hint-btn{background:transparent;border-bottom:1px dashed #a98d63;padding:5px 0;color:#bda77f;font-size:11px}.hint-area{border:1px dashed #6d5a3c;color:#d6c6aa;padding:14px 18px;font-size:12px;margin-top:18px}.feedback{margin-top:20px;padding:16px 19px;border-left:3px solid #b36a4f;background:#9b47331a;font-size:13px;color:#ead1b8}.feedback.success{border-color:#95ad88;background:#7c986b12}.feedback h3{font:23px var(--serif);margin:0 0 7px;color:#e6dbc4}.feedback p{margin:0 0 15px}.solved-banner{font:italic 15px var(--serif);color:var(--green);margin-top:15px}.route-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);gap:22px}.map{width:100%;min-height:285px;max-height:420px}.map line,.map path{stroke:#806d4a;stroke-width:2}.map text{fill:#cebda0;font-size:12px;font-family:var(--sans);text-anchor:middle}.map .edge-time{fill:#e5c591;font-size:12px;paint-order:stroke;stroke:#17140f;stroke-width:7px;stroke-linejoin:round}.map .blocked{stroke:#884338;stroke-dasharray:6}.map .shortcut{stroke:#abbd97;stroke-dasharray:4}.map .node rect{fill:#30281d;stroke:#8f7c56}.map .node text{fill:#e7d8ba;font-size:12px}.map .node.current rect{stroke:#efd193;stroke-width:3;fill:#5e452a}.map .node.available{cursor:pointer}.map .node.available rect{fill:#3c3e2d;stroke:#c4cb9d}.map .node:focus rect{stroke:white;stroke-width:3}.route-stats{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);padding-bottom:15px;gap:15px}.route-stats strong{font:29px var(--serif);display:block}.route-stats small{color:var(--muted);font-size:10px}.checklist{font-size:12px;padding-left:19px;color:var(--muted);line-height:2}.checklist .done{color:#bdd1ad}.room-options{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:17px}.room-options button{background:#403621;border:1px solid #8e7750;padding:8px;font-size:11px}.route-log{font:11px/1.7 monospace;color:var(--muted);max-height:180px;overflow:auto;margin-bottom:18px}.route-help{font-size:11px;color:var(--muted);margin-top:0}.legend{font-size:10px;color:var(--muted);display:flex;gap:17px;flex-wrap:wrap}.legend .green{color:#b8c79f}.logic-layout{display:grid;grid-template-columns:1fr 1.45fr;gap:25px}.paper-note{background:var(--paper);color:#322d24;padding:22px;box-shadow:3px 5px 0 #746348;transform:rotate(-.7deg)}.paper-note h3{font:22px var(--serif);margin:0 0 16px}.paper-note ol{padding-left:19px;font-size:12px;line-height:1.9}.paper-note li+li{margin-top:11px}.paper-note small{font-size:10px}.can-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.can{border:1px solid var(--line);padding:18px;background:#28241d}.can-disc{width:80px;height:80px;border-radius:50%;margin:0 auto 13px;background:radial-gradient(circle,#504738 0 12%,#211e19 13% 17%,#574d3c 18% 22%,#343028 23% 65%,#76674e 66% 69%,#2b2820 70%);border:2px solid #817154;display:flex;align-items:center;justify-content:center;font:22px var(--serif);color:#e9d3a8;box-shadow:2px 6px 10px #0006}.can label{display:block;font-size:10px;color:var(--muted);text-align:center;margin:6px 0}.can select{width:100%;background:#15130f;border:1px solid #79684c;color:var(--cream);padding:9px;font-size:12px}.old-label{font:italic 11px var(--serif);text-align:center;color:#c6b493}.suspects{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.suspect{position:relative;padding:17px 13px;background:#2b251d;border:1px solid var(--line);text-align:left;min-height:175px}.suspect.selected{border:2px solid var(--gold);padding:16px 12px;background:#4b3921}.suspect .initials{width:45px;height:45px;border:1px solid #79684c;display:grid;place-items:center;font:24px var(--serif);margin-bottom:15px;background:#191611}.suspect b{font:19px var(--serif);display:block}.suspect small{font-size:10px;color:var(--muted)}.verdict-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.field-label{display:block;color:var(--gold);font-size:10px;letter-spacing:1px;margin:0 0 12px}.choice{display:flex;gap:10px;align-items:start;padding:12px 10px;border:1px solid #514638;margin-bottom:8px;font-size:12px;background:#252018;cursor:pointer}.choice input{accent-color:var(--gold);margin-top:4px}.choice:has(input:checked){border-color:var(--gold);background:#403322}.final-submit{margin-top:25px}.ending{max-width:850px;padding:55px 5%;margin:auto}.ending .eyebrow{margin-bottom:18px}.ending h1{font-size:65px;margin-bottom:25px}.ending .lead{font:italic 22px/1.6 var(--serif);color:#e3cda7}.ending p{color:#c9bda9;line-height:1.9}.ending .letter{background:var(--paper);color:#2b271f;padding:30px;margin:30px 0;transform:rotate(-.4deg);box-shadow:6px 7px 0 #62513a;font:18px/1.8 var(--serif)}.ending h3{font:25px var(--serif);color:var(--gold)}.ending .support-row{display:flex;gap:14px;margin:30px 0;align-items:center;flex-wrap:wrap}.ending .support-row a{padding:12px 18px;font-size:12px}.evidence-dialog{border:1px solid #8e7751;background:var(--paper);color:#2d291f;padding:42px;width:min(660px,92vw);max-height:85svh;box-shadow:0 30px 120px #000c}.evidence-dialog::backdrop,.small-dialog::backdrop{background:#070605c9;backdrop-filter:blur(4px)}.evidence-dialog h2{font:35px var(--serif);margin:8px 0 25px}.evidence-dialog .eyebrow{color:#775a2d;font-size:9px;margin:0}.evidence-dialog p{font-size:15px;line-height:1.9}.evidence-dialog blockquote{font:italic 21px/1.7 var(--serif);margin:22px 0;border-left:2px solid #a47b45;padding-left:22px}.evidence-dialog .document-meta{font:11px monospace;border-top:1px solid #a59472;padding-top:14px;margin-top:25px}.close{position:absolute;top:9px;right:14px;background:transparent;font-size:28px;color:#4d4030;width:40px;height:40px}.small-dialog{background:var(--panel);color:var(--cream);border:1px solid var(--gold);padding:30px;max-width:90vw}.small-dialog h2{font:30px var(--serif)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--paper);color:#2a2117;padding:11px 20px;z-index:99;max-width:90vw;font-size:12px;box-shadow:0 4px 25px #0008;display:none}.storage-warning{background:#763d2b;color:#fff1d7;font-size:12px;padding:10px 4%}.hidden{display:none!important}
@media(min-width:1500px){.hero{min-height:850px}.hero-copy{margin-left:4%}}@media(max-width:1100px){.brand span{font-size:13px}.brand small{display:none}.header-actions{gap:7px}.workspace{grid-template-columns:205px 1fr}.desk{padding:28px 3%}.act-tab{padding:9px;max-width:125px}.route-layout,.logic-layout{grid-template-columns:1fr}.route-detail{display:grid;grid-template-columns:1fr 1fr;gap:15px}.route-detail .room-options{grid-column:1/-1}.paper-note{transform:none}.frame-art{height:105px}.suspects{grid-template-columns:1fr 1fr}.game-top h2{font-size:23px}.verdict-grid{grid-template-columns:1fr}}@media(max-width:760px){.masthead{height:auto;min-height:115px;padding:11px 4%;flex-wrap:wrap;gap:10px}.brand{width:100%;justify-content:center;font-size:14px}.brand img{width:32px;height:32px}.brand small{display:none}.header-actions{width:100%;justify-content:center;gap:7px}.header-actions a,.quiet{font-size:10px;min-height:36px;padding:7px 9px}.facebook svg{width:14px}.music{font-size:0}.music span{font-size:9px}.language{padding-left:10px}.hero{min-height:720px;padding:60px 7% 75px;background-position:62% center}.hero:before{background:linear-gradient(90deg,#100f0ef2,#100f0e88),linear-gradient(0deg,#181613,transparent 25%)}h1{font-size:74px;letter-spacing:-2px}.hero-sub{font-size:19px}.hero-desc{font-size:13px}.hero-meta{gap:12px;font-size:9px}.hero-meta span+span:before{margin-right:12px}.case-stamp{display:none}.features{grid-template-columns:1fr;gap:20px;padding:35px 7%}.features b{font-size:24px}.features p{margin-bottom:0}.game-top{display:block;padding:20px 5%}.game-top h2{font-size:26px}.progress-rail{margin-top:17px;gap:5px}.act-tab{max-width:none;flex:1;display:block;padding:7px;text-align:center;font-size:9px;min-height:61px}.act-tab b{display:block}.workspace{display:flex;flex-direction:column}.sidebar{order:2;border-right:0;border-top:1px solid var(--line);padding:25px 5%;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.sidebar .side-heading,.sidebar .side-quote,.sidebar .notes-wrap{grid-column:1/-1}.sidebar .side-quote{display:none}.sidebar textarea{min-height:80px}.desk{padding:28px 5% 35px}.act-intro h2{font-size:32px}.act-count{font-size:45px}.act-intro{gap:10px}.act-intro p{font-size:12px}.tabletop{padding:16px 11px}.filmstrip{gap:4px}.frame-art{height:84px}.frame-art svg{width:50px;height:50px}.frame-number{font-size:25px}.frame-title{font-size:9px;min-height:45px;padding:6px 3px}.edge-labels{font-size:8px;padding:5px 3px}.move-buttons{padding:0 2px 6px;gap:2px}.move-buttons button{width:50%;min-height:34px}.sprockets{height:11px;background-size:19px;margin:0 4px}.lock-row{display:block}.lock-input{margin-top:15px}.lock-input input{width:145px}.lock-input .primary{padding:14px}.panel-head{font-size:8px;letter-spacing:1px}.under-desk{align-items:start}.primary,.secondary{font-size:11px}.route-detail{display:block}.route-stats{margin-bottom:17px}.map{min-height:230px}.can{padding:13px 8px}.can select{font-size:11px}.can-disc{height:64px;width:64px}.paper-note{padding:19px}.evidence-dialog{padding:35px 25px}.evidence-dialog h2{font-size:29px}.evidence-dialog p{font-size:14px}.ending{padding:40px 6%}.ending h1{font-size:50px}.ending .letter{font-size:17px;padding:22px}.ending .lead{font-size:20px}footer{padding:22px 6%;font-size:9px}.support-row .facebook svg{width:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media(max-width:760px){.header-actions{gap:5px;justify-content:space-between}.header-actions .support{gap:4px;padding:7px 9px}.header-actions .support [data-i18n="support"]{font-size:0}.header-actions .support [data-i18n="support"]:after{content:'Ko-fi';font-size:11px}.header-actions .facebook{gap:4px;padding:7px 8px}.header-actions .language{padding-left:8px}.header-actions .music{padding:7px 4px}}
