/* ============================================================
   Field Assembly — shared design system, v2 (2026-08-29)

   One system across the publisher and its works. The three
   reference works (Gathered Work, Rules & Record, Board &
   Border) are built as report documents on a dark ground:
   serif for argument, system sans for apparatus, mono for
   data, hairline rules, numbered sections, no cards, no
   shadows, no radii. This file puts the imprint on the same
   footing, with its own ground — warm graphite, distinct from
   the children's navy, spruce and plum — and the mark's brick
   red raised until it holds AA on it.

   System font stacks only: no third-party requests, and no
   font file to wait on before text renders.

   Every text pair below verified WCAG 2.1 AA against every
   ground this file paints, 2026-08-29.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}

:root{
  --bg:#14110f;
  --bg-raise:#1b1714;
  --bg-inset:#181411;
  --text:#ece8e3;
  --text-dim:#a89e95;
  --hair:#2c2622;
  --hair-strong:#423a34;
  --accent:#dda08f;        /* raised brick — links, data, section numbers */
  --accent-dim:#8f5344;    /* underlines and control edges — never text */
  --accent-muted:#c9846f;  /* the accent in running text */
  --edge:#7d6c65;          /* borders of interactive controls, >=3:1 */

  --serif:Charter,"Bitstream Charter","Iowan Old Style",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Courier New",monospace;

  --pad-x:clamp(1.4rem,6vw,7rem);

  /* Aliases kept so any older rule or page still resolves. */
  --paper:var(--bg); --paper-2:var(--bg-raise); --paper-3:var(--bg-inset);
  --ink:var(--text); --ink-soft:var(--text-dim); --ink-faint:var(--text-dim);
  --rule:var(--hair-strong); --rule-2:var(--hair);
  --red:var(--accent); --red-deep:var(--accent-muted);
}

body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
a,dd,td,p,li{overflow-wrap:anywhere;}
img:not(.brand-logo):not(.brand-logo-sm){max-width:100%;}
::selection{background:var(--accent);color:var(--bg);}

.nowrap{white-space:nowrap;}
code{font-family:var(--mono);font-size:.86em;color:var(--text);background:var(--bg-inset);border:1px solid var(--hair);padding:.08em .35em;}

.skip-link{position:absolute;top:-100%;left:16px;padding:10px 18px;background:var(--accent);color:var(--bg);font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;text-decoration:none;z-index:100;}
.skip-link:focus{top:0;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* ---------- masthead ---------- */
header.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;row-gap:.4rem;padding:.7rem var(--pad-x);border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:40;background:var(--bg);}
.brand{display:flex;align-items:center;gap:.7rem;min-width:0;}
.brand-link{display:inline-flex;align-items:center;text-decoration:none;min-width:0;}
.brand-logo{height:44px;width:auto;display:block;}
header.top nav{display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap;}
header.top nav a{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-decoration:none;color:var(--text-dim);padding-bottom:2px;border-bottom:1px solid transparent;transition:border-color .18s,color .18s;white-space:nowrap;}
header.top nav a:hover{color:var(--accent);border-color:var(--accent-dim);}
header.top nav a[aria-current="page"]{color:var(--text);border-color:var(--accent);}

/* ---------- containers ---------- */
.wrap{max-width:1100px;margin:0 auto;padding:0 var(--pad-x);}
.prose-wrap{max-width:760px;margin:0 auto;padding:clamp(2.4rem,5vw,4rem) var(--pad-x) clamp(3rem,7vw,6rem);}

/* ---------- document head ---------- */
.doc-head{max-width:1100px;margin:0 auto;padding:clamp(2.4rem,5vw,4rem) var(--pad-x) clamp(1.6rem,3vw,2.4rem);border-bottom:1px solid var(--hair);}
.doc-head .titleblk{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,max-content));border:1px solid var(--hair-strong);width:max-content;max-width:100%;margin-bottom:1.8rem;background:var(--bg-inset);}
.doc-head .titleblk div{padding:.45rem .8rem;border-right:1px solid var(--hair);}
.doc-head .titleblk div:last-child{border-right:none;}
.doc-head .titleblk .k{font-family:var(--mono);font-size:.55rem;letter-spacing:.11em;text-transform:uppercase;color:var(--text-dim);display:block;}
.doc-head .titleblk .v{font-family:var(--mono);font-size:.78rem;color:var(--text);display:block;margin-top:.15rem;}
.doc-kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.doc-head h1{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,5vw,3.3rem);line-height:1.05;letter-spacing:-.01em;margin-top:.5rem;max-width:20ch;}
.doc-head .lede{font-family:var(--serif);font-size:clamp(1.1rem,2.2vw,1.35rem);color:var(--text);line-height:1.5;max-width:60ch;margin-top:1.3rem;}
.doc-head .standfirst{font-family:var(--serif);font-size:1.02rem;color:var(--text-dim);line-height:1.6;max-width:60ch;margin-top:1.1rem;}
@media(max-width:520px){.doc-head .titleblk{grid-template-columns:repeat(2,1fr);width:100%;} .doc-head .titleblk div{border-bottom:1px solid var(--hair);}}

/* ---------- prose ---------- */
.prose h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,3vw,1.9rem);line-height:1.15;margin:2.4rem 0 1rem;letter-spacing:-.005em;}
.prose h3{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin:1.8rem 0 .6rem;}
.prose p{font-family:var(--serif);font-size:1.12rem;color:var(--text-dim);line-height:1.78;margin-bottom:1.15rem;}
.prose p.lead{font-size:1.3rem;color:var(--text);line-height:1.5;}
.prose p:last-child{margin-bottom:0;}
.prose ul,.prose ol{margin:.6rem 0 1.3rem 1.4rem;font-family:var(--serif);font-size:1.08rem;color:var(--text-dim);line-height:1.7;}
.prose li{margin-bottom:.5rem;}
.prose li::marker{color:var(--accent-muted);}
.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--accent-dim);}
.prose a:hover{text-decoration-thickness:2px;}
.prose strong{color:var(--text);font-weight:600;}
.prose blockquote{margin:1.6rem 0;padding:1.25rem 1.5rem;background:var(--bg-inset);border:1px solid var(--hair);border-left:2px solid var(--accent);}
.prose blockquote p{font-family:var(--mono);font-size:.85rem;line-height:1.7;font-style:normal;color:var(--text-dim);}

/* ---------- legal / policy pages ---------- */
.legal-wrap{max-width:1100px;margin:0 auto;padding:clamp(2.2rem,5vw,3.6rem) var(--pad-x) clamp(3rem,7vw,6rem);display:grid;grid-template-columns:14rem 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.legal-wrap>*{min-width:0;}
.legal-toc{position:sticky;top:6rem;}
.legal-toc-label{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.8rem;}
.legal-toc ol{list-style:none;display:flex;flex-direction:column;gap:.55rem;}
.legal-toc a{font-family:var(--sans);font-size:.85rem;color:var(--text-dim);text-decoration:none;border-bottom:1px solid transparent;}
.legal-toc a:hover{color:var(--accent);border-color:var(--accent-dim);}
#section-content{max-width:68ch;}
.legal-section{margin-bottom:2.4rem;}
.legal-section:last-child{margin-bottom:0;}
.legal-section h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.25rem,2.6vw,1.55rem);line-height:1.2;margin-bottom:.9rem;letter-spacing:-.005em;}
.legal-section h3{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin:1.6rem 0 .6rem;}
.legal-section p{font-family:var(--serif);font-size:1.05rem;color:var(--text-dim);line-height:1.75;margin-bottom:1rem;}
.legal-section p:last-child{margin-bottom:0;}
.legal-section ul,.legal-section ol{margin:.6rem 0 1.2rem 1.4rem;font-family:var(--serif);font-size:1.02rem;color:var(--text-dim);line-height:1.7;}
.legal-section li{margin-bottom:.5rem;}
.legal-section li::marker{color:var(--accent-muted);}
.legal-section a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--accent-dim);}
.legal-section a:hover{text-decoration-thickness:2px;}
.legal-section strong{color:var(--text);font-weight:600;}
/* Quoted capture text. The Diff is mostly this: set in mono, on an inset
   ground, with the accent rule down the left, so a quotation is visibly a
   quotation and not the page's own prose. */
.legal-section blockquote{margin:1rem 0 1.25rem;padding:1.25rem 1.5rem;background:var(--bg-inset);border:1px solid var(--hair);border-left:2px solid var(--accent);max-width:46rem;}
.legal-section blockquote p{font-family:var(--mono);font-size:.85rem;line-height:1.7;color:var(--text-dim);margin:0;}
.legal-section blockquote p+p{margin-top:.8rem;}
.legal-section blockquote .cite{display:block;margin-top:.7rem;font-size:.72rem;}
.legal-section table{width:100%;border-collapse:collapse;margin:1rem 0 1.4rem;}
.legal-section th,.legal-section td{text-align:left;padding:.8rem 1rem .8rem 0;border-bottom:1px solid var(--hair);vertical-align:top;font-size:.95rem;color:var(--text-dim);}
.legal-section th{font-family:var(--mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--hair-strong);}
@media(max-width:800px){.legal-wrap{grid-template-columns:1fr;} .legal-toc{position:static;border-bottom:1px solid var(--hair);padding-bottom:1.6rem;margin-bottom:.4rem;}}

/* ---------- disclosure ---------- */
/* A short line carries the page; the rest opens on request. Native
   details/summary, so it works with scripting off and the keyboard already
   knows how to operate it. The marker is drawn in the accent and swaps sign
   rather than animating, in keeping with everything else here. */
/* The line that carries the page, when it sits in a section rather than the
   document head: full-strength text, set large, held to a short measure. */
.legal-section p.lede{font-family:var(--serif);font-size:clamp(1.3rem,2.8vw,1.75rem);line-height:1.35;color:var(--text);max-width:30ch;margin-bottom:0;}

.disclose{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin:1.6rem 0 0;max-width:46rem;}
.disclose>summary{display:flex;align-items:center;gap:.8rem;min-height:44px;padding:.35rem 0;cursor:pointer;font-family:var(--mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-muted);list-style:none;-webkit-user-select:none;user-select:none;}
.disclose>summary::-webkit-details-marker{display:none;}
.disclose>summary::before{content:"+";font-size:1.1rem;font-weight:400;line-height:1;color:var(--accent);width:1ch;text-align:center;}
.disclose[open]>summary::before{content:"–";}
.disclose>summary:hover{color:var(--accent);}
.disclose .disclose-body{padding:.35rem 0 1.4rem 1.8rem;border-left:1px solid var(--hair);margin-left:.4rem;}
.disclose .disclose-body>p:last-child{margin-bottom:0;}
@media(max-width:520px){.disclose .disclose-body{padding-left:1.1rem;}}

/* ---------- section band + head (hub pages) ---------- */
.band{padding:clamp(2.6rem,6vw,5rem) var(--pad-x);border-bottom:1px solid var(--hair);}
.band--raise{background:var(--bg-raise);}
.sec-head{display:grid;grid-template-columns:9rem 1fr;gap:2rem;align-items:start;margin-bottom:2.4rem;}
.sec-head .idx .n{font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.1em;color:var(--accent);display:block;}
.sec-head .idx .t{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;color:var(--text-dim);display:block;margin-top:.35rem;}
.sec-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,3.4vw,2.4rem);max-width:22ch;}
.sec-head .lede{grid-column:2;margin-top:.9rem;max-width:60ch;color:var(--text-dim);font-size:1.1rem;font-family:var(--serif);}
@media(max-width:680px){.sec-head{grid-template-columns:1fr;gap:.5rem;}.sec-head .lede{grid-column:1;}}

/* ---------- buttons + inline link ---------- */
.btn{display:inline-block;font-family:var(--mono);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:.75rem 1.5rem;border:1px solid var(--accent-dim);color:var(--accent);background:transparent;transition:background .18s,color .18s;}
.btn:hover{background:var(--accent);color:var(--bg);}
.btn.solid{background:var(--accent);color:var(--bg);border-color:var(--accent);}
.btn.solid:hover{background:var(--text);border-color:var(--text);}
.link-note{font-family:var(--serif);font-size:1.02rem;color:var(--accent-muted);text-decoration:none;border-bottom:1px solid var(--accent-dim);padding-bottom:1px;}
.link-note:hover{color:var(--accent);border-color:var(--accent);}

/* ---------- field note ---------- */
.fieldnote{border-left:2px solid var(--accent);padding:.2rem 0 .2rem 1.1rem;margin:1.6rem 0;max-width:52ch;}
.fieldnote .l{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-muted);display:block;margin-bottom:.35rem;}
.fieldnote p{margin:0;font-family:var(--serif);color:var(--text-dim);font-size:1.05rem;}

/* ---------- shared footer ---------- */
.site-footer{border-top:1px solid var(--hair-strong);background:var(--bg-raise);padding:clamp(2.4rem,5vw,3.6rem) var(--pad-x) 2rem;}
.site-footer .sf-top{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.1fr 2fr;gap:2.4rem;}
.site-footer .sf-brand{display:flex;align-items:flex-start;gap:.7rem;}
.site-footer .brand-logo-sm{height:30px;width:auto;display:block;}
.site-footer .sf-tag{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);}
.site-footer .sf-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
@media(max-width:680px){.site-footer .sf-nav{grid-template-columns:repeat(2,1fr);}}
.site-footer .sf-col{display:flex;flex-direction:column;gap:.5rem;}
.site-footer .sf-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.3rem;}
.site-footer .sf-col a,.site-footer .sf-col span{font-family:var(--sans);font-size:.9rem;color:var(--accent-muted);text-decoration:none;line-height:1.3;}
.site-footer .sf-col a{border-bottom:1px solid transparent;width:max-content;max-width:100%;}
.site-footer .sf-col a:hover{color:var(--accent);border-color:var(--accent-dim);}
.site-footer .sf-col a[aria-current="page"]{color:var(--text);border-color:var(--accent);}
.site-footer .sf-base{max-width:1100px;margin:2.4rem auto 0;padding-top:1.4rem;border-top:1px solid var(--hair);display:flex;justify-content:space-between;gap:1rem 2rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;color:var(--text-dim);flex-wrap:wrap;}
.site-footer .sf-base a{color:var(--accent-muted);}
.site-footer .sf-base a:hover{color:var(--accent);}
@media(max-width:760px){.site-footer .sf-top{grid-template-columns:1fr;gap:2rem;}}
@media(max-width:460px){.site-footer .sf-nav{grid-template-columns:1fr;}}
@media(max-width:680px){.site-footer .sf-col a{padding:.35rem 0;}}

.reveal{opacity:0;}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;}
  html{scroll-behavior:auto;}
  header.top nav a,.btn{transition:none;}
}

/* ---------- mobile nav ---------- */
.nav-toggle{display:none;align-items:center;gap:.55rem;min-height:44px;font-family:var(--mono);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--text);background:transparent;border:1px solid var(--edge);padding:.5rem .8rem;cursor:pointer;}
.nav-toggle .nt-bars{display:inline-flex;flex-direction:column;justify-content:center;gap:3px;width:14px;}
.nav-toggle .nt-bars span{display:block;height:1.5px;background:currentColor;transition:transform .16s ease,opacity .16s ease;}
.nav-toggle[aria-expanded="true"] .nt-bars span:nth-child(1){transform:translateY(4.5px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nt-bars span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] .nt-bars span:nth-child(3){transform:translateY(-4.5px) rotate(-45deg);}
@media(prefers-reduced-motion:reduce){.nav-toggle .nt-bars span{transition:none;}}
@media (max-width:720px){
  .nav-toggle{display:inline-flex;}
  header.top{flex-wrap:nowrap;position:sticky;top:0;}
  header.top nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:.2rem var(--pad-x) 1.1rem;background:var(--bg-raise);border-bottom:1px solid var(--hair-strong);}
  header.top nav.open{display:flex;}
  header.top nav a{display:flex;align-items:center;min-height:44px;width:100%;font-size:.9rem;border-bottom:1px solid var(--hair);border-top:none;}
  header.top nav a:last-child{border-bottom:none;}
  .brand-logo{max-width:56vw;object-fit:contain;object-position:left center;}
}
@media (max-width:560px){.brand-logo{height:36px;}}
@media (max-width:380px){.brand-logo{height:32px;}.nav-toggle{padding:.45rem .55rem;gap:.4rem;}}

/* ---------- The Diff: vendor filter ---------- */
/* Emitted hidden by tools/build-diff.py and revealed by assets/diff-filter.js,
   so the page reads whole without JavaScript. */
.docket-filter h3{margin-top:0;}
.vfilter{display:flex;flex-wrap:wrap;gap:.4rem;}
.vf{display:inline-flex;align-items:center;gap:.45rem;min-height:38px;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);background:transparent;border:1px solid var(--edge);padding:.4rem .7rem;cursor:pointer;}
.vf:hover{color:var(--text);border-color:var(--hair-strong);}
.vf .vf-n{font-size:.66rem;color:var(--text-dim);border-left:1px solid var(--hair-strong);padding-left:.45rem;}
.vf[aria-pressed="true"]{color:var(--bg);background:var(--accent);border-color:var(--accent);}
.vf[aria-pressed="true"] .vf-n{color:var(--bg);border-left-color:var(--bg);}
.vfilter-note{margin-top:1rem;}
