@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap");

:root{
  --navy:#10293b;
  --navy-deep:#081826;
  --paper:#f6f0e3;
  --paper-dim:#eee5d1;
  --card:#fbf7ec;
  --ink:#1c2a30;
  --muted:#5c6b6a;
  --line:#ddd1ae;
  --brass:#a97c2f;
  --brass-deep:#7c5a20;
  --rope:#8a4b32;
  --good:#2f6b4f;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.65 "Inter",sans-serif;
}
.shell{max-width:1180px;margin:auto;padding:0 32px}
img{max-width:100%}

a{color:var(--brass-deep)}
a:hover{color:var(--rope)}

/* ---------- header ---------- */
header{background:var(--navy);border-bottom:3px solid var(--brass)}
.nav{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#f3ead5;font:700 1.25rem/1 "Fraunces",serif;letter-spacing:-.01em;white-space:nowrap}
.brand .mark{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;background:var(--brass);border-radius:50%;color:var(--navy-deep);font:700 1rem "Fraunces",serif}
.brand small{display:block;font:500 .62rem "IBM Plex Mono",monospace;letter-spacing:.12em;color:#b9c7cf;text-transform:uppercase;margin-top:2px}
.navlinks{display:flex;gap:22px;overflow-x:auto;scrollbar-width:none}
.navlinks::-webkit-scrollbar{display:none}
.navlinks a{color:#d8e3e8;text-decoration:none;font:500 .86rem "Inter";white-space:nowrap}
.navlinks a:hover{color:var(--brass)}

/* ---------- hero ---------- */
.hero{padding:76px 0 56px;border-bottom:1px solid var(--line);background:
  radial-gradient(circle at 88% 12%, rgba(169,124,47,0.12), transparent 60%),
  var(--paper)}
.hero label{font:600 .72rem "IBM Plex Mono",monospace;letter-spacing:.16em;color:var(--brass-deep);text-transform:uppercase}
.hero h1{font:600 clamp(2.8rem,7vw,4.6rem)/1.02 "Fraunces",serif;letter-spacing:-.02em;margin:16px 0 22px;color:var(--navy-deep)}
.hero h1 em{font-style:italic;color:var(--brass-deep)}
.dek{font-size:1.22rem;line-height:1.55;max-width:660px;color:#3d4a49;margin:0 0 22px}
.hero-meta{display:flex;gap:18px;flex-wrap:wrap;font:500 .78rem "IBM Plex Mono",monospace;color:var(--muted);letter-spacing:.03em}

/* ---------- layout ---------- */
.layout{display:grid;grid-template-columns:220px minmax(0,720px);gap:72px;padding:64px 0 96px;align-items:start}
.onpage{position:sticky;top:24px;display:flex;flex-direction:column;gap:11px}
.onpage label{font:600 .68rem "IBM Plex Mono",monospace;letter-spacing:.14em;color:var(--navy);text-transform:uppercase;margin-bottom:4px}
.onpage a{color:var(--muted);text-decoration:none;font-size:.92rem;border-left:2px solid transparent;padding-left:10px}
.onpage a:hover{color:var(--brass-deep);border-left-color:var(--brass)}

article section{margin-bottom:64px}
article h2{font:600 1.9rem/1.15 "Fraunces",serif;color:var(--navy-deep);letter-spacing:-.01em;margin:0 0 8px}
article h2 .num{font:500 .68rem "IBM Plex Mono",monospace;color:var(--brass-deep);letter-spacing:.1em;display:block;margin-bottom:8px}
article h3{font:600 1.12rem "Fraunces",serif;color:var(--navy-deep);margin:0 0 8px}
article p{color:#33403f;margin:0 0 18px;font-size:1.01rem}
.lead{font-size:1.28rem;line-height:1.55;color:var(--navy-deep);font-family:"Fraunces",serif;font-weight:500}
.section-intro{color:#4a5655;font-size:1.02rem;margin-bottom:26px}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px}
.cards .card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass);padding:20px 22px;border-radius:4px}
.cards .card h3{font-size:1.03rem}
.cards .card p{margin:0;font-size:.94rem;color:#41504f}
.cards .card .tag{display:inline-block;font:500 .64rem "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-deep);background:rgba(169,124,47,.12);padding:3px 8px;border-radius:3px;margin-bottom:10px}

/* ---------- table ---------- */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}
table{width:100%;border-collapse:collapse;background:var(--card);font-size:.94rem}
table caption{text-align:left;font:500 .72rem "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 16px 0}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--navy);color:#f3ead5;font:600 .78rem "Inter";text-transform:uppercase;letter-spacing:.04em}
tbody tr:last-child td{border-bottom:none}
tbody th{background:var(--paper-dim);font:600 .88rem "Inter";color:var(--navy-deep);white-space:nowrap}
tbody tr:nth-child(even){background:rgba(169,124,47,.05)}

/* ---------- note / callout ---------- */
.note{background:var(--paper-dim);border-left:4px solid var(--brass);padding:16px 20px;border-radius:0 4px 4px 0;margin:20px 0}
.note p{margin:0;color:#3a4645;font-size:.95rem}
.note p+p{margin-top:8px}
.note strong{color:var(--navy-deep)}

.callout{background:#fff9ec;border:1px dashed var(--brass);padding:18px 20px;border-radius:6px;margin:22px 0}
.callout p{margin:0 0 6px;font-size:.92rem;color:#3a4645}
.callout p:last-child{margin-bottom:0}
.callout .k{font:600 .68rem "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep);display:block;margin-bottom:8px}

/* ---------- glossary ---------- */
dl.glossary{border-top:1px solid var(--line)}
dl.glossary div{border-bottom:1px solid var(--line);padding:18px 0;display:grid;grid-template-columns:190px 1fr;gap:22px}
dl.glossary dt{font:600 1rem "Fraunces",serif;color:var(--navy-deep)}
dl.glossary dd{margin:0;color:#3a4645;font-size:.95rem}
dl.glossary dd .cite{display:block;margin-top:6px;font:500 .78rem "IBM Plex Mono",monospace;color:var(--muted)}

/* ---------- sources ---------- */
.sources{list-style:none;margin:0;padding:0;counter-reset:src}
.sources li{counter-increment:src;position:relative;padding:12px 0 12px 34px;border-bottom:1px solid var(--line);font-size:.93rem;color:#3a4645}
.sources li:last-child{border-bottom:none}
.sources li::before{content:counter(src);position:absolute;left:0;top:12px;width:22px;height:22px;border-radius:50%;background:var(--navy);color:#f3ead5;font:600 .72rem "IBM Plex Mono",monospace;display:flex;align-items:center;justify-content:center}
.sources a{word-break:break-word}
.sources .kind{display:inline-block;margin-left:8px;font:500 .64rem "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-deep);background:rgba(169,124,47,.12);padding:2px 7px;border-radius:3px}

/* ---------- cases page ---------- */
.case{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:26px 28px;margin-bottom:30px}
.case .caselabel{font:600 .66rem "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep)}
.case h3{font-size:1.3rem;margin:8px 0 4px}
.case .cite-line{font:500 .82rem "IBM Plex Mono",monospace;color:var(--muted);margin-bottom:16px}
.case p{font-size:.97rem}
.verify{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}
.verify .row{display:grid;grid-template-columns:160px 1fr;gap:14px;font-size:.88rem;padding:10px 0;border-top:1px solid var(--line)}
.verify .row .k{font:600 .68rem "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-deep)}
.verify .row .v{color:#3a4645}
.status{display:inline-block;font:600 .64rem "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:3px}
.status.verified{background:rgba(47,107,79,.14);color:var(--good)}
.status.qualified{background:rgba(169,124,47,.16);color:var(--brass-deep)}
.status.disputed{background:rgba(138,75,50,.14);color:var(--rope)}

/* ---------- cta / footer ---------- */
.cta{background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:#f0e8d6;padding:42px 44px;border-radius:8px;margin-top:6px}
.cta label{color:var(--brass);font:600 .68rem "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase}
.cta h2{color:#f6f0e3;margin:12px 0 10px;font:600 1.7rem "Fraunces",serif}
.cta p{color:#cfd9d6;margin:0 0 18px;max-width:560px}
.cta a.btn{display:inline-block;background:var(--brass);color:var(--navy-deep);padding:12px 20px;border-radius:4px;text-decoration:none;font-weight:700;font-size:.92rem}
.cta a.btn:hover{background:#c79b4d}

footer{background:var(--navy-deep);color:#aebcc1;padding:44px 0 30px;margin-top:10px}
footer .fgrid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:26px;margin-bottom:20px}
footer .fbrand{font:700 1.1rem "Fraunces",serif;color:#f3ead5}
footer .fcol small{display:block;font:500 .68rem "IBM Plex Mono",monospace;letter-spacing:.1em;color:#7d8f95;text-transform:uppercase;margin-bottom:10px}
footer .fcol a{display:block;color:#c3ced2;text-decoration:none;font-size:.88rem;margin-bottom:7px}
footer .fcol a:hover{color:var(--brass)}
footer .fine{font-size:.8rem;color:#7d8f95;max-width:760px;line-height:1.6}
footer .fine a{color:#a7b6bb}
footer .bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px;font-size:.78rem;color:#7d8f95}

/* ---------- 404 ---------- */
.errpage{min-height:calc(100vh - 300px);padding:120px 0;text-align:left}
.errpage label{color:var(--brass-deep)}
.errpage h1{font:600 clamp(2.6rem,7vw,4.2rem)/1 "Fraunces",serif;color:var(--navy-deep);margin:18px 0}
.errpage p{max-width:480px;color:var(--muted);font-size:1.08rem}
.errpage a.btn{display:inline-block;margin-top:16px;background:var(--navy);color:#f3ead5;padding:12px 20px;border-radius:4px;text-decoration:none;font-weight:600}

/* ---------- responsive ---------- */
@media(max-width:840px){
  .shell{padding:0 20px}
  .navlinks{gap:16px}
  .hero{padding:52px 0 40px}
  .layout{display:block;padding:40px 0 64px}
  .onpage{position:static;flex-direction:row;flex-wrap:wrap;gap:8px 16px;padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:36px}
  .onpage label{width:100%;margin-bottom:2px}
  .onpage a{border-left:none;padding-left:0}
  .cards{grid-template-columns:1fr}
  dl.glossary div{grid-template-columns:1fr;gap:6px}
  .verify .row{grid-template-columns:1fr;gap:4px}
  .cta{padding:32px 24px}
  footer .fgrid{flex-direction:column;gap:22px}
}
