/* =========================================================================
   Two Hills Lab — theAIFolks.com
   Design system ported from the approved v2 mockup (cartographic survey
   report metaphor). Tokens are verbatim from site/design/architecture.md §3.
   ========================================================================= */

/* ============================= TOKENS ============================= */
:root{
  --paper:#F4F5F3;
  --surface:#FFFFFF;
  --surface-2:#EAF0EE;
  --surface-3:#FBFAF6;
  --ink:#1B2220;
  --ink-soft:#4B5650;
  --ink-faint:#7C8580;
  --border:#DBDFDA;
  --border-strong:#C3C9C3;
  --accent:#453D82;
  --accent-ink:#FFFFFF;
  --accent-soft:#ECEAF6;
  --pa:#C15A1E;
  --pa-soft:#F6E7DA;
  --ic:#0E8A6C;
  --ic-soft:#DFF0E8;
  --tier-p:#12283D;
  --tier-r:#23517A;
  --tier-n:#4C7EA6;
  --tier-v:#8FB4CE;
  --tier-v-ink:#12283D;
  --contour:rgba(27,34,32,0.07);
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#14181A;
    --surface:#1B2023;
    --surface-2:#1B2A27;
    --surface-3:#1E2426;
    --ink:#EDEFEC;
    --ink-soft:#B7C0BB;
    --ink-faint:#7E8985;
    --border:#30373A;
    --border-strong:#454E51;
    --accent:#9791DD;
    --accent-ink:#161320;
    --accent-soft:#241F3D;
    --pa:#E17C3D;
    --pa-soft:#3A2718;
    --ic:#2FB68F;
    --ic-soft:#123329;
    --tier-p:#B7D6EE;
    --tier-r:#82ADCC;
    --tier-n:#5C87A8;
    --tier-v:#3D6280;
    --tier-v-ink:#DCEAF4;
    --contour:rgba(237,239,236,0.06);
    color-scheme: dark;
  }
}

/* ============================= BASE ============================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ background:var(--paper); scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.serif{ font-family:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif; }
.mono{ font-family:"SF Mono",ui-monospace,"IBM Plex Mono",Menlo,Consolas,monospace; }
h1,h2,h3,h4{ font-family:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif; font-weight:600; margin:0; text-wrap:balance; color:var(--ink); }
p{ margin:0; }
a{ color:var(--accent); text-decoration-thickness:1px; text-underline-offset:2px; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible{
  outline:2px solid var(--accent); outline-offset:2px; border-radius:2px;
}
button{ font-family:inherit; cursor:pointer; }
img,svg{ max-width:100%; display:block; }
.container{ max-width:1120px; margin:0 auto; padding:0 28px; }
.prose-col{ max-width:700px; }
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--accent); color:var(--accent-ink); padding:8px 14px; z-index:300; }
.skip-link:focus{ left:0; }
@media (max-width:640px){ .container{ padding:0 18px; } }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
}

/* ============================= SITE HEADER / BREADCRUMB / FOOTER ============================= */
.site-header{ border-bottom:1px solid var(--border); background:var(--paper); }
.site-header-inner{ max-width:1120px; margin:0 auto; padding:18px 28px; display:flex; align-items:center; gap:24px; }
.wordmark{ display:flex; flex-direction:column; gap:1px; text-decoration:none; }
.wordmark .name{ font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif; font-size:19px; font-weight:600; letter-spacing:0.01em; color:var(--ink); }
.wordmark .name .ai{ color:#FF2828; }
.wordmark .tag{ font-size:9.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-faint); }
.site-nav{ display:flex; align-items:center; gap:22px; margin-left:auto; }
.site-nav a{ color:var(--ink-soft); text-decoration:none; font-size:14px; }
.site-nav a:hover{ color:var(--ink); }
.site-nav a[aria-current="page"]{ color:var(--ink); font-weight:600; }
.site-nav a.btn, .site-nav a.btn:hover{ color:var(--accent-ink); }
.btn{ display:inline-flex; align-items:center; gap:6px; padding:8px 16px; font-size:13.5px; font-weight:600; border-radius:2px; border:1px solid var(--accent); background:var(--accent); color:var(--accent-ink); text-decoration:none; white-space:nowrap; cursor:pointer; }
.btn-ghost{ background:transparent; color:var(--ink); border:1px solid var(--border-strong); }
.btn-sm{ padding:6px 12px; font-size:12.5px; }
@media (max-width:760px){ .site-nav a:not(.btn){ display:none; } }

.breadcrumb{ border-bottom:1px solid var(--border); background:var(--surface-3); }
.breadcrumb-inner{ max-width:1120px; margin:0 auto; padding:9px 28px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-faint); }
.breadcrumb-inner a{ color:var(--ink-faint); text-decoration:none; }
.breadcrumb-inner a:hover{ color:var(--accent); }
.breadcrumb-inner .sep{ opacity:.5; }
.breadcrumb-url{ margin-left:auto; }

.site-footer{ border-top:1px solid var(--border); background:var(--surface-3); padding:44px 0 30px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; }
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
.footer-grid h2{ font-family:inherit; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:10px; font-weight:600; }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.footer-grid a{ color:var(--ink-soft); text-decoration:none; font-size:13.5px; }
.footer-grid a:hover{ color:var(--accent); }
.footer-grid .planned-link{ color:var(--ink-faint); font-size:13.5px; }
.footer-bottom{ max-width:1120px; margin:36px auto 0; padding:16px 28px 0; border-top:1px solid var(--border); display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:12px; color:var(--ink-faint); }
.footer-bottom-solo{ margin-top:0; padding-top:0; border-top:none; }

/* ============================= PREVIEW BANNER ============================= */
.preview-banner{ background:var(--pa-soft); border-bottom:1px solid var(--pa); color:var(--ink); }
.preview-banner-inner{ max-width:1120px; margin:0 auto; padding:9px 28px; font-size:12.5px; display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.preview-banner .k{ font-weight:700; letter-spacing:0.08em; text-transform:uppercase; font-size:10.5px; color:var(--pa); white-space:nowrap; }

/* ============================= HERO / CONTOUR MOTIF ============================= */
.contour-field{ position:relative; overflow:hidden; }
.contour-field svg.contours{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.contour-field > .container{ position:relative; z-index:1; }
.hero{ padding:56px 0 50px; }
.eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:16px; }
.eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }
.hero h1{ font-size:clamp(27px,3.8vw,42px); line-height:1.15; max-width:17ch; }
.hero .sub{ margin-top:16px; max-width:58ch; font-size:16px; line-height:1.6; color:var(--ink-soft); }
.hero-actions{ margin-top:22px; display:flex; gap:12px; flex-wrap:wrap; }

/* ============================= SECTION SCAFFOLDING ============================= */
section{ padding:52px 0; border-top:1px solid var(--border); }
section.no-rule{ border-top:none; }
.section-head{ margin-bottom:26px; display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.section-head h2{ font-size:22px; }
.section-kicker{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; display:block; }
.section-intro{ font-size:14.5px; color:var(--ink-soft); line-height:1.65; max-width:64ch; }

/* ============================= TIER DIVIDER ============================= */
.tier-divider{ display:flex; align-items:center; gap:14px; margin:44px 0 20px; }
.tier-divider:first-of-type{ margin-top:0; }
.tier-divider .line{ flex:1; height:1px; background:var(--border); }
.tier-divider .lbl{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }

/* ============================= DOMAIN CARD (home) ============================= */
.domain-card{ border:1px solid var(--border-strong); background:var(--surface); padding:0; display:grid; grid-template-columns:1fr 290px; }
@media (max-width:760px){ .domain-card{ grid-template-columns:1fr; } }
.domain-card-main{ padding:28px 30px; }
.status-chip{ display:inline-flex; align-items:center; gap:6px; font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; font-weight:700; padding:3px 9px; border:1px solid var(--pa); color:var(--pa); border-radius:2px; margin-bottom:14px; }
.status-chip .dot{ width:5px; height:5px; border-radius:50%; background:var(--pa); }
.status-chip.planned{ border-style:dashed; border-color:var(--ink-faint); color:var(--ink-faint); }
.status-chip.planned .dot{ background:var(--ink-faint); }
.status-chip.published{ border-color:var(--ic); color:var(--ic); }
.status-chip.published .dot{ background:var(--ic); }
.domain-card h3{ font-size:22px; margin-bottom:10px; }
.domain-card p.desc{ color:var(--ink-soft); font-size:14.5px; line-height:1.6; max-width:56ch; }
.domain-card .meta{ margin-top:15px; font-size:12.5px; color:var(--ink-faint); display:flex; gap:14px; flex-wrap:wrap; }
.domain-card .meta span{ display:inline-flex; align-items:center; gap:5px; }
.domain-card-actions{ margin-top:18px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.link-arrow{ font-size:13.5px; text-decoration:none; font-weight:600; }
.link-arrow:hover{ text-decoration:underline; }
.domain-card-side{ border-left:1px solid var(--border); background:var(--surface-3); padding:24px 26px; display:flex; flex-direction:column; justify-content:center; gap:9px; }
@media (max-width:760px){ .domain-card-side{ border-left:none; border-top:1px solid var(--border); } }
.domain-card-side label{ font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); }
.notify-row{ display:flex; gap:0; }
.notify-row input{ flex:1; min-width:0; padding:9px 10px; font-size:13.5px; border:1px solid var(--border-strong); border-right:none; background:var(--surface); color:var(--ink); border-radius:2px 0 0 2px; }
.notify-row button{ padding:9px 14px; font-size:13px; font-weight:600; border-radius:0 2px 2px 0; border:1px solid var(--accent); background:var(--accent); color:var(--accent-ink); }
.fineprint{ font-size:11.5px; color:var(--ink-faint); line-height:1.5; }

/* ============================= PLANNED DOMAIN GRID ============================= */
.domain-grid-planned{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border); }
@media (max-width:900px){ .domain-grid-planned{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .domain-grid-planned{ grid-template-columns:1fr; } }
.planned-card{ background:var(--surface); padding:22px 22px 20px; display:flex; flex-direction:column; gap:11px; }
.planned-card h3{ font-size:16px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:700; }
.planned-card p.pdesc{ font-size:12.5px; color:var(--ink-soft); line-height:1.55; flex:1; }
.planned-card .notify-row input{ font-size:12px; padding:7px 8px; }
.planned-card .notify-row button{ font-size:11px; padding:7px 9px; }
.planned-card .fineprint{ font-size:10.5px; }

/* ============================= HOW WE WORK STRIP ============================= */
.work-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--border); }
@media (max-width:860px){ .work-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .work-grid{ grid-template-columns:1fr; } }
.work-cell{ padding:22px 20px; border-left:1px solid var(--border); }
.work-grid .work-cell:first-child{ border-left:none; }
@media (max-width:860px){ .work-cell:nth-child(2n+1){ border-left:none; } .work-cell:nth-child(n+3){ border-top:1px solid var(--border); } }
@media (max-width:520px){ .work-cell{ border-left:none !important; } .work-cell:not(:first-child){ border-top:1px solid var(--border); } }
.work-cell .num{ font-family:"SF Mono",ui-monospace,monospace; font-size:11px; color:var(--ink-faint); margin-bottom:10px; }
.work-cell h3{ font-size:15px; margin-bottom:8px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:700; }
.work-cell p{ font-size:13.5px; color:var(--ink-soft); line-height:1.55; }

/* ============================= SUBSCRIBE / TEASER BLOCKS ============================= */
.subscribe-block{ border:1px solid var(--border-strong); background:var(--surface-2); padding:32px 34px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.subscribe-block h2, .subscribe-block h3{ font-size:19px; margin-bottom:6px; }
.subscribe-block p{ font-size:13.5px; color:var(--ink-soft); max-width:44ch; }
.subscribe-form{ display:flex; gap:0; min-width:320px; }
.subscribe-form input{ flex:1; min-width:0; padding:11px 12px; font-size:14px; border:1px solid var(--border-strong); border-right:none; background:var(--surface); color:var(--ink); border-radius:2px 0 0 2px; }
.subscribe-form button{ padding:11px 18px; border-radius:0 2px 2px 0; border:1px solid var(--accent); background:var(--accent); color:var(--accent-ink); font-weight:600; font-size:14px; }
@media (max-width:640px){ .subscribe-form{ min-width:0; width:100%; } }

.problems-teaser{ border:1px solid var(--border-strong); background:var(--surface); padding:30px 32px; display:flex; align-items:center; gap:28px; justify-content:space-between; flex-wrap:wrap; }
.problems-teaser .txt h2{ font-size:19px; margin-bottom:8px; }
.problems-teaser .txt p{ font-size:13.5px; color:var(--ink-soft); max-width:52ch; line-height:1.6; }
.problems-teaser .stat-strip{ display:flex; gap:22px; flex-wrap:wrap; }
.problems-teaser .stat-strip .s{ text-align:center; }
.problems-teaser .stat-strip .s .v{ font-family:"SF Mono",ui-monospace,monospace; font-size:24px; font-weight:600; color:var(--ink); }
.problems-teaser .stat-strip .s .l{ font-size:10.5px; color:var(--ink-faint); letter-spacing:0.04em; text-transform:uppercase; margin-top:4px; }

/* ============================= ARTICLE MASTHEAD ============================= */
.masthead{ padding:40px 0 32px; }
.domain-tag{ font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--pa); font-weight:700; margin-bottom:16px; display:block; }
.masthead h1{ font-size:clamp(26px,3.6vw,40px); max-width:24ch; line-height:1.13; }
.masthead .deck{ margin-top:16px; font-size:18px; line-height:1.55; color:var(--ink-soft); max-width:46ch; }
.masthead .deck em{ font-style:normal; color:var(--ink); border-bottom:1px solid var(--pa); }
.byline-row{ margin-top:22px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-faint); }
.byline-row .sep{ opacity:0.5; }

/* sticky sub-nav */
.subnav-wrap{ position:sticky; top:0; z-index:50; background:var(--paper); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.subnav{ max-width:1120px; margin:0 auto; padding:0 28px; display:flex; gap:0; overflow-x:auto; }
.subnav a{ flex:0 0 auto; padding:12px 16px; font-size:13px; color:var(--ink-faint); text-decoration:none; border-bottom:2px solid transparent; white-space:nowrap; }
.subnav a:hover{ color:var(--ink); }

/* ============================= EXEC SUMMARY PANEL ============================= */
.exec-panel{ border:1px solid var(--border-strong); background:var(--surface-2); padding:30px 32px; }
.exec-panel-head{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.exec-panel-head .k{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; }
.share-row{ display:flex; gap:8px; }
.share-btn{ min-width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--border-strong); background:var(--surface); border-radius:2px; color:var(--ink-soft); text-decoration:none; font-size:13px; padding:0 6px; }
.share-btn:hover{ color:var(--accent); border-color:var(--accent); }
.exec-panel p.summary-text{ font-size:16px; line-height:1.68; color:var(--ink); }
.exec-panel p.summary-text + p.summary-text{ margin-top:14px; }
.stat-grid{ margin-top:24px; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border-strong); border:1px solid var(--border-strong); }
@media (max-width:760px){ .stat-grid{ grid-template-columns:1fr 1fr; } }
.stat-tile{ background:var(--surface); padding:17px 17px 15px; }
.stat-tile .v{ font-family:"SF Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums; font-size:21px; font-weight:600; color:var(--ink); line-height:1.2; }
.stat-tile .l{ margin-top:8px; font-size:12px; color:var(--ink-soft); line-height:1.45; }
.cite{ font-family:"SF Mono",ui-monospace,monospace; font-size:11px; color:var(--accent); text-decoration:none; border:1px solid var(--accent); border-radius:2px; padding:0 4px; white-space:nowrap; }
.cite:hover{ background:var(--accent); color:var(--accent-ink); }

/* ============================= ARTICLE BODY ============================= */
.article-body{ max-width:700px; }
.article-body p{ font-size:16px; line-height:1.72; color:var(--ink); margin:0 0 20px; }
.article-body p:last-child{ margin-bottom:0; }
.article-body em{ font-style:italic; }
.article-body .cite{ margin:0 1px; }
.article-kicker{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin:0 0 18px; display:block; }

/* ============================= USE-CASE ROWS ============================= */
.usecase{ display:grid; grid-template-columns:190px 1fr; gap:22px; padding:18px 0; border-top:1px solid var(--border); }
.usecase:first-of-type{ border-top:none; padding-top:0; }
@media (max-width:640px){ .usecase{ grid-template-columns:1fr; gap:8px; } }
.usecase h3, .usecase h4{ font-size:14px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:700; }
.usecase .body{ font-size:14.5px; line-height:1.65; color:var(--ink-soft); }
.usecase .body .cite{ margin-left:2px; }

/* ============================= QUADRANT MAP ============================= */
.map-wrap{ display:grid; grid-template-columns:1.3fr 1fr; gap:30px; align-items:start; }
@media (max-width:860px){ .map-wrap{ grid-template-columns:1fr; } }
.map-caption{ font-size:14px; color:var(--ink-soft); line-height:1.65; }
.map-caption + .map-caption{ margin-top:12px; }
.map-note{ margin-top:16px; font-size:12px; color:var(--ink-faint); font-style:italic; }
.ic-cards{ margin-top:18px; display:flex; flex-direction:column; gap:12px; }
.ic-card{ border:1px solid var(--border-strong); background:var(--surface); padding:14px 16px; }
.ic-card .head{ display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.ic-card .swatch{ width:9px; height:9px; border-radius:50%; background:var(--ic); flex:none; }
.ic-card .swatch.unverified{ background:transparent; border:1.5px dashed var(--ic); }
.ic-card .head h3, .ic-card .head h5{ font-size:13.5px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:700; margin:0; }
.ic-card .tag{ margin-left:auto; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); border:1px solid var(--border-strong); padding:1px 6px; border-radius:2px; }
.ic-card p{ font-size:13px; color:var(--ink-soft); line-height:1.55; }

.legend-grid{ margin-top:16px; display:grid; grid-template-columns:1fr 1fr; gap:5px 18px; font-size:12px; }
@media (max-width:480px){ .legend-grid{ grid-template-columns:1fr; } }
.legend-row{ display:flex; gap:8px; align-items:baseline; color:var(--ink-soft); line-height:1.5; padding:2px 0; }
.legend-row .n{ font-family:"SF Mono",ui-monospace,monospace; font-size:10.5px; width:16px; height:16px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; flex:none; }
.legend-row .n.pa{ background:var(--pa); }
.legend-row .n.ic{ background:var(--ic); }
.legend-row .n.ic.unverified{ background:transparent; color:var(--ic); border:1.5px dashed var(--ic); }

/* ============================= BLINDSPOTS ============================= */
.blindspot-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); border:1px solid var(--border); }
@media (max-width:760px){ .blindspot-grid{ grid-template-columns:1fr; } }
.blindspot-cell{ background:var(--surface); padding:19px 21px; }
.blindspot-cell h3, .blindspot-cell h4{ font-size:14px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:700; display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.blindspot-cell h3::before, .blindspot-cell h4::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--pa); flex:none; }
.blindspot-cell p{ font-size:13.5px; line-height:1.6; color:var(--ink-soft); }

/* ============================= EVIDENCE LOG ============================= */
.evidence-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.tier-legend{ display:flex; gap:14px; flex-wrap:wrap; font-size:11.5px; color:var(--ink-soft); }
.tier-legend .item{ display:flex; align-items:center; gap:5px; }
.filter-row{ display:flex; gap:6px; margin-bottom:14px; flex-wrap:wrap; }
.filter-chip{ padding:5px 12px; font-size:12px; border:1px solid var(--border-strong); background:var(--surface); color:var(--ink-soft); border-radius:2px; }
.filter-chip[aria-pressed="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); font-weight:600; }
.filter-chip.disabled{ opacity:0.42; cursor:not-allowed; border-style:dashed; }
.evidence-table-wrap{ max-height:520px; overflow:auto; border:1px solid var(--border-strong); }
table.evidence{ width:100%; min-width:640px; border-collapse:collapse; font-size:12.5px; }
table.evidence thead th{ position:sticky; top:0; z-index:1; background:var(--surface-3); text-align:left; font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); padding:9px 12px; border-bottom:1px solid var(--border-strong); font-weight:700; }
table.evidence td{ padding:9px 12px; border-bottom:1px solid var(--border); vertical-align:top; }
table.evidence tbody tr.grp td{ background:var(--surface-3); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; padding:6px 12px; }
table.evidence tr:last-child td{ border-bottom:none; }
table.evidence tr:target td{ background:var(--accent-soft); }
td.n-col{ font-family:"SF Mono",ui-monospace,monospace; color:var(--ink-faint); width:38px; white-space:nowrap; }
td.tier-col{ width:36px; }
td.claim-col{ color:var(--ink); max-width:1px; width:44%; line-height:1.5; }
td.claim-col .row-note{ display:block; margin-top:4px; font-size:11.5px; color:var(--ink-faint); }
td.date-col{ font-family:"SF Mono",ui-monospace,monospace; font-size:11.5px; color:var(--ink-soft); white-space:nowrap; }
td.link-col a{ color:var(--ink-soft); text-decoration:none; font-size:12px; }
td.link-col a:hover{ color:var(--accent); text-decoration:underline; }
.tier-badge{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:2px; font-size:10.5px; font-weight:700; font-family:"SF Mono",ui-monospace,monospace; color:#fff; }
.tier-badge.p{ background:var(--tier-p); }
.tier-badge.r{ background:var(--tier-r); }
.tier-badge.n{ background:var(--tier-n); }
.tier-badge.v{ background:var(--tier-v); color:var(--tier-v-ink); }
@media (prefers-color-scheme: dark){
  .tier-badge.p, .tier-badge.r{ color:#14181A; }
}
.evidence-count{ font-size:12.5px; color:var(--ink-faint); margin-top:10px; }

.gaps-box{ margin-top:24px; border:1.5px dashed var(--border-strong); padding:20px 22px; }
.gaps-box .k{ font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin-bottom:10px; display:block; }
.gaps-box ul{ margin:0; padding-left:18px; display:flex; flex-direction:column; gap:8px; }
.gaps-box li{ font-size:13px; line-height:1.55; color:var(--ink-soft); }

.method-note{ font-size:13.5px; color:var(--ink-soft); line-height:1.65; padding:22px 0; border-top:1px solid var(--border); }
.method-note a{ font-weight:600; }

/* ============================= SUMMARY VIEW ============================= */
.summary-shell{ padding:46px 0 66px; display:flex; justify-content:center; }
.summary-card{ width:100%; max-width:620px; border:1px solid var(--border-strong); background:var(--surface); }
.summary-card-top{ padding:30px 32px 24px; border-bottom:1px solid var(--border); }
.summary-card-top .k{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--pa); font-weight:700; margin-bottom:14px; display:block; }
.summary-card-top h1{ font-size:clamp(23px,3.8vw,29px); line-height:1.28; }
.summary-card-body{ padding:24px 32px; }
.summary-card-body p{ font-size:14.5px; line-height:1.68; color:var(--ink-soft); }
.summary-card-body p + p{ margin-top:12px; }
.summary-stat-grid{ margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border-strong); border:1px solid var(--border-strong); }
.summary-share{ padding:20px 32px 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; border-top:1px solid var(--border); }

/* ============================= DOMAIN LANDING PAGE ============================= */
.domain-masthead{ padding:44px 0 34px; }
.thesis-quote{ margin-top:18px; font-size:18px; line-height:1.55; color:var(--ink); max-width:52ch; font-family:"Iowan Old Style",Georgia,serif; border-left:3px solid var(--pa); padding-left:18px; }
.thesis-quote .qtag{ display:block; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; }
.domain-stat-row{ margin-top:24px; display:flex; gap:26px; flex-wrap:wrap; align-items:center; font-size:12.5px; color:var(--ink-faint); }
.domain-stat-row span{ display:inline-flex; align-items:center; gap:6px; }

.fanout-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border-strong); border:1px solid var(--border-strong); }
@media (max-width:820px){ .fanout-grid{ grid-template-columns:1fr; } }
.fanout-card{ background:var(--surface); padding:26px 24px; display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit; }
a.fanout-card:hover{ background:var(--surface-3); }
.fanout-card .fk{ font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent); font-weight:700; }
.fanout-card h3{ font-size:17px; }
.fanout-card p{ font-size:13px; color:var(--ink-soft); line-height:1.55; flex:1; }
.fanout-card .stat{ font-size:11.5px; color:var(--ink-faint); font-family:"SF Mono",ui-monospace,monospace; }
.fanout-card .go{ font-size:13px; font-weight:600; color:var(--accent); }

.mini-problem-list{ display:flex; flex-direction:column; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:2px; }
.mini-problem-row{ background:var(--surface); padding:13px 15px; display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; }
.mini-problem-row:hover{ background:var(--surface-3); }
.mini-problem-row .t{ flex:1; font-size:13.5px; color:var(--ink); }
.verdict-pill{ font-size:10px; letter-spacing:0.03em; padding:3px 8px; border-radius:2px; font-weight:700; white-space:nowrap; }
.verdict-pill.ic{ background:var(--ic-soft); color:var(--ic); }
.verdict-pill.pa{ background:var(--pa-soft); color:var(--pa); }
.verdict-pill.neutral{ border:1.5px dashed var(--border-strong); color:var(--ink-faint); background:transparent; }
.verdict-pill.open{ border:1.5px dashed var(--ic); color:var(--ic); background:transparent; }

/* ============================= RESEARCH MATERIALS ============================= */
.doc-type-badge{ display:inline-flex; align-items:center; gap:6px; font-size:10.5px; letter-spacing:0.07em; text-transform:uppercase; font-weight:700; color:var(--accent); border:1px solid var(--accent); border-radius:2px; padding:3px 9px; margin-bottom:12px; }
.doc-type-badge.optional{ color:var(--ink-faint); border-color:var(--border-strong); }
.research-doc-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border-strong); border:1px solid var(--border-strong); margin-top:24px; }
@media (max-width:760px){ .research-doc-list{ grid-template-columns:1fr; } }
.doc-card{ background:var(--surface); padding:20px 22px; text-decoration:none; color:inherit; display:flex; flex-direction:column; gap:9px; }
.doc-card:hover{ background:var(--surface-3); }
.doc-card .stat{ font-size:11.5px; color:var(--ink-faint); font-family:"SF Mono",ui-monospace,monospace; }
.doc-card h3{ font-size:15px; }
.doc-card p{ font-size:12.5px; color:var(--ink-soft); line-height:1.5; }

.structural-block{ border-left:3px solid var(--border-strong); padding-left:18px; margin-top:22px; max-width:78ch; }
.structural-block h3, .structural-block h4{ font-size:15px; margin-bottom:8px; }
.structural-block p{ font-size:13.5px; color:var(--ink-soft); line-height:1.65; }
.structural-block p + p{ margin-top:10px; }
.structural-block ul{ margin:10px 0 0; padding-left:18px; }
.structural-block li{ font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin-bottom:6px; }
.structural-block strong{ color:var(--ink); }

.research-section-title{ font-size:22px; margin-bottom:4px; }
.research-section-sub{ font-size:13px; color:var(--ink-faint); margin-bottom:22px; max-width:78ch; line-height:1.6; }
.research-prose{ max-width:78ch; }
.research-prose p{ font-size:14px; line-height:1.7; color:var(--ink-soft); margin:0 0 14px; }
.research-prose p strong{ color:var(--ink); }
.research-prose ul{ margin:0 0 14px; padding-left:20px; }
.research-prose li{ font-size:14px; line-height:1.65; color:var(--ink-soft); margin-bottom:6px; }
.research-prose h3{ font-size:16px; margin:24px 0 10px; }

/* ============================= UNSOLVED PROBLEMS INDEX ============================= */
.problems-intro{ font-size:16px; line-height:1.65; color:var(--ink-soft); max-width:66ch; margin-top:16px; }
.problems-filter-row{ display:flex; gap:8px; flex-wrap:wrap; margin:28px 0 0; }
.problem-card{ border:1px solid var(--border-strong); background:var(--surface); margin-bottom:-1px; }
.problem-card summary{ list-style:none; cursor:pointer; padding:20px 24px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.problem-card summary::-webkit-details-marker{ display:none; }
.problem-card summary .q{ flex:1; min-width:240px; font-family:"Iowan Old Style",Georgia,serif; font-size:17px; color:var(--ink); line-height:1.35; }
.problem-card summary .domain-tag-pill{ font-size:10.5px; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-faint); border:1px solid var(--border-strong); padding:3px 8px; border-radius:2px; white-space:nowrap; }
.problem-card summary .chev{ font-size:11px; color:var(--ink-faint); transition:transform .15s; flex:none; }
.problem-card[open] summary .chev{ transform:rotate(90deg); }
.problem-card .pbody{ padding:0 24px 26px; border-top:1px solid var(--border); }
.problem-card .pbody dl{ margin:18px 0 0; display:grid; gap:16px; }
.problem-card .pbody dt{ font-size:11px; letter-spacing:0.07em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin-bottom:5px; }
.problem-card .pbody dd{ margin:0; font-size:13.5px; line-height:1.65; color:var(--ink-soft); max-width:88ch; }
.problem-card .pbody dd .cite{ margin:0 2px; }
.problem-card .pbody .verdict-line{ margin-top:2px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.problem-card .pbody .deep-dive{ margin-top:16px; font-size:12px; color:var(--ink-faint); }
.problem-card .pbody .deep-dive a{ color:var(--ink-faint); }

/* ============================= METHODOLOGY ============================= */
.quad-table{ width:100%; border-collapse:collapse; border:1px solid var(--border-strong); }
.quad-table th, .quad-table td{ border:1px solid var(--border-strong); padding:16px 18px; text-align:left; vertical-align:top; font-size:13.5px; line-height:1.6; color:var(--ink-soft); }
.quad-table th{ background:var(--surface-3); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; }
.quad-table td .qname{ display:block; font-weight:700; color:var(--ink); font-size:14px; margin-bottom:6px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.quad-table td.hl{ background:var(--ic-soft); }
.quad-table td.hl .qname{ color:var(--ic); }
.quad-table-wrap{ overflow-x:auto; }
.tier-def-list{ display:grid; gap:1px; background:var(--border-strong); border:1px solid var(--border-strong); }
.tier-def{ background:var(--surface); padding:16px 18px; display:flex; gap:14px; align-items:flex-start; }
.tier-def .tier-badge{ flex:none; margin-top:2px; }
.tier-def .t{ font-weight:700; font-size:13.5px; color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.tier-def p{ font-size:13px; color:var(--ink-soft); line-height:1.55; margin-top:3px; }
.step-list{ counter-reset:step; list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.step-list li{ border:1px solid var(--border); background:var(--surface); padding:18px 20px 18px 58px; position:relative; font-size:13.5px; line-height:1.6; color:var(--ink-soft); }
.step-list li::before{ counter-increment:step; content:"0" counter(step); position:absolute; left:20px; top:19px; font-family:"SF Mono",ui-monospace,monospace; font-size:12px; color:var(--ink-faint); }
.step-list li strong{ color:var(--ink); }

/* ============================= ABOUT / GENERIC PROSE ============================= */
.page-prose{ max-width:700px; }
.page-prose p{ font-size:15px; line-height:1.7; color:var(--ink-soft); margin:0 0 16px; }
.page-prose p strong{ color:var(--ink); }
.page-prose ul{ padding-left:20px; margin:0 0 16px; }
.page-prose li{ font-size:14.5px; line-height:1.65; color:var(--ink-soft); margin-bottom:8px; }
.page-prose h2{ font-size:20px; margin:34px 0 12px; }
