/* EVNTRACE TOKENS — Coherent Education visual system, adapted (2026-09-14).
   Hex source: coherencedaddy-landing/app/globals.css (.canvas-paper + .dark).
   Ratios: WCAG 2.x relative luminance, python, re-measured 2026-09-14. */
:root{
  color-scheme:light;
  --c-paper:#F8F7F4; --c-white:#FFFFFF; --c-stone:#EDEBE7;
  --c-ink:#0E0E10; --c-ink-raised:#18181B; --c-ink-2:#1F1F22; --c-paper-ink:#F2F1ED;
  --c-muted:#6B6B70; --c-fog:#A1A1A6;
  --c-coral:#FF6B4A; --c-coral-deep:#E5553A; --c-verdant:#4A9D7C; --c-flare:#D94343;
  --c-gold:#C8A96E; --c-steel:#5B78B5;

  --bg:var(--c-paper); --surface:var(--c-white); --surface-2:var(--c-stone);
  --text:var(--c-ink); --text-dim:var(--c-muted); --accent-text:var(--c-ink);
  --line:rgba(14,14,16,.08); --line-strong:var(--c-muted); --line-selected:var(--c-ink);
  --accent-fill:var(--c-coral); --accent-fill-press:var(--c-coral-deep);
  --on-accent:var(--c-ink); --accent-mark:var(--c-coral);
  --focus-ring:var(--c-ink); --ring-width:2px; --ring-offset:2px;
  --ok-mark:var(--c-verdant); --error-mark:var(--c-flare);
  --sample-fill:var(--c-gold); --on-sample:var(--c-ink);

  --viz-1:var(--c-steel); --viz-2:var(--c-coral-deep); --viz-context:var(--c-muted);
  --viz-grid:rgba(14,14,16,.08); --viz-axis:var(--c-muted);
  --viz-seq-1:color-mix(in srgb,var(--c-steel) 55%,var(--c-paper));
  --viz-seq-2:color-mix(in srgb,var(--c-steel) 78%,var(--c-paper));
  --viz-seq-3:var(--c-steel);
  --viz-seq-4:color-mix(in srgb,var(--c-steel) 72%,var(--c-ink));
  --viz-seq-5:color-mix(in srgb,var(--c-steel) 48%,var(--c-ink));
  --viz-div-neg-2:color-mix(in srgb,var(--c-coral-deep) 72%,var(--c-ink));
  --viz-div-neg-1:color-mix(in srgb,var(--c-coral-deep) 60%,var(--c-paper));
  --viz-div-mid:var(--c-stone);
  --viz-div-pos-1:color-mix(in srgb,var(--c-steel) 55%,var(--c-paper));
  --viz-div-pos-2:color-mix(in srgb,var(--c-steel) 72%,var(--c-ink));

  --font-display:'Archivo Narrow','Arial Narrow','Helvetica Neue',Arial,sans-serif;
  --font-body:'Geist',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --fs-hero:clamp(2.5rem,6vw,4.5rem);
  --fs-hero-long:clamp(1.625rem,4.2vw,3rem);   /* + cell-page H1 exception only (§4.7) */
  --fs-h2:clamp(2rem,3.6vw,3rem);
  --fs-h3:1.375rem;
  --fs-lead:1.25rem;                            /* + router legend, door titles on desktop */
  --fs-body:clamp(1.0625rem,.9375rem + .6vw,1.1875rem);
  --fs-sm:.9375rem; --fs-label:.75rem; --fs-stat:clamp(2.25rem,4vw,3.5rem);
  --lh-display:.97; --lh-h2:1.02; --lh-body:1.6;
  --tracking-display:-.02em; --tracking-label:.14em; --measure:65ch;

  --space-1:4px; --space-2:8px; --space-3:16px; --space-4:24px;
  --space-5:40px; --space-6:64px; --space-7:96px;
  --section-y:clamp(4rem,10vw,8rem);
  --pad:clamp(20px,5vw,90px); --maxw:1200px;
  --header-h:64px; --sticky-bar-h:64px;

  --target-min:48px; --target-lg:56px; --target-gap:8px; --control-border:1.5px;
  --door-min-h:88px;                            /* + */
  --progress-h:6px;                             /* + */

  --radius-sm:6px; --radius-md:10px; --radius-lg:16px; --radius-xl:24px; --radius-pill:9999px;

  --shadow-sm:0 1px 2px rgba(14,14,16,.04);
  --shadow-md:0 4px 16px rgba(14,14,16,.08);
  --shadow-lg:0 12px 40px rgba(14,14,16,.12);
  --shadow-lift:0 10px 24px -8px rgba(14,14,16,.35),0 2px 6px -1px rgba(14,14,16,.25),inset 0 1px 0 rgba(255,255,255,.14);
  --shadow-lift-hover:0 16px 32px -10px rgba(14,14,16,.45),0 4px 10px -2px rgba(14,14,16,.3),inset 0 1px 0 rgba(255,255,255,.18);

  --ease-out:cubic-bezier(.22,.61,.36,1);
  --dur-ack:100ms; --dur-fast:180ms; --dur-base:260ms; --dur-max:360ms; --stagger:60ms;
  --dur-out:120ms;                              /* + step fade-out, reduced-motion fades */
  --dur-reveal:600ms;                           /* + scroll reveal (js/site.js §5) */

  --z-bar:40; --z-header:50; --z-sheet:60; --z-tooltip:70;   /* + */
}

.band-ink{
  color-scheme:dark;
  --bg:var(--c-ink); --surface:var(--c-ink-raised); --surface-2:var(--c-ink-2);
  --text:var(--c-paper-ink); --text-dim:var(--c-fog); --accent-text:var(--c-coral);
  --line:rgba(255,255,255,.08); --line-strong:var(--c-fog); --line-selected:var(--c-paper-ink);
  --accent-mark:var(--c-coral); --focus-ring:var(--c-coral);
  --ok-mark:var(--c-verdant); --error-mark:var(--c-flare);
  --viz-context:var(--c-fog); --viz-grid:rgba(255,255,255,.08); --viz-axis:var(--c-fog);
  --viz-seq-1:color-mix(in srgb,var(--c-steel) 58%,var(--c-ink));
  --viz-seq-2:color-mix(in srgb,var(--c-steel) 82%,var(--c-ink));
  --viz-seq-3:color-mix(in srgb,var(--c-steel) 80%,var(--c-paper-ink));
  --viz-seq-4:color-mix(in srgb,var(--c-steel) 55%,var(--c-paper-ink));
  --viz-seq-5:color-mix(in srgb,var(--c-steel) 32%,var(--c-paper-ink));
  --viz-div-neg-2:color-mix(in srgb,var(--c-coral-deep) 62%,var(--c-paper-ink));
  --viz-div-neg-1:color-mix(in srgb,var(--c-coral-deep) 50%,var(--c-ink));
  --viz-div-mid:var(--c-ink-2);
  --viz-div-pos-1:color-mix(in srgb,var(--c-steel) 55%,var(--c-ink));
  --viz-div-pos-2:color-mix(in srgb,var(--c-steel) 60%,var(--c-paper-ink));
  --shadow-sm:none; --shadow-md:none; --shadow-lg:none;
  background:var(--bg); color:var(--text);
}

html{scroll-padding-top:calc(var(--header-h) + 16px);scroll-padding-bottom:calc(var(--sticky-bar-h) + 16px)}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--fs-body)/var(--lh-body) var(--font-body);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:var(--ring-width) solid var(--focus-ring);outline-offset:var(--ring-offset)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:var(--dur-out)!important;animation-iteration-count:1!important;
    transition-duration:var(--dur-out)!important;transition-property:opacity!important;
    scroll-behavior:auto!important}
  [data-motion="transform"]{transform:none!important}
}

/* ==========================================================================
   EVNTRACE COMPONENTS — revamp spec §3 (+ §5 intake shells, §6 view shells).
   Literal colors live only in the --c-* token lines above; data-URI colors
   are written %23RRGGBB so the hex audit stays clean.
   Coral is never a text color (spec §9 check 31).
   ========================================================================== */

/* --- Base elements -------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}   /* beats .btn/.link display rules; §5.3 hides controls by attribute */
h1,h2,h3,h4{margin:0 0 var(--space-3);text-wrap:balance}
h1,h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-display)}
h1{font-size:var(--fs-hero);line-height:var(--lh-display)}
h2{font-size:var(--fs-h2);line-height:var(--lh-h2)}
h3{font-family:var(--font-body);font-weight:600;font-size:var(--fs-h3);line-height:1.25;letter-spacing:-.01em}
h4{font-family:var(--font-body);font-weight:600;font-size:1.0625rem;line-height:1.35}
p{margin:0 0 var(--space-3);max-width:var(--measure)}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 var(--space-3);padding-left:1.25rem}
li{margin:0 0 var(--space-2)}
a{color:inherit}
img,svg{max-width:100%}
code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9375rem}
hr{border:0;border-top:1px solid var(--line);margin:var(--space-5) 0}
::selection{background:var(--accent-fill);color:var(--on-accent)}

/* --- Utilities ------------------------------------------------------------ */
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.meta{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim)}
.cta-row+.meta{margin-top:var(--space-4)}
.meta+.jump-links{margin-top:var(--space-4)}
.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}
.lead{font-size:var(--fs-lead);line-height:1.45;max-width:38ch}
.trust-row{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);max-width:none}
.well{background:var(--surface-2);border-radius:var(--radius-lg);padding:var(--space-4)}

/* --- §3.1 Layout primitives ---------------------------------------------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.section{padding-block:var(--section-y)}
.section--tight{padding-block:var(--space-6)}
.split{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media (min-width:1024px){.split{grid-template-columns:1.1fr .9fr;gap:var(--space-6);align-items:start}}
.grid-2{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-bottom:var(--space-5)}
@media (min-width:768px){.grid-2{grid-template-columns:1fr 1fr}}
.stack>*+*{margin-top:var(--space-3)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.skip-link{position:absolute;left:16px;top:0;z-index:calc(var(--z-header) + 1);
  display:inline-flex;align-items:center;min-height:var(--target-min);padding:0 var(--space-3);
  background:var(--c-white);color:var(--c-ink);border-radius:var(--radius-md);
  font-weight:600;text-decoration:none;transform:translateY(-110%);
  transition:transform var(--dur-fast) var(--ease-out)}
.skip-link:focus{transform:translateY(8px)}

/* --- §3.2 Site header ----------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:var(--z-header);background:var(--bg);
  border-bottom:1px solid transparent}
.site-header.is-stuck{border-bottom-color:var(--line)}
.site-header__inner{display:flex;align-items:center;gap:var(--space-3);min-height:var(--header-h)}
.site-header__brand{display:inline-flex;align-items:center;gap:10px;min-height:var(--target-min);
  text-decoration:none;font-family:var(--font-display);font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;font-size:1.0625rem;color:var(--text)}
.brand-mark{width:28px;height:28px;flex:none;color:var(--text)}
.brand-wordmark{display:block;height:.79em;width:5.48em;flex:none;color:var(--text)}
.site-header__nav{display:none}
@media (min-width:1024px){
  .site-header__nav{display:flex;align-items:center;gap:var(--space-4);margin-inline:auto}
  .site-header__nav a{display:inline-flex;align-items:center;min-height:var(--target-min);
    text-decoration:none;font-size:var(--fs-sm);font-weight:500;color:var(--text)}
  .site-header__nav a:hover{text-decoration:underline;text-underline-offset:3px}
  .site-header__nav a[aria-current="page"]{font-weight:600;box-shadow:inset 0 -2px 0 var(--line-selected)}
}
.site-header__call{display:inline-flex;align-items:center;gap:8px;min-height:var(--target-min);
  margin-left:auto;padding-inline:8px;text-decoration:none;font-weight:600;
  font-size:var(--fs-sm);color:var(--text)}
.site-header__call svg{width:18px;height:18px;flex:none}
.site-header__num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}
@media (max-width:399.98px){
  .site-header__num{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;
    overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
}
.site-header .site-header__cta{display:none}
@media (min-width:768px){.site-header .site-header__cta:not([hidden]){display:inline-flex}}

/* --- §3.3 Buttons and links ---------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--target-min);padding-inline:var(--space-4);border:0;border-radius:var(--radius-md);
  font-family:var(--font-body);font-weight:600;font-size:1rem;line-height:1.2;
  text-align:center;text-decoration:none;cursor:pointer;background:transparent;color:var(--text);
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),
    background-color var(--dur-fast) var(--ease-out)}
.btn+.btn{margin-left:var(--target-gap)}
.btn--solid{background:var(--accent-fill);color:var(--on-accent);box-shadow:var(--shadow-lift)}
.btn--solid:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift-hover)}
.btn--solid:active{background:var(--accent-fill-press);transform:translateY(0);
  box-shadow:var(--shadow-sm);transition-duration:var(--dur-ack)}
.btn--hero{min-height:var(--target-lg);font-family:var(--font-display);font-weight:700;
  font-size:1.25rem;text-transform:uppercase;letter-spacing:var(--tracking-label)}
.btn--ghost{background:transparent;border:var(--control-border) solid var(--line-strong);color:var(--text)}
.btn--ghost:hover{background:var(--surface-2)}
.well .btn--ghost,.band-ink .btn--ghost:hover{background:var(--surface)}
.btn--block{width:100%}
@media (max-width:767.98px){
  .btn--block{min-height:var(--target-lg)}
  .btn+.btn{margin-left:0}
}
.btn[aria-busy="true"]{pointer-events:none}
/* §3.22 copy button fallback field (inserted by site.js when the clipboard API is absent) */
.copy-fallback{display:block;width:100%;max-width:22rem;min-height:var(--target-min);
  margin-top:var(--space-2);padding:12px 14px;font-family:var(--font-mono);font-size:1rem;
  color:var(--text);background:var(--surface);
  border:var(--control-border) solid var(--line-strong);border-radius:var(--radius-md)}
.link{display:inline-flex;align-items:center;min-height:var(--target-min);
  color:var(--text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;
  background:none;border:0;padding:0;font:inherit;font-size:var(--fs-sm);cursor:pointer;text-align:left}
.link:hover{text-decoration:underline 2px var(--accent-mark);text-underline-offset:3px}
p a:not(.link),li a:not(.link):not(.door),.card__body a{color:var(--text);text-decoration:underline;text-underline-offset:3px}

/* --- §3.4 Eyebrow and highlighter ---------------------------------------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 var(--space-3);
  font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--accent-text)}
.eyebrow__rule{display:inline-block;width:40px;height:2px;flex:none;background:var(--line-strong)}
.hl{background:linear-gradient(transparent 88%,var(--accent-fill) 88%);color:var(--text);
  box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* --- §3.5 Router (home only) ---------------------------------------------- */
.router{margin-block:var(--space-4)}
.router__legend{font-family:var(--font-body);font-weight:600;text-transform:none;
  letter-spacing:0;font-size:1.0625rem;line-height:1.3;margin-bottom:var(--space-3)}
@media (min-width:1024px){.router__legend{font-size:var(--fs-lead)}}
.router__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--target-gap)}
.router__list>li{margin:0}
.router__fallback{margin-top:var(--space-2)}
.door{display:flex;align-items:center;gap:var(--space-3);min-height:var(--door-min-h);
  padding:20px 24px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);text-decoration:none;color:var(--text);
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out)}
@media (max-width:399.98px){.door{padding:16px}}
.door:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line-strong)}
.door__icon{width:32px;height:32px;flex:none;color:var(--text)}
.door__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.door__title{font-weight:600;font-size:1.125rem;line-height:1.25}
@media (min-width:1024px){.door__title{font-size:var(--fs-lead)}}
.door__line{font-size:var(--fs-sm);line-height:1.4;color:var(--text-dim)}
.door__arrow{width:20px;height:20px;flex:none;margin-left:auto;padding:8px;box-sizing:content-box;
  border:var(--control-border) solid var(--line-strong);border-radius:var(--radius-pill);color:var(--text)}

/* --- §3.6 Cards, sample rows, steps list ---------------------------------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:var(--space-4);box-shadow:var(--shadow-sm)}
@media (max-width:767.98px){.card{padding:20px}}
.card__title{margin-bottom:var(--space-2)}
.card__body{margin-bottom:var(--space-2)}
.card__meta{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);
  margin:0 0 var(--space-2)}
.card--link{display:block;text-decoration:none;color:var(--text);
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.card--link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.card--feature{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}
.sample-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);min-height:64px;
  padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);text-decoration:none;color:var(--text);
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out)}
.sample-row+.sample-row{margin-top:var(--target-gap)}
.sample-row+h3{margin-top:var(--space-5)}
.sample-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line-strong)}
@media (max-width:399.98px){.sample-row{padding:var(--space-3)}}
.sample-row__text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 60%}
.sample-row__title{font-weight:600}
.sample-row__line{font-size:var(--fs-sm);color:var(--text-dim)}
.sample-row__arrow{width:20px;height:20px;flex:none;margin-left:auto}
.steps-list{list-style:none;margin:0;padding:0}
.steps-list__item{position:relative;margin:0;padding:0 0 var(--space-5) 52px}
.steps-list__item:last-child{padding-bottom:0}
.steps-list__item::before{content:"";position:absolute;left:15px;top:36px;bottom:4px;
  width:2px;background:var(--line)}
.steps-list__item:last-child::before{display:none}
.steps-list__num{position:absolute;left:0;top:0;display:inline-flex;align-items:center;
  justify-content:center;width:32px;height:32px;border:var(--control-border) solid var(--line-strong);
  border-radius:50%;background:var(--bg);color:var(--text);
  font-family:var(--font-mono);font-weight:500;font-size:var(--fs-sm)}
.steps-list__title{margin-bottom:var(--space-1)}
.steps-list__body{color:var(--text-dim);margin:0}

/* --- §3.7 Can/can't box --------------------------------------------------- */
.canbox{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent-mark);
  border-radius:var(--radius-md);padding:16px 20px;color:var(--text)}
.canbox p{margin:0}
.canbox__do+.canbox__cant{margin-top:var(--space-2)}

/* --- §3.8 In-memory checklist (fraud page) -------------------------------- */
.checklist{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:var(--space-4)}
.checklist__title{font-family:var(--font-body);font-weight:600;font-size:var(--fs-h3);
  text-transform:none;letter-spacing:-.01em;line-height:1.25}
.checklist ul{list-style:none;margin:0 0 var(--space-3);padding:0;display:grid;gap:var(--target-gap)}
.checklist li{margin:0}
.checklist__count{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);
  margin:0 0 var(--space-2)}
.checklist__done{font-weight:500;margin:0 0 var(--space-2)}
.checklist__foot{font-size:var(--fs-sm);color:var(--text-dim);margin:0}

/* --- §3.9 Choice rows ----------------------------------------------------- */
.choice{display:flex;align-items:center;gap:12px;min-height:var(--target-min);
  padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-md);
  background:var(--surface);cursor:pointer}
.choice__text{font-size:1rem;line-height:1.35}
.choice input[type="radio"],.choice input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin:0;
  border:var(--control-border) solid var(--line-strong);background:var(--surface);cursor:pointer;
  background-repeat:no-repeat;background-position:center}
.choice input[type="radio"]{border-radius:50%}
.choice input[type="checkbox"]{border-radius:4px}
.choice input[type="radio"]:checked{background-color:var(--line-selected);border-color:var(--line-selected);
  background-image:radial-gradient(circle,var(--bg) 0 3.2px,transparent 3.4px)}
.choice input[type="checkbox"]:checked{background-color:var(--line-selected);border-color:var(--line-selected);
  background-size:14px 14px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4 9.4l3.3 3.3L14 6' fill='none' stroke='%23F8F7F4' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.band-ink .choice input[type="checkbox"]:checked{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4 9.4l3.3 3.3L14 6' fill='none' stroke='%230E0E10' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.choice:has(input:checked){border:2px solid var(--line-selected);padding:7px 11px}
.choice-grid{display:grid;grid-template-columns:1fr;gap:var(--target-gap);margin:0;padding:0;border:0;
  list-style:none}
.choice-grid>li{margin:0}
@media (min-width:600px){.choice-grid--multi{grid-template-columns:1fr 1fr}}

/* --- §3.10 Text field, hint, error, suggestion, notice, counter ----------- */
.field{margin-bottom:var(--space-3)}
.field>label{display:block;font-weight:600;font-size:var(--fs-sm);margin-bottom:var(--space-1)}
.field__hint{font-size:var(--fs-sm);color:var(--text-dim);margin:0 0 var(--space-2)}
.field input,.field textarea,.field select{display:block;width:100%;min-height:var(--target-min);
  padding:12px 14px;font-family:var(--font-body);font-size:1rem;line-height:1.4;color:var(--text);
  background:var(--surface);border:var(--control-border) solid var(--line-strong);
  border-radius:var(--radius-md)}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border:2px solid var(--line-selected);
  padding:11px 13px}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border:2px solid var(--error-mark);
  padding:11px 13px}
.field__error{display:flex;align-items:flex-start;gap:8px;margin:var(--space-1) 0 0;
  font-weight:500;font-size:var(--fs-sm);color:var(--text)}
.field__error svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--error-mark)}
.field__suggest{margin:var(--space-1) 0 0;font-size:var(--fs-sm)}
.field__notice{margin:var(--space-2) 0 0;padding:12px 16px;background:var(--surface);
  border:1px solid var(--line);border-left:4px solid var(--line-selected);
  border-radius:var(--radius-md);color:var(--text);max-width:none}
.field__notice .btn{margin-top:var(--space-2)}
.field__count{margin:var(--space-1) 0 0;font-family:var(--font-mono);font-weight:500;
  font-size:var(--fs-label);font-variant-numeric:tabular-nums;color:var(--text-dim)}

/* --- §3.11 Intake stepper, banners, error summary, completion ------------- */
.intake{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:var(--space-4);max-width:720px}
@media (max-width:399.98px){.intake{padding:var(--space-3)}}
.intake__progress{margin-bottom:var(--space-4)}
.progress__text{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);
  margin:0 0 var(--space-2)}
.progress__bar{height:var(--progress-h);border-radius:var(--radius-pill);background:var(--surface-2);
  overflow:hidden}
.progress__fill{display:block;height:100%;border-radius:var(--radius-pill);background:var(--line-selected);
  transform-origin:left;transform:scaleX(0);transition:transform var(--dur-base) var(--ease-out)}
.progress__nodes{display:none}
@media (min-width:768px){
  .progress__nodes{display:block;margin-top:var(--space-2)}
  .progress__nodes ol{list-style:none;display:flex;align-items:center;margin:0;padding:0}
  .progress__nodes li{position:relative;margin:0;flex:1;display:flex;align-items:center;
    justify-content:center}
  .progress__nodes li+li::before{content:"";position:absolute;right:50%;left:-50%;top:50%;
    border-top:1.5px dashed var(--line-strong)}
  .progress__nodes li.is-done+li::before{border-top:2px solid var(--line-selected)}
  .progress__nodes a,.progress__nodes button,.progress__nodes span{position:relative;z-index:1;
    display:inline-flex;align-items:center;justify-content:center;width:var(--target-min);
    height:var(--target-min);background:transparent;border:0;padding:0;text-decoration:none;
    font-family:var(--font-mono);font-weight:500;font-size:var(--fs-sm);color:var(--text-dim)}
  .progress__nodes a,.progress__nodes button{cursor:pointer}
  .progress__nodes a::before,.progress__nodes button::before,.progress__nodes span::before{
    content:"";position:absolute;width:32px;height:32px;border-radius:50%;
    border:var(--control-border) solid var(--line-strong);background:var(--surface)}
  .progress__nodes li.is-done :where(a,button)::before{background:var(--line-selected);
    border-color:var(--line-selected)}
  .progress__nodes li.is-done :where(a,button){color:var(--bg)}
  .progress__nodes li.is-current span::before{background:var(--accent-fill);border:2px solid var(--c-ink)}
  .progress__nodes li.is-current span{color:var(--on-accent)}
}
.intake__done1{font-size:var(--fs-sm);color:var(--text-dim);margin:0 0 var(--space-3)}
.intake__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);
  margin-top:var(--space-4)}
.intake__actions .btn{margin-left:auto}
@media (max-width:767.98px){
  .intake__actions{flex-direction:column-reverse;align-items:stretch}
  .intake__actions .btn{width:100%;min-height:var(--target-lg);margin-left:0}
  .intake__actions .link{justify-content:center}
}
.intake__privacy{font-size:var(--fs-sm);color:var(--text-dim);margin-top:var(--space-3)}
.intake__preview{white-space:pre-wrap;word-break:break-word;margin:0;padding:var(--space-3);
  background:var(--surface-2);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--text)}
.step{animation:evt-step-in var(--dur-base) var(--ease-out) both}
.step.is-leaving{animation:evt-step-out var(--dur-out) var(--ease-out) both}
@keyframes evt-step-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes evt-step-out{from{opacity:1}to{opacity:0}}
fieldset.q{margin:0 0 var(--space-4);padding:0;border:0}
fieldset.q>legend{padding:0;margin-bottom:var(--space-2);font-weight:600;font-size:var(--fs-sm)}
.banner{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3);
  padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);
  border-left:4px solid var(--line-selected);border-radius:var(--radius-md);color:var(--text)}
.banner--error{border-left-color:var(--error-mark)}
.banner p{margin:0}
.banner__actions{display:flex;flex-wrap:wrap;gap:var(--target-gap)}
.error-summary{margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);
  background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--error-mark);
  border-radius:var(--radius-md);color:var(--text)}
.error-summary h2,.error-summary h3{font-family:var(--font-body);font-weight:600;font-size:1.0625rem;
  text-transform:none;letter-spacing:0;line-height:1.3;margin-bottom:var(--space-2)}
.error-summary ul{list-style:none;margin:0;padding:0}
.error-summary li{margin:0}
.error-summary a{display:inline-flex;align-items:center;min-height:var(--target-min);
  color:var(--text);text-decoration:underline;text-underline-offset:3px;font-size:var(--fs-sm)}
.done__check{width:48px;height:48px;color:var(--ok-mark);margin-bottom:var(--space-3)}
.done__check path{stroke-dasharray:48;stroke-dashoffset:0;animation:evt-draw 300ms var(--ease-out) 1}
@keyframes evt-draw{from{stroke-dashoffset:48}to{stroke-dashoffset:0}}
.done__title{font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:var(--tracking-display);font-size:var(--fs-h2);line-height:var(--lh-h2)}
.done__ref{display:flex;flex-wrap:wrap;align-items:center;gap:var(--target-gap)}
.done__ref code{font-weight:500;font-variant-numeric:tabular-nums}

/* --- §3.12 Evidence label chip and inference tag -------------------------- */
.label-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);
  color:var(--text);font-family:var(--font-body);font-weight:500;font-size:var(--fs-sm);
  line-height:1.5;white-space:nowrap}
button.label-chip{min-height:var(--target-min);cursor:pointer}
.label-chip__glyph{width:16px;height:16px;flex:none;color:var(--text-dim)}
.label-chip[data-label="record"] .label-chip__glyph,
.label-chip[data-label="corroborated"] .label-chip__glyph,
.label-chip[data-status="agreed"] .label-chip__glyph,
.label-chip[data-status="verified"] .label-chip__glyph{color:var(--ok-mark)}
.label-chip[data-label="contradicted"] .label-chip__glyph,
.label-chip[data-status="disputed"] .label-chip__glyph,
.label-chip[data-status="pastdue"] .label-chip__glyph{color:var(--error-mark)}
.tag-inference{display:inline-flex;align-items:center;padding:1px 8px;
  border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--text);
  font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label)}

/* --- §3.13 Sample badge --------------------------------------------------- */
.badge-sample{display:inline-flex;align-items:center;padding:3px 8px;
  background:var(--sample-fill);color:var(--on-sample);border-radius:var(--radius-sm);
  font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);white-space:nowrap}

/* --- §3.14 Disclosure and §3.21 FAQ --------------------------------------- */
details>summary{display:flex;align-items:center;gap:var(--space-3);min-height:var(--target-min);
  padding:var(--space-2) var(--space-3);font-weight:600;cursor:pointer;list-style:none;color:var(--text)}
details>summary::-webkit-details-marker{display:none}
details>summary::after{content:"";width:11px;height:11px;flex:none;margin-left:auto;
  border-right:2px solid var(--text-dim);border-bottom:2px solid var(--text-dim);
  transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--dur-fast) var(--ease-out)}
details[open]>summary::after{transform:rotate(225deg) translate(-3px,-3px)}
.disclosure,.faq details{border:1px solid var(--line);border-radius:var(--radius-md);
  background:var(--surface)}
.faq details+details{margin-top:var(--target-gap)}
.disclosure__body,.faq__ans{padding:0 var(--space-3) var(--space-3)}

/* --- §3.15 Tabs and segmented toggle -------------------------------------- */
.tabs{display:flex;flex-wrap:wrap;gap:var(--space-3);border-bottom:1px solid var(--line);
  margin-bottom:var(--space-4)}
.tabs[hidden]{display:none}
.tabs [role="tab"]{min-height:var(--target-min);padding:0 var(--space-2);border:0;
  background:none;cursor:pointer;font-family:var(--font-body);font-size:1rem;font-weight:500;
  color:var(--text);box-shadow:inset 0 -2px 0 transparent}
.tabs [role="tab"][aria-selected="true"]{font-weight:600;box-shadow:inset 0 -2px 0 var(--line-selected)}
.seg{display:inline-flex;border:var(--control-border) solid var(--line-strong);
  border-radius:var(--radius-md);overflow:hidden}
.seg button{min-height:var(--target-min);padding-inline:var(--space-3);border:0;background:var(--surface);
  color:var(--text);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:500;cursor:pointer}
.seg button+button{border-left:var(--control-border) solid var(--line-strong)}
.seg button[aria-pressed="true"]{background:var(--surface-2);font-weight:600;
  box-shadow:inset 0 -2px 0 var(--line-selected)}

/* --- §3.16 Drawer / bottom sheet ------------------------------------------ */
.drawer{margin:var(--space-2) 0 var(--space-3);padding:var(--space-3) var(--space-4);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);
  animation:evt-drawer-in var(--dur-fast) var(--ease-out) both}
@keyframes evt-drawer-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.drawer__close{display:none}
@media (max-width:760px){
  .drawer{position:fixed;inset-inline:0;bottom:0;margin:0;max-height:60vh;overflow:auto;
    z-index:var(--z-sheet);border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    box-shadow:var(--shadow-lg);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}
  .drawer__close{display:inline-flex}
}

/* --- §3.17 Tooltip -------------------------------------------------------- */
.tooltip{position:absolute;top:0;left:0;z-index:var(--z-tooltip);max-width:min(280px,80vw);
  padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--text);font-size:var(--fs-sm);line-height:1.35;
  pointer-events:none;box-shadow:var(--shadow-md)}

/* --- §3.18 Viz frame and data tables -------------------------------------- */
.viz{margin:0 0 var(--space-5)}
.viz__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.viz__title{margin:0;flex:1 1 20ch}
.viz__controls{display:flex;flex-wrap:wrap;gap:var(--target-gap);margin-bottom:var(--space-3)}
.viz__chart{margin-bottom:var(--space-3)}
.viz__chart svg{width:100%;height:auto}
.viz__chart text{font-family:var(--font-mono);font-size:var(--fs-label);font-variant-numeric:tabular-nums;
  fill:var(--viz-axis)}
.viz__method{font-size:var(--fs-sm);color:var(--text-dim);margin:var(--space-2) 0 0}
table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
table.data caption{text-align:left;font-weight:600;padding-bottom:var(--space-2)}
table.data th,table.data td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);
  vertical-align:top}
table.data thead th{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim)}
table.data td.num,table.data th.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
@media (max-width:760px){
  /* §6.5: wide tables become stacked cards, CSS only. Each td carries data-th. */
  table.data--stack,table.data--stack tbody,table.data--stack tr,table.data--stack td{display:block}
  table.data--stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  table.data--stack tr{background:var(--surface);border:1px solid var(--line);
    border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--target-gap)}
  table.data--stack td{border:0;padding:4px 0}
  table.data--stack td[data-th]::before{content:attr(data-th);display:block;
    font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;
    letter-spacing:var(--tracking-label);color:var(--text-dim)}
}
/* §6.9 linked highlighting: fade, never hide */
[data-sel] [data-issues]:not(.is-linked){opacity:.25;transition:opacity var(--dur-fast) var(--ease-out)}

/* --- §3.19 Sticky mobile action bar --------------------------------------- */
.stickybar{display:none}
@media (max-width:767.98px){
  body{padding-bottom:calc(var(--sticky-bar-h) + env(safe-area-inset-bottom))}
  .stickybar:not([hidden]){display:flex;align-items:center;gap:var(--target-gap);
    position:fixed;inset-inline:0;bottom:0;z-index:var(--z-bar);
    height:calc(var(--sticky-bar-h) + env(safe-area-inset-bottom));
    padding:8px var(--space-3) calc(8px + env(safe-area-inset-bottom));
    border-top:1px solid var(--line)}
  .stickybar .btn{flex:1;min-height:var(--target-min);margin-left:0}
}

/* --- §3.20 Site footer ---------------------------------------------------- */
.site-footer{padding-block:var(--space-6)}
.site-footer__cols{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
@media (min-width:768px){.site-footer__cols{grid-template-columns:repeat(3,1fr)}}
.site-footer__h{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);
  margin-bottom:var(--space-2)}
.site-footer nav,.site-footer__cols>div{display:flex;flex-direction:column;align-items:flex-start}
.site-footer a{display:inline-flex;align-items:center;min-height:var(--target-min);
  color:var(--text);text-decoration:none;font-size:var(--fs-sm)}
.site-footer a:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer p{color:var(--text-dim);font-size:var(--fs-sm);margin:var(--space-2) 0 0}
.site-footer__legal{margin-top:var(--space-5);padding-top:var(--space-4);
  border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--text-dim);max-width:none}

/* --- Sample-page frame (§4.4, §4.6, §4.8) --------------------------------- */
.samplebar{position:sticky;top:0;z-index:var(--z-header);padding:10px var(--space-3);
  text-align:center;font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:var(--tracking-label)}
.watermark{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  pointer-events:none;z-index:0;color:var(--text);opacity:.04;
  font-family:var(--font-display);font-weight:700;font-size:22vw;letter-spacing:.1em;
  transform:rotate(-24deg)}
.traces{display:flex;flex-wrap:wrap;gap:var(--target-gap);margin:var(--space-2) 0 0;padding:0;
  list-style:none}
.traces li{margin:0}

/* --- Tiles (§6.9 "Tiles: buttons") ---------------------------------------- */
.tiles{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin-bottom:var(--space-4)}
@media (min-width:600px){.tiles{grid-template-columns:1fr 1fr}}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  min-height:var(--target-min);padding:var(--space-3) var(--space-4);text-align:left;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  color:var(--text);font-family:var(--font-body);cursor:pointer;
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.tile__num{font-family:var(--font-display);font-weight:700;font-size:1.75rem;line-height:1;
  font-variant-numeric:tabular-nums}
.tile__label{font-size:var(--fs-sm);color:var(--text-dim)}

/* --- Rate-sheet request form (§4.2) --------------------------------------- */
.rate-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:var(--space-4);max-width:560px}

/* --- Reduced motion: no resting or hover transform (§3 global rules) ------- */
@media (prefers-reduced-motion: reduce){
  .btn:hover,.btn--solid:hover,.btn--solid:active,.door:hover,.card--link:hover,
  .sample-row:hover,.tile:hover{transform:none}
  .step,.step.is-leaving,.drawer{animation-name:evt-fade}
}
@keyframes evt-fade{from{opacity:0}to{opacity:1}}

/* --- Print ---------------------------------------------------------------- */
@media print{
  .site-header,.stickybar,.skip-link,.tabs,.viz__controls{display:none!important}
  .viz__chart[hidden]{display:block!important}
  .disclosure__body,.faq__ans{display:block!important}
  .badge-sample{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .watermark{display:flex!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .samplebar{position:static}
  body{padding-bottom:0}
}

/* Scroll reveal (js/site.js §5, owner request 2026-09-15). Only elements JS has marked are hidden. */
.motion [data-reveal]{opacity:0;transform:translateY(16px);
  transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
.motion [data-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.motion [data-reveal]{opacity:1;transform:none;transition:none}}
@media print{.motion [data-reveal]{opacity:1!important;transform:none!important}}
