@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--ink:#152740;--blue:#245be7;--paper:#faf4e6;--muted:#7d796e}*{box-sizing:border-box}html{background:#e4ddcc}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif;background:radial-gradient(ellipse at 20% 0,#f7edcf,transparent 60%),#e4ddcc}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #bd8d20;outline-offset:4px}[hidden]{display:none!important}.experience{max-width:480px;min-height:100svh;margin:auto;background:var(--paper);background-image:radial-gradient(#8c744514 .6px,transparent .6px);background-size:4px 4px;box-shadow:0 0 80px #28354a18;overflow:hidden;position:relative}.topbar{height:68px;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #17274019}.wordmark{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink);font:bold 14px/.9 Georgia,serif;letter-spacing:-.4px}.wordmark .glass{font-size:34px;line-height:1}.top-controls{display:flex;align-items:center;gap:8px}.case-number{font-size:9px;letter-spacing:1.2px;font-weight:700;color:#837b68}.sound{display:grid;place-items:center;width:35px;height:35px;border:1px solid #c9bfa8;border-radius:50%;background:#fffbf0;color:var(--ink);font-size:16px}.sound[aria-pressed=false]{opacity:.55}.screen{padding:22px 23px 18px;min-height:calc(100svh - 68px);display:flex;flex-direction:column;animation:enter .35s ease both}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:#7e725a;text-transform:uppercase;margin:0 0 10px}.eyebrow .dot{display:inline-block;width:6px;height:6px;background:#da9450;border-radius:50%;margin-right:6px}h1,h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:-1.1px;line-height:1.05;margin:0}h1{font-size:44px}h2{font-size:35px}em{font-weight:400;color:var(--blue)}.intro-copy{font-size:13px;line-height:1.6;color:#706f67;margin:12px 0 17px;max-width:340px}.scene{height:228px;position:relative;background-image:var(--case-art,url('case-001.webp'));background-size:270% auto;background-position:left 18%;border:6px solid #fff8e9;border-radius:5px;box-shadow:0 5px 16px #17274020;margin:0 0 20px;transform:rotate(-1.5deg)}.tape{position:absolute;top:-11px;left:39%;height:24px;width:85px;background:#e9cf8baa;transform:rotate(5deg);border:1px solid #ba9e4d26}.scene .stamp{position:absolute;bottom:13px;right:9px;color:#a34344;background:#fff4dfed;border:2px solid #a34344;transform:rotate(-9deg);font:bold 11px Georgia,serif;padding:8px;letter-spacing:2px}.file-label{position:absolute;left:11px;bottom:14px;background:var(--ink);color:#f8efd8;font-size:9px;letter-spacing:1px;padding:8px 10px;box-shadow:2px 3px 0 #0002}.mini-steps{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#6e706a;margin:3px 0 18px}.mini-steps span{display:flex;gap:5px;align-items:center}.mini-steps b{display:grid;place-items:center;border:1px solid #c3b797;width:21px;height:21px;border-radius:50%;font-family:Georgia,serif;color:var(--ink)}.cta-zone{margin-top:auto;padding-top:5px;position:relative}.guide{margin:0 0 6px;text-align:right;color:#8c6c33;font-family:Georgia,serif;font-size:12px;font-style:italic;padding-right:11px}.guide span{display:inline-block;font-size:25px;margin-left:8px;transform:rotate(12deg);animation:nudge 1.8s ease-in-out infinite}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:55px;border:1px solid #143dac;border-radius:8px;background:linear-gradient(#326bf5,#2054da);box-shadow:0 4px 0 #163781;color:#fff;padding:15px 19px;font-size:14px;font-weight:700;text-decoration:none}.primary:hover{filter:brightness(1.04)}.primary>span:last-child{font-size:20px}.fine{font-size:10px;line-height:1.6;text-align:center;color:#817a6a;margin:12px 0 0}.prototype{font-size:8px;letter-spacing:1px;color:#a39a85;text-align:center;margin:15px 0 0}.mission-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.back{border:0;background:none;color:#7b7669;padding:5px 0;font-size:11px}.stage-indicator{font-size:9px;font-weight:700;letter-spacing:1.4px}.progress{display:flex;gap:5px;margin:0 0 24px}.progress i{height:4px;flex:1;background:#ded5c1;border-radius:8px}.progress i.done{background:#326c58}.progress i.active{background:var(--blue)}.game-title{font-size:32px;max-width:350px}.instruction{font-size:12px;line-height:1.6;color:#79776e;margin:10px 0 15px}.evidence-card{position:relative;display:flex;align-items:center;gap:14px;padding:19px 16px;margin:7px 0 23px;background:linear-gradient(130deg,#e1eaff,#f2f5ff);border:1px solid #b5c9ed;border-left:5px solid #3866aa;border-radius:5px;box-shadow:2px 4px 0 #d2c7b32e;transform:rotate(-1deg)}.evidence-card::before{content:'';position:absolute;top:-9px;left:45%;width:53px;height:17px;background:#e8cf8d90;transform:rotate(5deg)}.evidence-card.pink{background:linear-gradient(130deg,#f9dce3,#fff2ec);border-color:#d8a9b6;border-left-color:#b15770}.evidence-card.gold{background:linear-gradient(130deg,#f5e4b4,#fff6df);border-color:#cdb783;border-left-color:#a87c28}.evidence-icon{font-size:38px;flex-shrink:0;filter:drop-shadow(0 3px 0 #17274015)}.evidence-card small{display:block;font-size:8px;letter-spacing:1.4px;font-weight:700;color:#768198;margin-bottom:6px}.evidence-card strong{display:block;font-size:16px;line-height:1.4}.evidence-card .mini-symbol{font-family:Georgia,serif;font-size:10px;color:#727b8c;margin-top:7px}.question{font-size:16px;font-weight:700;line-height:1.4;margin:0 0 10px}.choice-guide{display:flex;align-items:center;justify-content:flex-end;color:#8d7853;font:italic 12px Georgia,serif;margin:0 4px 8px}.choice-guide span{font-size:24px;margin-left:7px}.choices{display:grid;gap:9px}.choice{display:flex;align-items:center;gap:11px;position:relative;background:#fffcf3;border:1px solid #cdc2aa;border-radius:8px;box-shadow:0 2px 0 #e4dac6;min-height:58px;width:100%;padding:12px 14px;color:var(--ink);text-align:left;font-size:13px;font-weight:600}.choice:hover:not(:disabled){background:#f0f4ff;border-color:#7191d0}.choice .radio{width:20px;height:20px;border:1.5px solid #ada58f;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:#fff9;font-size:12px}.choice .letter{margin-left:auto;font-size:9px;color:#a09783;border:1px solid #e1d7c3;padding:3px 5px;border-radius:3px}.choice.correct{background:#e7f2e5;border-color:#79a582;box-shadow:0 2px 0 #b6cfb3}.choice.correct .radio{background:#347450;border-color:#347450;color:white}.choice.wrong{background:#fae9dd;border-color:#d6aa7e}.choice.wrong .radio{color:#a4603e;border-color:#bd8961}.choice:disabled{color:var(--ink);opacity:.65}.choice.correct:disabled{opacity:1}.feedback{margin:15px 0 4px;padding:13px 14px;background:#e7f2e5;border:1px solid #aec5a8;border-radius:6px;animation:enter .25s ease}.feedback.retry{background:#fff0cf;border-color:#d6bd80}.feedback strong{font-size:12px}.feedback p{font-size:11px;line-height:1.65;margin:6px 0 0}.game-footer{margin-top:auto;padding-top:20px}.game-footer .fine{margin-top:10px}.evidence-chips{display:flex;gap:5px;flex-wrap:wrap;margin:5px 0 17px}.evidence-chips span{font-size:9px;background:#f1e8cf;border:1px solid #d3c3a1;border-radius:4px;padding:6px}.case-seal{font-family:Georgia,serif;text-align:center;color:#2c7155;border:4px double #2c7155;letter-spacing:4px;font-weight:900;font-size:36px;padding:15px 10px;margin:21px 15px;transform:rotate(-8deg);animation:stamp .45s cubic-bezier(.2,.9,.3,1.1)}.solved-hero{text-align:center}.solved-hero .eyebrow{margin:13px 0}.solved-icon{font-size:59px;margin:15px 0 5px;filter:drop-shadow(0 5px 0 #15274013)}.solved-hero h2{font-size:39px}.solved-hero p{font-size:13px;color:#737368;line-height:1.7}.solution{background:#f1ead8;border:1px solid #d5c7a8;padding:17px;border-radius:6px;margin:8px 0 17px}.solution h3{margin:0 0 12px;font-size:11px;letter-spacing:1px}.solution p{font-size:12px;line-height:1.6;margin:9px 0;display:flex;gap:10px}.solution p b{color:#327552}.solution .limit{border-top:1px solid #d8cbb3;padding-top:10px;font-size:10px;color:#7e7868;display:block}.next-file{position:relative;background:#1a2c47;color:#f8efd8;border-radius:7px;padding:20px;margin:7px 0 17px;overflow:hidden;box-shadow:0 4px 0 #0d1c30}.next-file::after{content:'?';font:100px Georgia,serif;position:absolute;right:15px;bottom:-28px;opacity:.08;transform:rotate(12deg)}.next-file small{font-size:8px;letter-spacing:2px;color:#d9be77}.next-file h3{font:25px 'DM Serif Display',Georgia,serif;margin:8px 0}.next-file p{font-size:11px;color:#b8c3d4;margin:0;line-height:1.6}.text-button{display:block;text-align:center;background:none;border:0;color:#827965;text-decoration:underline;text-underline-offset:4px;font-size:11px;padding:12px;margin:8px auto}.profile-badge{background:#efe2bb;border:1px solid #cab783;padding:20px;margin:17px 0;display:flex;align-items:center;gap:15px;transform:rotate(-2deg)}.profile-badge .avatar{font-size:42px}.profile-badge small{font-size:8px;letter-spacing:2px;display:block;color:#8c7950}.profile-badge strong{font:24px Georgia,serif;display:block;margin:5px 0}.profile-badge span{font-size:10px;color:#89764d}.profile-form label{font-size:12px;font-weight:700;display:block;margin:12px 0 8px}.profile-form input{width:100%;min-height:53px;border:1px solid #c5b698;border-radius:6px;padding:12px;background:#fffdf5;color:var(--ink);margin-bottom:18px;font-size:16px}.profile-explanation{font-size:12px;color:#7c7769;line-height:1.7;margin:16px 0}.member-card{background:#e6efdf;padding:18px;border:1px solid #a6b898;border-radius:5px}.member-card p{font-size:12px;line-height:1.7}.footer-links{text-align:center;font-size:10px;margin-top:20px;color:#91856c}.footer-links a{color:inherit}.sources-dialog{max-width:440px;width:calc(100% - 30px);border:1px solid #c5b799;border-radius:9px;padding:26px;background:var(--paper);color:var(--ink)}.sources-dialog::backdrop{background:#14263dbb;backdrop-filter:blur(3px)}.sources-dialog h2{font-size:28px}.sources-dialog p,.sources-dialog a{font-size:12px;line-height:1.8}.sources-dialog a{display:block;color:var(--blue)}.sources-dialog button{border:0;background:none;float:right;font-size:24px;color:var(--ink)}@keyframes enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes nudge{0%,100%{transform:translateY(0) rotate(12deg)}50%{transform:translateY(4px) rotate(12deg)}}@keyframes stamp{from{opacity:0;transform:scale(1.5) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(-8deg)}}@media(min-width:600px){.experience{margin:28px auto;border-radius:15px;min-height:850px;border:1px solid #c5b89d}.screen{min-height:780px}.scene{height:255px}.topbar{height:70px}}@media(max-width:359px){.screen{padding:18px}.topbar{padding:14px 18px}h1{font-size:39px}.scene{height:190px}.mini-steps{font-size:9px;gap:4px}.game-title{font-size:29px}.choice{min-height:54px}.evidence-card strong{font-size:14px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}

h1:focus,h2:focus{outline:none}.evidence-card{display:grid;grid-template-columns:43px 1fr;padding:12px;gap:10px;margin-bottom:17px}.evidence-icon{font-size:32px}.evidence-card strong{font-size:14px}.clue-art{grid-column:1/-1;height:95px;background-image:var(--case-art,url('case-001.webp'));border-radius:4px;border:2px solid #fff9;box-shadow:0 2px 6px #18294112}.art-0{background-size:300% auto;background-position:left 55%}.art-1{background-size:300% auto;background-position:right 55%}.art-2{height:115px;background-size:100% auto;background-position:center 80%}.evidence-card .mini-symbol{display:none}.instruction{margin-bottom:9px}.game-title{font-size:30px}.progress{margin-bottom:18px}.choice{min-height:54px}.game-footer{padding-top:14px}body:has(.experience){padding-bottom:env(safe-area-inset-bottom)}

.scene{background:none;height:auto!important;aspect-ratio:3/2;transform:rotate(-1deg)}.scene>img{display:block;width:100%;height:100%;object-fit:contain}.scene .file-label{font-size:8px;bottom:7px;left:7px;padding:6px 8px}.scene .stamp{font-size:9px;bottom:9px;right:7px;padding:6px}

/* The dossier IS the mobile game board: evidence and portraits are touch targets. */
.visual-screen{padding:13px 12px 19px}.visual-screen .mission-top{padding:0 5px;margin-bottom:10px}.visual-title{font-size:28px;letter-spacing:-.7px;margin:0 6px}.visual-intro{font-size:11px;color:#787264;margin:7px 6px 15px}.visual-dossier{position:relative;border-radius:7px;box-shadow:0 8px 20px #15274025;isolation:isolate}.visual-dossier>img{display:block;width:100%;height:auto;border-radius:7px}.visual-counter{position:absolute;right:1.1%;top:11.5%;width:16.2%;height:8%;background:#f5ecd6;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(2deg);border:1px solid #c3b090;box-shadow:0 2px 4px #0002}.visual-counter strong{font:bold clamp(15px,5vw,23px) Georgia,serif;line-height:1}.visual-counter>span{font-size:5px;font-weight:700;letter-spacing:.5px;margin-top:4px}.image-clue,.image-suspect{position:absolute;border:2px solid transparent;border-radius:5px;background:transparent;color:var(--ink);padding:0;min-height:48px;touch-action:manipulation}.image-clue{top:40.1%;height:23%;width:32%;box-shadow:inset 0 0 0 1px #fff6}.image-clue-0{left:.8%}.image-clue-1{left:33.9%}.image-clue-2{left:67%}.image-clue:focus-visible,.image-suspect:focus-visible{outline:3px solid #1f5ce6;outline-offset:0;z-index:5}.image-clue .pin-number{position:absolute;left:5px;top:4px;display:grid;place-items:center;width:26px;height:26px;background:#f9f4e7;border:2px solid #244e85;color:#244e85;box-shadow:0 2px 6px #0003;border-radius:50%;font:bold 12px Georgia,serif}.image-clue-1 .pin-number{color:#80601a;border-color:#a88630}.image-clue-2 .pin-number{color:#a3475d;border-color:#a3475d}.pin-caption{position:absolute;bottom:3px;left:3px;right:3px;background:#1b304df2;color:#fff5df;border-radius:3px;padding:6px 1px;font-size:8px;font-weight:700;box-shadow:0 2px 2px #0002}.image-clue.examined{border:3px solid #43845d;box-shadow:inset 0 0 0 1px #fff9}.image-clue.examined .pin-number{background:#2f754f;border-color:#eaf4df;color:white}.image-clue.examined .pin-caption{background:#2f674e}.picture-guide{position:absolute;top:30%;left:4%;z-index:4;pointer-events:none;display:flex;flex-direction:column;align-items:center;transform:rotate(-5deg);filter:drop-shadow(0 2px 3px #0003)}.picture-guide>span{font:italic 11px Georgia,serif;background:#fff3bc;padding:7px 10px;border:1px solid #c2a357;border-radius:4px;white-space:nowrap;color:#4e401c}.picture-guide>b{font-size:34px;color:#fff3bc;text-shadow:1px 1px #57401c;line-height:1;align-self:flex-start;margin-left:7px;animation:pointBounce 1.7s ease-in-out infinite}.picture-guide.point-1{left:34%;transform:rotate(4deg)}.picture-guide.point-2{left:auto;right:2%;transform:rotate(4deg)}.picture-guide.point-suspects{top:60.5%;left:18%;transform:rotate(-3deg)}.image-suspect{top:68.5%;height:18.8%;width:31%}.image-suspect-0{left:2%}.image-suspect-1{left:34.7%}.image-suspect-2{left:67%}.portrait-circle{position:absolute;right:5px;top:5px;background:#fff6df;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-size:21px;line-height:1;border:1px solid #9c8c68;box-shadow:0 2px 5px #0002}.portrait-select{position:absolute;bottom:1px;left:3px;right:3px;background:#172b47ec;color:#fff7df;font-size:8px;padding:5px 0;border-radius:3px}.image-suspect.selected{border:3px solid #245be7;box-shadow:0 0 0 2px #fff6df,inset 0 0 0 1px #fff9;background:#245be712}.image-suspect.selected .portrait-circle{color:#245be7;border-color:#245be7}.image-suspect.selected .portrait-select{background:#245be7}.image-accuse{position:absolute;left:26%;width:47%;top:88%;height:6%;min-height:30px;border:1px solid #315efd;border-radius:5px;background:#2159e2;color:white;font-size:clamp(7px,2.1vw,10px);font-weight:800}.visual-status{font-size:11px;line-height:1.5;text-align:center;color:#6d6759;margin:15px 5px 10px;min-height:17px}.visual-accuse{min-height:51px;justify-content:center}.visual-accuse:disabled{background:#d4cbb7;color:#80775f;border-color:#c8baa0;box-shadow:0 3px 0 #bcb098}.visual-screen .text-button{font-size:10px;padding:5px;margin:6px auto 0}.evidence-sheet{position:fixed;inset:auto 0 0;margin:0 auto;max-width:480px;width:100%;max-height:88svh;overflow:auto;border:1px solid #bfae8c;border-bottom:0;border-radius:18px 18px 0 0;background:#faf4e6;color:var(--ink);padding:16px 23px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -12px 60px #17274040;animation:slideUp .25s ease}.evidence-sheet::backdrop{background:#10233ba8;backdrop-filter:blur(3px)}.sheet-grip{width:40px;height:4px;background:#cfc1a4;border-radius:5px;margin:0 auto 23px}.sheet-close{position:absolute;right:12px;top:10px;width:40px;height:40px;border:0;background:none;font-size:27px;color:#756b57}.sheet-illustration{height:160px;border:5px solid #fffaf0;border-radius:7px;background-image:var(--case-art,url('case-001.webp'));box-shadow:0 3px 10px #1727401a;margin:12px 0 22px;background-size:300% auto}.sheet-illustration.target{background-position:left 55%}.sheet-illustration.effect{background-position:center 55%}.sheet-illustration.potassium{background-position:right 55%}.evidence-sheet h2{font-size:31px;margin:0 0 12px}.sheet-fact{font-size:17px;font-weight:700;line-height:1.5}.sheet-detail{font-size:13px;color:#716d62;line-height:1.7;margin:12px 0 23px}.evidence-sheet .primary{justify-content:center}.visual-screen .fine{font-size:9px}@keyframes pointBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes slideUp{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}@media(min-width:600px){.visual-title{font-size:30px}.visual-screen{padding:16px}.pin-caption,.portrait-select{font-size:9px}.picture-guide>span{font-size:12px}}@media(prefers-reduced-motion:reduce){.picture-guide>b,.evidence-sheet{animation:none!important}}

.image-accuse{min-height:44px;top:87.6%;left:23%;width:53%}.portrait-select{font-size:7px;padding:6px 1px;overflow-wrap:anywhere}

/* Inspection mode: zoomable playfield, persistent selection, contextual journal. */
.game-inspection{padding:10px 12px 18px}.game-inspection .mission-top{margin-bottom:7px}.game-inspection .visual-title{font-size:25px}.game-inspection .visual-intro{margin:5px 6px 11px;font-size:10px}.inspection-tools{display:flex;align-items:center;gap:5px;background:#1b2e47;border:1px solid #30435c;border-radius:7px 7px 0 0;padding:4px 6px;color:#f4e7c6;box-shadow:0 3px 6px #17274015}.inspection-tools button{color:#f4e7c6;background:transparent;border:0;min-height:40px;flex-shrink:0}.magnify-toggle{font-size:11px;font-weight:700;padding:0 8px;min-width:89px;border-right:1px solid #ffffff20!important}.magnify-toggle[aria-pressed=true]{color:#b8d3ff;background:#2b456b;border-radius:4px}.zoom-button{font-size:23px;min-width:30px;padding:0}.zoom-button:disabled{opacity:.3}.inspection-tools input{width:100%;min-width:35px;accent-color:#d9b65c;height:36px;cursor:pointer}.zoom-value{font-size:9px;min-width:31px;font-variant-numeric:tabular-nums;color:#c7d3e2}.game-inspection .visual-dossier{border-radius:0 0 6px 6px;overflow:hidden;background:#c7b896;border:1px solid #8b7d63;border-top:0;box-shadow:0 6px 14px #17274021}.dossier-canvas{position:relative;width:100%;flex-shrink:0}.dossier-canvas>img{display:block;width:100%;height:auto;max-width:none;user-select:none;-webkit-user-drag:none}.visual-dossier.zooming{height:min(58svh,530px);min-height:300px;overflow:auto;overscroll-behavior:contain;cursor:grab;scrollbar-width:thin;scrollbar-color:#8c7852 #d7c8a7;touch-action:pan-x pan-y}.visual-dossier.dragging{cursor:grabbing;user-select:none}.visual-dossier.zooming button{cursor:pointer}.game-inspection .visual-status{margin:8px 2px;font-size:10px;min-height:16px}.game-inspection .picture-guide>span{font-size:10px;padding:5px 8px}.game-inspection .picture-guide>b{font-size:29px}.game-inspection .image-suspect{border:1px solid #729ee6;background:#245be706;box-shadow:inset 0 0 0 1px #fff5;border-radius:2px;transition:box-shadow .12s,background .12s}.game-inspection .image-suspect.selected{border:4px solid #1968ff;outline:2px solid #e8f2ff;outline-offset:0;background:#2c7bff1c;box-shadow:0 0 0 3px #1555c5,inset 0 0 14px #1968ff50;z-index:3}.game-inspection .portrait-circle{border-radius:3px;width:22px;height:22px;top:4px;right:4px;background:#fff6df;border:2px solid #195de1;font-size:16px;font-weight:900;color:white}.game-inspection .selected .portrait-circle{color:white;background:#1968ff;border-color:#e7f0ff;box-shadow:0 1px 6px #063c9e80}.selection-label{display:none}.selected .selection-label{display:block;position:absolute;top:-14px;left:4px;background:#1968ff;color:white;border:1px solid #d5e6ff;font-size:7px;font-weight:900;letter-spacing:.6px;padding:3px 5px;border-radius:2px;box-shadow:0 2px 5px #17274040}.selection-corner{display:none}.selected .selection-corner{display:block;position:absolute;width:10px;height:10px;border-color:white;border-style:solid;pointer-events:none}.corner-0{top:1px;left:1px;border-width:2px 0 0 2px}.corner-1{top:1px;right:1px;border-width:2px 2px 0 0}.corner-2{bottom:1px;left:1px;border-width:0 0 2px 2px}.corner-3{bottom:1px;right:1px;border-width:0 2px 2px 0}.game-inspection .portrait-select{font-size:7px;padding:5px 1px;background:#172b47ee;left:1px;right:1px;bottom:1px}.game-inspection .selected .portrait-select{background:#1968ff;color:#fff}.game-inspection .image-clue.active{border:3px solid #e0b750;box-shadow:0 0 0 1px #fff2c4,inset 0 0 8px #e0b75050}.game-inspection .image-accuse{height:6%;min-height:0;top:88%;left:26%;width:47%;font-size:7px}.inspection-log{position:relative;background:#f1e5c9;border:1px solid #c3ac7c;border-left:4px solid #9d7a37;border-radius:3px;padding:10px 12px;margin:0 0 12px;box-shadow:0 3px 0 #d0c2a42b}.log-header{display:flex;justify-content:space-between;font-size:7px;font-weight:700;letter-spacing:1px;color:#8b754e;margin-bottom:7px;gap:8px}.inspection-log h3{font:700 16px Georgia,serif;margin:0 0 5px;color:#26364c}.log-fact{font-size:12px;line-height:1.5;margin:0;color:#5a5b53}.log-detail{font-size:10px;color:#73664d;margin-top:8px}.log-detail summary{cursor:pointer;font-weight:700;text-underline-offset:3px}.log-detail p{font-size:12px;line-height:1.7;margin-bottom:1px}.inspection-log.suspect{background:#e4edff;border-color:#a2bae4;border-left-color:#2463da}.inspection-log.suspect .log-header{color:#4b70a2}.inspection-log.mismatch{background:#f6e5d5;border-color:#cd9c71;border-left-color:#ad633d}.inspection-log.mismatch .log-header{color:#a76540}.log-flash{animation:journalFlash .28s ease}.game-inspection .visual-accuse{margin:0;min-height:49px}.game-inspection .text-button{font-size:9px;margin:9px auto 0;padding:3px}@keyframes journalFlash{from{box-shadow:0 0 0 3px #c4a35460}to{box-shadow:0 3px 0 #d0c2a42b}}@media(prefers-reduced-motion:reduce){.log-flash{animation:none}.game-inspection .image-suspect{transition:none}}@media(max-width:359px){.inspection-tools{gap:2px;padding:3px}.magnify-toggle{min-width:83px;font-size:10px}.zoom-button{min-width:27px}.game-inspection .visual-title{font-size:23px}.log-header{font-size:6px}}

/* Selectable local magnifier: the board never scales or moves. */
.inspection-tools{gap:6px;padding:5px 7px}.inspection-tools .magnify-toggle,.inspection-tools .select-tool{display:flex;align-items:center;justify-content:center;min-height:42px;border:1px solid #657790!important;border-radius:5px;font-size:11px;font-weight:700;padding:0 10px;min-width:0;background:#253b58;color:#e7dfcd}.inspection-tools button[aria-pressed=true]{background:#245be7;border-color:#9ab9ff!important;color:white;box-shadow:inset 0 0 0 1px #638fff,0 2px 0 #102a65}.tool-hint{margin-left:auto;font-size:8px;line-height:1.5;color:#bfc9d6;max-width:85px}.moving-lens{position:absolute;z-index:20;border-radius:50%;background-image:var(--case-art,url('case-001.webp'));background-repeat:no-repeat;border:6px solid #b38a39;outline:2px solid #f7e4a6;box-shadow:0 0 0 3px #4f3821,0 13px 24px #07172980,inset 0 0 18px #0003;pointer-events:none}.moving-lens::after{content:'';position:absolute;inset:0;border-radius:50%;background:linear-gradient(135deg,#fff7 0%,transparent 26%,transparent 77%,#19375422);box-shadow:inset 3px 3px 0 #fff4}.lens-reticle{position:absolute;z-index:19;pointer-events:none;transform:translate(-50%,-50%);width:20px;height:20px;border:1px solid #fff4cc;border-radius:50%;background:#1a2d48cc;color:#fff0b5;font:16px/18px monospace;text-align:center;box-shadow:0 1px 3px #0005}.visual-dossier.lens-mode{touch-action:none;cursor:crosshair;overflow:hidden}.visual-dossier.lens-mode *{cursor:crosshair!important}.visual-dossier.lens-mode .image-clue,.visual-dossier.lens-mode .image-suspect,.visual-dossier.lens-mode .image-accuse{pointer-events:none}.visual-dossier.lens-mode .pin-caption,.visual-dossier.lens-mode .portrait-select{opacity:.45}.game-inspection .dossier-canvas{width:100%!important}.moving-lens,.lens-reticle{transition:none!important}

.moving-lens{background-origin:border-box}.moving-lens::before{content:"";position:absolute;right:-9px;bottom:-35px;width:16px;height:53px;border-radius:4px 4px 7px 7px;background:linear-gradient(90deg,#35281f,#70513a 45%,#34271e);border:2px solid #a88746;transform:rotate(-40deg);box-shadow:0 4px 7px #07172970;z-index:-1}

/* A discoverable trace and the animated evidence reconstruction. */
.secret-trace{position:absolute;left:60%;top:25.5%;transform:translate(-50%,-50%);z-index:7;display:grid;place-items:center;min-width:44px;min-height:44px;background:radial-gradient(circle,#ffe78ccf 0%,#ffe78c66 35%,transparent 68%);border:0;color:#72501d;font-size:30px;text-shadow:0 0 4px #fff3b5,0 0 10px #fff4b8;animation:tracePulse 2.6s ease-in-out infinite}.secret-trace.found{font-size:19px;color:#fff5cb;background:radial-gradient(circle,#277955 0%,#277955 32%,transparent 38%);animation:none}.visual-dossier.lens-mode .secret-trace{pointer-events:none}.discovery-stamp{position:absolute;right:5%;top:32%;z-index:8;color:#155c45;background:#f9f3d8eb;border:3px double #277955;transform:rotate(-8deg);padding:7px 9px;font:bold 10px Georgia,serif;letter-spacing:1px;pointer-events:none;animation:stamp .4s ease}.discovery-glow{outline:3px solid #aee6a4;box-shadow:0 0 0 3px #246644,0 0 25px #c9f3a99c,0 13px 24px #07172980}.inspection-log.discovery{background:#e5f0dc;border-color:#9cb381;border-left-color:#457d42}.inspection-log.discovery .log-header{color:#4a713b}.reconstruction-screen{padding:19px 15px}.reconstruction-screen>h2{font-size:34px}.reconstruction-screen .intro-copy{margin:8px 0 15px;font-size:12px}.reconstruction-board{position:relative;overflow:hidden;border-radius:7px;box-shadow:0 7px 20px #17274026}.reconstruction-board>img{display:block;width:100%;height:auto;filter:saturate(.65) brightness(.82);transition:filter .6s}.proof-connections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.proof-connections path{fill:none;stroke:#ffda66;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2400;stroke-dashoffset:2400;filter:drop-shadow(0 2px 1px #172740);transition:stroke-dashoffset .85s ease}.reconstruction-screen[data-proof="0"] .proof-connections path{stroke-dashoffset:2020}.reconstruction-screen[data-proof="1"] .proof-connections path{stroke-dashoffset:1640}.reconstruction-screen[data-proof="2"] .proof-connections path{stroke-dashoffset:1450}.proof-outline{position:absolute;top:40.2%;height:23%;width:31.8%;border:3px solid transparent;border-radius:5px;z-index:2;transition:border-color .25s,box-shadow .25s}.proof-0{left:1%}.proof-1{left:34%}.proof-2{left:67%}.reconstruction-screen[data-proof="0"] .proof-0,.reconstruction-screen[data-proof="1"] .proof-1,.reconstruction-screen[data-proof="2"] .proof-2{border-color:#ffe08b;box-shadow:0 0 0 2px #fff2bd55,inset 0 0 20px #ffda6655}.proof-culprit{position:absolute;top:68.5%;left:2%;width:31%;height:18.8%;border:4px solid #296dff;box-shadow:0 0 0 2px #e7f1ff,inset 0 0 18px #6ab0ff66;z-index:4;opacity:0;transition:opacity .3s}.proof-culprit>span{position:absolute;top:-16px;left:0;background:#286af7;color:white;border:1px solid #d7e9ff;font-size:7px;font-weight:800;padding:4px;white-space:nowrap}.reconstruction-seal{position:absolute;top:26%;left:10%;right:10%;font:bold 34px Georgia,serif;text-align:center;color:#f8f2da;background:#174d43ed;border:5px double #f8f2da;padding:13px 3px;transform:rotate(-9deg) scale(1.3);opacity:0;z-index:8;box-shadow:0 6px 15px #17274055;letter-spacing:2px}.proof-narration{display:grid;gap:7px;margin:17px 0}.proof-row{display:flex;gap:10px;align-items:center;padding:10px;border-left:3px solid #c5b58e;background:#f0e8d6;opacity:.3;transform:translateY(5px);transition:opacity .35s,transform .35s,border-color .35s}.proof-row>span{font-size:24px}.proof-row>div{font-size:11px;line-height:1.6}.proof-row.revealed{opacity:1;transform:none;border-left-color:#b88c29}.reconstruction-complete .reconstruction-board>img{filter:none}.reconstruction-complete .proof-connections path{stroke-dashoffset:0}.reconstruction-complete .proof-culprit{opacity:1}.reconstruction-complete .reconstruction-seal{animation:closedStamp .45s ease forwards}.reconstruction-conclusion>h2{font-size:38px;margin-top:22px}.collection-file{background:#1b2e47;color:#f6edd4;padding:17px;border-radius:5px;display:grid;gap:8px;margin:17px 0 22px;border:1px solid #3e536b;box-shadow:0 4px 0 #102239}.collection-file small{font-size:8px;letter-spacing:2px;color:#c9b577}.collection-file strong{font-size:12px}.collection-file>span{font-size:9px;color:#b6dfb5;letter-spacing:.7px}.discovery-award{font-size:11px;color:#47703c;text-align:center;margin:15px 0}@keyframes tracePulse{0%,100%{opacity:.65;filter:drop-shadow(0 0 2px #fff4b8)}50%{opacity:1;filter:drop-shadow(0 0 8px #ffe78c)}}@keyframes closedStamp{from{opacity:0;transform:rotate(-15deg) scale(1.4)}to{opacity:1;transform:rotate(-9deg) scale(1)}}@media(prefers-reduced-motion:reduce){.secret-trace,.discovery-stamp{animation:none!important}.proof-row,.proof-outline,.proof-connections path,.reconstruction-board>img{transition:none!important}.reconstruction-complete .reconstruction-seal{animation:none!important;opacity:1;transform:rotate(-9deg) scale(1)}}

.reconstruction-counter{z-index:5}.reconstruction-bottom{position:absolute;top:88%;left:26%;width:47%;height:6%;display:grid;place-items:center;background:#1b5949;color:#fff2cc;border:1px solid #b9dfbd;border-radius:4px;font-size:7px;font-weight:800;z-index:5}.reconstruction-seal{top:21%;font-size:30px}

/* Collected evidence is a status; only the currently inspected clue is selected. */
.game-inspection .image-clue.examined{border:2px solid transparent;box-shadow:inset 0 0 0 1px #fff6}
.game-inspection .image-clue.examined .pin-number{background:#f9f4e7;border-color:#244e85;color:#244e85}
.game-inspection .image-clue-1.examined .pin-number{border-color:#a88630;color:#80601a}
.game-inspection .image-clue-2.examined .pin-number{border-color:#a3475d;color:#a3475d}
.game-inspection .image-clue.examined .pin-caption{background:#26354bd9;color:#e6e1d4;font-weight:500}
.game-inspection .image-clue.active,.game-inspection .image-clue.examined.active{border:3px solid #2465ee;box-shadow:0 0 0 1px #f1f5ff,inset 0 0 9px #2465ee24;z-index:4}
.game-inspection .image-clue.active .pin-caption{background:#2465ee;color:white;font-weight:800}
.game-inspection .image-clue.active .pin-number{background:#2465ee;border-color:#f1f5ff;color:white}

/* Tactile tools, lifted evidence and focused suspect portraits. */
.inspection-tools{gap:9px;padding:9px;background:repeating-linear-gradient(110deg,#ffffff03 0 1px,transparent 1px 4px),linear-gradient(120deg,#283a50,#14283f);border:1px solid #3e526a;border-bottom:3px solid #0f2036;box-shadow:inset 0 1px 0 #ffffff18,0 3px 9px #11223820;border-radius:8px 8px 0 0}
.inspection-tools .magnify-toggle,.inspection-tools .select-tool{flex:1;gap:9px;justify-content:flex-start;min-height:62px;padding:7px 9px;background:linear-gradient(#33485e,#22374c);border:1px solid #64778c!important;border-radius:6px;box-shadow:inset 0 1px 0 #ffffff18,0 3px 0 #0f2032;transform:translateY(-1px);transition:background .15s,transform .15s,box-shadow .15s}
.inspection-tools button[aria-pressed=true]{background:linear-gradient(#2c5684,#214269);border:1px solid #d8bc77!important;box-shadow:inset 0 0 0 1px #9bbee14d,inset 0 2px 8px #10223b55,0 1px 0 #0f2032;transform:translateY(1px)}
.kit-object{position:relative;display:grid;place-items:center;flex-shrink:0;width:39px;height:39px;background:linear-gradient(145deg,#f6e9c4,#c8ad72);border:1px solid #f8eccb;border-radius:50%;box-shadow:0 3px 5px #0b16295c,inset 0 -3px 0 #8f703b44;transform:rotate(-9deg)}
.kit-lens::before{content:'';position:absolute;width:18px;height:18px;left:5px;top:4px;border:4px solid #a8782c;outline:1px solid #f4db8e;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff 0 9%,#bfdfef 13%,#7299b1 62%,#c4d5d7);box-shadow:inset 1px 1px 2px #34536d66,0 1px 1px #62441c}
.kit-lens::after{content:'';position:absolute;width:17px;height:7px;left:23px;top:28px;transform:rotate(45deg);background:linear-gradient(#805637,#3a2c25);border:1px solid #b48f4e;border-radius:2px 4px 4px 2px}
.kit-hand{font-size:30px;line-height:1;font-family:'Segoe UI Emoji','Apple Color Emoji',sans-serif}.kit-label{display:grid;gap:4px;text-align:left;white-space:nowrap}.kit-label strong{font-size:11px;color:#f8edd3;font-weight:700}.kit-label small{font-size:8px;color:#b6c5d3;font-weight:400}.inspection-tools button[aria-pressed=true] .kit-label small{color:#e8d599}.tool-hint{display:none}
.game-inspection .image-clue{transition:transform .18s,box-shadow .18s;transform-origin:center}
.game-inspection .image-clue.active,.game-inspection .image-clue.examined.active{background-image:var(--case-art,url('case-001.webp'));background-size:312.5% 434.783%;background-repeat:no-repeat;transform:translateY(-3px) scale(1.025) rotate(-.5deg);box-shadow:0 6px 10px #11233e66,0 0 0 1px #f1f5ff,inset 0 0 9px #2465ee24;z-index:6}
.game-inspection .image-clue-0.active{background-position:1.2% 52.08%}.game-inspection .image-clue-1.active{background-position:49.85% 52.08%}.game-inspection .image-clue-2.active{background-position:98.5% 52.08%}
.game-inspection .image-clue.active::after{content:'';position:absolute;right:8px;top:-10px;width:9px;height:27px;border:2px solid #c8c8bd;border-bottom-color:#7a817f;border-radius:5px;transform:rotate(12deg);box-shadow:1px 1px 1px #14283d77,inset 1px 0 0 #fff9;background:linear-gradient(90deg,#838f9155,#ffffff44);pointer-events:none}
.game-inspection .has-suspect .image-suspect:not(.selected){background:#11243e42;box-shadow:inset 0 0 18px #10223925;transition:background .18s,box-shadow .18s}
.game-inspection .image-suspect.selected{background-image:var(--case-art,url('case-001.webp'));background-repeat:no-repeat;background-size:322.581% 531.915%;transform:translateY(-3px) scale(1.025);transform-origin:center;box-shadow:0 7px 13px #10203966,0 0 0 2px #dceeff,inset 0 0 14px #1968ff30;z-index:7}
.game-inspection .image-suspect-0.selected{background-position:2.9% 84.36%}.game-inspection .image-suspect-1.selected{background-position:50.29% 84.36%}.game-inspection .image-suspect-2.selected{background-position:97.1% 84.36%}
.visual-dossier.lens-mode .image-clue,.visual-dossier.lens-mode .image-suspect{transform:none!important;background:transparent!important}.visual-dossier.lens-mode .image-clue.active::after{display:none}
@media(max-width:359px){.inspection-tools{gap:6px;padding:7px}.inspection-tools .magnify-toggle,.inspection-tools .select-tool{padding:6px;gap:7px}.kit-object{width:35px;height:35px}.kit-label strong{font-size:10px}.kit-label small{font-size:7px}}
@media(prefers-reduced-motion:reduce){.inspection-tools button,.game-inspection .image-clue,.game-inspection .image-suspect{transition:none!important}.game-inspection .image-clue.active,.game-inspection .image-suspect.selected{transform:none}}

.game-inspection .image-clue.active,.game-inspection .image-suspect.selected{background-origin:border-box;background-clip:border-box}

/* A case-specific medal, earned once and kept with the detective's local file. */
.medal-award{text-align:center;padding:23px 15px 19px;border:1px solid #d4bd82;background:radial-gradient(ellipse at center 45%,#fff7d9,#eee1c1 74%);border-radius:7px;margin:24px 0;overflow:hidden}.medal-award .eyebrow{font-size:8px;color:#92712d}.case-medal{position:relative;width:150px;height:170px;margin:14px auto 6px;isolation:isolate;animation:medalArrive .65s ease both}.medal-ribbon{position:absolute;top:77px;width:44px;height:80px;background:linear-gradient(90deg,#163e7b,#4473b5 50%,#1d467e);border:1px solid #7692c1;clip-path:polygon(0 0,100% 0,100% 100%,50% 79%,0 100%);z-index:-1}.ribbon-left{left:35px;transform:rotate(15deg)}.ribbon-right{right:35px;transform:rotate(-15deg)}.medal-face{position:absolute;left:20px;top:3px;width:110px;height:110px;border:6px solid #c5a24b;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff0b3,#dfbb60 48%,#a78132 100%);box-shadow:0 0 0 2px #8c6727,inset 0 0 0 2px #fff1b5,inset 0 0 0 7px #b18a3d88,0 8px 12px #7c5f303f;display:flex;flex-direction:column;align-items:center;color:#73501b}.medal-rim{font-size:6px;font-weight:900;letter-spacing:.8px;margin-top:16px;text-shadow:0 1px 0 #fff2bf}.medal-symbol{font:700 51px/.9 Georgia,serif;color:#7b5620;text-shadow:0 2px 0 #fff0b6,-1px -1px 0 #b18d44;margin:0}.medal-number{font-size:6px;letter-spacing:1.3px;font-weight:900;margin-top:7px;text-shadow:0 1px 0 #fff2bf}.medal-award h3{font:29px 'DM Serif Display',Georgia,serif;color:#765721;margin:0 0 8px}.medal-award>p:last-child{font-size:11px;line-height:1.7;color:#8c7955;max-width:260px;margin:0 auto}.collection-screen>h1{font-size:39px}.collection-count{display:flex;align-items:center;gap:12px;padding:16px 0 20px;border-bottom:1px solid #d2c3a3;margin:0 0 22px}.collection-count strong{font:44px Georgia,serif;color:#9d792d}.collection-count>span{font-size:9px;letter-spacing:1.5px;color:#8f7c55}.medal-collection-card{display:flex;gap:9px;align-items:center;background:#f1e4c6;border:1px solid #d4bf8e;border-radius:6px;padding:14px 13px;margin-bottom:23px}.case-medal.compact{width:100px;height:120px;margin:0 -4px 0 -8px;transform:scale(.75);transform-origin:center;flex-shrink:0;animation:none}.compact .medal-face{left:-5px;top:0}.compact .ribbon-left{left:8px}.compact .ribbon-right{right:8px}.medal-collection-card small{font-size:7px;letter-spacing:1px;color:#8a7549}.medal-collection-card h2{font-size:28px;color:#795c2a;margin:7px 0}.medal-collection-card p{font-size:10px;color:#8c7d5f;line-height:1.6;margin:0}.collection-bonus{display:inline-block;font-size:8px;color:#4e7647;margin-top:9px}.collection-screen .primary{margin-top:8px}@keyframes medalArrive{from{opacity:0;transform:translateY(17px) scale(.8) rotate(-15deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@media(prefers-reduced-motion:reduce){.case-medal{animation:none!important}}

/* Reward drop: an actual gift-opening moment, then a collectible in the file. */
.sticker-reward-dialog{position:fixed;inset:0;margin:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;background:radial-gradient(ellipse at 50% 42%,#36516e,#162b43 55%,#0a1d31);color:#fff1ce;overflow-y:auto;overscroll-behavior:contain;z-index:100}.sticker-reward-dialog::backdrop{background:#0a1829ee;backdrop-filter:blur(8px)}.sticker-reward-scene{position:relative;isolation:isolate;width:min(100%,500px);min-height:100%;margin:auto;padding:16px 21px calc(23px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden}.sticker-reward-top{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#b5c5d6;margin-bottom:16px}.sticker-reward-top>span{font-size:8px;letter-spacing:1.8px;color:#cfb876}.reward-close,.reward-sound{width:36px;height:36px;background:#ffffff08;border:1px solid #ffffff26;color:#dce5ee;border-radius:50%;font-size:24px;cursor:pointer}.reward-sound{font-size:18px}.reward-copy{text-align:center;position:relative;z-index:2}.reward-kicker{color:#f3d27e;font-size:10px;font-weight:800;letter-spacing:2.3px;margin:5px 0 12px}.reward-copy h1{font-size:46px;font-family:'DM Serif Display',Georgia,serif;color:#fff2d0;letter-spacing:-1.2px;line-height:1.08;margin:0;text-shadow:0 3px 0 #071a2a66}.reward-subtitle{font-size:12px;color:#b9cadb;margin:11px 0 0;line-height:1.6}.sticker-drop-stage{position:relative;isolation:isolate;flex:1;min-height:290px;max-height:52svh;display:grid;place-items:center;margin:9px -12px 0;perspective:800px}.sticker-drop-art{position:relative;z-index:3;display:block;width:min(94%,420px);max-height:49svh;object-fit:contain;filter:drop-shadow(0 16px 13px #0613218c);opacity:0;animation:stickerPop .8s .45s cubic-bezier(.22,.95,.3,1.2) forwards;pointer-events:none}.reward-rays{position:absolute;z-index:-1;width:580px;height:580px;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:repeating-conic-gradient(from 0deg,#e7c37114 0deg 10deg,transparent 10deg 28deg);mask-image:radial-gradient(circle,#000 10%,transparent 69%);opacity:0;animation:rewardRays 1.4s .35s ease forwards}.reward-ring{position:absolute;z-index:0;left:50%;top:50%;width:160px;height:160px;border:3px solid #f5d77d66;border-radius:50%;transform:translate(-50%,-50%) scale(.5);opacity:0;animation:rewardRing .7s .4s ease-out both}.reward-gift{position:absolute;width:142px;height:126px;z-index:4;left:calc(50% - 71px);top:calc(50% - 63px);filter:drop-shadow(0 12px 12px #0005);animation:giftOpen .65s ease forwards}.gift-body{position:absolute;bottom:0;width:142px;height:91px;background:linear-gradient(125deg,#3868a6,#1d427a);border:2px solid #7293bd;border-radius:3px 3px 6px 6px;box-shadow:inset 0 -6px 0 #102b5044}.gift-body::after{content:'';position:absolute;left:58px;top:0;width:23px;bottom:0;background:linear-gradient(90deg,#d9b967,#f8dfa1,#b78b3f)}.gift-lid{position:absolute;top:22px;left:-6px;width:154px;height:22px;border-radius:4px;border:1px solid #fae2a4;background:linear-gradient(#ebce85,#bc9749);z-index:3}.gift-bow{position:absolute;top:1px;width:49px;height:32px;border:8px solid #e2be64;box-shadow:inset 1px 1px #fff1bb,1px 1px #6f5128;border-radius:50%;z-index:4}.bow-left{left:24px;transform:rotate(25deg)}.bow-right{right:24px;transform:rotate(-25deg)}.gift-mark{position:absolute;left:48px;top:66px;width:47px;height:39px;background:#f4e8c9;border:2px solid #b89b5b;display:grid;place-items:center;font:bold 13px Georgia,serif;transform:rotate(-8deg);z-index:3;color:#294360;box-shadow:0 2px 3px #0003}.reward-confetti{position:absolute;inset:-40px -15px -50px;z-index:5;pointer-events:none;overflow:hidden}.reward-confetti i{position:absolute;left:var(--confetti-x);top:8%;height:13px;width:6px;background:var(--confetti-color);opacity:0;transform:rotate(var(--confetti-spin));animation:rewardConfetti 1.6s calc(.4s + var(--confetti-delay)) ease-out both;border-radius:1px}.reward-confetti i:nth-child(3n){width:9px;height:9px;border-radius:50%}.sticker-reward-footer{position:relative;text-align:center;z-index:6;padding-top:7px;margin-top:auto}.sticker-reward-footer h2{font:35px 'DM Serif Display',Georgia,serif;color:#f6dd99;line-height:1.1;margin:0 0 8px}.sticker-reward-footer>p{font-size:11px;color:#b6c7d9;line-height:1.6;margin:0 0 21px}.reward-collect{display:block;width:100%;min-height:56px;border:1px solid #ffe4a6;border-radius:7px;padding:14px 10px;background:linear-gradient(#f4d992,#ca9f4b);color:#263a50;font-size:13px;font-weight:800;box-shadow:0 4px 0 #77562c,inset 0 1px #fff5d8;cursor:pointer}.reward-collect:hover{filter:brightness(1.06)}.sticker-reward-footer>small{display:block;font-size:8px;color:#879cb2;margin-top:15px;line-height:1.6}.case-sticker-art{width:230px;max-width:100%;aspect-ratio:1;margin:2px auto 8px;filter:drop-shadow(0 6px 5px #29364526)}.case-sticker-art img{display:block;width:100%;height:100%;object-fit:contain}.case-sticker-art.compact{width:108px;margin:0 5px 0 -6px;flex-shrink:0}.medal-award{padding:20px 12px 14px;background:linear-gradient(145deg,#f5ecd9,#eee1c2)}.medal-award .case-sticker-art{width:240px}.medal-award .text-button{font-size:10px;margin-top:11px;color:#7c6337}.medal-collection-card{gap:8px}.medal-collection-card h2{font-size:27px}@keyframes giftOpen{0%{opacity:0;transform:translateY(18px) scale(.7) rotate(-8deg)}25%{opacity:1;transform:translateY(0) scale(1.02) rotate(3deg)}55%{opacity:1;transform:scale(.95) rotate(-3deg)}100%{opacity:0;transform:scale(1.4) rotate(7deg)}}@keyframes stickerPop{0%{opacity:0;transform:scale(.3) rotate(-20deg) translateY(30px)}55%{opacity:1;transform:scale(1.08) rotate(5deg) translateY(-7px)}78%{opacity:1;transform:scale(.97) rotate(-3deg)}100%{opacity:1;transform:scale(1) rotate(-2deg)}}@keyframes rewardRing{10%{opacity:.8}100%{opacity:0;transform:translate(-50%,-50%) scale(2.8)}}@keyframes rewardRays{to{opacity:1;transform:translate(-50%,-50%) rotate(18deg)}}@keyframes rewardConfetti{0%{opacity:0;transform:translateY(-20px) rotate(var(--confetti-spin))}15%{opacity:1}100%{opacity:0;transform:translateY(430px) rotate(calc(var(--confetti-spin) + 210deg))}}@media(max-height:720px){.sticker-reward-top{margin-bottom:8px}.reward-copy h1{font-size:39px}.reward-kicker{font-size:9px;margin-bottom:8px}.sticker-drop-stage{min-height:220px;max-height:45svh}.sticker-drop-art{max-height:44svh}.sticker-reward-footer h2{font-size:29px}.sticker-reward-footer>p{margin-bottom:13px}.reward-collect{min-height:51px}.sticker-reward-footer>small{margin-top:11px}}@media(prefers-reduced-motion:reduce){.reward-gift,.reward-confetti,.reward-ring{display:none}.sticker-drop-art{animation:none;opacity:1;transform:none}.reward-rays{animation:none;opacity:.7;transform:translate(-50%,-50%)}.sticker-reward-scene *{scroll-behavior:auto!important}}

.casebook-screen h1{font-size:42px}.casebook-card{display:block;width:100%;padding:0;margin:22px 0;background:#152a42;border:1px solid #b69b66;border-radius:10px;overflow:hidden;text-align:left;box-shadow:0 6px 0 #cfc3a5;color:#f6edda}.casebook-card>img{display:block;width:100%;height:200px;object-fit:cover;object-position:top}.casebook-info{padding:20px}.casebook-info small{font-size:9px;letter-spacing:1.5px;color:#e9c77c}.casebook-info h2{font-size:29px;margin:10px 0}.casebook-info p{font-size:9px;letter-spacing:1px;color:#b3c1cf}.casebook-info>span{display:block;margin-top:18px;font-size:13px;font-weight:700;color:#f5d183}.casebook-card:active{transform:translateY(3px);box-shadow:0 3px 0 #cfc3a5}
.casebook-card{position:relative}.casebook-card.casebook-locked{cursor:not-allowed;box-shadow:0 4px 0 #c5bca7;border-color:#7a7a6c}.casebook-locked>img{filter:brightness(.32) saturate(.45)}.casebook-locked .casebook-info{opacity:.55}.casebook-locked:active{transform:none}.casebook-lock-cover{position:absolute;z-index:2;top:0;left:0;right:0;height:200px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:linear-gradient(0deg,#10213775,transparent);color:#f9edc9;pointer-events:none}.casebook-lock-cover strong{font-size:10px;letter-spacing:3px;text-shadow:0 2px 4px #000}.casebook-lock-cover small{font-size:10px;color:#dbc79a}.casebook-padlock{position:relative;display:block;width:48px;height:37px;margin-top:22px;border:2px solid #f3dfa2;border-radius:7px;background:linear-gradient(130deg,#f7dc8d,#ae782a);box-shadow:0 5px 15px #0007,inset 0 0 0 3px #76501e44}.casebook-padlock:before{content:'';position:absolute;width:25px;height:29px;left:9px;top:-25px;border:5px solid #e6d29c;border-bottom:0;border-radius:18px 18px 0 0;box-shadow:inset 1px 0 2px #fff8}.casebook-padlock:after{content:'';position:absolute;width:7px;height:12px;border-radius:50% 50% 2px 2px;left:18px;top:10px;background:#624219;box-shadow:0 1px 0 #fff5}
.detective-voice{position:fixed;z-index:1000;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:calc(100% - 28px);max-width:440px;display:flex;gap:10px;align-items:center;padding:15px 12px 15px 18px;background:linear-gradient(135deg,#233e56,#12263c);color:#fff2d8;border:1px solid #d6b66c;border-radius:12px;box-shadow:0 9px 32px #08172577;animation:voiceEnter .22s ease both}.detective-voice>div{flex:1}.detective-voice small{display:block;font-size:8px;letter-spacing:1.5px;color:#efd087}.detective-voice p{font:500 13px/1.6 'DM Sans',sans-serif;margin:7px 0 0}.detective-voice button{flex-shrink:0;width:34px;height:38px;border:1px solid #a99b7955;border-radius:8px;color:#f7df9c;background:#ffffff08;font-size:20px}.detective-voice button:focus-visible{outline:2px solid #ffdc7c}.detective-voice.voice-retry small{color:#f4b69f}@keyframes voiceEnter{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}@media(prefers-reduced-motion:reduce){.detective-voice{animation:none}}
.reward-voice-replay{display:block;margin:0 auto 12px;padding:6px 14px;border:1px solid #ba9b5c66;background:#ffffff08;color:#e8cb87;border-radius:20px;font-size:11px;min-height:34px}
.image-accuse:disabled{background:#aa9f83;color:#e9e1cf;box-shadow:none;filter:saturate(.25);cursor:default}
.case-difficulty{margin:0 0 15px;padding:9px 12px;border:1px solid #aa8c4f;border-radius:4px;background:#f2dfad;color:#665025;font-size:8px;font-weight:800;letter-spacing:1.6px}.screen[data-theme="midnight"]{background:radial-gradient(ellipse at 90% 5%,#26556a,#14293d 60%);color:#f4e5bb}.screen[data-theme="forensic"]{background:radial-gradient(ellipse at 10% 10%,#4f3154,#211c36 65%);color:#f6e2c2}.screen[data-theme="customs"]{background:linear-gradient(150deg,#e1f1df,#f8f1d7);color:#183f3e}.screen[data-theme="midnight"] .visual-intro,.screen[data-theme="forensic"] .visual-intro,.screen[data-theme="midnight"] .visual-status,.screen[data-theme="forensic"] .visual-status{color:#becbd5}.screen[data-theme="midnight"] .back,.screen[data-theme="forensic"] .back{color:#eed092}.screen[data-theme="midnight"] .inspection-log,.screen[data-theme="forensic"] .inspection-log{color:#172c43}.screen[data-theme="midnight"] .profile-explanation,.screen[data-theme="forensic"] .profile-explanation{color:#d1c9b7}.screen[data-theme="midnight"] .fine,.screen[data-theme="forensic"] .fine{color:#c4b899}.screen[data-theme="midnight"] .proof-row,.screen[data-theme="forensic"] .proof-row{color:#21354b}.screen[data-theme="forensic"] .inspection-tools{background:#36283d}.screen[data-theme="customs"] .inspection-tools{background:#1f514f}.screen[data-theme="midnight"] .stage-indicator,.screen[data-theme="forensic"] .stage-indicator{color:#e9cc85}.casebook-card[data-theme="midnight"]{background:#142d42;border-color:#ad8c49}.casebook-card[data-theme="customs"]{background:#184846;border-color:#91ae8c}.casebook-card[data-theme="forensic"]{background:#352139;border-color:#b4829b}.screen[data-theme="midnight"] .medal-award,.screen[data-theme="forensic"] .medal-award{color:#172c43}.game-inspection[data-theme="customs"] .image-suspect .portrait-select{font-size:clamp(6px,1.8vw,8px)}.casebook-card[data-theme="customs"]>img{object-position:50% 24%}.casebook-card[data-theme="forensic"]>img{object-position:50% 20%}
.visual-counter{color:#152740}.screen[data-theme="midnight"]>.text-button,.screen[data-theme="forensic"]>.text-button,.screen[data-theme="midnight"]>.footer-links .text-button,.screen[data-theme="forensic"]>.footer-links .text-button{color:#e8cc93}
.game-inspection .visual-title{font-size:29px;line-height:1.12;margin-bottom:0}
/* A torn notebook page, with ruled paper and a highlighter question. */
.game-inspection .case-mission{--paper-hole:#e4ddcc;position:relative;isolation:isolate;margin:22px 0 24px;padding:18px 17px 29px 47px;border:0;border-radius:0;color:#233b5c;background:linear-gradient(90deg,transparent 33px,#df7d8390 33px 35px,transparent 35px),repeating-linear-gradient(0deg,transparent 0 23px,#92bce36b 23px 24px),#fffdf4;box-shadow:3px 5px 0 #d9cdb3,6px 9px 0 #c0ac7b38;clip-path:polygon(0 0,100% 0,100% 97%,97% 99%,94% 97%,90% 100%,86% 98%,82% 100%,78% 97%,74% 99%,70% 98%,66% 100%,62% 97%,58% 99%,54% 97%,50% 100%,46% 98%,42% 100%,38% 97%,34% 99%,30% 98%,26% 100%,22% 97%,18% 99%,14% 98%,10% 100%,6% 97%,3% 99%,0 97%);filter:drop-shadow(0 7px 5px #07152835)}
.game-inspection .case-mission:before{content:'';position:absolute;z-index:2;top:55px;bottom:19px;left:10px;width:12px;height:auto;border:0;border-radius:0;transform:none;box-shadow:none;background:radial-gradient(circle at center,var(--paper-hole) 0 4px,#a7a89a 4.3px,#d7d2c0 5px,transparent 5.7px) center top/12px 47px repeat-y;pointer-events:none}
.game-inspection .case-mission:after{content:'';position:absolute;z-index:3;top:1px;left:46%;width:76px;height:15px;transform:rotate(-4deg);background:linear-gradient(90deg,#ead99566,#e5d49ab3 20%,#f0dfa2a8 80%,#ead99555);box-shadow:0 1px 1px #96815122;pointer-events:none}
.mission-note-heading{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-bottom:10px;min-height:35px}.game-inspection .case-mission .mission-kicker{display:inline-block;font:700 31px/.95 'Caveat',cursive;letter-spacing:-.5px;color:#225b9c;text-transform:none;transform:rotate(-2deg);position:relative}.mission-kicker:after{content:'';position:absolute;bottom:-5px;left:-2px;right:-4px;height:3px;border-radius:50%;background:#275da0;transform:rotate(-2deg)}.mission-file-stamp{flex-shrink:0;border:2px solid #c45d61;color:#b14e57;font:800 8px/1.1 'DM Sans',sans-serif;letter-spacing:1px;padding:5px 6px;transform:rotate(8deg);background:#fffaf1cc}
.game-inspection .case-mission .mission-context{font:500 12px/24px 'DM Sans',sans-serif;color:#354d69;margin:12px 0 7px}.mission-question-label{display:block;font:700 20px/24px 'Caveat',cursive;color:#b34b58;margin:3px 0 4px;transform:rotate(-2deg);transform-origin:left}.game-inspection .case-mission .mission-question{display:block;font:700 22px/26px 'Caveat',cursive;color:#173b68;border:0;padding:0;margin:0;letter-spacing:.1px}.mission-question>span{background:linear-gradient(transparent 17%,#ffe56ebd 17% 88%,transparent 88%);padding:1px 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.game-inspection[data-theme="midnight"] .case-mission{--paper-hole:#1a3a4e}.game-inspection[data-theme="forensic"] .case-mission{--paper-hole:#34243e}.game-inspection[data-theme="customs"] .case-mission{--paper-hole:#e7efdb}@media(max-width:359px){.game-inspection .case-mission{padding-left:43px;padding-right:12px}.game-inspection .case-mission .mission-kicker{font-size:28px}.game-inspection .case-mission .mission-question{font-size:21px}}

/* Clues are scene markers; the notebook is the readable evidence surface. */
.investigation-route{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 1px 13px;font-size:11px;font-weight:700;color:#6a542e}
.investigation-route>b{font-size:16px;color:#8e8877;font-weight:400}
.route-suspect{color:#2455a3}
.screen[data-theme="midnight"] .route-evidence,.screen[data-theme="forensic"] .route-evidence{color:#eed298}
.screen[data-theme="midnight"] .route-suspect,.screen[data-theme="forensic"] .route-suspect{color:#a9c9ff}
.game-inspection .image-clue,.game-inspection .image-clue.examined,.game-inspection .image-clue.active,.game-inspection .image-clue.examined.active{border:0;background:transparent;box-shadow:none;transform:none;border-radius:3px;z-index:4;transition:none}
.game-inspection .image-clue.active::after{display:none}
.game-inspection .image-clue:focus-visible{outline:2px dashed #ae7d24;outline-offset:2px}
.clue-pin{position:absolute;left:2px;top:2px;width:32px;height:32px;filter:drop-shadow(0 2px 3px #10223970);pointer-events:none}
.game-inspection .image-clue .pin-number{position:static;width:32px;height:32px;background:linear-gradient(140deg,#fff7d9,#e7c778);border:2px solid #fff4c9;outline:1px solid #7f5c27;box-shadow:inset 0 0 0 1px #ac833c;color:#553d1b;font:700 13px/1 Georgia,serif}
.game-inspection .image-clue.active .pin-number{background:#fff4ca;box-shadow:0 0 0 3px #e6be6866,inset 0 0 0 1px #a17b35;color:#553d1b;border-color:#fff7e3}
.game-inspection .image-clue.examined .pin-number{background:#f4ecd9;box-shadow:inset 0 0 0 1px #b49b69;color:#786440;border-color:#fff9e9}
.pin-check{position:absolute;right:-4px;bottom:-3px;display:grid;place-items:center;width:16px;height:16px;background:#32634d;border:2px solid #fff7dd;border-radius:50%;color:white;font:800 10px/1 sans-serif}
.pin-check[hidden]{display:none}
.game-inspection .visual-status{font-size:11px;line-height:1.6;margin:12px 4px}
.evidence-notebook{position:relative;color:#243952;background:#fffdf5;border:1px solid #d0bd96;border-radius:5px 5px 9px 9px;padding:16px 13px 11px;margin:0 0 18px;box-shadow:3px 4px 0 #dacdb3,0 7px 16px #13294214;scroll-margin:16px}
.evidence-notebook::before{content:'';position:absolute;left:40%;top:-7px;width:61px;height:14px;background:#e6d19ba6;transform:rotate(-3deg);pointer-events:none}
.notebook-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 1px 12px}
.notebook-heading h3{font:700 27px/1.1 'Caveat',cursive;margin:0;color:#243b55}
.notebook-heading>span{font-size:9px;letter-spacing:.3px;color:#79643d;white-space:nowrap}
.evidence-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-bottom:13px}
.evidence-tab{position:relative;display:flex;flex-direction:column;gap:5px;min-height:68px;padding:8px 9px;background:#f4efe3;border:1px solid #d3c5a7;border-radius:6px;text-align:left;color:#6d634f;font-family:inherit;cursor:pointer;touch-action:manipulation}
.evidence-tab-top{display:flex;align-items:center;justify-content:space-between;gap:4px}
.evidence-tab-number{font:700 15px/1 Georgia,serif;letter-spacing:.5px}
.evidence-tab-check{font-size:12px;color:#32634d;min-height:14px}
.evidence-tab-title{font-size:11px;font-weight:600;line-height:1.35}
.evidence-tab[aria-pressed="true"]{background:#ffedbc;border-color:#ab823c;color:#543c1e;box-shadow:inset 0 -3px #b78b3e}
.evidence-tab:focus-visible,.notebook-return:focus-visible{outline:3px solid #92713c;outline-offset:2px}
.evidence-notebook .inspection-log{padding:13px 10px 13px 23px;margin:0;border:0;border-radius:0;border-top:1px solid #d8caac;background:linear-gradient(90deg,transparent 12px,#d9858960 12px 13px,transparent 13px),repeating-linear-gradient(0deg,transparent 0 23px,#aac8e235 23px 24px),#fffdf5;box-shadow:none;scroll-margin:16px}
.evidence-notebook .log-header{font-size:8px;line-height:1.4;letter-spacing:.8px;margin-bottom:12px;color:#856735}
.evidence-notebook .inspection-log h3{font:700 25px/1.2 'Caveat',cursive;margin-bottom:9px;color:#213c60}
.evidence-notebook .log-fact{font-size:15px;line-height:1.6;color:#324963;margin:0}
.evidence-notebook .log-detail{font-size:12px;color:#71562c;margin-top:14px}
.evidence-notebook .log-detail summary{min-height:32px;padding:6px 0}
.evidence-notebook .log-detail p{font-size:13px;line-height:1.7;color:#40536a;margin:7px 0}
.evidence-notebook .inspection-log.mismatch{background:#fff0e4;border-top-color:#cd9c71}
.evidence-notebook .inspection-log.mismatch h3,.evidence-notebook .inspection-log.mismatch .log-header{color:#974b31}
.evidence-notebook .inspection-log.discovery{background:#f0f6e6}
.notebook-return{display:block;width:100%;min-height:44px;padding:10px 0 2px;background:none;border:0;border-top:1px dashed #dac9a4;color:#785a29;font:700 11px 'DM Sans',sans-serif;cursor:pointer}
.evidence-notebook .log-flash{animation:noteInk .25s ease}
@keyframes noteInk{from{opacity:.45}to{opacity:1}}
@media(max-width:359px){.investigation-route{gap:7px;font-size:10px}.evidence-notebook{padding:15px 10px 10px}.notebook-heading h3{font-size:25px}.evidence-tab{padding:8px 7px}.evidence-tab-title{font-size:10px}}
@media(prefers-reduced-motion:reduce){.evidence-notebook .log-flash{animation:none}}

/* The white app surface applies to every case, including themed investigations. */
html,body{background:#fff}
.experience,.experience .screen,.experience .screen[data-theme]{background:#fff;color:var(--ink)}
.experience{border-color:#e1e6ec}
.topbar{background:#fff;border-color:#e5e9ee}
.sound{background:#fff;border-color:#d3dbe4;color:#35485c}
.screen[data-theme] .back,.screen[data-theme] .stage-indicator{color:#765b2c}
.screen[data-theme] .visual-intro,.screen[data-theme] .visual-status,.screen[data-theme] .profile-explanation,.screen[data-theme] .fine{color:#5b6878}
.screen[data-theme]>.text-button,.screen[data-theme]>.footer-links .text-button{color:#785a29}
.screen[data-theme] .route-evidence{color:#765623}
.screen[data-theme] .route-suspect{color:#2455a3}
.game-inspection[data-theme] .case-mission{--paper-hole:#fff}
.inspection-tools,.screen[data-theme] .inspection-tools{background:#fff;border-color:#ced7e0;box-shadow:0 2px 6px #1527400d}
.inspection-tools .magnify-toggle,.inspection-tools .select-tool{background:#f3f5f8;color:#263e56;box-shadow:inset 0 1px #fff}
.inspection-tools button[aria-pressed=true]{background:#e8efff;color:#194b9c;box-shadow:inset 0 0 0 1px #d1def7,0 2px 0 #ced9ee}
.tool-hint{color:#627286}
.inspection-tools .kit-label strong{color:#263e56}
.inspection-tools .kit-label small{color:#627286}
.inspection-tools button[aria-pressed=true] .kit-label strong{color:#194b9c}
.inspection-tools button[aria-pressed=true] .kit-label small{color:#345b93}

.casebook-card>img{height:auto;aspect-ratio:3/2;object-fit:contain}.casebook-lock-cover{height:auto;aspect-ratio:3/2}
