:root{
  --paper:#f3efe6; --panel:#fffdf8; --ink:#1c1a17; --muted:#6b645a; --rule:#d8d0c0;
  --signal:#a31621; --signal-ink:#ffffff; --soft:#efe3d2; --warn:#8a5a00; --ok:#2f6b3f;
  --serif:"Source Serif 4",Georgia,serif; --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace; --type:"Special Elite","Courier New",monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#14120f; --panel:#1d1a16; --ink:#efe9dc; --muted:#a39a8a; --rule:#37322a;
  --signal:#e0525d; --signal-ink:#14120f; --soft:#2a241c; --warn:#e0a63a; --ok:#6fbf86;
}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--serif)}
a{color:var(--signal)}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px 60px}
.crumbs{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0;font:13px var(--mono)}
.crumbs a{text-decoration:none}
.mast{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;border-bottom:3px double var(--ink);padding:10px 0 14px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.lg-box{display:grid;place-items:center;width:50px;height:50px;background:var(--signal);color:var(--signal-ink)}.lg-box svg{width:30px;height:30px}
.lg-text{display:flex;flex-direction:column;line-height:1;font-family:var(--type);text-transform:uppercase}.lg-1{font-size:15px;letter-spacing:.32em;color:var(--muted)}.lg-2{font-size:30px;letter-spacing:.06em;margin-top:3px}
.tag{font:12px var(--mono);color:var(--muted);margin-top:6px;text-transform:uppercase;letter-spacing:.08em}
.datebox{font:12px var(--mono);color:var(--muted);text-align:right}
.datebox strong{display:block;color:var(--ink);font-size:14px}
.strip{background:var(--ink);color:var(--paper);font:13px var(--mono);padding:8px 12px;margin:14px 0;display:flex;gap:12px;flex-wrap:wrap}
.strip b{color:var(--signal-ink);background:var(--signal);padding:0 6px}
.lead h1{font:400 clamp(30px,5vw,50px)/1.1 var(--type);margin:22px 0 10px}
.lead h1 em{color:var(--signal);font-style:normal}
.lead p{max-width:62ch;color:var(--muted)}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 8px;position:sticky;top:0;background:var(--paper);padding:10px 0;z-index:5;border-bottom:1px solid var(--rule)}
.toc a{font:12px var(--mono);padding:5px 10px;border:1px solid var(--rule);text-decoration:none;color:var(--ink);background:var(--panel)}
.toc a:hover{border-color:var(--signal);color:var(--signal)}
section{padding-top:34px}
.sec-head h2,.eyebrow+h2{font:400 clamp(24px,3.5vw,34px)/1.15 var(--type);margin:0 0 8px}
.sec-head p{color:var(--muted);max-width:68ch;margin:0 0 16px}
.eyebrow{font:12px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--signal)}
.big{font-size:20px}
.fine{font:12px/1.5 var(--mono);color:var(--muted)}
.card{background:var(--panel);border:1px solid var(--rule);padding:16px 18px}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.card h3{font:400 20px/1.2 var(--type);margin:4px 0 6px}
.card p{margin:6px 0}
.pill{display:inline-block;font:11px var(--mono);padding:1px 8px;border:1px solid var(--rule);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pill.live{border-color:var(--ok);color:var(--ok)}
.pill.warn{border-color:var(--warn);color:var(--warn)}
.pill.red{border-color:var(--signal);color:var(--signal)}
.verdict{background:var(--panel);border:1px solid var(--rule);border-left:6px solid var(--signal);padding:20px 22px}
.verdict ol{padding-left:22px}
.verdict li{margin:10px 0}
.verdict li b{display:block}
.verdict li span{color:var(--muted)}
.file-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:16px 0}
.file-box div{background:var(--panel);padding:10px 14px}
.file-box small{display:block;font:11px var(--mono);color:var(--muted);text-transform:uppercase}
.file-box strong{font:400 17px var(--type)}
.timeline{border-left:2px solid var(--rule);margin:10px 0 0 6px;padding-left:22px}
.tl{position:relative;margin:0 0 22px}
.tl::before{content:"";position:absolute;left:-29px;top:7px;width:12px;height:12px;background:var(--signal);border:2px solid var(--paper)}
.tl.maybe::before{background:var(--paper);border-color:var(--muted)}
.tl time{font:12px var(--mono);color:var(--signal);text-transform:uppercase;letter-spacing:.06em}
.tl h3{font:400 20px var(--type);margin:2px 0 4px}
.tl p{margin:4px 0}
table{width:100%;border-collapse:collapse;background:var(--panel);font-size:15px;margin:10px 0}
th,td{border:1px solid var(--rule);padding:9px 11px;text-align:left;vertical-align:top}
th{font:12px var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--soft)}
.tbl-scroll{overflow-x:auto}
.notice{border:1px dashed var(--warn);background:var(--panel);padding:12px 16px;font-size:15px;margin:14px 0}
.notice b{color:var(--warn)}
.hyp{background:#1c1a17;color:#f3efe6;padding:24px;margin:12px 0;border:1px solid var(--rule)}
.hyp h3{font:400 22px var(--type);margin:0 0 8px;color:#f3efe6}
.hyp p,.hyp li{color:#d8d0c0}
.hyp a{color:#ffb3b8}
.hyp .eyebrow{color:#ff8b94}
.meter{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;align-items:center;font:13px var(--mono);margin:10px 0}
.meter i{display:block;height:10px;background:#ff8b94}
.meter span{background:#3b3630;display:block}
.links li{margin:6px 0}
.news li{padding:8px 0;border-bottom:1px solid var(--rule)}
.news small{display:block;font:12px var(--mono);color:var(--muted)}
.footer{margin-top:50px;border-top:3px double var(--ink);padding-top:16px}
.foot-links{display:flex;gap:16px;flex-wrap:wrap;font:13px var(--mono)}
.rank{font:400 44px/1 var(--type);color:var(--signal)}
.tile{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit}
.tile.queued{opacity:.78}
.tile:not(.queued):hover{border-color:var(--signal)}
.cipher{font:14px/1.4 var(--mono);letter-spacing:.04em;word-break:break-all;background:var(--soft);padding:10px 12px;margin:8px 0}
@media (max-width:600px){body{font-size:16px}.meter{grid-template-columns:1fr}.datebox{text-align:left}}
@media print{.toc,.crumbs{display:none}}

/* Collapsible sections (assets/coldcase.js adds the .fold classes) */
.toc{position:static}
.fold-all{font:12px var(--mono);padding:5px 10px;border:1px solid var(--signal);background:var(--signal);color:var(--signal-ink);cursor:pointer;margin-left:auto}
section.foldable>.sec-head h2{cursor:pointer;display:flex;align-items:center;gap:10px;border-top:1px solid var(--rule);padding-top:12px}
section.foldable>.sec-head h2::after{content:"+";margin-left:auto;font:400 26px var(--mono);color:var(--signal)}
section.foldable.open>.sec-head h2::after{content:"\2212"}
section.foldable>.sec-head h2:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
section.foldable>.fold-body{display:none}
section.foldable.open>.fold-body{display:block}
section.foldable:not(.open)>.sec-head p{margin-bottom:0}
details.inner{background:var(--panel);border:1px solid var(--rule);padding:10px 14px;margin-top:12px}
details.inner summary{cursor:pointer;font:13px var(--mono)}
table.matrix td{font-size:13px;line-height:1.35}
td.x,span.x{color:var(--signal)}td.y,span.y{color:var(--ok)}td.q,span.q{color:var(--warn)}td.n{color:var(--muted)}
/* Photos: only freely licensed images, always with a credit line */
.photo-row{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:14px 0}
figure.ph{margin:0;background:var(--panel);border:1px solid var(--rule);padding:10px}
figure.ph img{display:block;width:100%;max-height:340px;object-fit:contain;background:var(--soft)}
figure.ph figcaption{font:12px/1.45 var(--mono);color:var(--muted);margin-top:8px}
/* Finder (landing search) */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.finder{margin:0 0 18px}
.finder-label{font:12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--signal)}
.finder-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.combo{position:relative;flex:1 1 320px}
.finder input,.finder select,.form input,.form select,.form textarea{width:100%;font:16px var(--serif);color:var(--ink);background:var(--panel);border:2px solid var(--ink);padding:12px 14px;border-radius:0}
.finder input:focus,.finder select:focus,.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--signal);outline-offset:1px}
.finder-pick{flex:0 1 260px}
.suggest{position:absolute;z-index:20;left:0;right:0;top:100%;margin:2px 0 0;padding:0;list-style:none;background:var(--panel);border:2px solid var(--ink);max-height:340px;overflow:auto}
.suggest li{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--rule)}
.suggest li:last-child{border-bottom:0}
.suggest li b{display:block;font-weight:600}
.suggest li small{font:12px var(--mono);color:var(--muted)}
.suggest li.on,.suggest li:hover{background:var(--soft)}
.suggest li.empty{cursor:default}
mark{background:var(--signal);color:var(--signal-ink);padding:0 2px}
.btn{display:inline-block;font:13px var(--mono);text-transform:uppercase;letter-spacing:.06em;padding:12px 18px;background:var(--signal);color:var(--signal-ink);text-decoration:none;border:0;cursor:pointer}
.btn:hover{filter:brightness(1.1)}
.form label{display:block;font:13px var(--mono);margin:16px 0 4px}
.form .hint{font:12px var(--mono);color:var(--muted);margin:0 0 4px}
.form textarea{min-height:120px;resize:vertical}
/* Contact box (footer of every page) */
.contact-box{margin-top:40px;background:var(--panel);border:1px solid var(--rule);border-left:6px solid var(--signal);padding:18px 20px}
.contact-box h2{font:400 22px var(--type);margin:0 0 6px}
.contact-box p{margin:0 0 8px;font-size:15px}
.contact-box .form label{margin-top:10px}
.contact-box button[disabled]{opacity:.55;cursor:not-allowed}
/* Photos inside victim cards */
.victims .card{display:flex;flex-direction:column}
.vph{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;background:var(--soft);margin:0 0 6px}
.vph.crop{background-size:auto 100%;background-repeat:no-repeat;background-position:0 0}
.vph.crop.r{background-position:100% 0}
.vph.none{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--rule)}
.vph.none svg{width:46%;height:auto}
.vph.none span{font:11px var(--mono);color:var(--muted);margin-top:6px}
.vcred{font:11px/1.4 var(--mono);color:var(--muted);margin:0 0 10px}
.vcred a{color:var(--muted)}
/* Clue / tip form (near the top of every case page) */
.tip-box{margin:18px 0 6px}
.tip-fold{background:var(--panel);border:1px solid var(--rule);border-left:6px solid var(--signal)}
.tip-fold>summary{cursor:pointer;list-style:none;padding:14px 18px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.tip-fold>summary::-webkit-details-marker{display:none}
.tip-q{font:400 19px var(--type)}
.tip-cta{font:12px var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--signal);color:var(--signal-ink);padding:6px 12px}
.tip-fold[open]>summary .tip-cta{background:transparent;color:var(--signal);border:1px solid var(--signal)}
.tip-fold>summary:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.tip-body{padding:0 18px 18px}
.tip-form .tip-ack{display:flex;gap:10px;align-items:flex-start;font:14px/1.5 var(--serif);margin-top:16px}
.tip-form .tip-ack input{width:auto;margin-top:5px}
.tip-trap{position:absolute;left:-9999px}
.tip-act{margin:14px 0 6px}
.tip-form button[disabled]{opacity:.55;cursor:not-allowed}
/* Trust elements: status badge, key, authorities, corrections */
.status-badge{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:14px 0 0;padding:10px 14px;background:var(--panel);border:1px solid var(--rule);font-size:15px}
.status-badge .sb-pill{font:11px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.status-badge strong{font:400 17px var(--type);padding:2px 10px;border:1px solid currentColor}
.status-badge.open strong{color:var(--signal)}
.status-badge.partial strong{color:var(--warn)}
.status-badge.historic strong{color:var(--muted)}
.status-badge .sb-note{color:var(--muted);flex:1 1 280px;min-width:0}
.key-box{margin:10px 0 0}
.key-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:12px}
.key-grid h3{font:400 17px var(--type);margin:0 0 6px}
.key-grid ul{list-style:none;padding:0;margin:0;font-size:14px}
.key-grid li{margin:6px 0}
.key-grid p{font-size:14px;margin:0}
.trust-foot{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:34px}
.trust-foot>div{background:var(--panel);border:1px solid var(--rule);padding:16px 18px}
.trust-foot h2{font:400 20px var(--type);margin:0 0 6px}
.trust-foot p{margin:0;font-size:15px}
.trust-foot .authority{border-left:6px solid var(--signal)}
/* City tags */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.chip{font:12px var(--mono);padding:4px 10px;background:var(--soft);color:var(--ink);border:1px solid var(--rule);border-radius:999px;cursor:pointer}
.chip:hover{border-color:var(--signal);color:var(--signal)}
.chip.on{background:var(--signal);color:var(--signal-ink);border-color:var(--signal)}
.chip.clear{background:transparent;border-style:dashed}
.chip:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.city-browse{margin:0 0 16px}
.tile{position:relative}
.tile .stretch{color:inherit;text-decoration:none}
.tile .stretch::after{content:"";position:absolute;inset:0}
.tile .chips{position:relative;z-index:2}
.tile:has(.stretch):hover{border-color:var(--signal)}
.city-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:10px 0 0}
.city-line .sb-pill{font:11px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
a.chip{text-decoration:none;display:inline-block}
/* State browsing */
[hidden]{display:none!important}
.state-controls{display:flex;flex-wrap:wrap;gap:14px}
.state-controls label,.state-browse,.city-browse{font:12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--signal)}
.state-controls label{flex:1 1 220px;display:flex;flex-direction:column;gap:6px}
.state-controls select,.state-browse select,.city-browse select{width:100%;max-width:420px;font:16px var(--serif);text-transform:none;letter-spacing:0;color:var(--ink);background:var(--panel);border:2px solid var(--ink);padding:10px 12px;border-radius:0}
.state-browse,.city-browse{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 12px}
.state-browse .finder-label,.city-browse .finder-label{flex:0 0 120px}
.state-browse a.fine{text-transform:none;letter-spacing:0}
.state-controls select:focus,.state-browse select:focus,.city-browse select:focus{outline:3px solid var(--signal);outline-offset:1px}
.more-cases{grid-column:1/-1;margin-top:6px}
.more-cases>summary{cursor:pointer;font:400 20px var(--type);padding:12px 14px;border:1px dashed var(--line,#555);border-radius:8px;list-style:none}
.more-cases>summary::-webkit-details-marker{display:none}
.more-cases>summary::before{content:"+ ";margin-right:8px}
.more-cases[open]>summary::before{content:"- "}
.more-cases>.fine{margin:10px 0}
.more-cases>.grid{margin-top:4px}
.reward-box{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:14px 0 0;padding:14px 16px;background:var(--signal);color:var(--signal-ink);border:2px solid var(--signal)}
.reward-box .rw-label{font:12px var(--mono);text-transform:uppercase;letter-spacing:.1em;opacity:.9}
.reward-box .rw-amt{font:400 clamp(26px,5vw,38px) var(--type);line-height:1.05}
.reward-box .rw-amt.none{font-size:clamp(20px,4vw,26px)}
.reward-box .rw-note{flex:1 1 300px;min-width:0;font-size:15px;line-height:1.45}
.reward-box .rw-meta{display:block;margin-top:4px;font-size:12.5px;opacity:.88}
.reward-box a{color:inherit;text-decoration:underline}
.reward-box.unconfirmed{background:var(--warn);border-color:var(--warn);color:#14120f}
.reward-box.historic,.reward-box.none{background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-left:6px solid var(--muted)}
.reward-box.historic .rw-amt,.reward-box.none .rw-amt{color:var(--muted)}
.top-title{font:400 clamp(22px,4.4vw,30px) var(--type);margin:22px 0 10px;padding-bottom:8px;border-bottom:2px solid var(--signal);text-wrap:balance}
.top-title[hidden]{display:none}
