@font-face{font-family:Lora;src:url('/fonts/lora.ttf');font-display:swap}
@font-face{font-family:Source;src:url('/fonts/source-sans-3.ttf');font-weight:200 900;font-display:swap}
.codebreaker-app *{box-sizing:border-box}
body[data-section=codebreaker]{--desk:#e5dfd2;--paper:#f2ecdf;--ink:#292724;--muted:#736b61;--line:#322c242d;--accent:#a33f36;--good:#46674f;--dark:#222424;--chalk:#eee6d4}
html[data-theme=dark] body[data-section=codebreaker]{--desk:#191c1c;--paper:#282b2a;--ink:#eee7d9;--muted:#b9b3a7;--line:#eee7d92b;--accent:#e58979;--good:#a5c4a6;--dark:#111616}
.codebreaker-app{margin:0;background:var(--desk);color:var(--ink);font:15px/1.6 Source,Arial,sans-serif}
.codebreaker-app a{color:inherit;text-decoration:none}
.codebreaker-app button,.codebreaker-app input,.codebreaker-app select{font:inherit}
.codebreaker-app button{cursor:pointer;color:inherit}
.codebreaker-app button:disabled{cursor:default;opacity:.45}
.codebreaker-app button:focus-visible,.codebreaker-app a:focus-visible,.codebreaker-app input:focus-visible,.codebreaker-app summary:focus-visible,.codebreaker-app select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.codebreaker-app button{touch-action:manipulation}
.codebreaker-app{max-width:1560px;padding:35px 3vw 24px;margin:auto}
.codebreaker-app .masthead{display:flex;justify-content:space-between;align-items:center;gap:35px;border-bottom:2px solid var(--ink);padding:0 0 30px}
.codebreaker-app .brand-overline,.codebreaker-app .kicker{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.codebreaker-app .killer-brand{display:flex;align-items:center;gap:15px}
.codebreaker-app .killer-brand>span{font:900 clamp(36px,5.2vw,80px)/1 Impact,'Arial Narrow',Source,sans-serif;letter-spacing:-1.5px}
.codebreaker-app .killer-brand img{width:68px;height:68px}
.codebreaker-app .brand-tagline{margin:9px 0 0 83px;text-transform:uppercase;font-size:11px;letter-spacing:2.5px;color:var(--muted)}
.codebreaker-app .brand-promise{font:600 14px/1.75 Source,Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;max-width:270px;margin:0}
.codebreaker-app .brand-promise strong{color:var(--accent);font-weight:700}
.codebreaker-app .case-picker{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:20px 0 26px}
.codebreaker-app .case-picker>span{text-transform:uppercase;letter-spacing:1px;font-size:9px;color:var(--muted);margin-right:8px}
.codebreaker-app .case-picker button{background:transparent;border:1px solid var(--line);padding:6px 12px;font-size:11px;color:var(--muted)}
.codebreaker-app .case-picker button[aria-pressed=true]{background:var(--ink);color:var(--desk);border-color:var(--ink)}
.codebreaker-app .case-desk{display:grid;grid-template-columns:230px minmax(0,1fr) 280px;gap:24px;align-items:start}
.codebreaker-app .case-brief,.codebreaker-app .game,.codebreaker-app .deduction{background:var(--paper);border:1px solid var(--line)}
.codebreaker-app .case-brief{padding:24px 20px}
.codebreaker-app .case-brief h1{font:400 32px/1.15 Lora,Georgia,serif;letter-spacing:-1px;margin:20px 0}
.codebreaker-app .stamp{display:inline-block;font-size:9px;border-bottom:1px solid var(--accent);color:var(--accent);padding:0 0 4px;text-transform:uppercase;letter-spacing:1px}
.codebreaker-app #brief{font-size:14px;color:var(--muted);margin:0 0 22px}
.codebreaker-app .instructions{font-size:12px;line-height:1.7;border-top:1px solid var(--line);padding-top:18px;color:var(--muted)}
.codebreaker-app .primary{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--accent);color:#fff7eb;border:1px solid var(--accent);padding:12px 17px;font-size:12px;letter-spacing:.4px;min-height:44px}
[data-theme=dark] .codebreaker-app .primary{color:#211b18}
.codebreaker-app .primary:hover:enabled{filter:brightness(.92)}
.codebreaker-app #begin{width:100%}
.codebreaker-app .secondary{display:inline-block;background:transparent;border:0;border-bottom:1px solid currentColor;font-size:12px;padding:6px 0;color:var(--accent)}
.codebreaker-app .clues{border-top:1px solid var(--line);padding-top:22px;margin-top:24px;display:flex;flex-direction:column;gap:10px}
.codebreaker-app .clues>div{width:100%;margin-bottom:8px}
.codebreaker-app .clues>div p:not(.kicker){font-size:11px;color:var(--muted);margin:0}
.codebreaker-app .clues button{background:transparent;border:1px solid var(--line);text-align:left;padding:12px;width:100%;font-weight:600;font-size:13px}
.codebreaker-app .clues button span{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:3px}
.codebreaker-app .clues button:hover:enabled{border-color:var(--accent)}
.codebreaker-app #clue-text{font:italic 13px/1.8 Lora,Georgia,serif;color:var(--accent)}
.codebreaker-app .game{padding:28px;min-width:0;border-top:3px solid var(--accent)}
.codebreaker-app .game>.kicker{margin-bottom:20px}
.codebreaker-app .letter-salutation{font:italic 20px Lora,Georgia,serif;margin:25px 0;color:var(--ink)}
.codebreaker-app #board{display:flex;flex-wrap:wrap;gap:28px 16px;margin:32px 0;min-width:0}
.codebreaker-app .word{display:flex;gap:4px}
.codebreaker-app .tile{display:flex;flex-direction:column;align-items:center;gap:10px}
.codebreaker-app .cipher{font:27px/1 Georgia,serif;display:flex;align-items:center;justify-content:center;height:30px;color:var(--ink)}
.codebreaker-app .cipher-mark{width:30px;height:30px}
.codebreaker-app .tile input{width:30px;height:39px;text-align:center;background:color-mix(in srgb,var(--ink) 4%,transparent);border:0;border-bottom:1px solid var(--muted);border-radius:0;color:var(--ink);font:22px Source,sans-serif;text-transform:uppercase;padding:0}
.codebreaker-app .tile input.locked{color:var(--good);border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent)}
.codebreaker-app .letter-signoff{font:italic 14px/1.6 Lora,Georgia,serif;text-align:right;margin:0 0 24px;border-bottom:1px solid var(--line);padding-bottom:22px}
.codebreaker-app .killer-signature{width:48px;height:48px;display:block;margin:14px 0 0 auto}
.codebreaker-app .help{font-size:11px;color:var(--muted);margin:0 0 20px}
.codebreaker-app .check-row{display:flex;align-items:center;gap:16px}
.codebreaker-app #checks{font-size:11px;color:var(--muted)}
.codebreaker-app #feedback{font-size:13px;color:var(--accent);margin:18px 0 0;min-height:20px}
.codebreaker-app .case-threat{position:sticky;top:20px;display:grid;gap:22px}
.codebreaker-app .trace-panel{--ink:#eee6d4;--muted:#b5afa1;--line:#eee6d430;background:var(--dark);color:var(--ink);padding:23px 20px;border:1px solid #eee6d426}
.codebreaker-app .clock{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:20px;gap:5px 10px}
.codebreaker-app .clock .kicker{margin:0}
.codebreaker-app .clock strong{font:36px/1 Source,monospace;font-variant-numeric:tabular-nums;letter-spacing:2px}
.codebreaker-app .clock small{font-size:10px;color:var(--muted);width:100%}
.codebreaker-app .trace-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px}
.codebreaker-app .trace-heading .kicker{color:#e8b0a1;margin:0}
.codebreaker-app .trace-heading strong{font-size:11px;font-weight:500}
.codebreaker-app .threat-visual{padding-top:18px}
.codebreaker-app .victim-outline{height:200px;width:137px;display:block;margin:0 auto 18px}
.codebreaker-app .outline-ground{fill:#fff;fill-opacity:.025}
.codebreaker-app .chalk-line{fill:none;stroke:var(--chalk);stroke-width:2;stroke-linejoin:round}
.codebreaker-app .scene-corners{fill:none;stroke:#eee6d434;stroke-width:1}
.codebreaker-app #victim-fill{fill:#b94c40;fill-opacity:.85;transition:y .5s ease,height .5s ease}
.codebreaker-app .threat-readout>.kicker{display:none}
.codebreaker-app #threat-story{font:14px/1.7 Source,Arial,sans-serif;margin:0 0 12px}
.codebreaker-app #trace-meter{height:5px;background:var(--line);overflow:hidden}
.codebreaker-app #trace-fill{display:block;height:100%;background:#b94c40;transition:width .4s}
.codebreaker-app .threat-explanation{font-size:10px;color:var(--muted);margin:10px 0 18px}
.codebreaker-app .trace-actions{border-top:1px solid var(--line);padding-top:15px}
.codebreaker-app .trace-actions p{font-size:10px;color:var(--muted);margin:0 0 15px}
.codebreaker-app .trace-actions button{color:#e8b0a1}
.codebreaker-app .trace-actions small{display:block;font-size:10px;color:var(--muted)}
.codebreaker-app .trace-panel[data-outcome=saved] #victim-fill{fill:#a1c09d;fill-opacity:.3}
.codebreaker-app .trace-panel[data-outcome=saved] #trace-fill{background:#a1c09d}
.codebreaker-app .trace-panel[data-outcome=saved] .chalk-line{stroke:#a1c09d}
.codebreaker-app .deduction{padding:23px 20px}
.codebreaker-app .deduction h2{font:400 24px/1.3 Lora,Georgia,serif;margin:12px 0}
.codebreaker-app .deduction>p:not(.kicker){font-size:12px;color:var(--muted)}
.codebreaker-app #deduction-form{display:grid;gap:12px}
.codebreaker-app #deduction-form label{text-transform:uppercase;letter-spacing:1px;font-size:9px}
.codebreaker-app #location{width:100%;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:0;color:var(--ink);font-size:13px;padding:12px 8px}
.codebreaker-app #location:disabled{opacity:.5}
.codebreaker-app #dispatch{width:100%}
.codebreaker-app #deduction-feedback{font-size:13px}
.codebreaker-app .exhibits{margin:28px 0}
.codebreaker-app .exhibits h2{font:400 26px/1.3 Lora,Georgia,serif;letter-spacing:-.7px;margin:0 0 12px}
.codebreaker-app .evidence-intro{font-size:12px;color:var(--muted);margin-bottom:20px}
.codebreaker-app .evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.codebreaker-app .evidence-grid details{padding:14px;background:var(--paper);border:1px solid var(--line);min-width:0}
.codebreaker-app .evidence-grid summary{cursor:pointer;font-size:11px;color:var(--accent);min-height:35px}
.codebreaker-app .evidence-grid details>p{font-size:12px;line-height:1.7}
.codebreaker-app .explanation{border-block:1px solid var(--line);padding:15px 0;margin:20px 0}
.codebreaker-app .explanation summary{font-size:13px;cursor:pointer;color:var(--accent)}
.codebreaker-app .explanation p{font-size:13px;color:var(--muted)}
.codebreaker-app #result{border-top:3px solid var(--good);padding-top:22px;margin-top:24px}
.codebreaker-app #result-title{font:400 28px/1.3 Lora,Georgia,serif;margin:10px 0}
.codebreaker-app #resolution{font:16px/1.8 Lora,Georgia,serif}
.codebreaker-app #result-detail{font-size:12px;color:var(--muted)}
.codebreaker-app #interception{border:1px solid var(--accent);padding:20px;margin:0 0 25px}
.codebreaker-app #interception h2{font:26px Lora,Georgia,serif;margin:10px 0}
.codebreaker-app #interception p{font-size:13px}
[data-theme=dark] .codebreaker-app .killer-brand img,[data-theme=dark] .codebreaker-app .killer-signature,[data-theme=dark] .codebreaker-app .cipher-mark{filter:brightness(1.7)}
.codebreaker-app [hidden]{display:none!important}
@media(min-width:1450px){.codebreaker-app .tile input{width:34px}
.codebreaker-app .word{gap:5px}
.codebreaker-app .game{padding:32px}
}
@media(max-width:1150px){.codebreaker-app .case-desk{grid-template-columns:190px minmax(0,1fr) 235px;gap:16px}
.codebreaker-app .case-brief,.codebreaker-app .trace-panel,.codebreaker-app .deduction{padding:20px 16px}
.codebreaker-app .game{padding:23px 20px}
.codebreaker-app .evidence-grid{grid-template-columns:1fr}
.codebreaker-app .evidence-grid details{padding:16px}
.codebreaker-app .tile input{width:27px}
.codebreaker-app .word{gap:3px}
.codebreaker-app .killer-brand>span{font-size:58px}
}
@media(max-width:900px){.codebreaker-app .case-desk{grid-template-columns:minmax(0,1fr) 260px}
.codebreaker-app .case-brief{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
.codebreaker-app .case-brief>.kicker,.codebreaker-app .case-brief>.stamp,.codebreaker-app .case-brief>h1,.codebreaker-app .case-brief>#brief,.codebreaker-app .case-brief>#start-panel{grid-column:1}
.codebreaker-app .case-brief>.stamp{justify-self:start}
.codebreaker-app .case-brief h1{margin:15px 0}
.codebreaker-app .clues{grid-column:2;grid-row:1/7;margin:0;padding:0 0 0 25px;border-top:0;border-left:1px solid var(--line)}
.codebreaker-app #clue-text{grid-column:1/-1}
.codebreaker-app .brand-promise{font-size:11px}
.codebreaker-app .killer-brand>span{font-size:50px}
.codebreaker-app .killer-brand img{width:50px;height:50px}
.codebreaker-app .brand-tagline{margin-left:65px;font-size:9px;letter-spacing:2px}
.codebreaker-app .evidence-grid{grid-template-columns:1fr}
.codebreaker-app .evidence-grid details>p{font-size:13px}
}
@media(max-width:650px){.codebreaker-app{padding:25px 16px}
.codebreaker-app .masthead{display:block;padding-bottom:22px}
.codebreaker-app .killer-brand{gap:10px}
.codebreaker-app .killer-brand>span{font-size:clamp(34px,9vw,55px);letter-spacing:-1px}
.codebreaker-app .killer-brand img{width:46px;height:46px}
.codebreaker-app .brand-tagline{margin:10px 0 0 56px;font-size:8px}
.codebreaker-app .brand-promise{margin:22px 0 0;font-size:10px;max-width:none;line-height:1.6}
.codebreaker-app .brand-promise br{display:none}
.codebreaker-app .brand-promise strong{display:block}
.codebreaker-app .brand-overline{font-size:9px}
.codebreaker-app .case-picker{gap:6px;padding:18px 0}
.codebreaker-app .case-picker>span{width:100%;margin-bottom:3px}
.codebreaker-app .case-picker button{font-size:10px;padding:6px 8px}
.codebreaker-app .case-desk{display:flex;flex-direction:column;gap:20px}
.codebreaker-app .case-brief,.codebreaker-app .case-workspace,.codebreaker-app .case-threat{width:100%;min-width:0}
.codebreaker-app .case-brief{display:block;padding:22px}
.codebreaker-app .clues{padding:20px 0 0;margin-top:22px;border-left:0;border-top:1px solid var(--line);gap:8px}
.codebreaker-app .clues button{padding:11px 14px}
.codebreaker-app .case-threat{position:static;order:2}
.codebreaker-app .case-workspace{order:3}
.codebreaker-app .trace-panel{padding:20px}
.codebreaker-app .clock{margin-bottom:15px}
.codebreaker-app .victim-outline{height:140px;width:96px;margin:0}
.codebreaker-app .threat-visual{display:flex;align-items:center;gap:20px;padding-bottom:15px}
.codebreaker-app .threat-readout{flex:1;min-width:0}
.codebreaker-app #threat-story{font-size:13px}
.codebreaker-app .threat-explanation{margin-bottom:0}
.codebreaker-app .trace-actions{display:flex;gap:20px;align-items:center;justify-content:space-between}
.codebreaker-app .trace-actions p{margin:0;font-size:9px}
.codebreaker-app .trace-actions button{font-size:11px;max-width:150px}
.codebreaker-app .trace-actions small{font-size:9px}
.codebreaker-app .game{padding:24px 20px}
.codebreaker-app .tile input{width:28px;height:38px}
.codebreaker-app .cipher{font-size:25px}
.codebreaker-app .word{gap:3px}
.codebreaker-app #board{gap:25px 14px}
.codebreaker-app .check-row{gap:12px}
.codebreaker-app #checks{font-size:10px}
.codebreaker-app .evidence-grid{grid-template-columns:1fr}
.codebreaker-app .deduction{padding:22px}
.codebreaker-app .case-threat .deduction{display:none}
.codebreaker-app .mobile-deduction{display:block!important;margin-top:25px}
.codebreaker-app .letter-salutation{font-size:18px}
}
@media(prefers-reduced-motion:reduce){.codebreaker-app #victim-fill,.codebreaker-app #trace-fill{transition:none}
}
.codebreaker-app .clock-photo{height:210px;background:#26383b;position:relative;margin:15px 0 20px;padding:20px;color:#e3ddc9;text-align:center;overflow:hidden}
.codebreaker-app .clock-face{position:relative;margin:0 auto 16px;border:3px solid #d8d2bc;border-radius:50%;width:70px;height:70px;background:#cbc4ad;box-shadow:0 0 0 5px #101d20}
.codebreaker-app .clock-face:after{content:'';position:absolute;left:29px;top:29px;width:6px;height:6px;background:#26383b;border-radius:50%}
.codebreaker-app .clock-face i,.codebreaker-app .clock-face b{position:absolute;left:31px;top:31px;background:#26383b;transform-origin:1px 0}
.codebreaker-app .clock-face i{width:2px;height:25px;}
.codebreaker-app .clock-face b{width:3px;height:18px;}
.codebreaker-app .cinema-name{font:17px Lora,Georgia,serif;letter-spacing:2px;border-block:1px solid #d8d2bc77;padding:8px 0}
.codebreaker-app .boards{margin-top:15px;font-size:26px;color:#87918b;letter-spacing:4px}
.codebreaker-app .cutting{margin-top:18px;border-block:3px double var(--line);padding:16px 0}
.codebreaker-app .cutting small{font-size:8px;letter-spacing:1px}
.codebreaker-app .cutting h3{font:24px/1.15 Lora,Georgia,serif;margin:14px 0}
.codebreaker-app .cutting p,.codebreaker-app .notebook p{font:14px/1.7 Lora,Georgia,serif}
.codebreaker-app .clock-photo{max-width:340px;height:230px;margin-inline:auto}
.codebreaker-app .cutting{filter:sepia(.15)}
.codebreaker-app .clock-face i{transform:rotate(-102deg)}
.codebreaker-app .clock-face b{transform:rotate(-112deg)}
.codebreaker-app .envelope-number{font:80px/1.4 Lora,Georgia,serif;text-align:center;color:var(--accent);border:1px solid var(--line);margin:20px 0}
.codebreaker-app .street-photo{display:flex;gap:10px;background:#353a3b;padding:20px 10px;margin:20px 0;color:#e3ddc9;align-items:end;min-height:190px}
.codebreaker-app .house{flex:1;min-width:0;border:1px solid #ddd3bd66;padding:8px 4px 0;background:#4b4b47}
.codebreaker-app .house-windows{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;min-height:70px;align-content:start}
.codebreaker-app .house-window{display:block;height:13px;background:#dbd1ae;border:1px solid #202a2c}
.codebreaker-app .house-door{margin:10px auto 0;width:24px;height:36px;background:#232a2b;text-align:center;padding-top:10px;font-size:11px}
.codebreaker-app .red-door-scene{margin:18px 0;background:#343b3a;border:1px solid var(--line);height:200px;display:flex;flex-direction:column;align-items:center;justify-content:end;padding:15px 25px 0}
.codebreaker-app .red-door-scene span{color:#d5ceba;text-align:center;font:12px/1.5 Source,sans-serif;letter-spacing:2px;margin-bottom:20px}
.codebreaker-app .red-door-scene i{display:block;width:62px;height:110px;background:#814a45;border:5px solid #202b2a;position:relative}
.codebreaker-app .red-door-scene i:after{content:'';position:absolute;right:7px;top:50px;width:5px;height:5px;background:#cfbf86;border-radius:50%}
.codebreaker-app .river-map{height:260px;position:relative;background:#d7d8c9;margin:18px 0;color:#283c40;overflow:hidden;font-size:11px}
.codebreaker-app .map-north{position:absolute;right:10px;top:8px;font-size:14px}
.codebreaker-app .map-river{position:absolute;width:42px;top:0;bottom:0;left:42%;background:#94b1b4;border-inline:1px solid #668e93}
.codebreaker-app .map-bridge{position:absolute;left:12%;right:12%;border-top:5px solid #6b685c;padding-top:5px;background:#d7d8c9dd}
.codebreaker-app .bridge-one{top:40px}
.codebreaker-app .bridge-two{top:105px}
.codebreaker-app .bridge-three{top:220px}
.codebreaker-app .map-origin{position:absolute;top:174px;left:63%;font-size:9px;color:#793f3c;white-space:nowrap}
.codebreaker-app .map-origin:before{content:'';position:absolute;width:15px;border-top:1px solid #793f3c;left:-17px;top:7px}
.codebreaker-app .river-map{max-width:360px;margin-inline:auto}
.codebreaker-app .red-door-scene{max-width:360px;margin-inline:auto}
.codebreaker-app .notebook .note{font-style:italic;color:var(--accent)}
.codebreaker-app .clock-photo{padding-inline:8px}
.codebreaker-app .cinema-name{font-size:12px;letter-spacing:1px}
.codebreaker-app .street-photo{gap:4px;padding-inline:5px}
.codebreaker-app .house{padding-inline:2px}
.codebreaker-app .house-windows{gap:3px}
.codebreaker-app .house-door{width:19px}
.codebreaker-app .map-origin{left:60%;font-size:8px}
.codebreaker-app .river-map{font-size:9px}
.codebreaker-app .red-door-scene{padding-inline:8px}
.codebreaker-app .red-door-scene span{font-size:10px}
.codebreaker-app .case-workspace>.deduction{display:block;margin-top:25px}
@media(max-width:650px){.codebreaker-app .case-workspace>.deduction{display:block}
.codebreaker-app .case-brief{order:1}
}
@media(max-width:650px){.codebreaker-app .case-threat{display:none}
.codebreaker-app .case-workspace>.trace-panel{margin-top:24px}
.codebreaker-app .case-workspace>.clues{padding:22px;background:var(--paper);border:1px solid var(--line);margin-top:24px}
.codebreaker-app .case-workspace>#clue-text{padding-inline:5px}
}
.codebreaker-app .killer-brand{gap:14px}
.codebreaker-app .killer-brand img{width:76px;height:76px}
.codebreaker-app .brand-tagline{display:table;margin-left:90px;padding:0 0 9px;border-bottom:1px solid var(--accent);letter-spacing:2.5px}
.codebreaker-app .killer-signature{width:52px;height:52px}
.codebreaker-app .cipher-mark{width:28px;height:30px}
@media(max-width:900px){.codebreaker-app .killer-brand img{width:58px;height:58px}
.codebreaker-app .brand-tagline{margin-left:72px}
}
@media(max-width:650px){.codebreaker-app .killer-brand{gap:10px}
.codebreaker-app .killer-brand img{width:48px;height:52px}
.codebreaker-app .brand-tagline{margin-left:58px;letter-spacing:1.7px;padding-bottom:8px}
}
.codebreaker-app .killer-brand>span{font-family:Source,'Arial Narrow',Arial,sans-serif;font-weight:650;letter-spacing:-2px;font-size:clamp(36px,5vw,74px)}
.codebreaker-app .selected-symbol .cipher{color:var(--accent)}
.codebreaker-app .selected-symbol input{outline:1px solid var(--accent);outline-offset:2px}
.codebreaker-app .letter-conflict input{border-bottom:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.codebreaker-app .letter-conflict .cipher{color:var(--accent)}
.codebreaker-app #entry-feedback{font-size:12px;color:var(--accent);margin:0 0 12px;min-height:0}
.codebreaker-app #entry-feedback:empty{display:none}
.codebreaker-app .check-row{flex-wrap:wrap}
.codebreaker-app .check-row #undo{white-space:nowrap}
.codebreaker-app #checks{flex-basis:100%}
.codebreaker-app .new-confirmation input{animation:letter-confirmed 1.3s ease-out}
.codebreaker-app .threat-escalation{animation:threat-alert 1.1s ease-out}
.codebreaker-app #result:focus{outline:none}
.codebreaker-app #result{background:color-mix(in srgb,var(--good) 5%,transparent);padding:24px 18px}
.codebreaker-app .envelope-evidence{border:1px solid var(--line);padding:35px 8px;text-align:center;letter-spacing:2px;font:11px/2 Source,sans-serif;margin:20px 0}
.codebreaker-app .envelope-evidence span{color:var(--accent);font-size:9px}
.codebreaker-app .exhibits .kicker{margin-top:0}
@keyframes letter-confirmed{0%,30%{background:color-mix(in srgb,var(--good) 40%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 30%,transparent)}100%{background:color-mix(in srgb,var(--good) 12%,transparent);box-shadow:none}}
@keyframes threat-alert{0%,35%{box-shadow:0 0 0 3px #b94c4090}100%{box-shadow:none}}
@media(max-width:900px){.codebreaker-app .killer-brand>span{font-size:46px}
}
@media(max-width:650px){.codebreaker-app .killer-brand>span{font-size:clamp(29px,8vw,45px);letter-spacing:-1.4px}
}
@media(prefers-reduced-motion:reduce){.codebreaker-app .new-confirmation input,.codebreaker-app .threat-escalation{animation:none}
}
.codebreaker-app .case-threat{gap:14px}
.codebreaker-app .trace-panel{padding:19px 18px}
.codebreaker-app .clock{padding-bottom:12px;margin-bottom:15px}
.codebreaker-app .clock strong{font-size:30px}
.codebreaker-app .threat-visual{padding:12px 0 14px;display:block}
.codebreaker-app .threat-readout{width:100%}
.codebreaker-app #threat-story{font-size:12px;line-height:1.6;margin:0 0 12px}
.codebreaker-app #trace-meter{height:8px;position:relative}
.codebreaker-app .meter-divisions{position:absolute;inset:0;display:flex;pointer-events:none}
.codebreaker-app .meter-divisions i{flex:1;border-right:3px solid var(--dark)}
.codebreaker-app .meter-divisions i:last-child{border-right:0}
.codebreaker-app .threat-stages{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:6px}
.codebreaker-app .trace-actions{padding-top:11px;display:block}
.codebreaker-app .trace-actions .secondary{font-size:11px}
.codebreaker-app .trace-actions small{font-size:9px}
.codebreaker-app .threat-rules{margin:0 0 9px;font-size:10px;color:var(--muted)}
.codebreaker-app .threat-rules summary{cursor:pointer}
.codebreaker-app .threat-rules p{font-size:10px;margin:8px 0 0}
.codebreaker-app .deduction{padding:20px 18px}
.codebreaker-app .deduction h2{font-size:22px;line-height:1.25;margin:8px 0 10px}
.codebreaker-app .deduction>p:not(.kicker){font-size:11px;margin:0 0 14px}
.codebreaker-app #deduction-form{gap:9px}
.codebreaker-app #location{padding:9px 8px}
.codebreaker-app #dispatch{padding:10px 12px;min-height:40px}
.codebreaker-app #deduction-feedback:empty{display:none}
@media(max-width:650px){.codebreaker-app .case-workspace>.trace-panel{margin-top:22px}
.codebreaker-app .case-workspace>.deduction{margin-top:12px}
.codebreaker-app .trace-panel{padding:18px}
.codebreaker-app .trace-actions{display:flex;justify-content:space-between;align-items:start;gap:15px}
.codebreaker-app .threat-rules{margin:3px 0 0;max-width:150px}
.codebreaker-app .threat-visual{display:block}
.codebreaker-app .trace-actions button{max-width:none}
}
.codebreaker-app .case-threat .clock{padding-bottom:10px;margin-bottom:12px}
.codebreaker-app .case-threat .clock strong{font-size:27px}
.codebreaker-app .case-threat .threat-visual{padding:10px 0}
.codebreaker-app .case-threat #threat-story{font-size:11px;line-height:1.5;margin-bottom:9px}
.codebreaker-app .case-threat .trace-panel{padding:17px 16px}
.codebreaker-app .case-threat .trace-actions{padding-top:9px}
.codebreaker-app .case-threat .trace-actions .secondary{padding:3px 0}
.codebreaker-app .case-threat .threat-rules{margin-bottom:6px}
.codebreaker-app .deduction h2{font-size:20px;letter-spacing:-.5px}
.codebreaker-app .deduction .kicker{margin-bottom:7px}
.codebreaker-app #deduction-form label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.codebreaker-app .deduction{padding:18px 16px}
.codebreaker-app{max-width:1360px}
.codebreaker-app .masthead{padding-bottom:22px}
.codebreaker-app .brand-overline{margin-bottom:7px}
.codebreaker-app .brand-promise{font-size:12px}
.codebreaker-app .sample-cases{margin:16px 0 20px;font-size:11px;color:var(--muted)}
.codebreaker-app .sample-cases>summary{cursor:pointer;display:list-item;width:fit-content}
.codebreaker-app .sample-cases .case-picker{padding:12px 0 0}
.codebreaker-app .case-overview{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:25px;max-width:100%}
.codebreaker-app .case-overview h1{font:400 31px/1.2 Lora,Georgia,serif;letter-spacing:-.8px;margin:8px 0 10px}
.codebreaker-app .case-overview #brief{max-width:770px;margin:0;font-size:14px}
.codebreaker-app .case-overview #start-panel{flex:none}
.codebreaker-app .case-overview #begin{white-space:nowrap;width:auto}
.codebreaker-app .case-overview .stamp{border:0;padding:0;font-size:9px}
.codebreaker-app .case-desk{grid-template-columns:minmax(0,1fr) 320px;gap:24px}
.codebreaker-app .case-workspace{min-width:0}
.codebreaker-app .workspace-tabs{display:flex;border:1px solid var(--line);border-bottom:0;background:var(--paper)}
.codebreaker-app .workspace-tabs button{flex:1;min-height:46px;background:transparent;border:0;border-bottom:2px solid transparent;font-size:12px;color:var(--muted)}
.codebreaker-app .workspace-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:650}
.codebreaker-app .workspace-tabs button span{font-size:10px;color:var(--muted);margin-left:4px}
.codebreaker-app .case-workspace>.game{border-top:1px solid var(--line);padding:25px 30px}
.codebreaker-app .letter-salutation{margin-top:2px}
.codebreaker-app #board{margin:25px 0}
.codebreaker-app .letter-signoff{padding-bottom:16px;margin-bottom:16px}
.codebreaker-app .letter-signoff .killer-signature{height:35px;width:35px;margin-top:8px}
.codebreaker-app .help{margin-bottom:16px;font-size:11px}
.codebreaker-app #panel-evidence,.codebreaker-app #panel-clues{border:1px solid var(--line);background:var(--paper);padding:25px 28px}
.codebreaker-app .exhibits{margin:0}
.codebreaker-app .exhibits>.kicker,.codebreaker-app .exhibits>h2,.codebreaker-app .exhibits>.evidence-intro{display:none}
.codebreaker-app .evidence-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.codebreaker-app .evidence-grid details{background:transparent;border:0;padding:0}
.codebreaker-app .evidence-grid summary{font-size:12px}
.codebreaker-app .evidence-grid details>p{font-size:13px}
.codebreaker-app .clues{display:flex;flex-direction:column;margin:0;border:0;padding:0;gap:12px}
.codebreaker-app .clues>div{display:none}
.codebreaker-app .clues button{font-weight:500;font-size:14px;padding:16px}
.codebreaker-app .clues button span{font-size:11px}
.codebreaker-app #clue-text:empty{display:none}
.codebreaker-app .case-threat{gap:0;position:sticky;top:20px}
.codebreaker-app .case-threat .trace-panel{padding:22px}
.codebreaker-app .trace-panel .deduction{background:transparent;border:0;border-top:1px solid var(--line);padding:20px 0 0;margin:17px 0 0;color:var(--ink)}
.codebreaker-app .trace-panel .deduction>.kicker{display:none}
.codebreaker-app .trace-panel .deduction h2{font-size:22px;line-height:1.3}
.codebreaker-app .trace-panel #location{background:#ffffff09;border:1px solid #eee6d44a;color:var(--ink);padding:11px 12px;font-size:14px}
.codebreaker-app .trace-panel #location::placeholder{color:var(--muted)}
.codebreaker-app .trace-panel #location:focus-visible{outline-color:#e8b0a1}
.codebreaker-app .trace-panel #dispatch{background:#a33f36;border-color:#a33f36;color:#fff7eb}
.codebreaker-app .trace-panel #deduction-help{color:var(--muted);font-size:11px}
.codebreaker-app .trace-panel #feedback:empty,.codebreaker-app .trace-panel #deduction-feedback:empty{display:none}
.codebreaker-app .trace-panel #feedback,.codebreaker-app .trace-panel #deduction-feedback{font-size:12px;color:#e8b0a1;margin:14px 0 0}
.codebreaker-app .trace-panel .secondary{color:#e8b0a1}
.codebreaker-app .trace-panel #result{margin-top:20px;padding:20px 0 0;background:transparent;border-top-color:#a1c09d}
.codebreaker-app .trace-panel #result .kicker{color:#a1c09d}
.codebreaker-app .trace-panel #result-title{font-size:27px}
.codebreaker-app .trace-panel #resolution{font:14px/1.8 Source,Arial,sans-serif}
.codebreaker-app .trace-panel #result-detail{font-size:11px;color:var(--muted)}
.codebreaker-app .trace-panel .explanation summary{color:#e8b0a1;font-size:12px}
.codebreaker-app .trace-panel .explanation p{font-size:12px}
.codebreaker-app .trace-panel #interception{padding:18px 0;border:0;border-top:1px solid var(--line);margin:18px 0 0}
.codebreaker-app .trace-panel #interception h2{font-size:25px}
.codebreaker-app .trace-panel[data-outcome=saved] .trace-actions{display:none}
.codebreaker-app .trace-panel:has(#result:not([hidden])) #feedback{display:none}
.codebreaker-app #checks{display:none}
@media(max-width:1050px){.codebreaker-app .case-desk{grid-template-columns:minmax(0,1fr) 280px;gap:20px}
.codebreaker-app .case-workspace>.game{padding:24px}
.codebreaker-app .evidence-grid{grid-template-columns:1fr}
.codebreaker-app .evidence-grid details+details{border-top:1px solid var(--line);padding-top:15px}
.codebreaker-app .case-threat .trace-panel{padding:20px}
}
@media(max-width:800px){.codebreaker-app .case-desk{display:flex;flex-direction:column;gap:20px}
.codebreaker-app .case-workspace,.codebreaker-app .case-threat{width:100%}
.codebreaker-app .case-threat{display:block;position:static;order:2}
.codebreaker-app .case-workspace{order:1}
.codebreaker-app .case-overview{align-items:start}
.codebreaker-app .case-overview h1{font-size:28px}
.codebreaker-app .case-overview #brief{font-size:13px}
.codebreaker-app .case-overview #begin{font-size:11px;padding:10px 13px}
.codebreaker-app .evidence-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.codebreaker-app .evidence-grid details+details{border:0;padding-top:0}
.codebreaker-app .case-threat .trace-panel{padding:22px}
.codebreaker-app .trace-actions{display:flex;align-items:start;justify-content:space-between}
.codebreaker-app .trace-actions .threat-rules{max-width:55%}
}
@media(max-width:600px){.codebreaker-app{padding-top:22px}
.codebreaker-app .masthead{padding-bottom:20px}
.codebreaker-app .brand-promise{display:none}
.codebreaker-app .case-overview{display:block;margin-bottom:20px}
.codebreaker-app .case-overview #start-panel{margin-top:16px}
.codebreaker-app .case-workspace>.game,.codebreaker-app #panel-evidence,.codebreaker-app #panel-clues{padding:22px 18px}
.codebreaker-app .workspace-tabs button{font-size:11px}
.codebreaker-app .workspace-tabs button span{font-size:9px}
.codebreaker-app .evidence-grid{grid-template-columns:1fr}
.codebreaker-app .evidence-grid details+details{border-top:1px solid var(--line);padding-top:16px}
.codebreaker-app .case-threat .trace-panel{padding:20px}
.codebreaker-app .sample-cases{margin-bottom:18px}
.codebreaker-app .case-picker{gap:5px}
.codebreaker-app .case-picker button{font-size:9px}
.codebreaker-app .case-overview h1{font-size:27px}
.codebreaker-app .case-overview #brief{font-size:13px}
.codebreaker-app .letter-signoff{font-size:12px}
.codebreaker-app #board{gap:24px 14px}
.codebreaker-app .tile input{width:28px}
.codebreaker-app .word{gap:3px}
}
.codebreaker-app .evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.codebreaker-app .evidence-card{border:1px solid var(--line);padding:15px 12px;min-width:0;background:color-mix(in srgb,var(--desk) 35%,transparent)}
.codebreaker-app .evidence-card h3{font:600 12px/1.5 Source,Arial,sans-serif;color:var(--accent);margin:0 0 15px;min-height:36px}
.codebreaker-app .evidence-card>p{font-size:12px;line-height:1.7;margin:14px 0 0}
.codebreaker-app .evidence-card .notebook{margin-top:0}
.codebreaker-app .evidence-card .notebook p,.codebreaker-app .evidence-card .cutting p{font-size:12px}
.codebreaker-app .evidence-card .cutting{margin-top:0}
.codebreaker-app .evidence-card .cutting h3{font:20px/1.3 Lora,Georgia,serif;color:var(--ink)}
.codebreaker-app .evidence-card .clock-photo,.codebreaker-app .evidence-card .red-door-scene,.codebreaker-app .evidence-card .river-map,.codebreaker-app .evidence-card .envelope-number,.codebreaker-app .evidence-card .street-photo,.codebreaker-app .evidence-card .envelope-evidence{margin-top:0}
.codebreaker-app .case-threat{gap:16px}
.codebreaker-app .clue-panel{padding:18px;background:var(--paper);border:1px solid var(--line)}
.codebreaker-app .clue-panel .clues{gap:9px}
.codebreaker-app .clue-panel .clues>div{display:block;margin:0}
.codebreaker-app .clue-panel h2{font-weight:500;margin:0 0 6px}
.codebreaker-app .clue-panel .clues button{padding:12px;font-size:12px}
.codebreaker-app .clue-panel .clues button span{font-size:10px}
.codebreaker-app .clue-panel #clue-text{font:italic 12px/1.8 Lora,Georgia,serif;margin:14px 0 0}
.codebreaker-app #outcome-art{margin:20px -22px 0;border-top:1px solid var(--line)}
.codebreaker-app #outcome-image{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.codebreaker-app #outcome-caption{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--chalk);padding:10px 22px;background:#ffffff07}
.codebreaker-app .trace-panel:has(#outcome-art:not([hidden])) #threat-story{display:none}
.codebreaker-app .trace-panel #result{border-top:0;margin-top:0;padding-top:18px}
.codebreaker-app .trace-panel #interception{margin-top:0;border-top:0}
.codebreaker-app .clue-panel [disabled]{opacity:.45}
@media(max-width:1050px){.codebreaker-app #outcome-art{margin-inline:-20px}
}
@media(max-width:800px){.codebreaker-app .case-threat{gap:16px}
.codebreaker-app #outcome-art{margin-inline:-22px}
.codebreaker-app .clue-panel{padding:20px}
}
@media(max-width:700px){.codebreaker-app .evidence-grid{grid-template-columns:1fr}
.codebreaker-app .evidence-card{padding:18px}
.codebreaker-app .evidence-card h3{min-height:0}
.codebreaker-app .evidence-card .river-map,.codebreaker-app .evidence-card .red-door-scene,.codebreaker-app .evidence-card .clock-photo{max-width:330px;margin-inline:auto}
}
@media(max-width:600px){.codebreaker-app #outcome-art{margin-inline:-20px}
}
body[data-section=codebreaker]{--accent:#626b40;--good:#626b40}
html[data-theme=dark] body[data-section=codebreaker]{--accent:#b8bf8a;--good:#b8bf8a}
.codebreaker-app .trace-panel{--accent:#b8bf8a;--good:#aebb89}
.codebreaker-app .trace-panel #dispatch{background:#697044;border-color:#697044;color:#fff8e9}
.codebreaker-app .trace-panel .secondary,.codebreaker-app .trace-panel #feedback,.codebreaker-app .trace-panel #deduction-feedback,.codebreaker-app .trace-panel .explanation summary{color:#c3c99b}
.codebreaker-app .trace-panel #location:focus-visible{outline-color:#c3c99b}
.codebreaker-app .trace-heading .kicker{color:#c3c99b}
.codebreaker-app .letter-conflict input{border-color:#b94c40;background:color-mix(in srgb,#b94c40 12%,transparent)}
.codebreaker-app .letter-conflict .cipher,.codebreaker-app #entry-feedback{color:#a33f36}
[data-theme=dark] .codebreaker-app #entry-feedback{color:#e58979}
.codebreaker-app .case-overview .stamp{display:flex;align-items:center;gap:10px;font-weight:400}
.codebreaker-app .stamp strong{font-weight:750}
.codebreaker-app .stamp .case-slash{font-size:14px;line-height:1;color:var(--muted)}
.codebreaker-app .case-workspace>.game{min-height:540px;display:flex;flex-direction:column;padding:30px 34px}
.codebreaker-app .game #playing{display:flex;flex-direction:column;flex:1}
.codebreaker-app .game #board{flex:1;align-content:center;gap:35px 23px;min-height:240px;margin:28px 0 32px}
.codebreaker-app .game .word{gap:6px}
.codebreaker-app .game .cipher{font-size:34px;height:38px}
.codebreaker-app .game .cipher-mark{width:36px;height:38px}
.codebreaker-app .game .tile{gap:12px}
.codebreaker-app .game .tile input{width:38px;height:45px;font-size:26px}
.codebreaker-app .game .letter-signoff{margin-bottom:16px}
.codebreaker-app .letter-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.codebreaker-app .letter-tools .check-row{gap:16px}
.codebreaker-app .letter-tools .clue-panel{padding:0;border:0;background:transparent;margin:0}
.codebreaker-app .letter-tools .clues{flex-direction:row;gap:8px}
.codebreaker-app .letter-tools .clues>div{display:none}
.codebreaker-app .letter-tools .clues button{position:relative;width:43px;height:43px;min-height:43px;padding:8px;display:grid;place-items:center;background:transparent;border:1px solid var(--line)}
.codebreaker-app .letter-tools .clues svg{width:25px;height:25px}
.codebreaker-app .letter-tools .clues button:hover:enabled{color:var(--accent);border-color:var(--accent)}
.codebreaker-app .letter-tools .clue-used{position:absolute;right:1px;bottom:0;font-size:10px}
.codebreaker-app .letter-tools .clue-panel #clue-text{font-size:12px;max-width:340px}
.codebreaker-app .letter-tools .clue-panel:has(#clue-text:not(:empty)){flex-basis:100%}
@media(max-width:1050px){.codebreaker-app .case-workspace>.game{padding:27px}
.codebreaker-app .game .tile input{width:33px;height:42px}
.codebreaker-app .game .word{gap:4px}
.codebreaker-app .game .cipher{font-size:31px}
.codebreaker-app .game #board{gap:30px 18px}
}
@media(max-width:600px){.codebreaker-app .case-workspace>.game{min-height:470px;padding:23px 18px}
.codebreaker-app .game #board{min-height:210px;gap:29px 15px;margin:22px 0}
.codebreaker-app .game .word{gap:3px}
.codebreaker-app .game .tile input{width:28px;height:38px;font-size:23px}
.codebreaker-app .game .cipher{height:31px;font-size:27px}
.codebreaker-app .game .cipher-mark{width:29px;height:31px}
.codebreaker-app .letter-tools{gap:15px}
.codebreaker-app .letter-tools .check-row{gap:12px}
.codebreaker-app .letter-tools .clues button{width:39px;height:39px;min-height:39px;padding:7px}
.codebreaker-app .letter-tools .clues{gap:7px}
.codebreaker-app .letter-tools .clue-panel:has(#clue-text:not(:empty)){flex-basis:100%}
}
.codebreaker-app .letter-tools .clue-panel{display:block!important}
.codebreaker-app .letter-tools .clues{flex-wrap:wrap;gap:8px;justify-content:flex-end}
.codebreaker-app .letter-tools .clues>div{display:block;flex-basis:100%;margin:0 0 4px}
.codebreaker-app .letter-tools #clues-title{font:500 10px Source,sans-serif;letter-spacing:0;text-transform:none;text-align:right;margin:0;color:var(--muted)}
.codebreaker-app #clues-title span{font-weight:400;margin-left:7px}
.codebreaker-app .letter-tools .clues button{width:52px;height:56px;min-height:56px;padding:6px;gap:2px}
.codebreaker-app .letter-tools .clues svg{width:25px;height:25px}
.codebreaker-app .letter-tools .clues .clue-short{display:block;margin:0;font:9px/1.2 Source,sans-serif}
.codebreaker-app .letter-tools .clues .clue-used{position:absolute;font-size:10px;right:2px;top:0;bottom:auto;color:var(--good)}
.codebreaker-app .trace-actions{padding-bottom:0}
.codebreaker-app .threat-stages{display:none}
.codebreaker-app #trace-meter{height:10px}
.codebreaker-app .trace-panel .trace-heading strong{font-variant-numeric:tabular-nums}
.codebreaker-app .case-overview .stamp{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font:500 9px/1.6 Source,Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--accent)}
.codebreaker-app .case-overview .stamp strong{font-weight:700}
.codebreaker-app .case-overview .stamp .case-slash{font:inherit;color:inherit}
.codebreaker-app .workspace-tabs button{transition:color .16s,background-color .16s,border-color .16s}
.codebreaker-app .workspace-tabs button:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.codebreaker-app [role=tabpanel]:not([hidden]){animation:material-reveal .18s ease-out}
.codebreaker-app .primary,.codebreaker-app .letter-tools .clues button{transition:background-color .16s,border-color .16s,transform .16s}
.codebreaker-app .primary:active:enabled{transform:translateY(1px)}
.codebreaker-app .letter-tools .clues button:hover:enabled{transform:translateY(-2px)}
.codebreaker-app #result:not([hidden]),.codebreaker-app #outcome-art:not([hidden]){animation:case-result-reveal .3s ease-out}
@keyframes material-reveal{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}
@keyframes case-result-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.codebreaker-app [role=tabpanel],.codebreaker-app #result,.codebreaker-app #outcome-art{animation:none!important}
.codebreaker-app .primary,.codebreaker-app .letter-tools .clues button,.codebreaker-app .workspace-tabs button{transition:none}
.codebreaker-app .primary:active:enabled,.codebreaker-app .letter-tools .clues button:hover:enabled{transform:none}
}
.codebreaker-app .evidence-grid{align-items:stretch}
.codebreaker-app .evidence-card{height:100%;display:flex;flex-direction:column}
.codebreaker-app .connection-status{font-size:12px;color:var(--muted);margin:18px 0}
.codebreaker-app .daily-archive{margin:35px 0 15px;border-top:1px solid var(--line);padding-top:28px}
.codebreaker-app .archive-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}
.codebreaker-app .archive-heading h2{font:400 28px Lora,Georgia,serif;margin:0}
.codebreaker-app .archive-row{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:16px 0}
.codebreaker-app .archive-row strong{font-weight:500;font-size:14px}
.codebreaker-app .archive-date{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.codebreaker-app .archive-status{font-size:11px;color:var(--accent);white-space:nowrap}
.codebreaker-app .archive-row:hover strong{color:var(--accent)}
.codebreaker-app .archive-empty{font-size:13px;color:var(--muted)}
.codebreaker-app .daily-archive>.secondary{margin-top:15px}
.codebreaker-app .route-map{padding:15px 12px;background:#cfd5c0;color:#2e3e36;font-size:11px;text-align:center}
.codebreaker-app .route-map p,.codebreaker-app .route-map strong{display:block;margin:9px 0}
.codebreaker-app .route-map i{height:15px;width:2px;background:#667e77;display:block;margin:auto}
.codebreaker-app .route-map>span{font-size:10px}
.codebreaker-app .evidence-plate{padding:25px 8px;background:#313d35;color:#f1e5cc;text-align:center}
.codebreaker-app .evidence-plate strong{display:block;font-size:12px}
.codebreaker-app .evidence-icon{display:block;font:55px Georgia,serif;margin-bottom:12px}
.codebreaker-app .evidence-table{width:100%;border-collapse:collapse;font-size:11px}
.codebreaker-app .evidence-table th,.codebreaker-app .evidence-table td{padding:8px 4px;text-align:left;border-bottom:1px solid var(--line)}
.codebreaker-app .evidence-table th{font-weight:600;color:var(--accent)}
.codebreaker-app .house-windows{min-height:100px}
.codebreaker-app .house-door{width:27px;font-size:10px}
.codebreaker-app .case-overview #brief{max-width:800px}
.codebreaker-app #connection-status[hidden]{display:none!important}
@media(max-width:650px){.codebreaker-app .daily-archive{margin-top:25px}
.codebreaker-app .archive-heading h2{font-size:24px}
.codebreaker-app .archive-row strong{font-size:13px}
.codebreaker-app .archive-row{gap:10px}
.codebreaker-app .archive-status{font-size:10px}
}
.codebreaker-app{font:15px/1.6 Source,Arial,sans-serif}
.codebreaker-app .game-note{font-size:11px;color:var(--muted);margin:25px 0 10px}
.codebreaker-app .case-overview{margin-top:25px}
.codebreaker-app{max-width:none;margin:0;padding:45px 5vw 30px}
@media(max-width:600px){.codebreaker-app{padding:35px 7vw 25px}
}
.codebreaker-app .trace-panel details.threat-rules{padding:0;border:0;margin:0}
