/* Generated by internal/resources/build-drover.py. Do not edit. */
@font-face{
  font-family: "IBM Plex Serif";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-serif-latin-600-normal.woff2") format("woff2");
}
@font-face{
  font-family: "IBM Plex Serif";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-serif-latin-500-normal.woff2") format("woff2");
}
@font-face{
  font-family: "IBM Plex Serif";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-serif-latin-500-italic.woff2") format("woff2");
}
@font-face{
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");
}
@font-face{
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");
}
@font-face{
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");
}
@font-face{
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
}
@font-face{
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2");
}
@font-face{
  font-family: "Audiowide";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/audiowide-latin-400-normal.woff2") format("woff2");
}
:root{
  
  --canvas: #e7e1d3;       
  --canvas-alt: #ddd5c2;   
  --canvas-line: #c7bda5;  
  --ink: #1e1b17;          
  --ink-soft: #4a443a;     
  --ink-plate: #211d18;    
  --ink-plate-line: #3a352c;
  --on-plate: #e9e3d5;     
  --on-plate-soft: #b7ae9b;

  --ledger: #253647;       
  --ledger-strong: #1b2836;
  --verdigris: #3f5b4e;    
  --brass: #a9793e;        
  --brass-soft: #cf9c55;   
  --grade-reported: #74582e; 
  --grade-flagged: #a13a2b;  

  --radius: 3px;
  --measure: 62ch;

  --font-serif: "IBM Plex Serif", "Iowan Old Style", Georgia, serif;
  --font-sans: "IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;

  
  --space-1: clamp(0.5rem, 0.46rem + 0.2vw, 0.7rem);
  --space-2: clamp(0.95rem, 0.86rem + 0.45vw, 1.35rem);
  --space-3: clamp(1.5rem, 1.2rem + 1.2vw, 2.4rem);
  --space-4: clamp(2.25rem, 1.7rem + 2.2vw, 3.75rem);
  --space-5: clamp(3rem, 2.1rem + 3.6vw, 5.5rem);

  
  --wrap-max: 1280px;

  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}
.skip-link{
  position: absolute;
  left: -999px;
  top: auto;
  background: var(--ink-plate);
  color: var(--on-plate);
  padding: 0.75em 1.25em;
  z-index: 100;
  font-family: var(--font-mono);
  font-size: 0.85rem;
}
.skip-link:focus{
  left: var(--space-2);
  top: var(--space-2);
}
.site-header{
  border-bottom: 1px solid var(--canvas-line);
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--canvas) 88%, transparent);
  backdrop-filter: blur(10px) saturate(1.1);
  -webkit-backdrop-filter: blur(10px) saturate(1.1);
}
.site-header .wrap{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-block: var(--space-2);
}
.brand-lockup{
  display: flex;
  align-items: center;
  gap: 0.65em;
  text-decoration: none;
  color: var(--ink);
  transition: opacity 0.15s var(--ease);
}
.brand-lockup:hover{ opacity: 0.72; }
.brand-mark{ width: 34px; height: 34px; flex: none; color: var(--ledger); }
.brand-word{
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: 1.3rem;
  letter-spacing: -0.01em;
}
nav.primary-nav{
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
nav.primary-nav ul{ list-style: none; display: flex; gap: var(--space-2); }
nav.primary-nav a{
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  padding: 0.4em 0.1em;
  border-bottom: 2px solid transparent;
  transition: border-color 0.18s var(--ease), color 0.18s var(--ease);
}
nav.primary-nav a:hover,
nav.primary-nav a[aria-current="page"]{ border-bottom-color: var(--brass); }
.nav-toggle{
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 0.5em;
}
.nav-toggle span{
  width: 20px;
  height: 2px;
  background: var(--ink);
  display: block;
  transition: transform 0.2s var(--ease), opacity 0.2s var(--ease);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 720px){.nav-toggle{ display: flex; }nav.primary-nav{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--canvas);
    border-bottom: 1px solid var(--canvas-line);
    display: grid;
    grid-template-rows: 0fr;
    visibility: hidden;
    opacity: 0;
    transition: grid-template-rows 0.22s var(--ease), opacity 0.18s var(--ease), visibility 0.22s;
  }nav.primary-nav > ul{ min-height: 0; overflow: hidden; }nav.primary-nav.is-open{
    grid-template-rows: 1fr;
    visibility: visible;
    opacity: 1;
  }nav.primary-nav ul{
    flex-direction: column;
    gap: 0;
    padding: var(--space-1) clamp(1.25rem, 4vw, 3rem) var(--space-2);
  }nav.primary-nav a{ display: block; padding: 0.75em 0; border-bottom: 1px solid var(--canvas-line); }}
@media (prefers-reduced-motion: reduce){nav.primary-nav{ transition: none; }}
section.plate .brand-mark-large{ color: var(--brass-soft); }
.hero .brand-mark-large{ width: 52px; height: 52px; margin-bottom: var(--space-1); }
.site-footer{
  border-top: 1px solid var(--canvas-line);
  padding-block: var(--space-3);
}
.site-footer .wrap{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-2);
}
.site-footer nav ul{ list-style: none; display: flex; gap: var(--space-2); flex-wrap: wrap; }
.site-footer nav a{ text-decoration: none; font-size: 0.9rem; color: var(--ink-soft); }
.site-footer nav a:hover{ color: var(--ink); }
.footer-mark{ display: flex; align-items: center; gap: 0.6em; }
.footer-mark .brand-mark{ width: 22px; height: 22px; color: var(--ink-soft); }
.footer-mark span{ font-family: var(--font-mono); font-size: 0.78rem; color: var(--ink-soft); letter-spacing: 0.03em; }
.site-footer .footer-social{ list-style: none; display: flex; gap: 0.5rem; margin: 0; padding: 0; }
.site-footer .footer-social a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ledger);
  color: var(--canvas);
}
.site-footer .footer-social a:hover{ background: var(--ledger-strong); }
.site-footer .footer-social a:focus-visible{ outline: 2px solid var(--brass); outline-offset: 2px; }
.site-footer .footer-social svg{ width: 18px; height: 18px; }

:root{
--ground:var(--canvas);--band:var(--canvas-alt);--sheet:var(--canvas);--card:var(--canvas);
--ink-2:#4a443a;--ink-3:#595246;
--rule:var(--canvas-line);--rule-2:#d2c9b5;--grid:#ddd5c2;--race:#d7ceb9;
--z-works:var(--canvas-alt);--z-gate:var(--canvas-alt);--z-yard:var(--canvas-alt);--z-club:var(--canvas-alt);
--soil:#d3c8b1;--soil-line:#bcad90;
--accent:#253647;--accent-ink:#e9e3d5;--accent-soft:#d1d6d6;
--built:#3f5b4e;--underway:#74582e;--planned:#686153;--planned-ink:#595246;
--retiring:#a13a2b;--retired:#595246;--theirs:#253647;--unknown:#a13a2b;--entity:#4a443a;
--hatch:rgba(116,88,46,.17);
--plate:#211d18;--plate-line:#3a352c;
--sans:"IBM Plex Sans","Segoe UI",Arial,sans-serif;
--cond:"IBM Plex Serif",Georgia,serif;
--serif:"IBM Plex Serif",Georgia,serif;
--mono:"IBM Plex Mono",Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth;height:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:400 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%}
a{color:var(--accent)}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- header ---------- */
.top{padding-top:44px}
.top-row{display:flex;justify-content:space-between;align-items:flex-end;gap:28px}
h1{font:700 clamp(46px,7.4vw,80px)/.9 var(--cond);letter-spacing:-.012em;margin:0 0 16px}
.stand{font:400 clamp(17px,1.55vw,19.5px)/1.62 var(--serif);color:var(--ink-2);max-width:63ch;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;font:600 15px/1 var(--sans);background:var(--accent);color:var(--accent-ink);border:0;border-radius:7px;padding:11px 16px;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{filter:brightness(1.1)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.btn-lg{font-size:16px;padding:14px 20px;margin-bottom:6px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:28px 0 0;padding:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.steps li{display:flex;gap:12px;align-items:baseline;padding:14px 18px 14px 0;font:400 15.5px/1.45 var(--sans);color:var(--ink-2)}
.steps li+li{padding-left:18px;border-left:1px solid var(--rule-2)}
.steps .n{font:700 28px/1 var(--cond);color:var(--accent)}
.steps b{color:var(--ink);font-weight:600}

/* ---------- map section ---------- */
.mapsec{margin-top:28px}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:12px}
.views{display:inline-flex;flex-wrap:wrap;gap:2px;border:1px solid var(--rule);border-radius:9px;background:var(--card);padding:3px}
.views button{font:500 14.5px/1 var(--sans);color:var(--ink-2);background:none;border:0;border-radius:6px;padding:8px 12px;cursor:pointer}
.views button:hover{color:var(--ink)}
.views button[aria-pressed="true"]{background:var(--ink);color:var(--ground)}
.views button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.viewnote{margin:0;font:italic 400 15.5px/1.4 var(--serif);color:var(--ink-2)}
.sheet{margin:0;border:1px solid var(--rule);border-radius:9px;background:var(--sheet);overflow:hidden}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
svg.map{display:block;width:100%;height:auto;min-width:1040px}
.scrollhint{display:none;font:400 13.5px var(--sans);color:var(--ink-3);margin:8px 0 0}
@media (max-width:1080px){.scrollhint{display:block}}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:9px 20px;padding:0;margin:14px 0 0;font:400 14px/1.3 var(--sans);color:var(--ink-2)}
.legend li{display:inline-flex;align-items:center;gap:8px}
.legend svg{width:30px;height:18px;overflow:visible;flex:none}

/* ---------- the drawing ---------- */
.map text{font-family:var(--sans)}
.sheetbg{fill:var(--sheet)}
.gridline{fill:none;stroke:var(--grid);stroke-width:1}
.deedframe{fill:var(--card);stroke:var(--rule);stroke-width:1}
.deedframe2{fill:none;stroke:var(--rule-2);stroke-width:1}
.deedrule{stroke:var(--rule-2);stroke-width:1}
.dlabel{font-family:var(--cond)!important;font-weight:600;font-size:14.5px;fill:var(--ink-3)}
.dtext{font-size:13px;fill:var(--ink)}
.dstrong{font-weight:600}
.dital{font-family:var(--serif)!important;font-style:italic;font-size:12.5px;fill:var(--ink-2)}
.trade{fill:none;stroke:var(--entity);stroke-width:1.3}
.pin{fill:none;stroke:var(--accent);stroke-width:1.5}
.pindot{fill:var(--accent)}
.parcel{stroke:var(--rule);stroke-width:1}
.z-works{fill:var(--z-works)} .z-gate{fill:var(--z-gate)} .z-yard{fill:var(--z-yard)} .z-club{fill:var(--z-club)}
.race{fill:var(--race);opacity:.75}
.fence{fill:none;stroke:var(--ink-2);stroke-width:1.3;stroke-dasharray:14 4 2 4}
.fence-label{font-family:var(--serif)!important;font-style:italic;font-size:12px;fill:var(--ink-3)}
.zname{font-family:var(--cond)!important;font-weight:700;font-size:17.5px;fill:var(--ink)}
.zsub{font-family:var(--serif)!important;font-style:italic;font-weight:400;font-size:12.5px;fill:var(--ink-2)}
.gatelabel{font-family:var(--cond)!important;font-weight:600;font-size:13.5px;fill:var(--ink-2)}
.soilbg{fill:var(--soil)}
.soil-line{fill:none;stroke:var(--soil-line);stroke-width:1.1;stroke-linecap:round}
.groundline{stroke:var(--ink-3);stroke-width:1.4}
.tbframe{fill:var(--card);stroke:var(--ink-3);stroke-width:1}
.tbrule{stroke:var(--rule);stroke-width:.8}
.tbt{font-family:var(--cond)!important;font-weight:700;font-size:14px;fill:var(--ink)}
.tbs{font-size:11px;fill:var(--ink-2)}

/* states: used by map nodes, legend swatches and the drawer */
.box{fill:var(--card);stroke-width:1.6}
.st-built .box{stroke:var(--built)}
.st-underway .box{stroke:var(--underway);stroke-dasharray:5 3.5;fill:url(#hatch)}
.st-planned .box{stroke:var(--planned);stroke-width:2.1;stroke-dasharray:.1 4.4;stroke-linecap:round;fill:var(--sheet);fill-opacity:.6}
.st-retiring .box{stroke:var(--retiring);stroke-dasharray:11 3 2.5 3}
.st-retired .box{stroke:var(--retired);stroke-width:1.25;fill:var(--soil)}
.st-theirs .box{stroke:var(--theirs);stroke-width:1.35;fill:var(--sheet)}
.st-entity .box{stroke:var(--entity);stroke-width:1.3}
.st-gap .box{stroke:var(--unknown);stroke-width:1.9;stroke-dasharray:3 2.6;fill:var(--card)}
.inner{fill:none;stroke:var(--entity);stroke-width:.7;opacity:.55}
.hatch-bg{fill:var(--card)}
.hatch-line{stroke:var(--hatch);stroke-width:3}
.map .st{font-size:10.5px;font-weight:600;letter-spacing:.035em}
.st-built .st{fill:var(--built)} .st-underway .st{fill:var(--underway)} .st-planned .st{fill:var(--planned-ink)}
.st-retiring .st{fill:var(--retiring)} .st-retired .st{fill:var(--retired)} .st-theirs .st{fill:var(--theirs)} .st-entity .st{fill:var(--entity)}
.map .nm{font-weight:600;font-size:13.5px;fill:var(--ink)}
.mcp rect{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1}
.mcp.plan rect{fill:var(--card);stroke-dasharray:2.5 2}
.map .mcpt{font-size:9px;font-weight:700;letter-spacing:.05em;fill:var(--accent)}
.map .gnm{font-size:15.5px}
.map .enm{font-family:var(--cond);font-weight:700;font-size:20px;fill:var(--ink)}
.map .sb{font-size:11.5px;fill:var(--ink-2)}
.map .ow{font-size:11px;font-weight:500;fill:var(--ink-3)}
.gq{font-weight:700;font-size:15px;fill:var(--unknown)}
.qb circle{fill:var(--unknown);stroke:var(--sheet);stroke-width:2}
.map .qbt{font-weight:700;font-size:11px;fill:#fff}
.node{cursor:pointer;outline:none}
.node .box{transition:stroke-width .12s}
.node:hover .box{stroke-width:2.5}
.hl .box{stroke-width:2.2}
.halo{fill:none;stroke:var(--accent);stroke-width:3;opacity:0;transition:opacity .15s}
.node.sel .halo{opacity:.95}
.node:focus-visible .halo{opacity:.6}
.edge{fill:none;stroke-width:1.6;transition:opacity .2s,stroke-width .2s}
.e-built{stroke:var(--ink-2)}
.e-under{stroke:var(--underway);stroke-dasharray:5 3.5}
.e-unknown{stroke:var(--unknown);stroke-dasharray:3 3}
.jdot{fill:var(--underway)}
.elabel{font-family:var(--serif)!important;font-style:italic;font-size:12px;fill:var(--ink-2)}
.elabel-unknown{fill:var(--unknown)}
.map .node,.map .elabel,.map .jdot,.map .edges{transition:opacity .2s}

/* map views */
.map[data-view="changing"] .node:not(.st-underway):not(.st-planned):not(.st-retiring):not(.st-gap){opacity:.16}
.map[data-view="changing"] .e-built,.map[data-view="changing"] .elabel:not(.ov){opacity:.15}
.map[data-view="questions"] .node:not(.has-q){opacity:.16}
.map[data-view="questions"] .edges{opacity:.2}
.map[data-view="overlap"] .node:not(.ov){opacity:.14}
.map[data-view="overlap"] .edge:not(.ov),.map[data-view="overlap"] .elabel:not(.ov){opacity:.1}
.map[data-view="overlap"] .edge.ov{stroke-width:3}
.map[data-view="api"] .node:not(.api){opacity:.16}
.map[data-view="api"] .edges{opacity:.2}
.map[data-view="history"] .node:not(.k-retired){opacity:.14}
.map[data-view="history"] .edges{opacity:.1}

/* ---------- worked example sections ---------- */
h2{font:700 36px/1.02 var(--cond);letter-spacing:-.005em;margin:0 0 14px}
.sec-lede{font:400 17.5px/1.6 var(--serif);color:var(--ink-2);max-width:66ch;margin:0 0 20px}
.story{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:28px 56px;margin-top:72px;align-items:start}
.story-text p{font:400 17px/1.7 var(--serif);margin:0 0 14px;max-width:64ch}
.dod{background:var(--card);border:1.6px dashed var(--underway);border-radius:9px;padding:22px 24px 20px}
.dod .stw{font:600 12.5px var(--sans);letter-spacing:.03em;color:var(--underway)}
.dod h3{font:700 24px/1.1 var(--cond);margin:4px 0 14px}
.checks{list-style:none;padding:0;margin:0}
.checks li{position:relative;padding:0 0 11px 28px;font:400 15.5px/1.45 var(--sans)}
.checks li::before{content:"";position:absolute;left:0;top:3px;width:14px;height:14px;border:1.6px solid var(--ink-3);border-radius:3px}
.checks li.unres::before{border-color:var(--unknown);border-style:dashed}
.dod-out{font:400 14.5px/1.5 var(--sans);color:var(--ink-2);margin:6px 0 14px}
.linkbtn{font:600 14px var(--sans);color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkbtn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.matrix,.open,.apis{margin-top:72px}
.apit{table-layout:fixed}
.qt.apit tbody th{white-space:normal}
.apit td.n{font:700 21px/1.1 var(--cond);color:var(--ink);white-space:nowrap}
.apit td.n.p{font:500 14px/1.4 var(--sans);color:var(--ink-2)}
.apit td.dim,.apit td.n.dim{color:var(--ink-3)}
.apit .sub{display:block;font:400 13px/1.4 var(--sans);color:var(--ink-3);margin-top:3px}
.mcp-tag{display:block;width:max-content;font:700 11px/1 var(--sans);letter-spacing:.04em;padding:4px 8px;border-radius:999px;margin:1px 0 6px;color:var(--accent)}
.mcp-tag.on{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.mcp-tag.plan{border:1px dashed var(--accent);padding:3px 7px}
.rowlink{font:600 14.5px/1.4 var(--sans);color:var(--ink);background:none;border:0;padding:0;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}
.rowlink:hover{color:var(--accent);text-decoration-color:var(--accent)}
.rowlink:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:9px;background:var(--card)}
table.qt{border-collapse:collapse;width:100%;min-width:900px;font:400 14.5px/1.42 var(--sans)}
.qt th,.qt td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule-2);vertical-align:top}
.qt thead th{font:600 16.5px/1.15 var(--cond);color:var(--ink);background:var(--sheet);border-bottom:1px solid var(--rule)}
.qt tbody th{font:600 14.5px/1.4 var(--sans);color:var(--ink);background:var(--sheet);white-space:nowrap}
.qt tbody tr:last-child th,.qt tbody tr:last-child td{border-bottom:0}
.qt tbody tr.readme td{background:var(--accent-soft)}
.th-st{display:block;font:500 12.5px var(--sans);color:var(--underway);margin-top:2px}
.qt td.unk{color:var(--unknown);font-weight:500}
.qt td.unk::before,.openlist li::before{content:"?";display:inline-grid;place-items:center;border-radius:50%;background:var(--unknown);color:#fff;font:700 11px/1 var(--sans)}
.qt td.unk::before{width:17px;height:17px;margin-right:7px;vertical-align:1px}
.openlist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.openlist li{position:relative;border-top:1px solid var(--rule);padding:16px 0 18px 32px}
.openlist li::before{position:absolute;left:0;top:18px;width:20px;height:20px;font-size:12px}
.oq{font:600 16.5px/1.35 var(--sans);margin:0 0 6px}
.om{font:400 14.5px/1.55 var(--sans);color:var(--ink-2);margin:0 0 6px}
.om b{font-weight:600;color:var(--ink)}

/* ---------- concepts ---------- */
.concepts{background:var(--band);margin-top:88px;padding:68px 0 76px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.ch{font:700 clamp(40px,5.4vw,60px)/.95 var(--cond);letter-spacing:-.01em;margin:0 0 16px}
.lede{font:400 19px/1.62 var(--serif);color:var(--ink-2);max-width:60ch;margin:0 0 44px}
.cgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 60px}
.concept,.cwide,.habits{display:grid;grid-template-columns:44px minmax(0,1fr);gap:18px;align-items:start}
.concept h3,.cwide h3,.habits h3{font:700 23px/1.12 var(--cond);margin:3px 0 8px}
.concept p,.cwide p,.habits li{font:400 16.5px/1.66 var(--serif);margin:0 0 10px;max-width:62ch}
.concept .cnote,.cwide .cnote{font-style:italic;color:var(--ink-2)}
.opt{font:600 11.5px/1 var(--sans);color:var(--ink-3);border:1px solid var(--rule);border-radius:4px;padding:2px 6px;margin-left:3px;white-space:nowrap;vertical-align:2px;font-style:normal}
.cwide{margin:56px 0}
.ico{width:44px;height:44px;fill:none;stroke:var(--ink-2);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ico .dot{fill:var(--band)}
.ico .i-built{stroke:var(--built)} .ico .i-under{stroke:var(--underway);stroke-dasharray:3.2 2.4} .ico .i-plan{stroke:var(--planned);stroke-width:2;stroke-dasharray:.1 3.4}
table.ask{border-collapse:collapse;width:100%;margin-top:10px;font:400 15px/1.45 var(--sans);background:var(--card);border:1px solid var(--rule);border-radius:9px;overflow:hidden}
.ask th,.ask td{text-align:left;vertical-align:top;padding:10px 14px;border-bottom:1px solid var(--rule-2)}
.ask tr:last-child th,.ask tr:last-child td{border-bottom:0}
.ask th{font:600 15px/1.4 var(--sans);width:170px;white-space:nowrap;background:var(--sheet)}
.asknote{font:italic 400 15px/1.55 var(--serif);color:var(--ink-2);margin:12px 0 0}
.habits{margin-top:56px}
.habits ul{columns:2;column-gap:52px;padding-left:18px;margin:6px 0 0}
.habits li{break-inside:avoid;margin-bottom:9px}
.build{margin-top:60px;background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:32px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.45fr);gap:32px}
.build h3{font:700 34px/1 var(--cond);margin:0 0 16px}
.buildsteps{padding-left:22px;margin:0;font:400 16px/1.55 var(--sans)}
.buildsteps li{margin-bottom:11px;padding-left:4px}
.buildsteps li::marker{font:700 18px var(--cond);color:var(--accent)}
.promptbox{border:1px solid var(--rule);border-radius:9px;background:var(--sheet);display:flex;flex-direction:column;min-width:0}
.pb-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--rule)}
.pb-head span{font:600 17px var(--cond);color:var(--ink-2)}
#prompt{margin:0;padding:16px 18px;max-height:460px;overflow:auto;white-space:pre-wrap;word-wrap:break-word;font:400 14px/1.62 var(--sans);color:var(--ink)}
.copystatus{margin:0;padding:0 18px;font:500 14px/1.4 var(--sans);color:var(--built)}
.copystatus:not(:empty){padding:10px 18px 12px;border-top:1px solid var(--rule-2)}

/* ---------- footer ---------- */
.foot{padding:30px 0 44px}
.foot p{font:400 14px/1.6 var(--sans);color:var(--ink-2);max-width:84ch;margin:0 0 10px}
.foot .copyline{color:var(--ink);margin-top:14px}
.foot .copyline b{font-weight:600}
.sig{display:flex;align-items:center;gap:14px;margin-top:20px;font:400 14.5px/1.45 var(--sans);color:var(--ink-2)}
.sig b{color:var(--ink);font-weight:600}
.eagle{width:42px;height:42px;flex:none;background:var(--ink);-webkit-mask:url(data:image/png;base64,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) center/contain no-repeat;mask:url(data:image/png;base64,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) center/contain no-repeat}

/* ---------- entry drawer ---------- */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(450px,100vw);z-index:50;display:flex;flex-direction:column;background:var(--card);border-left:1px solid var(--rule);box-shadow:-18px 0 40px rgba(12,24,18,.16);transform:translateX(104%);transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s linear .28s;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);visibility:hidden}
.drawer.open{transform:none;visibility:visible;transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s}
@media (min-width:721px){.drawer.left{left:0;right:auto;border-left:0;border-right:1px solid var(--rule);box-shadow:18px 0 40px rgba(12,24,18,.16);transform:translateX(-104%)}.drawer.left.open{transform:none}}
.d-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px 22px;border-bottom:1px solid var(--rule-2)}
.d-state{display:inline-flex;align-items:center;gap:8px;font:600 13.5px var(--sans);color:var(--ink-2);min-width:0}
.d-zone{font-weight:400;color:var(--ink-3);padding-left:9px;border-left:1px solid var(--rule)}
.dsw{width:26px;height:16px;overflow:visible;flex:none}
.d-close{font:600 14px var(--sans);background:none;border:1px solid var(--rule);border-radius:7px;padding:7px 12px;color:var(--ink);cursor:pointer}
.d-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.d-body{overflow-y:auto;padding:18px 22px 30px;flex:1;overscroll-behavior:contain}
.d-body h2{font:700 32px/1.02 var(--cond);margin:0 0 8px;outline:none}
.d-what{font:400 16px/1.62 var(--serif);margin:0 0 6px}
.d-body dl{margin:0}
.d-body dt{font:600 12.5px var(--sans);letter-spacing:.03em;color:var(--ink-3);margin:15px 0 3px}
.d-body dd{margin:0;font:400 15px/1.5 var(--sans)}
.d-dod{margin:4px 0 0;padding-left:18px}
.d-dod li{margin-bottom:6px}
.d-q{list-style:none;margin:4px 0 0;padding:0}
.d-q li{border-left:3px solid var(--unknown);padding:2px 0 2px 11px;margin-bottom:9px}
.d-qq{display:block;font-weight:600}
.d-qm{display:block;color:var(--ink-2);font-size:14px}
.d-unk{color:var(--unknown)}
.d-sw{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:9px}
.d-sw li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:11px;align-items:center}
.c-chip{width:32px;height:32px;border-radius:7px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14)}
.c-nm{font-weight:600}
.c-hex{color:var(--ink-2);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.c-role{display:block;font-size:13.5px;line-height:1.35;color:var(--ink-3)}
.d-type{list-style:none;margin:6px 0 0;padding:0}
.d-type li{margin-bottom:8px}
.t-role{font-weight:600;font-size:13px;color:var(--ink-3)}
.t-font{font-weight:600}
.t-use{display:block;font-size:14px;color:var(--ink-2)}
.bchip{stroke:var(--rule);stroke-width:.7}
.chip{font:500 13.5px var(--sans);color:var(--accent);background:var(--accent-soft);border:0;border-radius:999px;padding:5px 11px;margin:3px 6px 3px 0;cursor:pointer}
.chip:hover{text-decoration:underline}
.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@media (max-width:900px){
  .story,.build{grid-template-columns:1fr}
  .build{padding:22px}
  .cgrid{grid-template-columns:1fr}
  .habits ul{columns:1}
}
@media (max-width:760px){
  .top{padding-top:30px}
  .top-row{flex-direction:column;align-items:flex-start;gap:18px}
  .steps{grid-template-columns:1fr}
  .steps li+li{padding-left:0;border-left:0;border-top:1px solid var(--rule-2)}
  .openlist{grid-template-columns:1fr}
  h2{font-size:31px}
  .concept,.cwide,.habits{grid-template-columns:36px minmax(0,1fr);gap:14px}
  .ico{width:36px;height:36px}
  .ask th{width:auto;white-space:normal}
}
@media (max-width:720px){
  .drawer{top:auto;left:0;width:100%;max-height:80vh;border-left:0;border-top:1px solid var(--rule);border-radius:16px 16px 0 0;transform:translateY(104%)}
  .drawer.open{transform:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .drawer,.halo,.edge,.map .node,.map .elabel,.map .jdot,.map .edges{transition:none}
}
@media print{
  .views,.viewnote,.drawer,.btn,.scrollhint,#copy{display:none!important}
  body{background:#fff}
  svg.map{min-width:0}
  .concepts{background:none}
  #prompt{max-height:none;overflow:visible}
}

.w17{width:17%}
.w20{width:20%}
.w23{width:23%}
.w31{width:31%}
.w9{width:9%}
.qmark{font:700 10px var(--sans);fill:#fff}

/* Jointure treatment of the estate page. */
body{font-family:var(--sans);font-size:16px;line-height:1.65;background:var(--canvas);color:var(--ink);margin:0}
.estate .wrap{max-width:1280px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.estate b,.estate strong{font-weight:600}
.estate :focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.hero{background:var(--plate);color:var(--on-plate);border-bottom:3px solid var(--brass)}
.top{padding-block:48px 42px}
.top-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);gap:60px;align-items:start}
.artifact-label{display:flex;align-items:center;gap:12px;margin:0 0 22px;font:400 12px/1.5 var(--mono);color:var(--on-plate-soft)}
.artifact-label::before{content:"";width:24px;height:1px;background:var(--brass-soft)}
.estate h1{font:600 clamp(40px,5vw,62px)/1.08 var(--serif);letter-spacing:-.025em;max-width:13ch;margin:0 0 22px}
.stand{font:400 clamp(16px,1.5vw,18px)/1.65 var(--sans);color:var(--on-plate-soft);max-width:61ch}
.hero .btn{background:var(--on-plate);color:var(--plate);border:1px solid var(--on-plate);border-radius:3px;font:500 15px/1.2 var(--sans);padding:13px 20px;margin:26px 0 0}
.hero .btn:hover{background:var(--on-plate-soft);filter:none}
.video-poster{position:relative;display:block;aspect-ratio:16/9;margin-top:41px;border:1px solid var(--plate-line);border-radius:6px;overflow:hidden;background:#17140f;color:var(--on-plate);text-decoration:none}
.video-poster img{position:absolute;top:50%;right:3%;width:66%;height:auto;transform:translateY(-56%)}
.video-play{position:absolute;left:28%;top:42%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--brass);color:var(--plate);transition:transform .2s}
.video-play svg{width:34px;height:34px;margin-left:4px}
.video-poster:hover .video-play{transform:translate(-50%,-50%) scale(1.07)}
.video-poster:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.video-caption{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:4px;padding:16px 20px;background:linear-gradient(rgba(23,20,15,0),rgba(23,20,15,.92))}
.video-kicker{font:400 11px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--brass-soft)}
.video-title{font:500 18px/1.3 var(--serif);color:var(--on-plate)}
.video-dialog{padding:0;border:0;background:transparent;width:min(960px,92vw);max-width:none;overflow:visible}
.video-dialog::backdrop{background:rgba(20,17,14,.84)}
.video-frame{aspect-ratio:16/9;background:#000;border-radius:6px;overflow:hidden}
.video-frame iframe{display:block;width:100%;height:100%;border:0}
.video-close{position:absolute;top:-46px;right:0;width:36px;height:36px;border:0;border-radius:50%;background:var(--on-plate);color:var(--plate);font:400 24px/1 var(--sans);cursor:pointer}
.video-close:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.meet{display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(0,.9fr);gap:28px 56px;align-items:center;padding-top:30px;padding-bottom:30px}
.meet + .wrap .steps{border-top:1px solid var(--rule)}
.meet h2{font:500 24px/1.3 var(--serif);margin:0 0 8px}
.meet p{font:400 15px/1.65 var(--sans);color:var(--ink-2);margin:0}
.meet dl{display:flex;gap:40px;margin:0}
.meet dd{font:500 26px/1.2 var(--serif);margin:0}
.meet dt{font:400 11px/1.4 var(--mono);color:var(--ink-2);margin-top:4px}
.meet .meet-note{font:400 11px/1.6 var(--mono)}
.hero :focus-visible{outline-color:var(--brass-soft)}
.steps{margin:0;border-top:0;border-bottom:1px solid var(--rule)}
.steps li{padding-block:20px;font-size:14px;gap:12px}
.steps .n{font:400 18px/1 var(--mono);color:var(--ink-2)}
.mapsec{margin-top:36px;scroll-margin-top:24px}
.map-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:20px}
.map-heading h2{font:500 27px/1.3 var(--serif);margin:0}
.map-heading p{font:400 12px/1.5 var(--mono);color:var(--ink-2);margin:0}
.toolbar{gap:12px;margin-bottom:14px;align-items:flex-start}
.views{border-radius:3px;padding:3px;background:var(--band);gap:2px}
.views button{border-radius:2px;padding:10px 13px;font:500 13px/1.25 var(--sans);min-height:38px}
.views button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.viewnote{flex-basis:100%;font:400 13px/1.55 var(--sans);color:var(--ink-2);margin:1px 0 0;min-height:21px}
.sheet{border-radius:3px;border-color:var(--rule)}
.scrollhint{font-family:var(--sans)}
.legend{gap:12px 22px;font-size:12px;margin-top:17px}
.map text{font-family:var(--sans)}
.map .zname{font:600 15.5px var(--sans)}
.map .enm{font:600 17px var(--serif)}
.map .nm{font-weight:600;font-size:13px}
.map .gnm{font-size:15px}
.map .dlabel{font:600 13px var(--sans)!important}
.map .tbt{font:600 13px var(--sans)!important}
.map .gatelabel{font:600 12px var(--sans)!important}
.map .dtext{font-size:12.5px}
.map .ow{font-size:10.5px}
.map .st{font:600 9.5px var(--mono);letter-spacing:0}
.map .zsub,.map .elabel,.map .dital,.map .fence-label{font-family:var(--serif)!important;font-weight:500}
.map .zsub{font-size:11.5px}
.map .box{stroke-width:1.5}
.map .deedframe,.map .deedframe2{rx:2px}
.map .node:not(.k-retired) rect.box{rx:2px}
.map .st-underway .box{stroke-dasharray:5 3.5}
.map .st-planned .box{stroke-width:2.1}
.estate h2{font:600 30px/1.25 var(--serif);letter-spacing:-.015em;margin-bottom:16px}
.estate h3{font-weight:600}
.sec-lede,.story-text p,.lede,.concept p,.cwide p,.habits li,.d-what{font-family:var(--sans);font-weight:400}
.sec-lede,.story-text p{font-size:16px;line-height:1.7}
.story,.matrix,.open,.apis{margin-top:64px}
.story{gap:32px 60px}
.dod{border-radius:3px;border:1px solid var(--rule);border-top:3px solid var(--underway);background:var(--band);padding:24px}
.dod .stw{font:400 11px/1.5 var(--mono);letter-spacing:0}
.dod h3{font:600 23px/1.3 var(--serif);margin:8px 0 20px}
.checks li{font-size:14px;line-height:1.55}
.checks li::before{border-radius:2px}
.dod-out{font-size:14px}
.linkbtn{font-weight:500}
.tablewrap{border-radius:3px}
.qt thead th{font:600 14px/1.4 var(--sans);background:var(--band)}
.qt tbody th{font-size:14px;font-weight:500;white-space:normal}
.qt th,.qt td{padding:14px 16px}
.qt tbody tr:nth-child(even):not(.readme){background:var(--band)}
.apit td.n{font:500 20px/1.3 var(--mono)}
.mcp-tag{font-family:var(--mono);font-size:10px;letter-spacing:0;border-radius:3px}
.oq{font-size:16px;font-weight:500}
.openlist li{padding-top:18px;padding-bottom:20px}
.openlist li::before{top:21px}
.concepts{margin-top:72px;padding-block:52px 60px;border-color:var(--rule)}
.ch{font:600 clamp(32px,4vw,44px)/1.18 var(--serif);letter-spacing:-.025em}
.lede{font-size:18px;line-height:1.7;margin-bottom:36px}
.cgrid{gap:36px 56px}
.concept h3,.cwide h3,.habits h3{font:600 22px/1.3 var(--serif);margin-top:0;margin-bottom:12px}
.concept p,.cwide p,.habits li{font-size:16px;line-height:1.7}
.concept .cnote,.cwide .cnote{font-style:normal}
.ask{border-radius:3px!important}
.ask th{font-size:14px;white-space:normal}
.asknote{font-family:var(--sans);font-style:normal}
.build{border-radius:3px;background:var(--canvas);padding:28px;gap:32px;border-top:3px solid var(--brass)}
.build h3{font:600 30px/1.2 var(--serif)}
.buildsteps{font-size:15px}
.buildsteps li::marker{font-family:var(--mono);color:var(--ink-2)}
.promptbox{border-radius:3px;background:var(--band)}
.pb-head span{font:500 13px/1.4 var(--mono)}
.pb-head{padding:14px 16px;flex-wrap:wrap}
.estate .btn{border-radius:3px;font-weight:500}
#prompt{font:400 13px/1.75 var(--mono);padding:20px;max-height:460px}
.drawer{background:var(--canvas);border-color:var(--rule);box-shadow:-10px 0 30px rgba(30,27,23,.16)}
.d-top{padding:18px 22px;border-bottom-color:var(--rule)}
.d-close{border-radius:3px;font-weight:500;padding:9px 14px}
.d-state{font:400 12px/1.5 var(--mono);flex-wrap:wrap;gap:7px}
.d-zone{padding-left:7px}
.d-body{padding:24px 26px 36px}
.d-body h2{font:600 29px/1.2 var(--serif);margin-bottom:18px}
.d-what{font-size:16px;line-height:1.65}
.d-body dt{font:400 11px/1.5 var(--mono);letter-spacing:0;margin-top:23px;color:var(--ink-2)}
.d-body dd{font-size:14px;line-height:1.65}
.chip{border-radius:3px;font-size:13px;padding:7px 10px;font-weight:500}
.c-chip{border-radius:2px}
.estate-notes{border-top:1px solid var(--rule);margin-top:56px;padding-block:28px 8px}
.estate-notes p{color:var(--ink-2);font-size:13px;line-height:1.65;max-width:100ch;margin:0 0 10px}
.estate-notes a{color:inherit;text-underline-offset:3px}
@media(max-width:1000px){.top-row{gap:32px;grid-template-columns:minmax(0,1.35fr) minmax(240px,.8fr)}.meet{grid-template-columns:minmax(0,1fr) auto}.meet .meet-note{grid-column:1/-1}.map-heading{align-items:flex-start}}
@media(max-width:760px){
  .top{padding-block:32px}.top-row{grid-template-columns:1fr;gap:30px}.artifact-label{margin-bottom:18px}.estate h1{font-size:43px;max-width:12ch}
  .stand{font-size:16px}.video-poster{margin-top:0}
  .meet{grid-template-columns:1fr;gap:18px}.meet h2{font-size:22px}.meet p{font-size:14px}.meet dl{gap:28px}
  .steps li{padding-block:16px;font-size:13px}.steps .n{font-size:16px}.steps li+li{border-top:1px solid var(--rule-2)}
  .mapsec{margin-top:28px}.map-heading{display:block}.map-heading h2{font-size:26px;margin-bottom:6px}.map-heading p{font-size:11px}
  .views{width:100%}.views button{flex:1 1 auto;min-height:44px;font-size:12px;padding:9px 10px}.viewnote{font-size:12px}
  .legend{gap:12px 18px}.story,.matrix,.open,.apis{margin-top:44px}.estate h2{font-size:27px}.concepts{margin-top:52px;padding-block:38px 44px}
  .concept,.cwide,.habits{gap:12px}.cwide{margin-block:36px}.build{padding:20px;gap:24px}.build h3{font-size:28px}
}
@media(max-width:380px){.estate h1{font-size:38px}}
@media(max-width:720px){.drawer{border-radius:8px 8px 0 0}.d-body{padding-inline:22px}.d-body h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
