
    /* Terrain Map · the Survey Sprint deliverable.
       Reads as a page on screen, prints as an editorial document. */
    :root{
      --measure:62ch;
      --limewash:#F2EDE2; --chalk:#FAFAF7; --charcoal:#23201A; --driftwood:#423F38;
      --spruce:#1C3A38; --seaglass:#93A89F; --terracotta:#C9573C; --terracotta-ink:#A8442E;
      --heading:'Fraunces',Georgia,serif;
      --body:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
      --mono:'DM Mono',ui-monospace,monospace;
      --bg:var(--chalk); --fg:var(--driftwood); --head:var(--charcoal);
      --rule:rgba(147,168,159,.34); --card:rgba(147,168,159,.08);
    }
    @media (prefers-color-scheme:dark){:root{
      --bg:#16211E; --fg:#CFC8BA; --head:#ECE6D9; --limewash:#131E1B;
      --rule:rgba(147,168,159,.26); --card:rgba(147,168,159,.09);}}
    *{box-sizing:border-box}
    html{-webkit-text-size-adjust:100%}
    body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);
      font-size:17px;line-height:1.72;font-weight:350}
    .wrap{max-width:940px;margin:0 auto;padding:0 26px}
    p,li{max-width:var(--measure)}
    a{color:var(--terracotta-ink)}
    @media (prefers-color-scheme:dark){a{color:var(--seaglass)}}

    /* Banner */
    .demo-banner{background:var(--seaglass);color:var(--spruce);padding:13px 26px;
      font-size:.83rem;line-height:1.5}
    .demo-banner .inner{max-width:940px;margin:0 auto}
    .demo-banner strong{font-weight:600}

    /* Cover */
    .cover{background:var(--spruce);color:#F2EDE2;padding:82px 26px 66px}
    .cover .inner{max-width:940px;margin:0 auto}
    .kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;
      text-transform:uppercase;color:var(--seaglass);margin:0 0 20px}
    .cover h1{font-family:var(--heading);font-weight:300;font-size:clamp(2.1rem,5.6vw,3.5rem);
      line-height:1.1;margin:0 0 24px;color:#F8F4EA;max-width:19ch}
    .cover .lede{max-width:var(--measure);color:rgba(242,237,226,.88);font-size:1.06rem;margin:0}
    .cover .meta{font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;
      color:var(--seaglass);margin:32px 0 0}

    /* Part markers */
    .part{margin:96px 0 0;padding-top:30px;border-top:2px solid var(--terracotta)}
    .part .pnum{font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;
      text-transform:uppercase;color:var(--terracotta-ink);margin:0 0 10px}
    .part h2{font-family:var(--heading);font-weight:300;font-size:clamp(1.7rem,4vw,2.5rem);
      line-height:1.15;color:var(--head);margin:0 0 14px;max-width:22ch}
    .part .psub{max-width:var(--measure);opacity:.9;margin:0}
    @media (prefers-color-scheme:dark){
      .part{border-top-color:var(--seaglass)}.part .pnum{color:var(--seaglass)}}

    h3{font-family:var(--heading);font-weight:400;font-size:1.5rem;color:var(--head);
      margin:56px 0 12px;line-height:1.25;max-width:26ch}
    h4{font-family:var(--body);font-weight:600;font-size:1rem;color:var(--head);
      margin:34px 0 8px;letter-spacing:.01em}

    /* Quotes */
    blockquote{margin:26px 0;padding:0 0 0 22px;border-left:2px solid var(--terracotta)}
    blockquote p{font-family:var(--heading);font-size:1.22rem;line-height:1.5;
      color:var(--head);font-weight:300;margin:0 0 8px;max-width:44ch}
    blockquote cite{font-family:var(--mono);font-size:.72rem;font-style:normal;
      letter-spacing:.04em;opacity:.72;display:block}

    /* Money table */
    .money{width:100%;border-collapse:collapse;margin:26px 0 20px;font-size:.94rem}
    .money th{text-align:left;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;
      text-transform:uppercase;color:var(--seaglass);font-weight:500;
      border-bottom:1px solid var(--rule);padding:0 14px 9px 0}
    .money td{padding:14px 14px 14px 0;border-bottom:1px solid var(--rule);vertical-align:top}
    .money .basis{font-size:.84rem;opacity:.76}
    .money .amt{font-family:var(--heading);font-size:1.15rem;color:var(--head);
      white-space:nowrap;text-align:right;padding-right:0}
    .money .open{color:var(--terracotta-ink);font-family:var(--body);font-size:.9rem}
    @media (prefers-color-scheme:dark){.money .open{color:#E08163}}
    .total{background:var(--spruce);color:#F2EDE2;border-radius:12px;padding:32px 30px;margin:26px 0}
    .total .num{display:block;font-family:var(--heading);font-size:clamp(1.9rem,5vw,2.8rem);
      line-height:1.1;font-weight:300}
    .total p{max-width:56ch;margin:12px 0 0;font-size:.95rem;opacity:.9;color:rgba(242,237,226,.9)}

    /* Cards */
    .card{background:var(--card);border-left:2px solid var(--rule);border-radius:9px;
      padding:24px 26px;margin:20px 0}
    .card.keystone{border-left-color:var(--terracotta);border-left-width:3px}
    .card h4{margin-top:0}
    .label{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;
      text-transform:uppercase;color:var(--seaglass);margin:18px 0 3px}
    .fill p{color:var(--terracotta-ink);font-style:italic}
    @media (prefers-color-scheme:dark){.fill p{color:#E08163}}

    /* The gates */
    .gate{position:relative;padding:0 0 34px 34px;border-left:2px solid var(--rule);margin-left:8px}
    .gate:last-child{border-left-color:transparent;padding-bottom:0}
    .gate::before{content:"";position:absolute;left:-8px;top:4px;width:14px;height:14px;
      border-radius:50%;background:var(--bg);border:2px solid var(--seaglass)}
    .gate.blocked::before{background:var(--terracotta);border-color:var(--terracotta)}
    .gate .gnum{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;
      text-transform:uppercase;color:var(--seaglass)}
    .gate h4{margin:4px 0 6px;font-size:1.08rem}
    .band{display:inline-block;font-family:var(--mono);font-size:.62rem;letter-spacing:.09em;
      text-transform:uppercase;padding:3px 9px;border-radius:3px;margin-left:8px;
      border:1px solid var(--terracotta);color:var(--terracotta-ink);vertical-align:2px}
    @media (prefers-color-scheme:dark){.band{color:#E08163}}
    .gates-note{border-left:2px solid var(--seaglass);padding-left:15px;font-size:.94rem;margin-top:10px}

    /* Initiatives */
    .init{border-top:1px solid var(--rule);padding:22px 0 4px}
    .init:first-of-type{border-top:none}
    .init .top{display:flex;gap:9px;align-items:baseline;flex-wrap:wrap;margin-bottom:5px}
    .tag{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
      padding:3px 9px;border-radius:3px;background:var(--seaglass);color:var(--spruce)}
    .tag.none{background:transparent;border:1px solid var(--rule);color:var(--fg);opacity:.8}
    .tag.val{background:transparent;border:1px solid var(--terracotta);color:var(--terracotta-ink)}
    @media (prefers-color-scheme:dark){.tag.val{color:#E08163}}
    .init h4{margin:0 0 6px;font-size:1.06rem}
    .init p{font-size:.96rem;margin:8px 0}
    .phase{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
      color:var(--seaglass);margin:44px 0 2px}

    /* First move */
    .firstmove{border:1px solid var(--terracotta);border-radius:12px;padding:34px 32px;margin:34px 0}
    .firstmove .kicker{color:var(--terracotta-ink);margin-bottom:12px}
    .firstmove h3{margin:0 0 14px;font-size:1.7rem}
    @media (prefers-color-scheme:dark){.firstmove .kicker{color:#E08163}}

    .pull{font-family:var(--heading);font-size:clamp(1.3rem,3vw,1.7rem);line-height:1.35;
      font-weight:300;color:var(--head);max-width:30ch;margin:44px 0}

    footer{margin:96px 0 0;padding:30px 0 80px;border-top:1px solid var(--rule);
      font-family:var(--mono);font-size:.72rem;line-height:1.8;opacity:.72}
    footer a{color:inherit}

    @media print{
      .cover{background:none;color:#000;padding:0 0 30px}
      .cover h1,.cover .lede{color:#000}
      .total{background:none;border:1px solid #999;color:#000}
      .total p,.total .num{color:#000}
      .demo-banner{border:1px solid #999}
      body{font-size:11pt}
      .part{page-break-before:always}
    }
    @media (max-width:600px){
      body{font-size:16px}
      .cover{padding:56px 22px 44px}
      .money td,.money th{padding-right:8px}
      .money .basis{display:none}
    }
  