/* Dedrick Kane's Case Files — shared styles (extracted from Case File 00) */
:root{
  --bg:#0c0e12; --panel:#141821; --panel2:#1a2030; --ink:#e8e2d4;
  --manila:#e6d7ae; --manila-dim:#c9b98c; --red:#c0392b; --red-bright:#e74c3c;
  --green:#27ae60; --amber:#d4a017; --muted:#8a93a6; --line:#2a3245;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:Georgia,'Times New Roman',serif; font-size:17px; line-height:1.65;
}
.wrap{max-width:660px; margin:0 auto; padding:0 18px 60px;}
.wrap.wide{max-width:900px;}
/* ---------- header / dossier ---------- */
.dossier-tag{
  font-family:'Courier New',monospace; font-size:12px; letter-spacing:3px;
  color:var(--muted); text-transform:uppercase; margin:26px 0 6px;
}
h1{
  font-family:'Courier New',monospace; font-size:30px; line-height:1.25;
  margin:0 0 4px; color:var(--manila); letter-spacing:1px;
}
.subtitle{color:var(--muted); font-style:italic; margin:0 0 18px; font-size:15px;}
.stamp{
  display:inline-block; font-family:'Courier New',monospace; font-weight:bold;
  font-size:13px; letter-spacing:2px; color:var(--red-bright);
  border:3px double var(--red-bright); border-radius:4px; padding:6px 14px;
  transform:rotate(-4deg); margin:10px 0 20px; text-transform:uppercase;
}
.brief{
  background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--amber);
  padding:18px 18px 16px; border-radius:0 8px 8px 0; margin:0 0 26px;
}
.brief p{margin:0 0 12px;} .brief p:last-child{margin-bottom:0;}
.brief .who{font-family:'Courier New',monospace; font-size:13px; color:var(--amber); letter-spacing:1px;}
/* ---------- buttons ---------- */
.btn{
  display:block; width:100%; font-family:'Courier New',monospace; font-size:16px;
  font-weight:bold; letter-spacing:1px; text-transform:uppercase; cursor:pointer;
  background:var(--red); color:#fff; border:none; border-radius:6px;
  padding:16px; margin:14px 0;
}
.btn:active{transform:scale(.98);}
.btn.secondary{background:var(--panel2); border:1px solid var(--line); color:var(--manila);}
.btn:disabled{opacity:.4; cursor:not-allowed;}
a.btn{text-decoration:none; text-align:center;}
/* ---------- sections ---------- */
.section-title{
  font-family:'Courier New',monospace; font-size:14px; letter-spacing:3px;
  text-transform:uppercase; color:var(--manila); margin:34px 0 4px;
  border-bottom:1px solid var(--line); padding-bottom:8px;
}
.section-sub{color:var(--muted); font-size:14px; font-style:italic; margin:0 0 14px;}
.progress{font-family:'Courier New',monospace; font-size:13px; color:var(--amber); margin-bottom:12px;}
/* ---------- evidence cards ---------- */
.ev{
  background:var(--panel); border:1px solid var(--line); border-radius:8px;
  margin:0 0 10px; overflow:hidden;
}
.ev-head{
  width:100%; background:none; border:none; color:var(--ink); cursor:pointer;
  display:flex; align-items:center; gap:12px; padding:14px 16px; text-align:left;
  font-family:Georgia,serif; font-size:16px;
}
.ev-num{
  font-family:'Courier New',monospace; font-size:12px; font-weight:bold; color:#0c0e12;
  background:var(--manila); border-radius:4px; padding:4px 8px; flex-shrink:0;
}
.ev-head .chev{margin-left:auto; color:var(--muted); font-size:13px;}
.ev.read .ev-num{background:var(--green); color:#fff;}
.ev-body{display:none; padding:0 16px 18px; border-top:1px dashed var(--line);}
.ev.open .ev-body{display:block;}
.ev-body .doc{
  background:#0a0c10; border:1px solid var(--line); border-radius:6px;
  padding:14px; margin-top:12px; font-size:15px;
}
.doc .fld{font-family:'Courier New',monospace; font-size:12px; color:var(--muted); letter-spacing:1px; text-transform:uppercase;}
.doc .val{color:var(--ink); margin:2px 0 10px;}
.doc .val.hl{color:var(--red-bright); font-weight:bold;}
.doc .val.ok{color:var(--green);}
.analyst{font-style:italic; color:var(--manila-dim); font-size:15px; margin-top:12px;}
.analyst::before{content:"— ";}
/* ---------- suspects ---------- */
.suspect{background:var(--panel); border:1px solid var(--line); border-radius:8px; margin:0 0 10px; overflow:hidden;}
.sus-head{
  width:100%; background:none; border:none; color:var(--ink); cursor:pointer;
  display:flex; gap:14px; padding:14px 16px; text-align:left; align-items:center;
  font-family:Georgia,serif;
}
.mug{
  width:52px; height:52px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family:'Courier New',monospace; font-weight:bold; font-size:20px; color:#0c0e12;
  background:var(--manila-dim);
}
.sus-head .nm{font-size:17px; font-weight:bold;}
.sus-head .rl{font-size:13px; color:var(--muted); font-style:italic;}
.sus-head .chev{margin-left:auto; color:var(--muted);}
.sus-body{display:none; padding:0 16px 18px; border-top:1px dashed var(--line);}
.suspect.open .sus-body{display:block;}
.q{margin-top:14px;}
.q-btn{
  width:100%; background:var(--panel2); border:1px solid var(--line); color:var(--manila);
  border-radius:6px; padding:12px 14px; text-align:left; cursor:pointer;
  font-family:Georgia,serif; font-size:15px; font-style:italic;
}
.q-btn.asked{border-color:var(--green); color:var(--muted);}
.a{display:none; margin-top:10px; padding:12px 14px; background:#0a0c10; border-radius:6px; font-size:15px; border-left:3px solid var(--amber);}
.a.show{display:block;}
.a .spk{font-family:'Courier New',monospace; font-size:12px; color:var(--amber); letter-spacing:1px; text-transform:uppercase; display:block; margin-bottom:4px;}
/* ---------- accusation ---------- */
.acc-q{background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:18px 16px; margin:0 0 16px;}
.acc-q h3{font-family:'Courier New',monospace; font-size:15px; letter-spacing:1px; color:var(--manila); margin:0 0 4px;}
.acc-q .hint{font-size:13px; color:var(--muted); font-style:italic; margin:0 0 12px;}
.opt{
  display:block; width:100%; text-align:left; background:var(--panel2);
  border:1px solid var(--line); color:var(--ink); border-radius:6px;
  padding:13px 14px; margin:0 0 8px; cursor:pointer; font-family:Georgia,serif; font-size:15px;
}
.opt.sel{border-color:var(--amber); background:#241f10;}
.opt .k{font-family:'Courier New',monospace; font-weight:bold; color:var(--amber); margin-right:8px;}
input[type=range]{width:100%; margin:10px 0 4px;}
.conf-labels{display:flex; justify-content:space-between; font-size:12px; color:var(--muted); font-family:'Courier New',monospace;}
/* ---------- verdict ---------- */
.verdict-head{text-align:center; margin:30px 0 10px;}
.score-big{font-family:'Courier New',monospace; font-size:56px; color:var(--manila); margin:6px 0;}
.score-sub{color:var(--muted); font-style:italic; margin-bottom:20px;}
.vblock{background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:18px 16px; margin:0 0 14px;}
.vblock h3{font-family:'Courier New',monospace; font-size:14px; letter-spacing:2px; color:var(--red-bright); text-transform:uppercase; margin:0 0 10px;}
.vblock h3.good{color:var(--green);}
.vblock p{margin:0 0 10px;} .vblock p:last-child{margin-bottom:0;}
.rule{border-left:4px solid var(--red-bright); font-style:italic;}
/* ---------- book promo / footer ---------- */
.promo{background:linear-gradient(160deg,#1a1420,#141821); border:1px solid #4a3a5a; border-radius:10px; padding:22px 18px; margin:34px 0 20px; text-align:center;}
.promo h2{font-family:'Courier New',monospace; font-size:20px; color:var(--manila); margin:0 0 8px; letter-spacing:1px;}
.promo p{font-size:15px; color:var(--ink); margin:0 0 14px;}
.promo a.btn{text-decoration:none;}
footer{border-top:1px solid var(--line); margin-top:26px; padding-top:16px; font-size:12.5px; color:var(--muted);}
footer p{margin:0 0 10px;}
.hidden{display:none !important;}
.timer{font-family:'Courier New',monospace; font-size:12px; color:var(--muted); letter-spacing:1px;}
/* ---------- hub ---------- */
.hero{
  border-radius:12px; overflow:hidden; margin:26px 0 8px;
  background:#060709 url('media-generation-dk-case-story-teaser-0-156f8227-f0c8-4cc3-a719-17240d4b2b65.jpg') center 30%/cover no-repeat;
  border:1px solid var(--line); min-height:300px; position:relative;
  display:flex; align-items:flex-end;
}
.hero-inner{
  width:100%; padding:150px 22px 24px;
  background:linear-gradient(180deg,rgba(6,7,9,0) 0%,rgba(6,7,9,.88) 60%,#0c0e12 100%);
}
.hero h1{font-size:34px; margin:0 0 6px;}
.hero .tag{font-family:'Courier New',monospace; font-size:12px; letter-spacing:3px; color:var(--amber); text-transform:uppercase; animation:tagflicker 9s infinite;}
@keyframes tagflicker{0%,90%{opacity:1;}91%{opacity:.35;}92%{opacity:1;}94%{opacity:.55;}95%,100%{opacity:1;}}
/* tasteful dread: film grain + vignette over everything */
body::before{
  content:""; position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
body::after{
  content:""; position:fixed; inset:0; z-index:61; pointer-events:none;
  background:radial-gradient(ellipse at 50% 40%, transparent 52%, rgba(0,0,0,.52) 100%);
}
.cards{display:grid; grid-template-columns:1fr; gap:14px; margin:18px 0;}
@media(min-width:640px){ .cards.two{grid-template-columns:1fr 1fr;} .cards.three{grid-template-columns:1fr 1fr 1fr;} }
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  padding:20px 18px; position:relative; display:flex; flex-direction:column;
  box-shadow:0 6px 28px rgba(0,0,0,.5), inset 0 1px 0 rgba(232,226,212,.06);
}
.card.featured{
  border-color:var(--amber); background:linear-gradient(165deg,#1c1810,#141821);
  box-shadow:0 6px 28px rgba(0,0,0,.5), 0 0 26px rgba(212,160,23,.14), inset 0 1px 0 rgba(212,160,23,.18);
}
.card .cno{font-family:'Courier New',monospace; font-size:11px; letter-spacing:2px; color:var(--amber); text-transform:uppercase;}
.card h3{font-family:'Courier New',monospace; font-size:18px; color:var(--manila); margin:6px 0 8px; letter-spacing:.5px;}
.card p{font-size:14.5px; color:var(--ink); margin:0 0 12px; flex-grow:1;}
.card .meta{font-family:'Courier New',monospace; font-size:12px; color:var(--muted); margin-bottom:12px;}
.card .btn{margin:4px 0 0; padding:13px;}
.badge-done{
  align-self:flex-end; font-family:'Courier New',monospace; font-weight:bold;
  font-size:12px; letter-spacing:2px; text-transform:uppercase; white-space:nowrap;
  color:var(--green); border:3px double var(--green); border-radius:4px;
  padding:5px 12px; transform:rotate(-4deg); margin:2px 2px 10px 0;
  background:rgba(39,174,96,.07);
  box-shadow:0 0 14px rgba(39,174,96,.18), inset 0 0 8px rgba(39,174,96,.08);
}
.nav{display:flex; gap:10px; flex-wrap:wrap; margin:18px 0 0;}
.nav a{
  font-family:'Courier New',monospace; font-size:13px; letter-spacing:1px; text-transform:uppercase;
  color:var(--manila); text-decoration:none; border:1px solid var(--line); border-radius:6px;
  padding:10px 14px; background:var(--panel);
}
.nav a:hover{border-color:var(--amber);}
.backlink{display:inline-block; margin:22px 0 0; font-family:'Courier New',monospace; font-size:13px; color:var(--muted); text-decoration:none; letter-spacing:1px;}
.backlink:hover{color:var(--manila);}
/* ---------- daily dossier ---------- */
.clue{
  background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--amber);
  border-radius:0 8px 8px 0; padding:12px 14px; margin:0 0 10px; font-size:15.5px;
}
.clue .cn{font-family:'Courier New',monospace; font-size:11px; letter-spacing:2px; color:var(--amber); text-transform:uppercase; display:block; margin-bottom:4px;}
.answer-box{
  background:#0a0c10; border:1px solid var(--green); border-radius:8px;
  padding:18px 16px; margin:16px 0; display:none;
}
.answer-box.show{display:block;}
.answer-box h3{font-family:'Courier New',monospace; color:var(--green); letter-spacing:2px; font-size:14px; margin:0 0 10px; text-transform:uppercase;}
.streak-pill{
  display:inline-block; font-family:'Courier New',monospace; font-size:13px; letter-spacing:1px;
  color:var(--amber); border:1px solid var(--amber); border-radius:20px; padding:6px 14px; margin:8px 0;
}
/* ---------- detective profile ---------- */
.stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:16px 0;}
.stat{background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:16px 14px; text-align:center;}
.stat .n{font-family:'Courier New',monospace; font-size:30px; color:var(--manila);}
.stat .l{font-size:12px; color:var(--muted); font-family:'Courier New',monospace; letter-spacing:1px; text-transform:uppercase;}
.case-row{display:flex; align-items:center; gap:12px; background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin:0 0 8px; text-decoration:none; color:var(--ink);}
.case-row .t{flex-grow:1;}
.case-row .t b{color:var(--manila); font-family:'Courier New',monospace; font-size:14px;}
.case-row .sc{font-family:'Courier New',monospace; color:var(--amber); font-size:14px;}
.sharecard{background:#0a0c10; border:1px dashed var(--line); border-radius:8px; padding:16px; font-family:'Courier New',monospace; font-size:13.5px; line-height:1.7; color:var(--manila-dim); margin:12px 0; white-space:pre-wrap;}
.howto{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:20px 18px; margin:20px 0;}
.howto ol{margin:8px 0 0; padding-left:22px;}
.howto li{margin:0 0 10px; font-size:15.5px;}

/* ---------- noir side rails (wide screens only) ---------- */
body::before,body::after{
  content:""; position:fixed; top:0; bottom:0; width:min(26vw,340px);
  background-size:cover; background-position:center; background-repeat:no-repeat;
  pointer-events:none; display:none; z-index:0; opacity:.92;
}
body::before{left:0; background-image:url('side-rail-left.jpg');
  -webkit-mask-image:linear-gradient(to right,#000 55%,transparent);
  mask-image:linear-gradient(to right,#000 55%,transparent);}
body::after{right:0; background-image:url('side-rail-right.jpg');
  -webkit-mask-image:linear-gradient(to left,#000 55%,transparent);
  mask-image:linear-gradient(to left,#000 55%,transparent);}
.wrap{position:relative; z-index:1; background:var(--bg);}
@media (min-width:1400px){ body::before,body::after{ display:block; } }

/* ---------- progression: ranks, banners, countdown ---------- */
.rank-banner{background:linear-gradient(135deg,#1c2333,#141821);border:1px solid var(--amber);border-radius:8px;padding:14px 16px;margin:0 0 18px;}
.rb-top{font-family:'Courier New',monospace;font-size:14px;letter-spacing:2px;color:var(--manila);text-transform:uppercase;}
.rb-top .xp-gain{color:var(--amber);font-weight:bold;}
.rb-bar{height:8px;background:#0a0c10;border:1px solid var(--line);border-radius:4px;margin:10px 0 6px;overflow:hidden;}
.rb-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--amber),var(--red-bright));border-radius:4px;transition:width .8s ease;}
.rb-sub{font-size:13px;color:var(--muted);}
.rb-up{display:inline-block;margin-top:8px;font-family:'Courier New',monospace;font-weight:bold;letter-spacing:2px;color:#0c0e12;background:var(--amber);border-radius:4px;padding:4px 12px;font-size:13px;}
.continue-banner{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--red-bright);border-radius:0 8px 8px 0;padding:14px 16px;margin:18px 0;}
.continue-banner a{color:var(--manila);font-weight:bold;}
.count-pill{font-family:'Courier New',monospace;color:var(--amber);letter-spacing:1px;}
.mile-row{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 4px;}
.mile{flex:1;min-width:140px;background:var(--panel);border:1px solid var(--amber);border-radius:8px;padding:10px 12px;text-align:center;}
.mile.dim{opacity:.32;border-color:var(--line);}
.mile .md{font-family:'Courier New',monospace;font-size:12px;letter-spacing:2px;color:var(--amber);}
.mile .ml{font-size:13px;color:var(--ink);margin-top:4px;}
.next-file{background:var(--panel);border:1px dashed var(--amber);border-radius:8px;padding:16px;margin:22px 0;}
.next-file .nf-tag{font-family:'Courier New',monospace;font-size:11px;letter-spacing:3px;color:var(--amber);text-transform:uppercase;}
.next-file h3{font-family:'Courier New',monospace;color:var(--manila);margin:6px 0 4px;letter-spacing:1px;}
.next-file p{margin:0 0 12px;color:var(--ink);font-size:15px;}
.archive-row{display:block;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:0 0 8px;text-decoration:none;color:var(--ink);}
.archive-row:hover{border-color:var(--amber);}
.archive-row .ad{font-family:'Courier New',monospace;font-size:12px;color:var(--muted);letter-spacing:1px;}
.archive-row .at{font-weight:bold;color:var(--manila);margin-top:2px;}

/* ============ Accessibility: skip link, focus, reduced motion ============ */
.skip {
  position: absolute; left: 12px; top: -48px; z-index: 200;
  background: var(--amber); color: #0c0e12; font-weight: bold;
  padding: 10px 16px; border-radius: 0 0 8px 8px; text-decoration: none;
  transition: top .15s ease;
}
.skip:focus { top: 0; }
:focus-visible {
  outline: 2px solid var(--amber); outline-offset: 2px; border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001s !important; transition-duration: .001s !important; }
  html { scroll-behavior: auto; }
}
