:root {
  
  --paper:        oklch(98.6% 0.004 250);   
  --paper-sunk:   oklch(96.4% 0.006 250);   
  --raised:       oklch(99.6% 0.002 250);   
  --inset:        oklch(95.2% 0.007 250);   

  --ink-1: oklch(22% 0.012 255);   
  --ink-2: oklch(38% 0.011 255);   
  --ink-3: oklch(53% 0.010 255);   
  --ink-4: oklch(66% 0.008 255);   

  --edge:        oklch(89% 0.006 255);   
  --edge-strong: oklch(82% 0.008 255);   
  --edge-soft:   oklch(92.5% 0.005 255); 

  --flux:      oklch(72% 0.185 158);   
  --flux-mid:  oklch(58% 0.165 157);   
  --flux-ink:  oklch(45% 0.135 156);   
  --flux-wash: oklch(95% 0.035 158);   
  --flux-edge: oklch(86% 0.06 158);    

  --clay:      oklch(58% 0.10 58);
  --clay-wash: oklch(95% 0.03 70);
  --clay-edge: oklch(87% 0.055 65);

  --term:    oklch(20% 0.012 250);
  --term-2:  oklch(25% 0.013 250);
  --term-3:  oklch(30% 0.012 250);
  --term-line: oklch(34% 0.012 250);
  --term-ink:  oklch(91% 0.006 250);
  --term-ink-2: oklch(68% 0.008 250);

  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --font-text: "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-disp: "Newsreader", Georgia, serif;

  --sp-major: clamp(72px, 11vw, 168px);
  --sp-mid:   clamp(40px, 6vw, 72px);
  --sp-minor: 28px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:36px; --sp-7:56px;

  
  --r-struct:2px; --r-card:4px; --r-soft:4px; --r-full:999px;

  --ease-signal: cubic-bezier(.22,.92,.32,1);
  --ease-out: cubic-bezier(.2,.7,.3,1);

  --gutter: clamp(20px, 5vw, 64px);
  --content: 1180px;
  --reading: 760px;
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; background:var(--paper); color:var(--ink-1);
  font-family:var(--font-text); font-optical-sizing:auto;
  font-size:16px; line-height:1.62; letter-spacing:-0.006em;
  font-variant-numeric: lining-nums;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a { color:var(--flux-ink); text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:2px; }
h1,h2,h3,h4 { text-wrap:balance; }
p { hyphens:auto; }

.shell {
  display:grid;
  
  justify-content:center;
  grid-template-columns:
    [bleed-start] var(--gutter)
    [wide-start] minmax(0, calc((var(--content) - var(--reading)) / 2))
    [content-start] minmax(0, var(--reading))
    [content-end] minmax(0, calc((var(--content) - var(--reading)) / 2))
    [wide-end] var(--gutter) [bleed-end];
}
.shell > * { grid-column: content; }
.col-wide { grid-column: wide; }
.col-bleed { grid-column: bleed; }

.tnum { font-variant-numeric: tabular-nums lining-nums; }

.rule-motif {
  grid-column: bleed; height:1px; border:none; margin:0;
  background:
    linear-gradient(90deg, var(--edge-strong) 0 14px, transparent 14px) left/100% 1px no-repeat,
    linear-gradient(90deg, transparent calc(100% - 14px), var(--edge-strong) calc(100% - 14px)) right/100% 1px no-repeat,
    linear-gradient(90deg, var(--edge) 0 100%) center/100% 1px no-repeat;
  position:relative;
}
.rule-motif::before, .rule-motif::after {
  content:""; position:absolute; top:-3px; width:1px; height:7px; background:var(--edge-strong);
}
.rule-motif::before { left:14px; } .rule-motif::after { right:14px; }

.overline {
  font-family:var(--font-mono); font-size:12px; font-weight:500;
  font-variant: all-small-caps; letter-spacing:0.06em; color:var(--ink-3);
}
.overline.flux { color:var(--flux-ink); }

.gov-bar {
  background:var(--term); color:var(--term-ink-2);
  border-bottom:1px solid var(--term-line);
  font-family:var(--font-mono); font-size:11px; letter-spacing:0.03em;
}
.gov-bar .inner {
  max-width:var(--content); margin:0 auto; padding:7px var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.gov-bar .doc-id b { color:var(--term-ink); font-weight:500; }
.gov-bar .gov-status { color:var(--flux); display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.gov-bar .gov-status .pulse {
  width:6px; height:6px; border-radius:50%; background:var(--flux);
  box-shadow:0 0 0 0 var(--flux); animation:pulse 2.4s var(--ease-signal) infinite;
}
@keyframes pulse { 0%{box-shadow:0 0 0 0 oklch(72% 0.185 158 / .55);} 70%{box-shadow:0 0 0 7px oklch(72% 0.185 158 / 0);} 100%{box-shadow:0 0 0 0 oklch(72% 0.185 158 / 0);} }

header.site {
  position:sticky; top:0; z-index:50;
  background:oklch(98.6% 0.004 250 / 0.86); backdrop-filter:blur(10px) saturate(1.2);
  border-bottom:1px solid var(--edge-strong);
}
.nav {
  display:flex; align-items:center; gap:var(--sp-5);
  max-width:var(--content); margin:0 auto; padding:var(--sp-3) var(--gutter);
}
.brand { display:flex; align-items:center; gap:10px; }
.nav ul { list-style:none; display:flex; align-items:center; gap:2px; margin:0; padding:0; }
.nav .spacer { flex:1; }
.nav-link {
  font-family:var(--font-mono); font-size:13px; color:var(--ink-2);
  padding:9px 12px; border-radius:var(--r-struct); display:inline-flex; align-items:center; gap:5px;
  cursor:pointer; white-space:nowrap; border:1px solid transparent; min-height:40px; transition:background .14s var(--ease-out), color .14s;
}
.nav-link:hover { background:var(--inset); color:var(--ink-1); text-decoration:none; }
.nav-link .caret { width:9px; height:9px; }
.nav-item { position:relative; }
.dropdown {
  position:absolute; top:calc(100% + 8px); left:0; min-width:288px; background:var(--raised);
  border:1px solid var(--edge-strong); border-radius:var(--r-soft); padding:var(--sp-2);
  box-shadow:0 1px 2px oklch(22% 0.012 255 / .04), 0 22px 50px -30px oklch(22% 0.012 255 / .45);
  opacity:0; visibility:hidden; transform:translateY(-5px);
  transition:opacity .16s var(--ease-out), transform .16s var(--ease-out), visibility .16s; z-index:60;
}
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown a { display:flex; flex-direction:column; gap:2px; padding:9px 11px; border-radius:var(--r-struct); color:var(--ink-1); border-left:2px solid transparent; }
.dropdown a:hover { background:var(--flux-wash); border-left-color:var(--flux-mid); text-decoration:none; }
.dropdown a .d-t { font-family:var(--font-mono); font-size:13px; font-weight:500; color:var(--ink-1); }
.dropdown a .d-s { font-size:12px; color:var(--ink-3); }
.dropdown .dd-head { font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.08em; color:var(--ink-4); padding:8px 11px 4px; }
.nav-cta { display:flex; align-items:center; gap:var(--sp-3); }
.btn.menu-toggle { display:none; }

.btn {
  font-family:var(--font-mono); font-size:13px; font-weight:500; letter-spacing:0.005em;
  padding:10px 17px 10px 16px; border-radius:var(--r-struct); cursor:pointer; border:1px solid transparent;
  display:inline-flex; align-items:center; gap:var(--sp-2); min-height:42px;
  white-space:nowrap; flex-shrink:0; 
  transition:transform .16s var(--ease-signal), background .14s var(--ease-out), border-color .14s, box-shadow .16s var(--ease-out);
}
.btn svg { width:14px; height:14px; }
.btn-primary { background:var(--ink-1); color:var(--paper); border-color:var(--ink-1); }
.btn-primary:hover { background:oklch(28% 0.012 255); transform:translateY(-1px); box-shadow:0 8px 18px -10px oklch(22% 0.012 255 / .5); text-decoration:none; }
.btn-flux { background:var(--flux-ink); color:#fff; border-color:var(--flux-ink); }
.btn-flux:hover { background:var(--flux-mid); transform:translateY(-1px); box-shadow:0 8px 18px -10px oklch(22% 0.012 255 / .5); text-decoration:none; } 
.btn-secondary { background:var(--raised); color:var(--ink-1); border-color:var(--edge-strong); }
.btn-secondary:hover { border-color:var(--ink-3); background:var(--inset); transform:translateY(-1px); text-decoration:none; }
.btn-lg { padding:13px 22px; font-size:14px; min-height:48px; }
.btn .arrow { transition:transform .2s var(--ease-signal); }
.btn:hover .arrow { transform:translateX(2px); }

.hero { position:relative; border-bottom:1px solid var(--edge); overflow:hidden; }

.grain {
  position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.5;
  mix-blend-mode:overlay;
}
.hero-grid {
  position:relative; z-index:1;
  display:grid; grid-template-columns:58fr 42fr; gap:clamp(32px,5vw,72px);
  align-items:start; 
  max-width:var(--content); margin:0 auto; padding:clamp(48px,8vw,104px) var(--gutter) var(--sp-major);
}
.hero-copy { padding-top:clamp(8px,2vw,28px); } 
.eyebrow {
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:12px; font-variant:all-small-caps; letter-spacing:0.05em;
  color:var(--flux-ink);
}
.eyebrow .dot { width:6px; height:6px; border-radius:50%; background:var(--flux-mid); }
h1.hero-title {
  font-family:var(--font-disp); font-weight:500;
  font-size:clamp(34px, 5.2vw, 58px); line-height:1.02; letter-spacing:-0.025em;
  margin:var(--sp-5) 0 0; max-width:15ch; text-wrap:balance;
}
h1.hero-title .flux { color:var(--flux-ink); font-style:italic; font-weight:500; }
.hero-sub {
  font-size:clamp(16px,1.4vw,18px); color:var(--ink-2); margin:var(--sp-5) 0 0; max-width:52ch; line-height:1.58;
}
.hero-sub b { font-weight:560; color:var(--ink-1); }
.hero-actions { display:flex; gap:var(--sp-3); margin-top:var(--sp-6); flex-wrap:wrap; }
.hero-meta {
  display:flex; gap:var(--sp-5); margin-top:var(--sp-6); flex-wrap:wrap;
  font-family:var(--font-mono); font-size:12px; color:var(--ink-3);
  padding-top:var(--sp-4); border-top:1px solid var(--edge);
}
.hero-meta b { color:var(--ink-2); font-weight:500; }

.hero-visual {
  background:var(--raised); border:1px solid var(--edge-strong); border-radius:var(--r-soft);
  overflow:hidden;
  box-shadow:0 1px 1px oklch(22% 0.012 255 / .03), 0 2px 4px oklch(22% 0.012 255 / .04), 0 26px 60px -34px oklch(38% 0.011 255 / .5);
}
.hv-chrome { display:flex; align-items:center; gap:7px; padding:10px 13px; background:var(--inset); border-bottom:1px solid var(--edge); }
.hv-chrome .d { width:9px; height:9px; border-radius:50%; background:var(--edge-strong); }
.hv-chrome .u { margin-left:var(--sp-3); font-family:var(--font-mono); font-size:11px; color:var(--ink-3); }
.hv-stage { position:relative; background:var(--term); color:var(--term-ink); padding:var(--sp-5); }
.hv-stage .grain { opacity:.32; }

.cascade { position:relative; }
.cascade::before {
  content:""; position:absolute; left:23px; top:24px; bottom:24px; width:1.5px;
  background:linear-gradient(var(--term-line), var(--term-line));
}
.cascade::after {
  content:""; position:absolute; left:22.25px; top:24px; width:3px; height:0;
  background:var(--flux); border-radius:2px;
  box-shadow:0 0 8px var(--flux);
}
.cascade.run::after { animation:travel 1.9s var(--ease-signal) forwards; }
@keyframes travel { 0%{height:0; opacity:.9;} 100%{height:calc(100% - 48px); opacity:.25;} }

.flow-node {
  position:relative; z-index:1;
  border:1px solid var(--term-line); border-radius:var(--r-struct); padding:11px 13px; background:var(--term-2);
  display:flex; align-items:center; gap:11px; font-family:var(--font-mono); font-size:12px; color:var(--term-ink);
  opacity:.32; transform:translateX(4px);
  transition:opacity .5s var(--ease-signal), transform .5s var(--ease-signal), border-color .5s, box-shadow .5s;
}
.flow-node.lit { opacity:1; transform:translateX(0); border-color:oklch(40% 0.04 158); box-shadow:-1px 0 0 var(--flux), 0 6px 18px -12px oklch(72% 0.185 158 / .5); }
.flow-node .fn-ico {
  width:26px; height:26px; border-radius:var(--r-struct);
  background:oklch(72% 0.185 158 / .12); display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:background .5s var(--ease-signal);
}
.flow-node.lit .fn-ico { background:oklch(72% 0.185 158 / .2); }
.flow-node .fn-ico svg { width:15px; height:15px; stroke:var(--flux); fill:none; stroke-width:1.6; stroke-linecap:square; }
.flow-node small { display:block; color:var(--term-ink-2); font-size:11px; letter-spacing:0; }
.flow-arrow { position:relative; z-index:1; height:18px; }
.hv-foot { border-top:1px solid var(--term-line); padding:11px var(--sp-5); font-family:var(--font-mono); font-size:11px; color:var(--term-ink-2); background:var(--term); display:flex; gap:14px; flex-wrap:wrap; }
.hv-foot .ok { color:var(--flux); display:inline-flex; align-items:center; gap:5px; }
.hv-foot .ok::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--flux); }

.metrics { position:relative; background:var(--term); color:var(--term-ink); border-top:1px solid var(--term-line); border-bottom:1px solid var(--term-line); overflow:hidden; }
.metrics .grain { opacity:.28; }
.metrics-inner {
  position:relative; z-index:1; max-width:var(--content); margin:0 auto;
  padding:clamp(52px,6.5vw,76px) var(--gutter) var(--sp-7); 
  display:grid;
  
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap:0;
}
.metric { padding:0 clamp(16px,2.6vw,32px); border-left:1px solid var(--term-line); }
.metric:first-child { border-left:none; padding-left:18px; } 
.metric.anchor { position:relative; }
.metric.anchor::before {
  content:""; position:absolute; left:0; top:3px; height:clamp(44px,5vw,68px); 
  width:2px; background:var(--flux); border-radius:1px;
}
.metric .num {
  font-family:var(--font-mono); font-weight:350; letter-spacing:-0.03em; color:#fff; line-height:1;
  font-variant-numeric: tabular-nums lining-nums; display:flex; align-items:baseline; gap:2px;
}
.metric .num .val { font-size:clamp(34px,3.6vw,48px); }
.metric.anchor .num .val { font-size:clamp(44px,5vw,68px); font-weight:400; }
.metric .num .suf { font-size:0.55em; color:var(--flux); font-weight:500; }
.metric .lab { font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.05em; color:var(--term-ink-2); margin-top:12px; }
.metric .sub { font-family:var(--font-mono); font-size:11px; color:oklch(52% 0.012 250); margin-top:3px; }

.section { padding:var(--sp-major) 0; position:relative; }
.section.sunk { background:var(--paper-sunk); }
.sec-head { display:flex; align-items:baseline; gap:var(--sp-4); margin-bottom:var(--sp-7); max-width:var(--reading); }
.sec-num {
  font-family:var(--font-mono); font-size:12px; font-weight:500; color:var(--flux-ink);
  border:1px solid var(--flux-edge); background:var(--flux-wash); padding:3px 8px; border-radius:var(--r-struct);
  white-space:nowrap; align-self:flex-start; margin-top:6px;
}
.sec-title { font-family:var(--font-disp); font-size:clamp(25px,3vw,34px); font-weight:500; letter-spacing:-0.02em; line-height:1.13; margin:0; }
.sec-sub { font-size:16px; color:var(--ink-2); margin:var(--sp-3) 0 0; max-width:62ch; line-height:1.55; }
.sec-sub b { font-weight:560; color:var(--ink-1); }

.vp-grid {
  display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:var(--sp-4); align-items:start;
}
.vp {
  background:var(--raised); border:1px solid var(--edge); border-radius:var(--r-card); padding:var(--sp-5);
  display:flex; flex-direction:column;
  transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out), border-color .2s;
}
.vp:hover { transform:translateY(-2px); box-shadow:0 14px 30px -22px oklch(38% 0.011 255 / .55); border-color:var(--edge-strong); }
.vp-grid > .vp:last-child { grid-column:span 2; }
.vp.lead { grid-row:span 2; align-self:stretch; background:var(--term); color:var(--term-ink); border-color:var(--term-line); position:relative; overflow:hidden; }
.vp.lead .grain { opacity:.3; }
.vp .vp-ico {
  width:42px; height:42px; border:1px solid var(--edge); border-radius:var(--r-struct);
  display:flex; align-items:center; justify-content:center; margin-bottom:var(--sp-4); background:var(--inset);
}
.vp.lead .vp-ico { background:oklch(72% 0.185 158 / .12); border-color:oklch(40% 0.04 158); position:relative; z-index:1; }
.vp .vp-ico svg { width:21px; height:21px; stroke:var(--ink-1); fill:none; stroke-width:1.6; stroke-linecap:square; }
.vp.lead .vp-ico svg { stroke:var(--flux); }
.vp h3 { font-size:17px; font-weight:560; margin:0 0 var(--sp-3); letter-spacing:-0.012em; position:relative; z-index:1; }
.vp.lead h3 { font-size:19px; }
.vp .lead-p { font-size:15px; color:var(--term-ink); margin:0 0 var(--sp-4); position:relative; z-index:1; line-height:1.55; }
.vp ul { margin:0; padding:0; list-style:none; position:relative; z-index:1; }
.vp li { font-size:14px; color:var(--ink-2); padding:5px 0 5px 18px; position:relative; }
.vp.lead li { color:var(--term-ink); }
.vp li::before { content:""; position:absolute; left:2px; top:12px; width:7px; height:1.5px; background:var(--flux-mid); }
.vp.lead li::before { background:var(--flux); }

.layers { display:grid; grid-template-columns:1.12fr 0.88fr; gap:var(--sp-5); align-items:start; }
.layer-card { background:var(--raised); border:1px solid var(--edge); border-radius:var(--r-card); overflow:hidden; }
.layer-card.elevated { box-shadow:0 1px 2px oklch(38% 0.011 255 / .04), 0 18px 40px -30px oklch(38% 0.011 255 / .5); border-color:var(--edge-strong); }
.lc-head { padding:var(--sp-4) var(--sp-5); border-bottom:1px solid var(--edge); background:var(--inset); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.lc-head .lc-t { font-family:var(--font-mono); font-size:13px; font-weight:600; color:var(--ink-1); }
.lc-head .lc-tag { font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.05em; color:var(--ink-3); }
.lc-body { padding:var(--sp-5); }
.lc-body p { margin:0 0 var(--sp-4); font-size:15px; color:var(--ink-2); }
.codeblock {
  font-family:var(--font-mono); font-size:13px; line-height:1.75; background:var(--term);
  color:var(--term-ink); border-radius:var(--r-struct); padding:var(--sp-4); overflow-x:auto; position:relative;
  border:1px solid var(--term-line);
}
.codeblock .k { color:var(--flux); }
.codeblock .s { color:var(--term-ink-2); } 
.codeblock .c { color:oklch(56% 0.012 250); font-style:italic; }

:focus-visible { outline:2px solid var(--flux-mid); outline-offset:2px; border-radius:1px; }
[id] { scroll-margin-top:88px; }
.env-flow { display:grid; gap:8px; }
.env-step {
  display:flex; align-items:center; gap:var(--sp-3); padding:11px 12px;
  border:1px solid var(--edge); border-radius:var(--r-struct); font-family:var(--font-mono); font-size:13px;
  background:var(--inset);
}
.env-step .n {
  width:24px; height:24px; border-radius:var(--r-struct); background:var(--flux-wash); color:var(--flux-ink);
  border:1px solid var(--flux-edge); display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:600; flex-shrink:0; font-variant-numeric:tabular-nums;
}
.env-step small { color:var(--ink-3); display:block; font-size:11px; }

.threat-band { margin-top:var(--sp-5); background:var(--raised); border:1px solid var(--edge); border-radius:var(--r-card); overflow:hidden; }
.threat-band .tb-head { padding:var(--sp-4) var(--sp-5); border-bottom:1px solid var(--edge); background:var(--inset); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.threat-band .tb-title { font-family:var(--font-mono); font-size:13px; font-weight:600; color:var(--ink-1); margin:0; }
.threat-band .tb-tag { font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.05em; color:var(--ink-3); }
.threat-band .tb-cols { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-4) var(--sp-5); padding:var(--sp-5); align-items:start; }
.threat-band .tb-cols p { margin:0; font-size:15px; color:var(--ink-2); }
.threat-band .tb-cols .tb-lede { grid-column:1 / -1; }
@media (max-width:760px){ .threat-band .tb-cols { grid-template-columns:1fr; } }

.conformance { position:relative; background:var(--term); color:var(--term-ink); overflow:hidden; border-top:1px solid var(--term-line); border-bottom:1px solid var(--term-line); }
.conformance .grain { opacity:.3; }
.conformance .inner { position:relative; z-index:1; max-width:var(--content); margin:0 auto; padding:var(--sp-major) var(--gutter); }
.conformance .sec-title { color:#fff; }
.conformance .sec-sub { color:var(--term-ink-2); }
.conformance .sec-num { background:oklch(72% 0.185 158 / .12); border-color:oklch(40% 0.04 158); color:var(--flux); }

.conformance b, .conformance strong, .conformance em,
.cta-band b, .cta-band strong,
.vp.lead b, .vp.lead strong, .hv-stage b, .hv-stage strong { color:var(--term-ink); }

.conformance .status.neutral, .metrics .status.neutral { color:var(--term-ink-2); }
.conformance .status.neutral .dot, .metrics .status.neutral .dot { background:var(--term-ink-2); }
.conf-row { display:grid; grid-template-columns:0.85fr 1.3fr 0.85fr; gap:var(--sp-5); align-items:start; }
.conf-card {
  border:1px solid var(--term-line); border-radius:var(--r-card); background:var(--term-2); padding:var(--sp-5);
  display:flex; flex-direction:column; align-items:center; gap:var(--sp-3); text-align:center;
}
.conf-card.contract-card { text-align:left; align-items:stretch; background:var(--term-3); }
.cert-mark { width:84px; height:84px; }
.conf-card h4 { margin:0; font-size:16px; font-weight:560; color:#fff; }
.conf-card p { margin:0; font-size:13px; color:var(--term-ink-2); }
.contract { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-3); margin-top:var(--sp-4); align-items:start; }
.contract-cell { border:1px solid; border-radius:var(--r-struct); padding:var(--sp-4); font-family:var(--font-mono); font-size:13px; }
.contract-cell.must { background:oklch(72% 0.185 158 / .1); border-color:oklch(45% 0.08 158); color:var(--flux); }
.contract-cell.never { background:oklch(60% 0.13 25 / .12); border-color:oklch(50% 0.1 25); color:oklch(78% 0.13 25); }
.contract-cell b { display:block; font-size:11px; letter-spacing:0.05em; font-variant:all-small-caps; margin-bottom:8px; }
.contract-cell span { color:var(--term-ink); display:block; padding:3px 0 3px 14px; position:relative; font-size:12px; }
.contract-cell.must span::before { content:"+"; position:absolute; left:0; color:var(--flux); }
.contract-cell.never span::before { content:"\2212"; position:absolute; left:0; color:oklch(72% 0.13 25); }

.status { font-family:var(--font-mono); font-size:11px; font-weight:500; font-variant:all-small-caps; letter-spacing:0.04em; display:inline-flex; align-items:center; gap:6px; color:var(--ink-2); }
.status .dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.status.ok .dot { background:var(--flux-mid); box-shadow:0 0 0 3px oklch(72% 0.185 158 / .15); }
.status.ok { color:var(--flux-ink); }
.status.forming .dot { background:var(--clay); box-shadow:0 0 0 3px oklch(58% 0.10 58 / .15); }
.status.forming { color:var(--clay); }
.status.neutral .dot { background:var(--ink-4); }

.conformance .status.ok, .hv-foot .status.ok { color:var(--flux); }

.count-chip { font-family:var(--font-mono); font-size:11px; font-weight:500; padding:2px 8px; border-radius:var(--r-full); background:var(--inset); color:var(--ink-2); border:1px solid var(--edge-strong); font-variant-numeric:tabular-nums; }

.section.members { overflow:hidden; }
.logo-wall {
  grid-column: bleed;
  display:grid; grid-template-columns:repeat(4, 1fr);
  border-top:1px solid var(--edge); border-bottom:1px solid var(--edge); background:var(--raised);
}
.lw {
  display:flex; align-items:center; justify-content:center; gap:9px; padding:var(--sp-6) var(--sp-4);
  border-right:1px solid var(--edge); border-bottom:1px solid var(--edge); min-height:104px;
  font-family:var(--font-mono); font-size:13px; font-weight:500; color:var(--ink-3);
  transition:background .2s var(--ease-out), color .2s;
}
.lw:hover { background:var(--flux-wash); color:var(--ink-1); }
.lw .gl { width:18px; height:18px; border:1.5px solid var(--ink-4); border-radius:var(--r-struct); flex-shrink:0; }
.lw .gl.c { border-radius:50%; }
.lw .gl.b { background:var(--ink-4); border:none; }
.lw.lw-brand { flex-direction:column; gap:10px; }
.lw .brand-logo { width:128px; max-width:100%; height:auto; display:block; }
.lw .lw-role { font-family:var(--font-mono); font-size:11px; font-weight:500; color:var(--ink-4); font-variant:all-small-caps; letter-spacing:0.08em; }
.lw .gl.x { border:none; position:relative; }
.lw .gl.x::before,.lw .gl.x::after { content:""; position:absolute; left:0; top:8px; width:18px; height:1.5px; background:var(--ink-4); }
.lw .gl.x::after { transform:rotate(90deg); }
.lw:hover .gl { border-color:var(--flux-mid); }
.lw:hover .gl.b { background:var(--flux-mid); }
.members-note { grid-column:content; font-family:var(--font-mono); font-size:11px; color:var(--ink-4); margin-top:var(--sp-4); }

.wg-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--sp-4); align-items:start; }
.wg {
  background:var(--raised); border:1px solid var(--edge); border-radius:var(--r-card); padding:var(--sp-5);
  display:flex; flex-direction:column;
  transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out);
}
.wg:hover { transform:translateY(-2px); box-shadow:0 14px 30px -22px oklch(38% 0.011 255 / .55); }
.wg .wg-id { font-family:var(--font-mono); font-size:11px; color:var(--flux-ink); font-variant-numeric:tabular-nums; letter-spacing:0.04em; }
.wg h4 { margin:7px 0 var(--sp-3); font-size:16px; font-weight:560; letter-spacing:-0.01em; }
.wg p { margin:0 0 var(--sp-4); font-size:14px; color:var(--ink-2); flex:1; }
.wg .wg-foot { font-family:var(--font-mono); font-size:11px; color:var(--ink-3); border-top:1px solid var(--edge); padding-top:var(--sp-3); display:flex; justify-content:space-between; align-items:center; gap:10px; }

.feed { display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:auto auto; gap:var(--sp-4); }
.feed-card {
  background:var(--raised); border:1px solid var(--edge); border-radius:var(--r-card); overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out);
}
.feed-card:hover { transform:translateY(-2px); box-shadow:0 14px 30px -22px oklch(38% 0.011 255 / .55); }
.feed-card.lead { grid-row:span 2; }
.feed-card .fc-top { padding:var(--sp-5); flex:1; }
.feed-card.lead .fc-top { padding:var(--sp-6); display:flex; flex-direction:column; }
.feed-card h4 { margin:11px 0 var(--sp-3); font-size:17px; font-weight:560; letter-spacing:-0.012em; line-height:1.28; }
.feed-card.lead h4 { font-family:var(--font-disp); font-weight:500; font-size:clamp(20px,2.2vw,26px); letter-spacing:-0.02em; line-height:1.15; margin-top:auto; }
.feed-card p { margin:0; font-size:14px; color:var(--ink-2); }
.feed-card.lead p { font-size:15px; margin-top:var(--sp-3); }
.feed-card .fc-foot { padding:var(--sp-3) var(--sp-5); border-top:1px solid var(--edge); background:var(--inset); font-family:var(--font-mono); font-size:12px; display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.fc-date { font-family:var(--font-mono); font-size:11px; color:var(--ink-3); font-variant-numeric:tabular-nums; }

.tag { font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.05em; padding:3px 8px 3px 9px; border-radius:var(--r-struct); color:var(--ink-2); background:var(--inset); border-left:2px solid var(--ink-4); }
.tag.spec { border-left-color:var(--flux-mid); color:var(--flux-ink); background:var(--flux-wash); }
.tag.guide { border-left-color:var(--ink-3); }
.tag.adopt { border-left-color:var(--clay); color:var(--clay); background:var(--clay-wash); }

.faq { border:1px solid var(--edge-strong); border-radius:var(--r-card); overflow:hidden; background:var(--raised); max-width:var(--reading); }
.faq-item { border-bottom:1px solid var(--edge); }
.faq-item:last-child { border-bottom:none; }
.faq-q {
  width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:var(--sp-5);
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  font-family:var(--font-text); font-size:16px; font-weight:500; color:var(--ink-1); min-height:44px;
}
.faq-q:hover { background:var(--inset); }
.faq-q .qn { font-family:var(--font-mono); font-size:12px; color:var(--flux-ink); margin-right:var(--sp-3); font-variant-numeric:tabular-nums; }
.faq-q .tog { position:relative; width:14px; height:14px; flex-shrink:0; }
.faq-q .tog::before, .faq-q .tog::after { content:""; position:absolute; background:var(--ink-3); transition:transform .25s var(--ease-signal); }
.faq-q .tog::before { left:0; top:6px; width:14px; height:1.5px; }
.faq-q .tog::after { left:6px; top:0; width:1.5px; height:14px; }
.faq-item.open .faq-q .tog::after { transform:scaleY(0); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .28s var(--ease-signal); }
.faq-a .inner { padding:0 var(--sp-5) var(--sp-5); font-size:15px; color:var(--ink-2); max-width:64ch; }
.faq-item.open .faq-a { max-height:2400px; } 

.cta-wrap { position:relative; background:var(--term); color:var(--term-ink); border-radius:var(--r-soft); overflow:hidden;
  box-shadow:0 30px 70px -40px oklch(20% 0.012 250 / .7); }
.cta-wrap .grain { opacity:.32; }
.cta-band {
  position:relative; z-index:1; display:grid; grid-template-columns:1.5fr auto; gap:var(--sp-6);
  align-items:end; padding:clamp(36px,6vw,64px);
}
.cta-band h2 { font-family:var(--font-disp); font-size:clamp(26px,4vw,42px); font-weight:500; margin:0; letter-spacing:-0.025em; line-height:1.04; color:#fff; max-width:16ch; }
.cta-band h2 .flux { color:var(--flux); font-style:italic; }
.cta-band p { margin:var(--sp-3) 0 0; color:var(--term-ink-2); font-family:var(--font-mono); font-size:13px; max-width:46ch; }
.cta-actions { display:flex; flex-direction:column; gap:var(--sp-3); align-items:stretch; min-width:200px; }
.cta-wrap .btn-secondary { background:transparent; color:var(--term-ink); border-color:var(--term-line); }
.cta-wrap .btn-secondary:hover { background:var(--term-2); border-color:var(--term-ink-2); }

.news { display:flex; align-items:center; justify-content:space-between; gap:var(--sp-6); flex-wrap:wrap; }
.news .nl-copy h3 { margin:0 0 6px; font-family:var(--font-disp); font-size:21px; font-weight:500; letter-spacing:-0.015em; }
.news .nl-copy p { margin:0; font-size:14px; color:var(--ink-2); max-width:46ch; }
.news form { display:flex; gap:var(--sp-3); flex-wrap:wrap; align-items:center; }
.nl-field { display:flex; flex-direction:column; gap:4px; }
.nl-field label { font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.05em; color:var(--ink-3); }
.input {
  font-family:var(--font-mono); font-size:13px; color:var(--ink-1); padding:11px 13px;
  border:1px solid var(--edge-strong); border-radius:var(--r-struct); background:var(--raised);
  transition:border-color .14s, box-shadow .14s; min-width:min(280px, 70vw); min-height:44px;
}
.input::placeholder { color:var(--ink-4); }
.input:focus { outline:none; border-color:var(--flux-mid); box-shadow:inset 0 0 0 1px var(--flux-mid); }

footer.site { border-top:1px solid var(--edge-strong); background:var(--raised); }
.foot-main { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1fr; gap:var(--sp-6); padding:var(--sp-major) 0 var(--sp-7); }
.foot-brand p { font-size:14px; color:var(--ink-2); margin:var(--sp-4) 0 0; max-width:34ch; }
.foot-social { display:flex; gap:var(--sp-3); margin-top:var(--sp-5); }
.foot-social a { width:36px; height:36px; border:1px solid var(--edge-strong); border-radius:var(--r-struct); display:flex; align-items:center; justify-content:center; transition:border-color .14s, background .14s; }
.foot-social a svg { width:16px; height:16px; fill:var(--ink-3); }
.foot-social a:hover { border-color:var(--flux-mid); background:var(--flux-wash); } .foot-social a:hover svg { fill:var(--flux-ink); }
.foot-col h5 { font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.05em; color:var(--ink-3); margin:0 0 var(--sp-4); }
.foot-col ul { list-style:none; margin:0; padding:0; }
.foot-col li { margin-bottom:var(--sp-3); }
.foot-col a { font-size:14px; color:var(--ink-2); }
.foot-col a:hover { color:var(--flux-ink); }
.foot-bottom { border-top:1px solid var(--edge); padding:var(--sp-5) 0; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap; font-family:var(--font-mono); font-size:12px; color:var(--ink-3); }
.foot-bottom .vendor { color:var(--ink-3); display:inline-flex; align-items:center; gap:6px; } 
.foot-bottom .vendor::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--flux-mid); }

@media (max-width:1024px){
  
  .shell {
    grid-template-columns:
      [bleed-start] var(--gutter)
      [wide-start] 0
      [content-start] minmax(0, 1fr)
      [content-end] 0
      [wide-end] var(--gutter) [bleed-end];
  }
  .nav .desktop-only { display:none; }
  .btn.menu-toggle { display:inline-flex; min-height:44px; min-width:44px; } 
  #mnav .nav-link { min-height:44px; }
  .hero-grid { grid-template-columns:1fr; gap:var(--sp-7); }
  .hero-copy { padding-top:0; }
  .metrics-inner { grid-template-columns:1.4fr 1fr; gap:var(--sp-6) 0; }
  .metric { padding:0 0 0 clamp(16px,3vw,28px); }
  .metric:first-child, .metric:nth-child(3) { border-left:none; padding-left:0; }
  .metric.anchor::before { display:none; }
  .vp-grid { grid-template-columns:1fr 1fr; }
  .vp.lead { grid-row:span 1; grid-column:span 2; }
  .layers { grid-template-columns:1fr; }
  .conf-row { grid-template-columns:1fr; }
  .conf-card.contract-card { order:-1; }
  .wg-grid { grid-template-columns:1fr 1fr; }
  .feed { grid-template-columns:1fr 1fr; }
  .feed-card.lead { grid-row:span 1; grid-column:span 2; }
  .feed-card.lead h4 { margin-top:var(--sp-3); }
  .logo-wall { grid-template-columns:repeat(3,1fr); }
  .foot-main { grid-template-columns:1.4fr 1fr 1fr; }
  .cta-band { grid-template-columns:1fr; align-items:start; }
  .cta-actions { flex-direction:row; flex-wrap:wrap; }
}
@media (max-width:768px){
  
  .shell {
    grid-template-columns:
      [bleed-start] var(--gutter)
      [wide-start] 0
      [content-start] minmax(0, 1fr)
      [content-end] 0
      [wide-end] var(--gutter) [bleed-end];
  }
  
  .vp-grid, .wg-grid, .feed, .contract { grid-template-columns:1fr !important; }
  
  .vp-grid > *, .feed > * { grid-column:auto !important; grid-row:auto !important; }
  .metrics-inner { grid-template-columns:1fr 1fr; }
  .logo-wall { grid-template-columns:repeat(2,1fr); }
  .foot-main { grid-template-columns:1fr 1fr; }
  .doc-id { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
}
@media (max-width:480px){
  body { font-size:15px; }
  .metrics-inner { grid-template-columns:1fr; }
  .metric { border-left:none !important; padding-left:0 !important; padding-bottom:var(--sp-5); }
  .metric.anchor::before { display:block; left:-12px; }
  .metric:last-child { padding-bottom:0; }
  .foot-main { grid-template-columns:1fr; }
  .news form { width:100%; }
  .input { width:100%; min-width:0; }
  .sec-head { flex-direction:column; gap:var(--sp-3); }
  .sec-num { margin-top:0; }
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after { animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .cascade::after { display:none; }
}

@media (max-width: 980px){
  *,*::before,*::after{ animation:none!important; transition:none!important;
    -webkit-backdrop-filter:none!important; backdrop-filter:none!important;
    mix-blend-mode:normal!important; filter:none!important; will-change:auto!important; }
  [class*="grain"],[class*="noise"],[class*="texture"],[class*="halftone"],[class*="ribbon"]{ display:none!important; }
  svg{ shape-rendering:optimizeSpeed; }
}

.vp, .layer-card, .lc-body, .conf-card, .wg, .feed-card, .metric,
.ls-copy, .ls-art, .codeblock, .tl-block, .doc, .toc { min-width: 0; }

.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }

table.map-table {
  width:100%; border-collapse:collapse; font-size:14px;
  background:var(--raised); border:1px solid var(--edge-strong); border-radius:var(--r-card); overflow:hidden;
}
table.map-table thead th {
  font-family:var(--font-mono); font-size:11px; font-variant:all-small-caps; letter-spacing:0.05em;
  font-weight:600; color:var(--ink-3); text-align:left; padding:13px 16px;
  background:var(--inset); border-bottom:1px solid var(--edge-strong);
}
table.map-table tbody td { padding:13px 16px; border-bottom:1px solid var(--edge); color:var(--ink-2); vertical-align:top; line-height:1.55; }
table.map-table tbody td:first-child { color:var(--ink-1); }
table.map-table tbody td b { font-weight:560; color:var(--ink-1); }
table.map-table td code, table.map-table td.num {
  font-family:var(--font-mono); font-size:13px; font-variant-numeric:tabular-nums; color:var(--flux-ink);
}
table.map-table tbody tr:last-child td { border-bottom:none; }
table.map-table tbody tr:hover td { background:var(--flux-wash); }
@media (max-width:768px){ table.map-table { font-size:13px; } table.map-table thead th, table.map-table tbody td { padding:10px 11px; } }

@media (max-width: 768px){
  
  li, p, .sec-sub, .d-s, .lc-body, dd { overflow-wrap: anywhere; }
  
  html { overflow-x: clip; }
}

@view-transition { navigation: auto; }
@keyframes vt-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes vt-out { from { opacity: 1; } to { opacity: 0; } }
::view-transition-old(root) { animation: vt-out 150ms ease both; }
::view-transition-new(root) { animation: vt-in 280ms cubic-bezier(.22,.61,.36,1) both; }
@keyframes section-arrive { 0%, 12% { box-shadow: inset 0 -3px 0 -1px var(--flux-mid); color: var(--flux-ink); } 100% { box-shadow: inset 0 -3px 0 -1px transparent; } }
.section-arrive { animation: section-arrive 1.7s ease-out; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  .section-arrive { animation: none; }
}