:root{
    --bg:#F6F5F0;
    --bg-2:#EDECE6;
    --ink:#0B0B0A;
    --ink-2:#2A2A28;
    --muted:#6E6E68;
    --line:#D9D7CE;
    --accent:#5E7F4E;
    --accent-ink:#0B1F00;
    --red:#D93B1E;
    --red-soft:#E8836A;
    --green:#3D8F2B;
    --green-mid:#6FAE4E;
    --navy:#1B2A4E;
    --gold:#B68A4E;
    --neutral:#B9B6A9;
    --maxw:1280px;
    --maxw-narrow:900px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{background:var(--bg);color:var(--ink);font-family:'Geist',system-ui,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
  body{overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}

  /* Grain */
  body::before{
    content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.3;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  }

  /* DARK NAV — matches Figma */
  .nav{
    position:sticky;top:0;z-index:50;
    background:#1E1E1E;
    color:#F6F5F0;
  }
  .nav-inner{
    max-width:var(--maxw);margin:0 auto;padding:14px 32px;
    display:flex;align-items:center;justify-content:space-between;gap:24px;
  }
  .brand{display:flex;align-items:center;gap:10px;font-family:'Fraunces';font-weight:500;font-size:20px;letter-spacing:-.01em;color:#F6F5F0}
  .brand .dot{width:10px;height:10px;background:var(--red);border-radius:50%}
  .nav-links{display:flex;gap:4px;flex-wrap:wrap}
  .nav-links a{
    padding:8px 14px;border-radius:999px;font-size:13px;font-weight:500;
    transition:background .18s ease;color:#D9D8D2;cursor:pointer;
  }
  .nav-links a:hover{background:rgba(255,255,255,.08)}
  .nav-links a.active{background:#F6F5F0;color:var(--ink)}
  .nav-meta{font-family:'JetBrains Mono',monospace;font-size:11px;color:#888;letter-spacing:.08em}

  .edge{position:fixed;right:10px;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.35em;color:var(--muted);z-index:5;user-select:none}

  /* PAGE SWITCHING */
  .page{display:none}
  .page.active{display:block;animation:fade .4s ease}
  @keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

  main{max-width:var(--maxw);margin:0 auto;padding:48px 32px 120px;position:relative;z-index:2}

  /* TYPO */
  .eyebrow{
    font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.25em;
    text-transform:uppercase;color:var(--accent-ink);
    background:var(--accent);display:inline-block;padding:3px 9px;border-radius:3px;
  }
  .eyebrow.plain{background:none;color:var(--muted);padding:0;letter-spacing:.22em}
  h1{font-family:'Fraunces';font-weight:400;font-size:clamp(48px,7vw,96px);letter-spacing:-.02em;line-height:1.02;margin-top:18px}
  h1 .green{color:var(--green)}
  h2{font-family:'Fraunces';font-weight:400;font-size:clamp(32px,4.2vw,56px);letter-spacing:-.02em;line-height:1.1}
  h3{font-family:'Fraunces';font-weight:500;font-size:22px;letter-spacing:-.01em;line-height:1.3}
  h4{font-family:'Fraunces';font-weight:500;font-size:20px;letter-spacing:-.005em}
  p{color:var(--ink-2);font-size:15.5px;max-width:70ch}
  em{font-family:'Fraunces';font-style:italic}
  .lede{font-family:'Fraunces';font-size:clamp(18px,1.6vw,22px);line-height:1.5;color:var(--ink-2);max-width:62ch}

  /* ================= HOME ================= */
  /* Full-width hero — photo is the background, text overlaid on lower-left */
  .hero-wrap{
    position:relative;
    width:100vw;
    margin-left:calc(50% - 50vw);  /* break out of main container */
    margin-top:-48px;               /* pull up flush against nav */
    margin-bottom:0;
    height:min(86vh, 780px);
    min-height:560px;
    overflow:hidden;
    background:#1a1410;
  }
  .hero-wrap img{
    position:absolute;inset:0;
    width:100%;height:100%;object-fit:cover;
    filter:saturate(.95) contrast(1.03);
  }
  /* Darken the bottom-left so text is readable over the photo */
  .hero-wrap::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:
      linear-gradient(100deg, rgba(10,8,6,.78) 0%, rgba(10,8,6,.55) 35%, rgba(10,8,6,.15) 60%, rgba(10,8,6,0) 80%),
      linear-gradient(to top, rgba(10,8,6,.55) 0%, rgba(10,8,6,0) 45%);
  }
  .hero-inner{
    position:relative;z-index:2;
    max-width:var(--maxw);margin:0 auto;
    height:100%;padding:56px 32px 64px;
    display:flex;flex-direction:column;justify-content:flex-end;
    color:#F6F5F0;
  }
  .hero-inner .eyebrow{margin-bottom:20px;align-self:flex-start}
  .hero-inner h1{
    color:#F6F5F0;
    font-size:clamp(48px,7.2vw,104px);
    max-width:14ch;
    line-height:1;
  }
  .hero-inner h1 .green{color:var(--accent);font-style:italic}
  .hero-inner p{
    color:#E5E3DA;
    margin-top:28px;
    max-width:52ch;
    font-family:'Fraunces';font-size:clamp(16px,1.3vw,19px);
    line-height:1.55;
  }
  @media (max-width:860px){
    .hero-wrap{height:auto;min-height:500px}
    .hero-inner{padding:40px 24px 48px}
    .hero-inner p{font-size:15px}
  }

  /* Stat strip under hero */
  .stat-strip{
    display:grid;grid-template-columns:repeat(4,1fr);gap:0;
    border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
    margin-top:48px;
  }
  @media (max-width:760px){.stat-strip{grid-template-columns:repeat(2,1fr)}}
  .stat{padding:28px 24px;border-right:1px solid var(--line);position:relative}
  .stat:last-child{border-right:none}
  .stat .n{
    font-family:'Fraunces';font-weight:300;color:var(--red);
    font-size:clamp(48px,4.5vw,64px);letter-spacing:-.03em;line-height:.95;
  }
  .stat .n .u{font-size:.42em;color:var(--red);font-family:'Geist';font-weight:400;vertical-align:.4em;margin-left:3px;letter-spacing:0}
  .stat .lbl{font-size:13.5px;color:var(--ink-2);margin-top:14px;line-height:1.45;max-width:28ch}
  .stat .src{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.08em;margin-top:14px;text-transform:uppercase}

  /* Exhibit 1 card */
  .exhibit{
    margin-top:64px;padding:42px;background:#FFF;border:1px solid var(--line);border-radius:10px;
    display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;
  }
  @media (max-width:860px){.exhibit{grid-template-columns:1fr;padding:28px;gap:28px}}
  .exhibit-left .label{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--red);letter-spacing:.22em;text-transform:uppercase;font-weight:600}
  .exhibit-left h3{font-family:'Fraunces';font-size:26px;font-weight:500;line-height:1.2;margin:10px 0 8px;letter-spacing:-.01em}
  .exhibit-left .sub{font-family:'Fraunces';font-style:italic;color:var(--muted);font-size:14px;margin-bottom:20px}
  .exhibit-chart{width:100%;height:auto}
  .exhibit-right{display:flex;flex-direction:column;gap:18px}
  .exhibit-right .row{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:baseline}
  .exhibit-right .big{font-family:'Fraunces';font-weight:300;font-size:44px;color:var(--red);letter-spacing:-.02em;line-height:.95}
  .exhibit-right p{font-size:13.5px;line-height:1.45}

  /* Editorial pullquote */
  .pullquote{
    max-width:900px;margin:96px auto;text-align:center;
    font-family:'Fraunces';font-size:clamp(28px,3.2vw,42px);line-height:1.22;letter-spacing:-.015em;
  }
  .pullquote .accent{color:var(--red)}
  .pullquote .mono{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.22em;text-transform:uppercase;margin-top:22px;font-weight:400}

  /* Two-column sections */
  .block{padding:64px 0;border-top:1px solid var(--line)}
  .two-col{display:grid;grid-template-columns:1fr 2fr;gap:64px;align-items:start}
  @media (max-width:860px){.two-col{grid-template-columns:1fr;gap:28px}}
  .kicker{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;margin-bottom:14px}
  .two-col p + p{margin-top:14px}
  .assumptions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-top:24px}
  .assumption{padding:24px 26px;background:rgba(255,255,255,.58);border-radius:10px;border-left:3px solid var(--editorial-green);box-shadow:0 12px 38px rgba(27,42,78,.06)}
  .assumption h4{margin-bottom:10px;font-size:18px}
  .assumption p{font-size:14px;line-height:1.6}

  /* ================= DATA PAGE ================= */
  .page-head{margin-bottom:48px}
  .page-head .lede{margin-top:22px}

  .tblock{margin-top:96px}
  .tblock:first-of-type{margin-top:40px}
  .tblock-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;border-bottom:1px solid var(--ink);padding-bottom:16px}
  .tblock-head .l{max-width:60ch}
  .tblock-head .num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
  .tblock-head h2{margin-top:8px;font-size:clamp(24px,2.6vw,34px)}
  .tblock-head .subcap{font-family:'Fraunces';font-style:italic;font-size:15px;color:var(--muted);margin-top:8px;max-width:62ch}
  .tblock-head .src{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.05em;background:var(--bg-2);padding:6px 10px;border-radius:4px;white-space:nowrap}

  .tbl-wrap{margin-top:24px;background:#FFF;border:1px solid var(--line);border-radius:8px;overflow-x:auto}
  table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:620px}
  thead th{text-align:left;padding:14px 18px;background:var(--ink);color:var(--bg);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-family:'Geist'}
  tbody td{padding:12px 18px;border-top:1px solid var(--line);color:var(--ink-2);vertical-align:middle}
  tbody tr:hover{background:var(--bg)}
  td.num{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;text-align:right;color:var(--ink)}
  .tbl-foot{padding:10px 18px;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--muted);background:var(--bg);border-top:1px solid var(--line);letter-spacing:.05em}

  .chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:10.5px;font-family:'JetBrains Mono',monospace;letter-spacing:.05em}
  .chip.hi{background:rgba(217,59,30,.15);color:#7a2612}
  .chip.md{background:rgba(185,182,169,.35);color:#555}
  .chip.lo{background:rgba(61,143,43,.18);color:#1F4716}

  /* Chart grid */
  .viz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
  @media (max-width:980px){.viz-grid{grid-template-columns:1fr}}
  .viz{background:#FFF;border:1px solid var(--line);border-radius:8px;padding:24px;display:flex;flex-direction:column}
  .viz .label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.2em;color:var(--red);text-transform:uppercase;margin-bottom:6px}
  .viz h4{font-size:18px;margin-bottom:4px;line-height:1.3}
  .viz .sub{font-family:'Fraunces';font-style:italic;font-size:13px;color:var(--muted);margin-bottom:16px}
  .viz .chart-img{flex:1;position:relative;min-height:420px}
  .viz .chart-img canvas{display:block}
  .viz .cap{font-size:12.5px;color:var(--ink-2);margin-top:14px;line-height:1.55;padding-top:14px;border-top:1px solid var(--line)}

  /* Interactive idea dark card */
  .ixn{margin-top:32px;background:var(--ink);color:var(--bg);border-radius:8px;padding:28px 30px;border-left:4px solid var(--accent)}
  .ixn .tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
  .ixn h3{color:var(--bg);margin-bottom:10px}
  .ixn p{color:#D9D8D2;font-size:14.5px;max-width:82ch;line-height:1.6}

  /* ================= RESOURCES ================= */
  .res-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--ink);margin-top:40px}
  @media (max-width:1024px){.res-grid{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:600px){.res-grid{grid-template-columns:1fr}}
  .res{padding:30px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}
  .res:hover{background:var(--bg-2)}
  .res:nth-child(4n){border-right:none}
  .res .num{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--muted);letter-spacing:.18em}
  .res .org{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--muted);letter-spacing:.14em;margin-top:4px;display:block}
  .res h4{margin:14px 0 10px;font-family:'Fraunces';font-size:21px;font-weight:500;line-height:1.22;letter-spacing:-.01em}
  .res p{font-size:13.5px;color:var(--ink-2);line-height:1.55;margin-top:10px}
  .res .pull{font-family:'Fraunces';font-style:italic;font-size:15px;color:var(--red);margin-top:14px;line-height:1.4}
  .res a.more{display:inline-block;margin-top:16px;font-size:12px;font-family:'JetBrains Mono',monospace;letter-spacing:.1em;border-bottom:1px solid var(--ink);padding-bottom:2px;color:var(--ink)}

  /* FOOTER */
  footer{border-top:1px solid var(--ink);margin-top:80px;padding:36px 32px;max-width:var(--maxw);margin-left:auto;margin-right:auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted);font-family:'JetBrains Mono',monospace;letter-spacing:.06em;position:relative;z-index:2}

  /* Featured map block (Table 2) */
  .map-block{margin-top:28px;background:#FFF;border:1px solid var(--line);border-radius:8px;padding:28px 30px}
  .map-block .label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.2em;color:var(--red);text-transform:uppercase;margin-bottom:6px}
  .map-block h4{font-family:'Fraunces';font-weight:500;font-size:22px;letter-spacing:-.005em;margin-bottom:6px;line-height:1.3}
  .map-block .sub{font-family:'Fraunces';font-style:italic;font-size:14px;color:var(--muted);margin-bottom:8px;max-width:70ch}
  .map-block .note{font-size:13px;color:var(--ink-2);max-width:70ch;line-height:1.55;margin-bottom:18px}
  #map{height:560px;border:1px solid var(--line);border-radius:6px;background:var(--bg);}
  .map-legend{display:flex;flex-wrap:wrap;gap:32px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
  .map-legend .legend-block{display:flex;flex-direction:column;gap:8px}
  .map-legend .legend-label{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
  .map-legend .legend-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .map-legend .legend-swatch{display:inline-block;width:16px;height:11px;border-radius:2px;opacity:.92}
  .map-legend .legend-circle{display:inline-block;border-radius:50%;background:var(--ink-2);flex-shrink:0}
  .map-legend .legend-hollow{width:12px;height:12px;background:transparent;border:1.5px solid #7a1a1a}
  .map-legend .legend-text{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-2);margin-right:12px}
  .map-block .cap{font-size:12.5px;color:var(--ink-2);margin-top:14px;line-height:1.55;padding-top:14px;border-top:1px solid var(--line);font-family:'Fraunces';font-style:italic}
  .leaflet-popup-content-wrapper{border-radius:4px;background:#FFF;box-shadow:0 2px 8px rgba(0,0,0,0.12);border:1px solid var(--line)}
  .leaflet-popup-content{font-family:'Geist',system-ui,sans-serif;font-size:12.5px;color:var(--ink);margin:12px 16px;line-height:1.55}
  .leaflet-popup-content b{font-family:'Fraunces';font-weight:500;font-size:14px;letter-spacing:-.005em;display:block;margin-bottom:4px}
  .leaflet-popup-content .pop-row{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.04em}
  .leaflet-popup-content .pop-row span{color:var(--ink-2)}
  .leaflet-popup-tip{background:#FFF}

  /* ================= NARRATIVE PAGE ================= */
  .narr-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start;margin-bottom:64px;padding-bottom:48px;border-bottom:1px solid var(--line)}
  @media (max-width:900px){.narr-intro{grid-template-columns:1fr}}
  .narr-intro .meta{display:flex;flex-direction:column;gap:14px}
  .narr-intro .meta .row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
  .narr-intro .meta .row:last-child{border-bottom:none}
  .narr-intro .meta .row .k{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
  .narr-intro .meta .row .v{font-family:'Fraunces';font-size:18px;color:var(--ink)}
  .narr-intro .lede em{font-family:'Fraunces';font-style:italic;color:var(--red)}

  .sb-section-head{display:flex;align-items:baseline;gap:18px;margin:48px 0 24px;flex-wrap:wrap}
  .sb-section-head h3{font-family:'Fraunces';font-weight:500;font-size:32px;letter-spacing:-.01em}
  .sb-section-head .meta{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.18em;text-transform:uppercase}

  .sb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
  @media (max-width:900px){.sb-grid{grid-template-columns:1fr}}
  .sb-act{grid-column:1/-1;margin-top:32px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap}
  .sb-act:first-child{margin-top:0;border-top:none;padding-top:0}
  .sb-act .a-num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;color:var(--red);text-transform:uppercase}
  .sb-act h3{font-family:'Fraunces';font-weight:400;font-size:clamp(22px,2.4vw,30px);letter-spacing:-.01em;margin-top:6px}
  .sb-act .a-meta{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;text-align:right;flex-shrink:0}
  .sb-act .a-meta b{display:block;color:var(--ink);font-family:'Fraunces';font-style:italic;font-size:14px;letter-spacing:0;text-transform:none;margin-top:4px;font-weight:400}
  .sb-frame{background:#FFF;border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
  .sb-frame .visual{aspect-ratio:16/9;background:linear-gradient(180deg,#0E1B12 0%,#070C09 100%);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .sb-frame .visual.dark{background:linear-gradient(180deg,#1a1410 0%,#0a0806 100%)}
  .sb-frame .visual.bg-paper{background:linear-gradient(180deg,#F2EFE5 0%,#E8E4D6 100%)}
  .sb-frame .visual.bg-map{background:#0E1B12}
  .sb-frame .visual svg{width:100%;height:100%;display:block}
  .sb-frame .visual .frame-num{position:absolute;top:14px;left:14px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.2em;color:rgba(246,245,240,.55);text-transform:uppercase;z-index:2}
  .sb-frame .visual.bg-paper .frame-num{color:rgba(11,11,10,.45)}
  .sb-frame .visual .timing{position:absolute;top:14px;right:14px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.1em;color:rgba(246,245,240,.55);background:rgba(0,0,0,.3);padding:3px 8px;border-radius:3px;z-index:2}
  .sb-frame .visual.bg-paper .timing{color:rgba(11,11,10,.6);background:rgba(255,255,255,.6)}
  .sb-frame .body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:10px}
  .sb-frame h4{font-family:'Fraunces';font-weight:500;font-size:18px;letter-spacing:-.005em;line-height:1.25}
  .sb-frame .narration{font-family:'Fraunces';font-style:italic;font-size:14.5px;color:var(--ink);line-height:1.55;padding:10px 14px;border-left:3px solid var(--red);background:var(--bg)}
  .sb-frame .narration em{color:var(--red);font-weight:500}
  .sb-frame .notes{font-size:12.5px;color:var(--ink-2);line-height:1.5}
  .sb-frame .notes .lbl{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-right:6px}

  /* Walkthrough scenarios block */
  .wt-block{margin-top:48px;background:#FFF;border:1px solid var(--line);border-radius:8px;padding:36px 40px}
  .wt-block .tag{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.22em;color:var(--accent-ink);background:var(--accent);padding:4px 10px;border-radius:3px;text-transform:uppercase;margin-bottom:14px}
  .wt-block h3{font-family:'Fraunces';font-weight:400;font-size:clamp(22px,2.4vw,30px);letter-spacing:-.01em;margin-bottom:10px}
  .wt-block .lede{font-size:14.5px;color:var(--ink-2);max-width:62ch;margin-bottom:28px}
  .wt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
  @media (max-width:900px){.wt-grid{grid-template-columns:1fr}}
  .wt-card{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:22px 24px}
  .wt-card .num{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:var(--red);text-transform:uppercase;margin-bottom:6px}
  .wt-card h4{font-family:'Fraunces';font-weight:500;font-size:18px;letter-spacing:-.005em;line-height:1.3;margin-bottom:10px}
  .wt-card p{font-size:13.5px;color:var(--ink-2);line-height:1.55;margin-bottom:10px}
  .wt-card ol{margin:8px 0 0 0;padding-left:18px}
  .wt-card ol li{font-size:13px;color:var(--ink-2);line-height:1.55;margin-bottom:8px}
  .wt-card ol li b{color:var(--ink);font-weight:600}
  .wt-card .trigger{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
  .wt-card .trigger b{color:var(--ink-2);font-family:'Fraunces';font-style:italic;font-size:13px;letter-spacing:0;text-transform:none;font-weight:400}

  .sb-timeline{margin-top:48px;background:#FFF;border:1px solid var(--line);border-radius:8px;padding:28px 30px}
  .sb-timeline h4{font-family:'Fraunces';font-weight:500;font-size:20px;margin-bottom:18px}
  .sb-track{position:relative;height:62px;background:var(--bg);border-radius:4px;border:1px solid var(--line);overflow:hidden}
  .sb-track .seg{position:absolute;top:0;bottom:0;border-right:1px solid rgba(255,255,255,.5);padding:10px 8px 0;font-family:'JetBrains Mono',monospace;font-size:10px;color:#FFF;letter-spacing:.04em;overflow:hidden}
  .sb-track .seg b{font-size:11px;display:block;margin-bottom:2px}
  .sb-track .seg.s1{background:#0E1B12}
  .sb-track .seg.s2{background:#1B2A4E}
  .sb-track .seg.s3{background:#3D8F2B}
  .sb-track .seg.s4{background:#B68A4E}
  .sb-track .seg.s5{background:#D93B1E}
  .sb-track .seg.s6{background:#1a1410}
  .sb-axis{display:flex;justify-content:space-between;margin-top:8px;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.04em}

  /* User-testing summary block on Narrative page */
  .ut-block{margin-top:64px;background:#1E1E1E;color:#F6F5F0;border-radius:8px;padding:36px 40px;border-left:4px solid var(--accent)}
  .ut-block .tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
  .ut-block h3{font-family:'Fraunces';font-weight:500;font-size:28px;color:#F6F5F0;margin-bottom:14px;letter-spacing:-.01em}
  .ut-block p{color:#D9D8D2;font-size:15px;max-width:80ch;line-height:1.6;margin-bottom:18px}
  .ut-block ul{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 32px;margin-top:8px}
  @media (max-width:780px){.ut-block ul{grid-template-columns:1fr}}
  .ut-block ul li{padding-left:22px;position:relative;color:#D9D8D2;font-size:14px;line-height:1.5}
  .ut-block ul li::before{content:"›";position:absolute;left:0;top:0;color:var(--accent);font-weight:700;font-size:16px}
  .ut-block ul li b{color:#F6F5F0;font-weight:500;font-family:'Fraunces'}

  /* ================= LIVE-DATA STATUS PILL ================= */
  .live-status{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;background:var(--bg-2);color:var(--muted);margin-top:16px;border:1px solid var(--line)}
  .live-status .dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}
  .live-status.ok{color:#1F4716;background:rgba(61,143,43,.12);border-color:rgba(61,143,43,.35)}
  .live-status.ok .dot{background:#3D8F2B;animation:pulse 1.8s ease-in-out infinite}
  .live-status.fail{color:#7A2410;background:rgba(217,59,30,.10);border-color:rgba(217,59,30,.35)}
  .live-status.fail .dot{background:var(--red)}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

  /* ================= SCENARIO BUTTONS ================= */
  .scenario-bar{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
  .scenario-bar .scn-lbl{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;align-self:center;margin-right:6px}
  .scenario-bar button{font-family:'Geist',system-ui,sans-serif;font-size:11.5px;font-weight:500;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:#FFF;color:var(--ink-2);cursor:pointer;transition:all .15s ease}
  .scenario-bar button:hover{background:var(--bg-2);border-color:var(--ink-2)}
  .scenario-bar button.active{background:var(--ink);color:#F6F5F0;border-color:var(--ink)}

  /* ============================================================
     DISTINCTIVE FACTOR: EDITORIAL MATERNAL-HEALTH INVESTIGATION
     Restrained, document-led system that preserves original content.
     ============================================================ */
  :root{
    --case-red:#B73A26;
    --case-red-dark:#7A2410;
    --editorial-green:#4F6F46;
    --hospital-blue:#18304A;
    --paper-warm:#F8F4EA;
    --case-shadow:0 22px 70px rgba(27,42,78,.10);
  }
  html{scroll-behavior:smooth;}
  body{
    background:
      radial-gradient(circle at 12% 8%, rgba(183,58,38,.07), transparent 34vw),
      linear-gradient(180deg,#F8F4EA 0%,#F2EFE6 48%,#F6F5F0 100%);
  }
  body::after{
    content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.14;
    background-image:linear-gradient(rgba(11,11,10,.04) 1px, transparent 1px);
    background-size:100% 28px;
    mask-image:linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent);
  }
  .nav{box-shadow:0 10px 36px rgba(0,0,0,.14);border-bottom:1px solid rgba(246,245,240,.10);}
  .brand::after{
    content:"DATA INVESTIGATION";font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;color:#D9D8D2;
    border:1px solid rgba(246,245,240,.22);padding:2px 6px;border-radius:999px;margin-left:4px;
  }
  .hero-wrap{isolation:isolate;box-shadow:inset 0 -80px 140px rgba(0,0,0,.24);}
  .hero-inner h1{position:relative;text-shadow:0 18px 60px rgba(0,0,0,.5);}
  .hero-inner h1 .green{color:inherit;font-style:italic;}
  .hero-inner p{max-width:56ch;}
  main.page{animation:pageEnter .48s cubic-bezier(.2,.8,.2,1);}
  @keyframes pageEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  .stat,.exhibit,.tblock,.viz,.map-block,.sb-frame,.res,.block,.pullquote,.ut-block,.ixn,.sb-timeline{
    transform:translateY(14px);opacity:0;transition:opacity .65s ease, transform .65s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease, border-color .28s ease;
  }
  .is-visible{opacity:1!important;transform:none!important;}
  .stat{background:rgba(255,255,255,.58);backdrop-filter:blur(8px);}
  .stat:hover,.exhibit:hover,.viz:hover,.map-block:hover,.sb-frame:hover,.res:hover,.tbl-wrap:hover{
    box-shadow:var(--case-shadow);border-color:rgba(183,58,38,.26);
  }
  .stat .n{position:relative;display:inline-block;}
  .stat .n::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--case-red);transform:scaleX(.18);transform-origin:left;transition:transform .35s ease;}
  .stat:hover .n::after{transform:scaleX(.72);}

  .page-head,.tblock-head,.sb-section-head{position:relative;}
  .page-head::before,.tblock-head::before,.sb-section-head::before{
    content:"";position:absolute;left:-18px;top:0;bottom:0;width:3px;background:var(--case-red);border-radius:99px;opacity:.8;
  }
  h2,h3{font-variant-ligatures:common-ligatures;}
  h2::selection,h1::selection,p::selection{background:rgba(183,58,38,.20);}

  .tbl-wrap, .exhibit, .viz, .map-block, .sb-frame, .res, .ut-block, .ixn, .sb-timeline{position:relative;overflow:hidden;}
  .tbl-wrap::before,.exhibit::before,.viz::before,.map-block::before,.sb-frame::before,.res::before{
    content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--case-red);opacity:.78;
  }
  tbody tr{transition:background .18s ease;}
  tbody tr:hover{background:var(--bg);}

  .pullquote{position:relative;padding:58px 24px;margin-top:108px;margin-bottom:108px;}
  .pullquote::before,.pullquote::after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:160px;height:1px;background:linear-gradient(90deg,transparent,var(--case-red),transparent);}
  .pullquote::before{top:0}.pullquote::after{bottom:0}
  .edge{color:rgba(183,58,38,.42);text-shadow:none;}
  .nav-links a{position:relative;overflow:hidden;}
  .nav-links a::after{content:"";position:absolute;left:14px;right:14px;bottom:5px;height:1px;background:var(--case-red);transform:scaleX(0);transform-origin:left;transition:transform .2s ease;}
  .nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);}

  /* Drop caps are limited to the main narrative intro only. */
  .narr-intro .lede::first-letter{
    float:left;font-family:'Fraunces';font-size:58px;line-height:.86;margin:6px 10px 0 0;color:var(--case-red);
  }
  .assumption p::first-letter,
  .stat p::first-letter,
  .res p::first-letter,
  .viz p::first-letter{
    float:none;font-size:inherit;line-height:inherit;margin:0;color:inherit;font-family:inherit;
  }
  .exhibit,.viz,.map-block,.sb-frame,.res,.ut-block,.ixn,.sb-timeline{border-radius:10px;}
  .ixn,.ut-block{border-left-color:var(--editorial-green);}
  .ixn .tag,.ut-block .tag,.ut-block ul li::before{color:#AFC59D;}
  .eyebrow{background:var(--editorial-green);color:#F8F4EA;}
  .eyebrow.plain{background:none;color:var(--muted);}
  .chip.hi{background:rgba(183,58,38,.14);color:#7a2612;}
  .scenario-bar button.active{background:var(--ink);color:#F6F5F0;border-color:var(--ink)}

  @media (max-width:760px){.edge{display:none}.page-head::before,.tblock-head::before,.sb-section-head::before{display:none}}
  @media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.stat,.exhibit,.tblock,.viz,.map-block,.sb-frame,.res,.block,.pullquote,.ut-block,.ixn,.sb-timeline{opacity:1!important;transform:none!important}}



/* ===== OPENING + PAGE MOTION: EDITORIAL REVEAL ===== */

body.is-loading{
  overflow:hidden;
}

#opening{
  position:fixed;
  inset:0;
  z-index:9999;
  background:#0B0B0A;
  display:grid;
  place-items:center;
  overflow:hidden;
  pointer-events:none;
}

#opening::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.16;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.45'/></svg>");
}

#opening::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 45%, rgba(217,59,30,.18), transparent 30vw),
    linear-gradient(180deg, rgba(246,245,240,.04), transparent 45%);
  opacity:0;
  animation:openingGlow 2.4s ease forwards;
}

.opening-panel{
  position:absolute;
  top:0;
  bottom:0;
  width:50.5%;
  background:#0B0B0A;
  z-index:3;
  animation:panelOpen 1.15s cubic-bezier(.76,0,.24,1) forwards;
  animation-delay:2.05s;
}

.panel-left{left:0;transform-origin:left;}
.panel-right{right:0;transform-origin:right;}

.opening-mark{
  position:relative;
  z-index:4;
  color:#F6F5F0;
  text-align:center;
  transform:translateY(8px) scale(.985);
  animation:markExit .7s cubic-bezier(.76,0,.24,1) forwards;
  animation-delay:1.95s;
}

.opening-kicker{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.24em;
  color:#B9B6A9;
  opacity:0;
  transform:translateY(8px);
  animation:kickerIn .7s ease forwards;
  animation-delay:.2s;
}

.opening-title{
  margin-top:12px;
  font-family:'Fraunces';
  font-size:clamp(62px,9vw,132px);
  line-height:.92;
  letter-spacing:-.035em;
  opacity:0;
  filter:blur(8px);
  transform:translateY(14px);
  animation:titleReveal 1.2s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:.45s;
}

.opening-title span{
  color:var(--red);
}

.opening-rule{
  width:0;
  height:2px;
  margin:26px auto 0;
  background:linear-gradient(90deg, transparent, var(--red), transparent);
  opacity:.9;
  animation:ruleDraw .9s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:1.05s;
}

.nav,
main.page.active{
  opacity:0;
  transform:translateY(12px);
}

body.opened .nav{
  animation:siteNavIn .7s ease forwards;
}

body.opened main.page.active{
  animation:sitePageIn .9s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:.08s;
}

body.opened .hero-wrap img{
  animation:heroImageIn 1.3s cubic-bezier(.2,.8,.2,1) both;
}

body.opened .hero-inner .eyebrow{
  animation:heroTextIn .75s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:.35s;
}

body.opened .hero-inner h1{
  animation:heroTextIn .85s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:.48s;
}

body.opened .hero-inner p{
  animation:heroTextIn .85s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:.64s;
}

body.opened .stat{
  animation:statLift .75s cubic-bezier(.2,.8,.2,1) both;
}

body.opened .stat:nth-child(1){animation-delay:.82s;}
body.opened .stat:nth-child(2){animation-delay:.9s;}
body.opened .stat:nth-child(3){animation-delay:.98s;}
body.opened .stat:nth-child(4){animation-delay:1.06s;}

@keyframes openingGlow{
  0%{opacity:0}
  45%{opacity:1}
  100%{opacity:.38}
}

@keyframes kickerIn{
  to{opacity:1;transform:none}
}

@keyframes titleReveal{
  to{opacity:1;filter:blur(0);transform:none}
}

@keyframes ruleDraw{
  to{width:min(340px,58vw)}
}

@keyframes markExit{
  to{opacity:0;transform:translateY(-10px) scale(.98);filter:blur(5px)}
}

@keyframes panelOpen{
  to{transform:scaleX(0)}
}

@keyframes siteNavIn{
  to{opacity:1;transform:none}
}

@keyframes sitePageIn{
  to{opacity:1;transform:none}
}

@keyframes heroImageIn{
  from{transform:scale(1.045);filter:saturate(.82) contrast(1.02) brightness(.82)}
  to{transform:scale(1);filter:saturate(.95) contrast(1.03) brightness(1)}
}

@keyframes heroTextIn{
  from{opacity:0;transform:translateY(18px);filter:blur(5px)}
  to{opacity:1;transform:none;filter:blur(0)}
}

@keyframes statLift{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:none}
}

/* small polished interactions after load */
.nav-links a,
.res,
.viz,
.exhibit,
.map-block,
.sb-frame{
  transition:transform .22s ease, background .22s ease, box-shadow .28s ease, border-color .28s ease;
}

body.opened .res:hover,
body.opened .viz:hover,
body.opened .exhibit:hover,
body.opened .map-block:hover,
body.opened .sb-frame:hover{
  transform:translateY(-3px);
}

body.opened .nav-links a:hover{
  transform:translateY(-1px);
}

@media (prefers-reduced-motion: reduce){
  body.is-loading{overflow:auto}
  #opening{display:none!important}
  .nav,main.page.active{opacity:1!important;transform:none!important;animation:none!important}
}
