/* ══════════════════════════════════════════════════════════════════════════
   E94 · the merged v3 homepage.
   Deferred (media="print" → all) — its above-fold rules are inlined by
   critical-home-v3.css, so nothing here blocks first paint. A new handle needs
   an inc/critical-css.php allowlist entry or it render-blocks; dc-home-v3 is
   registered there.

   Provenance per block, so a later wave can see which ruling it is looking at:
     hero / bench / shop / reference ...... N3
     manifesto / close / figures / quotes . N1
     the layer ladder ..................... N2  (in inc/home-v3-stack.php)
     the ledger band ...................... N2
   ══════════════════════════════════════════════════════════════════════════ */

:root{
  --v3-max:1240px;
  --v3-gut:clamp(20px,4vw,44px);
  --v3-band:clamp(32px,3.2vw,46px);
  --v3-rule:rgba(255,255,255,.11);
  --v3-rule-2:rgba(255,255,255,.055);
  --v3-paper:#EDEAE3;
  --v3-ink:#14120E;
  --v3-dim:#55504A;
  --v3-paper-rule:#C8C2B4;
  --v3-paper-accent:#A34400;
}

.dc-v3-home{overflow-wrap:break-word}
.dc-v3-home h1,.dc-v3-home h2,.dc-v3-home h3{text-transform:none;letter-spacing:.005em;line-height:1.03}
.dc-v3-home p{margin-bottom:0}
.dc-v3-wrap{width:100%;max-width:var(--v3-max);margin-inline:auto;padding-inline:var(--v3-gut)}
.dc-v3-mono{font-family:var(--dc-font-mono);font-size:.695rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--dc-text-muted);line-height:1.6}
.dc-v3-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.dc-v3-home :focus-visible{outline:2px solid var(--dc-accent);outline-offset:3px;border-radius:2px}

/* ── controls ───────────────────────────────────────────────────────────── */
.dc-v3-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;
  padding:.8rem 1.6rem;font-family:var(--dc-font-heading);font-size:1.12rem;font-weight:600;
  letter-spacing:.045em;line-height:1.16;text-transform:uppercase;text-align:center;
  border:1.5px solid transparent;border-radius:2px;cursor:pointer;
  transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease}
.dc-v3-btn--fill{background:var(--dc-accent);color:#0D0D0D;border-color:var(--dc-accent)}
.dc-v3-btn--fill:hover,.dc-v3-btn--fill:focus-visible{background:var(--dc-accent-hover);border-color:var(--dc-accent-hover)}
.dc-v3-btn--line{background:transparent;color:var(--dc-accent);border-color:var(--dc-accent)}
.dc-v3-btn--line:hover,.dc-v3-btn--line:focus-visible{background:var(--dc-accent-bg);color:var(--dc-accent-hover);border-color:var(--dc-accent-hover)}
.dc-v3-go{display:inline-flex;align-items:center;min-height:28px;font-family:var(--dc-font-mono);font-size:.71rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--dc-text-secondary);
  border-bottom:1px solid var(--v3-rule);padding:4px 0;transition:color 160ms ease,border-color 160ms ease}
.dc-v3-go::after{content:"\00a0\2192";font-family:var(--dc-font-body)}
.dc-v3-go:hover,.dc-v3-go:focus-visible{color:var(--dc-accent);border-bottom-color:var(--dc-accent)}
.dc-v3-chip{display:inline-flex;align-items:center;min-height:22px;padding:1px .5rem;border:1px solid var(--dc-border-control);
  border-radius:999px;font-family:var(--dc-font-body);font-size:.7rem;font-weight:600;letter-spacing:0;
  text-transform:none;color:var(--dc-text-primary);background:rgba(255,255,255,.04)}

/* ══ 00 HERO (N3) ══════════════════════════════════════════════════════════ */
.dc-v3-hero{padding-block:clamp(30px,3.4vw,50px) clamp(20px,2.2vw,30px);
  background:radial-gradient(96% 78% at 78% 14%,rgba(255,110,0,.11),transparent 64%),var(--dc-bg-primary);
  border-bottom:1px solid var(--v3-rule)}
.dc-v3-hero__grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);
  column-gap:clamp(24px,4vw,64px);align-items:center}
.dc-v3-hero__eyebrow{color:var(--dc-accent);margin-bottom:.8rem}
.dc-v3-hero__h1{font-family:var(--dc-font-heading);font-size:clamp(3.1rem,6.9vw,5.4rem);font-weight:800;
  line-height:.94;letter-spacing:-.008em;text-transform:none;margin-bottom:1.15rem;color:var(--dc-text-primary)}
.dc-v3-hero__h1 em{font-style:normal;color:var(--dc-accent)}
.dc-v3-hero__sub{font-size:clamp(1.02rem,1.28vw,1.16rem);line-height:1.55;color:var(--dc-text-secondary);
  max-width:56ch;margin-bottom:1.4rem}
.dc-v3-hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.3rem}
.dc-v3-hero__obj{margin:0;display:flex;flex-direction:column;align-items:center;gap:.7rem}
.dc-v3-hero__img{width:100%;max-width:420px;height:auto;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.6)) drop-shadow(0 0 46px rgba(255,110,0,.13))}
.dc-v3-hero__cap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem .85rem}
.dc-v3-hero__cap b{color:var(--dc-text-primary);font-weight:400}
.dc-v3-hero__cap span:not(.dc-v3-chip){color:var(--dc-accent)}
.dc-v3-hero__foot{grid-column:1/-1;margin-top:clamp(16px,1.8vw,26px);padding-top:clamp(12px,1.2vw,16px);
  border-top:1px solid var(--v3-rule-2)}
.dc-v3-hero__proof{max-width:78ch}

/* ══ BAND / SECTION HEAD (N3) ══════════════════════════════════════════════ */
.dc-v3-band{padding-block:var(--v3-band);border-bottom:1px solid var(--v3-rule)}
.dc-v3-band--alt{background:var(--dc-bg-secondary)}
.dc-v3-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.6rem 2rem;
  padding-bottom:.65rem;border-bottom:1px solid var(--v3-rule);margin-bottom:clamp(16px,1.8vw,26px)}
.dc-v3-head__k{display:block;color:var(--dc-accent);margin-bottom:.55rem}
.dc-v3-head__t{font-size:clamp(2rem,3.9vw,3.15rem);line-height:1.02;text-transform:none;max-width:24ch;
  color:var(--dc-text-primary);font-family:var(--dc-font-heading);font-weight:700}
.dc-v3-lede{font-size:clamp(1rem,1.12vw,1.08rem);line-height:1.58;color:var(--dc-text-secondary);max-width:74ch}
.dc-v3-lede--gap{margin-bottom:clamp(12px,1.4vw,20px)}

/* ══ 01 BENCH (N3) ═════════════════════════════════════════════════════════ */
.dc-v3-bench{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,3.6vw,58px);align-items:start}
.dc-v3-bench__say{font-family:var(--dc-font-heading);font-size:clamp(1.75rem,3.3vw,2.7rem);font-weight:700;
  line-height:1.05;text-transform:uppercase;color:var(--dc-text-primary);margin:1.1rem 0 .7rem;
  padding-left:1.1rem;border-left:3px solid var(--dc-accent)}
.dc-v3-bench__note{font-size:.97rem;line-height:1.6;color:var(--dc-text-secondary);max-width:56ch;margin-bottom:1.1rem}
.dc-v3-bench__cta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.3rem}
.dc-v3-flow{border-top:1px solid var(--v3-rule);margin-bottom:1rem}
.dc-v3-flow__r{display:grid;grid-template-columns:minmax(6rem,7.5rem) 1fr;gap:.2rem 1rem;
  padding:.45rem 0;border-bottom:1px solid var(--v3-rule-2);align-items:baseline}
.dc-v3-flow__t{font-family:var(--dc-font-mono);font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;color:var(--dc-accent)}
.dc-v3-flow__d{font-size:.9rem;line-height:1.5;color:var(--dc-text-secondary)}
.dc-v3-wideplate{display:block;width:100%;aspect-ratio:21/9;overflow:hidden;
  border:1px solid var(--v3-rule);border-radius:var(--dc-radius-md);background:#0A0A0A}
.dc-v3-wideplate img{width:100%;height:100%;object-fit:cover;object-position:center}
.dc-v3-board__cap{margin-top:.55rem;display:flex;justify-content:space-between;gap:1rem}
.dc-v3-board__cap b{color:var(--dc-accent);font-weight:400}

/* ══ 02 BUILT TO ORDER (N3) ════════════════════════════════════════════════ */
.dc-v3-flag{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:clamp(20px,3vw,46px);
  align-items:center;padding:clamp(14px,1.5vw,22px);border:1px solid var(--v3-rule);border-radius:var(--dc-radius-md);
  background:linear-gradient(180deg,rgba(255,255,255,.022),transparent)}
.dc-v3-flag__frame{background:var(--v3-paper);border-radius:var(--dc-radius-sm);padding:14px;display:grid;place-items:center}
.dc-v3-flag__img{mix-blend-mode:multiply;width:100%;height:auto}
.dc-v3-flag__k{color:var(--dc-accent);margin-bottom:.45rem}
.dc-v3-flag__h{font-family:var(--dc-font-heading);font-size:clamp(2rem,3.4vw,2.9rem);line-height:1;
  text-transform:uppercase;margin-bottom:.35rem;color:var(--dc-text-primary);font-weight:700}
.dc-v3-flag__price{font-family:var(--dc-font-mono);font-size:1.06rem;color:var(--dc-accent);margin-bottom:.7rem;
  display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.dc-v3-flag__d{font-size:1rem;line-height:1.55;color:var(--dc-text-secondary);max-width:52ch;margin-bottom:.9rem}
.dc-v3-flag__cta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.3rem;margin-bottom:.9rem}
.dc-v3-credit{font-size:.79rem;line-height:1.5;color:var(--dc-text-muted);max-width:60ch}
.dc-v3-plates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,22px);margin-top:clamp(12px,1.4vw,18px)}
.dc-v3-plate{display:grid;grid-template-rows:auto auto auto 1fr;gap:.28rem;padding:clamp(12px,1.3vw,18px);
  border:1px solid var(--v3-rule);border-radius:var(--dc-radius-md);color:inherit;
  transition:border-color 170ms ease,background-color 170ms ease}
.dc-v3-plate:hover,.dc-v3-plate:focus-visible{border-color:var(--dc-accent);background:var(--dc-bg-surface)}
.dc-v3-plate__frame{aspect-ratio:2/1;background:var(--v3-paper);border-radius:var(--dc-radius-sm);padding:10px;
  display:grid;place-items:center;overflow:hidden;margin-bottom:.45rem}
.dc-v3-plate__frame img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.dc-v3-plate__tag{color:var(--dc-accent)}
.dc-v3-plate__name{font-family:var(--dc-font-heading);font-size:1.18rem;font-weight:700;line-height:1.08;
  text-transform:uppercase;color:var(--dc-text-primary)}
.dc-v3-plate__d{font-size:.855rem;line-height:1.5;color:var(--dc-text-secondary)}

/* ══ 03 MANIFESTO (N1 — full bleed, the loudest sentence on the page) ══════ */
.dc-v3-manifesto{padding-block:clamp(26px,2.4vw,40px) 0;background:var(--dc-bg-surface);
  border-bottom:1px solid var(--v3-rule)}
.dc-v3-manifesto__k{color:var(--dc-accent);margin-bottom:1.05rem}
.dc-v3-manifesto__p{font-size:clamp(1.1rem,1.72vw,1.62rem);line-height:1.42;color:var(--dc-text-secondary);
  max-width:48ch;margin-bottom:1.2rem}
.dc-v3-manifesto__q{font-family:var(--dc-font-heading);font-size:clamp(2.4rem,6.2vw,5.2rem);font-weight:800;
  line-height:.95;letter-spacing:-.008em;text-transform:uppercase;color:var(--dc-text-primary);
  margin-bottom:1.1rem;max-width:19ch}
.dc-v3-manifesto__q b{color:var(--dc-accent);font-weight:800}
.dc-v3-platewide{display:block;margin-top:clamp(18px,2vw,30px)}
.dc-v3-platewide img{width:100%;height:auto;aspect-ratio:5.4/1;object-fit:cover;object-position:center 46%;
  border-top:1px solid var(--v3-rule)}
.dc-v3-platewide__cap{max-width:var(--v3-max);margin-inline:auto;padding:.6rem var(--v3-gut) 0}
.dc-v3-platewide__cap span{color:var(--dc-text-secondary)}

/* ══ 04 THE STACK ═════════════════════════════════════════════════════════
   Arm S1 "The Structure", winner of the blind stack judging. Its stylesheet is
   appended VERBATIM at the foot of this file — 9,871 bytes, diff-verified
   identical to the block in proposals/S1/stack.html. The stub ladder that stood
   here (.dc-v3-ladder / .dc-v3-row / .dc-v3-stub) is deleted: S1 draws the
   structure instead of indexing it, which was the assignment.
   🔴 The colours in that block are a MEASURED contrast fix (worst local ratio
   5.67:1, sampled from rendered pixels). Re-run proposals/S1/shots/S1-measure.mjs
   before changing any of them. ═══════════════════════════════════════════════ */

/* ══ THE PAPER CHAPTER (05 + 07) ═══════════════════════════════════════════
   Contrast checked: ink 15.5:1, dim 6.6:1, accent 4.6:1 on #EDEAE3. */
.dc-v3-paper{background:var(--v3-paper);color:var(--v3-ink);border-bottom:1px solid var(--v3-paper-rule)}
.dc-v3-paper .dc-v3-head__t,.dc-v3-paper h3{color:var(--v3-ink)}
.dc-v3-paper .dc-v3-head{border-bottom-color:var(--v3-paper-rule)}
.dc-v3-paper .dc-v3-head__k{color:var(--v3-paper-accent)}
.dc-v3-paper .dc-v3-lede{color:var(--v3-dim)}
.dc-v3-paper .dc-v3-mono{color:var(--v3-dim)}
.dc-v3-paper .dc-v3-go{color:var(--v3-dim);border-bottom-color:var(--v3-paper-rule)}
.dc-v3-paper .dc-v3-go:hover,.dc-v3-paper .dc-v3-go:focus-visible{color:var(--v3-paper-accent);border-bottom-color:var(--v3-paper-accent)}
.dc-v3-paper .dc-v3-btn--line{color:var(--v3-paper-accent);border-color:var(--v3-paper-accent)}
.dc-v3-paper .dc-v3-btn--line:hover{background:rgba(163,68,0,.08);color:var(--v3-paper-accent)}
.dc-v3-paper .dc-v3-btn--fill{background:var(--v3-paper-accent);border-color:var(--v3-paper-accent);color:var(--v3-paper)}
.dc-v3-paper .dc-v3-btn--fill:hover{background:#8A3900;border-color:#8A3900}
.dc-v3-paper *:focus-visible{outline-color:var(--v3-paper-accent)}

/* ══ 05 THE REFERENCE (N3) ═════════════════════════════════════════════════ */
.dc-v3-lib{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(24px,3.6vw,56px);align-items:start}
.dc-v3-spec{background:#FFFDF8;border:1px solid var(--v3-paper-rule);border-radius:var(--dc-radius-sm);
  box-shadow:0 18px 34px rgba(20,18,14,.13);padding:clamp(16px,1.8vw,26px);position:relative}
.dc-v3-spec::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--v3-paper-accent);
  border-radius:var(--dc-radius-sm) 0 0 var(--dc-radius-sm)}
.dc-v3-spec__top{display:flex;align-items:center;gap:.7rem;margin-bottom:.6rem;flex-wrap:wrap}
.dc-v3-spec__code{font-family:var(--dc-font-mono);font-size:1.28rem;font-weight:500;color:var(--v3-paper-accent);line-height:1}
.dc-v3-spec__sev{font-family:var(--dc-font-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--v3-paper-accent);color:var(--v3-paper-accent);border-radius:2px;padding:2px 6px}
.dc-v3-spec__h{font-family:var(--dc-font-heading);font-size:clamp(1.2rem,1.9vw,1.55rem);line-height:1.1;
  text-transform:none;margin-bottom:.6rem;color:var(--v3-ink);font-weight:700}
.dc-v3-spec__q{font-size:.93rem;line-height:1.58;color:var(--v3-dim);margin-bottom:.85rem}
.dc-v3-spec__step{border-top:1px solid var(--v3-paper-rule);padding-top:.7rem;display:grid;
  grid-template-columns:auto 1fr;gap:.2rem .9rem;align-items:baseline}
.dc-v3-spec__sn{font-family:var(--dc-font-mono);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--v3-paper-accent);white-space:nowrap}
.dc-v3-spec__sd{font-size:.9rem;line-height:1.5;color:var(--v3-ink)}
.dc-v3-spec__cap{margin-top:.85rem;padding-top:.6rem;border-top:1px dashed var(--v3-paper-rule)}
.dc-v3-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--v3-paper-rule)}
.dc-v3-index li{border-bottom:1px solid var(--v3-paper-rule)}
.dc-v3-index a{display:grid;grid-template-columns:1fr auto;gap:.9rem;align-items:baseline;padding:.62rem 0;
  min-height:28px;color:var(--v3-ink);transition:color 150ms ease}
.dc-v3-index a:hover,.dc-v3-index a:focus-visible{color:var(--v3-paper-accent)}
.dc-v3-index__l{font-size:.98rem;font-weight:500}
.dc-v3-index__n{font-family:var(--dc-font-mono);font-size:.98rem;color:var(--v3-paper-accent)}
.dc-v3-lib__foot{margin-top:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem}
.dc-v3-lib__api{margin-top:.9rem}

/* ══ 06 THE LEDGER BAND (N2 — one paragraph, one link, no status table) ════ */
.dc-v3-ledger{background:var(--dc-bg-secondary);border-bottom:1px solid var(--v3-rule);
  padding-block:clamp(14px,1.5vw,22px)}
.dc-v3-ledger__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.9rem 2rem}
.dc-v3-ledger__p{font-size:.98rem;line-height:1.5;color:var(--dc-text-secondary);max-width:78ch}
.dc-v3-ledger__p b{color:var(--dc-text-primary);font-weight:600}

/* ══ 07 THE CLOSE (N1) ═════════════════════════════════════════════════════ */
.dc-v3-close{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(26px,4vw,72px);align-items:start}
.dc-v3-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem 1.8rem}
.dc-v3-fig__n{display:block;font-family:var(--dc-font-heading);font-size:clamp(2.3rem,4vw,3.4rem);font-weight:800;
  line-height:.92;color:var(--v3-ink)}
.dc-v3-fig__l{display:block;font-family:var(--dc-font-mono);font-size:.665rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--v3-dim);margin-top:.35rem;line-height:1.5}
.dc-v3-quotes__k{margin-top:1.1rem;padding-top:.8rem;border-top:1px solid var(--v3-paper-rule)}
.dc-v3-quotes{margin-top:.7rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
.dc-v3-quote{margin:0}
.dc-v3-quote__stars{display:block;color:var(--v3-paper-accent);font-size:.8rem;letter-spacing:.15em;margin-bottom:.4rem}
.dc-v3-quote__t{font-size:.98rem;line-height:1.5;color:var(--v3-ink);margin:0 0 .45rem}
.dc-v3-quote__c{font-family:var(--dc-font-mono);font-size:.645rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--v3-dim);line-height:1.6}
.dc-v3-quotes__ledger{margin-top:.9rem}
.dc-v3-quotes__go{margin-top:1rem}
.dc-v3-fundq{font-family:var(--dc-font-heading);font-size:clamp(2rem,4.2vw,3.5rem);font-weight:800;line-height:.98;
  text-transform:uppercase;color:var(--v3-ink);margin-bottom:1.2rem}
.dc-v3-fundq b{color:var(--v3-paper-accent);font-weight:800}
.dc-v3-fundp{font-size:1rem;line-height:1.58;color:var(--v3-dim);margin-bottom:1.2rem;max-width:46ch}
.dc-v3-pay{display:flex;flex-wrap:wrap;gap:.4rem .5rem;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--v3-paper-rule)}
.dc-v3-pay__i{display:inline-flex;align-items:center;min-height:26px;padding:.16rem .6rem;border:1px solid var(--v3-paper-rule);
  border-radius:2px;font-family:var(--dc-font-mono);font-size:.645rem;letter-spacing:.08em;text-transform:uppercase;color:var(--v3-dim)}
.dc-v3-pay__i--btc{background:var(--v3-paper-accent);border-color:var(--v3-paper-accent);color:var(--v3-paper)}

/* ══ THE FR-ONLY INJECTED LINK BLOCK ══════════════════════════════════════
   mu-plugins/dcentral-internal-linking-round2-hotfix.php appends a <section>
   into the page through a whole-page output buffer, but ONLY with the links the
   rendered HTML does not already contain. The v2 FR homepage carries 507
   anchors and therefore already has both, so the block never appears there; the
   v3 FR homepage carries ~85 and so it does. It is two real FR internal links
   from the site's highest-authority page, and pruning internal links is against
   standing owner doctrine — so it stays, styled as a thin closing strip instead
   of an unstyled H2 competing with a designed page. No PHP is touched: this is
   presentation only, on the v3 branch only, and the mu-plugin behaves exactly as
   it does today everywhere else. NOTE: it makes the FR page 8 <section>s to
   EN's 7, and the §3.1 volume table is measured on EN. */
body.dc-v3 .dcentral-round2-contextual-links{max-width:var(--v3-max);margin-inline:auto;
  padding:clamp(14px,1.6vw,20px) var(--v3-gut);border-bottom:1px solid var(--v3-rule);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.4rem}
body.dc-v3 .dcentral-round2-contextual-links h2{font-family:var(--dc-font-mono);font-size:.645rem;
  font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--dc-text-muted);margin:0}
body.dc-v3 .dcentral-round2-contextual-links ul{list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:.3rem 1.15rem}
body.dc-v3 .dcentral-round2-contextual-links a{display:inline-flex;align-items:center;min-height:28px;
  font-size:.88rem;color:var(--dc-text-secondary)}
body.dc-v3 .dcentral-round2-contextual-links a:hover,
body.dc-v3 .dcentral-round2-contextual-links a:focus-visible{color:var(--dc-accent)}

/* ══ RESPONSIVE ════════════════════════════════════════════════════════════ */
@media (max-width:1080px){
  .dc-v3-plates{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  :root{--v3-band:clamp(24px,5vw,38px)}
  .dc-v3-hero{padding-block:22px 20px}
  .dc-v3-hero__grid{grid-template-columns:minmax(0,1fr) clamp(104px,29vw,142px);column-gap:14px;row-gap:8px;
    align-items:start;grid-template-areas:"eyebrow eyebrow" "h1 obj" "cap cap" "sub sub" "cta cta" "foot foot"}
  .dc-v3-hero__say{display:contents}
  .dc-v3-hero__eyebrow{grid-area:eyebrow;margin-bottom:.1rem;font-size:.63rem;letter-spacing:.07em}
  .dc-v3-hero__h1{grid-area:h1;font-size:clamp(2rem,8.6vw,2.7rem);margin-bottom:0;align-self:start}
  .dc-v3-hero__obj{display:contents}
  .dc-v3-hero__objlink{grid-area:obj;align-self:start;width:100%}
  .dc-v3-hero__img{max-width:100%;filter:drop-shadow(0 12px 22px rgba(0,0,0,.55))}
  .dc-v3-hero__cap{grid-area:cap;justify-content:flex-start;text-align:left;font-size:.615rem;gap:.28rem .55rem}
  .dc-v3-hero__sub{grid-area:sub;font-size:.95rem;line-height:1.46;margin-bottom:.45rem;max-width:none}
  .dc-v3-hero__cta{grid-area:cta;margin-bottom:0;gap:.6rem}
  .dc-v3-hero__cta .dc-v3-btn{flex:1 1 100%}
  .dc-v3-hero__foot{grid-area:foot;margin-top:14px}
  .dc-v3-head{grid-template-columns:1fr;align-items:start;gap:.7rem;margin-bottom:18px;padding-bottom:.65rem}
  .dc-v3-bench,.dc-v3-lib,.dc-v3-flag,.dc-v3-close{grid-template-columns:minmax(0,1fr)}
  .dc-v3-flag{padding:14px}
  .dc-v3-flag__frame{max-width:320px;margin-inline:auto}
  .dc-v3-plates{grid-template-columns:minmax(0,1fr)}
  .dc-v3-bench__say{font-size:clamp(1.5rem,7vw,2rem)}
  .dc-v3-manifesto{padding-block:40px 0}
  .dc-v3-manifesto__p{max-width:none;font-size:1.05rem;margin-bottom:1.6rem}
  .dc-v3-manifesto__q{font-size:clamp(1.9rem,8.4vw,2.8rem);max-width:none;margin-bottom:1.5rem}
  .dc-v3-platewide img{aspect-ratio:16/9}
  .dc-v3-platewide__cap{font-size:.62rem}
  .dc-v3-quotes{grid-template-columns:1fr;gap:1.1rem}
  .dc-v3-close{gap:26px}
  .dc-v3-btn{min-height:52px;font-size:1.1rem;padding:.8rem 1.4rem}
}
@media (max-width:480px){
  .dc-v3-figs{grid-template-columns:1fr 1fr;gap:1.1rem}
}
@media (prefers-reduced-motion:reduce){
  .dc-v3-home *{animation-duration:.001ms!important;transition:none!important}
}

/* ══════════════════════════════════════════════════════════════════════════
   SECTION 04 · ARM S1 "THE STRUCTURE" — moved here verbatim from stack.php.
   Do not edit in place without re-running the arm's contrast sampler.
   ══════════════════════════════════════════════════════════════════════════ */
.dcs{
  --dcs-max:1240px;
  --dcs-gut:clamp(20px,4vw,44px);      /* page gutter */
  --dcs-col:clamp(15px,2vw,27px);      /* width of the load column at the footing */
  --dcs-pad:clamp(12px,1.5vw,22px);    /* load column → text */
  --dcs-over:clamp(9px,1.2vw,18px);    /* how far the footing oversails */
  --dcs-rule:rgba(255,255,255,.14);
  --dcs-rule-2:rgba(255,255,255,.075);
  background:var(--dc-bg-primary);color:var(--dc-text-primary);
  padding-bottom:clamp(20px,2.1vw,30px);
}
.dcs *,.dcs *::before,.dcs *::after{box-sizing:border-box}
.dcs__wrap{max-width:var(--dcs-max);margin-inline:auto;padding-inline:var(--dcs-gut)}

/* ── the chapter plate: one house image, and it hosts the headline ────────── */
.dcs__plate{position:relative;overflow:hidden;display:flex;align-items:flex-end;
  min-height:clamp(164px,13.2vw,190px)}
/* CONTRAST FIX 1/3 — the plate image is knocked down so the flare can never
   reach a luminance that white display type or orange mono type sits badly on. */
.dcs__plateimg{position:absolute;inset:0;z-index:0;width:100%;height:100%;
  object-fit:cover;object-position:center 44%;filter:brightness(.5) saturate(.94)}
/* CONTRAST FIX 2/3 — scrims strengthened over the text band. */
.dcs__plate::after{content:'';position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(13,13,13,.62) 0%,rgba(13,13,13,.30) 26%,rgba(13,13,13,.84) 72%,var(--dc-bg-primary) 100%),
  linear-gradient(90deg,rgba(13,13,13,.90) 0%,rgba(13,13,13,.56) 40%,rgba(13,13,13,.16) 82%,rgba(13,13,13,.30) 100%)}
.dcs__platein{position:relative;z-index:2;width:100%;padding-block:clamp(15px,1.8vw,26px)}
/* CONTRAST FIX 3/3 — the eyebrow is a title block, not floating type. Its own
   near-opaque backing makes its ratio independent of whatever is behind it. */
.dcs__eyebrow{display:inline-block;margin:0 0 .6rem;padding:.36rem .64rem .32rem;
  background:rgba(7,7,7,.92);border-left:2px solid var(--dc-accent);
  font-family:var(--dc-font-mono);font-size:.7rem;letter-spacing:.19em;
  text-transform:uppercase;color:var(--dc-accent)}
.dcs__h2{margin:0;font-family:var(--dc-font-heading);font-weight:800;text-transform:uppercase;
  font-size:clamp(2.05rem,5vw,3.85rem);line-height:.95;letter-spacing:.006em;
  color:#FFFFFF;max-width:23ch;text-shadow:0 2px 22px rgba(0,0,0,.85),0 0 6px rgba(0,0,0,.55)}
.dcs__h2 em{font-style:normal;color:var(--dc-accent)}

/* ── the sentence, both halves of it ──────────────────────────────────────── */
.dcs__lede{margin:clamp(13px,1.5vw,20px) 0 clamp(13px,1.5vw,19px);max-width:76ch;
  font-size:clamp(1rem,1.12vw,1.12rem);line-height:1.56;color:var(--dc-text-secondary)}
.dcs__lede b{color:var(--dc-text-primary);font-weight:600}

/* ══ THE ELEVATION ════════════════════════════════════════════════════════ */
.dcs__elev{position:relative}

/* DOM order is reading order (1 Money … 7 Food). column-reverse draws it bottom-up
   so the foundation is at the bottom, where a foundation goes. */
.dcs__courses{position:relative;list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column-reverse;counter-reset:dcs}

/* the load path: a wedge, thin at the top, full width where it lands on the footing */
.dcs__courses::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--dcs-col);
  pointer-events:none;
  background:linear-gradient(to top,var(--dc-accent) 0%,var(--dc-accent) 9%,rgba(255,110,0,.70) 30%,
    rgba(255,110,0,.34) 62%,rgba(255,110,0,.17) 100%);
  -webkit-clip-path:polygon(70% 0,100% 0,100% 100%,0 100%);
  clip-path:polygon(70% 0,100% 0,100% 100%,0 100%)}

/* a course. defaults are the "small" weight; the modifiers below re-weight it. */
.dcs__c{position:relative;counter-increment:dcs;border-top:1px solid var(--dcs-rule-2);
  --dcs-h:clamp(10px,1.05vw,15px);
  --dcs-fs:clamp(1.02rem,1.42vw,1.22rem);
  --dcs-fill:32%}
/* mass, drawn: how far the built material reaches across the course */
.dcs__c::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.058),
    rgba(255,255,255,.014) calc(var(--dcs-fill) * .68),transparent var(--dcs-fill))}
.dcs__a{position:relative;z-index:1;display:grid;
  grid-template-columns:auto minmax(0,17.5rem) minmax(0,1fr);
  column-gap:clamp(13px,1.9vw,32px);row-gap:.3rem;align-items:baseline;
  padding-block:var(--dcs-h);padding-left:calc(var(--dcs-col) + var(--dcs-pad));
  padding-right:clamp(8px,1vw,16px);
  color:inherit;text-decoration:none;transition:background-color 160ms ease}
.dcs__a::before{content:counter(dcs,decimal-leading-zero);
  font-family:var(--dc-font-mono);font-size:.72rem;letter-spacing:.09em;
  color:var(--dc-accent);opacity:.8;transform:translateY(-.15em)}

/* the transplanted kicker: the DEFENDER, named, above the canon layer name.
   Row 07 has none — it has no defender, and the section must not invent one. */
.dcs__kick{display:block;margin-bottom:.34rem;font-family:var(--dc-font-mono);
  font-weight:400;font-size:.665rem;line-height:1.1;letter-spacing:.19em;
  text-transform:uppercase;color:var(--dc-accent)}
.dcs__name{font-family:var(--dc-font-heading);font-weight:800;text-transform:uppercase;
  font-size:var(--dcs-fs);line-height:1;letter-spacing:.02em;color:var(--dc-text-primary)}
/* optional footnote under a name. No course sets it today; the PHP still supports
   the 'tag' key, so the rule exists to stop an unstyled span inheriting the
   display face at 2.95rem. */
.dcs__tag{display:block;margin-top:.4rem;font-family:var(--dc-font-mono);font-weight:400;
  font-size:.63rem;letter-spacing:.19em;text-transform:uppercase;color:var(--dc-text-muted)}
.dcs__say{font-size:clamp(.9rem,1vw,1rem);line-height:1.5;color:var(--dc-text-secondary);
  max-width:58ch}
.dcs__a:hover{background:rgba(255,110,0,.07)}
.dcs__a:hover .dcs__name{color:var(--dc-accent)}
.dcs__a:focus-visible{background:rgba(255,110,0,.07);outline:2px solid var(--dc-accent);
  outline-offset:-2px}
.dcs__a:focus-visible .dcs__name{color:var(--dc-accent)}

/* ── weights. ranked from evidence/layer-depth-2026-09-04.md. no figure printed. ── */
.dcs__c--lg{--dcs-h:clamp(13px,1.4vw,20px);--dcs-fs:clamp(1.3rem,2.2vw,1.86rem);--dcs-fill:76%}
.dcs__c--md{--dcs-h:clamp(12px,1.3vw,18px);--dcs-fs:clamp(1.12rem,1.68vw,1.44rem);--dcs-fill:50%}
.dcs__c--sm{margin-right:clamp(0px,9%,112px)}
.dcs__c--lg .dcs__say{font-size:clamp(.94rem,1.05vw,1.04rem);color:#BEC3CB}

/* the footing. it oversails the courses on both sides, because it carries more
   than it is: the bench and the catalogue pay for every layer above. */
.dcs__c--base{--dcs-h:clamp(20px,2.2vw,32px);--dcs-fs:clamp(1.85rem,3.85vw,2.95rem);--dcs-fill:100%;
  margin-inline:calc(-1 * var(--dcs-over));
  border-top:1px solid var(--dc-accent-border);border-bottom:2px solid var(--dc-accent);
  background:linear-gradient(180deg,rgba(255,110,0,.045),rgba(255,110,0,.115))}
.dcs__c--base .dcs__a{padding-left:calc(var(--dcs-col) + var(--dcs-pad) + var(--dcs-over));
  padding-right:calc(clamp(8px,1vw,16px) + var(--dcs-over))}
.dcs__c--base .dcs__say{font-size:clamp(.97rem,1.1vw,1.08rem);color:#C9CDD4}
.dcs__c--base .dcs__a::before{opacity:1;font-size:.8rem}
.dcs__c--base .dcs__kick{font-size:.72rem}

/* the honest one. framed, not filled: an outline with nothing inside it, the
   narrowest and highest thing in the drawing, and the only course with no kicker. */
.dcs__c--frame{--dcs-h:clamp(8px,.85vw,12px);--dcs-fs:clamp(.93rem,1.12vw,1.04rem);--dcs-fill:0%;
  margin-right:clamp(0px,15%,182px);
  border-top:1px dashed var(--dcs-rule);
  border-right:1px dashed var(--dcs-rule)}
.dcs__c--frame .dcs__name,.dcs__c--frame .dcs__say{color:var(--dc-text-muted)}
.dcs__c--frame .dcs__say{font-size:clamp(.85rem,.92vw,.93rem);line-height:1.45}
.dcs__c--frame .dcs__a::before{opacity:.55}

/* ── the ground the whole thing stands on ─────────────────────────────────── */
.dcs__ground{margin-inline:calc(-1 * var(--dcs-over));height:clamp(12px,1.3vw,18px);
  background:repeating-linear-gradient(135deg,rgba(255,110,0,.42) 0 1px,transparent 1px 6px)}
.dcs__grd{margin:.38rem 0 0;font-family:var(--dc-font-mono);font-size:.68rem;
  letter-spacing:.17em;text-transform:uppercase;color:var(--dc-text-muted)}

.dcs__more{margin:clamp(10px,1vw,13px) 0 0}
.dcs__more a{display:inline-block;font-family:var(--dc-font-mono);font-size:.74rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--dc-text-secondary);
  text-decoration:none;border-bottom:1px solid var(--dcs-rule);padding-bottom:.2rem}
.dcs__more a:hover,.dcs__more a:focus-visible{color:var(--dc-accent);
  border-bottom-color:var(--dc-accent)}

/* ── 390 px ───────────────────────────────────────────────────────────────── */
@media (max-width:760px){
  .dcs__plate{min-height:clamp(164px,42vw,214px)}
  .dcs__h2{font-size:clamp(1.95rem,8.6vw,2.7rem);max-width:17ch}
  .dcs__a{grid-template-columns:auto minmax(0,1fr);row-gap:.4rem}
  .dcs__a::before{grid-row:1;grid-column:1}
  .dcs__name{grid-row:1;grid-column:2}
  .dcs__say{grid-row:2;grid-column:2;max-width:none}
  .dcs__c--sm,.dcs__c--frame{margin-right:0}
  .dcs__c--frame{border-right:0}
  .dcs__c--base{--dcs-fs:clamp(1.72rem,9.2vw,2.5rem);--dcs-h:clamp(17px,4.4vw,26px)}
  .dcs__c--lg{--dcs-h:clamp(13px,3.4vw,20px)}
  .dcs__c--md{--dcs-h:clamp(11px,2.9vw,16px)}
  .dcs__kick{font-size:.63rem;letter-spacing:.16em;margin-bottom:.28rem}
}
@media (prefers-reduced-motion:reduce){.dcs__a{transition:none}}
