/* ═══════════════════════════════════════════════════════
   ZETTLD — Neighborhood Decision Guide (the Town Dossier)
   Shared by guide.html (live) and sample-guide.html (fixture
   through the SAME renderer — the sample can never drift).

   Design DNA inherited from the V2 report system (locked):
   Fraunces / Geist / JetBrains Mono · warm cream hairlines ·
   4-step dark elevation · radius scale {4,6,10,14,18,999} ·
   12px text floor · eyebrow 12px/700/upper/2px track.

   One-job color on THIS surface:
     TEAL  — the life story: fit wins, savings, rising value
     GOLD  — the decision layer: rank & chapter numerals, the
             choose action, the deed
     EMBER — drags & risk: cost premiums vs #1, fit tax,
             flood exposure, softening value
     CREAM — neutral facts (every plain figure, mono)
   ═══════════════════════════════════════════════════════ */

body.gd{
  --gd-bg:#0A0E13; --gd-bg2:#10151C; --gd-raised:#151B24; --gd-raised2:#1A212C;
  --gd-line:rgba(232,220,198,.10); --gd-line2:rgba(232,220,198,.16);
  --gd-cream:#ECE0CA; --gd-cream2:#C9BFA9; --gd-muted:#8B94A1; --gd-muted2:#7E8593;
  --gd-gold:#D4A853; --gd-gold-bri:#E9C57E; --gd-gold-dim:#9C7C36;
  --gd-teal:#62BEAB; --gd-teal-dim:#3E6E62; --gd-ember:#E2733F; --gd-ember-dim:#A84E26;
  --gd-serif:'Fraunces',Georgia,serif;
  --gd-sans:'Geist','Plus Jakarta Sans',system-ui,sans-serif;
  --gd-mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --gd-maxw:1240px; --gd-ease:cubic-bezier(.4,0,.15,1);
  background:var(--gd-bg); color:var(--gd-cream);
  font-family:var(--gd-sans); font-size:17px; line-height:1.6;
}
/* ambient atmosphere — the only decoration on the base canvas */
body.gd::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(120% 70% at 78% -8%,rgba(212,168,83,.10),transparent 55%),radial-gradient(90% 60% at 8% 4%,rgba(98,190,171,.06),transparent 50%)}
body.gd .gd-wrap{position:relative;z-index:1;max-width:var(--gd-maxw);margin:0 auto;padding:0 28px}
body.gd .m{font-family:var(--gd-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
body.gd em{font-style:normal;font-weight:600}   /* our emphasis is weight; italics belong to no one here */
body.gd :focus-visible{outline:2px solid var(--gd-gold);outline-offset:2px;border-radius:3px}
body.gd .skip{position:absolute;left:-999px;top:8px;z-index:120;background:var(--gd-gold);color:#1a1205;padding:8px 14px;border-radius:6px;font-weight:700;text-decoration:none}
body.gd .skip:focus{left:8px}
body.gd main[id]{scroll-margin-top:84px}
body.gd section[id]{scroll-margin-top:84px}

/* ── TOP BAR (div[role=navigation] — the global nav{} rules must not catch this) ── */
body.gd .gd-topbar{position:sticky;top:0;z-index:60;backdrop-filter:blur(14px);background:rgba(10,14,19,.72);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
body.gd .gd-topbar.stuck{border-color:var(--gd-line);background:rgba(10,14,19,.88)}
body.gd .gd-topbar-in{max-width:var(--gd-maxw);margin:0 auto;padding:15px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}
body.gd .gd-brand{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-decoration:none;flex:none}
body.gd .gd-logo{font-family:'Rubik Dirt',var(--gd-serif);font-size:26px;letter-spacing:4px;color:var(--gd-cream);line-height:1}
body.gd .gd-logo i{font-style:normal;color:var(--gd-gold)}
body.gd .gd-brandtag{font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gd-gold);font-weight:600;opacity:.85;white-space:nowrap}
body.gd .gd-mini{display:flex;align-items:center;gap:18px;opacity:0;transform:translateY(-6px);transition:.35s var(--gd-ease);pointer-events:none;min-width:0}
body.gd .gd-topbar.stuck .gd-mini{opacity:1;transform:none;pointer-events:auto}
body.gd .gd-mini-fig{font-family:var(--gd-mono);font-size:13px;color:var(--gd-cream2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.gd .gd-mini-fig b{color:var(--gd-cream);font-weight:500}
body.gd .gd-back{font-size:13px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:var(--gd-muted);text-decoration:none;white-space:nowrap;transition:color .2s;position:relative;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body.gd .gd-back::before{content:"";position:absolute;inset:-8px}   /* invisible 44px hit extension */
body.gd .gd-back:hover,body.gd .gd-back:focus-visible{color:var(--gd-cream)}
@media(max-width:700px){
  body.gd .gd-brandtag{display:none}   /* the tag + back link can't share a phone-width row */
}
@media(max-width:640px){
  body.gd .gd-brand{transition:opacity .35s var(--gd-ease),visibility .35s}
  body.gd .gd-topbar.stuck .gd-brand{opacity:0;visibility:hidden}
}

/* ── SAMPLE BANNER (fixture mode only) ── */
body.gd .gd-samplebar{background:linear-gradient(180deg,rgba(98,190,171,.12),rgba(98,190,171,.04));border-bottom:1px solid rgba(98,190,171,.28);padding:10px 0;text-align:center;font-size:13.5px;color:var(--gd-cream2)}
body.gd .gd-samplebar b{color:var(--gd-teal);font-weight:600;letter-spacing:1.5px;text-transform:uppercase;font-size:12px;margin-right:10px}

/* ── THE DOCKET RULE — the document's signature device: one thick stroke, one hairline ── */
body.gd .gd-coverrule{border-top:2px solid rgba(212,168,83,.55);position:relative;margin-bottom:26px}
body.gd .gd-coverrule::after{content:"";position:absolute;top:3px;left:0;right:0;border-top:1px solid var(--gd-line2)}

/* ── COVER — title plate: the verdict + provenance, the at-a-glance plate + contents ── */
body.gd .gd-hero{padding:44px 0 54px}
body.gd .gd-cover .gd-coverrule{margin-bottom:34px}
body.gd .gd-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start}
body.gd .gd-hero-grid > *{min-width:0}
body.gd .gd-provenance{margin-top:26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gd-muted);}
body.gd .gd-cover-side{display:flex;flex-direction:column;gap:18px}
body.gd .gd-figs-k{padding:12px 22px 0;font-size:11px;letter-spacing:2.4px;text-transform:uppercase;font-weight:700;color:var(--gd-gold-dim)}
/* contents — the six-chapter spine, dotted leaders like a bound TOC */
body.gd .gd-contents{border:1px solid var(--gd-line);border-radius:14px;background:var(--gd-bg2);padding:16px 22px 14px}
body.gd .gd-contents-k{font-size:11px;letter-spacing:2.4px;text-transform:uppercase;font-weight:700;color:var(--gd-gold-dim);margin-bottom:8px}
body.gd .gd-toc{display:flex;align-items:baseline;gap:12px;padding:7px 0;text-decoration:none;min-height:auto}
body.gd .gd-toc + .gd-toc{border-top:1px solid rgba(232,220,198,.05)}
body.gd .gd-toc-num{font-family:var(--gd-serif);font-size:13px;color:var(--gd-gold);letter-spacing:.08em;flex:none}
body.gd .gd-toc-t{font-size:13.5px;font-weight:600;color:var(--gd-cream2);white-space:nowrap;transition:color .2s}
body.gd .gd-toc-leader{flex:1;border-bottom:1px dotted rgba(138,149,165,.35);position:relative;top:-3px;min-width:24px}
body.gd .gd-toc-arrow{font-size:12px;color:var(--gd-muted2);transition:color .2s,transform .25s var(--gd-ease)}
body.gd .gd-toc:hover .gd-toc-t,body.gd .gd-toc:focus-visible .gd-toc-t{color:var(--gd-cream)}
body.gd .gd-toc:hover .gd-toc-arrow,body.gd .gd-toc:focus-visible .gd-toc-arrow{color:var(--gd-gold);transform:translateY(2px)}
body.gd .gd-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:24px}
body.gd .gd-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--gd-gold);box-shadow:0 0 10px var(--gd-gold);flex:none}
body.gd .gd-eyebrow span{font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gd-muted);font-weight:700}
body.gd .gd-verdict{font-family:var(--gd-serif);font-weight:300;font-size:clamp(2.1rem,4.9vw,3.7rem);line-height:1.08;letter-spacing:-.02em;color:var(--gd-cream);max-width:19ch;text-wrap:balance}
body.gd .gd-verdict .w-fit{color:var(--gd-teal)}
body.gd .gd-verdict .w-cost{color:var(--gd-cream);white-space:nowrap}
body.gd .gd-verdict .w-you{color:var(--gd-gold)}
body.gd .gd-verdict .m{font-weight:400;font-size:.92em;letter-spacing:-.03em}
body.gd .gd-hero-sub{margin-top:22px;font-size:15.5px;color:var(--gd-cream2);max-width:52ch;line-height:1.65}
/* the stakes stack — KPI rows, ledger anatomy (never tile grids) */
body.gd .gd-figs{border:1px solid var(--gd-line);border-radius:14px;background:linear-gradient(180deg,var(--gd-raised),var(--gd-bg2));overflow:hidden}
body.gd .gd-fig{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:15px 22px}
body.gd .gd-fig + .gd-fig{border-top:1px solid var(--gd-line)}
body.gd .gd-fig-l{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--gd-muted);flex:none}
body.gd .gd-fig-v{font-family:var(--gd-mono);font-variant-numeric:tabular-nums;font-size:clamp(1.15rem,1.7vw,1.5rem);letter-spacing:-.03em;color:var(--gd-cream);text-align:right;min-width:0}
body.gd .gd-fig-v small{font-size:.62em;color:var(--gd-muted);letter-spacing:0}
body.gd .gd-fig-v.is-teal{color:var(--gd-teal)}

/* ── STATUS LINE (aria-live) + skeleton ── */
body.gd .gd-status{padding:14px 0 0;font-size:14px;color:var(--gd-gold);min-height:1.4em}
body.gd .gd-skel{margin:34px 0 0;border:1px solid var(--gd-line);border-radius:14px;overflow:hidden}
body.gd .gd-skel-row{height:52px;position:relative;overflow:hidden;background:var(--gd-bg2)}
body.gd .gd-skel-row + .gd-skel-row{border-top:1px solid var(--gd-line)}
body.gd .gd-skel-row::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(236,224,202,.05),transparent);animation:gdShimmer 1.6s infinite}
@keyframes gdShimmer{to{transform:translateX(100%)}}

/* ── CHAPTER BANDS — each opens on its own docket rule + running head ── */
body.gd .gd-band{padding:0 0 68px;position:relative}
body.gd .gd-runhead{border-top:2px solid rgba(212,168,83,.55);position:relative;padding-top:12px;margin-bottom:36px;
  display:flex;align-items:baseline;justify-content:space-between;gap:16px}
body.gd .gd-runhead::before{content:"";position:absolute;top:3px;left:0;right:0;border-top:1px solid var(--gd-line2)}
body.gd .gd-run-ch{font-size:11px;letter-spacing:2.6px;text-transform:uppercase;font-weight:700;color:var(--gd-gold-dim)}
body.gd .gd-run-folio{font-family:var(--gd-mono);font-size:11px;letter-spacing:.14em;color:var(--gd-muted2)}
body.gd .gd-band-2col{display:grid;grid-template-columns:.72fr 1.28fr;gap:60px;align-items:start}
body.gd .gd-band-2col > *{min-width:0}   /* a wide child (the board's scroll region) must scroll inside its column, never widen the page */
body.gd .gd-band-head{position:sticky;top:96px}
body.gd .gd-band-title{font-family:var(--gd-serif);font-weight:400;font-size:clamp(1.55rem,2.6vw,2.2rem);line-height:1.14;letter-spacing:-.01em;color:var(--gd-cream);text-wrap:balance;margin:0 0 14px}
body.gd .gd-band-lede{font-size:14.5px;line-height:1.65;color:var(--gd-muted);max-width:34ch}
/* faint giant numeral — the chapter watermark */
body.gd .gd-band[data-num]::after{content:attr(data-num);position:absolute;top:64px;right:8px;z-index:0;pointer-events:none;
  font-family:var(--gd-serif);font-weight:400;font-size:clamp(110px,12vw,150px);line-height:1;color:rgba(212,168,83,.05)}
body.gd .gd-band > .gd-wrap{position:relative;z-index:1}
/* chapter takeaway — the Layer-1 sentence */
body.gd .gd-take{font-family:var(--gd-serif);font-weight:350;font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.4;color:var(--gd-cream);margin:0 0 24px;max-width:44ch;text-wrap:pretty}
body.gd .gd-take b{font-weight:500;color:var(--gd-gold)}
body.gd .gd-take .t{color:var(--gd-teal);font-weight:500}

/* ── THE BOARD (chapter 01) — one set of cells, two forms. The wide table lives on
   desktop; below 1200px it becomes stacked town cards. Nothing scrolls sideways. ── */
body.gd .gd-board-wide{border:1px solid var(--gd-line);border-radius:14px;background:linear-gradient(180deg,var(--gd-raised),var(--gd-bg2));overflow:hidden}
body.gd .gd-board-stacked{display:none;border:1px solid var(--gd-line);border-radius:14px;background:linear-gradient(180deg,var(--gd-raised),var(--gd-bg2));overflow:hidden}
@media(max-width:1199px){
  body.gd .gd-board-wide{display:none}
  body.gd .gd-board-stacked{display:block}
}
body.gd .gd-bstack{padding:16px 20px 12px}
body.gd .gd-bstack + .gd-bstack{border-top:1px solid var(--gd-line2)}
body.gd .gd-bstack.lead-fit{box-shadow:inset 3px 0 0 var(--gd-teal)}
body.gd .gd-bstack-head{display:flex;align-items:center;gap:2px;margin-bottom:8px;flex-wrap:wrap}
body.gd .gd-bstack-rows{display:flex;flex-direction:column}
body.gd .gd-bstack-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:6px 0;font-size:13.5px;color:var(--gd-muted)}
body.gd .gd-bstack-row + .gd-bstack-row{border-top:1px solid rgba(232,220,198,.05)}
body.gd .gd-bstack-row > .m{text-align:right;font-size:13.5px;color:var(--gd-cream)}
body.gd .gd-bstack-row .gd-delta{display:inline;margin-left:6px;font-size:12px}
body.gd table.gd-board{width:100%;border-collapse:collapse}
body.gd .gd-board th{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--gd-muted);text-align:right;padding:14px 18px;border-bottom:1px solid var(--gd-line2);white-space:nowrap}
body.gd .gd-board th:first-child{text-align:left}
body.gd .gd-board td{padding:16px 18px;border-bottom:1px solid var(--gd-line);text-align:right;font-family:var(--gd-mono);font-variant-numeric:tabular-nums;font-size:15px;color:var(--gd-cream);white-space:nowrap}
body.gd .gd-board tr:last-child td{border-bottom:none}
body.gd .gd-board td:first-child{text-align:left;font-family:var(--gd-sans)}
body.gd .gd-rank{font-family:var(--gd-serif);color:var(--gd-gold);font-size:15px;letter-spacing:.08em;margin-right:12px}
body.gd .gd-town{font-weight:600;font-size:15.5px;color:var(--gd-cream)}
body.gd .gd-lev{display:inline-block;margin-left:10px;font-family:var(--gd-sans);font-size:12px;font-weight:600;letter-spacing:.4px;padding:3px 9px;border-radius:999px;border:1px solid var(--gd-line2);color:var(--gd-muted)}
body.gd .gd-lev.is-buyer{color:var(--gd-teal);border-color:rgba(98,190,171,.4)}
body.gd .gd-lev.is-seller{color:var(--gd-ember);border-color:rgba(226,115,63,.4)}
body.gd .gd-delta{display:block;font-size:12px;margin-top:3px}
body.gd .is-save{color:var(--gd-teal)}
body.gd .is-drag{color:var(--gd-ember)}
body.gd .gd-dim{color:var(--gd-muted)}
body.gd .gd-board .lead-fit{box-shadow:inset 3px 0 0 var(--gd-teal)}
body.gd .gd-board-note{padding:13px 18px;font-size:12.5px;font-family:var(--gd-sans);color:var(--gd-muted);border-top:1px solid var(--gd-line)}
body.gd .gd-board-note b{color:var(--gd-cream2);font-weight:600}

/* ── LEDGER (chapter 02) — bank-statement anatomy ── */
body.gd .gd-ledger{border:1px solid var(--gd-line);border-radius:14px;background:linear-gradient(180deg,var(--gd-raised),var(--gd-bg2));--pad:24px;overflow:hidden}
body.gd .gd-lg-town{padding:18px var(--pad) 6px;display:flex;align-items:baseline;justify-content:space-between;gap:14px}
body.gd .gd-lg-town + .gd-lg-town{border-top:1px solid var(--gd-line2)}
body.gd .gd-lg-name{font-weight:600;font-size:15.5px}
body.gd .gd-lg-name .gd-rank{font-size:14px}
body.gd .gd-lg-mo{font-family:var(--gd-mono);font-variant-numeric:tabular-nums;font-size:clamp(1.2rem,1.9vw,1.55rem);letter-spacing:-.03em}
body.gd .gd-lg-mo small{font-size:.58em;color:var(--gd-muted)}
body.gd .gd-lg-rows{padding:2px var(--pad) 16px}
body.gd .gd-lg-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0;font-size:13.5px;color:var(--gd-cream2)}
body.gd .gd-lg-row > span:first-child{position:relative;flex:1;overflow:hidden}
body.gd .gd-lg-row > span:first-child::after{content:"";position:absolute;bottom:.35em;margin-left:8px;width:100%;border-bottom:1px dotted rgba(138,149,165,.4)}
body.gd .gd-lg-row .m{font-size:13.5px;color:var(--gd-cream)}
body.gd .gd-lg-row .m.is-save{color:var(--gd-teal)}
body.gd .gd-lg-row .m.is-drag{color:var(--gd-ember)}

/* ── BUYING POWER (chapter 03) — the sqft hero row ── */
body.gd .gd-bp{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:1px;background:var(--gd-line);border:1px solid var(--gd-line);border-radius:14px;overflow:hidden}
body.gd .gd-bp-cell{background:var(--gd-bg2);padding:20px 20px 16px}
body.gd .gd-bp-town{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--gd-muted);margin-bottom:10px;display:flex;align-items:baseline;gap:8px}
body.gd .gd-bp-town .gd-rank{font-size:13px;margin-right:0}
body.gd .gd-bp-sqft{font-family:var(--gd-serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.3rem);letter-spacing:-.02em;color:var(--gd-cream);line-height:1}
body.gd .gd-bp-sqft small{font-family:var(--gd-sans);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--gd-muted);margin-left:6px}
body.gd .gd-bp-rows{margin-top:12px;border-top:1px solid var(--gd-line);padding-top:10px}
body.gd .gd-bp-row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--gd-muted);padding:3px 0}
body.gd .gd-bp-row .m{font-size:12.5px;color:var(--gd-cream2)}

/* ── THE LIFE (chapter 04) — priority cards + fact strips ── */
body.gd .gd-life{display:flex;flex-direction:column;gap:14px}
body.gd .gd-li{border:1px solid var(--gd-line);border-radius:14px;background:var(--gd-bg2);padding:20px 24px}
body.gd .gd-li.is-pri{border-color:rgba(212,168,83,.3);background:linear-gradient(135deg,rgba(212,168,83,.05),var(--gd-bg2) 46%)}
body.gd .gd-li-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
body.gd .gd-li-label{font-weight:600;font-size:15.5px;color:var(--gd-cream)}
body.gd .gd-li-pri{display:inline-block;margin-left:10px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--gd-gold);border:1px solid rgba(212,168,83,.4);border-radius:999px;padding:2px 9px;vertical-align:2px}
body.gd .gd-li-win{font-size:13px;color:var(--gd-teal);font-weight:600}
body.gd .gd-li-win.is-tie,body.gd .gd-li-win.is-open{color:var(--gd-muted);font-weight:500}
body.gd .gd-li-towns{display:flex;flex-direction:column;gap:7px}
body.gd .gd-li-town{display:grid;grid-template-columns:minmax(110px,.9fr) auto 1fr;align-items:center;gap:14px;font-size:13.5px}
body.gd .gd-li-town .nm{color:var(--gd-cream2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.gd .gd-li-town.is-win .nm{color:var(--gd-cream);font-weight:600}
body.gd .gd-li-town .star{color:var(--gd-teal);margin-left:5px}
body.gd .gd-bars{display:inline-flex;gap:3px}
body.gd .gd-bars i{width:17px;height:5px;border-radius:2px;background:var(--gd-raised2)}
body.gd .gd-bars i.on{background:var(--gd-teal-dim)}
body.gd .gd-li-town.is-win .gd-bars i.on{background:var(--gd-teal)}
body.gd .gd-li-town .st{font-size:12.5px;color:var(--gd-muted);text-align:right}
body.gd .gd-li-town .st.is-flag{font-style:italic}
body.gd .gd-li-why{margin-top:11px;font-size:13px;line-height:1.55;color:var(--gd-muted);border-top:1px solid var(--gd-line);padding-top:10px}
/* the depth fact strip (drawer content) */
body.gd .gd-facts{display:flex;flex-direction:column;gap:12px;padding-top:6px}
body.gd .gd-fact-town{border-left:2px solid var(--gd-teal-dim);padding:2px 0 2px 16px}
body.gd .gd-fact-name{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--gd-cream2);margin-bottom:5px}
body.gd .gd-fact-line{font-size:13.5px;line-height:1.7;color:var(--gd-muted)}
body.gd .gd-fact-line .m{font-size:13px;color:var(--gd-cream2)}
body.gd .gd-fact-line .sep{margin:0 7px;color:var(--gd-muted2)}
body.gd .gd-schools-list{margin:6px 0 0;padding:0;list-style:none}
body.gd .gd-schools-list li{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--gd-cream2);padding:4px 0;border-bottom:1px dotted rgba(138,149,165,.25)}
body.gd .gd-schools-list li:last-child{border-bottom:none}
body.gd .gd-schools-list .m{color:var(--gd-cream)}

/* ── FIVE YEARS OUT (chapter 05) — receipt cards. Cards in the same band share literal
   row TRACKS (subgrid) so every line aligns with its neighbours; browsers without
   subgrid fall back to independent cards, which merely lose the cross-card alignment. ── */
body.gd .gd-out{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
body.gd .gd-ot{border:1px solid var(--gd-line);border-radius:14px;background:var(--gd-bg2);padding:20px 22px;display:flex;flex-direction:column;gap:0}
@supports(grid-template-rows:subgrid){
  body.gd .gd-out{row-gap:0}
  body.gd .gd-ot{display:grid;grid-template-rows:subgrid;grid-row:span var(--ot-span,8);margin-top:14px}
  body.gd .gd-ot-rows{display:contents}
  body.gd .gd-ot-rows > .gd-ot-row:first-child{border-top:1px solid var(--gd-line);padding-top:12px;margin-top:12px}
  body.gd .gd-receipt:empty{border:0;padding:0;margin:0}
}
body.gd .gd-ot-town{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--gd-muted);margin-bottom:10px}
body.gd .gd-ot-val{font-family:var(--gd-mono);font-variant-numeric:tabular-nums;font-size:clamp(1.1rem,1.6vw,1.35rem);letter-spacing:-.03em;color:var(--gd-cream);line-height:1.2;min-height:2.4em}
body.gd .gd-ot-trend{display:inline-block;margin-left:8px;font-family:var(--gd-sans);font-size:12px;font-weight:600;letter-spacing:.4px;vertical-align:2px}
body.gd .gd-ot-trend.is-up{color:var(--gd-teal)}
body.gd .gd-ot-trend.is-soft{color:var(--gd-ember)}
body.gd .gd-ot-trend.is-steady{color:var(--gd-muted)}
body.gd .gd-ot-rows{margin-top:12px;border-top:1px solid var(--gd-line);padding-top:8px}
body.gd .gd-ot-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--gd-muted);padding:4px 0}
body.gd .gd-ot-row .m{font-size:13px;color:var(--gd-cream2)}
body.gd .gd-ot-row .m.is-teal{color:var(--gd-teal)}
body.gd .gd-ot-row .m.is-ember{color:var(--gd-ember)}
body.gd .gd-receipt{margin-top:12px;border-top:1px solid var(--gd-line);padding-top:10px;font-size:12.5px;line-height:1.6;color:var(--gd-muted)}
body.gd .gd-receipt .m{font-size:12.5px;color:var(--gd-cream2)}

/* ── MAKE THE CALL (chapter 06) — duo + the deed ── */
body.gd .gd-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:26px}
body.gd .gd-duo-card{border:1px solid var(--gd-line2);border-radius:14px;padding:22px 24px;background:var(--gd-bg2)}
body.gd .gd-duo-card.is-fit{border-color:rgba(98,190,171,.35);background:linear-gradient(135deg,rgba(98,190,171,.06),var(--gd-bg2) 50%)}
body.gd .gd-duo-card.is-value{border-color:rgba(212,168,83,.35);background:linear-gradient(135deg,rgba(212,168,83,.06),var(--gd-bg2) 50%)}
body.gd .gd-duo-card.is-both{grid-column:1/-1;border-color:rgba(98,190,171,.4);background:linear-gradient(120deg,rgba(98,190,171,.07),rgba(212,168,83,.05) 60%,var(--gd-bg2))}
body.gd .gd-duo-k{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--gd-muted);margin-bottom:8px}
body.gd .gd-duo-card.is-fit .gd-duo-k{color:var(--gd-teal)}
body.gd .gd-duo-card.is-value .gd-duo-k{color:var(--gd-gold)}
body.gd .gd-duo-town{font-family:var(--gd-serif);font-weight:400;font-size:clamp(1.4rem,2.2vw,1.9rem);color:var(--gd-cream);line-height:1.1}
body.gd .gd-duo-note{margin-top:8px;font-size:13.5px;color:var(--gd-muted);line-height:1.55}
body.gd .gd-duo-note .m{color:var(--gd-cream2);font-size:13px}
/* the deed — the page's signature artifact, framed like a certificate */
body.gd .gd-deed{position:relative;border:1px solid var(--gd-line2);border-radius:4px;background:linear-gradient(180deg,var(--gd-raised),var(--gd-bg2));padding:38px 42px 34px;box-shadow:inset 0 0 0 4px var(--gd-bg2),inset 0 0 0 5px var(--gd-line)}
body.gd .gd-deed::before{content:"";position:absolute;inset:10px;pointer-events:none;
  background:
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 0 0/18px 1px,
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 0 0/1px 18px,
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 100% 0/18px 1px,
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 100% 0/1px 18px,
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 0 100%/18px 1px,
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 0 100%/1px 18px,
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 100% 100%/18px 1px,
    linear-gradient(var(--gd-gold-dim),var(--gd-gold-dim)) 100% 100%/1px 18px;
  background-repeat:no-repeat;opacity:.65}
body.gd .gd-deed-k{font-size:12px;letter-spacing:3px;text-transform:uppercase;font-weight:700;color:var(--gd-gold);margin-bottom:20px;text-align:center}
body.gd .gd-deed-line{display:flex;align-items:baseline;justify-content:center;gap:14px;flex-wrap:wrap;text-align:center}
body.gd .gd-deed-lbl{font-size:14px;color:var(--gd-muted)}
body.gd .gd-deed-slot{min-width:11ch;border-bottom:1px solid var(--gd-gold-dim);padding:0 14px 4px;font-family:var(--gd-serif);font-weight:400;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.1;color:var(--gd-cream);text-align:center}
body.gd .gd-deed-slot.is-open{color:transparent;user-select:none}
body.gd .gd-deed-date{margin-top:14px;text-align:center;font-family:var(--gd-mono);font-size:12.5px;letter-spacing:.06em;color:var(--gd-muted)}
body.gd .gd-deed-seal{position:absolute;top:22px;right:26px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(212,168,83,.5);background:radial-gradient(circle at 34% 30%,rgba(233,197,126,.32),rgba(212,168,83,.12));display:flex;align-items:center;justify-content:center;opacity:.35;transition:opacity .5s var(--gd-ease)}
body.gd .gd-deed.is-signed .gd-deed-seal{opacity:1}
body.gd .gd-deed-seal svg{width:16px;height:16px;color:var(--gd-gold)}
body.gd .gd-deed-note{margin-top:18px;text-align:center;font-size:13px;color:var(--gd-muted);max-width:52ch;margin-left:auto;margin-right:auto;line-height:1.6}
/* choose buttons */
body.gd .gd-choose{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}
body.gd .gd-choose-btn{font-family:var(--gd-sans);font-weight:700;font-size:14px;color:#1A130A;background:linear-gradient(180deg,var(--gd-gold-bri),var(--gd-gold));padding:11px 20px;border-radius:10px;border:none;cursor:pointer;min-height:44px;touch-action:manipulation;box-shadow:0 4px 16px -6px rgba(212,168,83,.5);transition:filter .2s}
body.gd .gd-choose-btn:hover,body.gd .gd-choose-btn:focus-visible{filter:brightness(1.07)}
body.gd .gd-choose-btn[disabled]{opacity:.55;cursor:wait}
body.gd .gd-ghost-btn{font-family:var(--gd-sans);font-weight:600;font-size:13.5px;color:var(--gd-muted);background:transparent;border:1px solid var(--gd-line2);padding:10px 18px;border-radius:10px;cursor:pointer;min-height:44px;touch-action:manipulation;transition:color .2s,border-color .2s}
body.gd .gd-ghost-btn:hover,body.gd .gd-ghost-btn:focus-visible{color:var(--gd-cream);border-color:var(--gd-muted)}
body.gd .gd-decided-ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}
body.gd .gd-cta-link{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#1A130A;background:linear-gradient(180deg,var(--gd-gold-bri),var(--gd-gold));padding:11px 22px;border-radius:10px;text-decoration:none;min-height:44px;touch-action:manipulation;box-shadow:0 4px 16px -6px rgba(212,168,83,.5)}
body.gd .gd-cta-link:hover,body.gd .gd-cta-link:focus-visible{filter:brightness(1.07)}

/* ── DRAWERS — the "go deeper" lever (0fr grid, leaves tab order when closed) ── */
body.gd .gd-tog{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:12.5px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--gd-gold);background:transparent;border:1px solid var(--gd-line);border-radius:10px;padding:9px 14px;cursor:pointer;min-height:40px;touch-action:manipulation;transition:border-color .2s}
body.gd .gd-tog:hover,body.gd .gd-tog:focus-visible{border-color:var(--gd-gold-dim)}
body.gd .gd-tog svg{width:12px;height:12px;transition:transform .3s var(--gd-ease)}
body.gd .gd-tog[aria-expanded="true"] svg{transform:rotate(180deg)}
body.gd .gd-drawer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--gd-ease),visibility .45s;visibility:hidden}
body.gd .gd-drawer.open{grid-template-rows:1fr;visibility:visible}
body.gd .gd-drawer > div{overflow:hidden;min-height:0}
body.gd .gd-drawer-pad{padding-top:18px}

/* ── COLOPHON — sources + the maker's mark, closing the document ── */
body.gd .gd-sources{padding:16px 0 8px}
body.gd .gd-colophon{display:grid;grid-template-columns:1.3fr .7fr;gap:48px;align-items:start}
body.gd .gd-colophon > *{min-width:0}
body.gd .gd-sources-k{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--gd-muted);margin-bottom:12px}
body.gd .gd-sources ul{margin:0;padding:0;list-style:none}
body.gd .gd-sources li{font-size:12.5px;line-height:1.7;color:var(--gd-muted2);padding-left:14px;position:relative}
body.gd .gd-sources li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;transform:rotate(45deg);background:var(--gd-gold-dim);opacity:.6}
body.gd .gd-colophon-brand{text-align:right}
body.gd .gd-colophon-mark{font-family:'Rubik Dirt',var(--gd-serif);font-size:20px;letter-spacing:3px;color:var(--gd-cream2)}
body.gd .gd-colophon-mark i{font-style:normal;color:var(--gd-gold)}
body.gd .gd-colophon-line{display:block;margin-top:10px;font-size:12.5px;line-height:1.65;color:var(--gd-muted2)}

/* ── UNENTITLED (sell) STATE ── */
body.gd .gd-sell{max-width:640px;margin:64px auto;border:1px solid rgba(212,168,83,.3);border-radius:18px;background:linear-gradient(160deg,rgba(212,168,83,.06),var(--gd-bg2) 55%);padding:38px 40px;text-align:center}
body.gd .gd-sell h2{font-family:var(--gd-serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);margin:0 0 12px;color:var(--gd-cream);text-wrap:balance}
body.gd .gd-sell p{font-size:14.5px;color:var(--gd-cream2);line-height:1.65;margin:0 0 20px}
body.gd .gd-sell-ticks{display:inline-flex;flex-direction:column;gap:8px;text-align:left;margin:0 auto 24px}
body.gd .gd-sell-ticks span{font-size:14px;color:var(--gd-cream2);display:flex;gap:10px;align-items:baseline}
body.gd .gd-sell-ticks span::before{content:"";flex:none;width:6px;height:6px;transform:rotate(45deg);background:var(--gd-gold);position:relative;top:-1px}
body.gd .gd-sell-cta{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:#1A130A;background:linear-gradient(180deg,var(--gd-gold-bri),var(--gd-gold));padding:13px 26px;border-radius:10px;border:none;cursor:pointer;min-height:46px;touch-action:manipulation;box-shadow:0 4px 18px -6px rgba(212,168,83,.55)}
body.gd .gd-sell-cta:hover,body.gd .gd-sell-cta:focus-visible{filter:brightness(1.07)}
body.gd .gd-sell-links{margin-top:18px;display:flex;gap:22px;justify-content:center;flex-wrap:wrap}
body.gd .gd-sell-links a{font-size:13.5px;color:var(--gd-muted);text-decoration:underline;text-underline-offset:3px}
body.gd .gd-sell-links a:hover{color:var(--gd-cream)}
body.gd .gd-sell-trust{margin-top:20px;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-weight:600;color:var(--gd-muted2)}

/* ── GET-YOURS BAND (sample page closer) ── */
body.gd .gd-getyours{border-top:1px solid var(--gd-line);padding:64px 0;text-align:center;background:linear-gradient(180deg,transparent,rgba(212,168,83,.045))}
body.gd .gd-getyours h2{font-family:var(--gd-serif);font-weight:350;font-size:clamp(1.6rem,3vw,2.3rem);margin:0 0 12px;color:var(--gd-cream);text-wrap:balance}
body.gd .gd-getyours p{font-size:14.5px;color:var(--gd-cream2);max-width:52ch;margin:0 auto 24px;line-height:1.65}
body.gd .gd-getyours .gd-cta-link{font-size:15px;padding:13px 26px}
body.gd .gd-getyours .sub{margin-top:14px;font-size:12.5px;color:var(--gd-muted2)}

/* ── ERROR STATE ── */
body.gd .gd-err{max-width:560px;margin:80px auto;text-align:center;padding:0 24px}
body.gd .gd-err h2{font-family:var(--gd-serif);font-weight:400;font-size:1.7rem;margin:0 0 12px}
body.gd .gd-err p{font-size:14.5px;color:var(--gd-cream2);line-height:1.65}
body.gd .gd-err a{color:var(--gd-gold)}

/* ── FOOTER ── */
body.gd .gd-footer{border-top:1px solid var(--gd-line);margin-top:64px;padding:34px 0 44px;background:var(--gd-bg)}
body.gd .gd-footer-in{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
body.gd .gd-footer-tag{font-size:12.5px;color:var(--gd-muted2)}
body.gd .gd-footer-links{display:flex;gap:12px 20px;flex-wrap:wrap}
body.gd .gd-footer-links a{font-size:12.5px;color:var(--gd-muted);text-decoration:none}
body.gd .gd-footer-links a:hover,body.gd .gd-footer-links a:focus-visible{color:var(--gd-cream)}

/* ── SCROLL REVEAL ── */
body.gd .gd-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--gd-ease),transform .7s var(--gd-ease)}
body.gd .gd-reveal.in{opacity:1;transform:none}

/* ── MOBILE GRAMMAR — reorder, swap forms, simplify chrome ── */
@media(max-width:960px){
  body.gd .gd-hero-grid{grid-template-columns:1fr;gap:34px}
  body.gd .gd-band-2col{grid-template-columns:1fr;gap:30px}
  body.gd .gd-band-head{position:static}
  body.gd .gd-band[data-num]::after{font-size:96px;top:48px}
  body.gd .gd-colophon{grid-template-columns:1fr;gap:26px}
  body.gd .gd-colophon-brand{text-align:left}
}
@media(max-width:640px){
  body.gd{font-size:16px}
  body.gd .gd-wrap{padding:0 20px}
  body.gd .gd-verdict .w-cost{white-space:normal}
  body.gd .gd-band{padding:48px 0}
  body.gd .gd-hero{padding:40px 0 36px}
  body.gd .gd-duo{grid-template-columns:1fr}
  body.gd .gd-deed{padding:26px 20px 24px}
  body.gd .gd-deed-seal{top:14px;right:14px;width:32px;height:32px}
  body.gd .gd-lg-row > span:first-child::after{display:none}
  body.gd .gd-li-town{grid-template-columns:1fr auto;grid-template-rows:auto auto}
  body.gd .gd-li-town .st{grid-column:1/-1;text-align:left}
  body.gd .gd-sell{margin:40px 20px;padding:30px 22px}
  /* Eight links in one nowrap row ran off the right edge (Terms was cut in half) and
     each label broke onto three lines. Stack the footer and center the wrapped links. */
  body.gd .gd-footer-in{flex-direction:column;text-align:center;gap:16px}
  body.gd .gd-footer-links{justify-content:center;row-gap:10px}
}

/* ── REDUCED MOTION — one global kill ── */
@media(prefers-reduced-motion:reduce){
  body.gd *,body.gd *::before,body.gd *::after{transition:none!important;animation:none!important}
  body.gd .gd-reveal{opacity:1;transform:none}
}
