/* Eon Quant site prototype v1.1 (DRAFT, 2026-10-24, after the ten-discipline audit). Every colour, type style, space and timing
   comes from assets/eon-tokens.css (brand kit v2.0, byte copy) or from the page tokens below. No third-party request, no cookie.
   Behaviour lives in assets/site.js; pages carry no inline script or style attribute (strict-CSP ready). */
@font-face{font-family:"IBM Plex Sans";font-weight:300;font-style:normal;font-display:swap;src:url(fonts/ibm-plex-sans-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}

:root{
  /* page tokens (brand book: phones display 42px, section titles 36px, figure XL 50px; nav 68px; buttons 52px; logo 28px / 24px) */
  --v7-display-size:clamp(42px,5.4vw,72px);
  --v7-title-size:clamp(36px,4vw,54px);
  --v7-figure-xl-size:clamp(50px,6vw,76px);
  --v7-margin:clamp(var(--eq-margin-phone),4.4vw,var(--eq-margin));
  --v7-section:clamp(var(--eq-section-phone),11vw,var(--eq-section));
  --v7-nav-h:68px;
  --v7-button-h:52px;
  --v7-button-nav-h:40px;
  --v7-tap:44px;
  --v7-logo-h:28px;
  --v7-logo-foot-h:24px;
  --v7-frost:color-mix(in srgb,var(--eq-fog) 92%,transparent);   /* frosted nav: fog at 92 % */
  --v7-blur:14px;
  --v7-rise-y:20px;                       /* motion: Rise, 20px up, 70 ms apart, 1.2 s */
  --v7-rise-step:70ms;
  --v7-type-in:.55s;                      /* motion: Type-on, 0.55 s, 0.38 s apart, only in the log */
  --v7-type-step:.38s;
  --v7-answer:.2s;                        /* motion: a control answering (panel open, request sent) */
  --v7-dot:7px;
  --v7-rule:1px;
  --v7-focus:2px;
  --v7-focus-offset:3px;
  --v7-measure:62ch;                      /* body and legal text */
  --v7-lead-measure:46ch;                 /* leads (book p18) */
  --v7-s1:4px; --v7-s2:8px; --v7-s3:12px; --v7-s4:16px; --v7-s5:22px; --v7-s6:28px; --v7-s7:40px; --v7-s8:48px;
  --v7-log-row:5px;
  --v7-hero-top-min:56px; --v7-hero-top-max:112px;
  /* the night ramp, in the token's own proportions (60/130/190/250/300/340 px), so it can be drawn at any height */
  --v8-ramp:linear-gradient(180deg,var(--eq-fog) 0,var(--eq-night-1) 18%,var(--eq-night-2) 38%,var(--eq-night-3) 56%,var(--eq-night-4) 74%,var(--eq-night-5) 88%,var(--eq-obsidian) 100%);
  --v8-ramp-up:linear-gradient(0deg,var(--eq-fog) 0,var(--eq-night-1) 18%,var(--eq-night-2) 38%,var(--eq-night-3) 56%,var(--eq-night-4) 74%,var(--eq-night-5) 88%,var(--eq-obsidian) 100%);
  --v8-ramp-h:clamp(140px,17vw,240px);
  --v8-field-h:52px;
  --v8-portal-max:760px;
  --v8-figure-row-min:200px;
  --v8-chip-dot:9px;
  --v8-qr:168px;
  --v8-seven:calc((100% - var(--eq-gap-wide)) * 7 / 12);   /* the 7fr track of the 7 : 5 split */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--v7-nav-h) + var(--v7-rule) + var(--v7-s4))}
body{margin:0;background:var(--eq-fog);color:var(--eq-ink);font:var(--eq-body);font-family:var(--eq-sans);
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
/* fog grain at 3.5 % (brand book 07): drawn locally, no request */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:var(--eq-grain);mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img,svg{display:block;max-width:100%}
b,strong{font-weight:500}
/* links: forest and underlined in running text (WCAG 1.4.1); navigation, buttons and lists of links stay plain */
a{color:var(--eq-forest);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:var(--v7-rule);transition:color var(--eq-hover) var(--eq-ease)}
a:hover{color:var(--eq-forest-deep)}
.btn,.top nav a,.top .signin,.logo,footer ul a,.tour-list a,.app-nav a,.toc a,.app-foot a,.skip{text-decoration:none}
.btn:hover,.top nav a:hover,footer ul a:hover,.tour-list a:hover .tt,.app-nav a:hover,.toc a:hover,.app-foot a:hover{text-decoration:underline}
.btn:hover{text-decoration:none}
:focus-visible{outline:var(--v7-focus) solid var(--eq-forest);outline-offset:var(--v7-focus-offset)}
.night :focus-visible{outline-color:var(--eq-light)}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip{position:absolute;left:var(--v7-margin);top:calc(-2 * var(--v7-s8));background:var(--eq-forest);color:var(--eq-on-forest);
  padding:var(--v7-s3) var(--v7-s4);font:var(--eq-button);border-radius:var(--eq-radius-button);z-index:60}
.skip:focus{top:calc(var(--v7-nav-h) + var(--v7-s3))}

.wrap{max-width:var(--eq-page-max);margin:0 auto;padding:0 var(--v7-margin);container-type:inline-size}
section{padding:var(--v7-section) 0 0}
#main > .wrap:last-child{padding-bottom:var(--v7-section)}

/* type */
h1,h2,h3{margin:0;font-family:var(--eq-sans);text-wrap:balance}
h1{font-weight:400;font-size:var(--v7-display-size);line-height:1.03;letter-spacing:var(--eq-display-track);max-width:14ch}
h2{font-weight:400;font-size:var(--v7-title-size);line-height:1.05;letter-spacing:var(--eq-title-track)}
h3{font:var(--eq-heading);letter-spacing:var(--eq-heading-track)}
p{margin:0}
.lead{font:var(--eq-lead);color:var(--eq-ink-muted);max-width:var(--v7-lead-measure)}
.small{font:var(--eq-small);color:var(--eq-ink-muted);max-width:var(--v7-measure)}
.fine{font:var(--eq-fine);color:var(--eq-ink-faint)}
.stack{display:grid;gap:var(--v7-s3)}
/* placeholders stay visible: a dashed box, never a guess (the dashed box is for placeholders only) */
.ph{display:inline;color:var(--eq-ink-muted);font:var(--eq-fine);border:var(--v7-rule) dashed var(--eq-ink-faint);border-radius:var(--eq-radius-button);
  padding:var(--v7-rule) var(--v7-s1);-webkit-box-decoration-break:slice;box-decoration-break:slice}
.night .ph{color:var(--eq-light-faint);border-color:var(--eq-light-faint)}
.ph-panel{display:grid;place-items:center;min-height:200px;border:var(--v7-rule) dashed var(--eq-ink-faint);border-radius:var(--eq-radius-button);background:var(--eq-fog-2);margin-bottom:var(--v7-s5);padding:var(--v7-s5)}

/* section head: the 7 : 5 split, title left, lead right, one hairline under both */
.head{display:grid;grid-template-columns:var(--eq-split);gap:var(--eq-gap) var(--eq-gap-wide);align-items:end;
  padding-bottom:var(--eq-gap);border-bottom:var(--v7-rule) solid var(--eq-hair);margin-bottom:var(--eq-head-gap)}
.head div.lead{display:grid;gap:var(--v7-s2)}
.head p.lead{display:block}
.night .head{border-bottom-color:var(--eq-hair-dark-strong)}
/* one rule per boundary: the block right under a head drops its own top rule */
.head + .faq,.head + .figs,.head + .kv,.head + .plist,.head + .rows,.head + .split > .rows li:first-child,.head + .rows li:first-child{border-top:0}
.head:has(+ .steps),.head:has(+ .split .panel),.head:has(+ .disclaimer){border-bottom:0}
@container (max-width:880px){.head{grid-template-columns:1fr;align-items:start}}

/* buttons: 52px, 2px corners, 15px medium; one forest primary per view (the nav's Book a call) */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--v7-button-h);padding:0 var(--v7-s5);font:var(--eq-button);
  font-family:var(--eq-sans);border-radius:var(--eq-radius-button);border:var(--v7-rule) solid transparent;cursor:pointer;
  transition:background var(--eq-hover) var(--eq-ease),color var(--eq-hover) var(--eq-ease),border-color var(--eq-hover) var(--eq-ease)}
.btn-primary{background:var(--eq-forest);color:var(--eq-on-forest)}
.btn-primary:hover{background:var(--eq-forest-deep);color:var(--eq-on-forest)}
.btn-secondary{background:var(--eq-fog-2);color:var(--eq-ink);border-color:var(--eq-ink-faint)}
.btn-secondary:hover{color:var(--eq-ink);border-color:var(--eq-ink)}
.btn-mint{background:var(--eq-mint);color:var(--eq-obsidian)}
.btn-mint:hover{background:var(--eq-mint-soft);color:var(--eq-obsidian)}
.btn[disabled],.btn[aria-disabled="true"]{background:var(--eq-fog-2);color:var(--eq-ink-faint);border-color:var(--eq-hair-strong);cursor:not-allowed}
.btn[aria-expanded="true"]{border-color:var(--eq-forest);color:var(--eq-forest)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--v7-s3) var(--eq-gap)}
.text-link{font:var(--eq-label);font-family:var(--eq-sans)}

/* nav: 68px, sticky, frosted fog; logo left, links centred (14px muted), Sign in and one call to action right */
.top{position:sticky;top:0;z-index:40;background:var(--v7-frost);-webkit-backdrop-filter:blur(var(--v7-blur));backdrop-filter:blur(var(--v7-blur));
  border-bottom:var(--v7-rule) solid var(--eq-hair)}
.top .wrap{height:var(--v7-nav-h);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--eq-gap)}
.logo{flex:none;min-width:max-content}
.top .logo img{height:var(--v7-logo-h);width:auto}
.top .nav-wide{justify-self:center}
.top nav ul{display:flex;gap:var(--v7-s6);list-style:none;margin:0;padding:0}
.top nav a{font:var(--eq-small);font-family:var(--eq-sans);color:var(--eq-ink-muted);display:inline-flex;align-items:center;min-height:var(--v7-tap)}
.top nav a:hover,.top nav a[aria-current="page"]{color:var(--eq-ink)}
.top .right{justify-self:end;display:flex;align-items:center;gap:var(--v7-s4)}
.top .signin{font:var(--eq-small);font-family:var(--eq-sans);color:var(--eq-ink);display:inline-flex;align-items:center;min-height:var(--v7-tap)}
.top .cta{min-height:var(--v7-button-nav-h);padding:0 var(--v7-s4)}
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:var(--v7-tap);padding:0 var(--v7-s2);font:var(--eq-small);font-family:var(--eq-sans);color:var(--eq-ink)}
.menu summary::-webkit-details-marker{display:none}
.menu summary::after{content:"" / "";width:10px;height:10px;margin-left:var(--v7-s2);border-right:var(--v7-rule) solid currentColor;border-bottom:var(--v7-rule) solid currentColor;transform:translateY(-3px) rotate(45deg)}
.menu[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.menu nav{position:absolute;right:0;top:calc(100% + var(--v7-s2));min-width:220px;background:var(--eq-fog-2);border:var(--v7-rule) solid var(--eq-hair-strong);border-radius:var(--eq-radius-button);padding:var(--v7-s2) var(--v7-s4);box-shadow:0 18px 30px -24px color-mix(in srgb,var(--eq-obsidian) 35%,transparent)}
.menu nav ul{display:grid;gap:0}
.menu nav li + li{border-top:var(--v7-rule) solid var(--eq-hair)}
.menu nav a{font:var(--eq-body);color:var(--eq-ink);width:100%}
@media (max-width:860px){.top .nav-wide{display:none}.menu{display:block}.top .wrap{grid-template-columns:auto 1fr}}
@media (max-width:560px){.top .signin{display:none}.top .right{gap:var(--v7-s2)}}

/* hero */
.hero{container-type:inline-size}
.hero-copy{display:grid;gap:var(--v7-s6)}
.hero h1{max-width:8.5em}   /* the headline's measure in its own em: three lines at every size */
.hero .note{font:var(--eq-small);color:var(--eq-ink-faint)}
/* Rise: the page's one orchestrated moment, once per page view */
.r0{--r:0}.r1{--r:1}.r2{--r:2}.r3{--r:3}
@media (prefers-reduced-motion:no-preference){
  .rise{animation:v7-rise var(--eq-rise) var(--eq-ease) both;animation-delay:calc(var(--r) * var(--v7-rise-step))}
  @keyframes v7-rise{from{opacity:0;transform:translateY(var(--v7-rise-y))}to{opacity:1;transform:none}}
}

/* the instrument (brand book 07): obsidian plate, lit from the top, 1px inner light edge, 6px corners, long soft shadow */
.instrument{margin:0;background:var(--eq-instrument);color:var(--eq-light);border-radius:var(--eq-radius-instrument);box-shadow:var(--eq-shadow-instrument);
  padding:var(--v7-s4) var(--v7-s5) var(--v7-s5);font:var(--eq-mono-data);font-family:var(--eq-mono);overflow:hidden}
.i-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--v7-s1) var(--v7-s3);color:var(--eq-light-faint);font:var(--eq-mono-label);
  font-family:var(--eq-mono);padding-bottom:var(--v7-s3);margin-bottom:var(--v7-s2);border-bottom:var(--v7-rule) solid var(--eq-hair-dark)}
.i-head .file{color:var(--eq-light-muted)}
.i-head .file::before{content:"";display:inline-block;width:var(--v7-dot);height:var(--v7-dot);border-radius:50%;background:var(--eq-mint);
  margin-right:var(--v7-s2);vertical-align:var(--v7-rule)}
.i-head .sample{color:var(--eq-light);border:var(--v7-rule) dashed var(--eq-light-faint);border-radius:var(--eq-radius-button);padding:var(--v7-s1) var(--v7-s2)}
.log{list-style:none;margin:0;padding:0}
.log li{display:grid;grid-template-columns:12ch 7ch 1fr;gap:var(--v7-s3);padding:var(--v7-log-row) 0;color:var(--eq-log)}
.log .t,.log .k{white-space:nowrap}
.log .t{color:var(--eq-light-faint)}
.log .k{color:var(--eq-light)}
.log .ok{color:var(--eq-mint)}
.log .c{display:block;color:var(--eq-light-faint)}
.instrument figcaption{font:var(--eq-fine);font-family:var(--eq-sans);color:var(--eq-light-faint);margin-top:var(--v7-s3);padding-top:var(--v7-s3);
  border-top:var(--v7-rule) solid var(--eq-hair-dark)}
.instrument figcaption a{color:var(--eq-light)}
@container (max-width:440px){.log li{grid-template-columns:12ch 1fr;row-gap:2px;padding:var(--v7-s2) 0}.log .k,.log .d{grid-column:2}}
/* Type-on: plays once, when the log is in view (site.js); the first three lines never wait, and without script nothing hides */
.i0{--i:0}.i1{--i:1}.i2{--i:2}.i3{--i:3}.i4{--i:4}.i5{--i:5}.i6{--i:6}.i7{--i:7}.i8{--i:8}.i9{--i:9}
@media (prefers-reduced-motion:no-preference){
  .log li:nth-child(n+4){animation:v7-type var(--v7-type-in) var(--eq-ease) both;animation-delay:calc((var(--i) - 3) * var(--v7-type-step) + var(--eq-rise))}
  .log.wait li{animation-play-state:paused}
  .log.late li:nth-child(n+4){animation-delay:calc((var(--i) - 3) * var(--v7-type-step))}
  @keyframes v7-type{from{opacity:0}to{opacity:1}}
}

/* why eon */
.why{display:grid;grid-template-columns:var(--eq-split);gap:var(--eq-gap-wide);align-items:start}
.why .quote{font-weight:400;font-size:var(--v7-title-size);line-height:1.05;letter-spacing:var(--eq-title-track);max-width:16ch}
.why .body{display:grid;gap:var(--v7-s4)}
.why .body b{color:var(--eq-ink)}
.three{list-style:none;margin:var(--eq-head-gap) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--eq-gap)}
.three li{border-top:var(--v7-rule) solid var(--eq-hair-strong);padding-top:var(--v7-s4);display:grid;gap:var(--v7-s2);align-content:start}
.three .k{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-forest)}
.three p{font:var(--eq-lead);color:var(--eq-ink)}
@container (max-width:880px){.why,.three{grid-template-columns:1fr}}

/* rows divided by hairlines (the path, risk) */
.rows{list-style:none;margin:0;padding:0}
.rows li{padding:var(--v7-s4) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);color:var(--eq-ink-muted);max-width:var(--v7-measure)}
.rows li:first-child{border-top:var(--v7-rule) solid var(--eq-hair)}
.rows b{color:var(--eq-ink)}
.rows .n{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-forest);margin-right:var(--v7-s2)}
.split{display:grid;grid-template-columns:var(--eq-split);gap:var(--eq-gap-wide);align-items:start}
@container (max-width:880px){.split{grid-template-columns:1fr}}
.needs{margin-top:var(--v7-s7);font:var(--eq-body);color:var(--eq-ink-muted);max-width:var(--v7-measure)}
.needs b{color:var(--eq-ink)}

/* night band: the fog falls into night through the ramp and rises back out; the ramp is the spacing */
.band{margin-top:var(--v7-s8);background:var(--eq-obsidian);color:var(--eq-light)}
.band .fall,.to-night{height:var(--v8-ramp-h);background:var(--v8-ramp)}
.band .rise-out{height:var(--v8-ramp-h);background:var(--v8-ramp-up)}
.band section{padding:var(--v7-s8) 0 0}
.band + .wrap > section:first-child{padding-top:var(--v7-s8)}
.band h2{color:var(--eq-light)}
.band .lead{color:var(--eq-light-muted)}
.band .foot{margin-top:var(--eq-head-gap);padding:var(--v7-s4) 0 var(--v7-s8);border-top:var(--v7-rule) solid var(--eq-hair-dark);color:var(--eq-light-faint);font:var(--eq-small)}

/* tables */
table{border-collapse:collapse;width:100%;font:var(--eq-small)}
caption{text-align:left;font:var(--eq-fine);color:var(--eq-ink-faint);caption-side:bottom;padding-top:var(--v7-s3)}
.facts caption{caption-side:top;font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-ink);padding:0 0 var(--v7-s3)}
th,td{text-align:left;padding:var(--v7-s3) var(--v7-s3) var(--v7-s3) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);vertical-align:top}
thead th{font:var(--eq-fine);font-weight:500;font-family:var(--eq-sans);color:var(--eq-ink-muted);border-bottom-color:var(--eq-hair-strong)}
tbody th{font-weight:400;color:var(--eq-ink)}
td{color:var(--eq-ink-muted)}
td.you{color:var(--eq-ink)}
td.yes{color:var(--eq-forest);font-weight:500}
.table-scroll{overflow:visible}
.narrow{max-width:var(--v8-seven)}
.side{display:grid;gap:var(--v7-s4)}
.side-rows li{max-width:none}
.side-rows li:first-child{border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.panel{background:var(--eq-fog-2);border-top:var(--v7-rule) solid var(--eq-hair-strong);padding:var(--v7-s5);display:grid;gap:var(--v7-s3)}
.panel h3{font:var(--eq-label);font-family:var(--eq-sans)}

/* steps: dots on a line */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--eq-gap)}
.steps li{position:relative;border-top:var(--v7-rule) solid var(--eq-hair-strong);padding-top:var(--v7-s5);display:grid;gap:var(--v7-s2);align-content:start}
.steps li::before{content:"";position:absolute;top:calc(var(--v7-dot) / -2 - var(--v7-rule) / 2);left:0;width:var(--v7-dot);height:var(--v7-dot);border-radius:50%;background:var(--eq-forest)}
.steps .n{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-forest)}
.steps p{font:var(--eq-small);color:var(--eq-ink-muted)}
@container (max-width:880px){.steps{grid-template-columns:repeat(2,1fr)}}
@container (max-width:520px){.steps{grid-template-columns:1fr}}
.facts{margin-top:var(--eq-head-gap)}

/* contact */
.kv.narrow dd{text-align:left}

/* questions */
.faq{border-top:var(--v7-rule) solid var(--eq-hair-strong);max-width:var(--v8-seven)}
.faq details{border-bottom:var(--v7-rule) solid var(--eq-hair)}
.faq summary{cursor:pointer;list-style:none;padding:var(--v7-s5) var(--v7-s7) var(--v7-s5) 0;font:var(--eq-heading);letter-spacing:var(--eq-heading-track);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+" / "";position:absolute;right:var(--v7-s1);top:var(--v7-s4);font:var(--eq-figure);color:var(--eq-forest)}
.faq details[open] summary::after{content:"\2212" / ""}
.faq details p{padding:0 0 var(--v7-s5);color:var(--eq-ink-muted);max-width:var(--v7-measure)}
@media (prefers-reduced-motion:no-preference){.faq details[open] p{animation:v8-in var(--v7-answer) var(--eq-ease) both}}
@keyframes v8-in{from{opacity:0}to{opacity:1}}

/* closing band falls into night */
.close{margin-top:var(--v7-section);background:var(--v8-ramp) top / 100% var(--v8-ramp-h) no-repeat;background-color:var(--eq-obsidian);padding:calc(var(--v8-ramp-h) + var(--v7-s5)) 0 var(--v7-section)}
.night{color:var(--eq-light)}
.close .head{border-bottom-color:var(--eq-hair-dark-strong)}
.close .lead{color:var(--eq-light-muted)}
.close .kv{border-top-color:var(--eq-hair-dark-strong);margin-top:var(--v7-s4)}
.close .kv > div{border-bottom-color:var(--eq-hair-dark)}
.close .kv dt{color:var(--eq-light-faint)}
.close .kv dd{color:var(--eq-light)}
.close .kv a{color:var(--eq-mint)}

footer.night{background:var(--eq-obsidian);color:var(--eq-light-muted);padding:0 0 var(--v7-s8)}
footer .grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--eq-gap);padding:var(--v7-s8) 0;border-top:var(--v7-rule) solid var(--eq-hair-dark-strong)}
footer img{height:var(--v7-logo-foot-h);width:auto}
footer .tagline{color:var(--eq-light-muted);margin-top:var(--v7-s3)}
footer .foot-h{font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-light);margin-bottom:var(--v7-s3);letter-spacing:0}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:0;font:var(--eq-small)}
footer ul a{display:inline-flex;align-items:center;min-height:36px}
footer a{color:var(--eq-light-muted)}
footer a:hover{color:var(--eq-light)}
footer .legal{font:var(--eq-fine);color:var(--eq-light-faint);display:grid;gap:var(--v7-s2);padding-top:var(--eq-gap);border-top:var(--v7-rule) solid var(--eq-hair-dark)}
@media (max-width:760px){footer .grid{grid-template-columns:1fr 1fr}footer .brand{grid-column:1/-1}}

/* ===== inner pages, forms, figures, the dial, the portal. Tokens only. ===== */
.page-head{padding:clamp(var(--v7-hero-top-min),7vw,var(--v7-hero-top-max)) 0 0}
.page-head h1{max-width:18ch}
.page-head .lead{margin-top:var(--v7-s5)}
.crumb{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-faint);margin-bottom:var(--v7-s4)}
.crumb a{color:var(--eq-forest)}
.status-tag{display:inline-block;justify-self:start;font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-muted);white-space:nowrap;
  border:var(--v7-rule) solid var(--eq-hair-strong);border-radius:var(--eq-radius-button);padding:var(--v7-s2) var(--v7-s3)}
.section-gap{margin-top:var(--v7-s8)}

/* portfolios: rows on one grid, not cards */
.plist{border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.prow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr) minmax(0,2fr) 200px;gap:var(--eq-gap);align-items:center;padding:var(--v7-s5) var(--v7-s3) var(--v7-s5) 0;border-bottom:var(--v7-rule) solid var(--eq-hair)}
.prow h3{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track)}
.prow .what{font:var(--eq-small);color:var(--eq-ink-muted)}
.prow .min{font:var(--eq-label);font-family:var(--eq-sans)}
.prow .min span{display:block;font:var(--eq-fine);color:var(--eq-ink-faint)}
.prow > :last-child{justify-self:end}
.prow.fits{background:linear-gradient(90deg,var(--eq-fog-2),transparent)}
.prow.fits .min{color:var(--eq-forest)}
@container (max-width:780px){.prow{grid-template-columns:1fr;gap:var(--v7-s2)}.prow > :last-child{justify-self:start;margin-top:var(--v7-s2)}}
@media (prefers-reduced-motion:no-preference){.prow{transition:background var(--eq-hover) var(--eq-ease)}}

/* forms */
legend{font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-ink);padding:0;margin-bottom:var(--v7-s3)}
.field{display:grid;gap:var(--v7-s2)}
.field label{font:var(--eq-label);font-family:var(--eq-sans)}
.hint{font:var(--eq-fine);color:var(--eq-ink-faint);max-width:var(--v7-measure)}
.field input,.field select{height:var(--v8-field-h);padding:0 var(--v7-s4);font:var(--eq-body);font-family:var(--eq-sans);color:var(--eq-ink);width:100%;
  background:var(--eq-fog-2);border:var(--v7-rule) solid var(--eq-ink-faint);border-radius:var(--eq-radius-button);
  transition:border-color var(--eq-hover) var(--eq-ease)}
.field input:hover,.field select:hover{border-color:var(--eq-ink)}
.field input[readonly]{background:transparent;border-style:dashed;color:var(--eq-ink-muted)}
::placeholder{color:var(--eq-ink-faint);opacity:1}
.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:var(--eq-ink);border-width:2px}
.err{font:var(--eq-small);color:var(--eq-ink);display:flex;gap:var(--v7-s2);align-items:baseline}
.err::before{content:"!" / "";flex:none;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--eq-ink);color:var(--eq-fog);font:var(--eq-fine);font-weight:500}
/* live regions stay rendered while empty (so screen readers announce what is written into them); an empty one takes no room */
.result:empty,.pending:empty{padding:0;border:0}
.form > .form-err:empty,.form > .result:empty{margin-top:calc(-1 * var(--v7-s5))}
.field > .field-msg:empty{margin-top:calc(-1 * var(--v7-s2))}
.status > .pending:empty{margin-top:calc(-1 * var(--v7-s4))}
.act-panel > .result:empty{margin-top:calc(-1 * var(--v7-s4))}
.act-list .say:empty{margin-top:calc(-1 * var(--v7-s3))}
.form-err,.field-msg{font:var(--eq-small);color:var(--eq-ink)}
.result,.pending,.say{font:var(--eq-small);color:var(--eq-forest);max-width:var(--v7-measure)}
.result{padding-top:var(--v7-s3);border-top:var(--v7-rule) solid var(--eq-hair)}
@media (prefers-reduced-motion:no-preference){.result:not(:empty),.pending:not(:empty),.say:not(:empty),.act-panel:not([hidden]){animation:v8-in var(--v7-answer) var(--eq-ease) both}}
.check{display:flex;gap:var(--v7-s3);align-items:flex-start;font:var(--eq-small);color:var(--eq-ink-muted);max-width:var(--v7-measure)}
.check input{width:var(--v7-s5);height:var(--v7-s5);margin:0;accent-color:var(--eq-forest);flex:none}
.check + .err{margin-top:calc(-1 * var(--v7-s3))}
.form{display:grid;gap:var(--v7-s5);max-width:var(--v8-portal-max)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--v7-s4)}
@container (max-width:520px){.pair{grid-template-columns:1fr}}
.step2{display:grid;gap:var(--v7-s5)}
.step2[hidden]{display:none}
.inline{display:flex;flex-wrap:wrap;gap:var(--v7-s3);align-items:start}
.inline .field{flex:0 1 320px}
.inline .btn{margin-top:calc(var(--v7-s2) + 16px * 1.3)}
.basis{font:var(--eq-fine);color:var(--eq-ink-faint);margin-top:var(--v7-s3);max-width:var(--v7-measure)}

/* figures with their basis: hairlines between, placeholders as dashed boxes at figure size */
.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--v8-figure-row-min),1fr));border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.figs > div{padding:var(--v7-s5) var(--v7-s5) var(--v7-s5) var(--v7-s5);border-bottom:var(--v7-rule) solid var(--eq-hair);border-left:var(--v7-rule) solid var(--eq-hair)}
.figs > div:first-child{border-left:0;padding-left:0}
.figs .v{font-weight:300;font-size:var(--v7-figure-xl-size);line-height:1;font-family:var(--eq-sans);letter-spacing:var(--eq-figure-xl-track);font-variant-numeric:tabular-nums}
.figs .v .of{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track);color:var(--eq-ink-faint)}
.ph-box{display:inline-block;color:var(--eq-ink-faint);border:var(--v7-rule) dashed var(--eq-ink-faint);border-radius:var(--eq-radius-button);padding:var(--v7-s1) var(--v7-s2)}
.figs .k{font:var(--eq-label);font-family:var(--eq-sans);margin-top:var(--v7-s3)}
.figs .b{font:var(--eq-fine);color:var(--eq-ink-faint);margin-top:var(--v7-s1)}
@container (max-width:780px){.figs > div{border-left:0;padding-left:0}}
.chart{margin:0;min-width:0}
.chart img{width:100%;height:auto}
.chart figcaption{font:var(--eq-fine);color:var(--eq-ink-faint);margin-top:var(--v7-s3);max-width:var(--v7-measure)}
.vid{display:block;width:100%;height:auto;background:var(--eq-fog)}
.vid-ctl{font:var(--eq-fine);font-family:var(--eq-sans);color:var(--eq-forest);background:none;border:0;padding:0;margin-left:var(--v7-s2);text-decoration:underline;text-underline-offset:.2em;cursor:pointer;min-height:24px}
.vid-ctl[hidden]{display:none}
.anim.board{max-width:880px;margin:var(--eq-head-gap) auto 0}
.anim.board .vid{background:var(--eq-obsidian)}
.band .chart figcaption{color:var(--eq-light-faint)}
.band .vid-ctl{color:var(--eq-light)}
.band .cftc{background:var(--eq-obsidian-raised);border-top-color:var(--eq-hair-dark-strong);margin-left:auto;margin-right:auto;max-width:880px}
.band .cftc p{color:var(--eq-light)}
.band .cftc p + p{color:var(--eq-light-muted)}
.band .cftc a{color:var(--eq-light)}
#evidence .anim{margin-top:0}
.charts{display:grid;grid-template-columns:1fr 1fr;gap:var(--eq-gap-wide) var(--eq-gap)}
.charts .wide{grid-column:1/-1}
@container (max-width:700px){.charts{grid-template-columns:1fr}}
.disclaimer,.cftc{background:var(--eq-fog-2);border-top:var(--v7-rule) solid var(--eq-hair-strong);padding:var(--v7-s5);display:grid;gap:var(--v7-s3);max-width:var(--v8-seven)}
.disclaimer h2,.disclaimer h3{font:var(--eq-label);font-family:var(--eq-sans);letter-spacing:0}
.disclaimer p{font:var(--eq-small);color:var(--eq-ink-muted);max-width:var(--v7-measure)}
.cftc{margin-top:var(--v7-s7)}
.cftc p{font:var(--eq-body);color:var(--eq-ink);max-width:var(--v7-measure)}
.cftc p + p{font:var(--eq-small);color:var(--eq-ink-muted)}
.cftc-quote{margin:0;padding:var(--v7-s4) var(--v7-s5);background:var(--eq-fog-2);border-top:var(--v7-rule) solid var(--eq-hair-strong);max-width:var(--v7-measure);color:var(--eq-ink)}
@container (max-width:880px){.narrow,.faq,.disclaimer,.cftc{max-width:none}}

/* the dial: an instrument */
.dial-box{display:grid;grid-template-columns:5fr 7fr;gap:var(--eq-gap-wide);align-items:center}
@container (max-width:880px){.dial-box{grid-template-columns:1fr}}
.dial-inst{padding:var(--v7-s6) var(--v7-s6) var(--v7-s5)}
.dial-inst .now{font-weight:300;font-size:var(--v7-figure-xl-size);line-height:1;font-family:var(--eq-sans);letter-spacing:var(--eq-figure-xl-track);color:var(--eq-light)}
.dial-inst input[type=range]{width:100%;accent-color:var(--eq-mint);margin:var(--v7-s2) 0}
.dial-inst .ticks{display:flex;justify-content:space-between;font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-light-faint);margin-top:var(--v7-s5)}
.dial-inst label.ticks{color:var(--eq-light-muted)}
.presets{display:flex;flex-wrap:wrap;gap:var(--v7-s2);margin-top:var(--v7-s4)}
.presets button{font:var(--eq-mono-data);font-family:var(--eq-mono);color:var(--eq-light-muted);background:transparent;border:var(--v7-rule) solid var(--eq-hair-dark-strong);
  border-radius:var(--eq-radius-button);min-height:var(--v7-tap);padding:0 var(--v7-s3);cursor:pointer;transition:border-color var(--eq-hover) var(--eq-ease)}
.presets button:hover{border-color:var(--eq-light-faint)}
.presets button[aria-pressed="true"]{color:var(--eq-mint);border-color:var(--eq-mint)}
.dial-out{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--eq-gap);margin-top:var(--v7-s6);padding-top:var(--v7-s4);border-top:var(--v7-rule) solid var(--eq-hair-dark)}
.dial-out .v{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track);color:var(--eq-light)}
.dial-out .v.gain{color:var(--eq-light-muted)}
.dial-out .k{font:var(--eq-fine);color:var(--eq-light-faint);margin-top:var(--v7-s1)}
@container (max-width:440px){.dial-out{grid-template-columns:1fr}}

/* portal */
.app-top{border-bottom:var(--v7-rule) solid var(--eq-hair);background:var(--v7-frost);position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(var(--v7-blur));backdrop-filter:blur(var(--v7-blur))}
.app-top .wrap{height:var(--v7-nav-h);display:flex;align-items:center;justify-content:space-between;gap:var(--eq-gap)}
.app-top img{height:var(--v7-logo-h);width:auto}
.app-top .who{font:var(--eq-small);color:var(--eq-ink-muted)}
.app-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0 var(--v7-s4);align-items:center;font:var(--eq-small)}
.app-nav a{color:var(--eq-ink);display:inline-flex;align-items:center;min-height:var(--v7-tap)}
@media (max-width:560px){.app-nav .who{display:none}.app-nav{gap:0 var(--v7-s3)}}
.stepper{list-style:none;margin:0;padding:var(--v7-s5) 0 0;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--v7-s3)}
.stepper li{position:relative;border-top:var(--v7-rule) solid var(--eq-hair-strong);padding-top:var(--v7-s3);font:var(--eq-small);color:var(--eq-ink-faint)}
.stepper li::before{content:"";position:absolute;top:calc(var(--v7-dot) / -2 - var(--v7-rule) / 2);left:0;width:var(--v7-dot);height:var(--v7-dot);border-radius:50%;background:var(--eq-fog);border:var(--v7-rule) solid var(--eq-ink-faint)}
.stepper li.done{color:var(--eq-ink-muted)}
.stepper li.done::before{background:var(--eq-forest);border-color:var(--eq-forest)}
.stepper li[aria-current="step"]{color:var(--eq-ink);border-top:2px solid var(--eq-forest)}
.stepper li[aria-current="step"]::before{background:var(--eq-forest);border-color:var(--eq-forest);box-shadow:0 0 0 3px var(--eq-fog),0 0 0 4px var(--eq-forest)}
.stepper .n{display:block;font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-forest)}
.step-now{display:none;font:var(--eq-small);color:var(--eq-ink);margin-top:var(--v7-s3)}
@media (max-width:560px){.stepper .t{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.step-now{display:block}}
.app-main{max-width:var(--v8-portal-max);margin:0 auto;padding:var(--v7-s8) var(--v7-margin) var(--v7-section)}
.app-main h1{font-weight:400;font-size:var(--v7-title-size);line-height:1.05;letter-spacing:var(--eq-title-track);max-width:none}
.app-main > .lead{margin:var(--v7-s4) 0 var(--v7-s7)}
.app-main section{padding:0}
.portal-sec{padding-top:var(--v7-s7)!important;display:grid;gap:var(--v7-s3)}
.back{margin-top:var(--v7-s5);font:var(--eq-small)}
.back a{display:inline-flex;align-items:center;min-height:var(--v7-tap)}
.label-h{font:var(--eq-label);font-family:var(--eq-sans);letter-spacing:0}
.end-h{margin-top:var(--v7-s5);padding-top:var(--v7-s4);border-top:var(--v7-rule) solid var(--eq-hair-strong)}
fieldset.choice,fieldset.dial-pick{border:0;padding:0;margin:0;min-width:0}
.choice{display:grid;gap:0}
.choice label{display:grid;grid-template-columns:auto 1fr auto;gap:var(--v7-s4);align-items:center;padding:var(--v7-s5) var(--v7-s3) var(--v7-s5) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);cursor:pointer;transition:background var(--eq-hover) var(--eq-ease)}
.choice label:first-of-type{border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.choice label:hover{background:var(--eq-fog-2)}
.choice input{accent-color:var(--eq-forest);width:var(--v7-s5);height:var(--v7-s5);margin:0}
.choice .name{font:var(--eq-heading);letter-spacing:var(--eq-heading-track)}
.choice .meta{font:var(--eq-small);color:var(--eq-ink-muted)}
.choice .price{font:var(--eq-label);font-family:var(--eq-sans);text-align:right}
.choice label.off{cursor:not-allowed;color:var(--eq-ink-faint)}
.choice label.off:hover{background:transparent}
.choice label.off .meta{color:var(--eq-ink-faint)}
.status{display:grid;gap:var(--v7-s4)}
.light{justify-self:start;display:inline-flex;align-items:center;gap:var(--v7-s3);font:var(--eq-mono-data);font-family:var(--eq-mono);color:var(--eq-light);
  background:var(--eq-instrument);border-radius:var(--eq-radius-instrument);padding:var(--v7-s3) var(--v7-s4);box-shadow:var(--eq-shadow-instrument)}
.light::before{content:"";flex:none;width:var(--v8-chip-dot);height:var(--v8-chip-dot);border-radius:50%;background:var(--eq-mint)}
.light.wait::before{background:transparent;border:var(--v7-rule) solid var(--eq-light-muted)}
/* Ping: the live dot only, three soft pulses, then still */
@media (prefers-reduced-motion:no-preference){.light:not(.wait)::before{animation:v8-ping var(--eq-sweep) ease-in-out 3}
  @keyframes v8-ping{0%,100%{opacity:1}50%{opacity:.35}}}
.kv{border-top:var(--v7-rule) solid var(--eq-hair-strong);margin:0}
.kv > div{display:flex;justify-content:space-between;gap:var(--v7-s4);padding:var(--v7-s4) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);font:var(--eq-small)}
.kv dt{color:var(--eq-ink-muted)}
.kv dd{margin:0;color:var(--eq-ink);text-align:right}
.kv.prose > div{display:grid;grid-template-columns:140px 1fr}
.kv.prose dd{text-align:left;color:var(--eq-ink-muted)}
@container (max-width:440px){.kv.prose > div{grid-template-columns:1fr;gap:var(--v7-s1)}}
.pending{padding:var(--v7-s3) var(--v7-s4);background:var(--eq-fog-2);border-top:var(--v7-rule) solid var(--eq-forest);color:var(--eq-ink)}
.pending:focus{outline:none}
.proto-only{font:var(--eq-fine)}
.proto-only[hidden]{display:none}
.proto-note{font:var(--eq-fine);color:var(--eq-ink-faint);border-top:var(--v7-rule) dashed var(--eq-ink-faint);padding-top:var(--v7-s3);margin-top:var(--v7-s8);max-width:var(--v7-measure)}
.how{margin:0;padding-left:1.2em;display:grid;gap:var(--v7-s2);max-width:var(--v7-measure)}
.qr{width:var(--v8-qr);height:var(--v8-qr);display:grid;place-items:center;border:var(--v7-rule) dashed var(--eq-ink-faint);border-radius:var(--eq-radius-button);background:var(--eq-fog-2)}
.dial-pick{display:grid;gap:var(--v7-s3)}
.dial-pick .presets{margin-top:0}
.dial-pick .presets label{display:inline-flex;align-items:center;gap:var(--v7-s2);min-height:var(--v7-tap);padding:0 var(--v7-s4);border:var(--v7-rule) solid var(--eq-ink-faint);border-radius:var(--eq-radius-button);font:var(--eq-mono-data);font-family:var(--eq-mono);font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--eq-hover) var(--eq-ease)}
.dial-pick .presets label:hover{border-color:var(--eq-ink)}
.dial-pick .presets input{accent-color:var(--eq-forest);margin:0}
.dial-pick .presets label:has(input:checked){border-color:var(--eq-forest);color:var(--eq-forest);border-width:2px}
.dial-pick .current{font:var(--eq-small);color:var(--eq-ink-muted)}
.field[hidden]{display:none}
/* controls as rows: name, one-line consequence, button on the right; closing and leaving grouped last */
.act-list{list-style:none;margin:0;padding:0;border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.act-list > li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--v7-s3) var(--v7-s4);padding:var(--v7-s4) 0;border-bottom:var(--v7-rule) solid var(--eq-hair)}
.act-list > li[hidden]{display:none}
.act-list > li > div{display:grid;gap:var(--v7-s1);flex:1 1 300px}
.act-list > li > div b{font:var(--eq-label);font-family:var(--eq-sans)}
.act-list > li > div span{font:var(--eq-small);color:var(--eq-ink-muted)}
.act-list > li > .say{flex-basis:100%}
.act-list.ends .btn{background:transparent;color:var(--eq-ink-muted)}
.act-list.ends .btn:hover{color:var(--eq-ink)}
.act-panel{flex-basis:100%;display:grid;gap:var(--v7-s4);padding:var(--v7-s5);background:var(--eq-fog-2);border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.act-panel[hidden]{display:none}
.act-panel h3{font:var(--eq-heading);letter-spacing:var(--eq-heading-track)}
.act-panel h3:focus{outline:none}
.act-panel .summary{max-width:var(--v7-measure)}
.act-panel .server{font:var(--eq-small);color:var(--eq-ink-muted)}

/* legal pages and the tour */
.doc-grid{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:var(--v7-s8);align-items:start}
.toc{position:sticky;top:calc(var(--v7-nav-h) + var(--v7-s5))}
.toc summary{font:var(--eq-label);font-family:var(--eq-sans);cursor:pointer;min-height:var(--v7-tap);display:flex;align-items:center}
.toc ol{list-style:none;margin:var(--v7-s2) 0 0;padding:0;display:grid;gap:0;font:var(--eq-small)}
.toc a{display:inline-flex;align-items:center;min-height:32px;color:var(--eq-ink-muted)}
.toc a:hover{color:var(--eq-ink)}
.doc{display:grid;gap:var(--v7-s6);min-width:0}
.doc section{display:grid;gap:var(--v7-s3);padding-top:var(--v7-s5);border-top:var(--v7-rule) solid var(--eq-hair)}
.doc section:first-child{border-top:0;padding-top:0}
.doc h2{font:var(--eq-heading);letter-spacing:var(--eq-heading-track)}
.doc p,.doc li{max-width:var(--v7-measure)}
.doc ul{margin:0;padding-left:1.2em;display:grid;gap:var(--v7-s2)}
.doc .form-text{padding:var(--v7-s4) var(--v7-s5);border:var(--v7-rule) dashed var(--eq-ink-faint);border-radius:var(--eq-radius-button)}
.ctable-wrap{max-width:100%}
.doc table{border-collapse:collapse;font:var(--eq-small)}
.doc th,.doc td{text-align:left;padding:var(--v7-s2) var(--v7-s4) var(--v7-s2) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);vertical-align:top}
@media (max-width:860px){.doc-grid{grid-template-columns:1fr;gap:var(--v7-s5)}.toc{position:static;border-bottom:var(--v7-rule) solid var(--eq-hair)}.toc a{min-height:var(--v7-tap)}}
.tour-group{padding:var(--v7-s7) 0 0}
.tour-group h2{font:var(--eq-heading);letter-spacing:var(--eq-heading-track);padding-bottom:var(--v7-s3);border-bottom:var(--v7-rule) solid var(--eq-hair)}
.tour-list{list-style:none;margin:0;padding:0}
.tour-list li{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:var(--v7-s5);padding:var(--v7-s4) 0;border-bottom:var(--v7-rule) solid var(--eq-hair)}
.tour-list a{display:flex;gap:var(--v7-s3);align-items:baseline;min-height:var(--v7-tap)}
.tour-list .tn{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-faint);font-variant-numeric:tabular-nums}
.tour-list .tt{font:var(--eq-heading)}
.tour-list p{margin:0;color:var(--eq-ink-muted);max-width:var(--v7-measure)}
@media (max-width:700px){.tour-list li{grid-template-columns:1fr;gap:var(--v7-s2)}}

/* the portal's slim fog footer */
.app-foot{border-top:var(--v7-rule) solid var(--eq-hair);padding:var(--v7-s5) 0 var(--v7-s7);font:var(--eq-fine);color:var(--eq-ink-faint)}
.app-foot ul{list-style:none;margin:0 0 var(--v7-s2);padding:0;display:flex;flex-wrap:wrap;gap:0 var(--v7-s4)}
.app-foot a{color:var(--eq-ink-muted);display:inline-flex;align-items:center;min-height:32px}

/* reduced motion: everything appears in its final state, colour fades included */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0s!important;animation:none!important}}

/* ===== v2 (2026-10-25): every chart drawn from the data file as SVG; motion = Draw, Wipe, Rise, Sweep, once when seen ===== */
@property --wp{syntax:'<percentage>';inherits:false;initial-value:0%}
:root{--v9-draw:2.4s;--v9-wipe:2.6s;--v9-sweep:3.2s;--v9-rise:.9s;--v9-grid:32px}
.viz{display:block;width:100%;height:auto;overflow:visible;font-family:var(--eq-mono)}
.viz text{font:var(--eq-mono-label);font-family:var(--eq-mono);fill:var(--eq-ink-faint)}
.viz .lab{font-size:12px}
.viz .ink{fill:var(--eq-ink)}
.viz .big{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track);fill:var(--eq-ink);font-size:26px}
.viz .yr{font-family:var(--eq-sans);font-size:20px;font-weight:300;letter-spacing:-.02em;fill:var(--eq-ink)}
.viz .grid,.viz .axis{stroke:var(--eq-hair);stroke-width:1;fill:none}
.viz .band{fill:var(--eq-data-band);opacity:.85}
.viz .median{stroke:var(--eq-data-bar);stroke-width:1;fill:none;opacity:.6}
.viz .line{stroke:var(--eq-data-line);stroke-width:2;fill:none;stroke-linejoin:round;stroke-linecap:round}
.viz .ddfill{fill:var(--eq-data-grey);opacity:.45}
.viz .ddline{stroke:var(--eq-ink-faint);stroke-width:1.2;fill:none}
.viz .mark{fill:var(--eq-ink);stroke:var(--eq-fog);stroke-width:2}
.viz .end{fill:var(--eq-forest);stroke:var(--eq-fog);stroke-width:2}
.viz .mc95{stroke:var(--eq-ink-faint);stroke-width:1;stroke-dasharray:4 4;fill:none}
.viz .hist{stroke:var(--eq-data-bar);stroke-width:.8;fill:none;opacity:.22}
.viz .edge{stroke:var(--eq-ink-faint);stroke-width:1;stroke-dasharray:4 4;fill:none}
.viz .bar-up{fill:var(--eq-data-bar)}
.viz .bar-dn{fill:var(--eq-data-grey)}
.viz .avg{stroke:var(--eq-ink);stroke-width:1;stroke-dasharray:3 3}
.viz .cell-up{fill:var(--eq-data-bar)}
.viz .cell-dn{fill:var(--eq-data-grey)}
.viz .cell-0{fill:var(--eq-hair)}
.viz .cellt{font-size:11px;fill:var(--eq-ink)}
.viz .wick{stroke:var(--eq-ink-faint);stroke-width:1}
.viz .c-up{fill:var(--eq-data-bar)}
.viz .c-dn{fill:var(--eq-data-grey)}
.viz .entry{stroke:var(--eq-ink);stroke-width:1.5}
.viz .stopl{stroke:var(--eq-ink-faint);stroke-width:1.2;stroke-dasharray:5 4}
.viz .targ{stroke:var(--eq-forest);stroke-width:1.5;stroke-dasharray:5 4}
.viz .step{fill:var(--eq-forest);stroke:var(--eq-fog);stroke-width:2}
.viz .runner{fill:var(--eq-forest);opacity:.22}
.viz .dot{fill:var(--eq-data-grey);opacity:.7}
.viz .halo{fill:var(--eq-data-band)}
.viz .dot-on{fill:var(--eq-forest)}
.viz .track{stroke:var(--eq-hair-strong);stroke-width:8;fill:none;stroke-linecap:round}
.viz .fill{stroke:var(--eq-forest);stroke-width:8;fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.viz .tick{stroke:var(--eq-ink-faint);stroke-width:1.5}
.viz .tick.big{stroke:var(--eq-ink);stroke-width:2}
.viz .knob{fill:var(--eq-forest);stroke:var(--eq-fog);stroke-width:3}
.viz .knob-halo{fill:var(--eq-data-band)}
.viz .needle{transition:transform var(--v9-sweep) var(--eq-ease)}
.viz .fill{transition:stroke-dashoffset var(--v9-sweep) var(--eq-ease)}
/* the same charts on obsidian */
.night .viz text,.night .viz .lab{fill:var(--eq-light-faint)}
.night .viz .ink,.night .viz .big,.night .viz .yr,.night .viz .cellt{fill:var(--eq-light)}
.night .viz .grid,.night .viz .axis{stroke:var(--eq-hair-dark-strong)}
.night .viz .line{stroke:var(--eq-light)}
.night .viz .band{fill:var(--eq-obsidian-raised);opacity:1}
.night .viz .hist{stroke:var(--eq-mint);opacity:.16}
.night .viz .end,.night .viz .mark{fill:var(--eq-mint);stroke:var(--eq-obsidian)}
.night .viz .step,.night .viz .dot-on,.night .viz .knob{fill:var(--eq-mint);stroke:var(--eq-obsidian)}
.night .viz .runner,.night .viz .halo,.night .viz .knob-halo{fill:var(--eq-mint);opacity:.18}
.night .viz .dot{fill:var(--eq-light-faint);opacity:.5}
.night .viz .wick{stroke:var(--eq-light-faint)}
.night .viz .c-up{fill:var(--eq-mint)}
.night .viz .c-dn{fill:var(--eq-light-faint)}
.night .viz .entry{stroke:var(--eq-light)}
.night .viz .targ{stroke:var(--eq-mint)}
.night .viz .stopl{stroke:var(--eq-light-faint)}
.night .viz .track{stroke:var(--eq-hair-dark-strong)}
.night .viz .fill{stroke:var(--eq-mint)}
.night .viz .tick{stroke:var(--eq-light-faint)}
.night .viz .tick.big{stroke:var(--eq-light)}
.night .viz .mc95,.night .viz .edge{stroke:var(--eq-light-faint)}
.night .viz .ddfill{fill:var(--eq-light-faint);opacity:.3}
.night .viz .ddline{stroke:var(--eq-light-muted)}
/* motion, once when seen: before "in" everything waits in its start state (no-preference only) */
@media (prefers-reduced-motion:no-preference){
  [data-play] .draw,[data-play].draw{stroke-dasharray:1;stroke-dashoffset:1}
  [data-play].in .draw,[data-play].in.draw{stroke-dashoffset:0;transition:stroke-dashoffset var(--v9-draw) var(--eq-ease) var(--d,0s)}
  [data-play] .wipe{-webkit-mask-image:linear-gradient(90deg,#000 calc(var(--wp) - 8%),transparent var(--wp));mask-image:linear-gradient(90deg,#000 calc(var(--wp) - 8%),transparent var(--wp));--wp:0%}
  [data-play].in .wipe{--wp:112%;transition:--wp var(--v9-wipe) linear}
  [data-play] .rise{opacity:0;transform:translateY(8px)}
  [data-play].in .rise{opacity:1;transform:none;transition:opacity var(--v9-rise) var(--eq-ease) var(--d,0s),transform var(--v9-rise) var(--eq-ease) var(--d,0s)}
  [data-play] .viz .rise{transform:none;transition-property:opacity}
  [data-play] .runner{transition:transform var(--v9-draw) linear}
  [data-play].in .runner{transform:translateX(1128px)}
}
@media (prefers-reduced-motion:reduce){
  [data-play] .runner{transform:translateX(1128px)}
  [data-play] .fill{stroke-dashoffset:1}
  .hero .engraving .hist{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 3.2s var(--eq-ease)}
  .hero.in .engraving .hist{stroke-dashoffset:0}
  .hero .engraving .line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.4s var(--eq-ease) 1.2s}
  .hero.in .engraving .line{stroke-dashoffset:0}
}
.chart-img{position:relative}
.stamp{position:absolute;left:var(--v7-s3);top:var(--v7-s3);z-index:2;font:var(--eq-fine);font-weight:500;font-family:var(--eq-sans);color:var(--eq-ink);background:var(--eq-fog-2);
  border:var(--v7-rule) dashed var(--eq-ink-faint);border-radius:var(--eq-radius-button);padding:var(--v7-s1) var(--v7-s2);pointer-events:none}
.night .stamp{color:var(--eq-light);background:var(--eq-obsidian-raised);border-color:var(--eq-light-faint)}
.chart-img.stamp-in{padding-top:var(--v7-s7)}
.chart figcaption .ph{margin-left:var(--v7-s1)}

/* the engraving hero (brand book p21): the resampled histories fill the right and dissolve into the fog; one light follows the cursor */
.hero{position:relative;overflow:hidden}
.hero .engrave{position:absolute;top:0;right:0;bottom:0;width:66%;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34%,#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 34%,#000 100%)}
.hero .engrave > div{position:absolute;inset:0}
.hero .engraving{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%)}   /* the drawing fades top and bottom; its labels do not (v13) */
.hero .engraving{position:absolute;inset:0;width:100%;height:100%}
.hero .engraving .hist{stroke:var(--eq-forest);opacity:.26;stroke-width:1}
.hero .engraving .line{stroke:var(--eq-ink)}
.hero .engraving .shock{fill:var(--eq-fog);stroke:var(--eq-ink);stroke-width:1.5}
.hero .engraving .lab{font-size:13px}
.hero .lens{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .9s var(--eq-ease);
  background:linear-gradient(90deg,transparent calc(var(--mx,60%) - 300px),rgba(255,255,255,.22) var(--mx,60%),transparent calc(var(--mx,60%) + 300px))}
.hero.lit .lens{opacity:1}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;padding:clamp(var(--v7-hero-top-min),8vw,var(--v7-hero-top-max)) 0 var(--v7-s8)}
.hero .fcap{font:var(--eq-fine);color:var(--eq-ink-faint);margin-top:var(--v7-s6)}
@container (min-width:721px){.hero-copy > *{position:relative;width:fit-content;padding-right:3.5rem}
.hero-copy > .lead{max-width:calc(var(--v7-lead-measure) + 3.5rem)}.hero h1{max-width:calc(8.5em + 3.5rem)}
.hero-copy > *::before{content:"";position:absolute;inset:-1.4em 0 -1.4em -2em;z-index:-1;pointer-events:none;background:var(--eq-fog);opacity:.82;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 2em,#000 calc(100% - 3.5rem),transparent),linear-gradient(180deg,transparent,#000 1.4em,#000 calc(100% - 1.4em),transparent);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 2em,#000 calc(100% - 3.5rem),transparent),linear-gradient(180deg,transparent,#000 1.4em,#000 calc(100% - 1.4em),transparent);mask-composite:intersect}}
@container (max-width:720px){.hero .engrave{width:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 55%);mask-image:linear-gradient(90deg,transparent 0,#000 55%)}
  .hero .engraving .hist{opacity:.18}.hero .engraving .line,.hero .engraving .shock,.hero .engraving .end{display:none}.hero-grid{grid-template-columns:1fr}.hero .lens{display:none}}

/* the monthly ticker: a quiet strip, every month of the sample series and each year's total */
.ticker{border-top:var(--v7-rule) solid var(--eq-hair);border-bottom:var(--v7-rule) solid var(--eq-hair);overflow-x:auto;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker::-webkit-scrollbar{display:none}
.tk{display:flex;gap:0;padding:var(--v7-s3) var(--v7-margin);width:max-content;font:var(--eq-mono-data);font-family:var(--eq-mono);white-space:nowrap}
.tk > span{display:inline-flex;align-items:baseline;gap:var(--v7-s2);padding-right:var(--v7-s7);color:var(--eq-ink-faint)}
.tk b{font-weight:400;color:var(--eq-ink-muted)}
.tk b.up{color:var(--eq-forest)}
.tk .yr{color:var(--eq-ink);padding-right:var(--v7-s8)}
.tk .yr b{font-weight:500;color:var(--eq-ink)}
.tk .yr b.up{color:var(--eq-forest)}
.tk .yr i{font-style:normal;color:var(--eq-ink-faint)}
.ticker-note{font:var(--eq-fine);color:var(--eq-ink-faint);padding:var(--v7-s2) 0 0}

/* the engine band: the log, the trade chart and the path */
.machine{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--eq-gap-wide);align-items:start}
@container (max-width:880px){.machine{grid-template-columns:1fr}}
.band .instrument{box-shadow:none;border:var(--v7-rule) solid var(--eq-hair-dark-strong)}
.band .chart figcaption,.band .fine{color:var(--eq-light-faint)}
.band .chart .stamp{color:var(--eq-light);background:var(--eq-obsidian-raised);border-color:var(--eq-light-faint)}
.band .ctl{font:var(--eq-small);color:var(--eq-light-faint);margin-top:var(--v7-s7);padding-top:var(--v7-s4);border-top:var(--v7-rule) solid var(--eq-hair-dark);max-width:var(--v7-measure)}

/* the formula board: the nine tests as mathematics on obsidian with a faint 32px grid (brand book p21) */
/* decision 50: no box, no border - the board sits on a night ground that falls out of the fog and rises back into it, edge to edge */
.band + .pipeline{padding-top:var(--v7-s8)}
.board-ground{--ramp:clamp(96px,11vw,176px);position:relative;color:var(--eq-light);
  background:var(--v8-ramp) top / 100% var(--ramp) no-repeat,var(--v8-ramp-up) bottom / 100% var(--ramp) no-repeat,var(--eq-obsidian);
  padding:var(--ramp) 0 var(--ramp)}
.board-ground::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--eq-hair-dark) 1px,transparent 1px),linear-gradient(90deg,var(--eq-hair-dark) 1px,transparent 1px);background-size:var(--v9-grid) var(--v9-grid);
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 var(--ramp),#000 calc(100% - var(--ramp)),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 var(--ramp),#000 calc(100% - var(--ramp)),transparent 100%)}
.board-ground + .wrap .dots-cap{margin-top:var(--v7-s7)}
.board{position:relative;color:var(--eq-light)}
.board ol{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--v7-s7) var(--eq-gap-wide)}
.board li{display:grid;gap:var(--v7-s3);align-content:start;min-width:0;container-type:inline-size}
.board .bh{font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-light);letter-spacing:0;display:flex;gap:var(--v7-s3);align-items:baseline}
.board .bh .n{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-mint)}
.board math{font-family:var(--eq-math);font-size:min(19px,4.5cqi);color:var(--eq-light);max-width:100%;display:block;padding:var(--v7-s2) 0}
.board .pair{display:flex;flex-wrap:wrap;gap:0 var(--v7-s5);align-items:baseline}.board .pair math{width:auto;max-width:100%}
.board .bp{font:var(--eq-small);font-style:italic;color:var(--eq-light-muted);max-width:52ch}
.board .bp em{font-style:normal;color:var(--eq-light)}
.board .tbl{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:var(--v7-s1) var(--v7-s4);font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-light-faint);max-width:360px}
.board .tbl b{color:var(--eq-mint);font-weight:400}
.board .peaks{display:flex;gap:var(--v7-s6);align-items:flex-end;color:var(--eq-light-faint);font:var(--eq-mono-label);font-family:var(--eq-mono)}
.board .peaks svg{width:72px;height:36px;display:block;margin-bottom:var(--v7-s1)}
.board .peaks path{fill:none;stroke:var(--eq-light-muted);stroke-width:1.5}
.board .peaks .sel path{stroke:var(--eq-mint)}
.board .tags{display:flex;gap:var(--v7-s2);flex-wrap:wrap;font:var(--eq-mono-label);font-family:var(--eq-mono)}
.board .tags span{border:var(--v7-rule) solid var(--eq-hair-dark-strong);border-radius:var(--eq-radius-button);padding:var(--v7-s1) var(--v7-s2);color:var(--eq-light-faint)}
.board .tags span.on{border-color:var(--eq-mint);color:var(--eq-mint)}
.board .bfoot{position:relative;margin-top:var(--v7-s7);padding-top:var(--v7-s4);border-top:var(--v7-rule) solid var(--eq-hair-dark);font:var(--eq-fine);color:var(--eq-light-faint);display:flex;justify-content:space-between;gap:var(--v7-s4);flex-wrap:wrap}
@container (max-width:780px){.board ol{grid-template-columns:1fr}}
.band .stamp-row{display:flex;justify-content:flex-end;margin-top:var(--v7-s3)}
.band .stamp-row .stamp{position:static}

/* the candidates (1 in 200) and the shocks */
.dots-cap{display:flex;justify-content:space-between;align-items:baseline;gap:var(--v7-s4);flex-wrap:wrap;margin:var(--eq-head-gap) 0 var(--v7-s3)}
.dots-cap h3{font:var(--eq-heading);letter-spacing:var(--eq-heading-track)}
.dots-cap span{font:var(--eq-fine);color:var(--eq-ink-faint)}
.shocks{margin-top:var(--eq-head-gap)}
.shocks h3{font:var(--eq-heading);letter-spacing:var(--eq-heading-track)}
.shocks > p{font:var(--eq-small);color:var(--eq-ink-muted);margin-top:var(--v7-s2);max-width:var(--v7-lead-measure)}
.sk{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--eq-gap);margin-top:var(--v7-s6);border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.sk > div{padding-top:var(--v7-s4);display:grid;gap:var(--v7-s2);align-content:start}
.sk .d{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-faint)}
.sk h3{font:var(--eq-label);font-family:var(--eq-sans);letter-spacing:0}
.sk b{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track);color:var(--eq-ink-muted);font-variant-numeric:tabular-nums}
.sk b.up{color:var(--eq-forest)}
.sk p{font:var(--eq-fine);color:var(--eq-ink-faint)}
@container (max-width:880px){.sk{grid-template-columns:repeat(3,1fr)}}
@container (max-width:520px){.sk{grid-template-columns:repeat(2,1fr)}}
.sk .rise{--d:0ms}.sk > div:nth-child(2){--d:120ms}.sk > div:nth-child(3){--d:240ms}.sk > div:nth-child(4){--d:360ms}.sk > div:nth-child(5){--d:480ms}.sk > div:nth-child(6){--d:600ms}

/* figures that count up (T1): the minis under them */
.figs .v{font-variant-numeric:normal}
.minis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:var(--v7-rule) solid var(--eq-hair);margin-top:0}
.minis > div{padding:var(--v7-s5) var(--v7-s5) var(--v7-s5) 0;border-bottom:var(--v7-rule) solid var(--eq-hair)}
.minis > div + div{padding-left:var(--v7-s5);border-left:var(--v7-rule) solid var(--eq-hair)}
.minis b{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track);display:block}
.minis b.up{color:var(--eq-forest)}
.minis span{display:block;margin-top:var(--v7-s2);font:var(--eq-fine);color:var(--eq-ink-faint)}
@container (max-width:700px){.minis{grid-template-columns:repeat(2,1fr)}.minis > div:nth-child(3){border-left:0;padding-left:0}}
.figs-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--v7-s4);flex-wrap:wrap;margin-bottom:var(--v7-s3)}
.figs-head .stamp{position:static}

/* the dial instrument v2: the arc gauge (Sweep), the readouts, the live curve */
.dial-inst{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:var(--v7-s5) var(--eq-gap-wide);align-items:center}
.dial-inst .i-head,.dial-inst figcaption,.dial-inst .dial-out,.dial-inst .curve{grid-column:1/-1}
.dial-inst .curve{padding-top:var(--v7-s4);border-top:var(--v7-rule) solid var(--eq-hair-dark)}
.dial-inst .curve .viz{max-height:300px}
.dial-inst .gauge{position:relative;max-width:320px;margin:0 auto}
.dial-inst .gauge .now{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);text-align:center;margin:0}
.dial-inst .gauge .now small{display:block;font:var(--eq-fine);font-family:var(--eq-sans);color:var(--eq-light-faint);margin-top:var(--v7-s1);letter-spacing:0}
.dial-inst .controls{display:grid;gap:var(--v7-s3);min-width:0}
.dial-inst #dial-curve .band{fill:var(--eq-light-faint);opacity:.3}
.dial-inst #dial-curve .line{stroke:var(--eq-light)}
.dial-inst #dial-curve .grid{stroke:var(--eq-hair-dark-strong)}
.dial-inst #dial-curve text{fill:var(--eq-light-faint)}
.dial-inst #dial-curve .end{fill:var(--eq-mint);stroke:var(--eq-obsidian)}
.dial-inst .curve-cap{font:var(--eq-fine);font-family:var(--eq-sans);color:var(--eq-light-faint)}
@container (max-width:700px){.dial-inst{grid-template-columns:1fr}}

/* portfolios: the ladder of minimums */
.ladder{display:grid;gap:var(--v7-s3);margin-top:var(--eq-head-gap)}
.ladder > div{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:var(--v7-s4);align-items:center;font:var(--eq-small);color:var(--eq-ink-muted)}
.ladder .bar{height:12px;border-radius:var(--eq-radius-button);background:var(--eq-data-band);position:relative;overflow:hidden}
.ladder .bar i{position:absolute;left:0;top:0;bottom:0;background:var(--eq-data-bar);border-radius:var(--eq-radius-button);width:var(--w)}
.ladder .bar.ph-bar i{background:repeating-linear-gradient(135deg,var(--eq-data-grey) 0 6px,transparent 6px 12px)}
.ladder b{font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-ink)}
[data-play] .ladder .bar i{width:0;transition:width var(--v9-wipe) var(--eq-ease)}
[data-play].in .ladder .bar i{width:var(--w)}

/* portal v2: activity, documents, help, status timeline */
.timeline{list-style:none;margin:0;padding:0;border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.timeline li{display:grid;grid-template-columns:28px 1fr;gap:var(--v7-s3);padding:var(--v7-s4) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);font:var(--eq-small);color:var(--eq-ink-muted);position:relative}
.timeline li::before{content:"";width:12px;height:12px;border-radius:50%;margin-top:4px;background:var(--eq-fog);border:var(--v7-rule) solid var(--eq-ink-faint);justify-self:center}
.timeline li.done::before{background:var(--eq-forest);border-color:var(--eq-forest)}
.timeline li.now::before{background:var(--eq-forest);border-color:var(--eq-forest);box-shadow:0 0 0 3px var(--eq-fog),0 0 0 4px var(--eq-forest)}
.timeline li b{display:block;font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-ink)}
.timeline li.now b{color:var(--eq-forest)}
.timeline li .when{display:block;font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-faint);margin-top:var(--v7-s1)}
.act-log{list-style:none;margin:0;padding:0;border-top:var(--v7-rule) solid var(--eq-hair-strong);font:var(--eq-small)}
.act-log li{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:var(--v7-s4);padding:var(--v7-s3) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);align-items:baseline}
.act-log .t{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-faint)}
.act-log .s{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-forest);white-space:nowrap}
.act-log .s.wait{color:var(--eq-ink-faint)}
.spark{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,auto);gap:var(--v7-s4);align-items:end;padding:var(--v7-s4) 0;border-bottom:var(--v7-rule) solid var(--eq-hair)}
.spark .viz{max-width:320px;width:100%;height:auto}
.spark .v{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track);color:var(--eq-ink)}
.spark .k{font:var(--eq-fine);color:var(--eq-ink-faint);margin-top:var(--v7-s1)}
.doc-list{list-style:none;margin:0;padding:0;border-top:var(--v7-rule) solid var(--eq-hair-strong)}
.doc-list li{display:flex;justify-content:space-between;gap:var(--v7-s4);flex-wrap:wrap;padding:var(--v7-s4) 0;border-bottom:var(--v7-rule) solid var(--eq-hair);font:var(--eq-small);color:var(--eq-ink-muted)}
.doc-list b{font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-ink);display:block}
.help .faq{max-width:none}

/* cross-page transitions (a short fade; browsers without them simply navigate) and smooth in-page scroll on click only */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s;animation-timing-function:var(--eq-ease)}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
html.smooth{scroll-behavior:smooth}

/* print: the legal pages on paper, without the chrome */
@media print{.top,.menu,footer.night,.to-night,.proto-note,.app-top,.app-foot,.skip,body::after{display:none!important}body{background:#fff;color:#000}.doc-grid{grid-template-columns:1fr}.toc{display:none}a{color:#000}}
/* v2 fixes to earlier rules */
.hero{display:block;padding:0;gap:0;grid-template-columns:none}
.hero .engraving .elab,.hero .engraving .edate{font-size:18px}
.hero .engraving .ebig{font-size:40px}
@container (max-width:720px){.hero .engraving .elab{display:none}}   /* the shock names go with the line they mark (decision 51); the end label stays (decision 55) */
.foot-fog{margin-top:var(--eq-head-gap);padding-top:var(--v7-s4);border-top:var(--v7-rule) solid var(--eq-hair);color:var(--eq-ink-faint);font:var(--eq-small)}
.band .label-h{letter-spacing:0}
.dial-box-v2{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
#risk .dial-inst{max-width:none}
.hero .engrave-box{position:absolute;inset:0}

.viz .needle{transform-box:view-box;transform-origin:50% 50%}
.viz .line.thick{stroke-width:3}
.stamp.inline{position:static;margin-left:var(--v7-s2);vertical-align:middle}
.label-h.light{color:var(--eq-light)}
@media (prefers-reduced-motion:no-preference){.ladder .bar i{width:0}}

.dial-inst #dial-curve .lab{font-size:14px}
.bfoot .stamp.inline{margin-left:0}
@container (max-width:880px){.dial-box-v2{grid-template-columns:1fr}}
@container (max-width:700px){.dial-inst .gauge{max-width:280px}}

/* v3 (2026-10-25, decisions 43-44): one piece per section; the wide pieces use the width they have */
@container (min-width:1000px){.board ol{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container (min-width:880px){.wrap > section > .cftc{display:block;max-width:none;columns:2;column-gap:var(--eq-gap-wide)}.wrap > section > .cftc p{max-width:none;margin:0}.wrap > section > .cftc p + p{margin-top:var(--v7-s3)}}

/* decision 53 (2026-10-25): every chart fits its own box; a wide chart shows its narrow drawing when the figure is under 600 px; tables
   turn into stacked rows on a phone; nothing but the ticker scrolls sideways */
figure.chart{container-type:inline-size}
.v-narrow{display:none}
@container (max-width:600px){.v-wide{display:none}.v-narrow{display:block}}
@container (max-width:560px){
  .table-scroll:not(.keep) thead{display:none}   /* each cell carries its column's name (data-label) */
  .table-scroll:not(.keep) table,.table-scroll:not(.keep) tbody,.table-scroll:not(.keep) tr{display:block;width:100%}
  .table-scroll:not(.keep) tr{padding:var(--v7-s3) 0;border-bottom:var(--v7-rule) solid var(--eq-hair)}
  .table-scroll:not(.keep) th,.table-scroll:not(.keep) td{display:grid;grid-template-columns:minmax(6.5em,40%) 1fr;gap:var(--v7-s3);border:0;padding:var(--v7-s1) 0}
  .table-scroll:not(.keep) th[scope=row]{display:block;font-weight:500}.table-scroll:not(.keep) th[scope=row]::before{content:none}
  .table-scroll:not(.keep) caption{display:block;padding-top:var(--v7-s3)}
  .table-scroll:not(.keep) [data-label]::before{content:attr(data-label);font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-faint);align-self:baseline}}

/* decisions 53 + 55: chart labels are set as text at their own size over the drawing (charts.js), so they stay readable at every width;
   they shrink with the chart but never below 11 px, odd years give way when labels would touch, and none leaves the chart */
.hl-layer{position:absolute;inset:0;pointer-events:none;z-index:1}
.hl{position:absolute;left:0;top:0;line-height:1;white-space:nowrap}
.viz.hl-on text{visibility:hidden}
.hl.gone{display:none}
@media (prefers-reduced-motion:no-preference){[data-play] .hl-layer,.hero .hl-layer{opacity:0;transition:opacity .9s var(--eq-ease) .6s}[data-play].in .hl-layer,.hero.in .hl-layer{opacity:1}}

/* decision 54: on the public pages the content stays and the box goes - the statement and the disclaimer sit on the fog, set apart by
   space and a hairline that fades at both ends; the portal keeps its cards */
.top ~ main :is(.cftc,.disclaimer,.cftc-quote,.panel){background:none;border-top:0;padding:var(--v7-s5) 0 0;position:relative}
.top ~ main :is(.cftc,.disclaimer,.cftc-quote,.panel)::before{content:"";position:absolute;left:0;right:0;top:0;height:var(--v7-rule);
  background:linear-gradient(90deg,transparent,var(--eq-hair-strong) 14%,var(--eq-hair-strong) 86%,transparent)}
.top ~ main .band :is(.cftc,.disclaimer)::before{background:linear-gradient(90deg,transparent,var(--eq-hair-dark-strong) 14%,var(--eq-hair-dark-strong) 86%,transparent)}
.hl-host{position:relative}

/* ===== decision 56 (2026-10-25): the rhythm list - every section a few lines and one visual; pages no longer on phones ===== */
:root{--v7-section:clamp(64px,11vw,var(--eq-section));--v8-ramp-h:clamp(96px,17vw,240px)}
main{overflow-x:clip}
.board-ground{--ramp:clamp(64px,11vw,176px)}
@container (max-width:520px){
  .head{margin-bottom:var(--v7-s6);padding-bottom:var(--v7-s4)}
  .board ol{gap:var(--v7-s6)}
  .board .bp{font-size:13px;line-height:1.45}
  .table-scroll:not(.keep) tr{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--v7-s4)}
  .table-scroll:not(.keep) th[scope=row]{grid-column:1/-1}
  .table-scroll:not(.keep) tr > td:only-of-type{grid-column:1/-1}
  .table-scroll:not(.keep) th,.table-scroll:not(.keep) td{display:block}
  .table-scroll:not(.keep) [data-label]::before{display:block;margin-bottom:2px}}

/* H1, T3, the cancellation head: a path of steps on one line that draws in; the broker's wait as a dashed span */
.path-steps{position:relative;margin-top:var(--v7-s8);row-gap:calc(var(--v7-s8) + var(--v7-s4))}
.path-steps::before{content:"";position:absolute;left:0;right:0;top:calc(var(--v7-rule) * -1);height:2px;background:var(--eq-forest);transform-origin:0 0}
.path-steps .wait-span{position:absolute;left:0;right:0;bottom:100%;margin-bottom:var(--v7-s1);padding-bottom:var(--v7-s2);
  border-bottom:2px dashed var(--eq-forest);font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-forest)}
.path-steps.compact,.path-steps.compact li{grid-template-columns:1fr}
.path-steps.compact{margin-top:0;row-gap:0;display:grid}
.path-steps.compact::before{left:3px;right:auto;top:0;bottom:0;width:2px;height:auto}
.path-steps.compact li{border-top:0;padding:0 0 var(--v7-s5) var(--v7-s6)}
.path-steps.compact li::before{top:6px}
.path-steps.compact .wait-span{position:static;display:block;margin:var(--v7-s3) 0 0;padding:0 0 0 var(--v7-s3);border:0;border-left:2px dashed var(--eq-forest)}
@container (max-width:520px){
  .path-steps{margin-top:var(--v7-s5);row-gap:0}
  .path-steps::before{left:3px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .path-steps li{border-top:0;padding:0 0 var(--v7-s4) var(--v7-s6)}
  .path-steps li::before{top:6px}
  .path-steps .wait-span{position:static;display:block;margin:var(--v7-s2) 0 0;padding:0 0 0 var(--v7-s3);border:0;border-left:2px dashed var(--eq-forest)}}
@media (prefers-reduced-motion:no-preference){[data-play].path-steps::before{transform:scale(0);transition:transform var(--v9-draw) var(--eq-ease)}[data-play].path-steps.in::before{transform:scale(1)}}
.beside{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--eq-gap-wide);align-items:start}
@container (max-width:700px){.beside{grid-template-columns:1fr}.beside .path-steps{display:none}}

/* H2: a glimpse of the portal beside the questions (hidden on phones) */
.qa{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--eq-gap-wide);align-items:start}
.qa .faq{max-width:none}
.glimpse{position:sticky;top:calc(var(--v7-nav-h) + var(--v7-s6));padding:var(--v7-s5);display:grid;gap:var(--v7-s4)}
.glimpse .i-head{margin:0;align-items:center}
.glimpse .stamp{position:static;color:var(--eq-light);background:var(--eq-obsidian-raised);border-color:var(--eq-light-faint)}
.glimpse .light{box-shadow:none;background:var(--eq-obsidian-raised)}
.glimpse .g-rows{margin:0;border-top:var(--v7-rule) solid var(--eq-hair-dark)}
.glimpse .g-rows > div{display:flex;justify-content:space-between;gap:var(--v7-s4);padding:var(--v7-s2) 0;border-bottom:var(--v7-rule) solid var(--eq-hair-dark);font:var(--eq-small)}
.glimpse dt{color:var(--eq-light-faint)}
.glimpse dd{margin:0;color:var(--eq-light)}
.glimpse .viz .line{stroke:var(--eq-mint)}
.glimpse .viz .end{fill:var(--eq-mint);stroke:var(--eq-obsidian)}
.glimpse .g-acts{display:flex;gap:var(--v7-s2);flex-wrap:wrap}
.glimpse .g-acts span{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-light-muted);border:var(--v7-rule) solid var(--eq-hair-dark-strong);border-radius:var(--eq-radius-button);padding:var(--v7-s1) var(--v7-s3)}
@container (max-width:700px){.qa{grid-template-columns:1fr}.qa .glimpse{display:none}}

/* H3: the engraving reprised on night behind the call, faint, running to the right edge */
.close{position:relative;overflow:hidden}
.close .wrap{position:relative;z-index:1}
.close-engrave{position:absolute;right:0;top:var(--v8-ramp-h);bottom:0;width:72%;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 50%),linear-gradient(180deg,transparent,#000 30%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 50%),linear-gradient(180deg,transparent,#000 30%);mask-composite:intersect}
.close-engrave .engraving{position:absolute;inset:0;width:100%;height:100%}
.close .engraving .hist{stroke:var(--eq-light);opacity:.09;stroke-width:1}
.close .engraving .line{stroke:var(--eq-mint);opacity:.5}
@container (max-width:720px){.close-engrave{width:100%;opacity:.6}}

/* P1: the nested portfolios, T1 inside T2 inside T3 */
.page-head.with-vis{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--v7-s6) var(--eq-gap-wide);align-items:end}
.page-head.with-vis > div:first-child{min-width:0}
.page-head.with-vis > .chart,.page-head.with-vis > .path-steps{min-width:0;align-self:end}
@container (max-width:780px){.page-head.with-vis{grid-template-columns:1fr}}
.nest .n3,.nest .n2,.nest .n1{position:relative;border-radius:6px;padding:var(--v7-s7) var(--v7-s4) var(--v7-s4)}
.nest .n3,.nest .n2{border:var(--v7-rule) dashed var(--eq-ink-faint)}
.nest .n1{border:2px solid var(--eq-forest);min-height:64px}
.nest .nl{position:absolute;left:var(--v7-s4);top:var(--v7-s3);font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-muted);white-space:nowrap}
.nest .n1 .nl{color:var(--eq-forest)}
.nest .n1 .nl b{font-weight:500}
@media (prefers-reduced-motion:no-preference){[data-play].nest .n1,[data-play].nest .n2 > .nl,[data-play].nest .n3 > .nl{opacity:0;transition:opacity var(--v9-rise) var(--eq-ease)}
  [data-play].nest.in .n1{opacity:1}[data-play].nest.in .n2 > .nl{opacity:1;transition-delay:.35s}[data-play].nest.in .n3 > .nl{opacity:1;transition-delay:.7s}}
@container (max-width:520px){.nest .n3,.nest .n2{padding:var(--v7-s6) var(--v7-s3) var(--v7-s3)}.nest .n1{min-height:44px}}

/* P2: the account-size check as one scale with the three minimums; the check moves a marker along it */
.scale{position:relative;height:88px;margin:var(--v7-s6) 0 var(--v7-s2)}
.scale .track{position:absolute;left:0;right:0;top:42px;height:2px;background:var(--eq-hair-strong)}
.scale .track i{position:absolute;left:0;top:0;bottom:0;width:var(--you,0);background:var(--eq-forest)}
.scale .mk{position:absolute;left:var(--w);top:0;transform:translateX(-50%);display:inline-flex;gap:.45em;align-items:baseline;font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-muted);white-space:nowrap}
.scale .mk b{font-weight:500;color:var(--eq-ink)}
.scale .mk::after{content:"";position:absolute;left:50%;top:22px;height:28px;border-left:2px solid var(--eq-ink)}
.scale .mk.lo{top:auto;bottom:0}
.scale .mk.lo::after{top:auto;bottom:22px}
.scale .mk.last{transform:translateX(-100%)}
.scale .mk.last::after{left:auto;right:0}
.scale .ph-mk::after{border-left-style:dashed;border-left-color:var(--eq-ink-faint)}
.scale .you{position:absolute;left:var(--you,0);top:36px;transform:translateX(-50%);display:grid;justify-items:center;gap:2px;font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-forest)}
.scale .you::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--eq-forest);box-shadow:0 0 0 3px var(--eq-fog)}
.scale .you[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){.scale .track i,.scale .you{transition:width .6s var(--eq-ease),left .6s var(--eq-ease)}}

/* T1: the backtest line beside the head, running to the right edge (it lives outside the page column, so nothing spills); a compact
   strip under the words on narrow screens */
.t1-top{position:relative;display:flex;flex-direction:column}
.t1-top > .wrap{position:relative;z-index:1;width:100%}
.head-trace{position:absolute;top:0;bottom:0;left:55%;right:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 30%);mask-image:linear-gradient(90deg,transparent,#000 30%)}
.head-trace .trace{position:absolute;inset:0;width:100%;height:100%}
.head-trace .stamp{left:auto;right:var(--v7-margin);top:var(--v7-s3)}
.trace .line{stroke:var(--eq-forest);stroke-width:1.5}
@media (max-width:860px){.head-trace{position:relative;order:2;left:auto;right:auto;height:120px;margin:var(--v7-s5) var(--v7-margin) 0;-webkit-mask-image:none;mask-image:none}
  .head-trace .stamp{right:0}}

/* the paper frame, the trades strip, the kinds and the dial bars */
.viz .awaiting{stroke:var(--eq-ink-faint);stroke-width:2;stroke-dasharray:6 6}
.viz .future{stroke:var(--eq-ink-faint);stroke-width:2;stroke-dasharray:1 7;stroke-linecap:round}
.viz .pos{stroke:var(--eq-forest);stroke-width:6;stroke-linecap:round}
.viz .pos.open{stroke-dasharray:none;opacity:.55}

/* portal: requests and document versions as time lines */
.act-log.tl li,.doc-list.tl li{position:relative;padding-left:var(--v7-s6)}
.act-log.tl li::before,.doc-list.tl li::before{content:"";position:absolute;left:0;top:calc(var(--v7-s3) + 4px);width:9px;height:9px;border-radius:50%;background:var(--eq-forest)}
.doc-list.tl li::before{top:calc(var(--v7-s4) + 5px)}
.act-log.tl li::after,.doc-list.tl li::after{content:"";position:absolute;left:4px;top:calc(var(--v7-s3) + 13px);bottom:calc(var(--v7-s3) * -1 - 4px);border-left:var(--v7-rule) solid var(--eq-hair-strong)}
.act-log.tl li:last-child::after,.doc-list.tl li:last-child::after{display:none}
.act-log.tl .s.wait ~ *,.act-log.tl li:has(.s.wait)::before{background:var(--eq-fog);border:var(--v7-rule) solid var(--eq-ink-faint)}

/* decision 56's condition - no page longer on phones: the legal head steps show their titles only, two by two; portal and legal spacing tightened */
@container (max-width:520px){
  .head-steps.path-steps{grid-template-columns:1fr 1fr;row-gap:var(--v7-s4);column-gap:var(--v7-s4)}
  .head-steps.path-steps::before{display:none}
  .head-steps.path-steps li{border-top:var(--v7-rule) solid var(--eq-hair-strong);padding:var(--v7-s3) 0 0}
  .head-steps.path-steps li::before{top:calc(var(--v7-dot) / -2 - var(--v7-rule) / 2)}
  .head-steps.path-steps li p{display:none}
  .head-steps.path-steps h3{font:var(--eq-small);font-weight:500}
  .doc-grid.section-gap{margin-top:var(--v7-s5)}
  .page-head.with-vis{gap:var(--v7-s5)}
  .chart-img.stamp-in{padding-top:var(--v7-s6)}}
@media (max-width:560px){
  .app-main > .lead{margin-bottom:var(--v7-s6)}
  .portal-sec{padding-top:var(--v7-s6)!important}
  .act-log li{grid-template-columns:1fr auto;gap:2px var(--v7-s3)}
  .act-log li > span:nth-child(2){grid-column:1/-1;grid-row:2}
  .app-main .cftc{margin-top:var(--v7-s5)}}
@container (max-width:520px){
  .doc{gap:var(--v7-s5)}
  .doc section{padding-top:var(--v7-s4)}}
@media (max-width:560px){.page-head{padding-top:var(--v7-s7)}}
.chart.stamp-over .chart-img.stamp-in{padding-top:0}
.chart.stamp-over .stamp{left:auto;right:0;top:0}

/* ===== decision 57 (2026-10-25): "Signal over noise." ===== */
.eyebrow{font:var(--eq-mono-label);font-family:var(--eq-mono);letter-spacing:.04em;color:var(--eq-forest)}
.close .eyebrow{color:var(--eq-mint);margin-bottom:var(--v7-s4)}
footer .sig{display:flex;align-items:center;gap:var(--v7-s4);flex-wrap:wrap;margin:0}
footer .sig span{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-light-muted);padding-left:var(--v7-s4);border-left:var(--v7-rule) solid var(--eq-hair-dark-strong)}
/* the fraction: "Signal" over a bar over "noise"; the bar draws in when seen */
.frac{display:inline-grid;justify-items:center;gap:.08em;font-weight:300;font-size:calc(var(--v7-title-size) * 1.25);line-height:1;letter-spacing:var(--eq-title-track)}
.frac .bar{display:block;width:100%;height:max(2px,.045em);background:var(--eq-ink);transform-origin:0 50%}
.frac span:last-child{color:var(--eq-ink-muted)}
@media (prefers-reduced-motion:no-preference){[data-play].frac .bar{transform:scaleX(0);transition:transform var(--v9-draw) var(--eq-ease)}[data-play].frac.in .bar{transform:scaleX(1)}}
.why > div:first-child{position:relative}
/* the signal emerges: the noise faint, the band, the average turning forest once the band clears zero */
.emerge-fig{position:relative}
.tcount{display:flex;gap:var(--v7-s3);align-items:baseline;justify-content:flex-end;font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-muted);margin-bottom:var(--v7-s2)}
.tcount b{font:var(--eq-figure);font-family:var(--eq-sans);letter-spacing:var(--eq-figure-track);color:var(--eq-forest)}
.emerge .nd{fill:var(--eq-ink-faint);opacity:.35}
.emerge .eband{fill:var(--eq-data-band);opacity:.9}
.emerge .emean{stroke:var(--eq-ink-muted);stroke-width:2;fill:none}
.emerge .esig{stroke:var(--eq-forest);stroke-width:2.5;fill:none}
.frac-line{font:var(--eq-lead);color:var(--eq-ink);margin-top:var(--v7-s5);max-width:var(--v7-measure)}
/* formula zero heads the board, across its full width */
.board li.zero{grid-column:1/-1;padding-bottom:var(--v7-s5);border-bottom:var(--v7-rule) solid var(--eq-hair-dark)}
.board li.zero math{font-size:min(24px,6cqi)}

/* ===== decision 60 (2026-10-26): version 13 ===== */
/* (b) the teaser on home: the trade chart beside two lines and a link; under them on phones */
.teaser{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--v7-s6) var(--eq-gap-wide);align-items:center;padding-bottom:var(--v7-s5)}
.teaser-copy{display:grid;gap:var(--v7-s4);align-content:start}
.teaser-copy h2{font-weight:400;font-size:var(--v7-title-size);line-height:1.05;letter-spacing:var(--eq-title-track)}
.teaser-link{font:var(--eq-label);font-family:var(--eq-sans);color:var(--eq-mint)}
.teaser-link:hover{color:var(--eq-light)}
@container (max-width:700px){.teaser{grid-template-columns:1fr}}
/* (c) the account table on phones: three columns kept, every row one line where the words allow; same words, no stacking */
@container (max-width:560px){
  .table-scroll.keep table{table-layout:fixed;width:100%}
  .table-scroll.keep th,.table-scroll.keep td{font-size:13px;line-height:1.35;padding:var(--v7-s2) var(--v7-s2) var(--v7-s2) 0;overflow-wrap:anywhere}
  .table-scroll.keep thead th:first-child,.table-scroll.keep tbody th{width:42%}
  .table-scroll.keep [data-label]::before{content:none}}

/* ===== decision 61 (2026-10-26): the polish - P-1 type scale and P-2 spacing live in eon-tokens.css ===== */
/* P-2 structure is information: no rule under a section heading - the space separates; rules stay in tables, lists and the board */
.head,.close .head,.night .head{border-bottom:0;padding-bottom:0}
:root{--v7-section:clamp(64px,9vw,var(--eq-section))}
/* P-6 How it works: formula zero, set large, is the page's picture beside the words */
.how-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:end;column-gap:var(--eq-gap-wide)}
.how-head > :not(.how-zero){grid-column:1}
.how-zero{grid-column:2;grid-row:1 / span 3;align-self:center;justify-self:end;text-align:right;margin:0}
.how-zero math{font-family:var(--eq-math);font-size:clamp(48px,7vw,104px);color:var(--eq-ink)}
.how-zero figcaption{font:var(--eq-mono-label);font-family:var(--eq-mono);color:var(--eq-ink-muted);margin-top:var(--v7-s3)}
@container (max-width:780px){.how-head{grid-template-columns:1fr}.how-zero{grid-column:1;grid-row:auto;justify-self:start;text-align:left;margin-top:var(--v7-s5)}.how-zero math{font-size:44px}}
.doc-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--v7-s2) var(--v7-s5);font:var(--eq-small)}
/* the portal's main column is a container too, so the container rules (decision 45) reach the portal pages - its question list was
   stuck at 7/12 width on phones since v3.2 (found while checking the polish) */
.app-main{container-type:inline-size}

/* ===== decision 62 (2026-10-26): the hosting check and the pro-design audit, fixed ===== */
/* F-3: a fallback with Plex's measurements, so the swap to the web font moves nothing (size from the letter-frequency width, Arial metrics) */
@font-face{font-family:"Plex fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans");size-adjust:101.1%;ascent-override:101.39%;descent-override:27.2%;line-gap-override:0%}
:root{--eq-sans:"IBM Plex Sans","Plex fallback","Helvetica Neue",sans-serif}
/* F-1: a link on any dark ground is light (the board's footnote was forest on obsidian, 2.4:1) */
:where(.night) a{color:var(--eq-light)}
:where(.night) a:hover{color:var(--eq-mint)}
/* F-2: the hero's labels keep a soft fog halo where the fan is densest (a halo, not a box: decision 54) */
.hero .hl-layer span{text-shadow:0 0 2px var(--eq-fog),0 0 4px var(--eq-fog),0 0 8px var(--eq-fog)}
