  :root{
    --ink:#1c1f24;
    --ink-soft:#2a2e35;
    --paper:#ece5d3;
    --paper-dark:#d9cfae;
    --paper-line:#b9ac86;
    --accent-red:#9c2b21;
    --accent-blue:#3c5670;
    --tab-shadow: rgba(0,0,0,.35);
    --radius: 3px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}

  body{
    background:var(--ink);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
  }

  a{color:inherit; text-decoration:none;}

  .meta{
    font-family:'IBM Plex Mono', monospace;
    letter-spacing:.04em;
    text-transform:uppercase;
  }

  /* ---------- Skip link for accessibility ---------- */
  .skip-link{
    position:absolute; left:-999px; top:0;
    background:var(--paper); color:var(--ink); padding:.75rem 1rem;
    z-index:200;
  }
  .skip-link:focus{ left:1rem; top:1rem; }

  /* ---------- Top bar ---------- */
  .topbar{
    background:var(--ink);
    color:var(--paper);
    padding:.5rem 1.5rem;
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    letter-spacing:.06em;
    border-bottom:1px solid #3a3e46;
  }
  .topbar-inner{
    max-width:1180px;
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
  }
  .topbar span.dot{ color:var(--accent-red); }

  /* ---------- Nav (folder tabs) ---------- */
  .site-header{
    background:var(--ink);
    padding:1.4rem 1.5rem 0;
  }
  .header-inner{
    max-width:1180px;
    margin:0 auto;
  }
  .brand-row{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:.5rem;
    padding-bottom:1.2rem;
  }
  .brand{
    font-family:'Special Elite', cursive;
    color:var(--paper);
    font-size:2rem;
    line-height:1;
  }
  .brand small{
    display:block;
    font-family:'IBM Plex Mono', monospace;
    color:#9aa0a8;
    font-size:.65rem;
    letter-spacing:.12em;
    margin-top:.45rem;
    text-transform:uppercase;
  }

  nav.tabs{
    display:flex;
    gap:.4rem;
    flex-wrap:wrap;
  }
  nav.tabs a{
    font-family:'IBM Plex Mono', monospace;
    font-size:.74rem;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--ink);
    background:var(--paper-dark);
    padding:.65rem 1.1rem .55rem;
    border-radius:6px 6px 0 0;
    box-shadow:0 -1px 0 var(--tab-shadow) inset;
    position:relative;
    top:1px;
  }
  nav.tabs a.active{
    background:var(--paper);
    font-weight:600;
    color:var(--accent-red);
  }
  nav.tabs a:hover{ background:var(--paper); }

  /* ---------- Hero / header image ---------- */
  .hero{
    position:relative;
    background:
      linear-gradient(180deg, rgba(15,17,20,.55), rgba(15,17,20,.75)),
      repeating-linear-gradient(115deg, #4a4438, #4a4438 2px, #423c30 2px, #423c30 4px);
    min-height:280px;
    display:flex;
    align-items:flex-end;
    padding:2.5rem 1.5rem 2rem;
    border-bottom:6px solid var(--paper);
  }
  .hero-inner{
    max-width:1180px;
    margin:0 auto;
  }
  .hero-copy{
    max-width:760px;
  }
  .stamp{
    display:inline-block;
    font-family:'Special Elite', cursive;
    color:var(--accent-red);
    border:3px solid var(--accent-red);
    padding:.3rem .9rem;
    transform:rotate(-4deg);
    font-size:.85rem;
    letter-spacing:.15em;
    text-transform:uppercase;
    margin-bottom:.9rem;
    background:rgba(236,229,211,.06);
  }
  .hero h1{
    font-family:'Special Elite', cursive;
    color:var(--paper);
    font-size:clamp(1.8rem, 4vw, 2.9rem);
    line-height:1.15;
    text-shadow:0 2px 10px rgba(0,0,0,.5);
  }
  .hero p{
    font-family:'IBM Plex Mono', monospace;
    color:#d8d2c2;
    font-size:.85rem;
    margin-top:.85rem;
    max-width:52ch;
  }

  /* ---------- Layout ---------- */
  .layout{
    background:var(--paper);
    display:grid;
    grid-template-columns:1fr 320px;
    gap:2rem;
    max-width:1180px;
    margin:0 auto;
    padding:2.2rem 1.5rem 3rem;
  }

  .layout h2.section-title{
    font-family:'Special Elite', cursive;
    font-size:1.15rem;
    color:var(--ink);
    border-bottom:2px solid var(--ink);
    padding-bottom:.5rem;
    margin-bottom:1.3rem;
    display:flex;
    justify-content:space-between;
    align-items:baseline;
  }
  .section-title .meta{ font-size:.65rem; color:var(--accent-blue); }

  /* ---------- Case-file article cards ---------- */
  .case-list{
    display:flex;
    flex-direction:column;
    gap:1.1rem;
    margin-bottom:2.4rem;
  }
  .case-card{
    background:#f5f1e4;
    border:1px solid var(--paper-line);
    border-left:5px solid var(--accent-red);
    border-radius:0 var(--radius) var(--radius) 0;
    padding:1.1rem 1.2rem 1.2rem;
    position:relative;
  }
  .case-card .case-no{
    font-family:'IBM Plex Mono', monospace;
    font-size:.68rem;
    color:var(--accent-blue);
    letter-spacing:.06em;
  }
  .case-card h3{
    font-family:'Work Sans', sans-serif;
    font-weight:700;
    font-size:1.08rem;
    margin:.35rem 0 .5rem;
    color:var(--ink);
  }
  .case-card p{
    font-size:.9rem;
    line-height:1.55;
    color:#33363c;
    margin-bottom:.7rem;
  }
  .case-card .card-foot{
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-family:'IBM Plex Mono', monospace;
    font-size:.68rem;
    color:#6b6656;
  }
  .card-foot a{ color:var(--accent-red); font-weight:600; }
  .redact{
    display:inline-block;
    background:var(--ink);
    color:var(--ink);
    border-radius:2px;
    padding:0 .3em;
    user-select:none;
  }

  /* ---------- Sidebar / evidence board ---------- */
  aside.sidebar{
    display:flex;
    flex-direction:column;
    gap:1.4rem;
  }
  .board-label{
    font-family:'Special Elite', cursive;
    font-size:1rem;
    color:var(--ink);
    border-bottom:2px solid var(--ink);
    padding-bottom:.4rem;
    margin-bottom:.2rem;
  }
  .ad-slot{
    background:repeating-linear-gradient(45deg, #e4dcc2, #e4dcc2 10px, #ddd4b6 10px, #ddd4b6 20px);
    border:1px dashed #8a8060;
    border-radius:var(--radius);
    min-height:250px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:1rem;
  }
  .ad-slot span{
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#5c5643;
    background:rgba(236,229,211,.85);
    padding:.5rem .8rem;
    border:1px solid #8a8060;
  }
  .ad-slot.tall{ min-height:420px; }
  .ad-slot.square{ min-height:250px; }


  /* ---------- Footer ---------- */
  footer{
    background:var(--ink);
    color:#9aa0a8;
    padding:2.2rem 1.5rem;
    font-family:'IBM Plex Mono', monospace;
    font-size:.72rem;
  }
  .footer-inner{
    max-width:1180px;
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:1.2rem;
  }
  .footer-links{ display:flex; gap:1rem; flex-wrap:wrap; }
  .footer-links a:hover{ color:var(--paper); }
  .disclosure{
    max-width:640px;
    line-height:1.6;
    color:#7d838c;
  }

  /* ---------- Responsive ---------- */
  @media (max-width:860px){
    .layout{ grid-template-columns:1fr; }
    aside.sidebar{ order:2; }
  }
  @media (prefers-reduced-motion: reduce){
    *{ transition:none !important; }
  }
