:root {
  --ink:    #0f172a;
  --text:   #2d3748;
  --muted:  #64748b;
  --light:  #94a3b8;
  --paper:  #FAF8F4;
  --tint:   #f6f3ec;
  --warm:   #ede9e1;
  --rule:   #e8e4d8;
  --gold:   #B8860B;
  --gold-l: #FAF6E8;
  --orange: #E8640A;
  --navy:   #1E3264;
  --fh:     'Instrument Serif', Georgia, serif;
  --fb:     'DM Sans', system-ui, sans-serif;
  --fm:     'JetBrains Mono', ui-monospace, monospace;
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:var(--fb); background:var(--paper); color:var(--text); overflow-x:hidden; -webkit-font-smoothing:antialiased; font-weight:300; }

#prog { position:fixed; top:0; left:0; z-index:999; height:1px; width:0%; background:var(--gold); }

/* NAV */
nav{
    background: #15203b;
}

@media (max-width: 768px){
  nav{
    background: #ffffff;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MASTHEAD — case file index
━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.masthead {
  max-width:1100px;
  margin:0 auto;
  padding:140px 32px 64px;
  border-bottom:1px solid var(--rule);
}
.mast-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:48px;
  margin-bottom:56px;
  flex-wrap:wrap;
}
.mast-left { flex:1; min-width:300px; }
.mast-tag {
  font-family:var(--fm);
  font-size:.66rem;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:18px;
  display:flex;
  align-items:center;
  gap:10px;
}
.mast-tag::before {
  content:'§';
  font-family:var(--fh);
  font-style:italic;
  font-size:.9rem;
  text-transform:none;
}
.mast-h {
  font-family:var(--fh);
  font-size:clamp(2.6rem,5vw,4.4rem);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.022em;
  color:var(--ink);
  margin-bottom:20px;
}
.mast-h em { font-style:italic; color:var(--gold); }
.mast-deck {
  font-family:var(--fh);
  font-size:1.15rem;
  font-style:italic;
  color:var(--muted);
  line-height:1.6;
  max-width:580px;
}
.mast-stats {
  display:flex;
  flex-direction:column;
  gap:0;
  border-left:1px solid var(--rule);
  padding-left:36px;
  min-width:260px;
}
.mast-stat {
  padding:14px 0;
  border-bottom:1px solid var(--rule);
}
.mast-stat:last-child { border-bottom:none; }
.mast-stat-num {
  font-family:var(--fb);
  font-size:1.6rem;
  font-weight:600;
  color:var(--gold);
  letter-spacing:-.02em;
  line-height:1;
  margin-bottom:4px;
}
.mast-stat-label {
  font-family:var(--fm);
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━
   FILTER BAR
━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.filter-bar {
  max-width:1100px;
  margin:0 auto;
  padding:24px 32px;
  border-bottom:1px solid var(--rule);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
}
.filter-label {
  font-family:var(--fm);
  font-size:.62rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.filter-pills {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.fp {
  font-family:var(--fb);
  font-size:.76rem;
  color:var(--muted);
  background:transparent;
  border:1px solid var(--rule);
  padding:7px 14px;
  border-radius:50px;
  cursor:pointer;
  transition:all .2s;
}
.fp:hover { color:var(--ink); border-color:var(--ink); }
.fp.active {
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
.filter-meta {
  font-family:var(--fm);
  font-size:.7rem;
  color:var(--light);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CASE FILE LIST
━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.cases {
  max-width:1100px;
  margin:0 auto;
  padding:0 32px;
}

.case {
  display:grid;
  grid-template-columns:140px 1fr 280px;
  gap:48px;
  padding:56px 0;
  border-bottom:1px solid var(--rule);
  align-items:start;
  text-decoration:none;
  color:inherit;
  transition:padding-left .25s;
}
.case:hover { padding-left:8px; }
.case:hover .case-arrow { transform:translateX(6px); color:var(--gold); }

/* LEFT — file metadata */
.case-meta {
  font-family:var(--fm);
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.case-file-num {
  color:var(--gold);
  margin-bottom:8px;
}
.case-year {
  display:block;
  margin-bottom:8px;
  color:var(--ink);
}
.case-sector {
  color:var(--light);
  font-size:.62rem;
  line-height:1.6;
  letter-spacing:.1em;
}

/* MIDDLE — case details */
.case-body { }
.case-client {
  font-family:var(--fh);
  font-size:clamp(1.6rem,2.8vw,2.2rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.15;
  margin-bottom:8px;
  letter-spacing:-.012em;
}
.case-client em { font-style:italic; color:var(--gold); }
.case-headline {
  font-family:var(--fh);
  font-size:1.05rem;
  font-style:italic;
  color:var(--muted);
  line-height:1.5;
  margin-bottom:24px;
}

.case-pf {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:16px;
}
.case-pf-block { }
.case-pf-label {
  font-family:var(--fm);
  font-size:.6rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:6px;
}
.case-pf-text {
  font-size:.92rem;
  color:var(--text);
  line-height:1.7;
  font-weight:300;
}
.case-pf-text strong { color:var(--ink); font-weight:500; }

/* RIGHT — outcome card */
.case-outcome {
  background:var(--gold-l);
  border-left:2px solid var(--gold);
  padding:22px 24px;
  border-radius:0 6px 6px 0;
}
.case-outcome-label {
  font-family:var(--fm);
  font-size:.6rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:8px;
}
.case-outcome-headline {
  font-family:var(--fh);
  font-size:1.1rem;
  font-style:italic;
  color:var(--ink);
  line-height:1.45;
  margin-bottom:14px;
}
.case-outcome-headline em { color:var(--gold); }
.case-arrow {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--fm);
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  transition:transform .25s, color .25s;
}

/* Confidential placeholder cases */
.case.locked {
  opacity:0.65;
  cursor:not-allowed;
}
.case.locked:hover { padding-left:0; }
.case.locked .case-arrow { color:var(--light); }
.case.locked:hover .case-arrow { transform:none; color:var(--light); }
.locked-tag {
  display:inline-block;
  font-family:var(--fm);
  font-size:.58rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--light);
  border:1px solid var(--rule);
  padding:3px 8px;
  border-radius:3px;
  margin-left:10px;
  vertical-align:middle;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━
   END NOTE / CTA
━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.cta-section {
  max-width:780px;
  margin:0 auto;
  padding:96px 32px 120px;
  text-align:center;
}
.cta-mark {
  font-family:var(--fm);
  font-size:.66rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:28px;
}
.cta-h {
  font-family:var(--fh);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.2;
  margin-bottom:20px;
  letter-spacing:-.012em;
}
.cta-h em { font-style:italic; color:var(--gold); }
.cta-deck {
  font-size:1rem;
  color:var(--muted);
  line-height:1.85;
  font-weight:300;
  margin-bottom:36px;
  max-width:600px;
  margin-left:auto;
  margin-right:auto;
}
.cta-row { display:flex; gap:24px; justify-content:center; flex-wrap:wrap; align-items:center; }
.cta-primary {
  font-family:var(--fb); font-size:.82rem; font-weight:500;
  color:var(--ink); text-decoration:none;
  border-bottom:2px solid var(--gold);
  padding:6px 2px; transition:color .2s;
}
.cta-primary:hover { color:var(--gold); }
.cta-secondary {
  font-size:.78rem; color:var(--light);
  text-decoration:none; padding:6px 0; transition:color .2s;
}
.cta-secondary:hover { color:var(--ink); }

.reveal { opacity:0; transform:translateY(12px); transition:opacity .7s ease, transform .7s ease; }
.reveal.on { opacity:1; transform:none; }

@media(max-width:1024px) {
  .case { grid-template-columns:120px 1fr; gap:32px; }
  .case-outcome { grid-column:1 / -1; margin-left:0; }
}
@media(max-width:760px) {
  nav { padding:18px 32px; }
  .nav-links { display:none; } .hbg { display:flex; }
  .masthead { padding:120px 24px 48px; }
  .mast-top { gap:36px; flex-direction:column; align-items:flex-start; }
  .mast-stats { padding-left:0; padding-top:24px; border-left:none; border-top:1px solid var(--rule); width:100%; }
  .filter-bar { padding:20px 24px; gap:16px; }
  .cases { padding:0 24px; }
  .case { grid-template-columns:1fr; gap:20px; padding:40px 0; }
  .case-meta { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
  .case-file-num, .case-year { margin-bottom:0; }
  .case-pf { grid-template-columns:1fr; gap:18px; }
  .cta-section { padding:80px 24px 96px; }
  footer { padding:56px 32px 36px; }
  .ft-top { grid-template-columns:1fr 1fr; gap:36px; }
}
@media(max-width:540px) {
  footer { padding:48px 24px 32px; }
  .ft-top { grid-template-columns:1fr; gap:28px; }
  .ft-bot { flex-direction:column; align-items:flex-start; }
}
