/* ═══════════════════════════════════════════════════════════════════════════
   CMM.X — GEOMETRY
   One system. Every value below is derived, none is chosen ad hoc.

   ATOM      4px. Every spacing, size and offset is a multiple of it.
   BASELINE  24px (16 × 1.5). All type sits on it; all blocks are multiples.
   SCALE     1.25 from 16px. Five roles only: display, head, body, label, micro.
   COLUMNS   12 × (1fr) with a 24px gutter inside a 1200px field.
   SPINE     a 1px rule on column 1 that runs the whole document. Sections do
             not float — they hang off one continuous vertical structure.
   RADIUS    2px, once. Architecture is not rounded.
   MOTION    one easing, three durations. Movement means time, state change or
             transformation. Nothing moves for effect.
   ═══════════════════════════════════════════════════════════════════════════ */

@font-face{font-family:'IBM Plex Sans';src:url('/static/fonts/ibm-plex-sans-latin-400.woff2')format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('/static/fonts/ibm-plex-sans-latin-600.woff2')format('woff2');font-weight:600;font-display:swap}
/* ── GREEK ─────────────────────────────────────────────────────────────
   Measured: the shipped latin subsets carry no U+03A9, so the system's own
   identity symbol was rendering in whatever the OS supplied — a different
   typeface from the numerals beside it, by accident rather than decision.
   IBM Plex MONO ships no Greek at all, so Omega cannot come from the
   measurement face. That settles it semantically rather than by taste:
   Omega is a NAME, not a value, so it belongs to the display language.
   The subset is the same already-licensed family, self-hosted, and gated by
   unicode-range so it costs nothing on a page with no Greek. */
@font-face{font-family:'IBM Plex Sans';src:url('/static/fonts/ibm-plex-sans-greek-400.woff2')format('woff2');
  font-weight:400 600;font-display:swap;
  unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:'IBM Plex Mono';src:url('/static/fonts/ibm-plex-mono-latin-400.woff2')format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/static/fonts/ibm-plex-mono-latin-600.woff2')format('woff2');font-weight:600;font-display:swap}

:root{
  /* ── atom & baseline ── */
  --a:4px;            /* atom            */
  --b:24px;           /* baseline        */
  --s1:8px;  --s2:16px; --s3:24px; --s4:32px;
  --s6:48px; --s8:64px; --s12:96px; --s16:128px;

  /* ── field ── */
  --field:1200px;
  --gutter:24px;
  --edge:clamp(24px,calc(var(--a)*6 + 2vw),64px);
  --col:calc((min(100vw - var(--edge)*2, var(--field)) - var(--gutter)*11)/12);

  /* ── type: five roles, no sixth ── */
  --t-display:clamp(34px,1.6rem + 2.6vw,61px);  /* page identity      */
  --t-head:clamp(21px,1.1rem + .7vw,31px);      /* section identity   */
  --t-body:16px;                                 /* prose              */
  --t-label:13px;                                /* keys, nav, table   */
  --t-micro:11px;                                /* eyebrow, metadata  */
  --t-value:clamp(22px,1.1rem + 1.1vw,31px);     /* a measured number  */
  --t-lede:17px;                                 /* the one long-form size */

  /* ── ink ── */
  --bg:#07090B; --bg-2:#0A0D10; --panel:#0D1115;
  --line:#191F25; --line-2:#232B33;
  /* ── INK: one role per token ─────────────────────────────────────────
     Measured, not chosen by eye. --ink-3 was #5A6672 and carried FIVE roles
     at 3.23:1 -- below the 4.5:1 AA floor for text under 24px -- on every
     page in both themes. The repair is not "make it brighter": every text
     role is lifted over the floor and the hierarchy is re-expressed as four
     distinct measured steps, with the dim value demoted to NON-TEXT only.
       ink        16.23:1  sealed values and display type
       ink-prose  12.48:1  running sentences
       ink-2       7.28:1  keys, eyebrows, axis names
       ink-quiet    5.45:1  derivations, provenance, and the neutral state mark
       rule         1.16:1  graticule, borders, dots -- NEVER text          */
  --ink:#E9EEF3; --ink-prose:#C9D3DC; --ink-2:#95A2AF; --ink-quiet:#7E8B99;
  --rule:#1A2028;
  --live:#3DD68C; --hold:#E8B339; --off:#E06C5A;

  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:'IBM Plex Sans',system-ui,-apple-system,Segoe UI,sans-serif;
  --r:2px;

  /* ── motion: one easing, three durations ── */
  --e:cubic-bezier(.32,.72,0,1);
  /* emitted from PRESENT_FRACTION in app.py; the axis strip and the plot
     must not be able to disagree about where 'now' is */
  --present:72%;
  --present-col:72%;
  --d-fast:160ms;   /* affordance: hover, focus        */
  --d-mid:320ms;    /* arrival: reveal, layout          */
  --d-state:640ms;  /* meaning: a state value moving    */
}
:root[data-theme="light"]{
  --bg:#FCFDFE; --bg-2:#F4F6F9; --panel:#FFFFFF;
  --line:#E4E9EF; --line-2:#CCD5DE;
  --ink:#0B1116; --ink-prose:#353D45; --ink-2:#4B5661; --ink-quiet:#626C76;
  --rule:#E4E9EF;
  --live:#0F7D52; --hold:#8F6200; --off:#A8341F;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);
  font:400 var(--t-body)/var(--b) var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}

/* ── type roles ─────────────────────────────────────────────────────────── */
h1,h2{margin:0;font-weight:600;letter-spacing:-.025em}
h1{font-size:var(--t-display);line-height:1.06}
h2{font-size:var(--t-head);line-height:1.15;letter-spacing:-.02em}
h3{margin:0;font:600 var(--t-label)/var(--b) var(--sans);letter-spacing:.02em;color:var(--ink)}
p{margin:0}
a{color:inherit;text-decoration:none}
.eyebrow{display:block;font:600 var(--t-micro)/var(--b) var(--mono);
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-quiet)}
.lede{max-width:54ch;text-wrap:pretty;color:var(--ink-2);
  font-size:var(--t-lede);line-height:1.6;margin-top:var(--s3)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ── field & spine ──────────────────────────────────────────────────────── */
.wrap{max-width:var(--field);margin:0 auto;padding:0 var(--edge);position:relative}
/* the spine: one continuous vertical rule the whole document hangs from */
.wrap::before{content:"";position:absolute;left:calc(var(--edge) - var(--gutter)/2);
  top:0;bottom:0;width:1px;background:var(--line);pointer-events:none}
main{padding-bottom:var(--s8)}
section{padding:var(--s8) 0;position:relative}
section:first-of-type{padding-top:var(--s6)}
section+section::before{content:"";position:absolute;left:calc(var(--edge)*-1);right:calc(var(--edge)*-1);
  top:0;height:1px;background:var(--line)}
.sec-head{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s4)}
/* section marker: a node on the spine, so a section reads as attached */
.sec-head::before{content:"";position:absolute;left:calc(var(--edge) - var(--gutter)/2 - 2px);
  width:5px;height:5px;margin-top:9px;border-radius:50%;background:var(--line-2)}

/* ── top ────────────────────────────────────────────────────────────────── */
.top{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 86%,transparent);
  backdrop-filter:saturate(1.4) blur(16px);border-bottom:1px solid var(--line)}
.top-in{max-width:var(--field);margin:0 auto;padding:0 var(--edge);
  height:calc(var(--b)*2.5);display:flex;align-items:center;gap:var(--s4)}
.brand{display:flex;align-items:center;gap:var(--s1);
  font:600 var(--t-body)/var(--b) var(--mono);letter-spacing:.06em}
.brand svg{width:22px;height:22px;flex:0 0 22px}
.nav{display:flex;gap:var(--s4);margin-left:auto;align-items:center}
.nav a{font:400 var(--t-label)/var(--b) var(--sans);color:var(--ink-2);
  padding:var(--a) 0;border-bottom:1.5px solid transparent;
  transition:color var(--d-fast) var(--e),border-color var(--d-fast) var(--e)}
.nav a:hover{color:var(--ink)}
.nav a[aria-current]{color:var(--ink);border-bottom-color:var(--live)}
.btn{background:none;border:1px solid var(--line-2);color:var(--ink);border-radius:var(--r);
  padding:var(--a) var(--s1);font:600 var(--t-micro)/var(--b) var(--mono);letter-spacing:.1em;
  cursor:pointer;transition:border-color var(--d-fast) var(--e)}
.btn:hover{border-color:var(--ink-quiet)}
.nav-toggle{display:none;margin-left:auto}

/* ── ribbon: the same state summary on every page ───────────────────────── */
.ribbon{border-bottom:1px solid var(--line);background:var(--bg-2)}
.ribbon-in{max-width:var(--field);margin:0 auto;padding:var(--s1) var(--edge);
  display:flex;gap:var(--s6);align-items:center;flex-wrap:wrap;
  font:400 var(--t-micro)/var(--b) var(--mono);letter-spacing:.06em;color:var(--ink-quiet)}
.rb{display:flex;align-items:center;gap:var(--s1);white-space:nowrap}
.rb b{font-weight:600;color:var(--ink-2)}
/* the dot is a mark, not text: it takes the non-text rule ink */
.dot{width:6px;height:6px;border-radius:50%;background:var(--ink-quiet);flex:0 0 6px}
.dot.on{background:var(--live);box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 16%,transparent)}
.dot.hold{background:var(--hold)} .dot.off{background:var(--off)}

/* ── grid: everything lands on the 12 columns ───────────────────────────── */
.grid{display:grid;gap:var(--gutter)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:var(--s3)}

/* ── the metric: one presentation for every number ──────────────────────── */
.m{display:flex;flex-direction:column;gap:var(--s1);min-height:calc(var(--b)*4)}
.m-k{font:400 var(--t-micro)/var(--b) var(--mono);letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-quiet)}
.m-v{font-family:var(--mono);font-size:var(--t-value);font-weight:600;
  font-variant-numeric:tabular-nums;letter-spacing:-.015em;line-height:1.1}
.m-s{font-size:var(--t-label);line-height:1.5;color:var(--ink-quiet)}
.m-v.is-live{color:var(--live)} .m-v.is-hold{color:var(--hold)}
.m-v.is-off{color:var(--off)} .m-v.is-null{color:var(--ink-quiet);font-weight:400}

/* ── rail & axis share ONE coordinate system: 64px key / track / 64px value ─ */
.rail,.ax{display:grid;grid-template-columns:64px 1fr 64px;gap:var(--s3);
  align-items:center;height:calc(var(--b)*1.75);border-top:1px solid var(--line)}
.rail:first-child,.ax:first-child{border-top:0}
.rail-k,.ax-k{font:600 var(--t-label)/var(--b) var(--mono);color:var(--ink-2)}
.rail-t{position:relative;height:var(--a);background:var(--line);border-radius:var(--r)}
.rail-p{position:absolute;top:50%;width:var(--s1);height:var(--s1);
  margin:calc(var(--s1)/-2) 0 0 calc(var(--s1)/-2);border-radius:50%;background:var(--live);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 18%,transparent);
  transition:left var(--d-state) var(--e)}
.ax-t{height:var(--a);background:var(--line);border-radius:var(--r);overflow:hidden}
.ax-f{height:100%;background:var(--ink-2);border-radius:var(--r);
  transition:width var(--d-state) var(--e)}
.rail-v,.ax-v{font:600 var(--t-label)/var(--b) var(--mono);text-align:right;
  font-variant-numeric:tabular-nums;color:var(--ink-2)}

/* ── time band: three zones, one continuum ──────────────────────────────── */
.band{display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.band-c{padding:var(--s3);border-left:1px solid var(--line);background:var(--panel)}
.band-c:first-child{border-left:0}
.band-c.now{background:color-mix(in srgb,var(--live) 4%,var(--panel))}
.band-k{font:600 var(--t-micro)/var(--b) var(--mono);letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-quiet);margin-bottom:var(--s1)}
.band-c.now .band-k{color:var(--live)}

/* ── tables ─────────────────────────────────────────────────────────────── */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:var(--t-label);min-width:460px}
th{text-align:left;font:600 var(--t-micro)/var(--b) var(--mono);letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-quiet);padding:var(--s1) var(--s2) var(--s1) 0;
  border-bottom:1px solid var(--line-2)}
td{padding:var(--s1) var(--s2) var(--s1) 0;border-bottom:1px solid var(--line);
  color:var(--ink-2);line-height:var(--b)}
td.num,th.num{text-align:right;padding-right:0;font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ── note: the one way a limit is stated ────────────────────────────────── */
.note{border-left:1px solid var(--line-2);padding-left:var(--s3);margin-top:var(--s4);
  color:var(--ink-quiet);font-size:var(--t-label);line-height:1.62;max-width:72ch}
.note b{color:var(--ink-2);font-weight:600}

/* ── next: the only call to action shape ────────────────────────────────── */
.next{display:inline-flex;align-items:center;gap:var(--s2);margin-top:var(--s6);
  padding:var(--s1) var(--s3);height:calc(var(--b)*2);border:1px solid var(--line-2);
  border-radius:var(--r);font:600 var(--t-label)/1 var(--sans);color:var(--ink);
  transition:border-color var(--d-fast) var(--e),background var(--d-fast) var(--e)}
.next:hover{border-color:var(--live);background:color-mix(in srgb,var(--live) 6%,transparent)}
.next span{color:var(--ink-quiet);font-family:var(--mono)}

/* ── footer ─────────────────────────────────────────────────────────────── */
.foot{border-top:1px solid var(--line);padding:var(--s6) 0;color:var(--ink-quiet);
  font-size:var(--t-label)}
.foot-in{max-width:var(--field);margin:0 auto;padding:0 var(--edge);
  display:flex;gap:var(--s4);flex-wrap:wrap;align-items:center}
.foot a{color:var(--ink-quiet);transition:color var(--d-fast) var(--e)}
.foot a:hover{color:var(--ink-2)}
.foot .sp{margin-left:auto}

:focus-visible{outline:2px solid var(--live);outline-offset:3px;border-radius:var(--r)}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.live-dot{animation:pulse 2.8s var(--e) infinite}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ── recomposition, not compression ─────────────────────────────────────── */
@media (max-width:1000px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3{grid-template-columns:1fr}
}
@media (max-width:760px){
  :root{--s12:var(--s8);--s16:var(--s12)}
  .band{grid-template-columns:1fr}
  .band-c{border-left:0;border-top:1px solid var(--line)}
  .band-c:first-child{border-top:0}
  .g2,.g4{grid-template-columns:1fr}
  .nav{position:fixed;inset:calc(var(--b)*2.5) 0 auto 0;background:var(--bg-2);
    border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;
    gap:0;padding:0 var(--edge) var(--s2);display:none}
  .nav.open{display:flex}
  .nav a{padding:var(--s2) 0;border-bottom:1px solid var(--line)}
  .nav a[aria-current]{border-bottom-color:var(--line);color:var(--live)}
  .nav-toggle{display:block}
  .ribbon-in{gap:var(--s3)}
  .rail,.ax{grid-template-columns:52px 1fr 56px;gap:var(--s2)}
  .wrap::before{left:calc(var(--edge) - var(--s1))}
  .sec-head::before{left:calc(var(--edge) - var(--s1) - 2px)}
}

/* a verdict is a word, not a measurement: left-aligned, fixed column,
   so it can never collide with the reason beside it. */
th.verdict,td.verdict{width:96px;text-align:left;font-family:var(--mono);
  font-weight:600;color:var(--ink-2);padding-right:var(--s3)}

/* ── mobile: the same architecture, recomposed ──────────────────────────────
   An axis row is key | track | value. Below 760px that geometry cannot hold
   three columns without the key wrapping, which breaks the row rhythm and
   makes equal rows unequal. So the row is re-composed, not compressed:
   key and value share the first line, the track spans the full width beneath.
   Same elements, same meaning, same order — a different composition.         */
@media (max-width:760px){
  .rail,.ax{grid-template-columns:1fr auto;grid-template-areas:"k v" "t t";
    height:auto;padding:var(--s2) 0;gap:var(--s1) var(--s2)}
  .rail-k,.ax-k{grid-area:k;white-space:nowrap}
  .rail-v,.ax-v{grid-area:v}
  .rail-t,.ax-t{grid-area:t;width:100%}
  /* the ribbon is a status line, not a paragraph: one row, scrolled. */
  .ribbon-in{flex-wrap:nowrap;overflow-x:auto;gap:var(--s3);
    scrollbar-width:none;-ms-overflow-style:none}
  .ribbon-in::-webkit-scrollbar{display:none}
}

/* ── declared roles that replace the ad-hoc inline overrides ──────────────── */
.lede--tight{margin-top:0}
.m-v--hash{font-size:var(--t-label);letter-spacing:0}   /* a digest is read, not admired */
.m-v--path{font-size:var(--t-body)}                      /* an endpoint is a path, not a figure */
.band-c .m-s{margin-top:var(--s1)}
.panel h3+.m-s{margin-top:var(--s1)}
/* a block of metrics or a band always opens at the same distance from its lede */
.lede+.grid,.lede+.band,.lede+.tw{margin-top:var(--s6)}
.sec-head+.panel,.sec-head+.band,.sec-head+.tw,.sec-head+.grid{margin-top:0}

/* Every interactive element occupies at least one baseline. Measured, not
   assumed: the brand mark came in at 22px and in-table links at 17px, both
   below the 24px baseline and below a usable touch target. Height here is
   the same baseline the type sits on, so the fix is geometric, not a patch. */
.brand{min-height:var(--b)}
td a,.foot a{display:inline-block;min-height:var(--b);line-height:var(--b)}
td a{border-bottom:1px solid var(--line-2)}
td a:hover{border-bottom-color:var(--live);color:var(--ink)}

/* The marker is a point ON the track, so the track reserves half a marker at
   each end. Without it a value of exactly 0 or 1 renders half outside its own
   axis — measured at phi=1.000 on the 1m scale. */
.rail-t{margin:0 calc(var(--s1)/2)}
.rail-p{transition:left var(--d-state) var(--e)}
/* a table that follows a metric block keeps the section rhythm */
.grid+.tw,.grid+.note,.tw+.note{margin-top:var(--s6)}
.tw+.note{margin-top:var(--s4)}

/* ── THE INSTRUMENT ───────────────────────────────────────────────────
   One state model, three views. Nothing here introduces a token: the
   colours are the two already in use (accent = measured, line = grid),
   the rhythm is the same 24px baseline, the motion is the one easing.
   The SVG carries no numbers of its own -- every value is printed as
   text beside it, so the picture can never say something the text does
   not. */
.inst{margin:var(--s6) 0 var(--s4);border:1px solid var(--line);border-radius:var(--r);
      background:var(--panel);overflow:hidden}
/* ONE plot column. The chart and all seven axis rows use the SAME grid, so a
   minute is at the same screen x in every view. Measured before this: the
   present line sat 134px apart between chart and matrix while both claimed the
   same time coordinate. */
.inst-row{display:grid;grid-template-columns:5.5rem 1fr 5rem 4.5rem;gap:var(--s3);
          align-items:center;padding:0 var(--s3)}
.inst-svg{display:block;width:100%;height:288px}
.i-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.i-trace{fill:none;stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke;
         stroke-linejoin:round;stroke-linecap:round}
/* the reachable space is a region, never a line: a line would read as a path */
.i-band{fill:color-mix(in srgb,var(--live) 14%,transparent);stroke:none}
.i-now{stroke:var(--live);stroke-width:1;vector-effect:non-scaling-stroke;opacity:.7}
.i-pt{stroke:var(--panel);stroke-width:2;vector-effect:non-scaling-stroke}
.i-pt.is-past{fill:var(--ink-2)}
.i-pt.is-now{fill:var(--live)}
.inst-ax{border-top:1px solid var(--line);padding-top:var(--s2);padding-bottom:var(--s2);
         font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-2);letter-spacing:.04em}
.inst-ax .ia{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.ia-c{color:var(--live)}
.ia-r{text-align:right}
.inst-read .panel.m.is-now{border-color:color-mix(in srgb,var(--live) 40%,var(--line))}
.mx-h{margin-top:var(--s6)}
.mx{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);
    margin-top:var(--s4)}
.mx-r{display:grid;grid-template-columns:5.5rem 1fr 5rem 4.5rem;align-items:center;
      gap:var(--s3);padding:0 var(--s3);height:calc(var(--s3) * 2);
      border-bottom:1px solid var(--line)}
/* the axis sparks share the chart's vertical unit as well: 1.0 spans 24px of a
   32px box, so a 0.25 move is 6px in every row and comparable across rows */
.mx-s{height:32px}
.mx-r:last-child{border-bottom:0}
.mx-n{font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-2);letter-spacing:.06em}
.mx-s{display:block;width:100%;height:24px}
.mx-v{font-family:var(--mono);font-size:var(--t-label);text-align:right}
.mx-d{font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-2);text-align:right}
.prov{margin-top:var(--s4);font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-2);
      line-height:1.5}
.prov .warn{color:var(--hold)}
.panel.empty{margin-top:var(--s4)}

/* Motion carries one meaning only: the recorded past being laid down once.
   The band never animates -- an animated future would imply travel into it. */
@media (prefers-reduced-motion:no-preference){
  .i-trace{stroke-dasharray:var(--i-len,4000);stroke-dashoffset:var(--i-len,4000);
           animation:i-draw var(--d-state) var(--e) forwards}
  .i-pt.is-now{animation:i-mark var(--d-mid) var(--e) var(--d-state) backwards}
}
@keyframes i-draw{to{stroke-dashoffset:0}}
@keyframes i-mark{from{opacity:0}to{opacity:1}}

@media (max-width:760px){
  /* Narrow: the plot takes the full row and the labels move above it. The
     chart and the seven axis rows recompose the SAME way, so the present line
     stays on one vertical -- measured at 390 before this: 93.3px apart, with
     the name and value overlapping because the two grids disagreed. */
  .inst-svg{height:200px}
  .inst-row,.mx-r{grid-template-columns:1fr auto auto;
                  grid-template-areas:"n v d" "s s s";
                  height:auto;padding:var(--s2) var(--s3);
                  row-gap:var(--s1);column-gap:var(--s2);align-items:baseline}
  .inst-row > .mx-n,.mx-n{grid-area:n}
  .inst-svg,.mx-s{grid-area:s;width:100%}
  .inst-row > .mx-v,.mx-v{grid-area:v}
  .inst-row > .mx-d,.mx-d{grid-area:d}
  .inst-ax{padding-left:var(--s3);padding-right:var(--s3)}
  .inst-ax .ia{grid-area:auto}
  .inst-ax > span:first-child,.inst-ax > span:last-child{display:none}
  .inst-ax{display:block}
}

/* A path or hash is one unbreakable token. Left alone it sets the page's
   min-content width, and then every ROW on the page reports an overflow that
   it did not cause -- measured at 390: one 520px source path widened the body
   and the ribbon, the table and three rails all appeared to overflow. Break
   the token, not the layout. */
.prov,.prov .num{overflow-wrap:anywhere;word-break:break-word}

/* ══ KF01 PRESENT STATE ═══════════════════════════════════════════════════
   THE REGISTER as the first viewport. Full-bleed by intent: every measured
   benchmark composes to the viewport edge while the previous build boxed
   itself at 1200px and gave its dominant object 1.1% of the screen.
   The plate escapes the container; the TEXT does not — a measure still has
   to be readable, so only the field is full width.                        */
.kf{padding:0;margin:0}
.kf .kf-meta,.kf .kf-say,.kf .kf-fine{max-width:var(--field);margin-inline:auto;
  padding-inline:var(--edge)}
.kf-meta{display:flex;gap:var(--s2);align-items:baseline;
  font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-2);
  /* no rule here: a container-width border under a full-bleed plate reads as a
     stray line that stops short of both edges. The plate's own top border is
     the boundary. */
  padding-block:var(--s3) var(--s2)}
.kf-meta b{color:var(--ink);font-weight:400}
.kf-meta .sep{color:var(--rule)}

/* the plate runs edge to edge, breaking out of any container it sits in */
.kf-plate{position:relative;margin:0;width:100vw;
  margin-left:calc(50% - 50vw);border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule)}
.kf-svg{display:block;width:100%;height:clamp(340px,64vh,680px)}
.p-grat{stroke:var(--rule);stroke-width:1;vector-effect:non-scaling-stroke}
.p-trace{fill:none;stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke;
  stroke-linejoin:round;stroke-linecap:round}
/* a REGION, never a path: the reachable side carries no line, no centre, no
   direction. That absence is the identity move and must not be decorated. */
.p-region{fill:color-mix(in srgb,var(--live) 15%,transparent);stroke:none}
.p-present{stroke:var(--live);stroke-width:1.5;vector-effect:non-scaling-stroke}
.p-mark{fill:var(--live);stroke:var(--bg);stroke-width:2;vector-effect:non-scaling-stroke}

/* Ω on the plate, baseline riding the present mark, on the recorded side */

.kf-axis{display:grid;grid-template-columns:var(--present-col) auto 1fr;
  align-items:baseline;border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-2)}
.kf-axis span{padding:var(--s2) var(--s3);white-space:nowrap}
.ax-a{text-align:left}
.ax-b{color:var(--live);border-left:1px solid var(--live);border-right:1px solid var(--rule)}
.ax-c{text-align:left;color:var(--ink-quiet)}
.kf-say{font-size:var(--t-lede);line-height:1.45;color:var(--ink-prose);
  padding-top:var(--s4);padding-bottom:var(--s2)}
.kf-empty{padding:var(--s8) 0}

@media (prefers-reduced-motion:no-preference){
  /* the one animation on the page: the record being laid down, once */
  .p-trace{stroke-dasharray:6000;stroke-dashoffset:6000;
    animation:p-draw 900ms var(--e) forwards}
  .p-mark{animation:p-fix 240ms var(--e) 900ms backwards}
}
@keyframes p-draw{to{stroke-dashoffset:0}}
@keyframes p-fix{from{opacity:0;r:0}to{opacity:1}}

/* KF01 refinements, each from a measured failure of the previous render */
.kf-value{position:absolute;left:0;top:0;height:34%;
  width:var(--present-col);          /* the number ends where the record ends */
  display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;
  padding:0;pointer-events:none}     /* flush: 24px of padding broke the alignment
                                        that is the whole point of the placement */
.kf-num{font-family:var(--mono);font-weight:600;letter-spacing:-.025em;
  font-size:clamp(56px,8.6vw,132px);line-height:.86;color:var(--ink);
  font-variant-numeric:tabular-nums}
/* the tag sat ON the upper graticule; it now leads the number instead */
.kf-tag{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-2);order:-1;padding-bottom:var(--s2)}
/* the overlay frame is the PLOT, not the figure: inset:0 on the figure made
   100% the bottom of the caption strip, and the low scale value landed in it */
.kf-canvas{position:relative}
.kf-scale{position:absolute;inset:0;pointer-events:none}
/* scale values ride their own graticule at the left edge, where nothing else
   competes; at the right they collided with the axis strip */
/* Each scale value rides its own graticule and is pulled INSIDE the plate:
   centred on the line, the bottom label hung into the axis strip below. */
.kf-scale span{position:absolute;left:var(--s3);top:var(--at,50%);   /* set inline from the graticule y */
  background:var(--bg);box-shadow:0 0 0 3px var(--bg);
  font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-quiet);
  font-variant-numeric:tabular-nums;line-height:1}
.kf-scale .sc-hi{transform:translateY(4px)}
.kf-scale .sc-lo{transform:translateY(calc(-100% - 4px))}
.p-grat.is-edge{stroke:var(--line-2)}

/* The statement and its qualification are two roles, not one long line. The
   measured fold budget is ~60 characters for the statement; the qualification
   is fine print and takes the quiet ink. */
.kf-say{max-width:30ch}
.kf-fine{max-width:52ch;margin-inline:auto;padding-inline:var(--edge);
  font-size:var(--t-label);line-height:1.55;color:var(--ink-quiet);
  padding-bottom:var(--s8)}
.kf-tag{padding-bottom:var(--s3)}
.kf-lead{font-style:normal;color:var(--ink-2)}

/* ── KF01 at 390: recomposed, not squashed ───────────────────────────────
   Same register, narrower aperture. The present line holds the same fraction
   at both widths, so the spatial meaning does not change with the device. */
.kf-plate--state .kf-svg.is-narrow,.kf-scale .narrow,.kf-axis i.narrow{display:none}
i.wide,i.narrow{font-style:normal}
@media (max-width:760px){
  .kf-plate--state .kf-svg.is-wide,.kf-scale .wide,.kf-axis i.wide{display:none}
  .kf-plate--state .kf-svg.is-narrow{display:block}
  .kf-scale .narrow{display:block}
  .kf-axis i.narrow{display:inline}
  /* the provenance line drops to what a 390px column can hold without wrapping
     mid-token; the dropped fields are on /evidence, not invented away */
  .kf-meta{flex-wrap:wrap;row-gap:var(--s1)}
  .kf-meta .m-drop{display:none}
  .kf-svg{height:clamp(300px,52vh,520px)}
  .kf-num{font-size:clamp(48px,15vw,72px)}
  .kf-tag{font-size:10px;letter-spacing:.06em}
  /* two cells at mobile: the reachable label is carried by the region itself */
  .kf-axis{grid-template-columns:var(--present-col) 1fr}
  .kf-axis .ax-c{display:none}
  .ax-b{border-right:0}
}

/* ══ KF02 TIME ════════════════════════════════════════════════════════════
   The zones are divisions of the axis, laid out on the SAME fraction the plot
   uses, so a label sits over the span it names. Three cards would have made
   them three objects; they are one axis read in three places. */
.kf-plate--time .kf-svg{height:clamp(220px,34vh,320px)}
.zones{border-bottom:1px solid var(--rule)}
.z{display:flex;flex-direction:column;gap:2px;padding:var(--s2) var(--s3);white-space:nowrap;
  font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.08em;
  text-transform:uppercase}
.z b{font-weight:400;color:var(--ink-2)}
.z i{font-style:normal;color:var(--ink-quiet);letter-spacing:.04em;text-transform:none}
.z-now{border-left:1px solid var(--live);border-right:1px solid var(--rule);white-space:nowrap}
.z-now b{color:var(--live)}

/* the transformation is a static relation, never an animation */
.t-brk{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:2 3;
  vector-effect:non-scaling-stroke}
.t-pastmark{fill:none;stroke:var(--ink-2);stroke-width:1.5;vector-effect:non-scaling-stroke}
/* the delta moved into the lane's own delta column; a floating overlay at the
   left edge collided with both the trace and the zone divider */
.t-delta{display:none}
.t-d-v{font-family:var(--mono);font-size:var(--t-value);color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1}
.t-d-k{font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-quiet);
  letter-spacing:.06em;padding-top:2px}

/* n = 1 -> 7: one row per axis, the axis coordinate unchanged */
.lanes{border-top:1px solid var(--rule)}
.lane{display:grid;grid-template-columns:5.5rem 1fr 5rem 4.5rem;align-items:center;
  gap:var(--s3);padding:0 var(--s3);height:44px;border-bottom:1px solid var(--rule)}
.lane:last-child{border-bottom:0}
.lane-n{font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-2);
  letter-spacing:.1em}
.lane-s{display:block;width:100%;height:34px}
.lane-t{stroke-width:1.25}
.lane-v{font-family:var(--mono);font-size:var(--t-label);text-align:right;
  color:var(--ink);font-variant-numeric:tabular-nums}
.lane-d{font-family:var(--mono);font-size:var(--t-micro);text-align:right;
  color:var(--ink-quiet);font-variant-numeric:tabular-nums}

@media (max-width:760px){
  .zones{grid-template-columns:1fr;border-bottom:0}
  .z{border-left:2px solid var(--rule);border-right:0;padding-block:var(--s1)}
  .z-now{border-left:2px solid var(--live);border-right:0}
  .kf-plate--time .kf-svg{height:200px}
  .lane{grid-template-columns:4.25rem 1fr 4.5rem;grid-template-areas:"n s v" "n s d";
    height:auto;padding:var(--s1) var(--s2);row-gap:0}
  .lane-n{grid-area:n}.lane-s{grid-area:s}.lane-v{grid-area:v}.lane-d{grid-area:d}
  .t-delta{left:var(--s2)}
  .t-d-v{font-size:var(--t-lede)}
}

/* ── KF02: ONE plot column for all eight rows ────────────────────────────
   Measured before this: the Omega plot ran full-bleed while the seven lanes
   started after a name column, putting their present lines 123px apart. Two
   views claiming the same instant at different x is the one failure the
   thesis cannot absorb, so every row — including the zone strip — is laid on
   the identical grid. */
.lane-frame,.lane{display:grid;grid-template-columns:5.5rem 1fr 5rem 4.5rem;
  gap:var(--s3);padding:0 var(--s3)}
/* the zones subdivide the PLOT CELL, so their present boundary resolves against
   the same box the plots do; as a sibling grid its 72% resolved against a
   different width and landed 227px away from the line it names */
.zones{align-items:stretch;height:auto}
.zone-split{display:grid;grid-template-columns:var(--present-col) auto 1fr}
/* the first zone label aligns to the plot's left edge, not 24px inside it */
.zone-split > .z:first-child{padding-left:0}
.z-reach{padding-right:0}
.lane--omega{height:auto;align-items:stretch;padding-block:0}
.lane--omega .lane-n{align-self:flex-start;padding-top:var(--s2)}
.lane--omega .kf-svg{height:clamp(190px,28vh,280px)}
.lane-v.is-big{font-size:var(--t-value);align-self:flex-end;padding-bottom:var(--s2)}
.lane-d.is-big{font-size:var(--t-label);align-self:flex-end;padding-bottom:var(--s2);
  color:var(--ink-2)}
.lane--omega .lane-v,.lane--omega .lane-d{align-self:flex-end}

@media (max-width:760px){
  /* KF02 at 390: the zones stay REGIONS OF THE AXIS — stacking them would turn
     them back into the three cards this frame exists to remove. The sub-lines
     go instead, which is information density, not structure. */
  /* every mobile row keeps the SAME leading column, so the plot column — and
     therefore the present line — is identical for the zone strip, the Omega
     lane and all seven axis lanes. Letting Omega go full-width while the lanes
     kept a name column put the present at two different x (273 and 161). */
  .zones.lane{grid-template-columns:4.25rem 1fr;grid-template-areas:"n s";
    padding-inline:var(--s2);column-gap:var(--s2)}
  .zones.lane > span:last-child,.zones.lane > span:nth-child(3){display:none}
  .zones.lane > .lane-n{grid-area:n}
  .zone-split{grid-area:s}
  .z i{display:none}
  .z{padding:var(--s1) var(--s2);font-size:10px;letter-spacing:.04em}
  .zone-split > .z:first-child{padding-left:0}
  .lane--omega{grid-template-columns:4.25rem 1fr 4.5rem;
    grid-template-areas:"n s v" "n s d";padding-inline:var(--s2);column-gap:var(--s2)}
  .lane--omega .lane-n{grid-area:n;align-self:flex-start;padding-top:var(--s1)}
  .lane--omega .kf-svg{grid-area:s;height:190px}
  .lane--omega .lane-v{grid-area:v;align-self:flex-start;font-size:var(--t-label);
    padding-bottom:0;padding-top:var(--s1)}
  .lane--omega .lane-d{grid-area:d;align-self:flex-start;font-size:var(--t-micro);
    padding-bottom:0}
  .lane{padding-inline:var(--s2);column-gap:var(--s2)}
}

/* ── KF02 @390: the last word in the cascade ─────────────────────────────
   The `.lane-frame,.lane` rule that unified the desktop plot column sits later
   in this file than the first mobile block, and media queries add no
   specificity — so the desktop columns were winning at 390 and the rows
   resolved to three different plot widths (274 / 186 / 70). These overrides
   are last on purpose. */
@media (max-width:760px){
  .zones.lane,.lane--omega,.lane{grid-template-columns:4.25rem 1fr 4.5rem;
    column-gap:var(--s2);padding-inline:var(--s2)}
  .zones.lane{grid-template-areas:"n s s"}
  .lane--omega,.lane{grid-template-areas:"n s v" "n s d"}
  .zones.lane > span:nth-child(3),.zones.lane > span:nth-child(4){display:none}
}
@media (max-width:760px){
  /* Three nowrap zone labels need ~190px inside a 186px plot cell, so the strip
     forced a 78px overflow. The present is already carried by the green line
     and by the axis strip, so at 390 the labels name the two REGIONS the line
     divides. It stays one axis read in parts — not three stacked cards. */
  .zone-split{grid-template-columns:var(--present-col) 1fr}
  .zone-split .z-now{display:none}
  .z-reach{padding-left:var(--s1)}
}

/* ══ KF03 EVIDENCE ════════════════════════════════════════════════════════
   The register's lane becomes the chain. Same axis, same present fraction. */
.kf-plate--chain .ch-svg{height:clamp(340px,46vh,460px)}
.ch-base{stroke:var(--rule);stroke-width:1;vector-effect:non-scaling-stroke}
.ch-t{stroke:var(--ink-2);stroke-width:1;vector-effect:non-scaling-stroke;opacity:.55}
.ch-t.is-major{stroke:var(--ink);opacity:1}
.ch-before{position:absolute;left:var(--s3);top:var(--s2);
  font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-quiet)}
.ch-head{position:absolute;left:var(--present-col);top:var(--at,50%);   /* set inline from the graticule y */
  transform:translate(var(--s3),-50%);display:flex;flex-direction:column;
  pointer-events:none}
.ch-h-v{font-family:var(--mono);font-size:var(--t-value);color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1}
.ch-h-k{font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-2);
  letter-spacing:.08em;text-transform:uppercase;padding-top:4px}
.kf-axis--chain .ax-c{color:var(--ink-quiet);overflow:hidden;text-overflow:ellipsis}
@media (max-width:760px){
  .kf-plate--chain .ch-svg{height:clamp(300px,44vh,380px)}
  .ch-head{position:static;transform:none;padding:var(--s2) var(--s2) 0}
  .kf-axis--chain{grid-template-columns:1fr}
  .kf-axis--chain .ax-b,.kf-axis--chain .ax-c{display:none}
}

/* ── ONE PRESENT FRACTION ACROSS ROUTES ──────────────────────────────────
   Measured: KF01 put the present at 0.719 of the viewport, KF02 at 0.633 —
   a 123px jump at 1440 when moving State -> Time. The plot column must be the
   VIEWPORT, not a cell inside a gutter grid, or 72% means a different place on
   every route. The lanes therefore run full-bleed and their name and value
   ride ON the plate. */
.lane,.zones.lane{grid-template-columns:1fr;grid-template-areas:"s";
  position:relative;padding-inline:0;column-gap:0}
.lane > .lane-n{position:absolute;left:var(--s3);top:var(--s1);z-index:2}
.lane > .lane-v{position:absolute;right:var(--s3);top:var(--s1);z-index:2}
.lane > .lane-d{position:absolute;right:var(--s3);bottom:var(--s1);z-index:2}
.lane > svg,.lane > .zone-split{grid-area:s;width:100%}
.lane{height:52px}
.lane--omega{height:auto}
.lane--omega > .lane-n{top:var(--s2)}
.lane--omega > .lane-v{top:auto;bottom:var(--s3);font-size:var(--t-value)}
.lane--omega > .lane-d{bottom:var(--s2)}
.zones.lane{height:auto}
.zones.lane > .lane-n,.zones.lane > span:nth-child(3),.zones.lane > span:nth-child(4){display:none}
.zone-split{padding-inline:0}
.zone-split > .z:first-child{padding-left:var(--s3)}

/* Names and values now ride ON the plate, so they take the same backdrop chip
   the scale values use — measured: the axis names sat directly on their own
   traces and both became unreadable. */
.lane > .lane-n,.lane > .lane-v,.lane > .lane-d{
  background:var(--bg);box-shadow:0 0 0 4px var(--bg);border-radius:1px}
.lane > .lane-v{background:transparent;box-shadow:none}
.lane{height:56px}
.lane > .lane-n{top:50%;transform:translateY(-50%)}
.lane > .lane-v{top:50%;transform:translateY(-50%);right:var(--s3);font-size:var(--t-label)}
.lane > .lane-d{top:50%;transform:translateY(-50%);right:6.5rem;bottom:auto}
.lane--omega{height:auto}
.lane--omega > .lane-n{top:var(--s2);transform:none}
.lane--omega > .lane-v{top:auto;bottom:var(--s6);transform:none;font-size:var(--t-value);
  background:transparent;box-shadow:none}
.lane--omega > .lane-d{top:auto;bottom:var(--s3);right:var(--s3);transform:none;
  font-size:var(--t-label);background:transparent;box-shadow:none}
/* the Omega value and its delta were both pinned bottom-right and overlapped;
   the delta moves left of the value on its own baseline */
.lane--omega > .lane-d.is-big{right:auto;left:calc(var(--present-col) + var(--s3));
  bottom:var(--s6);font-size:var(--t-label);color:var(--ink-2)}
.lane--omega > .lane-v.is-big{bottom:var(--s4)}
@media (max-width:760px){
  /* at 390 the Omega delta has no room beside the value: it takes the line above */
  .lane--omega > .lane-d.is-big{left:var(--s2);bottom:auto;top:var(--s2);
    font-size:var(--t-micro)}
  .lane--omega > .lane-v.is-big{bottom:var(--s2);font-size:var(--t-lede)}
  .lane > .lane-d{right:auto;left:var(--s2);top:auto;bottom:2px;transform:none;
    font-size:10px}
  .lane > .lane-n{top:2px;transform:none;font-size:10px}
  .lane{height:48px}
}
@media (max-width:760px){
  /* the Omega name and its delta were both pinned top-left of the same lane */
  .lane--omega > .lane-d.is-big{left:auto;right:var(--s2);top:var(--s2)}
  .lane > .lane-d{left:auto;right:var(--s2);bottom:2px}
  .lane > .lane-v{right:var(--s2)}
}
@media (max-width:760px){
  /* the desktop rule centres the delta vertically; without resetting top and
     transform it stayed centred and collided with the value at the same edge */
  .lane > .lane-d{top:auto !important;bottom:3px;transform:none !important}
  .lane > .lane-v{top:3px !important;transform:none !important}
  .lane--omega > .lane-v.is-big{top:auto !important;bottom:var(--s2)}
  .lane--omega > .lane-d.is-big{top:var(--s2) !important;bottom:auto}
}
@media (max-width:760px){
  /* .lane{height:48px} above also hit the Omega lane and collapsed the plot to
     a 48px strip, stacking its value and delta on top of each other */
  .lane--omega{height:auto}
  .lane--omega > .lane-v.is-big{bottom:var(--s2);top:auto !important}
  .lane--omega > .lane-d.is-big{top:var(--s2) !important;bottom:auto}
}
@media (max-width:760px){
  /* default line-height made each label box 24px tall inside a 48px lane, so
     value (3..27) and delta (24..48) overlapped by 7px */
  .lane > .lane-n,.lane > .lane-v,.lane > .lane-d{line-height:1}
}

/* ── LABEL AND MEASUREMENT ARE DIFFERENT SPACES ──────────────────────────
   The axis names used to sit on their own traces and were made legible with a
   backdrop chip — masking the collision rather than removing it. A lane is now
   two rows: a label rail, then the measurement. The trace cannot reach the name
   because the name is not in the plot; the separation is geometric. */
.lane:not(.zones){display:grid !important;grid-template-rows:auto auto;
  grid-template-columns:1fr !important;grid-template-areas:none !important;
  height:auto !important;position:relative;padding:0 !important;
  border-bottom:1px solid var(--rule)}
/* the zone strip is ONE row whose only child is the split; it must not inherit
   the two-row lane rule, which re-resolved its 72% against a different box and
   pushed the three zones 152px past the viewport */
.zones.lane{display:block !important;padding:0 !important;height:auto !important;
  border-bottom:1px solid var(--rule)}
.zones.lane > .lane-n,.zones.lane > span:nth-child(3),.zones.lane > span:nth-child(4){display:none}
.zones.lane > .zone-split{display:grid;grid-template-columns:var(--present-col) auto 1fr;
  width:100%}
.lane-head{display:flex;align-items:baseline;gap:var(--s3);
  padding:var(--s2) var(--s3) 6px;border-bottom:1px solid transparent}
.lane-head .lane-n{position:static !important;transform:none !important;
  background:none !important;box-shadow:none !important;
  font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.14em;
  color:var(--ink-2);flex:0 0 auto}
.lane-head .lane-v{position:static !important;transform:none !important;
  background:none !important;box-shadow:none !important;margin-left:auto;
  font-family:var(--mono);font-size:var(--t-label);color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1}
.lane-head .lane-d{position:static !important;transform:none !important;
  background:none !important;box-shadow:none !important;order:3;
  font-family:var(--mono);font-size:var(--t-micro);color:var(--ink-quiet);
  font-variant-numeric:tabular-nums;line-height:1;min-width:4.5rem;text-align:right}
.lane-s{height:30px}
.lane--omega .lane-head{padding-bottom:var(--s2)}
.lane-head .lane-v.is-big{font-size:var(--t-value);line-height:1}
.lane-head .lane-d.is-big{font-size:var(--t-label);color:var(--ink-2);min-width:6rem}

/* The plot must span its row, or the present fraction is measured against a
   box the coordinate never knew about: measured, the lane svgs rendered at
   1126/1198/1215px with non-zero left offsets and the present drifted to
   0.76–0.78 of the viewport instead of 0.72. */
.lane > svg,.lane > .kf-svg,.lane-s{width:100% !important;justify-self:stretch;
  display:block;max-width:none}
/* A leftover `grid-area:s` on the lane children referenced an area that no
   longer exists, so the browser created IMPLICIT columns
   (314px / 0 / 1126px) and the plot never spanned its row. */
.lane:not(.zones) > *{grid-area:auto !important;grid-column:1 !important}
@media (max-width:760px){
  /* The reachable label starts exactly where its region starts: it is the
     second cell of a split whose first cell IS the present fraction, so the
     edge is derived, not an optical offset. */
  .zones.lane > .zone-split{grid-template-columns:var(--present-col) 1fr}
  .zone-split .z-now{display:none}
  .z-reach{padding-left:0 !important;padding-right:var(--s2)}
  .zone-split > .z:first-child{padding-left:var(--s2)}
}

/* ── REG ROW: the register's primitive for a labelled state ──────────────
   A lane without a plot. Replaces every metric panel, card grid and bordered
   table on the surface: the same hairline rhythm, the same mono label, the
   same right-aligned value. Nothing is boxed, because a box would make each
   reading an object instead of a row in one register. */
.reg{border-top:1px solid var(--rule)}
.reg-row{display:flex;align-items:baseline;gap:var(--s3);
  padding:var(--s2) 0;border-bottom:1px solid var(--rule)}
.reg-k{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-2);flex:0 0 11rem}
.reg-s{color:var(--ink-quiet);font-size:var(--t-label);line-height:1.5;flex:1 1 auto}
.reg-v{margin-left:auto;font-family:var(--mono);font-size:var(--t-label);
  color:var(--ink);font-variant-numeric:tabular-nums;flex:0 0 auto;text-align:right}
.reg-v.is-live{color:var(--live)}
.reg-v.is-hold{color:var(--hold)}
.reg-v.is-off,.reg-v.is-null{color:var(--ink-quiet)}
.reg--matrix .reg-a{flex:1 1 40%;color:var(--ink-prose);font-size:var(--t-label);line-height:1.5}
.reg--matrix .reg-b{flex:1 1 40%;color:var(--ink-quiet);font-size:var(--t-label);line-height:1.5}
.reg-row.is-head .reg-a,.reg-row.is-head .reg-b,.reg-row.is-head .reg-k{
  font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-2)}
@media (max-width:760px){
  .reg-row{flex-wrap:wrap;gap:var(--s1) var(--s2)}
  .reg-k{flex:1 1 100%}
  .reg-s{flex:1 1 100%;order:3}
  .reg--matrix .reg-a,.reg--matrix .reg-b{flex:1 1 100%}
}
/* the hash reference: every thirtieth block carries a link along its head */
.ch-link{fill:none;stroke:var(--ink-2);stroke-width:1;vector-effect:non-scaling-stroke;
  opacity:.5;stroke-dasharray:1 5}
.ch-t{stroke:var(--ink-2);stroke-width:1;vector-effect:non-scaling-stroke;opacity:.42}
.ch-t.is-major{stroke:var(--ink);opacity:.9}
.kf-plate--chain .kf-value{height:34%}
.kf-plate--chain .kf-num{font-size:clamp(52px,7.4vw,112px)}
/* The zone strip's middle track was `auto` against nowrap content, so its
   tracks summed past 100% and the SECTION reported a 53px scrollWidth even
   though no child rect crossed the viewport. Tracks are bounded. */
.zones.lane > .zone-split{grid-template-columns:var(--present-col) minmax(0,auto) minmax(0,1fr)}
.zone-split > .z{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* The full-bleed plate is positioned with calc(50% - 50vw) inside a centred
   container. No descendant rect crosses the viewport, but the SECTION's own
   box reports a wider scroll extent, which made the page scroll horizontally.
   `overflow-x: clip` contains the extent without clipping anything visible —
   the plate still reaches both edges, which is verified below, not assumed. */
.kf{overflow-x:clip}

/* ── LOCAL CHANGE: subordinate by construction ───────────────────────────
   The absolute line states the value; this hairline states movement since the
   start of the window. It is thinner, quieter, sits in its own shallow band
   against a zero rule, and every lane maps it on ONE shared scale — so it can
   never make a still axis look busy. It is not a second y-axis and carries no
   value of its own. */
.lane-s{height:44px}
.lane-zero{stroke:var(--rule);stroke-width:1;vector-effect:non-scaling-stroke}
.lane-local{fill:none;stroke:var(--ink-2);stroke-width:1;vector-effect:non-scaling-stroke;
  opacity:.62;stroke-linejoin:round}
.lane-t{stroke-width:1.4}
.lane-s{height:50px}
.lane-zero{stroke:var(--rule);stroke-width:1;opacity:.85}

/* ── SPATIAL MEMORY ON NON-REGISTER SURFACES ─────────────────────────────
   /integrate and /privacy carry no plot, and without the coordinate they read
   as a different website. The present line persists at the SAME 0.72 of the
   viewport — the identical coordinate the register uses — so the reader stays
   inside the instrument. It asserts nothing: it is the page's own vertical,
   not a measurement. */
.present-memory{position:fixed;top:0;bottom:0;left:var(--present);width:1px;
  background:var(--live);opacity:.16;pointer-events:none;z-index:0}
.present-memory.is-quiet{opacity:.08}
.wrap{position:relative;z-index:1}

/* ── /integrate: the endpoint list IS a register lane ────────────────────
   The row runs full width and splits at the present coordinate: left of the
   line is what you ask for, right of it is what currently comes back. The
   value column edge is the same 0.72 the plots use, so the page is not merely
   decorated with the line — it is measured against it. */
.reg--lane{margin-inline:calc(50% - 50vw);width:100vw;border-top:1px solid var(--rule)}
.reg--lane .reg-row{display:grid;grid-template-columns:var(--present-col) 1fr;
  gap:0;padding:var(--s2) 0;align-items:baseline}
/* the label column starts on the SAME content edge as the prose above it:
   the wrap is max-width var(--field), centred, with var(--edge) padding, so a
   full-bleed row must reproduce exactly that inset. Measured before this: the
   label sat 80px right of the H1. */
.reg--lane .reg-k{flex:none;
  padding-left:calc(max(0px, (100vw - var(--field))/2) + var(--edge));
  grid-row:1;grid-column:1;min-width:0}
.reg--lane .reg-a{flex:none;grid-row:1;grid-column:1;justify-self:end;
  padding-right:var(--s3);text-align:right;max-width:60%}
.reg--lane .reg-v{margin-left:0;grid-row:1;grid-column:2;justify-self:start;
  padding-left:var(--s3);text-align:left}
@media (max-width:760px){
  .reg--lane .reg-row{grid-template-columns:1fr;padding-inline:var(--s2)}
  .reg--lane .reg-k,.reg--lane .reg-a,.reg--lane .reg-v{grid-column:1;
    justify-self:start;text-align:left;padding:0;max-width:none}
  .reg--lane .reg-a{grid-row:2}.reg--lane .reg-v{grid-row:3}
}

/* ── MOTION CLASS C — REGISTER EXPANSION ─────────────────────────────────
   The lane opens from the present line outward: a clip that starts at 0.72 and
   releases to both edges. It is the same coordinate the plot uses, so the
   movement is the geometry moving, not an effect applied on top of it.
   Unarmed lanes are fully visible — reduced motion and no-JS both land in the
   final state, never a hidden one. */
.lane-armed .lane-s,.lane-armed .kf-svg{
  clip-path:inset(0 calc(100% - var(--present)) 0 var(--present));
  transition:clip-path var(--d-state) var(--e);
  transition-delay:calc(var(--i,0) * 40ms)}
.lane-armed.is-open .lane-s,.lane-armed.is-open .kf-svg{
  clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){
  .lane-armed .lane-s,.lane-armed .kf-svg{clip-path:none;transition:none}
}

/* ── MOTION CLASS E — NAVIGATION ─────────────────────────────────────────
   The route changes aperture; the instrument does not restart. The present
   line is a named transition element, so it is the SAME line across routes
   rather than one that dies and is reborn. Where the API is unsupported the
   navigation is a plain load — a hard, clean continuity, which the brief
   prefers over motion theatre. */
@view-transition{navigation:auto}
::view-transition-group(present){animation-duration:var(--d-mid)}
.p-present,.present-memory{view-transition-name:present}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* Omega names the quantity; it is set in the display face while the value it
   names stays mono and tabular. This is the display / measurement split made
   visible rather than asserted. */
.gr{font-family:var(--sans);font-weight:600;letter-spacing:0}
/* The arrow glyphs are absent from the shipped subset and were falling back to
   a foreign face. They are affordances, not language, so they are drawn from
   the same hairline system as the graticule. */
.arw{display:inline-block;width:.62em;height:.62em;border-top:1px solid currentColor;
  border-right:1px solid currentColor;vertical-align:middle;position:relative;top:-.06em}
.arw-r{transform:rotate(45deg);margin-left:.45em}
.arw-l{transform:rotate(-135deg);margin-right:.5em}

/* ── /privacy: the same architecture at lower energy ─────────────────────
   The content is already Item -> Handling, so the present coordinate is the
   truthful boundary between the two: left is the category, right is what
   happens to it. Nothing is invented — and the right side reading as "none"
   down the whole column IS the statement. No visualisation is added where
   none is warranted. */
.reg--quiet{border-top-color:var(--rule)}
.reg--quiet .reg-row{padding-block:var(--s3)}
.reg--quiet .reg-k{color:var(--ink-2)}
.reg-handling{font-family:var(--sans);font-size:var(--t-label);color:var(--ink-prose);
  letter-spacing:0;text-align:left;font-variant-numeric:normal;max-width:34ch}
.reg-handling.is-head{font-family:var(--mono);font-size:var(--t-micro);
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}

/* ── INTERMEDIATE WIDTHS ─────────────────────────────────────────────────
   Measured at 768 and 1024: the reachable zone cell is 28% of the plot, which
   is 37px at 768 — narrower than the word it holds — and the MMR root was
   being cut mid-hash. Clipping a value is worse than dropping a label, so the
   zone strip takes its two-region form earlier and the axis strip wraps
   rather than truncating. */
@media (max-width:1100px){
  .zones.lane > .zone-split{grid-template-columns:var(--present-col) 1fr}
  .zone-split .z-now{display:none}
  .z i{display:none}
  .z-reach{padding-left:var(--s2);padding-right:var(--s2)}
  .kf-axis span{white-space:normal}
  .kf-axis--chain .ax-c{overflow:visible;text-overflow:clip;word-break:break-all;
    font-size:var(--t-micro)}
}


/* ── PUBLIC AXIS IDENTITY + CLOSED SYSTEM LOOP · 2026-09-22 ─────────────
   Identity is owner-bound: Φ Β W Μ Λ Ψ Χ. The loop is descriptive: the
   reachable region is never ranked before later observation. */
.axis-sig{font-family:var(--mono);letter-spacing:.13em;white-space:nowrap;color:var(--ink-2)}
.kf-meta .axis-sig{color:var(--ink);font-size:var(--t-micro)}
.kf--closure{padding-top:var(--s12);padding-bottom:var(--s16)}
.closure-head{max-width:760px}
.closure-kicker{display:block;font:600 var(--t-micro)/1 var(--mono);letter-spacing:.18em;
  color:var(--live);margin-bottom:var(--s2)}
.closure-head h2{font-size:var(--t-head);font-weight:500;line-height:1.15;margin:0 0 var(--s2)}
.closure-head p,.closure-boundary{color:var(--ink-prose);font-size:var(--t-label);
  line-height:1.65;max-width:72ch}
.closure-axis-sig{margin:var(--s8) 0 var(--s4);font:600 clamp(18px,2vw,28px)/1 var(--mono);
  letter-spacing:.26em;color:var(--ink);white-space:nowrap}
.closure-loop{display:grid;grid-template-columns:repeat(11,max-content);align-items:center;
  gap:clamp(8px,1.2vw,18px);padding:var(--s3) 0;border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);overflow-x:auto}
.closure-loop span{min-width:118px}
.closure-loop small,.closure-loop b,.closure-loop em{display:block}
.closure-loop small{font:500 9px/1 var(--mono);color:var(--ink-quiet);letter-spacing:.14em}
.closure-loop b{margin-top:8px;font:600 var(--t-micro)/1.1 var(--mono);letter-spacing:.08em;color:var(--ink)}
.closure-loop em{margin-top:6px;font:400 11px/1.3 var(--mono);font-style:normal;color:var(--ink-2)}
.closure-loop i{font-style:normal;color:var(--live);opacity:.55}
.closure-boundary{margin-top:var(--s3);color:var(--ink-2)}
@media(max-width:760px){
  .ribbon .axis-sig{display:none}
  .kf-meta .axis-sig{display:none}
  .closure-axis-sig{font-size:17px;letter-spacing:.14em;white-space:normal;line-height:1.8}
  .closure-loop{grid-template-columns:1fr 18px 1fr;gap:12px}
  .closure-loop span{min-width:0}
  .closure-loop i:nth-of-type(2n){display:none}
}

/* CMMX FLAGSHIP V100 — brand layer above the verified instrument */
:root{
  --fx-bg:#050708;--fx-panel:rgba(13,17,19,.72);
  --fx-line:rgba(255,255,255,.105);--fx-line-soft:rgba(255,255,255,.055);
  --fx-text:#f4f7f5;--fx-muted:#8d9a95;--fx-green:#3dd68c;
  --fx-green-soft:rgba(61,214,140,.13);--fx-green-glow:rgba(61,214,140,.28);
}
html{scroll-behavior:smooth}
body{background:var(--fx-bg)}
.top{
  background:rgba(5,7,8,.78);
  backdrop-filter:blur(22px) saturate(130%);
  -webkit-backdrop-filter:blur(22px) saturate(130%);
  border-bottom:1px solid var(--fx-line-soft)
}
.fx-hero{
  position:relative;min-height:calc(100svh - 58px);overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(72px,8vw,132px) max(24px,calc((100vw - 1440px)/2));
  border-bottom:1px solid var(--fx-line-soft);isolation:isolate
}
.fx-grid{position:absolute;inset:0;z-index:-4;
  background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);
  background-size:68px 68px;mask-image:linear-gradient(to bottom,#000,transparent 96%)}

.fx-grid:after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(5,7,8,.08),rgba(5,7,8,.72) 49%,rgba(5,7,8,.18))}
.fx-glow{position:absolute;border-radius:50%;filter:blur(90px);z-index:-3;pointer-events:none}
.fx-glow--a{width:540px;height:540px;right:4%;top:9%;background:rgba(61,214,140,.075)}
.fx-glow--b{width:380px;height:380px;left:14%;bottom:-18%;background:rgba(80,121,255,.045)}
.fx-hero-in{width:min(1440px,100%);margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  gap:clamp(48px,7vw,112px);align-items:center}
.fx-copy{position:relative;z-index:2}
.fx-kicker{display:flex;align-items:center;gap:9px;margin:0 0 24px;color:#aab6b1;
  font:600 11px/1.2 var(--mono,ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase}
.fx-live-dot{width:7px;height:7px;border-radius:50%;background:var(--fx-green);
  box-shadow:0 0 0 5px rgba(61,214,140,.08),0 0 24px rgba(61,214,140,.52);
  animation:fxPulse 2.4s ease-in-out infinite}
@keyframes fxPulse{50%{box-shadow:0 0 0 9px rgba(61,214,140,0),0 0 34px rgba(61,214,140,.34)}}
.fx-copy h1{margin:0;max-width:900px;color:var(--fx-text);
  font-size:clamp(56px,7.45vw,118px);line-height:.88;letter-spacing:-.066em;font-weight:500}
.fx-copy h1 em{display:inline-block;color:#a7b0ac;font-style:normal;font-weight:300}
.fx-deck{max-width:720px;margin:34px 0 0;color:#aeb8b4;
  font-size:clamp(17px,1.38vw,22px);line-height:1.55;letter-spacing:-.018em}

.fx-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:48px;
  padding:0 19px;border:1px solid var(--fx-line);border-radius:4px;text-decoration:none!important;
  font:600 12px/1 var(--mono,ui-monospace,monospace);letter-spacing:.045em;text-transform:uppercase;
  transition:transform .2s ease,border-color .2s ease,background .2s ease}
.fx-btn:hover{transform:translateY(-2px)}
.fx-btn--primary{background:var(--fx-green);border-color:var(--fx-green);color:#041009!important}
.fx-btn--primary:hover{background:#55e59d}
.fx-btn--ghost{background:rgba(255,255,255,.025);color:#dce3df!important}
.fx-btn--ghost:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.045)}
.fx-boundary{display:flex;flex-wrap:wrap;gap:8px 17px;margin-top:29px;color:#65716d;
  font:500 10px/1.4 var(--mono,ui-monospace,monospace);letter-spacing:.07em}
.fx-boundary span+span:before{content:"/";margin-right:17px;color:#34403b}
.fx-state-object{position:relative;justify-self:center;width:min(42vw,570px);aspect-ratio:1;
  border-radius:50%;filter:drop-shadow(0 30px 70px rgba(0,0,0,.42))}
.fx-orbit,.fx-cross{position:absolute;pointer-events:none}
.fx-orbit{inset:0;border:1px solid rgba(255,255,255,.095);border-radius:50%}
.fx-orbit--mid{inset:17%;border-color:rgba(255,255,255,.075)}
.fx-orbit--inner{inset:34%;border-color:rgba(61,214,140,.20);box-shadow:0 0 60px rgba(61,214,140,.045) inset}
.fx-cross--x{left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent)}

.fx-cross--y{top:0;bottom:0;left:50%;width:1px;
  background:linear-gradient(transparent,rgba(255,255,255,.09),transparent)}
.fx-state-object:before{content:"";position:absolute;inset:6%;border-radius:50%;
  border:1px dashed rgba(61,214,140,.12);animation:fxSpin 42s linear infinite}
@keyframes fxSpin{to{transform:rotate(360deg)}}
.fx-core{position:absolute;inset:34%;z-index:3;border-radius:50%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,
  rgba(61,214,140,.14),rgba(8,12,11,.94) 58%),#070a09;border:1px solid rgba(61,214,140,.32);
  box-shadow:0 0 0 10px rgba(61,214,140,.025),0 0 70px rgba(61,214,140,.11)}
.fx-core small,.fx-core span{font:600 9px/1.2 var(--mono,ui-monospace,monospace);
  letter-spacing:.1em;color:#72827b}
.fx-core strong{margin:7px 0 6px;color:var(--fx-text);
  font:400 clamp(30px,3.2vw,50px)/1 var(--mono,ui-monospace,monospace);letter-spacing:-.06em}
.fx-axis{position:absolute;z-index:4;width:118px;display:grid;grid-template-columns:auto 1fr;
  column-gap:8px;row-gap:3px;align-items:baseline;padding:9px 10px;
  border:1px solid rgba(255,255,255,.095);background:rgba(6,9,8,.82);backdrop-filter:blur(8px)}
.fx-axis b{color:var(--fx-green);font:500 20px/1 var(--mono,ui-monospace,monospace)}
.fx-axis span{justify-self:end;color:#e5ece8;font:500 11px/1 var(--mono,ui-monospace,monospace)}
.fx-axis small{grid-column:1/-1;color:#64706c;font:500 8px/1.15 var(--mono,ui-monospace,monospace);
  letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.fx-axis--1{left:50%;top:-2%;transform:translateX(-50%)}
.fx-axis--2{right:0;top:17%}.fx-axis--3{right:-3%;top:48%;transform:translateY(-50%)}
.fx-axis--4{right:9%;bottom:5%}.fx-axis--5{left:9%;bottom:5%}
.fx-axis--6{left:-3%;top:48%;transform:translateY(-50%)}.fx-axis--7{left:0;top:17%}
.fx-livebar{width:min(1440px,100%);margin:clamp(48px,6vh,76px) auto 0;display:grid;
  grid-template-columns:1.1fr repeat(4,1fr);border:1px solid var(--fx-line);
  background:rgba(7,10,9,.66);backdrop-filter:blur(12px)}
.fx-livebar>div{min-height:74px;padding:16px 18px;border-right:1px solid var(--fx-line-soft)}
.fx-livebar>div:last-child{border-right:0}
.fx-livebar small{display:block;color:#5f6d67;font:600 9px/1.1 var(--mono,ui-monospace,monospace);letter-spacing:.08em}
.fx-livebar b{display:inline-block;margin-top:9px;color:#e7ece9;font:500 15px/1 var(--mono,ui-monospace,monospace)}
.fx-live-label{display:inline-block;margin-left:9px;padding:4px 6px;border-radius:3px;background:var(--fx-green-soft);
  color:var(--fx-green);font:600 8px/1 var(--mono,ui-monospace,monospace)}
.fx-time{width:min(1440px,100%);margin:13px auto 0;display:grid;grid-template-columns:72fr 1px 28fr;
  align-items:center;min-height:58px;color:#68756f;font:500 9px/1.3 var(--mono,ui-monospace,monospace)}
.fx-time-zone{display:flex;align-items:center;gap:11px;padding:0 13px}
.fx-time-zone b{color:#aeb8b4;font-size:10px;letter-spacing:.07em}
.fx-time-zone--past{justify-content:flex-end}.fx-time-zone--future{justify-content:flex-start}
.fx-time-line{position:relative;height:44px;width:1px;background:var(--fx-green)}

.fx-time-line i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--fx-green);
  left:-3px;top:18px;box-shadow:0 0 18px var(--fx-green-glow)}
.fx-time-line strong{position:absolute;top:-2px;left:9px;color:var(--fx-green);font-size:8px;letter-spacing:.08em}
.fx-thesis{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:clamp(100px,12vw,180px) 0;text-align:center}
.fx-thesis-kicker{margin:0 0 28px;color:#62706a;font:600 10px/1 var(--mono,ui-monospace,monospace);letter-spacing:.12em}
.fx-thesis h2{margin:0;color:#e8eeeb;font-size:clamp(42px,6vw,82px);line-height:.98;
  letter-spacing:-.055em;font-weight:300}
.fx-thesis h2 span{color:var(--fx-green)}
.fx-thesis>p:not(.fx-thesis-kicker){max-width:720px;margin:28px auto 0;color:#89958f;font-size:18px;line-height:1.65}
.fx-thesis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:70px;
  border:1px solid var(--fx-line);background:var(--fx-line);text-align:left}
.fx-thesis-grid article{min-height:200px;padding:28px;background:#070a09}
.fx-thesis-grid article>span{color:#4f5b56;font:500 10px/1 var(--mono,ui-monospace,monospace)}
.fx-thesis-grid h3{margin:54px 0 9px;color:#e9eeec;font-size:23px;font-weight:500;letter-spacing:-.035em}
.fx-thesis-grid p{margin:0;color:#78857f;font-size:14px;line-height:1.55}
.fx-instrument-head{width:min(1440px,calc(100% - 48px));margin:0 auto;padding:110px 0 52px;
  border-top:1px solid var(--fx-line-soft);display:grid;grid-template-columns:1fr 2fr;gap:40px}
.fx-instrument-head>div{max-width:800px}
.fx-instrument-head h2{margin:0;color:#edf2ef;font-size:clamp(42px,5vw,72px);line-height:1;
  letter-spacing:-.052em;font-weight:400}

.fx-instrument-head p:not(.fx-kicker){max-width:610px;margin:20px 0 0;color:#79857f;font-size:16px;line-height:1.6}
.fx-end{width:min(1440px,calc(100% - 48px));margin:80px auto 0;padding:130px 24px 110px;
  border-top:1px solid var(--fx-line-soft);text-align:center}
.fx-end .fx-kicker{justify-content:center}
.fx-end h2{margin:0;color:#edf2ef;font-size:clamp(48px,6vw,86px);line-height:.98;
  letter-spacing:-.055em;font-weight:300}
.fx-end>p:not(.fx-kicker){max-width:680px;margin:25px auto 0;color:#87938d;font-size:17px;line-height:1.6}
.fx-actions--center{justify-content:center}
.fx-final-boundary{max-width:820px;margin:58px auto 0;padding-top:20px;border-top:1px solid var(--fx-line-soft);
  display:flex;justify-content:center;flex-wrap:wrap;gap:12px 28px;color:#5e6a65;
  font:500 9px/1.3 var(--mono,ui-monospace,monospace);letter-spacing:.06em}
.fx-final-boundary b{color:#9ba6a1}
@media (max-width:980px){
  .fx-hero{padding-top:82px}.fx-hero-in{grid-template-columns:1fr;gap:72px}
  .fx-copy{max-width:760px}.fx-state-object{width:min(78vw,520px)}
  .fx-livebar{grid-template-columns:repeat(3,1fr)}
  .fx-livebar>div:nth-child(3){border-right:0}
  .fx-livebar>div:nth-child(n+4){border-top:1px solid var(--fx-line-soft)}
  .fx-thesis-grid{grid-template-columns:1fr}.fx-thesis-grid article{min-height:auto}
  .fx-thesis-grid h3{margin-top:28px}.fx-instrument-head{grid-template-columns:1fr}
}

@media (max-width:620px){
  .fx-hero{min-height:auto;padding:68px 18px 40px}
  .fx-copy h1{font-size:clamp(54px,17vw,78px);line-height:.9}
  .fx-deck{font-size:16px;line-height:1.55;margin-top:25px}
  .fx-actions{display:grid;grid-template-columns:1fr;margin-top:28px}.fx-btn{width:100%}
  .fx-boundary{gap:7px 10px;font-size:8px}.fx-boundary span+span:before{margin-right:10px}
  .fx-state-object{width:min(92vw,390px);margin:8px auto 0}
  .fx-axis{width:92px;padding:7px}.fx-axis b{font-size:16px}
  .fx-axis span{font-size:9px}.fx-axis small{font-size:7px}
  .fx-axis--2{right:-2%;top:15%}.fx-axis--7{left:-2%;top:15%}
  .fx-axis--3{right:-5%}.fx-axis--6{left:-5%}.fx-core strong{font-size:30px}
  .fx-livebar{grid-template-columns:1fr 1fr;margin-top:60px}
  .fx-livebar>div{min-height:66px}.fx-livebar>div:nth-child(2n){border-right:0}
  .fx-livebar>div:nth-child(n+3){border-top:1px solid var(--fx-line-soft)}
  .fx-livebar>div:nth-child(3){border-right:1px solid var(--fx-line-soft)}
  .fx-livebar>div:last-child{grid-column:1/-1;border-right:0}
  .fx-time{grid-template-columns:64fr 1px 36fr}.fx-time-zone{display:block;padding:0 8px}
  .fx-time-zone b,.fx-time-zone span{display:block}.fx-time-zone--past{text-align:right}
  .fx-time-zone span{margin-top:4px;font-size:8px}
  .fx-thesis{width:calc(100% - 36px);padding:100px 0}.fx-thesis h2{font-size:clamp(40px,12vw,58px)}
  .fx-thesis>p:not(.fx-thesis-kicker){font-size:15px}.fx-thesis-grid{margin-top:48px}

  .fx-instrument-head{width:calc(100% - 36px);padding:80px 0 38px}
  .fx-end{width:calc(100% - 36px);padding:96px 0 80px}
  .fx-final-boundary{display:grid;gap:10px}
}
@media (prefers-reduced-motion:reduce){
  .fx-live-dot,.fx-state-object:before{animation:none}
  .fx-btn{transition:none}
}

.fx-page-hero{position:relative;overflow:hidden;padding:clamp(90px,11vw,160px) 24px 86px;
  border-bottom:1px solid var(--fx-line-soft);background:
  radial-gradient(circle at 78% 32%,rgba(61,214,140,.07),transparent 34%),
  linear-gradient(180deg,#060908 0%,#050708 100%)}
.fx-page-hero:before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:68px 68px;mask-image:linear-gradient(to bottom,#000,transparent)}
.fx-page-hero-in{position:relative;width:min(1240px,100%);margin:0 auto}
.fx-page-hero h1{max-width:980px;margin:0;color:#eef3f0;font-size:clamp(54px,7vw,104px);
  line-height:.91;letter-spacing:-.063em;font-weight:400}
.fx-page-hero h1 em{font-style:normal;font-weight:300;color:#9ba7a1}
.fx-page-hero>div>p:not(.fx-kicker){max-width:760px;margin:30px 0 0;color:#929e98;
  font-size:clamp(16px,1.35vw,20px);line-height:1.62}

.fx-page-stats{display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;margin-top:54px;
  border:1px solid var(--fx-line);background:var(--fx-line);gap:1px}
.fx-page-stats span{display:block;min-height:88px;padding:20px;background:rgba(6,9,8,.9)}
.fx-page-stats small{display:block;color:#596660;font:600 9px/1.15 var(--mono,ui-monospace,monospace);
  letter-spacing:.08em}
.fx-page-stats b{display:block;margin-top:13px;color:#e5ebe8;font:500 15px/1.1 var(--mono,ui-monospace,monospace)}
.fx-page-hero--verify .fx-page-stats span:nth-child(2) b{color:var(--fx-green)}
.fx-page-hero--integrate{background:
  radial-gradient(circle at 16% 20%,rgba(80,121,255,.055),transparent 32%),
  radial-gradient(circle at 78% 32%,rgba(61,214,140,.055),transparent 34%),#050708}
@media (max-width:620px){
  .fx-page-hero{padding:80px 18px 62px}
  .fx-page-hero h1{font-size:clamp(48px,15vw,70px)}
  .fx-page-hero>div>p:not(.fx-kicker){font-size:15px}
  .fx-page-stats{grid-template-columns:1fr;margin-top:38px}
  .fx-page-stats span{min-height:68px}
}


/* CMM.X FLAGSHIP V101 — measured visual/live closure */
html,body{max-width:100%;overflow-x:clip}
.kf-plate{width:100%;margin-left:0}
.fx-hero,.fx-page-hero{overflow:clip}
.nav a.is-on{color:var(--ink);border-bottom-color:var(--live)}
.fx-live-dot.is-limited{
  background:var(--hold);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--hold) 10%,transparent)
}
.fx-shadow-class{
  display:inline-block;margin-left:.4em;color:var(--fx-green);
  font:600 10px/1.3 var(--mono,ui-monospace,monospace);
  letter-spacing:.06em;text-transform:uppercase
}
[data-live-axis-value],[data-live="omega"],[data-live="price"],
[data-live="chain-seq"],[data-live="chain-head"]{
  font-variant-numeric:tabular-nums
}
@media(max-width:620px){
  .fx-state-object{width:min(86vw,350px)}
  .fx-axis--3{right:-2%}.fx-axis--6{left:-2%}
  .fx-glow{max-width:100vw}
  .fx-shadow-class{display:block;margin:.55em 0 0;font-size:9px}
}

/* V101 visual closure: keep the six-step loop on the same field as the page. */
.kf--closure{
  width:min(var(--field),100%);
  margin-inline:auto;
  padding-left:var(--edge);
  padding-right:var(--edge)
}


/* V102 — structural decision layer */
.sx-layer{max-width:1440px;margin:0 auto;padding:clamp(72px,9vw,132px) clamp(20px,5vw,72px);border-top:1px solid var(--line)}
.sx-head{max-width:850px;margin-bottom:42px}
.sx-head h2{font-size:clamp(40px,5.6vw,82px);line-height:.96;letter-spacing:-.055em;margin:10px 0 22px}
.sx-head h2 em{font-style:normal;color:var(--green)}
.sx-head>p:last-child{max-width:760px;color:var(--muted);font-size:clamp(16px,1.5vw,20px);line-height:1.55}
.sx-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.25fr auto 1fr;align-items:stretch;gap:10px;margin:38px 0}
.sx-flow>span{min-height:110px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008));padding:18px;display:flex;flex-direction:column;justify-content:space-between}
.sx-flow>span.is-focus{border-color:color-mix(in srgb,var(--green) 55%,var(--line));box-shadow:inset 0 0 0 1px rgba(61,214,140,.08)}
.sx-flow small{font:11px/1 var(--mono);color:var(--dim);letter-spacing:.11em}
.sx-flow b{font:600 13px/1.2 var(--mono);letter-spacing:.08em}
.sx-flow em{font:400 12px/1.25 var(--mono);font-style:normal;color:var(--muted);word-break:break-word}
.sx-flow>i{align-self:center;color:var(--dim);font-style:normal}
.sx-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-bottom:0}
.sx-grid article{min-height:148px;padding:22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.sx-grid article:nth-child(3n){border-right:0}
.sx-grid span{font:11px/1.2 var(--mono);letter-spacing:.11em;color:var(--dim)}
.sx-grid strong{font:600 clamp(26px,3vw,44px)/1 var(--sans);letter-spacing:-.04em;margin:auto 0 10px;color:var(--text)}
.sx-grid small{font:12px/1.35 var(--mono);color:var(--muted)}
.sx-boundary{display:flex;flex-wrap:wrap;gap:10px 24px;padding:18px 0;border-bottom:1px solid var(--line);font:11px/1.4 var(--mono);letter-spacing:.06em;color:var(--dim)}
.sx-boundary b{color:var(--text);font-weight:600}
.sx-note{max-width:900px;margin:22px 0 0;color:var(--muted);font-size:14px;line-height:1.55}
@media(max-width:900px){
  .sx-flow{grid-template-columns:1fr;gap:8px}.sx-flow>i{transform:rotate(90deg)}
  .sx-flow>span{min-height:86px}.sx-grid{grid-template-columns:1fr 1fr}
  .sx-grid article:nth-child(3n){border-right:1px solid var(--line)}
  .sx-grid article:nth-child(2n){border-right:0}
}
@media(max-width:560px){.sx-grid{grid-template-columns:1fr}.sx-grid article{border-right:0!important}}

/* V103 — ONE CMM.X SYSTEM */
.one-system,.one-time,.one-matrix,.one-structure,.one-decision,.one-evidence,.one-stack{
  max-width:1440px;margin:0 auto;padding:clamp(72px,9vw,136px) clamp(20px,5vw,72px);
  border-top:1px solid var(--line);position:relative
}
.one-system{padding-top:clamp(86px,11vw,160px)}
.one-system:before,.one-time:before,.one-matrix:before,.one-structure:before,.one-decision:before,.one-evidence:before,.one-stack:before{
  content:"";position:absolute;left:clamp(20px,5vw,72px);top:0;width:1px;height:52px;
  background:linear-gradient(var(--green),transparent);opacity:.55
}
.one-system-head,.one-section-head{max-width:980px;margin-bottom:44px}
.one-system-head h2,.one-section-head h2{
  margin:10px 0 20px;font-size:clamp(40px,5.7vw,84px);line-height:.96;letter-spacing:-.055em
}
.one-system-head h2 em,.one-section-head h2 em{font-style:normal;color:var(--green)}
.one-system-head>p:last-child,.one-section-head>p{
  max-width:850px;color:var(--muted);font-size:clamp(15px,1.45vw,19px);line-height:1.58
}
.one-section-head>span{font:11px/1 var(--mono);letter-spacing:.16em;color:var(--dim)}

.one-snapshot{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.one-snapshot>div{min-height:104px;padding:18px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}
.one-snapshot>div:last-child{border-right:0}
.one-snapshot small,.structure-focus small,.decision-data small,.evidence-grid small,.governance-grid small,.system-hash>span{
  font:10px/1.25 var(--mono);letter-spacing:.12em;color:var(--dim)
}
.one-snapshot b{font:600 13px/1.35 var(--mono);word-break:break-all}

.one-time-line{display:grid;grid-template-columns:1fr auto 1.1fr auto 1fr;gap:12px;align-items:stretch}
.one-time-line>i{align-self:center;width:48px;height:1px;background:var(--line);position:relative}
.one-time-line>i:after{content:"";position:absolute;right:-1px;top:-3px;border-left:5px solid var(--dim);border-top:3px solid transparent;border-bottom:3px solid transparent}
.one-time-node{min-height:184px;padding:24px;border:1px solid var(--line);background:rgba(255,255,255,.012);display:flex;flex-direction:column}
.one-time-node.is-present{border-color:rgba(61,214,140,.42);box-shadow:inset 0 0 0 1px rgba(61,214,140,.05)}
.one-time-node small{font:10px/1 var(--mono);letter-spacing:.14em;color:var(--dim)}
.one-time-node strong{margin:auto 0 14px;font:600 clamp(22px,2.6vw,38px)/1 var(--sans);letter-spacing:-.04em}
.one-time-node span{font:12px/1.45 var(--mono);color:var(--muted)}
.one-time-node b{color:var(--text)}
.one-time-rule{display:flex;flex-wrap:wrap;gap:12px 30px;padding:18px 0;border-bottom:1px solid var(--line);font:10px/1.4 var(--mono);letter-spacing:.08em;color:var(--dim)}
.one-time-rule b{color:var(--text);font-weight:600}

.matrix-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-bottom:18px;font:10px/1.4 var(--mono);letter-spacing:.1em;color:var(--dim)}
.matrix-meta b{color:var(--text)}
.state-matrix{display:grid;grid-template-columns:72px repeat(8,minmax(118px,1fr));overflow-x:auto;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.mx-head,.mx-axis,.mx-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.mx-head{padding:12px 10px;font:600 10px/1 var(--mono);letter-spacing:.1em;color:var(--dim);text-align:center;position:sticky;top:0;background:var(--bg);z-index:2}
.mx-corner{left:0;z-index:3}
.mx-axis{padding:18px 10px;font:600 18px/1 var(--mono);display:flex;align-items:center;justify-content:center;position:sticky;left:0;background:var(--bg);z-index:1}
.mx-cell{min-height:118px;padding:12px 10px;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.005))}
.mx-cell strong{font:600 18px/1 var(--mono);letter-spacing:-.03em;margin-bottom:8px}
.mx-cell>span{font:9px/1.25 var(--mono);color:var(--muted);min-height:24px;word-break:break-word}
.mx-cell small{display:flex;justify-content:space-between;margin-top:auto;font:9px/1.2 var(--mono);color:var(--dim)}
.mx-cell small+small{margin-top:4px}
.mx-cell small i{font-style:normal;color:var(--dim)}
.mx-cell small b{font-weight:500;color:var(--muted)}
.mx-cell.is-gap{background:repeating-linear-gradient(135deg,transparent,transparent 8px,rgba(255,255,255,.018) 8px,rgba(255,255,255,.018) 9px)}
.mx-cell.is-gap strong{color:var(--dim)}
.mx-cell.is-na{background:rgba(255,255,255,.008)}
.mx-cell.is-na strong{color:var(--dim);font-size:13px;letter-spacing:.04em}

.structure-focus{display:grid;grid-template-columns:.7fr .8fr 1fr 2fr;border:1px solid var(--line);margin-bottom:22px}
.structure-focus>div{min-height:116px;padding:18px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.structure-focus>div:last-child{border-right:0}
.structure-focus strong{margin:auto 0 0;font:600 clamp(24px,3.5vw,48px)/1 var(--sans);letter-spacing:-.05em}
.structure-focus strong.is-small{font:600 15px/1.4 var(--mono);letter-spacing:0}
.order-lattice{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.order-node{min-height:132px;padding:18px;border:1px solid var(--line);position:relative;overflow:hidden}
.order-node:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--dim)}
.order-node.is-up:before{background:var(--green)}
.order-node.is-down:before{background:#788894}
.order-node>div{display:flex;justify-content:space-between;gap:10px}
.order-node b{font:700 22px/1 var(--mono)}
.order-node span{font:10px/1.2 var(--mono);letter-spacing:.1em;color:var(--dim)}
.order-node strong{display:block;margin:28px 0 8px;font:500 12px/1.45 var(--mono)}
.order-node small{font:10px/1.3 var(--mono);color:var(--muted)}
.turning-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.turning-strip>span{min-width:120px;padding:12px 14px;border:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:4px 12px}
.turning-strip b{font:600 12px/1 var(--mono)}
.turning-strip em{font:10px/1 var(--mono);font-style:normal;color:var(--muted)}
.turning-strip small{grid-column:1/-1;font:9px/1.2 var(--mono);color:var(--dim)}

.decision-core{display:grid;grid-template-columns:minmax(240px,.72fr) 2fr;border:1px solid var(--line)}
.decision-mark{min-height:290px;padding:28px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;position:relative}
.decision-mark:after{content:"";position:absolute;width:92px;height:92px;border:1px solid var(--line);border-radius:50%;right:22px;top:22px;box-shadow:0 0 50px rgba(61,214,140,.06)}
.decision-mark small{font:10px/1 var(--mono);letter-spacing:.13em;color:var(--dim)}
.decision-mark strong{font:650 clamp(52px,7vw,100px)/.86 var(--sans);letter-spacing:-.07em;margin:34px 0 12px}
.decision-mark span{font:600 26px/1 var(--mono)}
.decision-data{display:grid;grid-template-columns:1fr 1fr}
.decision-data>div{min-height:145px;padding:22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.decision-data>div:nth-child(2n){border-right:0}
.decision-data>div:nth-last-child(-n+2){border-bottom:0}
.decision-data b{margin:auto 0 0;font:600 clamp(16px,2vw,28px)/1.15 var(--sans);letter-spacing:-.025em;word-break:break-word}
.one-boundary{max-width:950px;margin:20px 0 0;color:var(--muted);font-size:13px;line-height:1.55}

.evidence-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.evidence-grid article{min-height:176px;padding:22px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.evidence-grid article:last-child{border-right:0}
.evidence-grid strong{font:600 clamp(30px,4vw,54px)/1 var(--sans);letter-spacing:-.05em;margin:auto 0 12px}
.evidence-grid strong i{font-style:normal}
.evidence-grid span{font:10px/1.4 var(--mono);color:var(--muted)}
.open-evidence{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);border-top:0}
.open-evidence>div{padding:18px 22px;display:grid;grid-template-columns:auto 1fr auto;gap:20px;border-right:1px solid var(--line);align-items:center}
.open-evidence>div:last-child{border-right:0}
.open-evidence b{font:600 12px/1 var(--mono)}
.open-evidence span,.open-evidence small{font:10px/1.3 var(--mono);color:var(--muted)}
.open-evidence small{text-align:right}

.system-stack{display:flex;align-items:stretch;border:1px solid var(--line);overflow-x:auto}
.system-stack>span{min-width:150px;flex:1;padding:18px;display:flex;flex-direction:column;gap:28px}
.system-stack>i{align-self:center;font-style:normal;color:var(--dim)}
.system-stack small{font:9px/1 var(--mono);letter-spacing:.12em;color:var(--dim)}
.system-stack b{font:600 12px/1.35 var(--mono)}
.governance-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line);margin-top:22px}
.governance-grid>div{min-height:116px;padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.governance-grid strong{margin:auto 0 0;font:600 17px/1.25 var(--mono);word-break:break-word}
.system-hash{margin-top:18px;padding:18px;border:1px solid var(--line);display:grid;grid-template-columns:170px 1fr;align-items:center;gap:18px}
.system-hash code{font:11px/1.5 var(--mono);color:var(--muted);word-break:break-all}
.one-empty{padding:24px;border:1px solid var(--line);color:var(--muted)}

@media(max-width:1050px){
  .one-snapshot{grid-template-columns:1fr 1fr}.one-snapshot>div:nth-child(2){border-right:0}.one-snapshot>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .order-lattice{grid-template-columns:1fr 1fr}.evidence-grid{grid-template-columns:1fr 1fr}
  .evidence-grid article:nth-child(2){border-right:0}.evidence-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:760px){
  .one-time-line{grid-template-columns:1fr}.one-time-line>i{width:1px;height:26px;justify-self:center}.one-time-line>i:after{right:-3px;top:auto;bottom:-1px;border-left:3px solid transparent;border-right:3px solid transparent;border-top:5px solid var(--dim);border-bottom:0}
  .structure-focus{grid-template-columns:1fr 1fr}.structure-focus>div:nth-child(2){border-right:0}.structure-focus>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .decision-core{grid-template-columns:1fr}.decision-mark{border-right:0;border-bottom:1px solid var(--line);min-height:220px}
  .governance-grid{grid-template-columns:1fr 1fr}.system-hash{grid-template-columns:1fr}
}
@media(max-width:560px){
  .one-snapshot,.order-lattice,.evidence-grid,.open-evidence,.governance-grid{grid-template-columns:1fr}
  .one-snapshot>div,.evidence-grid article,.open-evidence>div{border-right:0;border-bottom:1px solid var(--line)}
  .one-snapshot>div:last-child,.evidence-grid article:last-child,.open-evidence>div:last-child{border-bottom:0}
  .decision-data{grid-template-columns:1fr}.decision-data>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.decision-data>div:last-child{border-bottom:0!important}
}

.system-fabric{margin-top:22px;border:1px solid var(--line)}
.fabric-summary{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}
.fabric-summary>div{min-height:106px;padding:18px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.fabric-summary>div:last-child{border-right:0}
.fabric-summary small,.fabric-lists>div>small{font:10px/1.2 var(--mono);letter-spacing:.11em;color:var(--dim)}
.fabric-summary b{margin:auto 0 0;font:600 13px/1.4 var(--mono);word-break:break-word}
.fabric-lists{display:grid;grid-template-columns:1.6fr 1fr}
.fabric-lists>div{padding:20px;border-right:1px solid var(--line)}
.fabric-lists>div:last-child{border-right:0}
.fabric-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.fabric-tags span{padding:7px 9px;border:1px solid var(--line);font:9px/1.2 var(--mono);color:var(--muted)}
.fabric-tags.is-external span{border-style:dashed}
@media(max-width:760px){
  .fabric-summary,.fabric-lists{grid-template-columns:1fr}
  .fabric-summary>div,.fabric-lists>div{border-right:0;border-bottom:1px solid var(--line)}
  .fabric-summary>div:last-child,.fabric-lists>div:last-child{border-bottom:0}
}

/* V104 — claim-bound marketing projection, same CMM.X visual system */
.market-story{
  max-width:1440px;margin:0 auto;padding:clamp(76px,10vw,148px) clamp(20px,5vw,72px);
  border-top:1px solid var(--line);position:relative
}
.market-story:before{
  content:"";position:absolute;left:clamp(20px,5vw,72px);top:0;width:1px;height:58px;
  background:linear-gradient(var(--green),transparent);opacity:.6
}
.market-story-head{max-width:1000px;margin-bottom:48px}
.market-story-head h2{
  margin:10px 0 22px;font-size:clamp(48px,7.2vw,108px);line-height:.9;
  letter-spacing:-.07em;max-width:1000px
}
.market-story-head>p:last-child{
  max-width:840px;color:var(--muted);font-size:clamp(17px,1.65vw,22px);line-height:1.55
}
.market-story-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}
.market-story-grid article{
  min-height:250px;padding:26px;border-right:1px solid var(--line);
  display:flex;flex-direction:column;background:rgba(255,255,255,.007)
}
.market-story-grid article:last-child{border-right:0}
.market-story-grid article.is-now{background:linear-gradient(180deg,rgba(61,214,140,.045),rgba(61,214,140,.008))}
.market-story-grid small,.market-story-copy small,.market-story-hash>span{
  font:10px/1.2 var(--mono);letter-spacing:.14em;color:var(--dim)
}
.market-story-grid strong{
  margin:auto 0 18px;font:600 clamp(28px,3.6vw,52px)/.98 var(--sans);letter-spacing:-.055em
}
.market-story-grid p{margin:0;color:var(--muted);font-size:13px;line-height:1.55;max-width:360px}
.market-story-copy{display:grid;grid-template-columns:1.35fr 1fr;border:1px solid var(--line);border-top:0}
.market-story-copy>div{padding:24px 26px;border-right:1px solid var(--line)}
.market-story-copy>div:last-child{border-right:0}
.market-story-copy p{margin:16px 0 0;color:var(--text);font-size:clamp(15px,1.3vw,18px);line-height:1.62}
.market-story-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.market-story-boundary{
  margin-top:26px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;gap:12px 28px;flex-wrap:wrap;font:10px/1.4 var(--mono);letter-spacing:.08em;color:var(--dim)
}
.market-story-boundary b{color:var(--text);font-weight:600}
.market-story-hash{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:center;padding-top:18px}
.market-story-hash code{font:10px/1.5 var(--mono);color:var(--muted);word-break:break-all}
@media(max-width:780px){
  .market-story-grid,.market-story-copy{grid-template-columns:1fr}
  .market-story-grid article,.market-story-copy>div{border-right:0;border-bottom:1px solid var(--line)}
  .market-story-grid article:last-child,.market-story-copy>div:last-child{border-bottom:0}
  .market-story-hash{grid-template-columns:1fr}
}

/* V105 — guided visual proof */
.guided-proof{
  max-width:1440px;margin:0 auto;padding:clamp(78px,10vw,150px) clamp(20px,5vw,72px);
  border-top:1px solid var(--line);position:relative
}
.guided-proof:before{
  content:"";position:absolute;left:clamp(20px,5vw,72px);top:0;width:1px;height:62px;
  background:linear-gradient(var(--green),transparent);opacity:.72
}
.guided-proof-head{max-width:980px;margin-bottom:42px}
.guided-proof-head h2{
  margin:10px 0 22px;font-size:clamp(48px,7vw,108px);line-height:.9;letter-spacing:-.07em
}
.guided-proof-head h2 em{font-style:normal;color:var(--green)}
.guided-proof-head>p:last-child{
  max-width:860px;color:var(--muted);font-size:clamp(16px,1.55vw,21px);line-height:1.58
}

.proof-guide{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-bottom:16px}
.proof-guide button{
  appearance:none;background:transparent;color:var(--text);border:0;border-right:1px solid var(--line);
  padding:18px;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:7px 13px;cursor:pointer
}
.proof-guide button:last-child{border-right:0}
.proof-guide button small{font:10px/1 var(--mono);color:var(--dim);letter-spacing:.12em}
.proof-guide button b{font:600 12px/1 var(--mono);letter-spacing:.09em}
.proof-guide button span{grid-column:2;font:11px/1.25 var(--mono);color:var(--muted)}
.proof-guide button.is-on{background:rgba(61,214,140,.045);box-shadow:inset 0 -2px 0 var(--green)}
.proof-guide button.is-on b{color:var(--green)}

.proof-stage{border:1px solid var(--line);background:rgba(255,255,255,.004)}
.proof-stage-top{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.proof-stage-top>div{padding:16px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.proof-stage-top>div:last-child{border-right:0}
.proof-stage-top span,.proof-strip-label{font:9px/1.1 var(--mono);letter-spacing:.13em;color:var(--dim)}
.proof-stage-top strong{font:600 15px/1.3 var(--mono);word-break:break-word}
.proof-stage-top strong i{font-style:normal}
.proof-stage-top strong.is-code{font-size:11px;color:var(--muted)}

.proof-frame{position:relative;padding:34px 18px 16px;overflow:hidden}
.proof-zone-labels{
  display:grid;grid-template-columns:1fr .16fr 1fr;gap:0;margin:0 24px 10px 24px;
  font:9px/1 var(--mono);letter-spacing:.12em;color:var(--dim)
}
.proof-zone-labels .is-now{text-align:center;color:var(--green)}
.proof-zone-labels .is-future{text-align:right}
.proof-svg{width:100%;height:auto;display:block;overflow:visible;color:var(--green)}
.proof-zone{fill:rgba(255,255,255,.012);stroke:rgba(255,255,255,.025)}
.proof-zone--future{fill:url(#proofFutureFade)}
.proof-grid line{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke;opacity:.72}
.proof-present-line{stroke:var(--green);stroke-width:1.2;vector-effect:non-scaling-stroke;opacity:.95}
.proof-present-halo{fill:none;stroke:rgba(61,214,140,.24);stroke-width:1.2;vector-effect:non-scaling-stroke;filter:url(#proofGlow)}
.proof-present-core{fill:var(--green);filter:url(#proofGlow)}
.proof-y-label,.proof-x-label{fill:var(--dim);font:9px var(--mono);letter-spacing:.08em}
.proof-x-label--now{fill:var(--green)}

.proof-axis-path{fill:none;stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:.7;transition:opacity .25s,stroke-width .25s}
.proof-axis-dot{vector-effect:non-scaling-stroke;stroke-width:1.2;transition:r .25s,opacity .25s}
.proof-axis-dot--past,.proof-axis-dot--future{fill:var(--bg)}
.proof-axis-dot--now{fill:currentColor}
.proof-reach-band,.proof-reach-cap{stroke-width:2;vector-effect:non-scaling-stroke;opacity:.65}
.proof-axis-0{stroke:#79e6b1;color:#79e6b1}
.proof-axis-1{stroke:#e7f0ec;color:#e7f0ec}
.proof-axis-2{stroke:#4fc78e;color:#4fc78e}
.proof-axis-3{stroke:#8ea29a;color:#8ea29a}
.proof-axis-4{stroke:#b3c9c0;color:#b3c9c0}
.proof-axis-5{stroke:#62b98f;color:#62b98f}
.proof-axis-6{stroke:#d0ddd8;color:#d0ddd8}

.proof-turn-marker{fill:var(--bg);stroke:var(--green);stroke-width:1;vector-effect:non-scaling-stroke}
.proof-turn-text{fill:var(--green);font:9px var(--mono);letter-spacing:.08em}
.proof-order-ring{fill:none;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 4;opacity:.45}
.proof-order-ring.is-up{stroke:var(--green)}
.proof-order-ring.is-down{stroke:#9aa7a2}
.proof-order-label{fill:var(--muted);font:8px var(--mono)}

.proof-chart-note{
  display:flex;flex-wrap:wrap;gap:8px 22px;padding:12px 6px 2px;
  font:9px/1.3 var(--mono);letter-spacing:.05em;color:var(--dim)
}
.proof-chart-note span:last-child{color:var(--text)}

.proof-axis-legend{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proof-axis-legend button{
  appearance:none;background:transparent;color:var(--text);border:0;border-right:1px solid var(--line);
  padding:14px 12px;display:grid;grid-template-columns:auto 1fr;gap:5px 9px;text-align:left;cursor:pointer
}
.proof-axis-legend button:last-child{border-right:0}
.proof-axis-legend b{font:650 17px/1 var(--mono)}
.proof-axis-legend span{font:8px/1.15 var(--mono);color:var(--dim);letter-spacing:.08em}
.proof-axis-legend i{grid-column:1/-1;font:10px/1.2 var(--mono);font-style:normal;color:var(--muted)}

.proof-timeframes{display:flex;gap:0;border-bottom:1px solid var(--line);overflow-x:auto}
.proof-timeframes button{
  appearance:none;min-width:72px;flex:1;background:transparent;color:var(--muted);border:0;border-right:1px solid var(--line);
  padding:13px 10px;font:600 10px/1 var(--mono);cursor:pointer
}
.proof-timeframes button:last-child{border-right:0}
.proof-timeframes button.is-on{background:rgba(61,214,140,.045);color:var(--green);box-shadow:inset 0 -2px 0 var(--green)}

.proof-explain{display:grid;grid-template-columns:1fr;min-height:166px;border-bottom:1px solid var(--line)}
.proof-explain article{display:none;padding:24px 26px;max-width:900px}
.proof-explain article.is-on{display:block}
.proof-explain small{font:10px/1 var(--mono);letter-spacing:.13em;color:var(--green)}
.proof-explain h3{margin:12px 0 10px;font-size:clamp(24px,3vw,40px);line-height:1;letter-spacing:-.04em}
.proof-explain p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}

.proof-structure-strip{display:grid;grid-template-columns:1.4fr 1fr;border-bottom:1px solid var(--line)}
.proof-orders,.proof-turns{padding:18px 20px}
.proof-orders{border-right:1px solid var(--line)}
.proof-orders>div,.proof-turns>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.proof-orders>div>span,.proof-turns>div>span{
  border:1px solid var(--line);padding:8px 10px;display:flex;gap:8px;align-items:center
}
.proof-orders b,.proof-turns b{font:600 11px/1 var(--mono)}
.proof-orders i,.proof-turns i{font:9px/1 var(--mono);font-style:normal;color:var(--muted)}
.proof-orders small{font:8px/1 var(--mono);color:var(--dim)}
.proof-orders .is-empty,.proof-turns .is-empty{font:10px/1.3 var(--mono);color:var(--muted)}

.proof-resolution-rail{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.proof-resolution-rail>div{min-height:118px;padding:18px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.proof-resolution-rail>div:last-child{border-right:0}
.proof-resolution-rail small{font:9px/1.15 var(--mono);letter-spacing:.1em;color:var(--dim)}
.proof-resolution-rail strong{margin:auto 0 0;font:600 clamp(24px,3vw,42px)/1 var(--sans);letter-spacing:-.04em}
.proof-resolution-rail strong i{font-style:normal}
.proof-resolution-rail strong.is-small{font:600 12px/1.35 var(--mono);letter-spacing:0;word-break:break-word}
.proof-boundary{margin:0;padding:18px 20px;color:var(--muted);font-size:12px;line-height:1.55;max-width:1060px}

/* guided emphasis — the data never changes, only visual focus */
.proof-stage[data-proof-stage="position"] [data-proof-order-rings],
.proof-stage[data-proof-stage="position"] [data-proof-turn-markers]{opacity:.18}
.proof-stage[data-proof-stage="position"] [data-proof-future-bands]{opacity:.28}
.proof-stage[data-proof-stage="structure"] [data-proof-axis-lines],
.proof-stage[data-proof-stage="structure"] [data-proof-axis-points]{opacity:.28}
.proof-stage[data-proof-stage="structure"] [data-proof-order-rings],
.proof-stage[data-proof-stage="structure"] [data-proof-turn-markers]{opacity:1}
.proof-stage[data-proof-stage="reachability"] [data-proof-axis-lines]{opacity:.38}
.proof-stage[data-proof-stage="reachability"] [data-proof-future-bands]{opacity:1}
.proof-stage[data-proof-stage="resolution"] .proof-frame{opacity:.46}
.proof-stage[data-proof-stage="resolution"] .proof-resolution-rail{background:rgba(61,214,140,.035)}
.proof-stage [data-proof-order-rings],
.proof-stage [data-proof-turn-markers],
.proof-stage [data-proof-axis-lines],
.proof-stage [data-proof-axis-points],
.proof-stage [data-proof-future-bands]{transition:opacity .25s}

@media(max-width:980px){
  .proof-guide{grid-template-columns:1fr 1fr}.proof-guide button:nth-child(2){border-right:0}.proof-guide button:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .proof-stage-top{grid-template-columns:1fr 1fr}.proof-stage-top>div:nth-child(2){border-right:0}.proof-stage-top>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .proof-axis-legend{grid-template-columns:repeat(4,1fr)}.proof-axis-legend button:nth-child(4){border-right:0}
  .proof-axis-legend button:nth-child(-n+4){border-bottom:1px solid var(--line)}
  .proof-resolution-rail{grid-template-columns:1fr 1fr}.proof-resolution-rail>div:nth-child(2){border-right:0}.proof-resolution-rail>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:680px){
  .proof-guide,.proof-stage-top,.proof-resolution-rail,.proof-structure-strip{grid-template-columns:1fr}
  .proof-guide button,.proof-stage-top>div,.proof-resolution-rail>div,.proof-orders{border-right:0;border-bottom:1px solid var(--line)}
  .proof-axis-legend{grid-template-columns:repeat(2,1fr)}
  .proof-axis-legend button:nth-child(n){border-bottom:1px solid var(--line)}
  .proof-axis-legend button:nth-child(2n){border-right:0}
  .proof-frame{padding-left:8px;padding-right:8px}
  .proof-zone-labels{margin-left:6px;margin-right:6px;font-size:8px}
}

.proof-axis-legend button.is-on{background:rgba(61,214,140,.045);box-shadow:inset 0 -2px 0 var(--green)}
.proof-stage[data-proof-axis-focus] .proof-axis{opacity:.10}
.proof-stage[data-proof-axis-focus="Phi"] .proof-axis-0,
.proof-stage[data-proof-axis-focus="V"] .proof-axis-1,
.proof-stage[data-proof-axis-focus="W"] .proof-axis-2,
.proof-stage[data-proof-axis-focus="M"] .proof-axis-3,
.proof-stage[data-proof-axis-focus="LQ"] .proof-axis-4,
.proof-stage[data-proof-axis-focus="Chi"] .proof-axis-5,
.proof-stage[data-proof-axis-focus="Psi"] .proof-axis-6{opacity:1;stroke-width:2.2}

/* V105 — technical detail is a secondary drill-down, never a competing story */
.technical-drilldown{
  max-width:1440px;margin:0 auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.technical-drilldown>summary{
  list-style:none;cursor:pointer;padding:22px clamp(20px,5vw,72px);
  display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(255,255,255,.006)
}
.technical-drilldown>summary::-webkit-details-marker{display:none}
.technical-drilldown>summary span{display:flex;flex-direction:column;gap:7px}
.technical-drilldown>summary small{font:9px/1 var(--mono);letter-spacing:.13em;color:var(--dim)}
.technical-drilldown>summary b{font:600 13px/1.3 var(--mono);font-weight:600}
.technical-drilldown>summary>i{font:300 24px/1 var(--mono);font-style:normal;color:var(--green);transition:transform .2s}
.technical-drilldown[open]>summary>i{transform:rotate(45deg)}
.technical-drilldown-body{border-top:1px solid var(--line)}
.technical-drilldown:not([open]) .technical-drilldown-body{display:none}

/* V106 — prospective commitment→reality replay */
.proof-replay{border-top:1px solid var(--line);background:rgba(255,255,255,.004)}
.proof-replay-head{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;padding:24px 26px;border-bottom:1px solid var(--line)}
.proof-replay-head small{font:10px/1 var(--mono);letter-spacing:.13em;color:var(--green)}
.proof-replay-head h3{margin:10px 0 8px;font-size:clamp(28px,3.8vw,48px);line-height:1;letter-spacing:-.05em}
.proof-replay-head p{margin:0;max-width:720px;color:var(--muted);font-size:13px;line-height:1.55}
.proof-replay-meta{display:flex;justify-content:flex-end;align-items:flex-start;gap:14px;flex-wrap:wrap}
.proof-replay-meta span{padding:8px 10px;border:1px solid var(--line);font:9px/1.3 var(--mono);color:var(--dim)}
.proof-replay-meta b{color:var(--text)}

.proof-replay-track{display:flex;gap:8px;overflow-x:auto;padding:18px 20px;border-bottom:1px solid var(--line);scroll-snap-type:x proximity}
.proof-replay-card{
  appearance:none;min-width:188px;max-width:188px;scroll-snap-align:start;background:rgba(255,255,255,.008);
  color:var(--text);border:1px solid var(--line);padding:13px;text-align:left;display:flex;flex-direction:column;
  gap:8px;cursor:pointer;position:relative
}
.proof-replay-card:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--dim)}
.proof-replay-card.is-confirmed:before{background:var(--green)}
.proof-replay-card.is-refuted:before{background:#88958f}
.proof-replay-card.is-neutral:before{background:transparent;border-left:1px dashed var(--dim)}
.proof-replay-card.is-selected{background:rgba(61,214,140,.035);box-shadow:inset 0 0 0 1px rgba(61,214,140,.18)}
.replay-status{font:8px/1.2 var(--mono);letter-spacing:.06em;color:var(--dim);min-height:20px;word-break:break-word}
.proof-replay-card strong{font:600 18px/1 var(--mono)}
.proof-replay-card small{font:9px/1.25 var(--mono);color:var(--muted)}
.proof-replay-card code{font:8px/1.2 var(--mono);color:var(--dim);word-break:break-all}
.replay-quality{height:3px;background:rgba(255,255,255,.055);overflow:hidden;margin:2px 0}
.replay-quality i{display:block;height:100%;background:var(--green);opacity:.72}
.proof-replay-card.is-refuted .replay-quality i{background:#9aa7a2}
.proof-replay-empty{padding:18px;color:var(--muted);font:11px/1.4 var(--mono)}

.proof-replay-detail{display:grid;grid-template-columns:1.5fr 1.2fr repeat(4,1fr);border-bottom:1px solid var(--line)}
.proof-replay-detail>div{min-height:94px;padding:15px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.proof-replay-detail>div:last-child{border-right:0}
.proof-replay-detail small{font:8px/1.1 var(--mono);letter-spacing:.1em;color:var(--dim)}
.proof-replay-detail strong{margin:auto 0 0;font:600 11px/1.3 var(--mono);word-break:break-word}

.proof-replay-legend{display:flex;flex-wrap:wrap;gap:10px 22px;padding:13px 20px;font:9px/1.3 var(--mono);color:var(--dim)}
.proof-replay-legend span{display:flex;align-items:center;gap:7px}
.proof-replay-legend i{display:block;width:12px;height:2px;background:var(--dim)}
.proof-replay-legend .is-confirmed i{background:var(--green)}
.proof-replay-legend .is-refuted i{background:#88958f}
.proof-replay-legend .is-neutral i{height:0;border-top:1px dashed var(--dim);background:none}

@media(max-width:900px){
  .proof-replay-head{grid-template-columns:1fr}
  .proof-replay-meta{justify-content:flex-start}
  .proof-replay-detail{grid-template-columns:1fr 1fr}
  .proof-replay-detail>div:nth-child(2n){border-right:0}
  .proof-replay-detail>div{border-bottom:1px solid var(--line)}
}
@media(max-width:560px){
  .proof-replay-detail{grid-template-columns:1fr}
  .proof-replay-detail>div{border-right:0}
}

/* V107 — current-generation evidence verdict */
.generation-verdict{border-top:1px solid var(--line);background:rgba(255,255,255,.006)}
.generation-verdict-head{display:grid;grid-template-columns:1.7fr .8fr;gap:26px;padding:26px;border-bottom:1px solid var(--line)}
.generation-verdict-head small{font:10px/1 var(--mono);letter-spacing:.13em;color:var(--green)}
.generation-verdict-head h3{margin:10px 0 12px;font-size:clamp(32px,4.6vw,62px);line-height:.96;letter-spacing:-.055em}
.generation-verdict-head h3 em{font-style:normal;color:var(--green)}
.generation-verdict-head p{margin:0;max-width:760px;color:var(--muted);font-size:13px;line-height:1.6}
.generation-verdict-action{border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;justify-content:space-between;min-height:126px}
.generation-verdict-action span{font:9px/1 var(--mono);letter-spacing:.12em;color:var(--dim)}
.generation-verdict-action strong{font:600 clamp(17px,2.1vw,30px)/1.1 var(--mono);word-break:break-word}

.generation-verdict-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}
.generation-verdict-grid article{padding:20px;border-right:1px solid var(--line);min-height:250px;display:flex;flex-direction:column}
.generation-verdict-grid article:last-child{border-right:0}
.generation-verdict-grid article>small{font:9px/1 var(--mono);letter-spacing:.12em;color:var(--dim)}
.generation-verdict-grid article>strong{margin:16px 0 auto;font:600 clamp(18px,2vw,28px)/1.08 var(--mono);color:var(--text);word-break:break-word}
.generation-verdict-grid article>div{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:end;padding-top:10px;margin-top:10px;border-top:1px solid var(--line)}
.generation-verdict-grid article>div span{font:9px/1 var(--mono);letter-spacing:.08em;color:var(--dim)}
.generation-verdict-grid article>div b{font:600 12px/1 var(--mono)}
.generation-verdict-grid article>div i{font:9px/1 var(--mono);font-style:normal;color:var(--muted)}

.generation-verdict-rule{display:flex;flex-wrap:wrap;gap:10px 24px;padding:16px 20px;border-bottom:1px solid var(--line);font:9px/1.35 var(--mono);letter-spacing:.07em;color:var(--dim)}
.generation-verdict-rule b{color:var(--text);font-weight:600}
.generation-verdict-hash{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;padding:16px 20px}
.generation-verdict-hash span{font:9px/1 var(--mono);letter-spacing:.1em;color:var(--dim)}
.generation-verdict-hash code{font:10px/1.5 var(--mono);color:var(--muted);word-break:break-all}

@media(max-width:860px){
  .generation-verdict-head{grid-template-columns:1fr}
  .generation-verdict-grid{grid-template-columns:1fr}
  .generation-verdict-grid article{border-right:0;border-bottom:1px solid var(--line)}
  .generation-verdict-grid article:last-child{border-bottom:0}
}
@media(max-width:560px){
  .generation-verdict-hash{grid-template-columns:1fr}
}

/* V108 — one system calibration flow */
.proof-guide{grid-template-columns:repeat(5,1fr)}
.proof-stage[data-proof-stage="calibration"] .proof-frame,
.proof-stage[data-proof-stage="calibration"] .proof-structure-strip,
.proof-stage[data-proof-stage="calibration"] .proof-resolution-rail,
.proof-stage[data-proof-stage="calibration"] .proof-replay,
.proof-stage[data-proof-stage="calibration"] .generation-verdict{opacity:.28}
.proof-stage[data-proof-stage="calibration"] .calibration-loop{
  background:rgba(61,214,140,.028);
  box-shadow:inset 0 0 0 1px rgba(61,214,140,.12)
}

.calibration-loop{border-top:1px solid var(--line);background:rgba(255,255,255,.004);transition:background .25s,box-shadow .25s}
.calibration-head{display:grid;grid-template-columns:1.6fr .8fr;gap:26px;padding:28px 26px;border-bottom:1px solid var(--line)}
.calibration-head small{font:10px/1 var(--mono);letter-spacing:.13em;color:var(--green)}
.calibration-head h3{margin:10px 0 12px;font-size:clamp(32px,4.8vw,64px);line-height:.95;letter-spacing:-.055em}
.calibration-head h3 em{font-style:normal;color:var(--green)}
.calibration-head p{margin:0;max-width:820px;color:var(--muted);font-size:13px;line-height:1.62}
.calibration-state{border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;min-height:150px}
.calibration-state>span{font:9px/1 var(--mono);letter-spacing:.12em;color:var(--dim)}
.calibration-state>strong{margin:auto 0 12px;font:600 clamp(18px,2.4vw,34px)/1.05 var(--mono);word-break:break-word}
.calibration-state>small{font:9px/1.35 var(--mono);color:var(--muted);word-break:break-word}

.calibration-flow{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 70px minmax(220px,1.15fr) 70px minmax(220px,1.15fr) 70px minmax(200px,1fr);
  border-bottom:1px solid var(--line)
}
.calibration-node{min-height:330px;padding:20px;display:flex;flex-direction:column;border-right:1px solid var(--line);position:relative}
.calibration-node:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--dim)}
.calibration-node.is-active:before{background:var(--green)}
.calibration-node.is-gate:before{background:transparent;border-left:1px dashed var(--dim)}
.cal-node-top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.cal-node-top small{font:9px/1 var(--mono);letter-spacing:.12em;color:var(--dim)}
.cal-node-top b{font:600 9px/1 var(--mono);letter-spacing:.1em;color:var(--green)}
.calibration-node.is-frozen .cal-node-top b{color:var(--muted)}
.calibration-node.is-gate .cal-node-top b{color:var(--text)}
.calibration-node h4{margin:22px 0 14px;font:600 clamp(16px,1.45vw,22px)/1.12 var(--mono);word-break:break-word}
.calibration-node p{margin:0 0 auto;color:var(--muted);font-size:11px;line-height:1.6}
.cal-metric{display:grid;grid-template-columns:1fr auto;gap:12px;padding-top:10px;margin-top:10px;border-top:1px solid var(--line);align-items:end}
.cal-metric span{font:8px/1.2 var(--mono);letter-spacing:.08em;color:var(--dim)}
.cal-metric strong{font:600 10px/1.2 var(--mono);text-align:right}
.cal-metric strong i{font-style:normal}
.cal-arm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);margin-top:16px;border:1px solid var(--line)}
.cal-arm-grid span{background:var(--bg);padding:10px;display:flex;justify-content:space-between;align-items:end;gap:8px}
.cal-arm-grid small{font:8px/1 var(--mono);color:var(--dim)}
.cal-arm-grid b{font:600 11px/1 var(--mono)}
.cal-arrow{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-right:1px solid var(--line);color:var(--dim)}
.cal-arrow span{font:300 28px/1 var(--mono);color:var(--green)}
.cal-arrow small{max-width:64px;text-align:center;font:8px/1.35 var(--mono);letter-spacing:.06em}
.calibration-footer{display:flex;flex-wrap:wrap;gap:10px 26px;padding:16px 20px;border-bottom:1px solid var(--line);font:9px/1.35 var(--mono);letter-spacing:.06em;color:var(--dim)}
.calibration-footer b{color:var(--text);font-weight:600}

@media(max-width:1180px){
  .calibration-flow{grid-template-columns:1fr 42px 1fr}
  .calibration-node,.cal-arrow{min-height:0}
  .calibration-flow .calibration-node:nth-of-type(3){border-top:1px solid var(--line)}
  .calibration-flow .calibration-node:nth-of-type(4){border-top:1px solid var(--line)}
}
@media(max-width:980px){
  .proof-guide{grid-template-columns:1fr 1fr}
  .proof-guide button{border-bottom:1px solid var(--line)}
  .proof-guide button:nth-child(2n){border-right:0}
  .proof-guide button:last-child{grid-column:1/-1;border-right:0}
  .calibration-head{grid-template-columns:1fr}
  .calibration-flow{grid-template-columns:1fr}
  .calibration-node{border-right:0;border-bottom:1px solid var(--line)}
  .cal-arrow{min-height:58px;border-right:0;border-bottom:1px solid var(--line);flex-direction:row}
  .cal-arrow small{max-width:none}
}
@media(max-width:560px){
  .proof-guide{grid-template-columns:1fr}
  .proof-guide button:nth-child(n){grid-column:auto;border-right:0}
  .calibration-head{padding:22px 16px}
  .calibration-node{padding:18px 16px}
}

/* V109 — CMM.X LIVE OBSERVER: market reality + unified structure */
.live-observer{max-width:1440px;margin:0 auto;padding:clamp(72px,9vw,132px) clamp(20px,5vw,72px);border-top:1px solid var(--fx-line-soft)}
.live-observer-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:36px;align-items:end}
.live-observer-head h2{margin:0;color:var(--fx-text);font-size:clamp(46px,6.2vw,94px);line-height:.91;letter-spacing:-.06em;font-weight:500}
.live-observer-head h2 em{font-style:normal;color:var(--fx-green);font-weight:400}
.live-observer-deck{max-width:850px;margin:28px 0 0;color:#aeb8b4;font-size:clamp(16px,1.35vw,21px);line-height:1.55}
.live-observer-identity{border:1px solid var(--fx-line);padding:18px;display:grid;gap:8px;background:rgba(255,255,255,.015)}
.live-observer-identity span{font:600 9px/1.1 var(--mono);letter-spacing:.12em;color:#65716d}
.live-observer-identity code,.live-observer-identity b{font:500 11px/1.3 var(--mono);color:#dce3df;word-break:break-all}

.live-observer-guide{display:grid;grid-template-columns:repeat(5,1fr);margin-top:42px;border:1px solid var(--fx-line)}
.live-observer-guide article{min-height:118px;padding:16px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column;gap:9px;background:rgba(255,255,255,.012)}
.live-observer-guide article:last-child{border-right:0}
.live-observer-guide small{font:600 9px/1 var(--mono);letter-spacing:.12em;color:var(--fx-green)}
.live-observer-guide b{font:600 17px/1 var(--sans);color:var(--fx-text)}
.live-observer-guide span{font:11px/1.45 var(--mono);color:#7c8984}

.live-market-stage,.live-state-stage,.evidence-readiness{margin-top:24px;border:1px solid var(--fx-line);background:rgba(255,255,255,.009)}
.live-market-toolbar{display:grid;grid-template-columns:1.05fr .34fr .64fr .64fr .72fr .72fr .58fr .58fr;border-bottom:1px solid var(--fx-line)}
.live-market-toolbar>div{min-height:72px;padding:14px 16px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column;justify-content:center}
.live-market-toolbar>div:last-child{border-right:0}
.live-market-toolbar small,.live-state-head small,.evidence-readiness-head small{font:600 9px/1 var(--mono);letter-spacing:.11em;color:#65716d}
.live-market-toolbar strong{margin-top:7px;font:600 13px/1.2 var(--mono);color:#e3eae6;word-break:break-word}
.live-market-chart{position:relative;padding:12px 16px 0;overflow:hidden}
#cmmx-market-chart{display:block;width:100%;height:auto;min-height:390px}
[data-lc-grid] line{stroke:rgba(255,255,255,.065);stroke-width:1;vector-effect:non-scaling-stroke}
[data-lc-price-range] line{stroke:rgba(255,255,255,.12);stroke-width:1;vector-effect:non-scaling-stroke}
[data-lc-price-line]{fill:none;stroke:var(--fx-green);stroke-width:2.15;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 8px rgba(61,214,140,.22))}
[data-lc-now]{stroke:#f4f7f5;stroke-width:1;stroke-dasharray:4 7;vector-effect:non-scaling-stroke}
[data-lc-now-label]{fill:#f4f7f5;font:600 10px var(--mono);letter-spacing:.08em}

[data-lc-cmmx-present]{stroke:var(--fx-green);stroke-width:1.4;stroke-dasharray:2 5;vector-effect:non-scaling-stroke}
[data-lc-cmmx-label]{fill:var(--fx-green);font:600 10px var(--mono);letter-spacing:.08em}
.lc-marker-confirmed{fill:var(--fx-green);stroke:var(--fx-bg);stroke-width:2}
.lc-marker-refuted{fill:#e06c5a;stroke:var(--fx-bg);stroke-width:2}
.lc-marker-neutral{fill:#7e8b99;stroke:var(--fx-bg);stroke-width:2}
.lc-marker-current{fill:#f4f7f5;stroke:var(--fx-green);stroke-width:2}
.lc-marker-link{stroke:rgba(149,162,175,.42);stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.lc-marker-text{fill:#95a2af;font:600 9px var(--mono);letter-spacing:.04em}
.live-market-axis{display:flex;justify-content:space-between;gap:16px;padding:10px 4px 14px;color:#65716d;font:9px/1.2 var(--mono);letter-spacing:.07em}
.live-marker-legend{display:flex;flex-wrap:wrap;gap:12px 24px;padding:14px 16px;border-top:1px solid var(--fx-line);font:9px/1.4 var(--mono);color:#7c8984}
.live-marker-legend span{display:flex;align-items:center;gap:7px}
.live-marker-legend i{width:8px;height:8px;border-radius:50%;background:#7e8b99}
.live-marker-legend .is-current i{background:#f4f7f5;box-shadow:0 0 0 2px rgba(61,214,140,.5)}
.live-marker-legend .is-confirmed i{background:var(--fx-green)}
.live-marker-legend .is-refuted i{background:#e06c5a}

.live-state-head{display:grid;grid-template-columns:1fr auto;gap:24px;padding:22px 18px;border-bottom:1px solid var(--fx-line);align-items:end}
.live-state-head h3,.evidence-readiness-head h3{margin:8px 0 0;color:var(--fx-text);font-size:clamp(28px,3.9vw,56px);line-height:.95;letter-spacing:-.045em;font-weight:500}
.live-state-head h3 em,.evidence-readiness-head h3 em{font-style:normal;color:var(--fx-green)}
.live-state-tfs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}
.live-state-tfs button{appearance:none;background:transparent;border:1px solid var(--fx-line);color:#83908b;padding:9px 10px;font:600 10px/1 var(--mono);cursor:pointer}
.live-state-tfs button.is-on{color:#07100b;background:var(--fx-green);border-color:var(--fx-green)}
.live-state-chart-wrap{padding:12px 16px 0}
#cmmx-state-chart{display:block;width:100%;height:auto;min-height:300px}
[data-lc-state-grid] line{stroke:rgba(255,255,255,.06);stroke-width:1;vector-effect:non-scaling-stroke}
.lc-state-now{stroke:#f4f7f5;stroke-width:1;stroke-dasharray:4 7;vector-effect:non-scaling-stroke}
.lc-axis-line{fill:none;stroke:var(--fx-green);stroke-width:1.6;vector-effect:non-scaling-stroke;opacity:.82}
.lc-axis-band{fill:rgba(61,214,140,.07);stroke:rgba(61,214,140,.35);stroke-width:1;vector-effect:non-scaling-stroke}
.lc-axis-point{fill:#f4f7f5;stroke:var(--fx-bg);stroke-width:1.5}
.lc-axis-na{stroke:#53605b;stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.live-state-x{display:grid;grid-template-columns:1fr 1fr 1fr;padding:6px 4px 14px;color:#65716d;font:9px/1 var(--mono);letter-spacing:.08em}
.live-state-x strong{text-align:center;color:#dce3df;font-weight:600}
.live-state-x span:last-child{text-align:right}
.live-state-legend{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--fx-line)}
.live-state-legend>span{min-height:76px;padding:12px;border-right:1px solid var(--fx-line);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:5px 9px;align-items:center}
.live-state-legend>span:last-child{border-right:0}
.live-state-legend b{font:500 24px/1 var(--sans);color:var(--fx-green)}
.live-state-legend i{font:600 8px/1 var(--mono);font-style:normal;color:#65716d;letter-spacing:.08em}
.live-state-legend strong{grid-column:1/-1;font:600 12px/1.2 var(--mono);color:#dce3df}

.evidence-readiness-head{display:grid;grid-template-columns:1.4fr .6fr;gap:24px;padding:24px 18px;border-bottom:1px solid var(--fx-line);align-items:end}
.evidence-readiness-head p{max-width:760px;margin:14px 0 0;color:#8d9a95;font-size:13px;line-height:1.55}
.coverage-stack{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--fx-line)}
.coverage-stack span{padding:14px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column;gap:5px}
.coverage-stack span:last-child{border-right:0}
.coverage-stack b{font:600 25px/1 var(--mono);color:#eef4f1}
.coverage-stack i{font:600 8px/1 var(--mono);font-style:normal;color:#65716d;text-transform:uppercase;letter-spacing:.07em}
.readiness-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.readiness-grid article{min-height:220px;padding:18px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column}
.readiness-grid article:last-child{border-right:0}
.readiness-top{display:flex;justify-content:space-between;gap:12px;align-items:start}
.readiness-top small{font:600 15px/1 var(--mono);color:var(--fx-green)}
.readiness-top b{max-width:72%;font:600 9px/1.3 var(--mono);color:#dce3df;text-align:right;word-break:break-word}
.readiness-grid p{margin:18px 0 auto;color:#8d9a95;font-size:12px;line-height:1.55}
.readiness-progress{height:5px;background:rgba(255,255,255,.06);margin:18px 0 10px;overflow:hidden}
.readiness-progress i{display:block;height:100%;background:var(--fx-green)}
.readiness-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;color:#65716d;font:8px/1.4 var(--mono);letter-spacing:.05em}
.readiness-meta b{color:#dce3df;font-weight:600}
.live-observer-boundary{display:flex;flex-wrap:wrap;gap:9px 22px;padding:16px 0;border-bottom:1px solid var(--fx-line-soft);color:#65716d;font:9px/1.45 var(--mono);letter-spacing:.06em}
.live-observer-boundary b{color:#dce3df;font-weight:600}

@media(max-width:1100px){
  .live-observer-head,.evidence-readiness-head{grid-template-columns:1fr}
  .live-observer-guide{grid-template-columns:repeat(2,1fr)}
  .live-observer-guide article:nth-child(2n){border-right:0}
  .live-observer-guide article:last-child{grid-column:1/-1}
  .live-market-toolbar{grid-template-columns:1fr 1fr}
  .live-market-toolbar>div:nth-child(2n){border-right:0}
  .live-market-toolbar>div{border-bottom:1px solid var(--fx-line)}
  .live-market-toolbar>div:last-child{grid-column:1/-1;border-right:0;border-bottom:0}
  .live-state-legend{grid-template-columns:repeat(4,1fr)}
  .live-state-legend>span:nth-child(4n){border-right:0}
  .readiness-grid{grid-template-columns:1fr}
  .readiness-grid article{border-right:0;border-bottom:1px solid var(--fx-line)}
  .readiness-grid article:last-child{border-bottom:0}
}
@media(max-width:720px){
  .live-observer{padding-left:16px;padding-right:16px}
  .live-observer-guide{grid-template-columns:1fr}
  .live-observer-guide article{border-right:0;border-bottom:1px solid var(--fx-line);min-height:92px}
  .live-observer-guide article:last-child{grid-column:auto;border-bottom:0}
  .live-market-toolbar{grid-template-columns:1fr}
  .live-market-toolbar>div{border-right:0;border-bottom:1px solid var(--fx-line)!important}
  .live-market-toolbar>div:last-child{border-bottom:0!important}
  #cmmx-market-chart{min-height:310px}
  .live-state-head{grid-template-columns:1fr}
  .live-state-tfs{justify-content:flex-start}
  .live-state-legend{grid-template-columns:1fr 1fr}
  .live-state-legend>span{border-right:1px solid var(--fx-line)!important;border-bottom:1px solid var(--fx-line)}
  .live-state-legend>span:nth-child(2n){border-right:0!important}
  .coverage-stack{grid-template-columns:1fr}
  .coverage-stack span{border-right:0;border-bottom:1px solid var(--fx-line)}
  .coverage-stack span:last-child{border-bottom:0}
}
[data-lc-state-now]{stroke:var(--fx-green);stroke-width:1.3;stroke-dasharray:2 5;vector-effect:non-scaling-stroke}
[data-lc-state-now-label]{fill:var(--fx-green);font:600 9px var(--mono);letter-spacing:.07em}
.readiness-grid.is-complete{grid-template-columns:1fr}
.readiness-grid .readiness-complete{min-height:130px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px}
.readiness-grid .readiness-complete strong{font:500 clamp(24px,3vw,42px)/1 var(--sans);letter-spacing:-.035em}
.readiness-grid .readiness-complete span{font:9px/1.4 var(--mono);color:#65716d;letter-spacing:.06em}


/* ═══════════════════════════════════════════════════════════════════════════
   V112 — POSITION TERMINAL
   Human reading order: reality -> coordinate -> structure -> proof.
   Technical evidence remains present, but no longer competes with the state.
   ═══════════════════════════════════════════════════════════════════════════ */

.v112-terminal,.v112-coordinate,.v112-read,.v112-verify{
  max-width:var(--field);margin:0 auto;padding-left:var(--edge);padding-right:var(--edge)
}
.v112-terminal{padding-top:clamp(48px,7vw,96px);padding-bottom:var(--s8)}
.v112-terminal-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s8);align-items:end}
.v112-kicker{font:600 var(--t-micro)/var(--b) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-quiet)}
.v112-kicker .fx-live-dot{display:inline-block;margin-right:8px}
.v112-terminal h1{margin-top:var(--s2);font-size:clamp(42px,7vw,82px);line-height:.98;max-width:850px}
.v112-terminal h1 em,.v112-coordinate h2 em,.v112-read h2 em,.v112-verify h2 em{font-style:normal;color:var(--live)}
.v112-deck{max-width:760px;margin-top:var(--s3);font-size:clamp(17px,1.3vw,20px);line-height:1.6;color:var(--ink-prose)}
.v112-terminal-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;padding-bottom:8px}
.v112-terminal-actions a{font:600 var(--t-label)/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line-2);padding:10px 0;color:var(--ink-2)}
.v112-terminal-actions a:first-child{color:var(--live)}

.v112-snapshot{display:grid;grid-template-columns:1.25fr repeat(5,1fr);margin-top:var(--s8);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.v112-snapshot article{min-width:0;padding:20px 18px 18px;border-right:1px solid var(--line)}
.v112-snapshot article:last-child{border-right:0}
.v112-snapshot small,.v112-proof-stats small{display:block;font:600 10px/1.2 var(--mono);letter-spacing:.12em;color:var(--ink-quiet);text-transform:uppercase}
.v112-snapshot strong{display:block;margin-top:9px;font:600 clamp(18px,2vw,28px)/1.05 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v112-snapshot span{display:block;margin-top:7px;font:400 11px/1.35 var(--mono);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v112-snapshot-primary strong{color:var(--ink)}
.v112-snapshot-primary span{font-size:16px;color:var(--live)}
.v112-snapshot .is-hold{font-size:14px;color:var(--hold)}

.v112-time-axis{display:grid;grid-template-columns:1fr 32px 1fr 32px 1fr;align-items:stretch;margin-top:var(--s4)}
.v112-time-axis>div{padding:18px 20px;border:1px solid var(--line);background:var(--bg-2)}
.v112-time-axis>div.is-now{border-color:color-mix(in srgb,var(--live) 55%,var(--line));background:color-mix(in srgb,var(--live) 5%,var(--bg-2))}
.v112-time-axis>i{display:grid;place-items:center;color:var(--ink-quiet);font-style:normal}
.v112-time-axis small{display:block;font:600 10px/1 var(--mono);letter-spacing:.14em;color:var(--ink-quiet)}
.v112-time-axis b{display:block;margin-top:10px;font:600 16px/1.2 var(--sans)}
.v112-time-axis span{display:block;margin-top:5px;font-size:12px;color:var(--ink-2)}

.v112-section-head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr);column-gap:var(--s8);align-items:end;margin-bottom:var(--s6)}
.v112-section-head .v112-kicker{grid-column:1/-1;margin-bottom:var(--s2)}
.v112-section-head h2{font-size:clamp(32px,4vw,54px);line-height:1.02}
.v112-section-head>p:last-child{max-width:560px;color:var(--ink-prose);line-height:1.65}

.v112-scale-ladder{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));border:1px solid var(--line-2)}
.v112-scale{padding:16px 12px;min-width:0;border-right:1px solid var(--line);position:relative;background:var(--bg-2)}
.v112-scale:last-child{border-right:0}
.v112-scale::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ink-quiet)}
.v112-scale.is-up::after{background:var(--live)}
.v112-scale.is-down::after{background:var(--off)}
.v112-scale small{font:600 11px/1 var(--mono);color:var(--ink-quiet)}
.v112-scale strong{display:block;margin-top:14px;font:600 15px/1 var(--mono)}
.v112-scale.is-up strong{color:var(--live)}
.v112-scale.is-down strong{color:var(--off)}
.v112-scale span{display:block;margin-top:8px;font-size:10px;line-height:1.25;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v112-scale i{display:block;margin-top:10px;font:400 10px/1 var(--mono);font-style:normal;color:var(--ink-quiet)}

.v112-coordinate-explain{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter);margin-top:var(--s4)}
.v112-coordinate-explain article{padding-top:var(--s3);border-top:1px solid var(--line-2)}
.v112-coordinate-explain small{font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--ink-quiet)}
.v112-coordinate-explain b{display:block;margin-top:12px;font:600 clamp(22px,2.4vw,34px)/1 var(--mono)}
.v112-coordinate-explain p{margin-top:12px;color:var(--ink-prose);line-height:1.55}

.v112-read-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter)}
.v112-read-grid article{padding:24px;border:1px solid var(--line);background:var(--panel);min-height:220px}
.v112-read-grid span{font:600 11px/1 var(--mono);color:var(--live)}
.v112-read-grid b{display:block;margin-top:34px;font-size:18px}
.v112-read-grid p{margin-top:14px;color:var(--ink-prose);font-size:14px;line-height:1.55}

.v112-verify{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);gap:var(--s8);align-items:start}
.v112-verify>div:first-child>p:last-child{max-width:650px;margin-top:var(--s3);color:var(--ink-prose);line-height:1.6}
.v112-verify h2{margin-top:var(--s2);font-size:clamp(32px,4vw,52px);line-height:1.04}
.v112-proof-stats{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2)}
.v112-proof-stats div{padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.v112-proof-stats div:nth-child(2n){border-right:0}
.v112-proof-stats div:nth-last-child(-n+2){border-bottom:0}
.v112-proof-stats b{display:block;margin-top:10px;font:600 13px/1.3 var(--mono);overflow-wrap:anywhere}
.v112-proof-actions{grid-column:1/-1;display:flex;gap:12px;margin-top:-20px}

#technical-proof{max-width:var(--field);margin:0 auto;padding-left:var(--edge);padding-right:var(--edge)}
#technical-proof>summary{position:sticky;top:60px;z-index:15;background:var(--bg);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}

@media(max-width:980px){
  .v112-terminal-head{grid-template-columns:1fr}
  .v112-terminal-actions{align-items:flex-start;flex-direction:row;padding:0}
  .v112-snapshot{grid-template-columns:repeat(3,1fr)}
  .v112-snapshot article:nth-child(3){border-right:0}
  .v112-snapshot article:nth-child(-n+3){border-bottom:1px solid var(--line)}
  .v112-scale-ladder{grid-template-columns:repeat(4,1fr)}
  .v112-scale:nth-child(4n){border-right:0}
  .v112-scale:nth-child(-n+4){border-bottom:1px solid var(--line)}
  .v112-section-head{grid-template-columns:1fr}
  .v112-section-head>p:last-child{margin-top:var(--s3)}
  .v112-read-grid{grid-template-columns:1fr 1fr}
  .v112-verify{grid-template-columns:1fr}
  .v112-proof-actions{margin-top:0}
}
@media(max-width:640px){
  .v112-terminal,.v112-coordinate,.v112-read,.v112-verify,#technical-proof{padding-left:20px;padding-right:20px}
  .v112-terminal{padding-top:40px}
  .v112-terminal h1{font-size:clamp(40px,13vw,58px)}
  .v112-terminal-actions{display:none}
  .v112-snapshot{grid-template-columns:1fr 1fr}
  .v112-snapshot article{border-bottom:1px solid var(--line)}
  .v112-snapshot article:nth-child(2n){border-right:0}
  .v112-snapshot article:nth-last-child(-n+2){border-bottom:0}
  .v112-time-axis{grid-template-columns:1fr}
  .v112-time-axis>i{height:24px;transform:rotate(90deg)}
  .v112-scale-ladder{grid-template-columns:repeat(2,1fr)}
  .v112-scale:nth-child(2n){border-right:0}
  .v112-scale{border-bottom:1px solid var(--line)}
  .v112-scale:nth-last-child(-n+2){border-bottom:0}
  .v112-coordinate-explain,.v112-read-grid{grid-template-columns:1fr}
  .v112-read-grid article{min-height:0}
  .v112-proof-stats{grid-template-columns:1fr}
  .v112-proof-stats div{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .v112-proof-stats div:last-child{border-bottom:0!important}
  .v112-proof-actions{flex-direction:column;align-items:flex-start}
}


/* ═══════════════════════════════════════════════════════════════════════════
   V113 — VISIBLE TIME STRUCTURE
   The hierarchy itself is the visual object: eight nested scales, one Present.
   ═══════════════════════════════════════════════════════════════════════════ */

.v113-order-field{max-width:var(--field);margin:0 auto;padding:var(--s8) var(--edge)}
.v113-order-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:var(--s8);align-items:end}
.v113-order-head h2{margin-top:var(--s2);font-size:clamp(34px,4.8vw,62px);line-height:1.02}
.v113-order-head h2 em{font-style:normal;color:var(--live)}
.v113-order-head>div:first-child>p:last-child{max-width:720px;margin-top:var(--s3);color:var(--ink-prose);font-size:17px;line-height:1.65}
.v113-order-readout{display:grid;grid-template-columns:1fr;border:1px solid var(--line-2)}
.v113-order-readout>div{display:grid;grid-template-columns:110px minmax(72px,.55fr) minmax(0,1fr);align-items:center;gap:14px;min-height:54px;padding:10px 14px;border-bottom:1px solid var(--line)}
.v113-order-readout>div:last-child{border-bottom:0}
.v113-order-readout small{font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--ink-quiet)}
.v113-order-readout b{font:600 19px/1 var(--mono);color:var(--ink)}
.v113-order-readout span{min-width:0;font:500 10px/1.3 var(--mono);color:var(--ink-2);overflow-wrap:anywhere}

.v113-structure-frame{margin-top:var(--s6);border:1px solid var(--line-2);background:
  linear-gradient(90deg,rgba(255,255,255,.012) 0 58.55%,rgba(61,214,140,.022) 58.55% 100%),var(--bg-2)}
.v113-structure-axis{display:grid;grid-template-columns:58.55% 0 41.45%;height:0;position:relative;z-index:2;pointer-events:none}
.v113-structure-axis span,.v113-structure-axis b{display:none}
.v113-structure-scroll{overflow:hidden}
#cmmx-time-structure{display:block;width:100%;height:auto;min-height:510px}
.v113-zone-label{fill:var(--ink-quiet);font:600 11px var(--mono);letter-spacing:.11em}
.v113-present-label{fill:var(--live);font:600 12px var(--mono);letter-spacing:.14em}
.v113-present-spine{stroke:var(--live);stroke-width:1.6;stroke-dasharray:3 7;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px rgba(61,214,140,.2))}
.v113-past-line,.v113-reach-line{stroke:var(--ink-quiet);stroke-width:1.2;vector-effect:non-scaling-stroke}
.v113-past-line.is-active,.v113-reach-line.is-active{stroke:var(--live);stroke-width:2}
.v113-past-line.is-active.is-down,.v113-reach-line.is-active.is-down{stroke:var(--off)}
.v113-reach-line{stroke-dasharray:4 7;opacity:.82}
.v113-reach-band{fill:var(--ink-quiet)}
.v113-reach-band.is-active.is-up{fill:var(--live)}
.v113-reach-band.is-active.is-down{fill:var(--off)}
.v113-present-node{fill:var(--bg-2);stroke:var(--ink-quiet);stroke-width:1.5;vector-effect:non-scaling-stroke}
.v113-present-node.is-active{stroke:var(--live);stroke-width:2.2;fill:color-mix(in srgb,var(--live) 10%,var(--bg-2))}
.v113-present-node.is-active.is-down{stroke:var(--off);fill:color-mix(in srgb,var(--off) 10%,var(--bg-2))}
.v113-tf-label{fill:var(--ink);font:600 17px var(--mono)}
.v113-layer-state{fill:var(--ink);font:600 12px var(--mono)}
.v113-layer-sub,.v113-coverage{fill:var(--ink-quiet);font:400 10px var(--mono);letter-spacing:.03em}
.v113-nest-link{fill:none;stroke:var(--line-2);stroke-width:1.2;vector-effect:non-scaling-stroke}
.v113-nest-link.is-aligned{stroke:color-mix(in srgb,var(--live) 52%,var(--line-2))}
.v113-present-box{fill:var(--panel);stroke:var(--live);stroke-width:1.2}
.v113-present-box-title{fill:var(--live);font:600 10px var(--mono);letter-spacing:.12em}
.v113-axis-sig{fill:var(--ink);font:600 11px var(--mono)}
.v113-h-readout{fill:var(--ink);font:600 13px var(--mono);letter-spacing:.06em}
.v113-boundary-readout{fill:var(--ink-quiet);font:500 11px var(--mono);letter-spacing:.04em}
.v113-turn-marker{fill:var(--bg-2);stroke:var(--hold);stroke-width:2;vector-effect:non-scaling-stroke}
.v113-turn-label{fill:var(--hold);font:600 11px var(--mono);letter-spacing:.06em}

.v113-mobile-layers{display:none}
.v113-law{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-2)}
.v113-law>div{padding:22px 20px;border-right:1px solid var(--line)}
.v113-law>div:last-child{border-right:0}
.v113-law small{display:block;font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--live)}
.v113-law b{display:block;margin-top:12px;font:600 15px/1.35 var(--mono)}
.v113-law p{margin-top:9px;color:var(--ink-prose);font-size:13px;line-height:1.5}
.v113-boundary-note{padding:14px 20px;border-top:1px solid var(--line);font:500 10px/1.5 var(--mono);letter-spacing:.04em;color:var(--ink-quiet)}

@media(max-width:980px){
  .v113-order-head{grid-template-columns:1fr}
  .v113-order-readout{grid-template-columns:repeat(3,1fr)}
  .v113-order-readout>div{display:flex;flex-direction:column;align-items:flex-start;gap:7px;border-bottom:0;border-right:1px solid var(--line)}
  .v113-order-readout>div:last-child{border-right:0}
  #cmmx-time-structure{min-width:900px}
  .v113-structure-scroll{overflow-x:auto}
}
@media(max-width:640px){
  .v113-order-field{padding-left:20px;padding-right:20px}
  .v113-order-head h2{font-size:clamp(34px,11vw,48px)}
  .v113-order-readout{grid-template-columns:1fr}
  .v113-order-readout>div{display:grid;grid-template-columns:96px 64px 1fr;border-right:0;border-bottom:1px solid var(--line);align-items:center}
  .v113-order-readout>div:last-child{border-bottom:0}
  .v113-structure-scroll{display:none}
  .v113-mobile-layers{display:block;padding:20px}
  .v113-mobile-layers article{margin-left:calc(var(--depth)*5px);padding:10px 12px;border-left:1px solid var(--line-2);border-top:1px solid var(--line);display:grid;grid-template-columns:48px 54px 1fr auto;gap:8px;align-items:center}
  .v113-mobile-layers article:first-child{border-top:0}
  .v113-mobile-layers small,.v113-mobile-layers b,.v113-mobile-layers span,.v113-mobile-layers i{font:500 10px/1.2 var(--mono)}
  .v113-mobile-layers small{color:var(--ink);font-weight:600}
  .v113-mobile-layers b{color:var(--live)}
  .v113-mobile-layers span,.v113-mobile-layers i{color:var(--ink-quiet);font-style:normal}
  .v113-mobile-present{margin-top:18px;padding:14px;border:1px solid color-mix(in srgb,var(--live) 55%,var(--line));text-align:center}
  .v113-mobile-present b{display:block;color:var(--live);font:600 11px/1 var(--mono);letter-spacing:.14em}
  .v113-mobile-present span{display:block;margin-top:9px;color:var(--ink);font:600 11px/1 var(--mono)}
  .v113-law{grid-template-columns:1fr}
  .v113-law>div{border-right:0;border-bottom:1px solid var(--line)}
  .v113-law>div:last-child{border-bottom:0}
}


/* ═══════════════════════════════════════════════════════════════════════════
   V114 — CHART ORIENTATION
   The market chart is the primary orientation surface. Structure is attached
   to the sealed Present and the same scale selector drives the seven-axis view.
   ═══════════════════════════════════════════════════════════════════════════ */

.v114-observer-head{grid-template-columns:minmax(0,1fr) auto;align-items:end}
.v114-identity{min-width:210px;border:1px solid var(--fx-line);background:rgba(255,255,255,.01)}
.v114-identity summary{list-style:none;cursor:pointer;padding:12px 14px;font:600 9px/1 var(--mono);letter-spacing:.1em;color:#83908b;text-transform:uppercase}
.v114-identity summary::-webkit-details-marker{display:none}
.v114-identity summary::after{content:"+";float:right;color:var(--fx-green)}
.v114-identity[open] summary::after{content:"−"}
.v114-identity>div{display:grid;gap:6px;padding:0 14px 14px;border-top:1px solid var(--fx-line)}
.v114-identity span{margin-top:10px;font:600 8px/1 var(--mono);letter-spacing:.09em;color:#65716d}
.v114-identity code,.v114-identity b{font:500 10px/1.35 var(--mono);color:#dce3df;overflow-wrap:anywhere}

.v114-chart-compass{display:grid;grid-template-columns:190px minmax(0,1fr) 230px;margin-top:34px;border:1px solid var(--fx-line);background:rgba(255,255,255,.012)}
.v114-you-are-here{padding:16px 18px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column;justify-content:center}
.v114-you-are-here small{font:600 9px/1 var(--mono);letter-spacing:.13em;color:var(--fx-green)}
.v114-you-are-here strong{margin-top:8px;font:600 19px/1 var(--mono);color:#eef4f1}
.v114-you-are-here em{margin-top:6px;font:500 9px/1.3 var(--mono);font-style:normal;color:#7c8984}

.v114-scale-selector{display:grid;grid-template-columns:repeat(8,1fr);min-width:0}
.v114-scale-selector button{appearance:none;border:0;border-right:1px solid var(--fx-line);background:transparent;color:#7c8984;min-width:0;padding:13px 6px;cursor:pointer;position:relative}
.v114-scale-selector button:last-child{border-right:0}
.v114-scale-selector button::after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;background:#39433f}
.v114-scale-selector button.is-hierarchy.is-up::after{background:var(--fx-green)}
.v114-scale-selector button.is-hierarchy.is-down::after{background:#e06c5a}
.v114-scale-selector button.is-turning::before{content:"O";position:absolute;right:5px;top:5px;color:#e8b339;font:600 8px/1 var(--mono)}
.v114-scale-selector button b{display:block;font:600 13px/1 var(--mono);color:#dce3df}
.v114-scale-selector button span{display:block;margin-top:7px;font:600 8px/1 var(--mono);letter-spacing:.05em}
.v114-scale-selector button.is-up span{color:var(--fx-green)}
.v114-scale-selector button.is-down span{color:#e06c5a}
.v114-scale-selector button.is-on{background:rgba(61,214,140,.08);box-shadow:inset 0 0 0 1px rgba(61,214,140,.5)}
.v114-scale-selector button:focus-visible{outline:2px solid var(--fx-green);outline-offset:-2px}

.v114-compass-meta{display:grid;grid-template-columns:1fr;border-left:1px solid var(--fx-line)}
.v114-compass-meta>span{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--fx-line)}
.v114-compass-meta>span:last-child{border-bottom:0}
.v114-compass-meta small{font:600 8px/1 var(--mono);letter-spacing:.09em;color:#65716d}
.v114-compass-meta b{font:600 10px/1.25 var(--mono);color:#dce3df;overflow-wrap:anywhere}

.v114-market-toolbar{grid-template-columns:1.05fr .8fr .9fr .9fr .75fr}
.v114-market-toolbar>div>span{margin-top:5px;font:500 8px/1.2 var(--mono);color:#65716d}
[data-lc-cmmx-present]{stroke:var(--fx-green);stroke-width:1.8;stroke-dasharray:3 6;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px rgba(61,214,140,.22))}
[data-lc-cmmx-label]{fill:var(--fx-green);font:600 10px var(--mono);letter-spacing:.07em}

.v114-chart-structure-panel{fill:rgba(7,9,11,.92);stroke:rgba(61,214,140,.38);stroke-width:1;vector-effect:non-scaling-stroke}
.v114-chart-structure-link{stroke:rgba(61,214,140,.55);stroke-width:1;stroke-dasharray:2 4;vector-effect:non-scaling-stroke}
.v114-chart-structure-title{fill:#eef4f1;font:600 9px var(--mono);letter-spacing:.08em}
.v114-chart-structure-o{fill:#e8b339;font:600 9px var(--mono)}
.v114-chart-structure-note{fill:#65716d;font:500 7px var(--mono);letter-spacing:.07em}
.v114-chart-scale{fill:#65716d}
.v114-chart-scale.is-active.is-up{fill:var(--fx-green)}
.v114-chart-scale.is-active.is-down{fill:#e06c5a}
.v114-chart-scale-tf{fill:#dce3df;font:600 9px var(--mono)}
.v114-chart-scale-dir{fill:#7c8984;font:600 8px var(--mono)}
.v114-chart-scale-dir.is-up{fill:var(--fx-green)}
.v114-chart-scale-dir.is-down{fill:#e06c5a}
.v114-chart-scale-h{fill:#8d9a95;font:600 8px var(--mono)}
.v114-chart-scale-turn{fill:#e8b339;font:600 8px var(--mono)}

.v114-state-head{grid-template-columns:minmax(0,1fr) auto}
.v114-selected-context{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));border:1px solid var(--fx-line)}
.v114-selected-context>span{padding:11px 13px;border-right:1px solid var(--fx-line)}
.v114-selected-context>span:last-child{border-right:0}
.v114-selected-context small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:#65716d}
.v114-selected-context b{display:block;margin-top:7px;font:600 10px/1.2 var(--mono);color:#dce3df}

.v114-readiness{margin-top:24px;border:1px solid var(--fx-line);background:rgba(255,255,255,.009)}
.v114-readiness>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;padding:14px 16px}
.v114-readiness>summary::-webkit-details-marker{display:none}
.v114-readiness-title{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px}
.v114-readiness-title small{font:600 8px/1 var(--mono);letter-spacing:.1em;color:var(--fx-green)}
.v114-readiness-title b{font:600 13px/1 var(--sans);color:#dce3df}
.v114-readiness-title em{font:500 9px/1 var(--mono);font-style:normal;color:#65716d}
.v114-readiness[open] .v114-readiness-title em{font-size:0}
.v114-readiness[open] .v114-readiness-title em::after{content:"Close details";font-size:9px}
.v114-readiness .coverage-stack{min-width:300px}
.v114-readiness-body{border-top:1px solid var(--fx-line)}
.v114-readiness-note{padding:14px 18px;color:#8d9a95;font-size:12px;line-height:1.5;border-bottom:1px solid var(--fx-line)}

@media(max-width:1100px){
  .v114-chart-compass{grid-template-columns:170px minmax(0,1fr)}
  .v114-compass-meta{grid-column:1/-1;grid-template-columns:repeat(3,1fr);border-left:0;border-top:1px solid var(--fx-line)}
  .v114-compass-meta>span{border-bottom:0;border-right:1px solid var(--fx-line)}
  .v114-compass-meta>span:last-child{border-right:0}
  .v114-market-toolbar{grid-template-columns:1fr 1fr}
  .v114-market-toolbar>div:nth-child(2n){border-right:0}
  .v114-market-toolbar>div:last-child{grid-column:1/-1}
  .v114-state-head{grid-template-columns:1fr}
  .v114-selected-context{margin-top:8px}
}
@media(max-width:760px){
  .v114-observer-head{grid-template-columns:1fr}
  .v114-identity{margin-top:16px}
  .v114-chart-compass{grid-template-columns:1fr}
  .v114-you-are-here{border-right:0;border-bottom:1px solid var(--fx-line)}
  .v114-scale-selector{grid-template-columns:repeat(4,1fr)}
  .v114-scale-selector button{border-bottom:1px solid var(--fx-line)}
  .v114-scale-selector button:nth-child(4n){border-right:0}
  .v114-compass-meta{grid-column:auto}
  .v114-readiness>summary{grid-template-columns:1fr}
  .v114-readiness .coverage-stack{min-width:0}
  .v114-chart-structure-panel,.v114-chart-structure-link,.v114-chart-structure-title,
  .v114-chart-structure-o,.v114-chart-structure-note,.v114-chart-scale,
  .v114-chart-scale-tf,.v114-chart-scale-dir,.v114-chart-scale-h,.v114-chart-scale-turn{display:none}
}
@media(max-width:520px){
  .v114-selected-context{grid-template-columns:1fr}
  .v114-selected-context>span{border-right:0;border-bottom:1px solid var(--fx-line)}
  .v114-selected-context>span:last-child{border-bottom:0}
  .v114-readiness-title{grid-template-columns:1fr}
  .v114-readiness .coverage-stack{grid-template-columns:repeat(3,1fr)}
}


/* ═══════════════════════════════════════════════════════════════════════════
   V115 — HUMAN CHART PASS
   Visual QA corrections: chart-first entry, readable mobile compass, explicit
   market/present time, and horizontally navigable charts on small screens.
   ═══════════════════════════════════════════════════════════════════════════ */

.v115-entry{
  max-width:var(--field);margin:0 auto;padding:clamp(52px,6vw,82px) var(--edge) clamp(34px,4vw,52px);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:end
}
.v115-entry h1{margin-top:14px;max-width:820px;font-size:clamp(42px,5.7vw,72px);line-height:.98;letter-spacing:-.045em}
.v115-entry h1 em{font-style:normal;color:var(--live)}
.v115-entry>div>p:last-child{max-width:720px;margin-top:20px;color:var(--ink-prose);font-size:17px;line-height:1.58}
.v115-enter-chart{align-self:end;padding:13px 0;border-bottom:1px solid var(--line-2);font:600 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--live)}

#live-observer,#structure-summary,#how-to-read,#proof,#technical-proof{scroll-margin-top:84px}

@media(max-width:760px){
  .v115-entry{grid-template-columns:1fr;gap:18px;padding:38px 20px 30px}
  .v115-entry h1{font-size:clamp(38px,10.8vw,48px);line-height:1.01}
  .v115-entry>div>p:last-child{font-size:15px;line-height:1.52;margin-top:16px}
  .v115-enter-chart{justify-self:start}

  .v114-compass-meta{grid-template-columns:1fr}
  .v114-compass-meta>span{
    grid-template-columns:92px minmax(0,1fr);min-height:46px;
    border-right:0;border-bottom:1px solid var(--fx-line);padding:10px 14px
  }
  .v114-compass-meta>span:last-child{border-bottom:0}
  .v114-compass-meta b{white-space:normal;overflow-wrap:anywhere;word-break:normal}
  .v114-you-are-here strong{font-size:22px}

  .live-market-chart{overflow-x:auto;overscroll-behavior-x:contain;padding-left:0;padding-right:0;scrollbar-width:thin}
  #cmmx-market-chart{width:760px;max-width:none;min-height:0!important;height:auto}
  .live-market-axis{min-width:760px;padding-left:14px;padding-right:14px}

  .live-state-chart-wrap{overflow-x:auto;overscroll-behavior-x:contain;padding-left:0;padding-right:0;scrollbar-width:thin}
  #cmmx-state-chart{width:700px;max-width:none;min-height:0!important;height:auto}
  .live-state-x{min-width:700px;padding-left:12px;padding-right:12px}

  .v114-market-toolbar>div{min-height:82px}
  .v114-market-toolbar strong{font-size:12px}
}
@media(max-width:520px){
  .v115-entry h1{font-size:40px}
  .v114-scale-selector button{padding-top:12px;padding-bottom:12px}
  .v114-compass-meta b{font-size:9px}
}


.v115-freshness{display:block;margin-top:8px;font:600 8px/1.35 var(--mono);letter-spacing:.07em;color:#65716d}
.v114-you-are-here.is-separated{background:rgba(232,179,57,.025)}
.v114-you-are-here.is-separated>small,.v114-you-are-here.is-separated .v115-freshness{color:#e8b339}
.v115-mobile-chart-hint{display:none}

@media(max-width:760px){
  .v115-mobile-chart-hint{
    display:block;padding:9px 14px;border-bottom:1px solid var(--fx-line);
    color:#65716d;font:600 8px/1.35 var(--mono);letter-spacing:.06em
  }
  .v114-you-are-here{padding-top:14px;padding-bottom:14px}
  .v115-freshness{font-size:8px;max-width:260px}
}


/* ═══════════════════════════════════════════════════════════════════════════
   V116 — END-TO-END MARKETING LINE
   One story from first impression to proof and integration.
   ═══════════════════════════════════════════════════════════════════════════ */

.v116-hero,.v116-live-intro,.v116-understand,.v116-structure,.v116-time,.v116-proof,.v116-use,.v116-close{
  max-width:var(--field);margin:0 auto;padding-left:var(--edge);padding-right:var(--edge)
}
.v116-kicker{font:600 10px/1.25 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-quiet)}
.v116-kicker .fx-live-dot{display:inline-block;margin-right:9px}

.v116-hero{min-height:600px;padding-top:clamp(74px,8vw,116px);padding-bottom:70px;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(310px,.72fr);gap:70px;align-items:center}
.v116-hero h1{margin-top:17px;max-width:900px;font-size:clamp(52px,6.4vw,86px);line-height:.97;letter-spacing:-.05em}
.v116-hero h1 em,.v116-section-head h2 em,.v116-proof h2 em,.v116-close h2 em{font-style:normal;color:var(--live)}
.v116-lead{max-width:760px;margin-top:26px;color:var(--ink-prose);font-size:clamp(17px,1.25vw,20px);line-height:1.62}
.v116-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.v116-btn{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line-2);font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);background:transparent}
.v116-btn:hover{border-color:var(--ink-quiet);color:var(--ink)}
.v116-btn--primary{border-color:color-mix(in srgb,var(--live) 60%,var(--line));color:var(--live);background:color-mix(in srgb,var(--live) 5%,transparent)}
.v116-formula{align-self:center;display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:24px 0}
.v116-formula div{text-align:center;padding:10px}
.v116-formula strong{display:block;font:600 clamp(38px,4vw,58px)/1 var(--mono);color:var(--ink)}
.v116-formula span{display:block;margin-top:8px;font:500 10px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-quiet)}
.v116-formula i{font-style:normal;color:var(--ink-quiet)}
.v116-formula .is-present strong{color:var(--live)}

.v116-live-intro{padding-top:72px;padding-bottom:28px;border-top:1px solid var(--line)}
.v116-live-intro h2{margin-top:12px;font-size:clamp(30px,3.6vw,50px);line-height:1.05;letter-spacing:-.035em}
.v116-live-intro>p:last-child{max-width:760px;margin-top:16px;color:var(--ink-prose);font-size:16px;line-height:1.6}
.v116-live-bar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}
.v116-live-bar h2{margin-top:7px;font-size:18px;line-height:1.2;font-weight:600;letter-spacing:-.015em}

.v116-understand,.v116-structure,.v116-time,.v116-proof,.v116-use{padding-top:110px;padding-bottom:110px;border-top:1px solid var(--line)}
.v116-section-head{max-width:920px;margin-bottom:50px}
.v116-section-head h2{margin-top:14px;font-size:clamp(36px,4.6vw,62px);line-height:1.01;letter-spacing:-.045em}
.v116-section-head--split{max-width:none;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);gap:70px;align-items:end}
.v116-section-head--split>p{color:var(--ink-prose);font-size:16px;line-height:1.65;max-width:560px}

.v116-three{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.v116-three article{min-height:290px;padding:28px 30px;border-right:1px solid var(--line)}
.v116-three article:last-child{border-right:0}
.v116-three article>span{font:600 10px/1 var(--mono);color:var(--live)}
.v116-three small{display:block;margin-top:34px;font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--ink-quiet)}
.v116-three h3{margin-top:10px;font-size:22px;line-height:1.2}
.v116-three p{margin-top:16px;color:var(--ink-prose);font-size:14px;line-height:1.6}
.v116-three b{display:block;margin-top:22px;font:600 18px/1.2 var(--mono);color:var(--live)}

.v116-scale-law{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:18px 20px;border:1px solid var(--line-2);margin-bottom:18px;overflow-x:auto}
.v116-scale-law span{font:600 15px/1 var(--mono);white-space:nowrap}
.v116-scale-law i{font-style:normal;color:var(--live)}
.v116-structure-frame{margin-top:0}
.v116-order-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-2);border-top:0}
.v116-order-strip>div{padding:18px;border-right:1px solid var(--line)}
.v116-order-strip>div:last-child{border-right:0}
.v116-order-strip small{display:block;font:600 9px/1 var(--mono);letter-spacing:.1em;color:var(--ink-quiet)}
.v116-order-strip b{display:block;margin-top:9px;font:600 13px/1.35 var(--mono);overflow-wrap:anywhere}

.v116-time{background:linear-gradient(180deg,transparent,rgba(61,214,140,.018),transparent)}
.v116-time-line{display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr;align-items:stretch}
.v116-time-line article{padding:28px 30px;border:1px solid var(--line-2);background:var(--bg-2)}
.v116-time-line article.is-present{border-color:color-mix(in srgb,var(--live) 55%,var(--line));background:color-mix(in srgb,var(--live) 4%,var(--bg-2))}
.v116-time-line>i{display:grid;place-items:center;font-style:normal;color:var(--live)}
.v116-time-line small{font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--ink-quiet)}
.v116-time-line b{display:block;margin-top:14px;font-size:22px}
.v116-time-line p{margin-top:10px;color:var(--ink-prose);font-size:14px;line-height:1.55}

.v116-proof{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.82fr);gap:80px;align-items:center}
.v116-proof h2{margin-top:14px;font-size:clamp(38px,4.6vw,62px);line-height:1.01;letter-spacing:-.045em}
.v116-proof-copy>p:last-of-type{max-width:690px;margin-top:20px;color:var(--ink-prose);font-size:16px;line-height:1.65}
.v116-proof-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2)}
.v116-proof-grid>div{min-height:128px;padding:19px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.v116-proof-grid>div:nth-child(2n){border-right:0}
.v116-proof-grid>div:nth-last-child(-n+2){border-bottom:0}
.v116-proof-grid small{display:block;font:600 9px/1 var(--mono);letter-spacing:.1em;color:var(--ink-quiet)}
.v116-proof-grid b{display:block;margin-top:12px;font:600 13px/1.35 var(--mono);color:var(--ink);overflow-wrap:anywhere}
.v116-proof-grid span{display:block;margin-top:8px;font-size:11px;line-height:1.4;color:var(--ink-quiet)}

.v116-use-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.v116-use-grid article{min-height:300px;padding:28px;border:1px solid var(--line-2);display:flex;flex-direction:column}
.v116-use-grid small{font:600 9px/1 var(--mono);letter-spacing:.12em;color:var(--live)}
.v116-use-grid h3{margin-top:25px;font-size:22px}
.v116-use-grid p{margin-top:14px;color:var(--ink-prose);font-size:14px;line-height:1.6}
.v116-use-grid a{margin-top:auto;padding-top:28px;font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--live)}

.v116-close{padding-top:130px;padding-bottom:140px;text-align:center;border-top:1px solid var(--line)}
.v116-close h2{margin-top:14px;font-size:clamp(48px,6vw,80px);line-height:.98;letter-spacing:-.05em}
.v116-close>p:nth-of-type(2){margin-top:22px;color:var(--ink-prose);font-size:17px}
.v116-actions--center{justify-content:center}

/* Keep the technical proof present, but visually subordinate to the story. */
#technical-proof{margin-top:0}
#technical-proof>summary{background:var(--bg);}

@media(max-width:980px){
  .v116-hero{grid-template-columns:1fr;min-height:auto;gap:36px}
  .v116-formula{max-width:650px}
  .v116-section-head--split{grid-template-columns:1fr;gap:24px}
  .v116-three,.v116-use-grid{grid-template-columns:1fr}
  .v116-three article{min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:25px 0}
  .v116-three article:last-child{border-bottom:0}
  .v116-proof{grid-template-columns:1fr;gap:45px}
  .v116-order-strip{grid-template-columns:1fr 1fr}
  .v116-order-strip>div:nth-child(2n){border-right:0}
  .v116-order-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:640px){
  .v116-hero,.v116-live-intro,.v116-understand,.v116-structure,.v116-time,.v116-proof,.v116-use,.v116-close{padding-left:20px;padding-right:20px}
  .v116-hero{padding-top:42px;padding-bottom:40px}
  .v116-hero h1{font-size:clamp(42px,12vw,56px)}
  .v116-lead{font-size:15px;line-height:1.55}
  .v116-formula{grid-template-columns:1fr auto 1fr auto 1fr;padding:16px 0}
  .v116-formula strong{font-size:32px}
  .v116-formula span{font-size:8px}
  .v116-live-intro{padding-top:46px}
  .v116-live-bar{align-items:center}
  .v116-live-bar h2{font-size:14px}
  .v116-understand,.v116-structure,.v116-time,.v116-proof,.v116-use{padding-top:78px;padding-bottom:78px}
  .v116-section-head{margin-bottom:32px}
  .v116-section-head h2,.v116-proof h2{font-size:38px}
  .v116-scale-law{justify-content:flex-start}
  .v116-order-strip{grid-template-columns:1fr}
  .v116-order-strip>div{border-right:0;border-bottom:1px solid var(--line)}
  .v116-order-strip>div:last-child{border-bottom:0}
  .v116-time-line{grid-template-columns:1fr}
  .v116-time-line>i{height:26px;transform:rotate(90deg)}
  .v116-proof-grid{grid-template-columns:1fr}
  .v116-proof-grid>div{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .v116-proof-grid>div:last-child{border-bottom:0!important}
  .v116-use-grid article{min-height:240px}
  .v116-close{padding-top:95px;padding-bottom:100px}
  .v116-close h2{font-size:46px}
}


/* ═══════════════════════════════════════════════════════════════════════════
   V117 — CHART COORDINATE NAVIGATOR
   Trading-chart navigation: symbol + real market timeframe + CMM.X coordinate.
   ═══════════════════════════════════════════════════════════════════════════ */

.v117-legacy-toolbar{display:none!important}

.v117-chart-nav{
  display:grid;grid-template-columns:150px minmax(0,1fr) 220px;
  min-height:58px;border:1px solid var(--fx-line);border-bottom:0;
  background:rgba(255,255,255,.012)
}
.v117-symbol{padding:11px 14px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column;justify-content:center}
.v117-symbol small,.v117-coordinate-head small,.v117-chart-meta small{
  font:600 8px/1 var(--mono);letter-spacing:.1em;color:#65716d
}
.v117-symbol b{display:block;margin-top:7px;font:700 14px/1 var(--mono);color:#eef4f1}

.v117-timeframes{display:grid;grid-template-columns:repeat(8,minmax(56px,1fr));min-width:0}
.v117-timeframes button{
  appearance:none;border:0;border-right:1px solid var(--fx-line);background:transparent;
  min-width:0;padding:9px 5px;cursor:pointer;position:relative;color:#7b8883
}
.v117-timeframes button:last-child{border-right:0}
.v117-timeframes button::after{
  content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;background:#39433f
}
.v117-timeframes button b{display:block;font:700 12px/1 var(--mono);color:#dce3df}
.v117-timeframes button span{display:block;margin-top:7px;font:600 8px/1 var(--mono)}
.v117-timeframes button.is-up span{color:var(--fx-green)}
.v117-timeframes button.is-down span{color:#e06c5a}
.v117-timeframes button.is-hierarchy.is-up::after{background:var(--fx-green)}
.v117-timeframes button.is-hierarchy.is-down::after{background:#e06c5a}
.v117-timeframes button.is-turning::before{
  content:"O";position:absolute;top:5px;right:5px;font:700 7px/1 var(--mono);color:#e8b339
}
.v117-timeframes button.is-on{
  background:rgba(61,214,140,.075);box-shadow:inset 0 0 0 1px rgba(61,214,140,.55)
}
.v117-timeframes button.is-on b{color:#fff}
.v117-timeframes button.is-loading{opacity:.55}
.v117-timeframes button.is-loading::after{animation:v117-load .8s linear infinite;background:var(--fx-green)}
.v117-timeframes button:disabled{cursor:wait}
@keyframes v117-load{0%{transform:scaleX(.15);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}51%{transform-origin:right}100%{transform:scaleX(.15);transform-origin:right}}

.v117-coordinate-head{
  padding:10px 14px;border-left:1px solid var(--fx-line);
  display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-content:center
}
.v117-coordinate-head small{grid-column:1/-1;margin-bottom:6px;color:var(--fx-green)}
.v117-coordinate-head b{font:700 13px/1 var(--mono);color:#eef4f1}
.v117-coordinate-head span{justify-self:end;font:600 10px/1 var(--mono);color:#8d9a95}

.v117-chart-meta{
  display:grid;grid-template-columns:.8fr .9fr 1.15fr 1.35fr .65fr;
  border:1px solid var(--fx-line);background:rgba(255,255,255,.006)
}
.v117-chart-meta>span{min-width:0;padding:9px 12px;border-right:1px solid var(--fx-line)}
.v117-chart-meta>span:last-child{border-right:0}
.v117-chart-meta b{display:block;margin-top:6px;font:600 10px/1.25 var(--mono);color:#dce3df;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v117-chart-meta i{display:block;margin-top:5px;font:500 8px/1.2 var(--mono);font-style:normal;color:#65716d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.v117-coordinate-panel{fill:rgba(7,9,11,.94);stroke:rgba(61,214,140,.52);stroke-width:1;vector-effect:non-scaling-stroke}
.v117-coordinate-link{stroke:rgba(61,214,140,.58);stroke-width:1;stroke-dasharray:2 4;vector-effect:non-scaling-stroke}
.v117-coordinate-kicker{fill:#8da198;font:700 8px var(--mono);letter-spacing:.08em}
.v117-coordinate-main{fill:#eef4f1;font:700 18px var(--mono)}
.v117-coordinate-line{fill:#a7b3ae;font:600 10px var(--mono)}
.v117-coordinate-path{fill:var(--fx-green);font:700 10px var(--mono);letter-spacing:.04em}

body[data-market-timeframe-state="loading"] .live-market-chart{opacity:.72}
body[data-market-timeframe-state="limited"] .v117-coordinate-head small{color:#e8b339}

@media(max-width:980px){
  .v117-chart-nav{grid-template-columns:125px minmax(0,1fr)}
  .v117-coordinate-head{grid-column:1/-1;border-left:0;border-top:1px solid var(--fx-line);display:flex;align-items:center;gap:12px}
  .v117-coordinate-head small{margin:0}
  .v117-coordinate-head span{margin-left:auto}
  .v117-chart-meta{grid-template-columns:1fr 1fr 1fr}
  .v117-chart-meta>span:nth-child(3){border-right:0}
  .v117-chart-meta>span:nth-child(-n+3){border-bottom:1px solid var(--fx-line)}
}
@media(max-width:720px){
  .v117-chart-nav{grid-template-columns:1fr}
  .v117-symbol{border-right:0;border-bottom:1px solid var(--fx-line);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px}
  .v117-symbol b{margin:0}
  .v117-timeframes{
    grid-template-columns:repeat(8,64px);overflow-x:auto;scrollbar-width:thin;
    border-bottom:1px solid var(--fx-line)
  }
  .v117-timeframes button{min-height:48px}
  .v117-coordinate-head{grid-column:auto;border-top:0}
  .v117-chart-meta{grid-template-columns:1fr 1fr}
  .v117-chart-meta>span{min-height:58px}
  .v117-chart-meta>span:nth-child(3){border-right:1px solid var(--fx-line)}
  .v117-chart-meta>span:nth-child(2n){border-right:0}
  .v117-chart-meta>span:nth-child(-n+4){border-bottom:1px solid var(--fx-line)}
  .v117-chart-meta>span:last-child{grid-column:1/-1}
}


.v117-axis-coordinate{
  display:grid;grid-template-columns:170px repeat(7,minmax(72px,1fr));
  border:1px solid var(--fx-line);border-top:0;background:rgba(255,255,255,.009)
}
.v117-axis-coordinate-title{
  padding:10px 12px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column;justify-content:center
}
.v117-axis-coordinate-title small,.v117-axis-cell small{
  font:600 8px/1.15 var(--mono);letter-spacing:.08em;color:#65716d
}
.v117-axis-coordinate-title b{margin-top:7px;font:700 10px/1.2 var(--mono);color:#dce3df}
.v117-axis-cell{
  min-width:0;padding:9px 8px;border-right:1px solid var(--fx-line);display:flex;flex-direction:column;justify-content:center
}
.v117-axis-cell:last-child{border-right:0}
.v117-axis-cell b{margin-top:7px;font:700 11px/1 var(--mono);color:#dce3df}
.v117-axis-cell b.is-pos{color:var(--fx-green)}
.v117-axis-cell b.is-neg{color:#e06c5a}
.v117-axis-cell b.is-na{color:#65716d}

@media(max-width:980px){
  .v117-axis-coordinate{grid-template-columns:140px repeat(7,minmax(70px,1fr));overflow-x:auto;scrollbar-width:thin}
}
@media(max-width:720px){
  .v117-axis-coordinate{grid-template-columns:130px repeat(7,82px)}
  .v117-axis-coordinate-title,.v117-axis-cell{min-height:54px}
}

.v117-time-tick{fill:#65716d;font:500 8px var(--mono);letter-spacing:.02em}

.v117-coordinate-head em{
  grid-column:1/-1;margin-top:6px;font:600 8px/1.25 var(--mono);
  font-style:normal;color:#65716d;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}

/* ═══════════════════════════════════════════════════════════════════════════
   V118 — OBSERVER TRANSLATION
   One grammar: scale → coordinate → time → evidence.
   Data remains primary; explanations and technical depth progressively disclose.
   ═══════════════════════════════════════════════════════════════════════════ */

.v118-hero,.v118-system,.v118-proof,.v118-application,.v118-page-hero,.v118-chain,
.v118-verify-grid,.v118-evidence-now,.v118-reproduce,.v118-contract,.v118-integration-flow,
.v118-integration-boundary,.v118-more-proof{
  max-width:var(--field);margin:0 auto;padding-left:var(--edge);padding-right:var(--edge)
}
.v118-kicker{font:600 10px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-quiet)}
.v118-kicker .fx-live-dot{display:inline-block;margin-right:8px}
.v118-hero{padding-top:clamp(58px,7vw,94px);padding-bottom:54px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:54px;align-items:end}
.v118-hero h1,.v118-page-hero h1{margin-top:14px;font-size:clamp(48px,6vw,82px);line-height:.98;letter-spacing:-.05em}
.v118-hero h1 em,.v118-page-hero h1 em,.v118-head h2 em{font-style:normal;color:var(--live)}
.v118-hero>div>p:nth-of-type(2),.v118-page-hero>p{max-width:780px;margin-top:22px;color:var(--ink-prose);font-size:17px;line-height:1.62}
.v118-read-order{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:28px}
.v118-read-order span{display:flex;align-items:center;gap:8px;font:600 10px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.v118-read-order span b{display:grid;place-items:center;width:23px;height:23px;border:1px solid var(--line-2);color:var(--live)}
.v118-read-order>i{font-style:normal;color:var(--live)}
.v118-formula{display:grid;grid-template-columns:auto auto auto auto auto auto auto;align-items:center;gap:10px;padding:20px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.v118-formula span{text-align:center;min-width:74px}.v118-formula b{display:block;font:700 36px/1 var(--mono)}.v118-formula i{display:block;margin-top:7px;font:500 8px/1 var(--mono);font-style:normal;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-quiet)}
.v118-formula em{font-style:normal;color:var(--ink-quiet)}.v118-formula .is-live b{color:var(--live)}

.v118-observer{max-width:var(--field);margin:0 auto 0;padding:44px var(--edge) 72px;border-top:1px solid var(--line)}
.v118-observer-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.8fr) auto;gap:24px;align-items:end;margin-bottom:22px}
.v118-observer-head h2{margin-top:9px;font-size:clamp(30px,3.4vw,48px);line-height:1.03;letter-spacing:-.035em}.v118-observer-head h2 em{font-style:normal;color:var(--live)}
.v118-observer-status{display:grid;grid-template-columns:1fr 1fr 1.35fr;border:1px solid var(--fx-line)}
.v118-observer-status>span{min-width:0;padding:11px;border-right:1px solid var(--fx-line)}.v118-observer-status>span:last-child{border-right:0}
.v118-observer-status small,.v118-meta small,.v118-coordinate-strip small,.v118-temporal-foot small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:#65716d}
.v118-observer-status b{display:block;margin-top:7px;font:600 10px/1.25 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v118-market-stage{border:1px solid var(--fx-line);background:rgba(255,255,255,.006)}
.v118-market-stage .v117-chart-nav{border:0;border-bottom:1px solid var(--fx-line)}
.v118-meta{display:grid;grid-template-columns:.9fr .9fr 1.15fr 1.3fr .7fr;border-bottom:1px solid var(--fx-line)}
.v118-meta>span{min-width:0;padding:9px 12px;border-right:1px solid var(--fx-line)}.v118-meta>span:last-child{border-right:0}
.v118-meta b{display:block;margin-top:6px;font:600 10px/1.25 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v118-meta i{display:block;margin-top:5px;font:500 8px/1.2 var(--mono);font-style:normal;color:#65716d}
.v118-market-stage .live-market-chart{border:0}
.v118-coordinate-strip{display:grid;grid-template-columns:1.35fr repeat(7,1fr);border-top:1px solid var(--fx-line)}
.v118-coordinate-strip>span{min-width:0;padding:11px;border-right:1px solid var(--fx-line)}.v118-coordinate-strip>span:last-child{border-right:0}
.v118-coordinate-strip b{display:block;margin-top:6px;font:650 11px/1.2 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v118-coordinate-strip [data-lc-coordinate-axis].is-pos{color:var(--fx-green)}.v118-coordinate-strip [data-lc-coordinate-axis].is-neg{color:#e06c5a}.v118-coordinate-strip [data-lc-coordinate-axis].is-na{color:#7c8984}

.v118-temporal{margin-top:18px;border:1px solid var(--fx-line);background:rgba(255,255,255,.006)}
.v118-temporal-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:30px;align-items:end;padding:18px 20px;border-bottom:1px solid var(--fx-line)}
.v118-temporal-head small{font:600 8px/1 var(--mono);letter-spacing:.1em;color:var(--live)}.v118-temporal-head h3{margin-top:7px;font-size:22px}.v118-temporal-head p{color:#8d9a95;font-size:12px;line-height:1.55}
.v118-temporal-grid{display:grid}
.v118-trow{display:grid;grid-template-columns:180px 1fr 1fr 1.45fr;min-height:42px;border-bottom:1px solid var(--fx-line)}
.v118-trow:last-child{border-bottom:0}.v118-trow>span{display:flex;align-items:center;min-width:0;padding:9px 13px;border-right:1px solid var(--fx-line);font:600 10px/1.25 var(--mono)}.v118-trow>span:last-child{border-right:0}
.v118-trow>span:first-child{gap:10px}.v118-trow>span:first-child b{font-size:14px;color:#eef4f1}.v118-trow>span:first-child i{font-size:8px;font-style:normal;color:#65716d;letter-spacing:.06em}
.v118-trow.is-head{min-height:34px;background:rgba(255,255,255,.012)}.v118-trow.is-head>span{font-size:8px;letter-spacing:.08em;color:#65716d}
.v118-trow .is-present{background:rgba(61,214,140,.035);color:var(--fx-green)}.v118-trow [data-lc-temporal-axis].is-na{color:#65716d}
.v118-temporal-foot{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--fx-line)}
.v118-temporal-foot>span{padding:10px 13px;border-right:1px solid var(--fx-line)}.v118-temporal-foot>span:last-child{border-right:0}.v118-temporal-foot b{display:block;margin-top:6px;font:600 10px/1.2 var(--mono)}
.v118-geometry{border-top:1px solid var(--fx-line)}.v118-geometry>summary{cursor:pointer;list-style:none;padding:11px 14px;font:600 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#7c8984}.v118-geometry>summary::-webkit-details-marker{display:none}.v118-geometry>summary::after{content:"+";float:right;color:var(--fx-green)}.v118-geometry[open]>summary::after{content:"−"}
.v118-geometry .live-state-chart-wrap{border-top:1px solid var(--fx-line)}
.v118-observer .v114-readiness{margin-top:18px}
.v118-boundary-line{display:flex;gap:0;flex-wrap:wrap;margin-top:12px;border:1px solid var(--fx-line)}.v118-boundary-line span{padding:8px 11px;border-right:1px solid var(--fx-line);font:600 8px/1 var(--mono);letter-spacing:.05em;color:#65716d}.v118-boundary-line b{color:#aeb8b4}

.v118-system,.v118-proof,.v118-application{padding-top:88px;padding-bottom:88px;border-top:1px solid var(--line)}
.v118-head{max-width:850px;margin-bottom:36px}.v118-head h2{margin-top:12px;font-size:clamp(34px,4.2vw,56px);line-height:1.02;letter-spacing:-.04em}.v118-head>p:last-child{margin-top:16px;color:var(--ink-prose);font-size:15px;line-height:1.6}
.v118-system-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.v118-dimension{padding:25px 27px;border-right:1px solid var(--line)}.v118-dimension:last-child{border-right:0}.v118-dimension>small{font:600 9px/1 var(--mono);letter-spacing:.1em;color:var(--live)}.v118-dimension h3{margin-top:15px;font-size:20px}.v118-dimension p{margin-top:16px;color:var(--ink-prose);font-size:13px;line-height:1.55}
.v118-scale-line,.v118-time-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:24px;font:650 10px/1 var(--mono)}.v118-scale-line i,.v118-time-line i{font-style:normal;color:var(--live)}.v118-time-line b{color:var(--live)}.v118-axis-sig{margin-top:24px;font:650 20px/1.2 var(--mono);letter-spacing:.08em}
.v118-live-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-top:18px;border:1px solid var(--line-2)}.v118-live-summary>span{padding:14px;border-right:1px solid var(--line)}.v118-live-summary>span:last-child{border-right:0}.v118-live-summary small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:var(--ink-quiet)}.v118-live-summary b{display:block;margin-top:7px;font:600 11px/1.25 var(--mono);overflow-wrap:anywhere}
.v118-proof-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-2)}.v118-proof-grid article{min-height:175px;padding:22px;border-right:1px solid var(--line)}.v118-proof-grid article:last-child{border-right:0}.v118-proof-grid small{font:600 8px/1 var(--mono);letter-spacing:.09em;color:var(--live)}.v118-proof-grid b{display:block;margin-top:18px;font:650 14px/1.3 var(--mono);overflow-wrap:anywhere}.v118-proof-grid p{margin-top:13px;color:var(--ink-prose);font-size:12px;line-height:1.55}
.v118-proof-actions{display:flex;gap:18px;margin-top:20px}.v118-proof-actions a,.v118-application-grid a{font:600 10px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--live)}
.v118-application-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.v118-application-grid article{min-height:190px;padding:22px;border:1px solid var(--line-2);display:flex;flex-direction:column}.v118-application-grid b{font-size:20px}.v118-application-grid p{margin-top:12px;color:var(--ink-prose);font-size:13px;line-height:1.55}.v118-application-grid a{margin-top:auto;padding-top:22px}
.v118-boundary{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);color:var(--ink-quiet);font-size:12px;line-height:1.55}
#technical-proof{max-width:var(--field);margin:0 auto 90px}
#technical-proof>summary{background:transparent}

.v118-page-hero{padding-top:clamp(62px,7vw,92px);padding-bottom:62px}.v118-page-hero>p{max-width:780px}.v118-page-stats{display:grid;grid-template-columns:repeat(3,1fr);max-width:720px;margin-top:30px;border:1px solid var(--line-2)}.v118-page-stats>span{padding:14px;border-right:1px solid var(--line)}.v118-page-stats>span:last-child{border-right:0}.v118-page-stats small{display:block;font:600 8px/1 var(--mono);letter-spacing:.09em;color:var(--ink-quiet)}.v118-page-stats b{display:block;margin-top:8px;font:650 12px/1.2 var(--mono)}
.v118-chain,.v118-verify-grid,.v118-evidence-now,.v118-reproduce,.v118-contract,.v118-integration-flow{padding-top:70px;padding-bottom:70px;border-top:1px solid var(--line)}
.v118-chain .kf-plate{margin-top:26px}
.v118-checks,.v118-status-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-2)}.v118-checks article,.v118-status-grid>span{padding:20px;border-right:1px solid var(--line)}.v118-checks article:last-child,.v118-status-grid>span:nth-child(4n){border-right:0}.v118-checks small,.v118-status-grid small{display:block;font:600 8px/1 var(--mono);letter-spacing:.09em;color:var(--live)}.v118-checks b,.v118-status-grid b{display:block;margin-top:14px;font:650 13px/1.3 var(--mono)}.v118-checks p,.v118-status-grid i{display:block;margin-top:11px;color:var(--ink-prose);font-size:12px;line-height:1.5;font-style:normal}
.v118-status-grid{grid-template-columns:repeat(3,1fr)}.v118-status-grid>span{border-bottom:1px solid var(--line)}.v118-status-grid>span:nth-child(3n){border-right:0}.v118-status-grid>span:nth-last-child(-n+3){border-bottom:0}
.v118-steps{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line-2)}.v118-steps>span{padding:18px;border-right:1px solid var(--line)}.v118-steps>span:last-child{border-right:0}.v118-steps b{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line-2);color:var(--live);font:650 10px/1 var(--mono)}.v118-steps i{display:block;margin-top:12px;font-size:14px;font-style:normal}.v118-steps code{display:block;margin-top:8px;color:var(--ink-quiet);font-size:10px}.v118-reproduce>p,.v118-integration-flow>p{max-width:820px;margin-top:17px;color:var(--ink-prose);font-size:13px;line-height:1.55}
.v118-more-proof{margin-top:16px;margin-bottom:70px;border:1px solid var(--line-2)}.v118-more-proof>summary{cursor:pointer;list-style:none;padding:16px 18px;font:600 10px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase}.v118-more-proof>summary::-webkit-details-marker{display:none}.v118-more-proof>summary::after{content:"+";float:right;color:var(--live)}.v118-more-proof[open]>summary::after{content:"−"}
.v118-more-proof-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.v118-more-proof-grid article{padding:18px;border-right:1px solid var(--line)}.v118-more-proof-grid article:last-child{border-right:0}.v118-more-proof-grid b{font:650 10px/1 var(--mono);color:var(--live)}.v118-more-proof-grid p{margin-top:10px;color:var(--ink-prose);font-size:12px;line-height:1.5}
.v118-endpoints{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.v118-endpoints a{display:block;padding:22px;border:1px solid var(--line-2)}.v118-endpoints small{font:600 8px/1 var(--mono);letter-spacing:.09em;color:var(--live)}.v118-endpoints b{display:block;margin-top:12px;font:650 15px/1.2 var(--mono)}.v118-endpoints p{margin-top:10px;color:var(--ink-prose);font-size:12px;line-height:1.5}
.v118-advanced-endpoints{display:grid;border-top:1px solid var(--line)}.v118-advanced-endpoints a{display:grid;grid-template-columns:220px 1fr;gap:18px;padding:12px 16px;border-bottom:1px solid var(--line)}.v118-advanced-endpoints a:last-child{border-bottom:0}.v118-advanced-endpoints b{font:600 10px/1 var(--mono)}.v118-advanced-endpoints span{color:var(--ink-prose);font-size:12px}
.v118-integration-boundary{display:grid;grid-template-columns:repeat(4,1fr);margin-top:0;margin-bottom:80px;border:1px solid var(--line-2)}.v118-integration-boundary>span{padding:15px;border-right:1px solid var(--line)}.v118-integration-boundary>span:last-child{border-right:0}.v118-integration-boundary small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:var(--ink-quiet)}.v118-integration-boundary b{display:block;margin-top:7px;font:600 11px/1.25 var(--mono)}

@media(max-width:980px){
  .v118-hero{grid-template-columns:1fr}.v118-formula{justify-self:start}
  .v118-observer-head{grid-template-columns:1fr auto}.v118-observer-status{grid-column:1/-1;grid-row:2}
  .v118-meta{grid-template-columns:repeat(3,1fr)}.v118-meta>span:nth-child(3){border-right:0}.v118-meta>span:nth-child(-n+3){border-bottom:1px solid var(--fx-line)}
  .v118-coordinate-strip{grid-template-columns:1.4fr repeat(4,1fr)}.v118-coordinate-strip>span{border-bottom:1px solid var(--fx-line)}
  .v118-temporal-head{grid-template-columns:1fr}.v118-system-grid,.v118-proof-grid,.v118-application-grid{grid-template-columns:1fr}.v118-dimension,.v118-proof-grid article{border-right:0;border-bottom:1px solid var(--line)}.v118-dimension:last-child,.v118-proof-grid article:last-child{border-bottom:0}
  .v118-live-summary{grid-template-columns:1fr 1fr}.v118-live-summary>span:nth-child(2n){border-right:0}.v118-live-summary>span:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .v118-checks{grid-template-columns:1fr 1fr}.v118-checks article:nth-child(2n){border-right:0}.v118-checks article:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .v118-status-grid{grid-template-columns:1fr 1fr}.v118-status-grid>span:nth-child(3n){border-right:1px solid var(--line)}.v118-status-grid>span:nth-child(2n){border-right:0}.v118-status-grid>span:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.v118-status-grid>span:nth-last-child(-n+2){border-bottom:0}
}
@media(max-width:720px){
  .v118-hero,.v118-system,.v118-proof,.v118-application,.v118-page-hero,.v118-chain,.v118-verify-grid,.v118-evidence-now,.v118-reproduce,.v118-contract,.v118-integration-flow,.v118-integration-boundary,.v118-more-proof{padding-left:20px;padding-right:20px}
  .v118-hero{padding-top:40px;padding-bottom:36px}.v118-hero h1,.v118-page-hero h1{font-size:42px}.v118-hero>div>p:nth-of-type(2),.v118-page-hero>p{font-size:15px}.v118-read-order{gap:8px}.v118-read-order>i{display:none}
  .v118-formula{width:100%;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr}.v118-formula span{min-width:0}.v118-formula b{font-size:28px}.v118-formula i{font-size:7px}
  .v118-observer{padding:34px 20px 58px}.v118-observer-head{grid-template-columns:1fr}.v118-observer-status{grid-column:auto;grid-row:auto;grid-template-columns:1fr}.v118-observer-status>span{border-right:0;border-bottom:1px solid var(--fx-line)}.v118-observer-status>span:last-child{border-bottom:0}.v118-observer-head .v114-identity{margin-top:0}
  .v118-meta{grid-template-columns:1fr 1fr}.v118-meta>span:nth-child(3){border-right:1px solid var(--fx-line)}.v118-meta>span:nth-child(2n){border-right:0}.v118-meta>span:nth-child(-n+4){border-bottom:1px solid var(--fx-line)}.v118-meta>span:last-child{grid-column:1/-1}
  .v118-coordinate-strip{grid-template-columns:1fr 1fr}.v118-coordinate-strip>span:nth-child(2n){border-right:0}.v118-coordinate-strip>span:first-child{grid-column:1/-1;border-right:0}
  .v118-temporal{overflow:hidden}.v118-temporal-head{padding:14px}.v118-trow{grid-template-columns:105px 100px 110px 190px;min-width:505px}.v118-temporal-grid{overflow-x:auto}.v118-trow>span{padding:8px 9px;font-size:9px}.v118-trow>span:first-child i{display:none}.v118-temporal-foot{grid-template-columns:1fr 1fr}.v118-temporal-foot>span:nth-child(2n){border-right:0}.v118-temporal-foot>span:nth-child(-n+2){border-bottom:1px solid var(--fx-line)}
  .v118-system,.v118-proof,.v118-application{padding-top:66px;padding-bottom:66px}.v118-head{margin-bottom:28px}.v118-head h2{font-size:36px}
  .v118-live-summary{grid-template-columns:1fr}.v118-live-summary>span{border-right:0;border-bottom:1px solid var(--line)}.v118-live-summary>span:last-child{border-bottom:0}
  .v118-page-stats,.v118-steps,.v118-checks,.v118-status-grid,.v118-endpoints,.v118-more-proof-grid,.v118-integration-boundary{grid-template-columns:1fr}.v118-page-stats>span,.v118-steps>span,.v118-checks article,.v118-status-grid>span,.v118-more-proof-grid article,.v118-integration-boundary>span{border-right:0;border-bottom:1px solid var(--line)}.v118-page-stats>span:last-child,.v118-steps>span:last-child,.v118-checks article:last-child,.v118-status-grid>span:last-child,.v118-more-proof-grid article:last-child,.v118-integration-boundary>span:last-child{border-bottom:0}
  .v118-advanced-endpoints a{grid-template-columns:1fr;gap:5px}
}
@media(max-width:720px){
  .v118-temporal-grid{overflow:visible}
  .v118-trow{grid-template-columns:70px repeat(3,minmax(0,1fr));min-width:0}
  .v118-trow>span{padding:8px 6px;font-size:8px;overflow-wrap:anywhere}
  .v118-trow.is-head>span{font-size:6.8px;line-height:1.3}
}


/* ═══════════════════════════════════════════════════════════════════════════
   V119 — PUBLIC SYSTEM
   Observer → Model → Proof → Integration
   ═══════════════════════════════════════════════════════════════════════════ */

.v119-hero,.v119-model,.v119-proof,.v119-outward{
  max-width:var(--field);margin:0 auto;padding-left:var(--edge);padding-right:var(--edge)
}
.v119-kicker{font:600 10px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-quiet)}
.v119-kicker .fx-live-dot{display:inline-block;margin-right:8px}
.v119-hero{padding-top:clamp(48px,6vw,78px);padding-bottom:42px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.68fr);gap:58px;align-items:end}
.v119-hero h1{margin-top:13px;font-size:clamp(48px,5.7vw,78px);line-height:.98;letter-spacing:-.05em}
.v119-hero h1 em,.v119-model h2 em,.v119-proof h2 em{font-style:normal;color:var(--live)}
.v119-hero-copy>p:last-of-type{max-width:780px;margin-top:20px;color:var(--ink-prose);font-size:16px;line-height:1.62}
.v119-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}
.v119-btn{display:inline-flex;align-items:center;min-height:42px;padding:0 15px;border:1px solid var(--line-2);font:600 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.v119-btn--primary{border-color:color-mix(in srgb,var(--live) 58%,var(--line));color:var(--live);background:color-mix(in srgb,var(--live) 4%,transparent)}
.v119-btn:hover{border-color:var(--ink-quiet);color:var(--ink)}
.v119-hero-status{display:grid;border:1px solid var(--line-2)}
.v119-hero-status>span{display:grid;grid-template-columns:135px minmax(0,1fr);align-items:center;gap:15px;padding:11px 13px;border-bottom:1px solid var(--line)}
.v119-hero-status>span:last-child{border-bottom:0}
.v119-hero-status small{font:600 8px/1 var(--mono);letter-spacing:.08em;color:var(--ink-quiet)}
.v119-hero-status b{font:600 10px/1.3 var(--mono);overflow-wrap:anywhere}

.v119-observer{max-width:var(--field);margin:0 auto;padding:36px var(--edge) 54px;border-top:1px solid var(--line)}
.v119-observer-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:18px}
.v119-observer-head h2{margin-top:8px;font-size:clamp(29px,3vw,44px);line-height:1.02;letter-spacing:-.035em}
.v119-observer-head h2 em{font-style:normal;color:var(--live)}
.v119-market-stage{border:1px solid var(--fx-line);background:rgba(255,255,255,.006)}
.v119-market-stage .v117-chart-nav{border:0;border-bottom:1px solid var(--fx-line)}
.v119-meta{display:grid;grid-template-columns:.85fr 1.05fr 1.35fr .7fr;border-bottom:1px solid var(--fx-line)}
.v119-meta>span{min-width:0;padding:9px 12px;border-right:1px solid var(--fx-line)}.v119-meta>span:last-child{border-right:0}
.v119-meta small,.v119-coordinate-strip small,.v119-temporal-foot small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:#65716d}
.v119-meta b{display:block;margin-top:6px;font:600 10px/1.25 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v119-meta i{display:block;margin-top:4px;font:500 8px/1.2 var(--mono);font-style:normal;color:#65716d}
.v119-market-stage .live-market-chart{border:0}
.v119-coordinate-strip{display:grid;grid-template-columns:1.35fr repeat(7,1fr);border-top:1px solid var(--fx-line)}
.v119-coordinate-strip>span{min-width:0;padding:10px;border-right:1px solid var(--fx-line)}.v119-coordinate-strip>span:last-child{border-right:0}
.v119-coordinate-strip b{display:block;margin-top:6px;font:650 11px/1.2 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v119-coordinate-strip [data-lc-coordinate-axis].is-pos{color:var(--fx-green)}
.v119-coordinate-strip [data-lc-coordinate-axis].is-neg{color:#e06c5a}
.v119-coordinate-strip [data-lc-coordinate-axis].is-na{color:#7c8984}

.v119-temporal{margin-top:14px;border:1px solid var(--fx-line);background:rgba(255,255,255,.006)}
.v119-temporal-head{display:flex;justify-content:space-between;gap:30px;align-items:end;padding:14px 16px;border-bottom:1px solid var(--fx-line)}
.v119-temporal-head small{font:600 8px/1 var(--mono);letter-spacing:.1em;color:var(--live)}
.v119-temporal-head h3{margin-top:6px;font-size:20px}
.v119-temporal-legend{display:flex;align-items:center;gap:9px;font:600 8px/1.2 var(--mono);letter-spacing:.05em;color:#7b8883}
.v119-temporal-legend i{font-style:normal;color:#65716d}.v119-temporal-legend b{color:var(--fx-green);font-weight:600}
.v119-temporal-grid{display:grid}
.v119-trow{display:grid;grid-template-columns:170px 1fr 1fr 1.45fr;min-height:40px;border-bottom:1px solid var(--fx-line)}
.v119-trow:last-child{border-bottom:0}
.v119-trow>span{display:flex;align-items:center;min-width:0;padding:8px 12px;border-right:1px solid var(--fx-line);font:600 10px/1.25 var(--mono)}
.v119-trow>span:last-child{border-right:0}
.v119-trow>span:first-child{gap:9px}.v119-trow>span:first-child b{font-size:14px;color:#eef4f1}.v119-trow>span:first-child i{font-size:8px;font-style:normal;color:#65716d;letter-spacing:.05em}
.v119-trow.is-head{min-height:32px;background:rgba(255,255,255,.012)}.v119-trow.is-head>span{font-size:8px;letter-spacing:.08em;color:#65716d}
.v119-trow .is-present{background:rgba(61,214,140,.035);color:var(--fx-green)}
.v119-trow [data-lc-temporal-axis].is-na{color:#65716d}
.v119-temporal-foot{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--fx-line)}
.v119-temporal-foot>span{padding:9px 12px;border-right:1px solid var(--fx-line)}.v119-temporal-foot>span:last-child{border-right:0}
.v119-temporal-foot b{display:block;margin-top:5px;font:600 10px/1.2 var(--mono)}
.v119-readline{display:grid;grid-template-columns:1fr 22px 1fr 22px 1fr 22px 1fr;align-items:center;margin-top:14px;border:1px solid var(--fx-line)}
.v119-readline>span{padding:11px 13px}.v119-readline>span small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:#65716d}.v119-readline>span b{display:block;margin-top:6px;font:600 10px/1.2 var(--mono)}
.v119-readline>i{font-style:normal;text-align:center;color:var(--fx-green)}
.v119-observer .v114-readiness{margin-top:14px}
.v119-boundary-line{display:flex;flex-wrap:wrap;margin-top:10px;border:1px solid var(--fx-line)}
.v119-boundary-line span{padding:7px 10px;border-right:1px solid var(--fx-line);font:600 8px/1 var(--mono);letter-spacing:.04em;color:#65716d}.v119-boundary-line span:last-child{border-right:0}.v119-boundary-line b{color:#aeb8b4}
body[data-cmmx-temporal-state="aligned"] .v117-coordinate-head small,
body[data-cmmx-temporal-state="aligned"] .v117-coordinate-head em{color:var(--fx-green)}
body[data-cmmx-temporal-state="separated"] .v117-coordinate-head small,
body[data-cmmx-temporal-state="separated"] .v117-coordinate-head em{color:#e8b339}
.v117-timeframes button:focus-visible,.v119-btn:focus-visible,.v119-outward-actions a:focus-visible{outline:2px solid var(--live);outline-offset:-2px}

.v119-model,.v119-proof,.v119-outward{padding-top:64px;padding-bottom:64px;border-top:1px solid var(--line)}
.v119-model-head,.v119-proof-copy{max-width:820px}
.v119-model h2,.v119-proof h2,.v119-outward h2{margin-top:11px;font-size:clamp(32px,3.8vw,52px);line-height:1.02;letter-spacing:-.04em}
.v119-model-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:31px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.v119-model-grid article{padding:21px 23px;border-right:1px solid var(--line)}.v119-model-grid article:last-child{border-right:0}
.v119-model-grid small{font:600 8px/1 var(--mono);letter-spacing:.1em;color:var(--live)}.v119-model-grid b{display:block;margin-top:16px;font:650 13px/1.45 var(--mono)}.v119-model-grid p{margin-top:12px;color:var(--ink-prose);font-size:12px;line-height:1.55}
.v119-model-status{display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px;border:1px solid var(--line-2)}
.v119-model-status>span{padding:12px;border-right:1px solid var(--line)}.v119-model-status>span:last-child{border-right:0}
.v119-model-status small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:var(--ink-quiet)}.v119-model-status b{display:block;margin-top:6px;font:600 10px/1.3 var(--mono);overflow-wrap:anywhere}

.v119-proof{display:grid;grid-template-columns:minmax(0,1fr) minmax(450px,.85fr);gap:55px;align-items:center}
.v119-proof-copy>p:last-of-type{max-width:700px;margin-top:17px;color:var(--ink-prose);font-size:14px;line-height:1.6}
.v119-proof-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2)}
.v119-proof-grid>span{min-height:112px;padding:16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.v119-proof-grid>span:nth-child(2n){border-right:0}.v119-proof-grid>span:nth-last-child(-n+2){border-bottom:0}
.v119-proof-grid small{display:block;font:600 8px/1 var(--mono);letter-spacing:.08em;color:var(--ink-quiet)}.v119-proof-grid b{display:block;margin-top:10px;font:650 11px/1.3 var(--mono);overflow-wrap:anywhere}.v119-proof-grid i{display:block;margin-top:7px;font-size:10px;font-style:normal;color:var(--ink-quiet)}

.v119-outward{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);gap:50px;align-items:end}
.v119-outward>div:first-child>p:last-child{max-width:760px;margin-top:15px;color:var(--ink-prose);font-size:13px;line-height:1.6}
.v119-outward-actions{display:grid;border:1px solid var(--line-2)}
.v119-outward-actions a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px;border-bottom:1px solid var(--line)}.v119-outward-actions a:last-child{border-bottom:0}
.v119-outward-actions small{font:600 8px/1 var(--mono);letter-spacing:.08em;color:var(--ink-quiet)}.v119-outward-actions b{font:600 10px/1 var(--mono);color:var(--live)}

@media(max-width:980px){
  .v119-hero{grid-template-columns:1fr}.v119-hero-status{max-width:680px}
  .v119-model-grid{grid-template-columns:1fr}.v119-model-grid article{border-right:0;border-bottom:1px solid var(--line)}.v119-model-grid article:last-child{border-bottom:0}
  .v119-model-status{grid-template-columns:1fr 1fr}.v119-model-status>span:nth-child(2n){border-right:0}.v119-model-status>span:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .v119-proof,.v119-outward{grid-template-columns:1fr}
}
@media(max-width:720px){
  .v119-hero,.v119-model,.v119-proof,.v119-outward{padding-left:20px;padding-right:20px}
  .v119-hero{padding-top:38px;padding-bottom:32px;gap:30px}.v119-hero h1{font-size:42px}.v119-hero-copy>p:last-of-type{font-size:14px}
  .v119-hero-status>span{grid-template-columns:115px minmax(0,1fr)}
  .v119-observer{padding:30px 20px 46px}.v119-observer-head{align-items:center}.v119-observer-head h2{font-size:32px}
  .v119-meta{grid-template-columns:1fr 1fr}.v119-meta>span:nth-child(2n){border-right:0}.v119-meta>span:nth-child(-n+2){border-bottom:1px solid var(--fx-line)}
  .v119-coordinate-strip{grid-template-columns:1fr 1fr}.v119-coordinate-strip>span:nth-child(2n){border-right:0}.v119-coordinate-strip>span.is-label{grid-column:1/-1;border-right:0}
  .v119-temporal-head{display:block}.v119-temporal-legend{margin-top:12px;flex-wrap:wrap}
  .v119-trow{grid-template-columns:64px repeat(3,minmax(0,1fr));min-width:0}.v119-trow>span{padding:7px 5px;font-size:8px;overflow-wrap:anywhere}.v119-trow.is-head>span{font-size:6.7px}.v119-trow>span:first-child i{display:none}
  .v119-temporal-foot{grid-template-columns:1fr 1fr}.v119-temporal-foot>span:nth-child(2n){border-right:0}.v119-temporal-foot>span:nth-child(-n+2){border-bottom:1px solid var(--fx-line)}
  .v119-readline{grid-template-columns:1fr 1fr}.v119-readline>i{display:none}.v119-readline>span:nth-child(odd){border-right:1px solid var(--fx-line)}.v119-readline>span:nth-child(-n+4){border-bottom:1px solid var(--fx-line)}
  .v119-model,.v119-proof,.v119-outward{padding-top:52px;padding-bottom:52px}.v119-model h2,.v119-proof h2,.v119-outward h2{font-size:34px}
  .v119-model-status{grid-template-columns:1fr}.v119-model-status>span{border-right:0;border-bottom:1px solid var(--line)}.v119-model-status>span:last-child{border-bottom:0}
  .v119-proof-grid{grid-template-columns:1fr}.v119-proof-grid>span{border-right:0!important;border-bottom:1px solid var(--line)!important}.v119-proof-grid>span:last-child{border-bottom:0!important}
}


/* ═══════════════════════════════════════════════════════════════════════════
   V123 — FINAL PUBLIC NAVIGATOR
   One live instrument first; explanation and proof remain subordinate.
   ═══════════════════════════════════════════════════════════════════════════ */

.v123-hero,.v123-time-model,.v123-guide,.v123-proof,.v123-close{
  max-width:var(--field);margin:0 auto;padding-left:var(--edge);padding-right:var(--edge)
}
.v123-kicker{font:650 9px/1.2 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-quiet)}
.v123-kicker .fx-live-dot{display:inline-block;margin-right:8px}
.v123-hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(340px,.62fr);gap:64px;align-items:end;padding-top:clamp(54px,7vw,92px);padding-bottom:46px}
.v123-hero h1{margin-top:14px;font-size:clamp(52px,6.4vw,88px);line-height:.94;letter-spacing:-.055em;max-width:980px}
.v123-hero h1 em,.v123-section-head h2 em,.v123-close h2 em{font-style:normal;color:var(--live)}
.v123-hero-copy>p:last-of-type{max-width:790px;margin-top:22px;color:var(--ink-prose);font-size:16px;line-height:1.65}
.v123-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.v123-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border:1px solid var(--line-2);font:650 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.v123-btn:hover{border-color:var(--ink-quiet);color:var(--ink)}
.v123-btn--primary{border-color:color-mix(in srgb,var(--live) 62%,var(--line));background:color-mix(in srgb,var(--live) 5%,transparent);color:var(--live)}
.v123-snapshot{display:grid;border:1px solid var(--line-2);background:color-mix(in srgb,var(--panel) 62%,transparent)}
.v123-snapshot>span{display:grid;grid-template-columns:112px minmax(0,1fr);gap:6px 14px;padding:12px 14px;border-bottom:1px solid var(--line)}
.v123-snapshot>span:last-child{border-bottom:0}
.v123-snapshot small{grid-row:1/3;align-self:center;font:650 8px/1 var(--mono);letter-spacing:.08em;color:var(--ink-quiet)}
.v123-snapshot b{font:650 11px/1.2 var(--mono);overflow-wrap:anywhere}
.v123-snapshot i{font:500 8px/1.2 var(--mono);font-style:normal;color:var(--ink-quiet)}

.v123-time-model{display:grid;grid-template-columns:1fr 30px 1fr 30px 1fr;align-items:stretch;padding-top:0;padding-bottom:42px}
.v123-time-model article{padding:18px 20px;border:1px solid var(--line-2)}
.v123-time-model article.is-present{border-color:color-mix(in srgb,var(--live) 52%,var(--line));background:color-mix(in srgb,var(--live) 3%,transparent)}
.v123-time-model>i{display:grid;place-items:center;font-style:normal;color:var(--live)}
.v123-time-model small{font:650 8px/1 var(--mono);letter-spacing:.1em;color:var(--ink-quiet)}
.v123-time-model article.is-present small{color:var(--live)}
.v123-time-model b{display:block;margin-top:12px;font-size:17px}
.v123-time-model p{margin-top:8px;color:var(--ink-prose);font-size:11px;line-height:1.5}

.v123-guide,.v123-proof,.v123-close{padding-top:68px;padding-bottom:68px;border-top:1px solid var(--line)}
.v123-section-head{max-width:850px}
.v123-section-head h2,.v123-close h2{margin-top:12px;font-size:clamp(34px,4.1vw,56px);line-height:1.01;letter-spacing:-.045em}
.v123-section-head>p:last-child,.v123-close>p:last-child{max-width:760px;margin-top:17px;color:var(--ink-prose);font-size:13px;line-height:1.62}
.v123-guide-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:32px;border:1px solid var(--line-2)}
.v123-guide-grid article{min-height:205px;padding:20px;border-right:1px solid var(--line)}
.v123-guide-grid article:last-child{border-right:0}
.v123-guide-grid article>b{display:grid;place-items:center;width:28px;height:28px;border:1px solid color-mix(in srgb,var(--live) 45%,var(--line));color:var(--live);font:650 9px/1 var(--mono)}
.v123-guide-grid small{display:block;margin-top:22px;font:650 8px/1 var(--mono);letter-spacing:.1em;color:var(--ink-quiet)}
.v123-guide-grid strong{display:block;margin-top:8px;font-size:15px}
.v123-guide-grid p{margin-top:10px;color:var(--ink-prose);font-size:11px;line-height:1.55}

.v123-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:31px;border:1px solid var(--line-2)}
.v123-proof-grid>span{min-height:105px;padding:16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.v123-proof-grid>span:nth-child(3n){border-right:0}
.v123-proof-grid>span:nth-last-child(-n+3){border-bottom:0}
.v123-proof-grid small{display:block;font:650 8px/1 var(--mono);letter-spacing:.09em;color:var(--ink-quiet)}
.v123-proof-grid b{display:block;margin-top:11px;font:650 11px/1.3 var(--mono);overflow-wrap:anywhere}
.v123-proof-grid i{display:block;margin-top:7px;font:500 9px/1.25 var(--mono);font-style:normal;color:var(--ink-quiet)}
.v123-close{padding-bottom:88px}
.v123-close h2{max-width:980px}.v123-close>p:last-child{max-width:820px}

/* Timeframe readiness is evidence state, not market direction. */
.v117-timeframes button.is-evidence-sealed span{color:var(--fx-green)}
.v117-timeframes button.is-evidence-gap span{color:#e8b339}
.v117-timeframes button.is-evidence-gap::after{background:#e8b339}
.v117-timeframes button.is-evidence-sealed::after{background:var(--fx-green)}

@media(max-width:980px){
  .v123-hero{grid-template-columns:1fr;gap:34px}.v123-snapshot{max-width:720px}
  .v123-time-model{grid-template-columns:1fr}.v123-time-model>i{height:26px;transform:rotate(90deg)}
  .v123-guide-grid{grid-template-columns:1fr 1fr}.v123-guide-grid article:nth-child(2){border-right:0}.v123-guide-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:720px){
  .v123-hero,.v123-time-model,.v123-guide,.v123-proof,.v123-close{padding-left:20px;padding-right:20px}
  .v123-hero{padding-top:40px;padding-bottom:34px}.v123-hero h1{font-size:46px}.v123-hero-copy>p:last-of-type{font-size:14px}
  .v123-snapshot>span{grid-template-columns:100px minmax(0,1fr)}
  .v123-time-model{padding-bottom:34px}.v123-time-model article{padding:16px}
  .v123-guide,.v123-proof,.v123-close{padding-top:52px;padding-bottom:52px}
  .v123-guide-grid,.v123-proof-grid{grid-template-columns:1fr}
  .v123-guide-grid article{min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  .v123-guide-grid article:last-child{border-bottom:0}
  .v123-proof-grid>span{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .v123-proof-grid>span:last-child{border-bottom:0!important}
}

/* CMM.X marketing V139 */
.cmmx-brand-hero{padding-top:clamp(82px,9vw,140px);background:radial-gradient(circle at 76% 30%,rgba(61,214,140,.07),transparent 34%)}.cmmx-brand-hero .v123-hero-copy{max-width:1050px}.cmmx-brand-hero h1{font-size:clamp(52px,6.7vw,108px);line-height:.94;letter-spacing:-.058em}.cmmx-brand-hero h1 em{color:var(--green);font-style:normal;font-weight:300}.cmmx-brand-deck{max-width:850px!important;font-size:clamp(17px,1.45vw,22px)!important;line-height:1.62!important}.cmmx-brand-principle{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:30px;font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--muted)}.cmmx-brand-principle i{font-style:normal;color:var(--green)}.cmmx-brand-boundary{margin:24px 0 0!important;font:500 9px/1.5 var(--mono)!important;letter-spacing:.1em!important;color:var(--dim)!important}.cmmx-brand-snapshot span:first-child b{color:var(--green)}.cmmx-category{padding:clamp(90px,11vw,160px) max(24px,calc((100vw - 1440px)/2));border-bottom:1px solid var(--line)}.cmmx-category>div:first-child{max-width:1050px}.cmmx-category small{font:600 10px/1 var(--mono);letter-spacing:.14em;color:var(--green)}.cmmx-category h2{margin:18px 0 0;font-size:clamp(42px,5.4vw,78px);line-height:1;letter-spacing:-.052em;font-weight:300}.cmmx-category h2 em{font-style:normal;color:var(--muted)}.cmmx-category>p{max-width:820px;margin:30px 0 0;color:var(--muted);font-size:18px;line-height:1.7}.cmmx-category-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:58px;border:1px solid var(--line)}.cmmx-category-grid article{min-height:230px;padding:25px;border-right:1px solid var(--line)}.cmmx-category-grid article:last-child{border-right:0}.cmmx-category-grid article>b{font:500 10px/1 var(--mono);color:var(--green)}.cmmx-category-grid strong{display:block;margin-top:72px;font-size:21px;font-weight:500}.cmmx-category-grid p{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.6}@media(max-width:900px){.cmmx-category-grid{grid-template-columns:1fr 1fr}.cmmx-category-grid article{border-bottom:1px solid var(--line)}}@media(max-width:620px){.cmmx-category-grid{grid-template-columns:1fr}.cmmx-category-grid article{min-height:auto}.cmmx-category-grid strong{margin-top:35px}}
