:root{--black:#0e0d0b;--wood:#2a1d16;--paper:#d8c6a3;--white:#f1e6d0;--red:#8b1e1e;--ink:#1a1714;--gold:#a98f5a;--mono:'Courier New',Courier,monospace;--serif:'Palatino Linotype','Book Antiqua',Georgia,serif;--hand:'Segoe Print','Bradley Hand',cursive}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#080706;color:var(--ink)}
button{font:inherit;color:inherit}
button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.desk{position:relative;width:100vw;height:100vh;min-width:1040px;min-height:680px;overflow:hidden;background:var(--wood) url('assets/noir-desk.png') center/cover no-repeat;isolation:isolate;perspective:1500px}
.desk::before{content:"";position:absolute;inset:0;z-index:30;pointer-events:none;box-shadow:inset 0 0 110px 36px rgba(0,0,0,.62)}
.lamp-glow{position:absolute;inset:-15%;z-index:25;pointer-events:none;background:radial-gradient(circle at 72% 15%,rgba(235,178,100,.12),transparent 32%);mix-blend-mode:screen;animation:flicker 7s infinite}
.grain{position:absolute;inset:-50%;z-index:40;pointer-events:none;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");animation:grain .25s steps(2) infinite}
@keyframes grain{0%{transform:translate(1%,1%)}25%{transform:translate(-2%,2%)}50%{transform:translate(2%,-1%)}75%{transform:translate(-1%,-2%)}100%{transform:translate(1%,1%)}}
@keyframes flicker{0%,100%{opacity:1}8%{opacity:.88}9%{opacity:.98}52%{opacity:.9}53%{opacity:1}}
.case-index{position:absolute;top:34px;left:42px;z-index:31;display:grid;grid-template-columns:auto auto;gap:0 12px;color:rgba(241,230,208,.64);font-family:var(--serif);text-transform:uppercase;letter-spacing:.12em;pointer-events:none}
.case-index__num{grid-row:1/3;font-size:32px;line-height:.95;color:var(--gold)}.case-index__label{font-size:9px;line-height:1.35}.case-index__rule{width:140px;height:1px;background:rgba(169,143,90,.42);margin-top:6px}.case-index__step{grid-column:2;font:8px var(--mono);letter-spacing:.18em;margin-top:5px}
.case-study-link{position:absolute;top:32px;right:42px;z-index:35;display:inline-flex;align-items:center;gap:12px;padding:13px 16px 11px;border:1px solid rgba(169,143,90,.62);background:linear-gradient(145deg,rgba(169,143,90,.94),rgba(111,82,38,.86));color:#100e0b;font:700 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;box-shadow:0 12px 24px rgba(0,0,0,.38),inset 0 0 0 1px rgba(241,230,208,.2);transition:filter .25s,transform .25s,box-shadow .25s}.case-study-link i{position:relative;width:26px;height:1px;background:#100e0b}.case-study-link i::after{content:"";position:absolute;right:0;top:-4px;width:8px;height:8px;border-right:1px solid #100e0b;border-top:1px solid #100e0b;transform:rotate(45deg)}.case-study-link:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 16px 32px rgba(0,0,0,.48),0 0 18px rgba(169,143,90,.2),inset 0 0 0 1px rgba(241,230,208,.28)}
.ambient-props{position:absolute;inset:0;z-index:10;pointer-events:none;opacity:.78}.desk-prop{pointer-events:auto;cursor:pointer;padding:0;font:inherit;color:inherit;transition:filter .25s}.desk-prop:hover{filter:brightness(1.22) drop-shadow(0 2px 3px rgba(169,143,90,.24))}.desk-prop:focus-visible{outline:1px solid rgba(169,143,90,.75);outline-offset:7px}.desk-prop.is-touched{animation:propTap .48s ease}@keyframes propTap{0%,100%{translate:0 0}35%{translate:3px -4px}65%{translate:-2px 1px}}.pencil{position:absolute;width:220px;height:9px;right:6%;bottom:7%;border:0;transform:rotate(-12deg);background:linear-gradient(#725129,#b1854c 40%,#6e4923);border-radius:3px;box-shadow:0 6px 8px #000}.pencil::before{content:"";position:absolute;left:-25px;top:0;border-style:solid;border-width:4.5px 25px 4.5px 0;border-color:transparent #caa46a transparent transparent}.pencil::after{content:"";position:absolute;right:-17px;top:0;width:22px;height:9px;background:#46362e;border-radius:0 4px 4px 0}.paperclip{position:absolute;width:27px;height:62px;border:3px solid #766b59;border-radius:15px;background:transparent;box-shadow:2px 3px 3px #000}.paperclip::after{content:"";position:absolute;inset:6px;border:2px solid #766b59;border-radius:10px}.clip-one{left:4%;bottom:18%;transform:rotate(43deg)}.clip-two{right:31%;top:7%;transform:rotate(-25deg) scale(.8)}
.brass-key{position:absolute;right:2.5%;bottom:24%;width:132px;height:54px;border:0;background:transparent;transform:rotate(25deg);filter:drop-shadow(5px 7px 5px #000)}.brass-key i{position:absolute;left:0;top:4px;display:block;width:43px;height:43px;border:8px solid #746039;border-radius:50%}.brass-key b{position:absolute;left:35px;top:21px;display:block;width:91px;height:9px;background:#746039}.brass-key b::after{content:"";position:absolute;right:0;width:16px;height:25px;border-right:8px solid #746039;border-bottom:8px solid #746039}.fountain-pen{position:absolute;left:31%;bottom:7%;width:185px;height:14px;border:0;border-radius:8px;background:linear-gradient(180deg,#23211e 0 35%,#080807 48% 70%,#332d24 100%);transform:rotate(8deg);box-shadow:5px 8px 8px #000}.fountain-pen::before{content:"";position:absolute;right:-26px;top:2px;border-style:solid;border-width:5px 0 5px 27px;border-color:transparent transparent transparent #8d7443}.fountain-pen::after{content:"";position:absolute;left:33px;top:-2px;width:4px;height:18px;background:#8d7443}.fountain-pen i{position:absolute;left:8px;top:2px;width:54px;height:2px;background:rgba(187,155,90,.6)}.magnifier{position:absolute;left:7%;top:18%;width:82px;height:82px;border:8px solid #66563d;border-radius:50%;background:rgba(190,168,128,.08);box-shadow:inset 0 0 18px rgba(255,224,172,.08),6px 11px 11px #000;transform:rotate(-18deg)}.magnifier::after{content:"";position:absolute;left:55px;top:62px;width:87px;height:15px;border-radius:7px;background:linear-gradient(180deg,#776444,#332a1d);transform:rotate(42deg);transform-origin:left center;box-shadow:5px 7px 7px #000}.magnifier i{position:absolute;inset:8px;border:1px solid rgba(215,190,143,.15);border-radius:50%}.notebook{position:absolute;left:6%;bottom:4%;width:145px;height:92px;border:0;background:#706048;transform:rotate(-7deg);box-shadow:7px 12px 14px #000;color:#bcae91;text-align:left;padding:16px 18px;font:9px var(--mono);letter-spacing:.16em}.notebook::before{content:"";position:absolute;left:10px;top:0;bottom:0;width:5px;background:repeating-linear-gradient(0deg,#332b22 0 5px,#a28e68 6px 9px)}.notebook::after{content:"";position:absolute;inset:7px;border:1px solid rgba(201,182,144,.2)}.notebook i{position:absolute;right:13px;bottom:14px;width:50px;height:1px;background:rgba(205,187,153,.25);box-shadow:0 -7px rgba(205,187,153,.2),0 -14px rgba(205,187,153,.16)}
.folder-stage{position:absolute;inset:0;z-index:8;transition:transform 1s cubic-bezier(.2,.7,.1,1)}
.folder{position:absolute;left:50%;top:51%;width:min(570px,42vw);aspect-ratio:1.42;transform:translate(-50%,-50%) rotate(-2deg);border:0;padding:0;text-align:left;background:linear-gradient(155deg,#b59a68,#9a7b48 75%,#87683e);box-shadow:6px 18px 40px rgba(0,0,0,.7),inset 0 0 70px rgba(72,42,18,.18);cursor:pointer;transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .5s;clip-path:polygon(0 8%,27% 8%,31% 0,58% 0,62% 8%,100% 8%,100% 100%,0 100%)}
.folder::before{content:"";position:absolute;inset:8% 0 0;background:repeating-linear-gradient(6deg,transparent 0 18px,rgba(60,39,20,.025) 19px 20px);border:1px solid rgba(80,52,25,.33)}
.folder:hover{transform:translate(-50%,-53%) rotate(-1deg) scale(1.015);filter:brightness(1.08)}.folder:hover::after{content:"";position:absolute;right:0;bottom:0;border-style:solid;border-width:0 0 42px 42px;border-color:transparent transparent rgba(80,54,32,.27) transparent;filter:drop-shadow(-4px -3px 5px rgba(0,0,0,.2))}
.folder__tab{position:absolute;top:1.8%;left:33%;font:9px var(--mono);letter-spacing:.1em;color:#503e28}.folder__crease{position:absolute;inset:8% 0 auto;height:2px;background:rgba(76,49,22,.23);box-shadow:0 1px rgba(255,255,255,.13)}
.folder__content{position:absolute;left:11%;top:24%;display:flex;flex-direction:column;color:#241c13;text-transform:uppercase;font-family:var(--serif);letter-spacing:.08em}.folder__content small{font-size:15px;border-bottom:1px solid #55432c;padding-bottom:7px;width:215px}.folder__content strong{font-size:67px;line-height:1;margin:13px 0 5px}.folder__content em{font-style:normal;font-size:21px;line-height:1.3}.stamp{font-family:var(--serif);font-weight:800;text-transform:uppercase;border:4px solid currentColor}.stamp--confidential{position:absolute;right:9%;top:30%;padding:7px 10px;color:rgba(116,25,22,.8);transform:rotate(12deg);font-size:19px;letter-spacing:.05em;box-shadow:inset 0 0 0 2px rgba(116,25,22,.18)}
.folder__prompt{position:absolute;left:11%;bottom:9%;font:13px var(--mono);letter-spacing:.05em;color:#3a2c1c}.folder__prompt i{display:inline-block;width:28px;height:1px;background:#3a2c1c;vertical-align:middle;margin-right:8px;transition:width .3s}.folder:hover .folder__prompt i{width:42px}.folder__solved-stamp{display:none}
.folder.is-opening{pointer-events:none;animation:folderOpen .9s both}@keyframes folderOpen{0%{transform:translate(-50%,-50%) rotate(-2deg)}40%{transform:translate(-50%,-55%) rotate(1deg) scale(1.05)}100%{transform:translate(-86%,-42%) rotate(-7deg) scale(.9);opacity:0}}
.open-file{position:absolute;left:50%;top:50%;width:min(900px,70vw);height:min(690px,80vh);transform:translate(-50%,-45%) rotate(-.5deg) scale(.96);opacity:0;pointer-events:none;transition:opacity .7s .3s,transform .9s .2s}
.open-file.is-visible{opacity:1;transform:translate(-50%,-50%) rotate(-.5deg) scale(1);pointer-events:auto}.folder-back{position:absolute;inset:-30px -55px;background:linear-gradient(145deg,#9e814e,#70522f);transform:rotate(1.5deg);box-shadow:15px 24px 48px #000;clip-path:polygon(0 5%,20% 5%,24% 0,47% 0,51% 5%,100% 5%,100% 100%,0 100%)}
.report-paper{position:absolute;inset:0;background-color:#cfbd98;background-image:linear-gradient(95deg,rgba(92,67,37,.08),transparent 18%,rgba(255,255,255,.1) 60%,rgba(76,52,29,.06)),repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(45,33,18,.014) 4px);box-shadow:3px 12px 28px #000;padding:34px 42px 28px;overflow:hidden}
.report-paper::after{content:"";position:absolute;width:130px;height:80px;right:-30px;bottom:-30px;border:2px solid rgba(91,56,28,.14);border-radius:50%}
.report-paper__header{display:flex;justify-content:space-between;border-bottom:2px solid #31271c;padding-bottom:11px}.report-paper__header span{font:9px var(--mono);letter-spacing:.2em}.report-paper__header h1{font:700 26px var(--serif);letter-spacing:.09em;text-transform:uppercase;margin:5px 0 0}.report-number{font:10px var(--mono);letter-spacing:.1em;text-align:right}.report-number b{font-size:24px}
.report-grid{display:grid;grid-template-columns:1fr 210px;gap:25px;margin-top:20px}.case-facts dl{margin:0;font:12px var(--mono)}.case-facts dl div{display:grid;grid-template-columns:120px 1fr;border-bottom:1px dotted rgba(38,30,22,.42);padding:5px 0}.case-facts dt{text-transform:uppercase;color:#695c48}.case-facts dd{margin:0}.case-facts p,.crime-copy p{font:12px/1.55 var(--mono);margin:16px 0}.margin-note{position:absolute;left:35%;top:34%;font:22px var(--hand);color:rgba(106,27,24,.7);transform:rotate(-9deg)}
.case-photo{position:relative;display:block;padding:10px 10px 32px;border:0;background:#e3d6bd;box-shadow:3px 6px 12px rgba(0,0,0,.38);transform:rotate(2.5deg);cursor:zoom-in;transition:transform .3s,box-shadow .3s}.case-photo:hover{transform:rotate(0) scale(1.055);box-shadow:5px 12px 22px rgba(0,0,0,.45);z-index:2}.photo-image{display:block;width:100%;height:145px;background-image:url('assets/evidence-contact-sheet.png');background-size:200% 100%;background-position:left center;filter:sepia(.18) contrast(1.06)}.case-photo--scene .photo-image{height:180px;background-position:right center}.photo-caption{display:block;text-align:center;font:17px var(--hand);margin-top:7px}.tape{position:absolute;width:54px;height:18px;left:50%;top:-8px;transform:translateX(-50%) rotate(-3deg);background:rgba(205,187,143,.55);box-shadow:0 1px 1px rgba(0,0,0,.15)}
.crime-row{display:grid;grid-template-columns:1fr 340px;gap:30px;align-items:center;margin-top:18px;border-top:1px solid rgba(43,34,23,.35);padding-top:18px}.crime-copy h2{font:700 15px var(--serif);text-transform:uppercase;letter-spacing:.1em;margin:0 0 6px}.evidence-code{font:9px var(--mono);color:#72634f}.case-photo--scene{transform:rotate(-2deg)}
.close-file{position:absolute;left:42px;bottom:28px;background:none;border:0;border-bottom:1px solid #30261a;padding:6px 32px 6px 0;font:11px var(--mono);text-transform:uppercase;letter-spacing:.13em;cursor:pointer}.close-file i{position:absolute;right:0;top:50%;width:22px;height:1px;background:#30261a}.close-file i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-right:1px solid;border-top:1px solid;transform:rotate(45deg)}
.folder-stage.is-closing{transform:translate(-62vw,10vh) rotate(-7deg);transition:transform 1.1s cubic-bezier(.7,0,.2,1);pointer-events:none}
.investigation{position:absolute;inset:0;z-index:7;opacity:0;pointer-events:none;transition:opacity .8s}.investigation.is-visible{opacity:1;pointer-events:auto}.suspect-heading{position:absolute;left:7%;top:13%;color:var(--white);text-shadow:0 2px 6px #000}.suspect-heading span{font:9px var(--mono);letter-spacing:.22em;color:var(--gold)}.suspect-heading h2{font:700 27px var(--serif);text-transform:uppercase;letter-spacing:.08em;margin:6px 0}.suspect-heading p{font:11px var(--mono);color:rgba(241,230,208,.62);margin:0}.suspect-board{position:absolute;left:5%;right:6%;top:34%;display:flex;justify-content:center;gap:clamp(14px,2vw,33px);perspective:1000px}
.suspect-card{position:relative;width:clamp(155px,14.2vw,220px);height:clamp(270px,27vw,380px);padding:0;border:0;background:transparent;cursor:pointer;transform:translateY(-80vh) rotate(var(--r));opacity:0;filter:drop-shadow(7px 15px 12px rgba(0,0,0,.62));transition:transform .35s,filter .35s}.investigation.is-visible .suspect-card{animation:deal .75s cubic-bezier(.14,.76,.28,1.14) var(--delay) forwards}@keyframes deal{0%{transform:translateY(-75vh) rotate(calc(var(--r) * 3));opacity:0}70%{opacity:1}100%{transform:translateY(0) rotate(var(--r));opacity:1}}
.suspect-card:hover{transform:translateY(-14px) rotate(0) scale(1.035)!important;filter:drop-shadow(10px 22px 15px rgba(0,0,0,.75));z-index:4}.suspect-card__inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .72s cubic-bezier(.2,.75,.2,1)}.suspect-card.is-flipped .suspect-card__inner{transform:rotateY(180deg)}.suspect-card__front,.suspect-card__back{position:absolute;inset:0;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#e8ddc5;box-shadow:inset 0 0 20px rgba(72,48,25,.14)}.suspect-card__front{padding:11px 11px 0}.portrait{display:block;width:100%;height:72%;background-image:url('assets/suspects-contact-sheet.png');background-size:500% 100%;background-position:var(--pos) center;filter:sepia(.18) saturate(.65) contrast(1.08);transition:filter .8s}.suspect-name{display:block;font:700 clamp(23px,2.1vw,33px)/.82 var(--hand);margin-top:9px;transform:rotate(-1deg);color:#1c1916}.suspect-name small{display:block;font:600 clamp(8px,.7vw,11px)/1 var(--hand);letter-spacing:.13em;text-transform:uppercase;margin-top:8px;color:#5d5143}.pin{position:absolute;top:4px;left:50%;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e1c681,#8a6e35 45%,#392810 80%);box-shadow:1px 3px 3px rgba(0,0,0,.55)}
.suspect-card__back{transform:rotateY(180deg);padding:24px 18px;text-align:left;background-color:#d4c29e;background-image:repeating-linear-gradient(0deg,transparent 0 22px,rgba(91,77,51,.1) 23px)}.suspect-card__back b{font:700 12px var(--serif);text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid #4b4032;padding-bottom:6px}.suspect-card__back ul{margin:20px 0 0;padding:0;list-style:none}.suspect-card__back li{font:clamp(9px,.76vw,12px)/1.35 var(--mono);margin:0 0 13px;padding-left:13px;position:relative}.suspect-card__back li::before{content:"—";position:absolute;left:0}.suspect-card__back em{position:absolute;bottom:12px;right:14px;font:18px var(--hand);color:#756248;transform:rotate(-5deg)}
.suspect-card.is-wrong{animation:wrong .38s ease!important}@keyframes wrong{0%,100%{translate:0}25%{translate:-9px}50%{translate:8px}75%{translate:-5px}}.suspect-card.is-guilty{z-index:10;filter:drop-shadow(0 0 18px rgba(177,48,38,.55)) drop-shadow(10px 24px 16px #000)}.suspect-card.is-guilty .portrait{filter:sepia(0) saturate(1.05) contrast(1.02)}
.coffee-cluster{position:absolute;right:6.5%;top:8%;width:290px;height:255px;z-index:12;transition:opacity .4s,transform .7s}.coffee-note{position:absolute;right:15px;top:18px;width:205px;height:185px;padding:31px 26px;background:#c7b38e;transform:rotate(7deg);box-shadow:6px 11px 17px #000;font:25px/1.2 var(--hand);color:#423727}.coffee-note span{font:9px var(--mono);letter-spacing:.18em}.coffee-ring{position:absolute;left:39px;top:52px;width:126px;height:126px;border:7px solid rgba(67,37,20,.32);border-left-color:rgba(67,37,20,.12);border-radius:50%;transform:rotate(-20deg);filter:blur(.5px)}.coffee-cup{position:absolute;left:28px;top:37px;width:142px;height:142px;border:0;border-radius:50%;background:radial-gradient(circle at 38% 30%,#e6ded0,#9a8f7e 47%,#4c463e 76%,#201d1a);box-shadow:10px 18px 20px rgba(0,0,0,.72),inset -7px -10px 12px rgba(0,0,0,.5),inset 5px 5px 7px rgba(255,255,255,.3);z-index:3;cursor:default;transition:transform .75s cubic-bezier(.15,.85,.2,1),filter .3s}.coffee-cup::before{content:"";position:absolute;inset:13px;border-radius:50%;background:radial-gradient(ellipse at 43% 35%,#3c2316,#140d09 70%);box-shadow:inset 0 0 0 4px #c9bda9}.coffee-cup::after{content:"";position:absolute;left:38px;top:30px;width:53px;height:10px;border-radius:50%;background:rgba(226,192,148,.1);transform:rotate(-17deg)}.handle{position:absolute;right:-30px;top:45px;width:55px;height:55px;border:14px solid #82796d;border-radius:50%;z-index:-1;box-shadow:6px 6px 10px #000}.coffee-cup.is-ready{cursor:grab}.coffee-cup.is-ready:hover{filter:brightness(1.035)}.coffee-cup.is-moved{transform:translate(135px,-46px) rotate(16deg);cursor:default}.cup-hint{position:absolute;left:20px;bottom:14px;color:rgba(241,230,208,.65);font:16px var(--hand);opacity:0;transform:rotate(-7deg);transition:opacity .4s}.coffee-cup.is-ready~.cup-hint,.coffee-cluster.is-ready .cup-hint{opacity:.32}.coffee-cluster.is-revealed .cup-hint{opacity:0}.cigarette{position:absolute;left:59px;top:99px;width:96px;height:12px;border-radius:2px;background:linear-gradient(90deg,#b7a277 0 25%,#e8dfc8 25% 91%,#54493d 91%);transform:rotate(-24deg) scale(.7);box-shadow:3px 7px 8px #000;opacity:0;transition:opacity .45s .35s,transform .55s .35s;z-index:2}.cigarette::before{content:"";position:absolute;left:11px;top:1px;width:8px;height:10px;background:#8e2630;border-radius:50%;opacity:.85}.cigarette i{position:absolute;right:-4px;top:-2px;width:9px;height:16px;border-radius:50%;background:#302921}.coffee-cluster.is-revealed .cigarette{opacity:1;transform:rotate(-24deg) scale(1)}
.evidence-card{position:absolute;right:7%;bottom:6%;width:278px;min-height:156px;padding:21px 20px 16px;background:#cfbc95;box-shadow:5px 11px 17px #000;transform:translateY(130%) rotate(3deg);opacity:0;transition:transform .75s .35s,opacity .5s .35s;font-family:var(--mono)}.evidence-card.is-visible{transform:translateY(0) rotate(3deg);opacity:1}.evidence-card>span{font:10px var(--serif);letter-spacing:.18em;text-transform:uppercase}.evidence-card>b{float:right;font:26px var(--serif)}.typewriter{clear:both;border-top:2px solid #33291e;padding-top:12px;margin-top:8px;font:13px/1.55 var(--mono);min-height:72px}.evidence-card small{font-size:7px;letter-spacing:.12em;color:#665a46}.typewriter::after{content:"|";animation:blink .7s infinite}@keyframes blink{50%{opacity:0}}
.verdict-prompt{position:absolute;left:50%;top:15%;transform:translate(-50%,-18px);text-align:center;color:var(--white);opacity:0;pointer-events:none;transition:opacity .5s,transform .5s;text-shadow:0 2px 6px #000}.verdict-prompt.is-visible{opacity:1;transform:translate(-50%,0)}.verdict-prompt span,.verdict-prompt small{display:block;font:8px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.verdict-prompt strong{display:block;font:700 28px var(--serif);letter-spacing:.08em;text-transform:uppercase;margin:6px}.wrong-note{position:absolute;left:50%;bottom:8%;transform:translate(-50%,20px) rotate(-2deg);padding:8px 17px;background:#cdb98f;font:21px var(--hand);box-shadow:3px 8px 10px #000;opacity:0;transition:.25s}.wrong-note.is-visible{opacity:1;transform:translate(-50%,0) rotate(-2deg)}
.strings{position:absolute;inset:0;width:100%;height:100%;z-index:21;pointer-events:none;opacity:0}.strings.is-visible{opacity:1}.string{fill:none;stroke:#7f1718;stroke-width:3;stroke-linecap:round;filter:drop-shadow(2px 3px 2px #000);stroke-dasharray:10 3;stroke-dashoffset:900}.strings circle{fill:#b39757;stroke:#37250e;stroke-width:2;transform:scale(0);transform-box:fill-box;transform-origin:center}.strings.is-visible .string{animation:drawString 1.2s .2s forwards}.strings.is-visible circle{animation:pinPop .3s 1.25s forwards}@keyframes drawString{to{stroke-dashoffset:0}}@keyframes pinPop{to{transform:scale(1)}}
.solution{position:absolute;inset:0;z-index:24;background:rgba(8,7,6,.44);opacity:0;pointer-events:none;transition:opacity .6s .8s}.solution.is-visible{opacity:1;pointer-events:auto}.solution__paper{position:absolute;left:50%;top:50%;width:480px;min-height:370px;transform:translate(-50%,-44%) rotate(-2deg) scale(.8);padding:47px 53px;background:#d2bf98;box-shadow:13px 25px 50px #000;transition:transform .8s 1s cubic-bezier(.16,.88,.3,1.2);overflow:hidden}.solution.is-visible .solution__paper{transform:translate(-50%,-50%) rotate(-2deg) scale(1)}.solution__paper::before{content:"";position:absolute;inset:15px;border:1px solid rgba(48,38,26,.22)}.solution__eyebrow{font:8px var(--mono);letter-spacing:.18em}.solution h2{font:700 32px/1 var(--serif);text-transform:uppercase;letter-spacing:.05em;margin:24px 0 17px;max-width:330px}.solution p{font:13px/1.7 var(--mono)}.solution strong{display:block;font:700 16px/1.4 var(--serif);letter-spacing:.1em;text-transform:uppercase;margin-top:22px}.solution button{position:relative;margin-top:28px;padding:8px 40px 8px 0;border:0;border-bottom:1px solid;background:none;font:10px var(--mono);text-transform:uppercase;letter-spacing:.15em;cursor:pointer}.solution button i{position:absolute;right:0;top:50%;width:27px;border-top:1px solid}.solution-stamp{position:absolute;right:30px;bottom:38px;width:112px;height:112px;border:6px double rgba(126,25,23,.72);border-radius:50%;display:grid;place-items:center;text-align:center;font:800 21px/1 var(--serif);text-transform:uppercase;letter-spacing:.05em;color:rgba(126,25,23,.72);transform:rotate(-13deg) scale(3);opacity:0}.solution.is-visible .solution-stamp{animation:stampIn .34s 1.65s cubic-bezier(.2,.8,.2,1) forwards}@keyframes stampIn{60%{transform:rotate(-13deg) scale(.86);opacity:1}100%{transform:rotate(-13deg) scale(1);opacity:1}}
.lightbox{width:min(760px,78vw);max-width:none;border:0;padding:0;background:transparent;overflow:visible}.lightbox::backdrop{background:rgba(5,4,3,.82);backdrop-filter:blur(5px)}.lightbox__photo{padding:16px 16px 50px;background:#e7dbc3;box-shadow:0 30px 60px #000;transform:rotate(-1deg)}.lightbox__photo>div{width:100%;height:min(65vh,560px);background-image:url('assets/evidence-contact-sheet.png');background-size:200% 100%;background-position:left center}.lightbox__photo p{text-align:center;font:26px var(--hand);margin:12px 0 -35px}.lightbox__close{position:absolute;right:-38px;top:-43px;border:0;background:none;color:var(--white);font:35px Georgia;cursor:pointer}
.toast{position:absolute;left:50%;bottom:3%;z-index:50;transform:translate(-50%,20px);color:var(--white);font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;opacity:0;transition:.3s}.toast.show{opacity:.75;transform:translate(-50%,0)}
.desk.is-resetting>*:not(.grain):not(.lamp-glow){animation:resetFade .65s both}@keyframes resetFade{50%{opacity:0;filter:blur(5px)}100%{filter:none}}
@media(max-height:760px){.open-file{height:640px;transform:translate(-50%,-50%) scale(.86)}.open-file.is-visible{transform:translate(-50%,-50%) scale(.86)}.suspect-board{top:30%}.coffee-cluster{top:4%;transform:scale(.82);transform-origin:top right}.suspect-heading{top:11%}.suspect-card{height:300px;width:172px}.report-paper{padding-top:26px}}
@media(max-width:1180px){.suspect-board{gap:12px}.suspect-card{width:166px}.coffee-cluster{transform:scale(.82);transform-origin:top right}.case-index{left:28px}.evidence-card{right:3%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}
