/* ==========================================================================
   ClickRebels v4 THEATRE - main.css
   Light token system (Shane order 2026-07-29: "white version, monolith style").
   Same architecture as v2-dark: the root tokens flip to paper, and the DARK
   ISLANDS (.g-black, .marquee, .foot, .dash, .shot) pin the v2 dark palette
   locally via scoped custom properties - every component keeps one source.
   Motion is compositor-only (opacity/transform), zero libraries.
   ========================================================================== */

/* ---- self-hosted fonts (Google latin + latin-ext subsets, mirrored) ---- */
@font-face{font-family:'Red Hat Display';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/red-hat-display-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Display';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/red-hat-display-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Red Hat Display';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/red-hat-display-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Display';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/red-hat-display-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Red Hat Display';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/red-hat-display-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Display';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/red-hat-display-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Red Hat Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/red-hat-mono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/red-hat-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Red Hat Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/red-hat-mono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/red-hat-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Red Hat Text';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/red-hat-text-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Text';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/red-hat-text-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Red Hat Text';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/red-hat-text-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Text';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/red-hat-text-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Red Hat Text';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/red-hat-text-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Red Hat Text';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/red-hat-text-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ==========================================================================
   TOKENS
   GREEN DISCIPLINE (enforced at review): green is permitted ONLY on
   whole punch-line headlines, stat numerals, dots, sweeps/rails, the single
   offer card, and the primary button. A headline is all-white or all-green,
   never mixed.
   ========================================================================== */
:root{
  --bg:#F7F7F3;             /* paper */
  --surface:#EFF0E9;        /* lifted band */
  --surface-2:#FFFFFF;      /* cards */
  --black:#0a0a0a;          /* the crescendo bands stay dark */
  --ink:#0B0F0C;
  --muted:#4A544C;          /* 7.3:1 on bg */
  --muted-2:#5C665E;        /* 5.2:1 on surface - clears 4.5 */
  --line:#DFE1D6;
  --line-2:#C9CDBD;
  --line-inv:rgba(242,244,242,.13);
  --green:#1fd15f;          /* fills, sweeps, rails, buttons - never small text on light */
  --green-t:#0C7A37;        /* text-green on light grounds, 4.75:1 on surface */
  --green-deep:#17b850;
  --green-dim:rgba(31,209,95,.16);
  --green-dim-2:rgba(31,209,95,.07);
  --btn-ink:#062b14;
  --shadow-card:0 2px 6px rgba(11,15,12,.04),0 18px 44px rgba(11,15,12,.09);

  --ff-display:'Red Hat Display',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --ff-body:'Red Hat Text','Red Hat Display',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --ff-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:77.5rem;
  --gut:clamp(1.25rem,5vw,4rem);
  --sec-y:clamp(4.5rem,10vw,8.5rem);
  --ease:cubic-bezier(.22,.61,.36,1);
  --radius:.75rem;
}

/* ---- fluid proportional scaling across the WHOLE desktop range ----
   Boundary lowered 1600 -> 1360 (Shane 2026-08-02: "the container is the exact
   same on any size screen desktop" - at 1512 his MacBook sat BELOW the old
   boundary, so laptop and external showed different proportions). From 1360 up,
   1rem = 1vw: every container, gutter and type size is a fixed PERCENTAGE of
   the viewport, so the layout is proportionally identical at 1360, 1512, 2000
   or 3840. Floor chosen at 1360 (root 13.6px) to hold text readability; below
   it the existing responsive rules take over unchanged. */
@media (min-width:1360px){
  html{font-size:1vw}   /* 13.6px at 1360 -> 15.1px at 1512 -> 24px at 2400; all rem scales with it */
}

/* ---- reset ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}
body,h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{margin:0}
/* every list here draws its own marker with .dot, or is a link column - the
   [class] form left the unclassed footer and offer-card lists showing native
   bullets */
ul,ol{list-style:none;padding:0}
img,svg{max-width:100%;display:block}
/* the <use> sprite: display:none on the root still lets <use> resolve symbols */
.sprite{display:none}
/* the pinned-scene stage frame exists ONLY inside the tier-2 scene */
.scene-shell{display:none}
/* one stroke language for every icon on the site */
.area svg,.stile svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
button,input,textarea,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--ff-body);
  font-size:clamp(1rem,.96rem + .18vw,1.0625rem);
  line-height:1.65;letter-spacing:-.006em;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
::selection{background:var(--green);color:var(--btn-ink)}

/* ==========================================================================
   DARK ISLANDS - the v2 dark palette, pinned locally. Everything inside these
   scopes (the two crescendo sections, marquee, footer, the dashboard mock and
   the browser-chrome screenshot cards) renders exactly as it did on v2-dark.
   --green-t re-points to the bright green: on dark grounds it IS the text green.
   ========================================================================== */
.g-black,.marquee,.foot,.dash,.shot,.hero{
  --bg:#0a0a0a;
  --surface:#111411;
  --surface-2:#0d100d;
  --ink:#f2f4f2;
  --muted:#9aa39b;
  --muted-2:rgba(154,163,155,.82);
  --line:#1e231f;
  --line-2:#2a322b;
  --green-t:#1fd15f;
  --green-dim:rgba(31,209,95,.12);
  --green-dim-2:rgba(31,209,95,.06);
  color:var(--ink);
}

/* ==========================================================================
   TYPE
   ========================================================================== */
.d1{font-family:var(--ff-display);font-weight:800;font-size:clamp(2.5rem,1.2rem + 5vw,5.25rem);line-height:.99;letter-spacing:-.032em}
.d2{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.9rem,1.25rem + 2.8vw,3.4rem);line-height:1.04;letter-spacing:-.028em}
.d3{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.3rem,1.1rem + .9vw,1.75rem);line-height:1.16;letter-spacing:-.02em}
.d4{font-family:var(--ff-display);font-weight:700;font-size:clamp(1.0625rem,1rem + .3vw,1.2rem);line-height:1.25;letter-spacing:-.014em}
.lede{font-size:clamp(1.0625rem,.99rem + .4vw,1.28rem);line-height:1.56;color:var(--muted);letter-spacing:-.01em}
.body-lg{font-size:clamp(1rem,.97rem + .22vw,1.09rem);line-height:1.68;color:var(--muted)}
.mono{font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.5}
.mono-sm{font-family:var(--ff-mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.6}
.t-green{color:var(--green)}
.t-ink{color:var(--ink)}

/* the accent marker */
.dot{display:inline-block;width:.4rem;height:.4rem;border-radius:50%;background:var(--green);vertical-align:middle;margin-right:.55rem;flex:none}
/* highlight band behind INK glyphs - the Monolith signature device, full
   strength on the light ground. The headline glyphs stay one colour (ink);
   the band is ground, not text - the all-one-colour headline law holds. */
.mark{background-image:linear-gradient(var(--green),var(--green));background-repeat:no-repeat;background-size:100% .32em;background-position:0 74%;padding-inline:.08em;transition:background-size .9s var(--ease) .35s}
.js .rv:not(.in) .mark{background-size:0% .32em}
.hero .mark{background-size:100% .14em;background-position:0 100%;padding-inline:0;animation:markSweep 1s var(--ease) .45s backwards}
@keyframes markSweep{from{background-size:0% .14em}}

/* ==========================================================================
   LAYOUT + SECTION DEVICE
   ========================================================================== */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.section{padding-block:var(--sec-y);position:relative}
/* the "NN / Name" seclabel device is RETIRED (Shane round-2 2026-07-29:
   "remove all these titles it's so generic and template feeling").
   Sections open straight with the h2. Do not reintroduce it. */

/* grounds */
.g-lift{background:var(--surface);border-block:1px solid var(--line)}
.g-black{background:var(--black)}
.g-black .lede,.g-black .body-lg{color:rgba(242,244,242,.62)}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--green);color:var(--btn-ink);padding:.9rem 1.25rem;font-weight:700}
.skip:focus{left:1rem;top:1rem}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--green-t);outline-offset:3px;border-radius:2px}

/* ==========================================================================
   NAV
   ========================================================================== */
.nav{position:sticky;top:0;z-index:100;background:rgba(247,247,243,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s var(--ease),background .3s var(--ease)}
.nav.is-stuck{border-bottom-color:var(--line);background:rgba(247,247,243,.94)}
/* v4 adaptive chrome: dark glass while the hero/marquee block is on screen.
   Both wordmarks render; CSS shows the right one. JS toggles nav--inv via the
   #hero-end sentinel. Default (no JS) = nav--inv (index sets it in markup),
   which is correct because the dark hero is the top of the page. */
.nav--inv{--green-t:#1fd15f;background:rgba(5,5,5,.68);border-bottom-color:transparent}
.nav--inv.is-stuck{background:rgba(5,5,5,.85);border-bottom-color:rgba(242,244,242,.1)}
.nav--inv .nav__link{color:rgba(242,244,242,.78)}
.nav--inv .nav__link:hover{color:#f2f4f2}
.nav--inv .burger{color:#f2f4f2}
.brand__word--inv{display:none;height:1.0625rem;width:auto;object-fit:contain;flex:none}
.nav--inv .brand__word{display:none}
.nav--inv .brand__word--inv{display:block}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.5rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--ff-display);font-weight:800;font-size:1.0625rem;letter-spacing:-.025em;padding-block:.6rem;color:var(--ink)}
.brand__mark{width:1.625rem;height:1.625rem;object-fit:contain;flex:none}
/* Nav brand is the WORDMARK ALONE - the K mark never appears, at rest or
   scrolled (Shane 2026-08-01, supersedes the same-day Framer-reveal ask). */
.nav .brand__mark{display:none}
.brand__word{height:1.0625rem;width:auto;object-fit:contain;display:block;flex:none}
.nav__links{display:none;align-items:center;gap:.15rem}
.nav__link{color:var(--muted);font-size:.8125rem;font-weight:500;letter-spacing:.01em;padding:.75rem .85rem;min-height:2.75rem;min-width:2.75rem;display:inline-flex;align-items:center;justify-content:center;transition:color .2s var(--ease)}
.nav__link:hover{color:var(--ink)}
/* scrollspy: the shared active-section underline (JS toggles .is-active) */
.nav__link{background-image:linear-gradient(var(--green),var(--green));background-repeat:no-repeat;background-size:0% 2px;background-position:.85rem calc(100% - .55rem);transition:color .2s var(--ease),background-size .35s var(--ease)}
.nav__link.is-active{color:var(--ink);background-size:calc(100% - 1.7rem) 2px}
/* flex:none - as a flex item in .nav__in it shrank to 34px at 390px, breaking
   the 44px target */
.burger{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;margin-right:-.5rem;background:none;border:0;cursor:pointer;color:var(--ink)}
.burger span{display:block;width:22px;height:1.5px;background:currentColor;position:relative;transition:background .1s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:1.5px;background:currentColor;transition:transform .28s var(--ease)}
.burger span::before{top:-7px}
.burger span::after{top:7px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-7px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:99;background:var(--bg);padding:calc(72px + 2rem) var(--gut) 2.5rem;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;overflow-y:auto;overscroll-behavior:contain}
.menu.is-open{opacity:1;visibility:visible;transform:none}
.menu a{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.8rem,8vw,2.4rem);letter-spacing:-.03em;padding:.5rem 0;min-height:44px;display:flex;align-items:center;border-bottom:1px solid var(--line);opacity:0;transform:translateY(8px)}
.menu.is-open a{opacity:1;transform:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.menu.is-open a:nth-child(1){transition-delay:.05s}
.menu.is-open a:nth-child(2){transition-delay:.1s}
.menu.is-open a:nth-child(3){transition-delay:.15s}
.menu.is-open a:nth-child(4){transition-delay:.2s}
.menu__cta{margin-top:1.75rem}
@media (min-width:940px){
  .nav__links{display:inline-flex}
  .nav__cta{display:inline-flex}
  .burger,.menu{display:none}
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.25rem;padding:.9rem 1.6rem;background:var(--green);color:var(--btn-ink);border:1px solid var(--green);border-radius:.375rem;font-family:var(--ff-display);font-size:.9375rem;font-weight:800;letter-spacing:-.01em;cursor:pointer;transition:background .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease)}
.btn:hover{background:var(--green-deep);border-color:var(--green-deep);box-shadow:0 10px 30px rgba(23,184,80,.28)}
.btn:active{transform:translateY(1px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn--ghost:hover{background:transparent;border-color:var(--ink);box-shadow:none}
.ocard-green a:focus-visible{outline-color:var(--btn-ink)}  /* green ring on a green card is 1.00:1 */
.btn--dark{background:var(--btn-ink);color:#eafff1;border-color:var(--btn-ink)}
.btn--dark:hover{background:#04200f;border-color:#04200f;box-shadow:0 8px 26px rgba(6,43,20,.3)}
.btn--sm{min-height:2.75rem;padding:.7rem 1.15rem;font-size:.8125rem}
/* Audit round: the CTA now LIVES in the mobile bar (compact pill beside the
   burger) - on a ~13k px page, hiding the only conversion affordance behind
   the burger left ~10,000px with no visible path to booking. The old 390px
   brand-clipping bug is prevented structurally: compact sizing below 940px +
   the wordmark yields (min-width:0 + hidden under 360px), never the pill. */
.nav__cta{align-items:center;display:inline-flex}
@media (max-width:939px){
  .nav__cta{min-height:2.25rem;padding:.45rem .75rem;font-size:.6875rem;letter-spacing:0;flex:none}
  .brand{min-width:0}
  .brand__word,.brand__word--inv{max-width:28vw}
}
@media (max-width:359px){.brand__word,.brand__word--inv{display:none}}

/* ==========================================================================
   MOTION BASE
   ========================================================================== */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{padding-top:clamp(2.5rem,5vw,4.5rem);padding-bottom:clamp(3rem,7vw,5.5rem)}
/* CENTRED HERO STACK (Shane 2026-07-29, KlientBoost spacing reference): the hero
   has no side-by-side visual, so a left-anchored column left ~40% dead space on
   a 16-inch. Centre the stack from tablet up; mobile keeps the left rag. */
@media (min-width:760px){
  .hero .wrap{text-align:center}
  .hero__eyebrow{justify-content:center}
  .hero h1{margin-inline:auto;text-wrap:balance}
  .hero__sub{margin-inline:auto}
  .hero__actions{justify-content:center}
}
.hero__eyebrow{display:flex;align-items:center;color:var(--muted-2);margin-bottom:clamp(1.4rem,3vw,2rem)}
.hero h1{max-width:15ch;margin-bottom:clamp(1.35rem,2.6vw,1.85rem)}
.hero__sub{max-width:56ch;margin-bottom:clamp(1.85rem,3.4vw,2.5rem)}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.hero__micro{margin-top:1.1rem;color:var(--muted-2)}
.hero__vis{margin-top:clamp(2.75rem,6vw,4.5rem);position:relative}
/* Horizontal inset stays 0. A negative side inset (was -6%) pushed the glow
   past the viewport and added 3-5px to documentElement.scrollWidth at every
   width below 1512. The gradient is widened instead so it still bleeds. */
.hero__vis::before{content:"";position:absolute;inset:-14% 0 20%;background:radial-gradient(78% 58% at 50% 40%,rgba(31,209,95,.22),transparent 72%);pointer-events:none;z-index:0}

/* ---- the dashboard mock: a dark product window floating on paper ---- */
.dash{position:relative;z-index:1;border:1px solid #1e231f;border-radius:var(--radius);background:var(--surface-2);overflow:hidden;box-shadow:0 6px 18px rgba(11,15,12,.10),0 34px 90px rgba(11,15,12,.22)}
.dash__bar{display:flex;align-items:center;gap:.45rem;padding:.7rem .9rem;background:#0b0e0b;border-bottom:1px solid var(--line)}
.dash__bar i{width:9px;height:9px;border-radius:50%;background:#2a312b;display:block}
/* macOS traffic lights (Shane 2026-08-01, "same like apple") */
.dash__bar i:nth-of-type(1){background:#ff5f57}
.dash__bar i:nth-of-type(2){background:#febc2e}
.dash__bar i:nth-of-type(3){background:#28c840}
.dash__bar span{margin-left:.6rem;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.dash__body{display:grid;grid-template-columns:1fr;min-height:0}
.dash__side{display:none;border-right:1px solid var(--line);padding:.9rem .75rem;gap:.1rem;flex-direction:column;background:#0b0e0b}
/* Sized to FILL the sidebar column (Shane 2026-08-03: "no gap below in that
   section - don't space out the words, just make the font slightly bigger").
   Measured at 1512: 76px dead space under SETTINGS -> list needs x1.18. Font
   carries the scale; paddings/gap are in EM so they track the font instead of
   opening extra space between rows. Verified ~2px residual, no truncation. */
.dash__srow{display:flex;align-items:center;gap:.8em;padding:.45em .88em;border-radius:6px;font-family:var(--ff-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap}
.dash__srow i{width:5px;height:5px;border-radius:50%;background:var(--line-2);flex:none}
.dash__srow.is-on{background:var(--green-dim);color:var(--green)}
.dash__srow.is-on i{background:var(--green)}
.dash__main{padding:clamp(.9rem,2.2vw,1.3rem);display:grid;gap:clamp(.75rem,1.8vw,1.05rem);min-width:0}
.dash__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.dash__title{font-family:var(--ff-display);font-weight:800;font-size:clamp(.9rem,2.2vw,1.05rem);letter-spacing:-.02em}
.dash__live{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .6rem;border-radius:100px;background:var(--green-dim);color:var(--green);font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.dash__live i{width:5px;height:5px;border-radius:50%;background:var(--green);display:block}
.dash__kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.dash__kpi{background:var(--surface);padding:clamp(.6rem,1.6vw,.9rem)}
.dash__kpi b{display:block;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.1rem,3.4vw,1.6rem);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.dash__kpi span{display:block;margin-top:.4rem;font-family:var(--ff-mono);font-size:.5rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash__chart{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:.7rem .8rem .55rem;min-width:0;display:flex;flex-direction:column}
.dash__chart svg{width:100%;height:clamp(3rem,9vw,4.625rem);display:block;overflow:visible;flex:1}
.dash__area{fill:url(#dashfill);stroke:none}
.dash__dot{fill:var(--green)}
.dash__dothalo{fill:var(--green);opacity:.16}
.dash__days{display:flex;justify-content:space-between;margin-top:.45rem;font-family:var(--ff-mono);font-size:.4375rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
/* Dashboard-pane upgrade (Shane 2026-08-01): chart + pipeline side by side */
.dash__mid{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(.75rem,1.8vw,1.05rem);min-width:0}
.dash__phead{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem;font-family:var(--ff-mono);font-size:.5rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-2)}
.dash__pipe{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:.7rem .8rem;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.dash__prow{display:grid;grid-template-columns:6.6em 1fr auto;align-items:center;gap:.5rem;padding-block:.3rem;font-family:var(--ff-mono);font-size:.5rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2)}
.dash__prow em{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash__prow b{font-family:var(--ff-display);font-weight:800;font-size:.7rem;color:var(--ink);font-variant-numeric:tabular-nums}
.dash__pbar{height:5px;border-radius:3px;background:#1c211d;overflow:hidden;display:block}
.dash__pbar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--green),#7fe0a1);width:var(--w);transform-origin:left;animation:pgrow .9s cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--pd)}
@keyframes pgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:700px){
  .dash__mid{grid-template-columns:1fr}
  .dash__kpis{grid-template-columns:repeat(2,1fr)}
}
.dash__spark{fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* dash units are SCREEN px here (vector-effect:non-scaling-stroke), not the
   path's user units - so the value must exceed the rendered path length at
   ANY viewport. 1000 gave a 1000px dash + 1000px gap = the broken line.
   6000 is a ceiling, not a magic number: the widest realistic render (3840px
   display, 1vw root scaling) is ~3100px. Fixing the ARRAY also fixes the
   reduced-motion path, which sets offset:0 but inherits the same array. */
.js .dash__spark{stroke-dasharray:6000;stroke-dashoffset:6000;transition:stroke-dashoffset 1.6s var(--ease) .45s}
.dash.in .dash__spark{stroke-dashoffset:0}
.dash__grid{stroke:var(--line);stroke-width:1}
.dash__rows{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.dash__row{display:flex;align-items:center;gap:.55rem;background:var(--surface);padding:.55rem .75rem;font-size:.75rem;color:var(--muted);min-width:0}
.dash__row b{font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--green);flex:none}
.dash__row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* assembly: each part carries its own delay via --d */
.js .da{opacity:0;transform:translateY(8px);transition:opacity .55s var(--ease),transform .55s var(--ease);transition-delay:var(--d,0s)}
.dash.in .da{opacity:1;transform:none}
@media (min-width:700px){
  .dash__body{grid-template-columns:11.625rem 1fr}
  .dash__side{display:flex}
}

/* ==========================================================================
   MARQUEE
   ========================================================================== */
/* overflow:clip (not hidden) - a hidden overflow still contributes its clipped
   content to the ancestor scrollable-overflow region, which pushed
   documentElement.scrollWidth 3-5px past clientWidth at every width under
   1512. clip removes it entirely. The hidden declaration stays first as the
   fallback for engines without clip support. */
.marquee{background:var(--black);overflow:hidden;overflow:clip;padding-block:1.05rem;border-block:1px solid var(--line);position:relative}
/* edge fades: at the locked slow speed the eye rests on the band and words were
   guillotined mid-glyph at the frame. Solid-colour overlays (not mask) keep the
   seamless fuse into the dark hero above. */
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:clamp(2.5rem,7vw,6rem);z-index:1;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--black),transparent)}
.marquee::after{right:0;background:linear-gradient(270deg,var(--black),transparent)}
/* 150s (Shane round-2 2026-07-29: "reduce the speed significantly" - was 72s,
   originally 36s). The loop period is set by the HALF-track width, so read the
   measured px/s, never the seconds. ~43px/s at 1512. */
.marquee__track{display:flex;width:max-content;animation:slide 300s linear infinite}
.marquee__track span{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.05rem,.95rem + .65vw,1.5rem);letter-spacing:-.025em;padding-inline:1.1rem;display:inline-flex;align-items:center;white-space:nowrap;color:var(--ink)}
.marquee__track em{color:var(--green);font-style:normal;padding-inline:.55rem}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ==========================================================================
   01 PROBLEM
   ========================================================================== */
.prob h2{max-width:none}
/* one centered story column (Shane 2026-08-01 round-3) */
.prob__flow{display:flex;flex-direction:column;align-items:center;text-align:center}
/* V4 equation headline (Shane 2026-08-02): stacked operands, mono operators,
   coral payoff - the claim reads as arithmetic, not a sentence */
/* the equation is a TIGHT one-line lockup strip (Shane ref: the
   Shopify + Ads = rocket meme) - icon discs + short labels + fat operators,
   never lines of prose */
/* SCALE (Shane 2026-08-03): the equation was losing the eye to the app windows
   below it - white cards on paper win any contrast fight a 2.3rem line can put
   up, so the fix is size, not more colour. Roughly doubled: 36.8px -> ~70px at
   1512. The cards themselves are untouched. */
/* NOTE THE SPACES around the `+` — CSS math functions REQUIRE whitespace on both
   sides of + and -, so `1.15rem+3.4vw` is a parse error that kills the WHOLE
   declaration silently. This rule's font-size had been dead since it was
   written: the equation was rendering at the base h2 size, which is the real
   reason it kept losing the eye to the app windows. Found 2026-08-03 by reading
   the PARSED rule (cssRules[].style.fontSize came back empty) rather than
   trusting the source text. */
.prob__eq{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:clamp(.55rem,1.5vw,1.25rem);row-gap:.42em;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.9rem,1.2rem + 3.2vw,4.6rem);line-height:1.05;letter-spacing:-.034em}
.eq__t{display:inline-flex;align-items:center;gap:.42em;white-space:nowrap}

/* Graphic treatment on the two CAUSE terms (Shane 2026-08-03). Each mark says
   what its words say: a jagged fracture under "Broken systems", a rough
   double-pass hand scribble under "Manual work". Both are inline SVG data URIs
   - self-contained, no asset requests, and they scale with the font because the
   box is sized in em. `padding-bottom` reserves the space so the mark can never
   collide with the glyph descenders. */
.eq__t--broken,.eq__t--manual{background-repeat:no-repeat;background-position:left calc(100% - .02em);padding-bottom:.22em}
.eq__t--broken{background-size:100% .22em}
/* the scribble needs MORE vertical room than the crack: preserveAspectRatio
   'none' stretches a 120-wide viewBox out to ~370px, which flattens gentle
   curves into a straight rule. Taller box + higher amplitude keeps it reading
   hand-drawn at the width it is actually painted. */
.eq__t--manual{background-size:100% .26em}
.eq__t--broken{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M0 8 L14 4 L26 9.5 L40 3 L54 8.5 L68 2.5 L82 9 L96 3.5 L110 8.5 L120 5' fill='none' stroke='%23C0503C' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E")}
/* the manual mark is a HAND-RULED INK LINE (Shane pick E, 2026-08-03 - supersedes
   the grey double-pass scribble, which was the only grey element in the lockup and
   said "squiggle", not "manual"). A plain line drawn by a human hand: slightly
   wobbly main stroke + a faint second pass. Ink, so the coral fracture above stays
   the section's one alarm colour. */
.eq__t--manual{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M1 4.5 C30 3.4 62 5.6 119 4.2' fill='none' stroke='%230B0F0C' stroke-width='2.6' stroke-linecap='round' opacity='.85'/%3E%3Cpath d='M3 7.8 C34 6.8 70 8.4 116 7.2' fill='none' stroke='%230B0F0C' stroke-width='1.4' stroke-linecap='round' opacity='.3'/%3E%3C/svg%3E")}

/* the RESULT is the punch - biggest thing in the lockup, and led by an
   emoji-weight icon (filled coral disc) so it reads before the words do.
   Glyph = CARTOON BURNING DOLLAR (Shane reference 2026-08-03 "can we try this
   icon? Exactly?" - the reference was stock art, so this is an ORIGINAL redraw
   of the same composition: one wavy outlined bill, charred torn end, big
   3-layer cartoon flame erupting from BEHIND the tear, bold $ disc. Ink
   outlines are deliberate - this mark trades the site's flat no-outline
   language for the reference's clipart energy. Supersedes E2N3 (3-note
   flat stack), which remains in git history if the style reverts. */
.eq__t--bad{color:#A33420;font-size:1.34em;letter-spacing:-.035em;gap:.29em}
.eq__ic{width:1.06em;height:1.06em;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 42'%3E%3Cg stroke='%231A1A1A' stroke-linejoin='round'%3E%3Cpath d='M4 17.5Q4 15 6.5 15L20 15Q21.5 19.5 25.5 18.8Q27 23 31.5 21.8Q33 26.3 38 25.8L38 30.5Q38 33 35.5 33L6.5 33Q4 33 4 30.5Z' fill='%235FB368' stroke-width='2.2'/%3E%3Cpath d='M20 15Q21.5 19.5 25.5 18.8Q27 23 31.5 21.8Q33 26.3 38 25.8L38 27.2Q32.6 27.6 30.6 23.6Q26.4 24.6 24.2 20.6Q20.6 20.9 18.4 15Z' fill='%234A3A30' stroke='none'/%3E%3Ccircle cx='14' cy='24' r='5.6' fill='%232F7040' stroke-width='2.2'/%3E%3Ctext x='14' y='27.3' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-size='9' font-weight='bold' fill='%23FFFFFF' stroke='none'%3E$%3C/text%3E%3Cg transform='translate(19.0,3.0) scale(0.66)'%3E%3Cpath d='M12 0 C13 5 17.5 7.6 20.2 10.8 C22.8 13.8 24 16.8 24 20 C24 26 18.8 30 12.2 30 C5.4 30 0 25.8 0 19.6 C0 15.4 2 12.4 4.6 9.4 C5.4 11.6 6.8 12.8 8.4 13.4 C7.2 8.8 8.4 4 12 0 Z' fill='%23CE3A22' stroke-width='2.58'/%3E%3Cpath d='M12.2 8.4 C12.8 11.6 15.6 13.4 17.4 15.6 C19 17.6 19.8 19.6 19.8 21.6 C19.8 25.6 16.2 28.2 12.1 28.2 C7.8 28.2 4.4 25.4 4.4 21.4 C4.4 18.8 5.6 16.8 7.4 14.8 C8 16.2 9 17 10.1 17.4 C9.4 14.4 10.2 11.2 12.2 8.4 Z' fill='%23F58220' stroke-width='2.12'/%3E%3Cpath d='M12.1 16.2 C12.5 18 14 19.2 15 20.6 C15.9 21.8 16.3 22.9 16.3 24 C16.3 26.4 14.3 27.9 12.1 27.9 C9.8 27.9 7.9 26.3 7.9 24 C7.9 22.5 8.6 21.3 9.6 20.1 C10 21 10.6 21.5 11.2 21.7 C10.9 19.9 11.2 18 12.1 16.2 Z' fill='%23F5D45E' stroke='none'/%3E%3C/g%3E%3Cg transform='translate(31.6,17.4) scale(0.34)'%3E%3Cpath d='M12 0 C13 5 17.5 7.6 20.2 10.8 C22.8 13.8 24 16.8 24 20 C24 26 18.8 30 12.2 30 C5.4 30 0 25.8 0 19.6 C0 15.4 2 12.4 4.6 9.4 C5.4 11.6 6.8 12.8 8.4 13.4 C7.2 8.8 8.4 4 12 0 Z' fill='%23CE3A22' stroke-width='5.00'/%3E%3Cpath d='M12.2 8.4 C12.8 11.6 15.6 13.4 17.4 15.6 C19 17.6 19.8 19.6 19.8 21.6 C19.8 25.6 16.2 28.2 12.1 28.2 C7.8 28.2 4.4 25.4 4.4 21.4 C4.4 18.8 5.6 16.8 7.4 14.8 C8 16.2 9 17 10.1 17.4 C9.4 14.4 10.2 11.2 12.2 8.4 Z' fill='%23F58220' stroke-width='4.12'/%3E%3Cpath d='M12.1 16.2 C12.5 18 14 19.2 15 20.6 C15.9 21.8 16.3 22.9 16.3 24 C16.3 26.4 14.3 27.9 12.1 27.9 C9.8 27.9 7.9 26.3 7.9 24 C7.9 22.5 8.6 21.3 9.6 20.1 C10 21 10.6 21.5 11.2 21.7 C10.9 19.9 11.2 18 12.1 16.2 Z' fill='%23F5D45E' stroke='none'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
/* pure-type equation, result forced to its own line (Shane 2026-08-02;
   the icon chips are gone for good) */
.eq__br{flex-basis:100%;height:0}
.eq__op{font-style:normal;font-weight:800;font-size:1.12em;color:var(--ink);line-height:1}
/* the lede is load-bearing copy - big enough that it cannot be skipped */
.prob__lede{margin-top:clamp(1.4rem,2.6vw,2rem);font-size:clamp(1.2rem,1.02rem+.9vw,1.65rem);line-height:1.5;font-weight:500;color:var(--ink);max-width:52ch}
/* the problem hue system. The ONLY polychrome on the site: muted
   amber/coral/blue carry the chaos, green stays the solution's colour.
   Deep shades clear 4.5:1 on paper/white for small text. --ghost drives
   the trio's rising numerals. */
.hue-a{--hue:#E09F3E;--hue-deep:#8A5A14;--tint:rgba(224,159,62,.15);--tint-b:rgba(224,159,62,.42);--ghost:rgba(224,159,62,.24)}
.hue-b{--hue:#E2604A;--hue-deep:#A33420;--tint:rgba(226,96,74,.12);--tint-b:rgba(226,96,74,.4);--ghost:rgba(226,96,74,.2)}
.hue-c{--hue:#4E7FE1;--hue-deep:#2D549E;--tint:rgba(78,127,225,.11);--tint-b:rgba(78,127,225,.4);--ghost:rgba(78,127,225,.18)}
/* V4 - the broken-systems diagram (Shane: "areas with the tools underneath,
   and show the break between the connections"). Four labeled area windows,
   three CUT links, the sticky bridging one gap - the only integration is a
   person. Light window chrome ON PURPOSE: never .dash or any dark-island
   trigger class, grey dots not traffic lights (the mac lights stay the hero
   demo's signature). Tilt = rotate:, any scroll-settle = translate: -
   transform belongs to the hover lift ONLY (the kill lists nuke transform,
   never the longhands). */
.mess{position:relative;width:100%;max-width:72rem;margin-top:clamp(1.75rem,3.5vw,2.4rem);container-type:inline-size;text-align:left}
.mess__stage{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;justify-items:center}
.mw{position:relative;display:flex;flex-direction:column;background:var(--surface-2);border:1px solid var(--line);border-radius:.6rem;box-shadow:0 1px 3px rgba(11,15,12,.05),0 10px 28px rgba(11,15,12,.10);overflow:hidden;overflow:clip;font-size:.72rem;font-size:clamp(.72rem,1.15cqw,.78rem);width:100%;max-width:26rem;min-width:0}
.mw__bar{display:flex;align-items:center;gap:.32em;padding:.6em .8em;background:var(--surface);border-bottom:1px solid var(--line)}
/* the AREA NAME is the window's TITLE (Shane 2026-08-03: bars read as empty
   terminals and the in-body titles got lost) - a title bar naming its app is
   the strongest cue that each box is a part of the business. */
.mwt{display:flex;align-items:baseline;gap:.5em;margin-left:.55em;font-family:var(--ff-display);font-weight:800;font-size:1.3em;letter-spacing:-.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mw__bar i{width:.6em;height:.6em;border-radius:50%;background:var(--line-2);flex:none}
.mw__bar span{margin-left:.5em;font-family:var(--ff-mono);font-size:.82em;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mw__badge{margin-left:auto;flex:none;min-width:1.8em;padding:.18em .5em;border-radius:100px;background:var(--hue-deep);color:#fff;font-family:var(--ff-mono);font-size:.8em;font-weight:700;text-align:center;font-variant-numeric:tabular-nums;transition:transform .25s var(--ease)}
.mw__badge.is-tick{transform:scale(1.12)}
.mw__cap{display:block;margin-top:auto;padding:.55em .9em;border-top:1px solid var(--line);background:var(--tint);color:var(--hue-deep);font-size:.95em;font-weight:600;letter-spacing:-.005em;line-height:1.35}
/* app tiles - the phone-homescreen language reads SOFTWARE instantly
   (Shane V5). Real tool names as plain text (nominative use), in-house
   glyphs, never logo copies. --ab tile tint / --ai glyph colour per tool. */
/* bigger boxes, prominent titles, REAL app logos (Shane 2026-08-02) */
.barea{max-width:33rem;font-size:clamp(.82rem,1.55cqw,1rem)}
.barea__t{display:flex;align-items:baseline;gap:.55em;padding:.65em .95em .05em;font-family:var(--ff-display);font-weight:800;font-size:1.35em;letter-spacing:-.02em;color:var(--ink);line-height:1.1}
/* the areas are NUMBERED (Shane 2026-08-03: "make it obvious each area is a
   part of the business") - 01..04 read left-to-right as the path an enquiry
   travels, first click to final invoice, so the cut links between them become
   broken HANDOFFS rather than four random app grids. Number wears the window's
   own hue via --hue-deep. */
.barea__n{font-family:var(--ff-mono);font-weight:500;font-size:.6em;letter-spacing:.08em;color:var(--hue-deep);font-variant-numeric:tabular-nums}
/* the FUNCTION line - what this part of the business DOES, in service-business
   words (enquiries, quotes, appointments, invoices). This is the line that
   makes the diagram read "service business" without touching the structure. */
.barea__f{padding:.6em .95em 0;font-size:.88em;font-weight:550;color:var(--muted);line-height:1.3}
.barea__apps{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:clamp(.8em,1.5cqw,1.3em);padding:1em .7em 1.2em}
.bapp{display:flex;flex-direction:column;align-items:center;gap:.5em;min-width:0;max-width:6.9em}
.bapp__ic{position:relative;display:inline-flex;align-items:center;justify-content:center;width:3.4em;height:3.4em;border-radius:.85em;background:#fff;box-shadow:inset 0 0 0 1px rgba(11,15,12,.07),0 1px 3px rgba(11,15,12,.06)}
.bapp__ic img{width:64%;height:64%;object-fit:contain;display:block}
.bapp__ic svg{width:1.35em;height:1.35em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* tile labels QUIETED (Shane 2026-08-03 "a bit too busy"): the tools are set
   dressing, the area title + function line carry the meaning - so labels drop
   to muted/450 and stop competing with the hierarchy above them. */
.bapp>span{font-size:.72em;font-weight:450;color:var(--muted);line-height:1.25;text-align:center;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* the unread badge rides the Gmail tile corner - iOS notification grammar */
.bapp__badge{position:absolute;top:-.45em;right:-.45em;min-width:1.7em;padding:.16em .38em;border-radius:100px;background:#D33427;color:#fff;font-family:var(--ff-mono);font-size:.62em;font-weight:700;text-align:center;line-height:1.3;font-variant-numeric:tabular-nums;box-shadow:0 1px 4px rgba(11,15,12,.18);transition:transform .25s var(--ease)}
.bapp__badge.is-tick{transform:scale(1.14)}
/* the CUT link - dashed segments, a gap, a coral X. Vertical in the stacked
   column (base), horizontal in the desktop row (>=900 override). */
.mlink{position:relative;display:block;width:.9rem;height:2.6rem;justify-self:center}
.mlink::before,.mlink::after{content:"";position:absolute;left:50%;translate:-50% 0;height:30%;border-left:2px dashed var(--line-2)}
.mlink::before{top:0}
.mlink::after{bottom:0}
.mlink__x,.mlgx b{position:absolute;left:50%;top:50%;width:.8rem;height:.8rem;translate:-50% -50%}
.mlink__x::before,.mlink__x::after,.mlgx b::before,.mlgx b::after{content:"";position:absolute;left:50%;top:50%;width:100%;height:2px;background:#C0503C;translate:-50% -50%}
.mlink__x::before,.mlgx b::before{rotate:45deg}
.mlink__x::after,.mlgx b::after{rotate:-45deg}
.mnote{position:relative;padding:1em 1.1em;background:linear-gradient(180deg,#F8E9C4,#F3DFAF);border:1px solid var(--tint-b);border-radius:.25rem;box-shadow:0 8px 20px rgba(11,15,12,.16);font-size:.72rem;font-size:clamp(.72rem,1.15cqw,.78rem);max-width:15rem}
.mnote::before{content:"";position:absolute;top:-.5em;left:50%;width:2.6em;height:1em;background:rgba(255,255,255,.55);border:1px solid rgba(11,15,12,.08);translate:-50% 0;rotate:-2deg}
.mnote b{display:block;font-size:1.05em;line-height:1.35;color:#5a4210}
.mnote span{display:block;margin-top:.4em;font-size:.88em;font-style:italic;color:#8A5A14}
/* legend - visible text, sits OUTSIDE the aria-hidden stage */
.mess__legend{display:flex;align-items:center;justify-content:center;gap:.65rem;margin-top:clamp(1.2rem,2vw,1.7rem);font-family:var(--ff-mono);font-size:.6875rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2)}
/* the count carries the line, so it gets the weight (Shane 2026-08-03: "make
   that 10+ ... more prominent, but keep the same font"). Mono, uppercase and
   tracking all stay - only size/weight/colour move, on the number alone. */
.mlgn{display:inline}
.mlgn__n{font-size:1.5em;font-weight:700;color:var(--ink);letter-spacing:.02em}
.mlgx{position:relative;width:2.4rem;height:.9rem;flex:none}
.mlgx::before,.mlgx::after{content:"";position:absolute;top:50%;width:32%;border-top:2px dashed var(--line-2)}
.mlgx::before{left:0}
.mlgx::after{right:0}
.mlgx b{width:.55rem;height:.55rem}
.mlgx b::before,.mlgx b::after{height:1.5px}
/* assembly: container is .rv (existing observer), parts are .da (existing
   hidden state, already in every kill list + noscript) */
.mess.in .da{opacity:1;transform:none}
/* hover lift AFTER the un-hide rule - the .pcost re-assert precedent; the
   transition re-declare drops the reveal stagger's var(--d) delay */
.mess.in .mw:hover,.mess.in .mw.is-hot,.mess.in .mnote:hover{transform:translateY(-4px);z-index:7;box-shadow:var(--shadow-card);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}

/* ============ the four-parts diagram (Shane pick 2026-08-04: variant 2 'sections
   made visible' - four territories, three coral Human breaks; replaces the .mess
   app-window grid). Container is .rv (existing observer), children .da. ============ */
.parts{position:relative;width:100%;max-width:72rem;margin:clamp(1.75rem, 3.5vw, 2.4rem) auto 0;padding:0 1.5rem;text-align:left}
.parts__head{display:flex;align-items:baseline;justify-content:space-between;gap:1.1rem;padding-bottom:clamp(1.25rem, 1rem + .8vw, 2.1rem)}
.parts__cap,.parts__legend{font-family:var(--ff-mono);font-size:clamp(.605rem, .58rem + .09vw, .66rem);letter-spacing:.17em;line-height:1;text-transform:uppercase}
.parts__cap{color:var(--muted)}
.parts__legend{color:#A33420;display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap}
.parts__glyph{width:1.875rem;height:.75rem;flex:0 0 auto;display:block}
.parts__grid{display:grid;--pgap:8.25rem;grid-template-columns:1fr var(--pgap) 1fr var(--pgap) 1fr var(--pgap) 1fr;align-items:stretch;padding-bottom:calc(var(--pgap) * 0.52 + 1.6rem)}
.parts__field,.parts__gap{grid-row:1;min-width:0}
.parts__f1{grid-column:1}.parts__g1{grid-column:2}.parts__f2{grid-column:3}.parts__g2{grid-column:4}.parts__f3{grid-column:5}.parts__g3{grid-column:6}.parts__f4{grid-column:7}
.parts__field{display:flex;flex-direction:column}
.parts__body{position:relative;flex:1 1 auto;display:flex;flex-direction:column;min-width:0;padding:clamp(.875rem, .75rem + .3vw, 1.2rem) clamp(.7rem, .5rem + .6vw, 1.2rem) clamp(1.5rem, 1.25rem + .8vw, 2.1rem);background:linear-gradient(180deg, rgba(11,15,12,.036) 0%, rgba(11,15,12,.012) 54%, rgba(11,15,12,0) 100%)}
.parts__body::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line)}
.parts__body::after{content:"";position:absolute;top:0;left:0;right:0;height:1rem;pointer-events:none;background:linear-gradient(var(--line),var(--line)) left top/1px 1rem no-repeat,linear-gradient(var(--line),var(--line)) right top/1px 1rem no-repeat}
.parts__title{display:block;font-family:var(--ff-display);font-weight:800;letter-spacing:-.015em;line-height:1.1;color:var(--ink);font-size:clamp(1.04rem, .96rem + .34vw, 1.3rem)}
.parts__lines{display:block;margin-top:auto;padding-top:clamp(.875rem, .7rem + .5vw, 1.4rem)}
.parts__lines span{display:block;color:var(--muted);font-size:clamp(.78rem, .745rem + .14vw, .8125rem);line-height:1.5;letter-spacing:.002em;text-wrap:pretty}
.parts__lines span + span{margin-top:.32rem}
.parts__rail{display:block;margin-top:auto;height:2px;background:var(--ink)}
.parts__rail--start{margin-left:-1.5rem;background:linear-gradient(to right, rgba(11,15,12,0) 0, var(--ink) 5.25rem)}
.parts__rail--end{margin-right:-1.5rem;background:linear-gradient(to left, rgba(11,15,12,0) 0, var(--ink) 5.25rem)}
.parts__gap{display:flex;flex-direction:column;justify-content:flex-end}
.parts__loopwrap{position:relative;display:block;height:2px}
.parts__loop-h{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:132 / 68;display:block;overflow:visible}
.parts__loop-v{display:none}
.parts__chip{position:absolute;left:50%;top:calc(var(--pgap) * 0.4242);transform:translate(-50%, -50%);background:var(--bg);border:1px solid rgba(226,96,74,.34);border-radius:999px;padding:.32rem .8rem .38rem;font-family:var(--ff-mono);font-size:.656rem;letter-spacing:.11em;line-height:1;color:#A33420;white-space:nowrap;font-weight:400}
.parts.in .da{opacity:1;transform:none}
@media (max-width:1180px){
  .parts__grid{--pgap:7rem}
  .parts__chip{font-size:.625rem;padding:.32rem .7rem .38rem;letter-spacing:.09em}
}
@media (max-width:1120px){
  .parts{padding:0 1.25rem}
  .parts__head{flex-direction:column;align-items:flex-start;gap:.7rem}
  .parts__grid{display:flex;flex-direction:column;gap:0;padding-bottom:0}
  .parts__field{position:relative;padding-left:1.65rem}
  .parts__body{padding:.95rem 1rem 1.25rem}
  .parts__lines{margin-top:0;padding-top:.75rem}
  .parts__rail{position:absolute;left:0;top:0;bottom:0;width:2px;height:auto;margin:0}
  .parts__rail--start{margin:0;background:linear-gradient(to bottom, rgba(11,15,12,0) 0, var(--ink) 3.6rem)}
  .parts__rail--end{margin:0;background:linear-gradient(to top, rgba(11,15,12,0) 0, var(--ink) 3.6rem)}
  .parts__gap{display:block}
  .parts__loopwrap{width:15rem;max-width:100%;height:7.25rem}
  .parts__loop-h{display:none}
  .parts__loop-v{display:block;position:absolute;left:0;top:0;width:15rem;height:7.25rem;overflow:visible}
  .parts__chip{left:9.4rem;top:3.6rem}
}
@media (max-width:430px){
  .parts__title{font-size:1.07rem}
  .parts__loopwrap{width:13.4rem;height:6.9rem}
  .parts__loop-v{width:13.4rem;height:6.9rem}
  .parts__chip{left:8.4rem;top:3.45rem}
}

/* stacked column below 900: the sticky slots between Sales and Fulfilment
   (its bridge in the desktop composition) */
@media (max-width:899px){
  .mnote--x{display:none}
  .mess__stage>*:nth-child(1){order:1}
  .mess__stage>*:nth-child(2){order:2}
  .mess__stage>*:nth-child(3){order:3}
  .mess__stage>*:nth-child(8){order:4}
  .mess__stage>*:nth-child(4){order:5}
  .mess__stage>*:nth-child(5){order:6}
  .mess__stage>*:nth-child(6){order:7}
  .mess__stage>*:nth-child(7){order:8}
  .mnote{rotate:-3deg}
}
/* desktop 2x2 GRID (Shane 2026-08-04: the single row was 'congested browser
   boxes' - four windows can never breathe side by side). Two columns, twice
   the window area, cut links on both seams, Sarah's note pinned dead-centre
   as the only thing bridging all four quadrants. Stickies are ANCHORED to
   window corners, never floating loose. */
@media (min-width:900px){
  .mess__stage{grid-template-columns:minmax(0,1fr) 2.6rem minmax(0,1fr);grid-template-rows:auto 2.6rem auto;gap:0;align-items:stretch;justify-items:stretch;max-width:58rem;margin:0 auto}
  .mw{max-width:none;font-size:clamp(.78rem,1.3cqw,.9rem)}
  .mess__stage>div:nth-child(1){grid-area:1/1;rotate:.6deg}
  .mess__stage>div:nth-child(3){grid-area:1/3;rotate:-.5deg}
  .mess__stage>div:nth-child(5){grid-area:3/1;rotate:-.6deg}
  .mess__stage>div:nth-child(7){grid-area:3/3;rotate:.5deg}
  .mlk1{grid-area:1/2;align-self:center;justify-self:stretch;width:100%;height:2.4rem}
  .mlk4{grid-area:3/2;align-self:center;justify-self:stretch;width:100%;height:2.4rem}
  .mlk1::before,.mlk1::after,.mlk4::before,.mlk4::after{height:auto;width:30%;border-left:0;border-top:2px dashed var(--line-2);top:50%;translate:0 0}
  .mlk1::before,.mlk4::before{left:0}
  .mlk1::after,.mlk4::after{left:auto;right:0;bottom:auto}
  .mlk2{grid-area:2/1;justify-self:center;align-self:stretch;height:100%;width:.9rem}
  .mlk3{grid-area:2/3;justify-self:center;align-self:stretch;height:100%;width:.9rem}
  .mnote--sarah{position:absolute;left:50%;top:54%;translate:-50% -50%;rotate:-5deg;width:8.2rem;z-index:6;font-size:clamp(.6rem,.9cqw,.7rem)}
  /* stickies TAPED to window corners */
  .mnote--x{position:absolute;width:7rem;z-index:6;padding:.6em .75em;font-size:clamp(.56rem,.85cqw,.66rem)}
  .mn2{left:1.8%;top:-8%;rotate:-5deg}                        /* above Marketing's bar corner */
  .mn3{right:.5%;top:-6%;left:auto;rotate:4deg;width:7.6rem}  /* above Sales' bar corner */
  .mn4{right:-2%;top:49.5%;left:auto;rotate:-4deg}            /* Sales caption band, empty right end */
  .mn5{left:-1.2%;top:100.5%;rotate:5deg;width:7.4rem}        /* hanging under Fulfilment's corner */
  .mn6{right:-1.6%;top:101.5%;left:auto;translate:0 -100%;rotate:-4deg;width:6.4rem} /* on Admin's corner */
}
/* gentle life at rest - gated like the sdev loops, so no kill-list entries */
@media (prefers-reduced-motion:no-preference){
  .bapp__badge{animation:badgeGlow 3.2s var(--ease) infinite}
  @keyframes badgeGlow{0%,100%{box-shadow:0 0 0 0 rgba(226,96,74,.38)}55%{box-shadow:0 0 0 .55em rgba(226,96,74,0)}}
}
/* the kicker is a real subhead now (Shane: "tiny writing, but such an
   important piece of copy") */
/* NOTE 2026-08-04: the font-size clamp here was written `1.05rem+1vw` with no
   spaces around the `+`. CSS math REQUIRES whitespace on both sides of + and -,
   so the whole declaration was invalid and silently dropped - the kicker had
   never once rendered at its intended size. Spaces restored, and sized to match
   the lede per Shane 2026-08-04 17:17 ("kicker matches the lede size, with air"). */
/* stepped up again 2026-08-05 (Shane: "increase the size... again" + side
   padding). The punch below carries the IDENTICAL clamp - Shane's same-size
   pairing of the two closing titles. */
.prob__kick{margin-top:clamp(4rem, 3rem + 2.5vw, 6rem);margin-bottom:clamp(2.5rem, 2rem + 1.3vw, 3.6rem);padding-inline:clamp(1rem, .8rem + 1vw, 2rem);display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.55rem, 1.3rem + 1.2vw, 2.5rem);letter-spacing:-.02em;color:var(--ink)}
/* the cost trio. Same 1px-gap card grammar as the outcome trio at rest;
   hue accents; the numerals are DESIGN ELEMENTS that rise on scroll and
   pop on hover (Shane V4). overflow pair: clip so the card is NOT a
   scroll container (view() ghost drift binds to the viewport). */
.pcosts{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(1.4rem,2.6vw,2rem);width:100%;max-width:64rem;text-align:left}
.pcost{position:relative;overflow:hidden;overflow:clip;isolation:isolate;background:var(--surface-2);padding:clamp(1.5rem,3vw,2.25rem);transition:transform .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
.pcost::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--hue)}
.pcost::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--hue);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.pcost:hover,.pcost.is-hot{background:#FCFEFA;transform:translateY(-4px);box-shadow:var(--shadow-card);z-index:1}
.pcost:hover::after,.pcost.is-hot::after{transform:scaleX(1)}
.pcost__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem}
.pcost__ic{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.9rem;background:var(--tint);color:var(--hue-deep)}
.pcost__ic svg{width:20px;height:20px}
.pcost h3{margin-bottom:.6rem;font-size:clamp(1.55rem,1.25rem+1.3vw,2.15rem);letter-spacing:-.025em;transition:color .25s var(--ease)}
.pcost:hover h3,.pcost.is-hot h3{color:var(--hue-deep)}
.pcost p{color:var(--muted);font-size:.97rem;line-height:1.66}
/* numeral: (0,2,0) so neither .pcost p nor the <=640 compact list can
   override the mono size - the ocard clone source has that exact bug */
.pcost .pcost__n{font-size:.6875rem;color:var(--hue-deep)}
.pcost .ghost{position:absolute;right:-.05em;bottom:-.28em;z-index:0;font-family:var(--ff-display);font-weight:800;font-size:8.5rem;line-height:1;letter-spacing:-.05em;color:var(--ghost,rgba(11,15,12,.05));pointer-events:none;user-select:none;transition:scale .45s var(--ease)}
.pcost:hover .ghost,.pcost.is-hot .ghost{scale:1.08}
/* the numerals COME UP on scroll (translate/opacity longhands - compose
   with ghostDrift's transform and are untouched by every transform:none
   kill rule; the no-preference gate keeps reduced-motion/print safe) */
@media (prefers-reduced-motion:no-preference){
  .js .rv .pcost .ghost{opacity:0;translate:0 2.2rem}
  .rv.in .pcost .ghost{opacity:1;translate:0 0;transition:opacity .7s var(--ease) calc(var(--d,0s) + .2s),translate .7s var(--ease) calc(var(--d,0s) + .2s),scale .45s var(--ease)}
}
/* content above the watermark: pcosts is not a glow-grid, so it needs the
   child z-lift ocards get from .glow-grid>*>* (a positioned z-0 ghost paints
   over in-flow text otherwise) */
.pcost>*:not(.ghost){position:relative;z-index:1}
.js .rv .pcost{opacity:0;transform:translateY(12px)}
.rv.in .pcost{opacity:1;transform:none;transition:opacity .55s var(--ease) var(--d,0s),transform .55s var(--ease) var(--d,0s),background .3s var(--ease)}
/* re-assert the lift AFTER reveal: .rv.in .pcost{transform:none} (0,3,0)
   otherwise kills :hover/.is-hot translateY forever once .in lands (the
   observer unobserves). The transition re-declare restores hover timing and
   drops the var(--d) reveal delay that would lag card 3 by .2s. */
.rv.in .pcost:hover,.rv.in .pcost.is-hot{transform:translateY(-4px);transition:transform .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
@media (min-width:820px){.pcosts{grid-template-columns:repeat(3,1fr)}}

/* ==========================================================================
   THE COSTS - editorial, no boxes (Shane 2026-08-04).
   Carding the costs was the diagnosed miss: white cards in the same grammar as
   the four parts above made the costs read as MORE PARTS OF THE BUSINESS. They
   are consequences, so typography carries them - the equation's display voice
   plus the lede's coral hand-rule. Green appears nowhere here; green is the
   solution's colour and the close is where it first lands.
   Supersedes the .pcost* card block above, which is now DORMANT (markup gone
   from index.html). Left in place rather than deleted - same call as the .mess
   CSS on 2026-08-04 V5. FLAGGED for a dead-CSS sweep, not bundled here.
   ========================================================================== */
/* closing rule under the trio (Shane 2026-08-05: "some sort of line divider
   between 'Count the hours' and the 3x boxes") - a hairline the exact width
   of the grid, the horizontal counterpart of the columns' vertical dividers:
   reads as the rule under a sum. Air above it from padding-bottom here, air
   below it from .prob__close's existing margin-top. */
.costs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:66rem;margin-inline:auto;text-align:left;padding-bottom:clamp(2.2rem, 1.8rem + 1.2vw, 3.2rem);position:relative}
.costs::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);transform-origin:left}
.cost{padding:0 clamp(1.4rem, 1rem + 1.6vw, 2.6rem);transition:opacity .65s cubic-bezier(.22,.7,.3,1) calc(var(--ci) * .18s),transform .65s cubic-bezier(.22,.7,.3,1) calc(var(--ci) * .18s)}
.cost{position:relative}
.cost + .cost::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line);transform-origin:top}
/* numerals rise a beat AFTER their column lands (Shane: "01, 02, 03 coming up
   as you scroll"). .costs carries .rv, so the site's existing reveal observer
   drives this - no new JS. */
/* bigger + fainter (Shane 2026-08-05) - a quiet oversized index in the ghost
   register, still tabular mono. Rise distance bumped below so the scroll
   entrance actually reads at this size. */
.cost__num{display:block;font-family:var(--ff-mono);font-size:clamp(1.1rem, .95rem + .65vw, 1.6rem);font-weight:600;letter-spacing:.18em;color:#c4cbc5;font-variant-numeric:tabular-nums;transition:opacity .55s ease calc(var(--ci) * .18s + .3s),transform .55s ease calc(var(--ci) * .18s + .3s)}
/* the hidden state is .js-gated, exactly as .pcost was. index.html:31 adds .js
   inline and STRIPS it again after 3s if the bundle never boots, so a no-JS or
   failed-JS visitor gets the copy at full opacity instead of a blank section.
   An ungated opacity:0 here would have shipped an invisible trio. */
.js .costs .cost{opacity:0;transform:translateY(18%)}
.js .costs .cost__num{opacity:0;transform:translateY(18px)}
.costs.in .cost{opacity:1;transform:none}
.costs.in .cost__num{opacity:1;transform:none}
/* -- lytbox-style structure draw on the trio (see the motion block above) -- */
.cost{transition:opacity .9s cubic-bezier(.25,.46,.45,.94) calc(var(--ci) * .15s),transform .9s cubic-bezier(.25,.46,.45,.94) calc(var(--ci) * .15s)}
/* vertical dividers draw top-down as their column lands */
.js .cost + .cost::before{transform:scaleY(0)}
.costs.in .cost + .cost::before{transform:scaleY(1);transition:transform .9s cubic-bezier(.25,.46,.45,.94) calc(var(--ci) * .15s)}
@media (max-width:900px){
  .js .cost + .cost::before{transform:scaleX(0)}
  .costs.in .cost + .cost::before{transform:scaleX(1)}
}
/* the coral hand-rule under Time/Money/Efficiency wipes on left-to-right
   (our background-SVG equivalent of their DrawSVG) */
.js .costs .cost__t{background-size:0% .16em}
.costs.in .cost__t{background-size:100% .16em;transition:background-size .8s cubic-bezier(.25,.46,.45,.94) calc(var(--ci) * .15s + .35s)}
/* bullets rise in sequence; each X pops a beat after its line lands */
.js .costs .cost__list li{opacity:0;transform:translateY(10px)}
.costs.in .cost__list li{opacity:1;transform:none;transition:opacity .5s cubic-bezier(.25,.46,.45,.94) var(--bd),transform .5s cubic-bezier(.25,.46,.45,.94) var(--bd)}
.costs.in .cost__list li:nth-child(1){--bd:calc(var(--ci) * .15s + .45s)}
.costs.in .cost__list li:nth-child(2){--bd:calc(var(--ci) * .15s + .53s)}
.costs.in .cost__list li:nth-child(3){--bd:calc(var(--ci) * .15s + .61s)}
.costs.in .cost__list li:nth-child(4){--bd:calc(var(--ci) * .15s + .69s)}
.costs.in .cost__list li:nth-child(5){--bd:calc(var(--ci) * .15s + .77s)}
.js .costs .cost__list li::before{scale:0;rotate:-30deg}
.costs.in .cost__list li::before{scale:1;rotate:0deg;transition:scale .35s cubic-bezier(.25,.46,.45,.94) calc(var(--bd) + .15s),rotate .35s cubic-bezier(.25,.46,.45,.94) calc(var(--bd) + .15s)}
/* the closing divider draws after the trio settles */
.js .costs::after{transform:scaleX(0)}
.costs.in::after{transform:scaleX(1);transition:transform 1s cubic-bezier(.25,.46,.45,.94) .9s}
/* the coral hand-rule is the same mark family as the fracture under "Broken
   systems" - em-sized so it scales with the word, never a fixed hairline */
.cost__t{margin:.55rem 0 0;font-family:var(--ff-display);font-weight:800;letter-spacing:-.025em;line-height:1.05;color:var(--ink);font-size:clamp(1.7rem, 1.45rem + 1.1vw, 2.4rem);display:inline-block;padding-bottom:.18em;background-image:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%20120%208%27%20preserveAspectRatio=%27none%27%3E%3Cpath%20d=%27M2%205%20C28%203.2%2052%206.4%2076%204.6%20C94%203.4%20108%205.2%20118%204.2%27%20fill=%27none%27%20stroke=%27%23E2604A%27%20stroke-width=%272.6%27%20stroke-linecap=%27round%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left calc(100% - .02em);background-size:100% .16em}
.cost__p{margin:1.05rem 0 0;font-size:clamp(.92rem, .86rem + .25vw, 1.02rem);line-height:1.55;color:#2e352f}
.cost__p b{font-weight:600}
/* 2026-08-05 second pass (Shane: "5x bullets of the same length... a red X
   marking each" - supersedes the sentence-per-beat spans of the same hour):
   each column is 5 uniform short bullets, each marked with a coral X in the
   pain-mark family. Copy compressed from the previous sentences. */
.cost__list{margin:1.05rem 0 0;padding:0;list-style:none;font-size:clamp(.92rem, .86rem + .25vw, 1.02rem);line-height:1.5;color:#2e352f}
.cost__list li{position:relative;padding-left:1.4em;text-wrap:pretty}
.cost__list li + li{margin-top:.6em}
.cost__list li::before{content:"";position:absolute;left:0;top:.26em;width:.8em;height:.8em;background:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2012%2012%27%3E%3Cpath%20d=%27M2.2%202.4%20C%204.8%205%207.4%207.6%209.9%2010.1%20M9.8%202.2%20C%207.3%204.9%204.8%207.5%202.3%209.9%27%20fill=%27none%27%20stroke=%27%23E2604A%27%20stroke-width=%272.3%27%20stroke-linecap=%27round%27/%3E%3C/svg%3E") no-repeat center/contain}
/* (0,3,0) so it outranks the .js-gated hidden state above - a (0,1,0) rule
   would have lost to it and left reduced-motion users staring at nothing. */
@media (prefers-reduced-motion:reduce){
  .js .costs .cost,.js .costs .cost__num,.js .costs .cost__list li,
  .js .cost + .cost::before,.js .costs::after{opacity:1;transform:none;transition:none}
  .js .costs .cost__list li::before{scale:1;rotate:0deg;transition:none}
  .js .costs .cost__t{background-size:100% .16em}
}
@media (max-width:900px){
  .costs{grid-template-columns:1fr;row-gap:2rem}
  .cost + .cost{padding-top:2rem}
  /* stacked: the divider between columns is horizontal - redraw the pseudo */
  .cost + .cost::before{top:0;bottom:auto;left:0;right:0;width:auto;height:1px;transform-origin:left}
}

/* the close: bill and punch flow as ONE block, same size - the pop comes
   from weight and colour, never size (Shane V4). Punch copy is LOCKED.
   ---
   FIXED 2026-08-04 (Shane: "it looks like blocks of text smushed together").
   TWO independent bugs, both here, both present since V4:
   1. BOTH font-size clamps were written `.95rem+.6vw` with no spaces around
      the `+`. Invalid CSS math -> the browser dropped both declarations whole,
      so the close rendered at the raw inherited body size (17.5px measured)
      instead of the intended 1.4rem (23.1px). V4's design had never rendered.
   2. `margin-top:1.1em` on the punch is SMALLER than the bill's own
      `line-height:1.55em`, so the gap BETWEEN the two paragraphs was always
      narrower than the gap between the bill's own two lines - at any font
      size. That inversion (ratio 0.71) is what read as "smushed"; fixing the
      clamp alone would NOT have fixed it, because both scale together.
      Now 2.4em, so the beat clearly beats the line spacing.
   Leading also raised 1.55 -> 1.66 to match the .cost__p above it; the close
   was reading tighter than the trio it concludes.
   V4 LOCK HELD: bill and punch are still the SAME size. The pop is face,
   weight, colour and the green rule - never size. */
/* widened 2026-08-05: the 52ch cap (~450px) was set when bill+punch were
   21px; at the stepped-up sizes it wrapped the punch mid-sentence ("people /
   problem.") - the exact wrap-class Shane rejected on the lede 08-04. 78ch
   lets both sentences of the punch sit one per line at 47px. */
.prob__close{margin-top:clamp(2rem,4vw,3rem);max-width:min(78ch, 94vw)}
/* stepped up 2026-08-05 (Shane: "make this bigger") */
.prob__bill{font-size:clamp(1.2rem, 1.05rem + .85vw, 1.75rem);line-height:1.6;color:var(--muted)}
.prob__bill b{color:var(--ink)}
/* SUPERSEDED 2026-08-05 by Shane (his page, his call - overturns both the V4
   same-size lock above and the green-first-lands-at-the-close law): the punch
   is now TWO LINES (sentence per line via <br>), sized to MATCH THE KICKER
   ("the same size as 'You pay for it three ways'"), and "It's a systems
   problem." wears RED not green - the site's own pain pair, deep #A33420 text
   (the legend red, 4.5:1 on paper) with the coral #E2604A mark as the rule.
   Weight matched to the kicker's 800 so the two titles truly read same-size. */
/* stepped up AGAIN 2026-08-05 ("make this bigger again") - NOTE this breaks
   the same-morning kicker==punch size pairing by Shane's own instruction; the
   punch now outranks the kicker deliberately. */
.prob__punch{margin-top:2.2em;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.9rem, 1.6rem + 1.5vw, 3.1rem);line-height:1.3;color:var(--ink);max-width:none;text-wrap:balance}
.prob__sys{color:#A33420;position:relative;white-space:nowrap}
.prob__sys::after{content:"";position:absolute;left:0;right:0;bottom:-.24em;height:2px;background:#E2604A}
.js .prob__sys::after{transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease) .25s}
.rv.in .prob__sys::after{transform:scaleX(1)}

/* ==========================================================================
   02 THE METHOD PANELS  (v4 round 2 - Shane 2026-07-29: the old conveyor read
   "sparse", the numeral floated in an empty stage and the scrub rail hung off
   the far left. ONE panel design now serves both tiers: tier 1 stacks the four
   panels, tier 2 overlays and cross-fades them in the pinned stage. The
   progress track lives INSIDE the panel head, so nothing is orphaned.)
   ========================================================================== */
.steps{display:grid;gap:clamp(1rem,2.2vw,1.5rem);margin-top:clamp(2rem,4vw,3rem)}
.step{position:relative;overflow:hidden;background:var(--surface-2);border:1px solid var(--line);border-radius:1rem;padding:clamp(1.35rem,3vw,2.5rem);transition:border-color .35s var(--ease),box-shadow .35s var(--ease)}
.step:hover,.step.is-hot{border-color:var(--line-2);box-shadow:var(--shadow-card)}
/* the numeral is a watermark CLIPPED BY THE PANEL - contained, never floating */
.step__n{position:absolute;right:-.05em;bottom:-.32em;z-index:0;font-family:var(--ff-display);font-weight:800;font-size:clamp(6rem,13vw,13rem);line-height:1;letter-spacing:-.05em;color:var(--green-dim-2);pointer-events:none;user-select:none}
.step__head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.step__k{display:inline-flex;align-items:center;color:var(--muted-2)}
.steps__pips{display:inline-flex;align-items:center;gap:.32rem;flex:none}
.steps__pips i{display:block;width:1.15rem;height:2px;border-radius:2px;background:var(--line-2)}
.steps__pips i.is-on{background:var(--green)}
.strack{position:relative;z-index:1;height:2px;border-radius:2px;background:var(--line);overflow:hidden;margin:clamp(.85rem,1.8vw,1.15rem) 0 clamp(1.5rem,3vw,2.25rem)}
.strack__fill{position:absolute;inset:0;background:var(--green);transform-origin:left;transform:scaleX(var(--p,0))}
.step__grid{position:relative;z-index:1;display:grid;gap:clamp(1.5rem,3vw,2.5rem)}
.step__t{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.5rem,1.15rem + 1.4vw,2.25rem);line-height:1.06;letter-spacing:-.028em}
.step__rule{display:block;width:2.5rem;height:2px;border-radius:2px;background:var(--green);margin:clamp(.85rem,1.8vw,1.15rem) 0}
.step__b{color:var(--muted);font-size:clamp(.9375rem,.92rem + .18vw,1.0625rem);line-height:1.66;max-width:42ch}
.js .rv .step{opacity:0;transform:translateY(14px)}
.rv.in .step{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.rv.in .step:nth-child(2){transition-delay:.08s}
.rv.in .step:nth-child(3){transition-delay:.16s}
.rv.in .step:nth-child(4){transition-delay:.24s}
@media (min-width:820px){
  .step__grid{grid-template-columns:1fr minmax(0,.85fr);align-items:center}
}
/* below the pinned scene the pips + in-panel track are scene instrumentation,
   not content (audit): hide them on mobile; tier-1 desktop fallback keeps them */
@media (max-width:899px){
  .steps__pips,.strack{display:none}
}

/* ---- per-step mini-diagrams (round-2: icons + per-item hue + living motion -
   Shane: "so bland... need more icons, animation and colour"). The story runs
   in colour: many-coloured scattered tools -> integrated into the one green
   system. Decorative (every wrapper aria-hidden); loops are transform/opacity/
   border-colour on tiny elements and go static under reduced motion. ---- */
.sdev{--sp:clamp(.9rem,2vw,1.4rem);position:relative;border:1px solid var(--line);border-radius:.75rem;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);aspect-ratio:4/3;padding:var(--sp);overflow:hidden}
@media (max-width:819px){.sdev{aspect-ratio:16/9;max-height:14rem}}

/* 01 document - every part of the business, written down */
.sdev--doc{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:clamp(.4rem,1.1vw,.7rem)}
.sdoc{display:flex;flex-direction:column;justify-content:center;gap:.34rem;padding:.55rem;border:1px solid var(--line);border-radius:.4rem;background:var(--surface-2)}
.sdoc svg{width:1rem;height:1rem;margin-bottom:.15rem;fill:none;stroke:var(--dc,var(--green-t));stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sdoc i{display:block;height:2px;border-radius:2px;background:var(--line-2)}
.sdoc i:nth-of-type(1){width:88%;background:var(--dc,var(--line-2));opacity:.45}
.sdoc i:nth-of-type(2){width:56%}
@media (prefers-reduced-motion:no-preference){
  .sdoc{animation:docPulse 7.2s var(--ease) infinite;animation-delay:calc(var(--i,0) * 1.2s)}
  @keyframes docPulse{0%,4%{border-color:var(--line);transform:none}9%,16%{border-color:var(--dc,var(--green));transform:translateY(-2px)}26%,100%{border-color:var(--line);transform:none}}
}

/* 02 automate - the same records, moving on their own down a rail */
.sdev--auto{display:grid;align-content:center;gap:clamp(.55rem,1.5vw,.95rem)}
.sdev--auto .srail{position:absolute;left:calc(var(--sp) + .3rem);top:14%;bottom:14%;width:2px;margin-left:-1px;border-radius:2px;background:var(--green-dim)}
.sauto{position:relative;margin-left:1.7rem;display:flex;align-items:center;gap:.55rem;padding:.45rem .6rem;border:1px solid var(--line);border-radius:.4rem;background:var(--surface-2)}
.sauto::before{content:"";position:absolute;left:-1.4rem;top:50%;width:1.4rem;height:1px;background:var(--line-2)}
.sauto::after{content:"";position:absolute;left:-1.4rem;top:50%;width:.45rem;height:.45rem;margin:-.225rem 0 0 -.225rem;border-radius:50%;background:var(--dc,var(--green))}
.sauto b{display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border-radius:.3rem;border:1px solid var(--dc,var(--green));background:var(--dcb,var(--green-dim));flex:none}
.sauto b svg{width:.85rem;height:.85rem;fill:none;stroke:var(--dc,var(--green-t));stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sauto i{display:block;height:2px;border-radius:2px;background:var(--line-2)}
.sauto i:nth-of-type(1){width:52%}
.sauto i:nth-of-type(2){width:26%}
@media (prefers-reduced-motion:no-preference){
  .sdev--auto .srail::after{content:"";position:absolute;left:50%;top:0;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--green);animation:railRun 2.4s linear infinite}
  @keyframes railRun{0%{top:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:calc(100% - 5px);opacity:0}}
  .sauto{animation:autoPulse 2.4s var(--ease) infinite;animation-delay:calc(var(--i,0) * .8s)}
  @keyframes autoPulse{0%,50%{border-color:var(--line);transform:none}62%,72%{border-color:var(--dc,var(--green));transform:translateX(2px)}88%,100%{border-color:var(--line);transform:none}}
}

/* 03 integrate - six coloured tools funnel into the one green window */
.sdev--int{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:clamp(.55rem,1.6vw,1.1rem)}
.sint__src{display:grid;grid-template-columns:repeat(2,1fr);gap:.36rem}
.sint__src i{display:block;width:clamp(1.15rem,2.8vw,1.85rem);height:clamp(.6rem,1.4vw,.95rem);border:1px solid var(--tc,var(--line-2));border-radius:.22rem;background:var(--tcb,var(--surface-2))}
.sint__arrow{position:relative;display:block;width:clamp(1.1rem,3vw,2.1rem);height:2px;border-radius:2px;background:var(--green)}
.sint__arrow::after{content:"";position:absolute;right:-1px;top:50%;width:.4rem;height:.4rem;border-top:2px solid var(--green);border-right:2px solid var(--green);transform:translateY(-50%) rotate(45deg)}
.sint__win{border:1px solid var(--line-2);border-radius:.4rem;background:var(--surface-2);overflow:hidden;box-shadow:var(--shadow-card)}
.sint__win b{display:block;height:.8rem;background:#0b0e0b}
.sint__win i{display:block;height:.4rem;border-radius:2px;background:var(--line-2);margin:.42rem .5rem}
.sint__win i:nth-of-type(1){background:var(--green);width:38%}
.sint__win i:nth-of-type(3){width:62%}
@media (prefers-reduced-motion:no-preference){
  .sint__src i{animation:srcPulse 3s var(--ease) infinite}
  .sint__src i:nth-child(1){animation-delay:0s}.sint__src i:nth-child(2){animation-delay:.5s}
  .sint__src i:nth-child(3){animation-delay:1s}.sint__src i:nth-child(4){animation-delay:1.5s}
  .sint__src i:nth-child(5){animation-delay:2s}.sint__src i:nth-child(6){animation-delay:2.5s}
  @keyframes srcPulse{0%,86%{transform:none}92%{transform:translateX(3px)}100%{transform:none}}
  .sint__arrow{background:repeating-linear-gradient(90deg,var(--green) 0 6px,rgba(31,209,95,.25) 6px 12px);animation:flowDash 1s linear infinite}
  @keyframes flowDash{to{background-position:12px 0}}
  .sint__win i:nth-of-type(1){animation:winPulse 2s var(--ease) infinite}
  @keyframes winPulse{0%,100%{opacity:1}50%{opacity:.45}}
}

/* 04 agents - the org shape in miniature, pulses running down to each head */
.sdev--agents{display:grid;align-content:center;justify-items:center;gap:0}
.sag__top{width:clamp(3.5rem,9vw,5.5rem);height:clamp(1.1rem,2.5vw,1.6rem);border:1px solid var(--green);border-radius:.3rem;background:var(--green-dim)}
.sag__stem{width:2px;height:clamp(.85rem,2vw,1.3rem);background:var(--green);opacity:.55}
.sag__bus{width:75%;height:2px;border-radius:2px;background:var(--green);opacity:.55}
.sag__row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.3rem,1vw,.6rem);width:100%;margin-top:clamp(.85rem,2vw,1.3rem)}
.sag__row i{position:relative;display:flex;align-items:center;justify-content:center;height:clamp(1.7rem,4vw,2.5rem);border:1px solid var(--icl,var(--line-2));border-radius:.35rem;background:var(--dcb,var(--surface-2))}
.sag__row i svg{width:1rem;height:1rem;fill:none;stroke:var(--dc,var(--green-t));stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sag__row i::before{content:"";position:absolute;left:50%;top:calc(-1 * clamp(.85rem,2vw,1.3rem));width:1px;height:clamp(.85rem,2vw,1.3rem);background:var(--green);opacity:.5}
@media (prefers-reduced-motion:no-preference){
  .sag__top{animation:topGlow 2.4s var(--ease) infinite}
  @keyframes topGlow{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.28)}50%{box-shadow:0 0 0 7px rgba(31,209,95,0)}}
  .sag__row i::after{content:"";position:absolute;left:50%;top:calc(-1 * clamp(.85rem,2vw,1.3rem));width:3px;height:3px;margin-left:-1.5px;border-radius:50%;background:var(--green);animation:agDrop 1.8s linear infinite;animation-delay:calc(var(--i,0) * .45s)}
  @keyframes agDrop{0%{transform:translateY(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(clamp(.85rem,2vw,1.3rem));opacity:0}}
}

/* ==========================================================================
   03 DASHBOARD GRID (the nine areas)
   ========================================================================== */
.areas{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}
/* more air + an icon instead of an index numeral (Shane 2026-07-29: "a bit
   crowded... too much text, not enough graphic design") */
.area{background:var(--surface-2);padding:clamp(1.5rem,3vw,2.15rem);position:relative;overflow:hidden;transition:background .35s var(--ease)}
.area::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--green)}
.js .area::before{transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease);transition-delay:var(--d,0s)}
.rv.in .area::before{transform:scaleX(1)}
.area:hover,.area.is-hot{background:#FCFEFA}
/* per-area hue via inline --ic/--icb/--icl (round-2: "all just green and white"
   was the complaint - each area now owns a colour) */
.area__i{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.7rem;background:var(--icb,var(--green-dim-2));border:1px solid var(--icl,var(--line));color:var(--ic,var(--green-t));margin-bottom:clamp(1rem,2.2vw,1.4rem);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.area__i svg{width:1.4375rem;height:1.4375rem}
.area:hover .area__i,.area.is-hot .area__i{transform:translateY(-2px) rotate(-3deg);box-shadow:0 6px 16px var(--icb,var(--green-dim))}
/* the tile's top sweep takes the area's own colour too */
.area::before{background:var(--ic,var(--green))}
.area__n{display:none}  /* retired with the icon pass; kept as a tombstone so a stray numeral can never render */
.area h3{margin-bottom:.45rem}
.area p{color:var(--muted);font-size:.94rem;line-height:1.55;max-width:26ch}
.js .rv .area{opacity:0;transform:translateY(10px)}
.rv.in .area{opacity:1;transform:none;transition:opacity .5s var(--ease) var(--d,0s),transform .5s var(--ease) var(--d,0s),background .35s var(--ease)}
.areas__note{margin-top:1.25rem;color:var(--muted-2)}
/* mobile 2-col (audit: nine full-width rows were ~1500px of thumb travel for
   ninety words). The 9th tile spans so no bare --line cell shows. */
@media (max-width:899px){
  .areas{grid-template-columns:repeat(2,1fr)}
  .areas .area:last-child{grid-column:1 / -1}
}
@media (max-width:599px){
  .area{padding:1rem}
  .area__i{width:2.25rem;height:2.25rem;margin-bottom:.7rem}
  .area__i svg{width:1.2rem;height:1.2rem}
  .area p{font-size:.8125rem;line-height:1.45}
}
@media (min-width:900px){.areas{grid-template-columns:repeat(3,1fr)}}

/* ==========================================================================
   04 AGENTS (black) + the self-drawing org chart
   Connectors are 1px transform-scaled divs, not SVG paths - no viewBox math,
   no stroke distortion, identical draw effect, fully responsive.
   ========================================================================== */
.agents h2{max-width:16ch}
.agents__lede{max-width:58ch;margin-top:1.15rem}
.agents__second{max-width:56ch;margin-top:1rem;color:rgba(242,244,242,.62)}
/* Shane 2026-07-29: "a bit random?" - two causes, both fixed here.
   1. THE CONNECTORS WERE NEVER DRAWN with JS on: `.js .org__bus{display:none}`
      is specificity (0,2,0) and beat `@media(min-width:900px){.org__bus{display:block}}`
      at (0,1,0). Same for the branch connectors. A media query does not raise
      specificity. The display switch now lives on the SINGLE-class selectors
      only, and the .js rules carry motion and nothing else.
   2. rgba(242,244,242,.13) hairlines are all but invisible on #0a0a0a. The
      connectors are green now, with a solid junction dot at every tee, and the
      whole chart sits in one frame so it reads as ONE org chart. */
.org{--og:1rem;--conn:rgba(31,209,95,.45);margin-top:clamp(2.75rem,6vw,4.25rem);border:1px solid var(--line-inv);border-radius:1rem;background:rgba(242,244,242,.02);padding:clamp(1.5rem,3.4vw,2.75rem) clamp(1.1rem,2.6vw,2.25rem)}
.org__top{display:flex;justify-content:center}
.onode{background:#0b0e0b;border:1px solid var(--line-inv);border-radius:10px;padding:1rem 1.15rem;text-align:center;transition:border-color .35s var(--ease),background .35s var(--ease),transform .35s var(--ease)}
.onode:hover,.onode.is-hot{border-color:rgba(31,209,95,.45);background:#0d120e;transform:translateY(-3px)}
.onode b{display:block;font-family:var(--ff-display);font-weight:800;font-size:1rem;letter-spacing:-.02em;color:var(--ink)}
.onode span{display:block;margin-top:.35rem;font-size:.84rem;line-height:1.5;color:rgba(242,244,242,.55)}
/* min(...,100%) not 80vw - inside the framed .org, 80vw overflows the padding */
.onode--you{min-width:min(16.25rem,100%);border-color:rgba(31,209,95,.4);background:var(--green-dim-2)}
.onode--you b{color:var(--green)}
/* display:block is load-bearing - it is a <span>, so inline layout ignored the
   height entirely and collapsed the You-to-bus connector to 0px */
.org__stem{display:none;width:1px;height:2.375rem;margin:0 auto;background:var(--conn)}
.js .org__stem{transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease)}
.rv.in .org__stem{transform:scaleY(1)}
.org__wrap{position:relative}
/* the tee where the stem meets the bus. On .org__wrap, so no draw transform
   ever distorts the dot into an ellipse. */
.org__wrap::before{content:"";position:absolute;top:0;left:50%;width:.4375rem;height:.4375rem;margin:-.21875rem 0 0 -.21875rem;border-radius:50%;background:var(--green);display:none;z-index:1}
.org__bus{position:absolute;top:0;left:calc((100% - 4 * var(--og)) / 10);right:calc((100% - 4 * var(--og)) / 10);height:1px;background:var(--conn);display:none}
.js .org__bus{transform:scaleX(0);transition:transform .7s var(--ease) .4s}
.rv.in .org__bus{transform:scaleX(1)}
.org__nodes{display:grid;grid-template-columns:1fr;gap:var(--og)}
.org__nodes .onode{position:relative}
.org__nodes .onode::before{content:"";position:absolute;top:-2.375rem;left:50%;width:1px;height:2.375rem;background:var(--conn);display:none}
.js .org__nodes .onode::before{transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);transition-delay:var(--d,0s)}
.rv.in .org__nodes .onode::before{transform:scaleY(1)}
.js .rv .org__nodes .onode{opacity:0;transform:translateY(10px)}
/* the node lands a beat AFTER its connector finishes drawing. The entrance is
   an ANIMATION, not a delayed transition: a transition-delay in the resting
   rule would lag the hover lift AND the mouse-out sink by the full 1.2-1.5s
   ladder delay, forever (the leaving transition is read from the destination
   state). With the animation carrying the entrance, the delay-free base .onode
   transition governs every interaction in both directions. */
.rv.in .org__nodes .onode{opacity:1;transform:none;animation:onodeIn .5s var(--ease) calc(var(--d,0s) + .22s) backwards}
@keyframes onodeIn{from{opacity:0;transform:translateY(10px)}}
.rv.in .org__nodes .onode:hover,.rv.in .org__nodes .onode.is-hot{transform:translateY(-3px)}
/* below 900px the connectors are hidden, so nodes must not wait for the
   desktop draw sequence - they enter on their own short ladder */
@media (max-width:899px){
  .rv.in .org__nodes .onode{animation-delay:calc(var(--i,0) * .07s)}
}
/* MOBILE TREE (audit: below 900 the chart collapsed to six identical cards and
   the hierarchy - the whole point - vanished). A green spine runs down the
   left, an elbow reaches into each head, You stays full-width on top. */
@media (max-width:899px){
  .org__nodes{grid-template-columns:1fr;position:relative;padding-left:1.4rem}
  .org__nodes::before{content:"";position:absolute;left:0;top:-1.1rem;bottom:3.25rem;width:2px;border-radius:2px;background:var(--conn)}
  .org__top{justify-content:flex-start;padding-bottom:1.1rem;position:relative}
  .org__top::after{content:"";position:absolute;left:1rem;bottom:0;width:2px;height:1.1rem;background:var(--conn)}
  .org__nodes::before{left:1rem}
  .org__nodes{padding-left:2.4rem}
  .org__nodes .onode::before{display:block;top:50%;left:-1.4rem;width:1.4rem;height:1px;background:var(--conn);transform:none!important;transition:none!important}
  .org__nodes .onode{text-align:left}
}
@media (min-width:900px){
  .org__nodes{grid-template-columns:repeat(5,1fr);padding-top:2.375rem}
  .org__nodes .onode:last-child{grid-column:auto}
  .org__nodes .onode::before{display:block}
  .org__bus{display:block}
  .org__wrap::before{display:block}
  .org__stem{display:block;height:2.375rem}
}

/* ==========================================================================
   05 OUTCOME CARDS
   ========================================================================== */
.outs{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}
.ocard{background:var(--surface-2);padding:clamp(1.5rem,3vw,2.25rem);position:relative;overflow:hidden;transition:transform .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
.ocard::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.ocard:hover,.ocard.is-hot{background:#FCFEFA;transform:translateY(-4px);box-shadow:var(--shadow-card);z-index:1}
.ocard:hover::after,.ocard.is-hot::after{transform:scaleX(1)}
.ocard__n{display:flex;align-items:center;color:var(--muted-2);margin-bottom:1rem}
.ocard h3{margin-bottom:.6rem}
.ocard p{color:var(--muted);font-size:.97rem;line-height:1.66}
.js .rv .ocard{opacity:0;transform:translateY(12px)}
.rv.in .ocard{opacity:1;transform:none;transition:opacity .55s var(--ease) var(--d,0s),transform .55s var(--ease) var(--d,0s),background .3s var(--ease)}
@media (min-width:820px){.outs{grid-template-columns:repeat(3,1fr)}}

/* ==========================================================================
   06 PROOF
   ========================================================================== */
.proof__lede{max-width:60ch;margin-top:1.15rem}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}
.stat{background:var(--surface-2);padding:clamp(1.25rem,2.8vw,1.9rem);display:flex;flex-direction:column;justify-content:flex-end}  /* keeps all four numerals on one baseline despite the OVER prefix */
.stat__n{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.9rem,5.5vw,3rem);line-height:1;letter-spacing:-.035em;color:var(--green-t);font-variant-numeric:tabular-nums;display:block}
.stat__n small{font-size:.5em;font-weight:700;letter-spacing:-.01em}
.stat__pre{display:block;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:.45rem}
.stat__l{display:block;margin-top:.6rem;font-family:var(--ff-mono);font-size:.625rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-2)}
@media (min-width:820px){.stats{grid-template-columns:repeat(4,1fr)}}
.pchips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(1.75rem,3.5vw,2.5rem)}
.pchip{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .95rem;border:1px solid var(--line);border-radius:100px;background:var(--surface-2);color:var(--muted);font-size:.8125rem;line-height:1.4;transition:border-color .35s var(--ease),color .35s var(--ease)}
.js .pchip{opacity:0;transform:translateY(8px)}
.rv.in .pchip{opacity:1;transform:none;transition:opacity .45s var(--ease) var(--d,0s),transform .45s var(--ease) var(--d,0s),border-color .35s var(--ease),color .35s var(--ease)}
.pchip:hover{border-color:var(--line-2);color:var(--ink)}
.shots{display:grid;grid-template-columns:1fr;justify-items:center;gap:clamp(1rem,2.5vw,1.75rem);margin-top:clamp(2.25rem,4.5vw,3.25rem)}
.shot{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface-2);width:100%;max-width:55rem}
.shot__bar{display:flex;align-items:center;gap:.45rem;padding:.65rem .85rem;background:#0b0e0b;border-bottom:1px solid var(--line)}
.shot__bar i{width:8px;height:8px;border-radius:50%;background:#2a312b;display:block}
.shot img{width:100%;height:auto}
.shot figcaption{padding:.75rem .9rem;border-top:1px solid var(--line);color:var(--muted-2)}


/* ==========================================================================
   07 TIMELINE
   ========================================================================== */
/* Audit redesign: was title-far-left / body-far-right rows with a dead gutter
   ("the weakest section on the page"). Now: 4 compact cards on ONE horizontal
   rail >=900 (the method panels' visual language), vertical rail on mobile.
   All four dots are FILLED - a hollow "Run" read as not-included. */
.tl{position:relative;margin-top:clamp(2.25rem,4.5vw,3.25rem);padding-left:2.25rem}
.tl__rail{position:absolute;left:.4375rem;top:.6rem;bottom:.6rem;width:1px;background:var(--line-2)}
.js .tl__rail{transform:scaleY(0);transform-origin:top;transition:transform 1.2s var(--ease) .1s}
.rv.in .tl__rail{transform:scaleY(1)}
.tlrow{position:relative;padding-block:clamp(1.1rem,2.4vw,1.6rem);border-bottom:1px solid var(--line)}
.tlrow:last-child{border-bottom:0}
.tlrow::before{content:"";position:absolute;left:-2.25rem;top:calc(clamp(1.1rem,2.4vw,1.6rem) + .35rem);width:.9375rem;height:.9375rem;border-radius:50%;border:1px solid var(--green);background:var(--green);transition:transform .4s var(--ease)}
.tlrow:hover::before,.tlrow.is-hot::before{transform:scale(1.15)}
.tlrow__h{display:flex;align-items:baseline;gap:.85rem;flex-wrap:wrap;margin-bottom:.4rem}
.tlrow__w{font-family:var(--ff-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-t)}
.tlrow p{color:var(--muted);font-size:.97rem;line-height:1.66;max-width:62ch}
.js .rv .tlrow{opacity:0;transform:translateY(10px)}
.rv.in .tlrow{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:var(--d,0s)}
@media (min-width:900px){
  .tl{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2vw,1.5rem);padding-left:0;padding-top:2.6rem}
  .tl__rail{left:.5rem;right:.5rem;top:.4375rem;bottom:auto;width:auto;height:1px;transform-origin:left}
  .js .tl__rail{transform:scaleX(0)}
  .rv.in .tl__rail{transform:scaleX(1)}
  .tlrow{border:1px solid var(--line);border-radius:.85rem;background:var(--surface-2);padding:clamp(1.15rem,2.2vw,1.6rem);transition:border-color .35s var(--ease),box-shadow .35s var(--ease)}
  .tlrow:last-child{border-bottom:1px solid var(--line)}
  .tlrow:hover,.tlrow.is-hot{border-color:var(--line-2);box-shadow:var(--shadow-card)}
  .tlrow::before{left:1.4rem;top:-2.6rem;margin-top:-.03125rem}
  .tlrow__h{flex-direction:column;align-items:flex-start;gap:.3rem;margin-bottom:.55rem}
  .tlrow p{font-size:.9rem;line-height:1.6}
}

/* ==========================================================================
   08 WHO
   ========================================================================== */
.fits{border-top:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}
.fit{display:flex;align-items:flex-start;gap:.9rem;padding-block:clamp(1rem,2.2vw,1.35rem);border-bottom:1px solid var(--line);font-size:clamp(1rem,2.2vw,1.15rem);line-height:1.5;transition:padding-left .35s var(--ease),color .35s var(--ease);color:var(--muted)}
.fit .dot{margin-top:.62rem}
.fit:hover,.fit.is-hot{padding-left:.6rem;color:var(--ink)}
.js .rv .fit{opacity:0;transform:translateY(8px)}
.rv.in .fit{opacity:1;transform:none;transition:opacity .5s var(--ease) var(--d,0s),transform .5s var(--ease) var(--d,0s),padding-left .35s var(--ease),color .35s var(--ease)}
.sectors{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(1.75rem,3.5vw,2.5rem)}
.sector{display:inline-flex;padding:.5rem .9rem;border:1px solid var(--line);border-radius:.375rem;background:var(--surface-2);color:var(--muted);font-family:var(--ff-mono);font-size:.625rem;letter-spacing:.12em;text-transform:uppercase}
.js .sector{opacity:0;transform:translateY(8px)}
.rv.in .sector{opacity:1;transform:none;transition:opacity .4s var(--ease),transform .4s var(--ease);transition-delay:var(--d,0s)}
.who__note{margin-top:clamp(1.6rem,3vw,2.2rem);max-width:56ch}

/* ==========================================================================
   09 OFFER
   ========================================================================== */
.offer__grid{display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,3.5vw,2.5rem);margin-top:clamp(2rem,4vw,3rem);align-items:start}
.ocard-green{background:var(--green);color:var(--btn-ink);border-radius:var(--radius);padding:clamp(1.6rem,3.4vw,2.5rem)}
.ocard-green .mono{color:rgba(6,43,20,.86)}   /* .72 measured 4.17:1 on --green */
.ocard-green h3{color:var(--btn-ink);margin:.75rem 0 1.25rem;font-size:clamp(1.5rem,4vw,2.1rem);line-height:1.08;letter-spacing:-.03em}
.ocard-green ul{display:grid;gap:.7rem;margin-bottom:1.75rem;padding-top:1.25rem;border-top:1px solid rgba(6,43,20,.22)}
.ocard-green li{display:flex;align-items:flex-start;gap:.6rem;font-size:.97rem;line-height:1.5;color:rgba(6,43,20,.9)}
.ocard-green li .dot{background:var(--btn-ink);margin-top:.5rem;margin-right:0}
.offer__aside{display:grid;gap:1.5rem}
.shane{display:flex;align-items:center;gap:1.15rem}
/* The <picture> is the flex item. It must own a fixed, non-shrinking box or
   the reset's max-width:100% narrows the <img> against its fixed height and
   the portrait renders squashed (measured 52x78 at 1512 before this fix). */
.shane__pic{display:block;flex:none;width:4.875rem;height:4.875rem;border-radius:50%;overflow:hidden;background:var(--surface)}
.shane img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.shane p{color:var(--muted);font-size:.97rem;line-height:1.6}
.guarantee{display:flex;align-items:flex-start;gap:.7rem;padding:1rem 1.15rem;border:1px solid var(--line);border-left:2px solid var(--green);border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:.9rem;line-height:1.6}
.scarcity{color:var(--muted-2)}
@media (min-width:900px){.offer__grid{grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4vw,3.5rem)}}

/* ==========================================================================
   10 FAQ
   ========================================================================== */
/* tightened 2026-07-29 (Shane: "too spaced out, looks like generic blocks of
   text"). 44px stays the hard tap floor - min-height 2.75rem, never lower. */
.faq{border-top:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding-block:clamp(.8rem,1.5vw,1.05rem);min-height:2.75rem;cursor:pointer;list-style:none;font-family:var(--ff-display);font-weight:700;font-size:clamp(1rem,2.2vw,1.125rem);letter-spacing:-.015em;transition:color .25s var(--ease)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--green-t)}
.faq details[open] summary{color:var(--green-t)}
.faq summary i{width:1rem;height:1rem;flex:none;position:relative;transition:transform .3s var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;background:var(--green-t);border-radius:1px}
.faq summary i::before{left:0;top:.46875rem;width:1rem;height:1.5px}
.faq summary i::after{left:.46875rem;top:0;width:1.5px;height:1rem}
.faq details[open] summary i{transform:rotate(45deg)}
.faq details p{color:var(--muted);font-size:.9375rem;line-height:1.62;max-width:62ch;padding-bottom:clamp(.9rem,1.7vw,1.15rem)}
.faq details[open] p{animation:faqIn .38s var(--ease)}
@keyframes faqIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ==========================================================================
   11 FINAL + FOOTER
   ========================================================================== */
.final{text-align:center;padding-block:clamp(4rem,9vw,7rem)}
.final h2{color:var(--green);max-width:20ch;margin:0 auto clamp(1.75rem,3.5vw,2.5rem)}
.final .hero__micro{margin-top:1.15rem}
.foot{background:var(--black);padding-block:clamp(3rem,6vw,4.5rem) 1.75rem;border-top:1px solid var(--line)}
.foot__grid{display:grid;gap:2.25rem}
.foot__brand{display:inline-flex;align-items:center;gap:.65rem;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.5rem,1.3rem + 1vw,2rem);letter-spacing:-.03em;line-height:1}
.foot__brand__mark{width:1.875rem;height:1.875rem;object-fit:contain;flex:none}
.foot__brand__word{height:clamp(1.375rem,1.1875rem + 1vw,1.8125rem);width:auto;object-fit:contain;display:block;flex:none}
.foot__line{color:rgba(242,244,242,.58);max-width:42ch;margin-top:.95rem;font-size:.94rem;line-height:1.65}
.foot h3{font-family:var(--ff-mono);font-size:.625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,244,242,.5);margin-bottom:.6rem}
.foot ul{display:grid;gap:.05rem}
.foot li a{color:rgba(242,244,242,.82);font-size:.94rem;display:inline-flex;align-items:center;min-height:2.75rem;min-width:2.75rem;transition:color .2s var(--ease)}
.foot li a:hover{color:var(--green)}
/* wide chrome: nav + footer run near-full-bleed with a slight proportional margin
   (Shane 2026-08-02, KlientBoost reference). Body sections keep the 77.5% wrap. */
/* margin is a PURE percentage of the viewport (no rem/px caps) so the chrome
   reads IDENTICALLY on any screen: 4.5% each side - in from full-bleed (2.5vw
   sat hard on the edges, Shane 2026-08-02), far in from the old 15% body cap.
   max() only guards tiny phone widths. */
.nav .wrap,.foot .wrap{max-width:none;padding-inline:max(1.25rem,5.5vw)}

/* footer social icons */
.foot__social{display:flex;gap:.65rem;margin-top:1.6rem}
.foot__social a{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid var(--line-inv);border-radius:50%;color:rgba(242,244,242,.62);transition:color .2s var(--ease),border-color .2s var(--ease)}
.foot__social a:hover{color:var(--green);border-color:var(--green)}
.foot__social svg{width:1.15rem;height:1.15rem}

.foot__bar{margin-top:2.75rem;padding-top:1.25rem;border-top:1px solid var(--line-inv);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;color:rgba(242,244,242,.5)}
.foot__bar a{color:rgba(242,244,242,.72);display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;min-width:2.75rem;transition:color .2s var(--ease)}
.foot__bar a:hover{color:var(--green)}
.foot__made{display:inline-flex;align-items:center;color:var(--green)}
/* link columns are CONTENT-sized and pushed right so LEGAL ends flush with the
   right padding edge (matching the bar below) - the old .8fr fractions left a
   dead gap after 'Privacy'/'Terms' (Shane 2026-08-02). Brand takes the slack. */
@media (min-width:820px){.foot__grid{grid-template-columns:1fr max-content max-content max-content;column-gap:clamp(2.5rem,7vw,9rem)}}

/* ==========================================================================
   INNER PAGES (apply + legal)
   ========================================================================== */
.page{padding-top:clamp(2.75rem,6vw,4.5rem);padding-bottom:clamp(3rem,7vw,5rem)}
.page h1{max-width:16ch;margin-bottom:1.25rem}
.page__sub{max-width:62ch}
.apply__grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3rem);margin-top:clamp(2.25rem,4.5vw,3.25rem);align-items:start}
.apply__col h2{font-family:var(--ff-display);font-weight:800;font-size:1.15rem;letter-spacing:-.02em;margin-bottom:1rem}
.apply__list{display:grid;gap:.75rem;margin-bottom:2rem}
.apply__list li{display:flex;align-items:flex-start;gap:.65rem;color:var(--muted);font-size:.97rem;line-height:1.6}
.apply__list li .dot{margin-top:.55rem;margin-right:0}
.cal__bar{display:flex;align-items:center;gap:.45rem;padding:.65rem .85rem;background:#0b0e0b;border-bottom:1px solid var(--line)}
.cal__bar i{width:8px;height:8px;border-radius:50%;background:#2a312b;display:block}
.cal__bar span{margin-left:auto;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,244,242,.55)}
.cal{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);overflow:hidden;min-height:40rem;position:relative}
.cal__fb{padding:0 0 .8rem;color:var(--muted-2);line-height:1.7}
.cal__fb a{color:var(--green-t);text-decoration:underline;text-underline-offset:3px}
/* height (not just min-height) is load-bearing: Calendly's injected iframe carries
   height="100%", and a percentage height cannot resolve against a min-height-only
   parent - it fell back to the 150px UA default on BOTH /apply/ and #offer
   (measured live 2026-08-06). A definite height gives the percentage its base. */
.calendly-inline-widget{height:40rem;min-height:40rem;position:relative;z-index:1}
/* branded loading skeleton beneath the widget iframe */
.cal__skel{position:absolute;left:0;right:0;top:2.4rem;bottom:0;z-index:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.9rem;padding:2rem}
.cal__skel>span{color:var(--muted-2)}
.cal__skel i{display:block;width:min(22rem,80%);height:2.6rem;border-radius:.5rem;background:linear-gradient(90deg,var(--surface) 25%,#fff 50%,var(--surface) 75%);background-size:200% 100%}
@media (prefers-reduced-motion:no-preference){.cal__skel i{animation:skel 1.4s linear infinite}@keyframes skel{to{background-position:-200% 0}}}
/* mobile: the calendar comes FIRST (audit: the highest-intent visitor had to
   re-read the whole pitch before they could do the thing they came to do) */
.apply__grid .apply__col--cal{order:-1}
@media (min-width:960px){.apply__grid{grid-template-columns:.85fr 1.15fr}.apply__grid .apply__col--cal{order:0}}
.legal{max-width:47.5rem}
.legal h2{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.15rem,2.6vw,1.4rem);letter-spacing:-.02em;margin:2.25rem 0 .85rem}
.legal p{color:var(--muted);font-size:.97rem;line-height:1.75;margin-bottom:1rem}
.legal ul{display:grid;gap:.5rem;margin:0 0 1.25rem 0}
.legal li{display:flex;align-items:flex-start;gap:.65rem;color:var(--muted);font-size:.97rem;line-height:1.65}
.legal li .dot{margin-top:.55rem;margin-right:0}
.legal a{color:var(--green-t);text-decoration:underline;text-underline-offset:3px}
.legal__meta{color:var(--muted-2);margin-bottom:2rem}

/* ==========================================================================
   DELIVERY PASS  (PATTERN.md - audit-proven)
   ========================================================================== */
@media (max-width:900px){
  .hero h1{max-width:18ch}
}
@media (max-width:640px){
  :root{--sec-y:clamp(3.25rem,9vw,4.75rem)}
  .lede{font-size:1.0625rem;line-height:1.52}
  .body-lg,.step__b,.ocard p,.pcost p,.tlrow p,.faq details p{font-size:.9375rem;line-height:1.62}
  .area p{font-size:.9rem}
  .marquee__track span{font-size:1.02rem}
  .shane__pic{width:64px;height:64px}
}
/* sub-430 guard */
/* mobile: chips read as body sentences, not tracked small-caps walls */
@media (max-width:599px){
  /* hero: one dominant action per fold - the ghost pill demotes to a text link */
  .hero .btn--ghost{background:none;border:0;width:auto;min-height:44px;padding:.4rem .2rem;color:rgba(242,244,242,.72);font-weight:500;font-size:.9375rem;text-decoration:underline;text-underline-offset:4px;align-self:flex-start}
  .hero .btn--ghost:hover{border:0;box-shadow:none;color:#f2f4f2}
  .hero__micro{letter-spacing:.08em}
}
@media (max-width:430px){
  :root{--gut:1.1rem}
  .dash__kpi span{font-size:.5rem;letter-spacing:.09em}
  .dash__row{font-size:.75rem}
  .sector{letter-spacing:.09em;padding:.5rem .75rem}
  .sector{font-size:.625rem}
  /* legibility floor, per PATTERN delivery pass - never shrink below it here.
     .stat__n has no override: the old clamp was non-monotonic (numerals were
     16% LARGER at 430px than at 440px). */
  .mono-sm{font-size:.625rem}
  .nav__in{min-height:64px}
  .menu{padding-top:calc(64px + 1.5rem)}
  /* full-width buttons ONLY in the page body - the blanket .btn{width:100%}
     also hit the new nav pill and stretched it to 355px, crushing the brand */
  .hero__actions .btn,.cta-row .btn,.final .btn,.menu__cta{width:100%}
  .hero__actions{gap:.6rem}
}
/* iOS input zoom floor + tap targets */
input,textarea,select{font-size:16px}
a,button,summary{-webkit-tap-highlight-color:rgba(31,209,95,.15)}
@media (hover:none){
  .btn:hover{background:var(--green);border-color:var(--green);box-shadow:none}
  .btn--ghost:hover{background:transparent;border-color:var(--line-2)}
  .btn--dark:hover{background:var(--btn-ink);border-color:var(--btn-ink);box-shadow:none}
}

/* ==========================================================================
   08 SECTOR TILES  (Shane 2026-07-29: the stock photo wall "looks awful".
   Typographic tiles now, carrying the same icon language as the nine areas.
   Distinct from .areas by construction: bare oversized icon, no description,
   name anchored to the bottom of a tall tile.)
   The .swall / .scard photo-card component and the full-bleed .interlude were
   deleted with it. Do not reinstate stock photography anywhere on this site.
   ========================================================================== */
.stiles{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(1.75rem,3.5vw,2.5rem)}
@media (min-width:760px){.stiles{grid-template-columns:repeat(3,1fr)}}
.stile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(1.5rem,3.5vw,2.75rem);min-height:clamp(8.5rem,15vw,11.5rem);background:var(--surface-2);padding:clamp(1.15rem,2.6vw,1.85rem);transition:background .35s var(--ease)}
.stile::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);z-index:3}
.stile:hover,.stile.is-hot{background:#FCFEFA}
.stile:hover::after,.stile.is-hot::after{transform:scaleX(1)}
.stile__i{display:inline-flex;align-items:center;justify-content:center;width:clamp(2.5rem,4.5vw,3rem);height:clamp(2.5rem,4.5vw,3rem);border-radius:.7rem;background:var(--icb,var(--green-dim-2));border:1px solid var(--icl,var(--line));color:var(--ic,var(--green-t));align-self:flex-start;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.stile__i svg{width:clamp(1.35rem,2.6vw,1.625rem);height:clamp(1.35rem,2.6vw,1.625rem)}
.stile:hover .stile__i,.stile.is-hot .stile__i{transform:translateY(-3px) rotate(-3deg);box-shadow:0 6px 16px var(--icb,var(--green-dim))}
/* the bottom sweep takes the sector's own colour */
.stile::after{background:var(--ic,var(--green))}
.stile__t{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.0625rem,1rem + .5vw,1.45rem);line-height:1.14;letter-spacing:-.022em;text-wrap:balance}
.js .rv .stile{opacity:0;transform:translateY(12px)}
.rv.in .stile{opacity:1;transform:none;transition:opacity .55s var(--ease) var(--d,0s),transform .55s var(--ease) var(--d,0s),background .35s var(--ease)}

/* ==========================================================================
   v4 THEATRE PRIMITIVES
   ========================================================================== */

/* ---- aurora: soft green radials drifting on transform only. Softness lives
   in the gradient stops - never filter:blur on an animating layer. ---- */
.aurora{position:relative;overflow:hidden}
.aurora>.wrap{position:relative;z-index:2}
.aurora::before,.aurora::after{content:"";position:absolute;inset:-30%;pointer-events:none;z-index:0}
.aurora::before{background:radial-gradient(38% 30% at 30% 38%,rgba(31,209,95,.17),transparent 70%)}
.aurora::after{background:radial-gradient(30% 26% at 72% 60%,rgba(23,184,80,.11),transparent 72%)}
@media (prefers-reduced-motion:no-preference){
  .aurora::before{animation:aur1 26s var(--ease) infinite alternate}
  .aurora::after{animation:aur2 34s var(--ease) infinite alternate}
  @keyframes aur1{from{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(4%,3%,0) scale(1.08)}}
  @keyframes aur2{from{transform:translate3d(3%,2%,0) scale(1.06)}to{transform:translate3d(-4%,-3%,0) scale(1)}}
}
.aurora--faint::before{background:radial-gradient(34% 26% at 24% 30%,rgba(31,209,95,.08),transparent 70%)}
.aurora--faint::after{background:radial-gradient(26% 22% at 76% 66%,rgba(23,184,80,.05),transparent 72%)}

/* ---- cursor glow (delegated JS sets --gx/--gy on the hovered child) ---- */
.glow-grid>*{position:relative}
.glow-grid>*>*{position:relative;z-index:2}
@media (hover:hover) and (pointer:fine){
  .glow-grid>*::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .35s var(--ease);background:radial-gradient(11rem circle at var(--gx,50%) var(--gy,42%),var(--green-dim),transparent 65%)}
  .glow-grid>*:hover::after{opacity:1}
}
/* touch parity: the scroll hot-band shows a centered glow */
.glow-grid>.is-hot::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:1;background:radial-gradient(11rem circle at 50% 42%,var(--green-dim),transparent 65%)}

/* ---- magnetic buttons (JS writes --mx/--my; caps keep taps honest) ---- */
.btn{transform:translate(var(--mx,0),var(--my,0))}
.btn:active{transform:translate(var(--mx,0),calc(var(--my,0) + 1px))}

/* ---- marquee off-screen pause ---- */
.marquee.is-paused .marquee__track{animation-play-state:paused}
.aurora.is-paused::before,.aurora.is-paused::after{animation-play-state:paused}

/* ---- 04 agents: junction dots (structure) + connector pulses (motion) ----
   The dot is what makes the hierarchy read at a glance, so it is NOT motion:
   it stays under prefers-reduced-motion. Only the travelling spark opts out. */
.pulse{display:none}
@media (min-width:900px){
  .org__nodes .onode .pulse{display:block;position:absolute;top:-2.375rem;left:50%;width:.4375rem;height:.4375rem;margin:-.21875rem 0 0 -.21875rem;border-radius:50%;background:var(--green);z-index:1}
}
@media (min-width:900px) and (prefers-reduced-motion:no-preference){
  .rv.in .org__nodes .onode .pulse::after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;border-radius:50%;background:var(--green-t);animation:pulseDown 1.8s linear infinite;animation-delay:calc(var(--d,0s) + .6s)}
  @keyframes pulseDown{0%{transform:translateY(0);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateY(2.375rem);opacity:0}}
  .org__nodes .onode:hover .pulse::after,.org__nodes .onode.is-hot .pulse::after{animation-duration:.9s}
}

/* ---- 05 outcome: ghost numerals - ONE rule with the step watermark (audit:
   three inconsistent renderings): anchor bottom-right, bleed exactly two
   edges, shared opacity token. ---- */
.ocard{isolation:isolate}
.ocard .ghost{position:absolute;right:-.05em;bottom:-.28em;z-index:0;font-family:var(--ff-display);font-weight:800;font-size:7.5rem;line-height:1;letter-spacing:-.05em;color:var(--green-dim-2);pointer-events:none;user-select:none}

/* ---- 06 proof: verified chip + single shot polish ---- */
.proof__chip{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .85rem;border:1px solid var(--line);border-radius:100px;background:var(--surface-2);color:var(--muted-2);margin-left:.9rem;vertical-align:middle}
.shot{transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.shot:hover,.shot.is-hot{transform:scale(1.01);box-shadow:0 10px 40px rgba(31,209,95,.12)}

/* ---- 09 offer: clip reveal of the green card ---- */
.js .rv .ocard-green{clip-path:inset(0 100% 0 0 round var(--radius))}
.rv.in .ocard-green{clip-path:inset(0 0 0 0 round var(--radius));transition:clip-path .9s var(--ease) .1s}

/* ---- 10 faq: summary underline sweep ---- */
.faq summary b{font-weight:inherit;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% 1px;background-position:0 100%;transition:background-size .45s var(--ease)}
.faq summary:hover b{background-size:100% 1px}
/* animated open/close where the engine supports it (audit: close snapped in
   one frame). Progressive enhancement - older engines keep the instant toggle. */
@supports (interpolate-size: allow-keywords){
  .faq details{interpolate-size:allow-keywords}
  .faq details::details-content{block-size:0;overflow:clip;transition:block-size .3s var(--ease),content-visibility .3s allow-discrete}
  .faq details[open]::details-content{block-size:auto}
}

/* ---- mid-page CTA rows (audit: nine sections with no booking affordance) ---- */
.cta-row{margin-top:clamp(2.5rem,5vw,3.75rem);display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}
.cta-row__micro{color:var(--muted-2)}
.g-black .cta-row__micro{color:rgba(242,244,242,.5)}
@media (max-width:430px){.cta-row .btn{width:100%}}

/* ---- the Operations Map artifact (audit: "you keep the map either way" sold
   a document the page never showed). Illustration language of the diagrams. ---- */
.mapdoc{border:1px solid var(--line);border-radius:.75rem;background:var(--surface-2);padding:1.1rem 1.2rem;box-shadow:var(--shadow-card);max-width:21rem}
.mapdoc__t{display:flex;align-items:center;color:var(--muted-2);margin-bottom:.8rem}
.mapdoc__row{display:flex;align-items:center;gap:.7rem;padding-block:.42rem;border-top:1px solid var(--line)}
.mapdoc__row em{font-style:normal;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);flex:none;width:5.4rem}
.mapdoc__row i{display:block;height:2px;border-radius:2px;background:var(--green-dim);flex:1}
.mapdoc__row:nth-child(odd) i{max-width:70%}
.mapdoc__foot{display:block;margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted)}

/* ---- hero v4: full-viewport theatre ----
   Breathing room, Shane 2026-07-29 ("the top is a small bit crowded"): the two
   gaps he named are the nav-to-eyebrow gap (this padding-top, minus the 4.5rem
   the sticky nav overlays) and the copy-to-dash gap (.hero__vis padding-top).
   Measured before: 40px / 40px at 1512. The dash still peeks below the fold. */
/* vh lines FIRST as the pre-svh fallback: an engine without svh drops the
   whole declaration, and the base .hero padding-top does not cover the
   -4.5rem margin pull - the eyebrow would start under the nav. */
.hero{background:#050505;display:flex;flex-direction:column;justify-content:flex-start;min-height:100vh;min-height:100svh;margin-top:calc(-4.5rem - 1px);padding-top:calc(clamp(3.5rem,7vh,5.5rem) + 4.5rem + 1px);padding-top:calc(clamp(3.5rem,7svh,5.5rem) + 4.5rem + 1px);padding-bottom:0}
@media (max-width:430px){.hero{margin-top:calc(-4rem - 1px);padding-top:calc(clamp(2.75rem,5vh,4rem) + 4rem + 1px);padding-top:calc(clamp(2.75rem,5svh,4rem) + 4rem + 1px)}}
.hero .wrap{display:flex;flex-direction:column;flex:1}
.hero__copy{flex:none}
.hero__vis{margin-top:auto;padding-top:clamp(3rem,7vh,5rem);padding-top:clamp(3rem,7svh,5rem)}
.hero h1{max-width:17ch}
.hero .d1{font-size:clamp(2.5rem,1.1rem + 5.6vw,6.25rem)}
.hero .hero__eyebrow{color:rgba(242,244,242,.6)}
.hero__micro{color:rgba(242,244,242,.5)}
.hero .btn--ghost{color:#f2f4f2;border-color:rgba(242,244,242,.25)}
.hero .btn--ghost:hover{border-color:#f2f4f2}
.hero__vis::before{display:none}   /* the old light-ground glow; aurora replaces it */
.dash{box-shadow:0 30px 80px rgba(0,0,0,.55)}

/* the living rows: fixed 3-slot stage, transform-only shuffle */
.dash__rows{position:relative;height:calc(3 * 2.15rem + 2px);overflow:hidden}
.dash__row{position:absolute;left:0;right:0;height:2.15rem;transition:transform .5s var(--ease),opacity .5s var(--ease)}
.dash__row.pos0{transform:translateY(0)}
.dash__row.pos1{transform:translateY(2.15rem)}
.dash__row.pos2{transform:translateY(4.3rem)}
.dash__row.pos-out{transform:translateY(6.45rem);opacity:0}
.dash__row .caret{display:inline-block;width:1px;height:.85em;background:var(--green-t);vertical-align:-.12em;margin-left:1px;opacity:0}
.dash__row.is-typing .caret{opacity:1;animation:caretBlink .7s steps(1) infinite}
@keyframes caretBlink{50%{opacity:0}}
.dash__kpi b{transition:transform .25s var(--ease)}
.dash__kpi.is-tick b{transform:scale(1.06)}

/* marquee fusion: hero bleeds straight into it - but the demo card gets
   breathing room above the strip (Shane 2026-08-01) */
.marquee{border-top:0}
.hero .hero__vis{margin-bottom:clamp(2.75rem,6vh,5rem)}
#hero-end{display:block;height:1px;margin-top:-1px}

/* ---- 01 problem: two-column split >=900, chips centered against the copy ---- */
@media (min-width:900px){
  /* (prob__grid retired 2026-08-01 - the section is a single centered column) */
}

/* ---- 03: closing note, one flow (round-2: multicol balanced two short
   paragraphs into a broken-looking half-height second column) ---- */
.areas__after{max-width:58ch}
.areas__after .areas__punch{margin-top:clamp(1.1rem,2.2vw,1.6rem);color:var(--green-t)}

/* (the old two-col timeline rows block is retired - superseded by the
   4-card rail redesign in the 07 TIMELINE section; its minmax(11rem,...)
   columns inside the 4-col outer grid forced a 70px page overflow) */

/* ==========================================================================
   v4 TIER-2: scroll-driven theatre. MANDATORY wrapper - the global reduced-
   motion clamp does NOT neutralise progress-based scroll-timeline animations.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* hero: dash de-tilts as it enters; copy sinks as you leave */
  .hero__vis{perspective:75rem}
  .dash{animation:dashFlat linear both;animation-timeline:view();animation-range:entry 0% cover 32%}
  @keyframes dashFlat{from{transform:rotateX(9deg) scale(.97)}to{transform:none}}
  .hero__copy{animation:heroExit linear both;animation-timeline:scroll(root);animation-range:0 80vh}
  @keyframes heroExit{to{opacity:.22;transform:translateY(-2rem)}}

  /* 01: chips converge as the section scrolls in */
  /* 01: the collage windows drift home as the section scrolls in - translate:
     longhand so it can never collide with the hover transform */
  .mess__stage{animation:mwSettle linear both;animation-timeline:view();animation-range:entry 10% entry 60%}
  @keyframes mwSettle{from{translate:0 1.6rem}to{translate:0 0}}

  /* 02: the pinned method panels, PERSISTENT-SHELL edition (audit: the whole-
     panel cross-fade double-exposed two steps' text at 50/50 - unreadable
     mush at pause points). The Linear pattern: ONE stable stage frame (the
     scene-shell carries head, pips and track and never fades); only the panel
     INTERIORS dissolve, on ranges that BUTT instead of overlap. */
  .steps-scene{height:260vh;view-timeline-name:--steps}
  /* shell + steps share one grid cell of the stage: the shell stretches to the
     panels' height and carries the stable frame beneath them */
  .steps-stage{position:sticky;top:5.5rem;min-height:calc(100svh - 5.5rem);display:grid;align-content:center;grid-template-columns:1fr}
  .steps-scene .steps{display:grid;margin-top:0;gap:0;grid-area:1/1;z-index:2;position:relative}
  .scene-shell{display:block;grid-area:1/1;z-index:1;pointer-events:none;background:var(--surface-2);border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow-card);padding:clamp(1.35rem,3vw,2.5rem)}
  .steps-scene .step{grid-area:1/1;opacity:0;border:0;background:none;box-shadow:none;z-index:2}
  .steps-scene .step .step__head,.steps-scene .step .strack{visibility:hidden}
  .steps-scene .step .step__b{max-width:46ch}
  .steps-scene .step{animation:stepShow linear both;animation-timeline:--steps}
  .steps-scene .step:nth-child(1){animation-range:entry 30% contain 27%}
  .steps-scene .step:nth-child(2){animation-range:contain 27% contain 51%}
  .steps-scene .step:nth-child(3){animation-range:contain 51% contain 75%}
  .steps-scene .step:nth-child(4){animation-range:contain 75% contain 100%}
  @keyframes stepShow{0%{opacity:0;transform:translateY(1.5rem)}14%,86%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-1rem)}}
  .steps-scene .step:nth-child(4){animation-name:stepShowLast}
  @keyframes stepShowLast{0%{opacity:0;transform:translateY(1.5rem)}14%,100%{opacity:1;transform:none}}
  /* shell instrumentation: track scrubs the whole scene; pip N lights for the
     whole of panel N's range onward (cumulative progress) */
  .scene-shell .strack__fill{animation:trackScrub linear both;animation-timeline:--steps;animation-range:entry 30% contain 100%}
  @keyframes trackScrub{from{transform:scaleX(.04)}to{transform:scaleX(1)}}
  @keyframes pipOn{from{background:var(--green)}to{background:var(--green)}}
  .scene-shell .sp1{animation:pipOn linear both;animation-timeline:--steps;animation-range:entry 30% contain 100%}
  .scene-shell .sp2{animation:pipOn linear both;animation-timeline:--steps;animation-range:contain 27% contain 100%}
  .scene-shell .sp3{animation:pipOn linear both;animation-timeline:--steps;animation-range:contain 51% contain 100%}
  .scene-shell .sp4{animation:pipOn linear both;animation-timeline:--steps;animation-range:contain 75% contain 100%}
  @keyframes railScrub{from{transform:scaleY(0)}to{transform:scaleY(1)}}
  /* the tier-1 stacked reveal must not fight the scene */
  .steps-scene .rv .step,.steps-scene .rv.in .step{opacity:unset;transform:unset;transition:none}

  /* 03: grid settles from .97 */
  .areas{animation:gridSettle linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
  @keyframes gridSettle{from{transform:scale(.97)}to{transform:none}}

  /* 01+05: ghost numerals drift */
  .ocard .ghost,.pcost .ghost{animation:ghostDrift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  @keyframes ghostDrift{from{transform:translateY(1.5rem)}to{transform:translateY(-1.5rem)}}

  /* 06: the single shot slides up + settles */
  .shot{animation:shotIn linear backwards;animation-timeline:view();animation-range:entry 0% entry 65%}
  @keyframes shotIn{from{opacity:.2;transform:translateY(3rem) scale(.985)}to{opacity:1;transform:none}}

  /* 07: rail scrubs with the read. .js-prefixed so it outranks the
     .js .tl__rail draw rule (the specificity trap class); scaleX now - the
     >=900 rail is horizontal. */
  .js .tl__rail,.tl__rail{transform:none;transition:none;animation:railScrubX linear both;animation-timeline:view();animation-range:entry 20% exit 75%}
  @keyframes railScrubX{from{transform:scaleX(0)}to{transform:scaleX(1)}}

}}

@media (forced-colors:active){
  .burger span,.burger span::before,.burger span::after,
  .faq summary i::before,.faq summary i::after{forced-color-adjust:none;background:CanvasText}
  /* the watermark numerals rely on a near-transparent color; forced colors
     repaint them as opaque CanvasText ON TOP of the panel copy - hide them */
  .step__n,.ocard .ghost,.pcost .ghost{display:none}
}

/* paged media: a scroll timeline never advances in print, so the pinned
   scene's `both`-filled animations would hold every panel at opacity:0 -
   section 02 printed blank in Blink landscape (print CRS can satisfy the
   tier-2 900x700 gate). Same guard un-hides the JS reveal states. */
@media print{
  .rv,.rv .step,.rv .area,.rv .ocard,.rv .pcost,.rv .tlrow,.rv .fit,.rv .org__nodes .onode,.rv .stile,.da,.pchip,.sector{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .steps-scene{height:auto!important}
  .steps-stage{position:static!important;min-height:0!important}
  .scene-shell{display:none!important}
  .steps-scene .step{grid-area:auto!important;animation:none!important;opacity:1!important;border:1px solid var(--line)!important;background:var(--surface-2)!important}
  .steps-scene .step .step__head,.steps-scene .step .strack{visibility:visible!important}
  .steps-scene .steps{gap:1rem!important;margin-top:1.5rem!important}
  .strack__fill,.hero__copy,.dash,.shot,.ocard .ghost,.pcost .ghost,.mess,.mess *{animation:none!important}
  .steps__pips i,.strack{print-color-adjust:exact}
}

/* ==========================================================================
   REDUCED MOTION - targeted opt-outs, not just a duration clamp
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .rv,.rv .step,.rv .area,.rv .ocard,.rv .pcost,.rv .tlrow,.rv .fit,.rv .org__nodes .onode,.rv .stile,.da{opacity:1!important;transform:none!important}
  .rv:not(.in) .mark{background-size:100% .32em!important}
  .aurora::before,.aurora::after{animation:none!important}
  /* the junction dot is structure and stays; only the travelling spark stops */
  .pulse::after{display:none!important}
  .rv .ocard-green{clip-path:none!important;transition:none!important}
  .dash__row .caret{display:none!important}
  .steps-scene{height:auto!important}
  .steps-stage{position:static!important;min-height:0!important}
  .scene-shell{display:none!important}
  .steps-scene .step{grid-area:auto!important;opacity:1!important;border:1px solid var(--line)!important;background:var(--surface-2)!important}
  .steps-scene .step .step__head,.steps-scene .step .strack{visibility:visible!important}
  .steps-scene .steps{gap:clamp(1rem,2.2vw,1.5rem)!important}
  .steps-scene .step,.hero__copy,.dash,.shot,.ocard .ghost,.pcost .ghost,.areas,.tl__rail,.strack__fill,.scene-shell .sp1,.scene-shell .sp2,.scene-shell .sp3,.scene-shell .sp4{animation:none!important}
  /* with the scrub animation off, the track falls back to its static --p fill */
  .hero .mark{animation:none!important}
  .faq details[open] p{animation:none!important}
  .rv.in .pchip,.rv.in .sector,.pchip,.sector{opacity:1!important;transform:none!important}
  .tl__rail,.org__stem,.org__bus{transform:none!important}
  .org__nodes .onode::before{transform:scaleY(1)!important}
  .area::before,.prob__punch::after{display:none}
  .dash__spark{stroke-dashoffset:0!important;transition:none!important}
  .marquee__track{animation:none;width:100%;justify-content:center;flex-wrap:wrap}
  /* one full phrase set (now 9 spans per set), statically reflowed */
  .marquee__track > *:nth-child(n+10){display:none}
}


/* ==========================================================================
   PROBLEM DIAGRAM - ported verbatim from the working wireframe
   (~/Downloads/TODAY/prob-wireframe.html) 2026-08-04, Shane: "this should be
   rendered on the site". Supersedes the V5 territory diagram above.

   What this design changed, and why (his rounds 13:38 -> 16:23):
   - each part is a real white CARD sharing ONE green identity, not four
     tinted territories - four hues read "too christmassy" (15:12), so --shue
     is the same brand green on all four fields.
   - every part carries its own TASK LIST and its own five TOOL LOGOS (13:38),
     which makes "disconnected tools" literal instead of asserted.
   - the connecting loops, the Human chips and the rails are display:none
     (15:12 "the joining lines, remove them anyway"). The .pcut dashed-line-
     with-a-red-X was designed for that slot then cut - deliberately NOT
     ported, nothing references it.
   - handwritten WORKAROUND NOTES sit under every part: the human glue that
     replaced the explicit Human chips.
   - .parts__head is hidden, so the FOUR PARTS OF ONE BUSINESS caption and the
     HUMAN AT EVERY BREAK legend no longer render.

   Rule ORDER is preserved from the wireframe: .parts__body and .parts__title
   are each declared twice and the second declaration is load-bearing.
   ========================================================================== */
.prob__lede{margin-inline:auto;text-align:center}
.prob__lede{font-size:clamp(1.32rem, 1.12rem + 1vw, 1.82rem)}
.lede-g,.lede-r{font-weight:700;color:var(--ink);text-decoration:underline;text-decoration-thickness:.09em;text-underline-offset:.18em}
.lede-g{text-decoration-color:#1fd15f}
.lede-r{text-decoration-color:#E2604A}
.parts{margin-top:clamp(3.2rem, 5vw, 4.8rem)}
.parts__title{font-size:clamp(.9rem, .8rem + .42vw, 1.28rem);font-weight:800;letter-spacing:.015em;line-height:1.12;
    text-transform:uppercase;background:#fff;border:1px solid var(--line);display:flex;align-items:center;
    width:100%;min-height:3.4em;padding:.5em .6em;box-sizing:border-box}
.parts__body{padding-top:clamp(.9rem, .75rem + .4vw, 1.2rem);display:flex;flex-direction:column}
.parts__tasks{display:block;margin-top:0;padding-top:1.7rem}
.parts__tasks span{display:block;position:relative;padding-left:1em;text-align:left;color:#2e352f;
    font-size:clamp(.72rem, .68rem + .16vw, .8rem);line-height:1.45;white-space:nowrap}
.parts__tasks span::before{content:"";position:absolute;left:0;top:.44em;width:.38em;height:.38em;background:var(--shue)}
.parts__tasks span + span{margin-top:.5em}
.parts__tasks b{font-weight:600}
.parts__tools{display:flex;justify-content:center;gap:.45rem;margin-top:1.7rem}
.ptool{display:grid;place-items:center;width:2.1rem;height:2.1rem;background:#fff;
    border:1px solid var(--line);border-radius:.55rem;box-shadow:0 2px 6px rgba(11,15,12,.08)}
.ptool img{width:1.3rem;height:1.3rem;display:block}
.parts__gap{position:relative}
.parts{--notesz:10.5rem}
/* brand treatment (Shane 2026-08-04): boxes mostly black with the brand green - one identity for all four */
  .parts__field{--shue:#1fd15f;--shue-deep:#17b850;--stint:rgba(31,209,95,.15)}
/* wider columns */
  .parts__grid{--pgap:5.25rem}
/* the box becomes a real card: white, hue top bar, soft shadow */
  .parts__body{background:#fff;border:1px solid var(--line);border-top:3px solid var(--shue);border-bottom:3px solid var(--ink);
    box-shadow:0 6px 18px rgba(11,15,12,.07);border-radius:.375rem;
    padding:clamp(1rem, .85rem + .4vw, 1.35rem) clamp(.85rem, .7rem + .4vw, 1.15rem) 1.7rem}
.parts__body::before,.parts__body::after{display:none}
/* title band picks up the tint; text stays ink */
  .parts__title{background:rgba(11,15,12,.06);border:none;border-radius:.25rem;color:var(--ink);box-shadow:inset 0 -2px 0 var(--shue);justify-content:center;text-align:center}
/* task markers in the section hue */
  .parts__tasks span::before{background:var(--shue)}
.parts__chip{display:none}
.parts__loop-h,.parts__loop-v{display:none}
.parts__rail,.parts__rail--start,.parts__rail--end{display:none}
.wnotes{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.8em;
    margin-top:1.5rem;min-height:13rem;box-sizing:border-box}
.parts__gap{padding-bottom:var(--notesz)}
.parts__grid{padding-bottom:1.2rem}
.wnote{position:relative;display:block;transform:rotate(var(--rot,0deg)) translateX(var(--dx,0));
    padding:.8em .95em;background:linear-gradient(180deg,#F8E9C4,#F3DFAF);border:1px solid rgba(224,159,62,.42);
    border-radius:.25rem;box-shadow:0 8px 20px rgba(11,15,12,.16);
    font-size:clamp(.72rem, .68rem + .18vw, .82rem);line-height:1.4;font-style:italic;color:#5a4210;
    max-width:10.5rem;text-align:center}
.wnote--p{background:linear-gradient(180deg,#FADFE3,#F6CBD2);border-color:rgba(214,110,130,.45);color:#7a2f42}
.wnote--b{background:linear-gradient(180deg,#DCE9F8,#C9DCF2);border-color:rgba(100,140,200,.45);color:#2d4a75}
.wnote--l{background:linear-gradient(180deg,#E9E0F5,#DCCFEF);border-color:rgba(150,120,200,.45);color:#4a3572}
.wnote::before{content:"";position:absolute;top:-.5em;left:50%;width:2.6em;height:1em;
    background:rgba(255,255,255,.55);border:1px solid rgba(11,15,12,.08);translate:-50% 0;rotate:-2deg}
.parts__head{display:none}
/* the four part titles rise on scroll (Shane 2026-08-05) - the same beat
   grammar as the trio's 01/02/03 numerals: each card lands at its var(--d),
   its title follows .25s behind. --d inherits from the .da field wrapper.
   .js-gated exactly like the .costs reveal, so a no-JS or failed-JS visitor
   (index.html strips .js after 3s if the bundle never boots) gets the titles
   at full opacity instead of four blank plates. */
.js .parts__title{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease) calc(var(--d,0s) + .25s),transform .55s var(--ease) calc(var(--d,0s) + .25s)}
.parts.in .parts__title{opacity:1;transform:none}
/* placed AFTER the .js hidden rule at equal (0,2,0) specificity so it wins
   when reduced-motion is on and .in has not landed yet */
@media (prefers-reduced-motion:reduce){
  .js .parts__title{opacity:1;transform:none;transition:none}
}


/* ==========================================================================
   PROBLEM DIAGRAM v2 - THE TINTED SYSTEM (Shane's pick, mock D, 2026-08-05).
   Ported verbatim from ~/Downloads/TODAY/pillar-mock-d.html; fresh .tsys/
   .tpart namespace, so it depends on nothing in the older diagram blocks.
   Restores the mono caption + coral legend (the editorial furniture the
   previous port hid). The .parts territory CSS, the 2026-08-04 wireframe-port
   block and .pcost are now ALL dead markup-side - flagged for one dead-CSS
   sweep, deliberately not bundled here.
   ========================================================================== */
/* ==========================================================================
   THE TINTED SYSTEM - four parts of one business, each carrying its own
   muted tint drawn from the site's family (warm-paper / sage / clay / slate).
   The tint lives in exactly three places per part: the thin top rule, the
   mono numeral + task markers, and ONE unified note-paper tone. Everything
   else is the site's flat editorial voice: paper, 1px hairlines, square
   corners, bare ink display type, no resting card shadows. Green appears
   nowhere here - green is the solution's colour. Coral returns only as the
   pain-mark legend, same family as the fracture and the trio underlines.
   Tilt = rotate:, offset = translate: - never the transform shorthand.
   ========================================================================== */
.tsys{width:100%;max-width:72rem;margin:clamp(3.2rem, 5vw, 4.8rem) auto 0;text-align:left}
/* editorial furniture restored: mono caption + coral legend */
.tsys__head{display:flex;align-items:baseline;justify-content:space-between;gap:1.1rem;padding-bottom:clamp(1.25rem, 1rem + .8vw, 2rem)}
.tsys__cap,.tsys__legend{font-family:var(--ff-mono);font-size:clamp(.605rem, .58rem + .09vw, .66rem);letter-spacing:.17em;line-height:1;text-transform:uppercase}
.tsys__cap{color:var(--muted)}
.tsys__legend{color:#A33420;display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap}
.tsys__glyph{width:1.875rem;height:.75rem;flex:0 0 auto;display:block}
/* the four tints - muted, desaturated, at home on #F7F7F3. Deep shades carry
   all small marks and clear 4.5:1 on paper. */
.tpart--a{--phue:#CFA25C;--pdeep:#8A5A14;--pwash:rgba(224,159,62,.07);--pnote-a:#F6ECD4;--pnote-b:#F0E3C4;--pnote-line:rgba(138,90,20,.26);--pnote-ink:#5A4210}
.tpart--b{--phue:#8CA48E;--pdeep:#42604A;--pwash:rgba(110,140,115,.09);--pnote-a:#E9EFE5;--pnote-b:#DEE7D8;--pnote-line:rgba(66,96,74,.24);--pnote-ink:#3B5342}
.tpart--c{--phue:#C58A6B;--pdeep:#8A4A2E;--pwash:rgba(197,122,84,.09);--pnote-a:#F5E8DF;--pnote-b:#EFDCCE;--pnote-line:rgba(138,74,46,.24);--pnote-ink:#6E3A22}
.tpart--d{--phue:#8B99B5;--pdeep:#46536E;--pwash:rgba(123,137,166,.10);--pnote-a:#E8ECF3;--pnote-b:#DDE3ED;--pnote-line:rgba(70,83,110,.24);--pnote-ink:#3C4A66}
.tsys__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:clamp(1.1rem, .6rem + 1.6vw, 2.4rem);row-gap:clamp(2rem, 1.5rem + 1.5vw, 3rem);align-items:start}
.tpart{display:flex;flex-direction:column;min-width:0}
/* the field: flat, square, hairline - the tint enters as a thin top rule and
   a faint wash that fades back into the paper */
.tpart__card{position:relative;flex:1 1 auto;display:flex;flex-direction:column;min-width:0;background:linear-gradient(180deg, var(--pwash) 0%, rgba(255,255,255,0) 72%);border:1px solid var(--line);border-top:2px solid var(--phue);padding:clamp(1rem, .85rem + .5vw, 1.5rem) clamp(.85rem, .7rem + .5vw, 1.3rem) clamp(1.2rem, 1rem + .6vw, 1.7rem)}
/* numeral in the part's deep tint - the same mono-numeral grammar as the
   costs trio's 01/02/03 */
.tpart__n{display:block;font-family:var(--ff-mono);font-size:clamp(.66rem, .63rem + .12vw, .75rem);font-weight:600;letter-spacing:.18em;color:var(--pdeep);font-variant-numeric:tabular-nums}
/* bare ink display title - no plate, no uppercase, left-set */
.tpart__title{display:block;margin-top:.5rem;font-family:var(--ff-display);font-weight:800;letter-spacing:-.02em;line-height:1.12;color:var(--ink);font-size:clamp(1.06rem, .96rem + .5vw, 1.42rem)}
.tpart__tasks{display:block;margin-top:clamp(.9rem, .75rem + .5vw, 1.35rem)}
.tpart__tasks span{display:block;position:relative;padding-left:1em;color:#2e352f;font-size:clamp(.76rem, .72rem + .16vw, .84rem);line-height:1.5;letter-spacing:.002em;text-wrap:pretty}
.tpart__tasks span + span{margin-top:.45em}
.tpart__tasks span::before{content:"";position:absolute;left:0;top:.5em;width:.34em;height:.34em;background:var(--pdeep)}
.tpart__tasks b{font-weight:600}
/* tool logos in the approved app-tile framing: inset hairline ring + whisper
   shadow, nothing stacked on top */
.tpart__tools{display:flex;justify-content:flex-start;gap:.5rem;margin-top:auto;padding-top:clamp(1.1rem, .9rem + .6vw, 1.6rem)}
.ttool{display:grid;place-items:center;width:clamp(2.05rem, 1.9rem + .5vw, 2.4rem);height:clamp(2.05rem, 1.9rem + .5vw, 2.4rem);background:#fff;border-radius:.7em;box-shadow:inset 0 0 0 1px rgba(11,15,12,.07),0 1px 3px rgba(11,15,12,.06);flex:none}
.ttool img{width:60%;height:60%;object-fit:contain;display:block}
/* the workaround notes: same sticky device (tape, tilt, scatter), ONE paper
   tone per part, roman text, whisper shadow. rotate:/translate: longhands. */
.tnotes{display:flex;flex-direction:column;align-items:center;gap:.75em;margin-top:1.3rem}
.tnote{position:relative;display:block;rotate:var(--rot,0deg);translate:var(--dx,0px) 0;padding:.7em .95em;background:linear-gradient(180deg, var(--pnote-a), var(--pnote-b));border:1px solid var(--pnote-line);border-radius:.25rem;box-shadow:0 2px 6px rgba(11,15,12,.08);font-size:clamp(.72rem, .68rem + .18vw, .82rem);line-height:1.4;color:var(--pnote-ink);max-width:11rem;text-align:center}
.tnote::before{content:"";position:absolute;top:-.5em;left:50%;width:2.6em;height:1em;background:rgba(255,255,255,.55);border:1px solid rgba(11,15,12,.08);translate:-50% 0;rotate:-2deg}
@media (max-width:1120px){
  .tsys__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .tsys__head{flex-direction:column;align-items:flex-start;gap:.7rem}
  .tsys__grid{grid-template-columns:1fr}
  .tnotes{margin-top:1.1rem}
}

/* reveal: the four parts rise in sequence and each title lands a beat behind
   its card - the 2026-08-05 scroll-animation ask, carried from the old
   diagram onto the tinted system. nth-child delays keep the picked mock's
   markup verbatim (no --d attributes added). .js-gated like every reveal on
   the page (index.html strips .js after 3s if the bundle never boots), so
   no-JS/failed-JS visitors see everything at full opacity. Notes tilt via
   rotate:/translate: longhands, so the transform reveal cannot flatten them. */
.js .tsys .tpart{opacity:0;transform:translateY(22px)}
.tsys.in .tpart{opacity:1;transform:none;transition:opacity .6s var(--ease) var(--td,0s),transform .6s var(--ease) var(--td,0s)}
.tsys.in .tpart:nth-child(2){--td:.12s}
.tsys.in .tpart:nth-child(3){--td:.24s}
.tsys.in .tpart:nth-child(4){--td:.36s}
.js .tsys .tpart__title{opacity:0;transform:translateY(12px)}
.tsys.in .tpart__title{opacity:1;transform:none;transition:opacity .5s var(--ease) calc(var(--td,0s) + .25s),transform .5s var(--ease) calc(var(--td,0s) + .25s)}
@media (prefers-reduced-motion:reduce){
  .js .tsys .tpart,.js .tsys .tpart__title{opacity:1;transform:none;transition:none}
}


/* ==========================================================================
   PROBLEM DIAGRAM v3 - FLAT INK CARDS (Shane's pick, mock B, 2026-08-05 -
   supersedes the tinted system v2 below-above; his batch also REMOVES the
   caption + legend, so the fp__head furniture is not ported).
   Grammar: white square hairline cards, mono PART eyebrows, bare ink titles
   on hairline rules, coral task marks, GRAYSCALE tools that recolour on
   hover, one amber slip tone. The .tsys block above is now dead markup-side,
   joining the dead-CSS sweep pile (still not bundled).
   ========================================================================== */
/* the diagram: four flat ink cards on paper. Square corners, 1px hairline,
   zero resting shadow - the same surface language as everything around it.
   Coral is the only accent (the pain family); green appears nowhere here. */
.fourp{width:100%;max-width:72rem;margin-top:clamp(3.2rem, 5vw, 4.8rem);text-align:left}
.fp__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.1rem, .5rem + 1.6vw, 2.4rem);align-items:stretch}
.fp__col{display:flex;flex-direction:column;min-width:0}
/* the card: white, square, hairline, flat. Hover only sharpens the hairline
   and lets the tools speak - no lift, no shadow. */
.fp{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;background:var(--surface-2);border:1px solid var(--line);padding:clamp(1.05rem, .85rem + .6vw, 1.5rem);transition:border-color .3s var(--ease)}
.fp:hover{border-color:var(--line-2)}
/* mono eyebrow numbers the part; the title is bare Red Hat Display ink -
   no plate, no uppercase display type, no bar frame */
/* 2026-08-05: the "PART 01" mono eyebrows are REPLACED by four in-house line
   icons (Shane: calendar / bullseye dart / stacked pages / map pin) - drawn
   in the pcost stroke grammar (currentColor, width 2, round caps), never
   system emoji. .fp__k is retired with the eyebrow markup. */
/* two-tone since 2026-08-05: ink structure + one coral accent per icon (the
   bullseye is the hero - coral rings, ink dart, per Shane's reference). ink
   via currentColor so the dart/frames inherit. */
.fp__ic{display:block;width:clamp(1.5rem, 1.35rem + .5vw, 1.9rem);height:clamp(1.5rem, 1.35rem + .5vw, 1.9rem);color:var(--ink)}
.fp__ic svg{width:100%;height:100%;display:block}
.fp__t{display:block;position:relative;margin-top:.55rem;padding-bottom:.9rem;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.08rem, .98rem + .45vw, 1.42rem);letter-spacing:-.02em;line-height:1.12;color:var(--ink)}
.fp__t::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);transform-origin:left}
/* tasks: the 16 manual-work lines, coral-marked - the same pain family as the
   lede's coral underlines and the cost rules below. Lines wrap freely. */
.fp__tasks{display:block;padding-top:1.05rem;padding-bottom:1.35rem}
.fp__tasks span{display:block;position:relative;padding-left:1.05em;color:#2e352f;font-size:clamp(.78rem, .74rem + .18vw, .86rem);line-height:1.5;text-wrap:pretty}
.fp__tasks span::before{content:"";position:absolute;left:0;top:.5em;width:.34em;height:.34em;background:#E2604A}
.fp__tasks span + span{margin-top:.5em}
.fp__tasks b{font-weight:600}
/* tools: bare marks in a quiet hairline tray, desaturated at rest so the
   ink-and-paper page wins the contrast fight; hover returns their colour */
.fp__tools{display:flex;align-items:center;gap:.7rem;margin-top:auto;padding-top:1.05rem;position:relative}
.fp__tools::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:left}
.fp__tool{display:block;flex:none}
/* grayscale at rest restored (Shane 2026-08-05 second call - supersedes his
   same-morning full-colour ask); colour returns on card hover */
.fp__tool img{width:1.45rem;height:1.45rem;display:block;filter:grayscale(1);opacity:.66;transition:filter .35s var(--ease),opacity .35s var(--ease)}
.fp:hover .fp__tool img{filter:none;opacity:1}
/* the workaround slips: the approved Sarah-sticky device in its ONE approved
   amber tone (hue-a family border), tape kept, whisper shadow, roman type.
   Tilt = rotate: longhand, offset = translate: longhand per the layout law. */
.fp__slips{display:flex;flex-direction:column;align-items:center;gap:.7em;margin-top:1.35rem}
.slip{position:relative;display:block;rotate:var(--rot,0deg);translate:var(--dx,0px) 0;padding:.75em .95em;background:linear-gradient(180deg,#F8E9C4,#F3DFAF);border:1px solid rgba(224,159,62,.42);border-radius:.25rem;box-shadow:0 1px 2px rgba(11,15,12,.07);font-size:clamp(.72rem, .68rem + .18vw, .8rem);font-weight:500;line-height:1.4;color:#5a4210;max-width:11.5rem;text-align:center}
.slip::before{content:"";position:absolute;top:-.5em;left:50%;width:2.6em;height:1em;background:rgba(255,255,255,.55);border:1px solid rgba(11,15,12,.08);translate:-50% 0;rotate:-2deg}
/* small coral hand-drawn arrow per slip (Shane 2026-08-05) - a child pseudo,
   so it inherits the note's tilt AND its sway: it always points in the
   direction the note is facing, without any per-note wiring. Odd slips take
   the arrow on the left pointing in; even slips mirrored on the right. Quiet
   by size (1.45em) not by fade. */
/* D1 (Shane's pick 2026-08-05 from the arrow board): brush shaft, head = two
   straight barbs at 45deg EACH SIDE of the shaft axis, joined at the apex -
   one point above the line, one below. */
.slip::after{content:"";position:absolute;top:50%;left:-2.05em;width:1.5em;height:1.15em;translate:0 -50%;opacity:.9;background:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2030%2017%27%3E%3Cpath%20d=%27M3.4%205.8%20C%2010%204.2%2018%206%2024.2%209.5%27%20fill=%27none%27%20stroke=%27%23E2604A%27%20stroke-width=%273.6%27%20stroke-linecap=%27round%27/%3E%3Cpath%20d=%27M24.25%204.2%20L26%2010.5%20L19.7%2012.25%27%20fill=%27none%27%20stroke=%27%23E2604A%27%20stroke-width=%273.4%27%20stroke-linecap=%27round%27%20stroke-linejoin=%27round%27/%3E%3C/svg%3E") no-repeat center/contain}
.fp__slips .slip:nth-child(even)::after{left:auto;right:-2em;scale:-1 1}
@media (max-width:980px){
  .fp__grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.6rem}
}
@media (max-width:600px){
  .fp__grid{grid-template-columns:1fr;row-gap:2.4rem}
  .fp__slips{margin-top:1.1rem}
}

/* motion (Shane 2026-08-05 "both scrolling and stationary"):
   SCROLL - columns rise staggered, each title a beat behind its card
   (nth-child delays; the picked mock's markup stays verbatim). .js-gated
   like every reveal (index.html strips .js if the bundle never boots).
   STATIONARY - once revealed, the workaround slips sway gently forever:
   rotate/translate LONGHANDS animate around each slip's own --rot/--dx, so
   the keyframes compose with the scatter instead of flattening it. Prime-ish
   durations + negative delays desynchronise the twelve slips. */
/* ==========================================================================
   LYTBOX-STYLE MOTION (Shane 2026-08-05: audit lytbox.co, "copy this style
   right down to before the How it Works section"). Their recipe, extracted
   from lytbox-gsap.js and ported to our zero-library observer system:
   - content rises 20% OF ITS OWN HEIGHT (their yPercent:20), duration ~1s,
     stagger .15s, play once  ->  translateY(18%) + .15s steps here
   - STRUCTURE DRAWS ITSELF: horizontal hairlines scaleX 0->1 from the left,
     vertical hairlines scaleY 0->1 from the top, ~1s
   - hand-drawn marks WIPE on (their DrawSVG; ours are background SVGs, so
     background-size 0%->100% gives the same left-to-right draw)
   - ease: their default power1.out = cubic-bezier(.25,.46,.45,.94)
   Hero keeps its own established animation; the equation lockup is untouched.
   ========================================================================== */
.js .fourp .fp__col{opacity:0;transform:translateY(18%)}
.fourp.in .fp__col{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.25,.46,.45,.94) var(--fd,0s),transform .9s cubic-bezier(.25,.46,.45,.94) var(--fd,0s)}
.fourp.in .fp__col:nth-child(2){--fd:.15s}
.fourp.in .fp__col:nth-child(3){--fd:.3s}
.fourp.in .fp__col:nth-child(4){--fd:.45s}
.js .fourp .fp__t{opacity:0;transform:translateY(14px)}
.fourp.in .fp__t{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.25,.46,.45,.94) calc(var(--fd,0s) + .2s),transform .6s cubic-bezier(.25,.46,.45,.94) calc(var(--fd,0s) + .2s)}
/* the title's underline draws after the title lands */
.js .fourp .fp__t::after{transform:scaleX(0)}
.fourp.in .fp__t::after{transform:scaleX(1);transition:transform .8s cubic-bezier(.25,.46,.45,.94) calc(var(--fd,0s) + .45s)}
/* task lines rise one beat each behind the card */
.js .fourp .fp__tasks span{opacity:0;transform:translateY(10px)}
.fourp.in .fp__tasks span{opacity:1;transform:none;transition:opacity .5s cubic-bezier(.25,.46,.45,.94) var(--td),transform .5s cubic-bezier(.25,.46,.45,.94) var(--td)}
.fourp.in .fp__tasks span:nth-child(1){--td:calc(var(--fd,0s) + .35s)}
.fourp.in .fp__tasks span:nth-child(2){--td:calc(var(--fd,0s) + .42s)}
.fourp.in .fp__tasks span:nth-child(3){--td:calc(var(--fd,0s) + .49s)}
.fourp.in .fp__tasks span:nth-child(4){--td:calc(var(--fd,0s) + .56s)}
/* the tool tray's rule draws, then the logos fade up through it */
.js .fourp .fp__tools::before{transform:scaleX(0)}
.fourp.in .fp__tools::before{transform:scaleX(1);transition:transform .8s cubic-bezier(.25,.46,.45,.94) calc(var(--fd,0s) + .6s)}
.js .fourp .fp__tool{opacity:0;transform:translateY(8px)}
.fourp.in .fp__tool{opacity:1;transform:none;transition:opacity .45s cubic-bezier(.25,.46,.45,.94) var(--gd),transform .45s cubic-bezier(.25,.46,.45,.94) var(--gd)}
.fourp.in .fp__tool:nth-child(1){--gd:calc(var(--fd,0s) + .7s)}
.fourp.in .fp__tool:nth-child(2){--gd:calc(var(--fd,0s) + .76s)}
.fourp.in .fp__tool:nth-child(3){--gd:calc(var(--fd,0s) + .82s)}
.fourp.in .fp__tool:nth-child(4){--gd:calc(var(--fd,0s) + .88s)}
.fourp.in .fp__tool:nth-child(5){--gd:calc(var(--fd,0s) + .94s)}
@media (prefers-reduced-motion:no-preference){
  .fourp.in .slip{animation:slipSway 6.2s ease-in-out infinite alternate}
  .fourp.in .slip:nth-child(2){animation-duration:7.4s;animation-delay:-2.3s}
  .fourp.in .slip:nth-child(3){animation-duration:8.3s;animation-delay:-4.6s}
  @keyframes slipSway{
    from{rotate:calc(var(--rot, 0deg) - .7deg);translate:var(--dx, 0px) 0}
    to{rotate:calc(var(--rot, 0deg) + .7deg);translate:var(--dx, 0px) 3px}
  }
}
@media (prefers-reduced-motion:reduce){
  .js .fourp .fp__col,.js .fourp .fp__t,.js .fourp .fp__tasks span,.js .fourp .fp__tool{opacity:1;transform:none;transition:none}
  .js .fourp .fp__t::after,.js .fourp .fp__tools::before{transform:scaleX(1);transition:none}
}


/* ==========================================================================
   HOW IT WORKS - 'Chapters' (mock-3), ported 2026-08-06. Five steps:
   Document / Build / Install / Automate / AI Agents; steps 02 + 04 mirror
   (.m3-band--flip). Shell first, then per-band interiors (the mock's own
   cascade order). Every selector is m3-* or descendant-scoped - nothing here
   can reach another section. EXTRACTION LAW: style blocks are pulled from the
   mock AFTER stripping HTML comments - the mock's splice banners contain the
   literal token <style> as prose, and raw-source extraction drags comment
   text into the CSS where it parses as garbage that eats later bands.
   ========================================================================== */

/* ==========================================================================
   HIW MOCKUP 3 - "Chapters" (the A x C hybrid, full-bleed crescendo)
   Five near-full-viewport BANDS alternating paper / lifted-surface, closing
   DARK. A's ledger spine survives as the copy grammar (mono numeral kicker,
   green-underlined display title, one body) and as a thin green rail that
   threads ALL five bands continuously, filling with scroll. C's billboard
   artifact carries each band's right side. Each band = ONE chapter: huge
   ghost numeral watermark (the site's step__n grammar), rv/da-style staggered
   reveals re-expressed as scroll-driven view-timeline animations (no JS on
   this page, so the observer grammar becomes pure CSS), plus ONE draw-on
   per band. Band 05 goes #0a0a0a - the hero's dark-window grammar returns
   and the page's dark bookend closes the loop. Story the motion tells:
   scattered -> documented -> wired -> installed -> automatic -> alive.
   No JavaScript. Units rem/em (vh/vw only for band heights + fluid clamps,
   the site's own pattern). Fallbacks: reduced-motion / no-support / <900px
   all render the finished static state - full rail, everything visible.
   ========================================================================== */

/* the animated integer for band 03's counter (ignored by engines without
   @property; the static numeral remains in the markup as the fallback) */
@property --m3c{syntax:"<integer>";initial-value:0;inherits:true}

/* ---- context bands - flow judgement aids, not deliverable ---- */



/* ---- section + head - the Lytbox treatment (Shane 2026-08-05 17:43): rule-dash
   kicker, solid + OUTLINE display pair, giant ghost word clipped by the band.
   Ghost is ink at ~5.5% alpha - never green. ---- */
.m3-hiw{background:var(--bg);padding-top:var(--sec-y)}
.m3-headband{position:relative;overflow:hidden}
.m3-head{position:relative;z-index:1;padding-bottom:clamp(3.5rem,7vw,5.5rem)}
.m3-k{display:flex;align-items:center;color:var(--muted-2)}
.m3-kdash{width:1.9rem;height:.125rem;border-radius:.125rem;background:var(--green);margin-right:.7rem;flex:none}
.m3-h{margin-top:1.2rem;font-family:var(--ff-display);font-weight:800;font-size:clamp(2rem,1.2rem + 3.6vw,4.6rem);line-height:1.02;letter-spacing:-.03em;color:var(--ink)}
.m3-h span{display:block}
.m3-h__o{color:transparent;-webkit-text-stroke:.035em var(--ink);paint-order:stroke fill}
.m3-head .lede{margin-top:1.3rem;max-width:26em}
.m3-ghost{position:absolute;z-index:0;right:-.04em;bottom:-.16em;font-family:var(--ff-display);font-weight:800;font-size:clamp(7rem,2rem + 12vw,13rem);line-height:1;letter-spacing:-.045em;white-space:nowrap;color:rgba(11,15,12,.055);pointer-events:none;user-select:none}

/* ---- the thread: five bands + one continuous green rail ---- */
.m3-thread{position:relative;--m3-railx:max(var(--gut),calc((100% - var(--wrap)) / 2 + var(--gut)))}
/* the green fill - base state is the FULL rail (variant A's resting look);
   tier-2 rewinds it and hands it to the scroll */
.m3-rail{position:absolute;z-index:2;top:0;bottom:0;left:calc(var(--m3-railx) - 1.6rem);width:.125rem;background:var(--green);transform-origin:top center;pointer-events:none}

/* one chapter band */
.m3-band{position:relative;overflow:hidden;padding-block:clamp(3.5rem,7vh,6rem)}
/* rail track segment - each band draws its own so the hairline colour obeys
   the band's local tokens (dark band 05 included) */
.m3-band::before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--m3-railx) - 1.6rem);width:.125rem;background:var(--line)}
/* the band's station dot on the rail - green at rest, ignited by scroll in tier-2 */
.m3-band::after{content:"";position:absolute;z-index:3;top:50%;left:calc(var(--m3-railx) - 1.6rem + .0625rem);width:.6rem;height:.6rem;border-radius:50%;background:var(--green);transform:translate(-50%,-50%)}

.m3-bw{position:relative;z-index:1;display:grid;gap:clamp(2rem,4.5vw,3rem);align-content:center}
.m3-copy{max-width:34em}
.m3-t{margin-top:1rem;font-family:var(--ff-display);font-weight:800;font-size:clamp(2rem,1.35rem + 2.6vw,3.4rem);line-height:1.04;letter-spacing:-.028em;color:var(--ink)}
.m3-u{background-image:linear-gradient(var(--green),var(--green));background-repeat:no-repeat;background-size:100% .12em;background-position:0 94%;padding-bottom:.08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.m3-b{margin-top:1.25rem;color:var(--muted);font-size:clamp(.9375rem,.92rem + .18vw,1.0625rem);line-height:1.66;max-width:30em}

/* huge ghost numeral watermark - the site's step__n grammar at chapter scale */
.m3-n{position:absolute;right:-.05em;bottom:-.32em;z-index:0;font-family:var(--ff-display);font-weight:800;font-size:clamp(7rem,16vw,16rem);line-height:1;letter-spacing:-.05em;color:var(--green-dim-2);pointer-events:none;user-select:none}

@media (min-width:56.25em){
  .m3-band{min-height:70vh;display:grid;align-content:center}
  .m3-band--last{min-height:78vh}
  .m3-bw{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(3rem,5vw,4.5rem);align-items:center}

  /* ZIGZAG (Shane 2026-08-06): odd steps read copy-LEFT / visual-RIGHT, even steps mirror, all
     the way down. The track WIDTHS swap with the sides - reordering alone would drop the visual
     into the .9fr track and break its locked 541px zone contract. DOM order is untouched, so the
     sub-56.25em stack is exactly as before. The rail + per-band dot sit at --m3-railx (page-level,
     not column-level), so the spine stays continuous across a flip. */
  .m3-band--flip .m3-bw{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
  .m3-band--flip .m3-copy{grid-column:2;grid-row:1}
  .m3-band--flip .m3-bw > :not(.m3-copy){grid-column:1;grid-row:1}
}
@media (max-width:56.1875em){
  .m3-rail,.m3-band::before,.m3-band::after{display:none}
}

/* ==========================================================================
   THE FIVE BILLBOARDS - severe card grammar, green-only accents,
   area hues as quiet dots only.
   ========================================================================== */

/* shared: quiet hue chip + LIVE pill */
.m3-chip{display:inline-flex;align-items:center;padding:.32rem .7rem;border-radius:100rem;background:var(--hcb,var(--green-dim));color:var(--hc,var(--green-t));font-family:var(--ff-mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;flex:none}
.m3-live{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:100rem;background:var(--green-dim);color:var(--green-t);font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;flex:none}
.m3-live i{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--green);display:block;flex:none}

/* ---- 01 DOCUMENT: the ACT of documenting - a handwritten note visibly becomes
   a typed numbered SOP (mid-write, caret blinking), area chips scattered above,
   mono PROCESS LIBRARY counter beneath (scenes spec, Shane 2026-08-05 17:54) ---- */
.m3-doc{display:grid;justify-items:start;gap:clamp(.9rem,2vw,1.3rem)}
.m3-scatter{display:flex;flex-wrap:wrap;gap:.7rem 1rem;max-width:27rem}
.m3-area{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .85rem;border:.0625rem solid var(--line);border-radius:100rem;background:var(--surface-2);font-family:var(--ff-mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap}
.m3-area i{width:.4rem;height:.4rem;border-radius:50%;background:var(--ac,var(--green));flex:none}
/* the flat scatter: gentle vertical nudges only - no rotation, no layering */
.m3-scatter .m3-area:nth-child(1){translate:0 .4rem}
.m3-scatter .m3-area:nth-child(2){translate:0 -.15rem}
.m3-scatter .m3-area:nth-child(4){translate:0 .5rem}
.m3-scatter .m3-area:nth-child(6){translate:0 -.25rem}
/* the conversion row: note -> arrow -> SOP card */
.m3-conv{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(.7rem,1.6vw,1.1rem);width:100%}
.m3-note{width:9.5rem;flex:none;rotate:-2deg;padding:.8rem .95rem .5rem;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.25rem;box-shadow:var(--shadow-card)}
.m3-note .mono-sm{color:var(--muted-2)}
.m3-scribble{margin-top:.4rem;font-style:italic;font-size:.8125rem;line-height:1.7;color:var(--muted);background-image:repeating-linear-gradient(180deg,transparent 0,transparent calc(1.7em - .0625rem),var(--line) calc(1.7em - .0625rem),var(--line) 1.7em)}
.m3-caret{display:inline-block;width:.11em;height:1.05em;background:var(--ink);margin-left:.12em;vertical-align:text-bottom}
.m3-lib{color:var(--muted-2)}
.m3-arrow{width:4.6rem;height:2.2rem;flex:none;color:var(--green)}
.m3-arrow svg{width:100%;height:100%;display:block;overflow:visible}
.m3-sop{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:clamp(1.1rem,2.2vw,1.6rem);flex:1 1 16rem;min-width:0;max-width:20rem}
.m3-sop__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.m3-sop__id{color:var(--muted-2)}
.m3-sop__t{display:block;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.25rem,1.05rem + .9vw,1.7rem);letter-spacing:-.024em;line-height:1.1;margin-top:clamp(.9rem,1.8vw,1.2rem)}
.m3-sop__list{margin-top:clamp(.9rem,1.8vw,1.2rem)}
.m3-sop__list li{display:flex;align-items:center;gap:.85rem;padding-block:.66em;border-top:.0625rem solid var(--line);font-size:clamp(.9375rem,.9rem + .2vw,1.0625rem);line-height:1.5}
.m3-sop__list li i{font-style:normal;font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.12em;color:var(--muted-2);flex:none}
.m3-sop__foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.4rem;padding-top:1rem;border-top:.0625rem solid var(--line)}
.m3-sop__tools{display:flex;align-items:center;gap:.7rem}
.m3-sop__tools img{width:1.4rem;height:1.4rem;display:block;filter:grayscale(1);opacity:.66}

/* ---- 02 BUILD: code + systems + UI in one composition (scenes spec) - a dark
   editor pane writes syntax-shaped token lines, a wire wires three tools into a
   dashboard frame mid-assembly (one slot dashed, cursor placing the next tile) ---- */
.m3-build{display:grid;justify-items:start;gap:clamp(1rem,2.2vw,1.5rem);width:100%}
.m3-code{width:100%;max-width:21rem;border:.0625rem solid var(--line-2);border-radius:.6rem;background:#0b0e0b;overflow:hidden;box-shadow:var(--shadow-card)}
.m3-code__bar{display:flex;align-items:center;gap:.45rem;padding:.55rem .8rem;border-bottom:.0625rem solid #1e231f}
.m3-code__bar i{width:.5rem;height:.5rem;border-radius:50%;display:block}
.m3-code__bar i:nth-of-type(1){background:#ff5f57}
.m3-code__bar i:nth-of-type(2){background:#febc2e}
.m3-code__bar i:nth-of-type(3){background:#28c840}
.m3-code__bar span{margin-left:.5rem;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(154,163,155,.82)}
.m3-code__lines{display:grid;gap:.55rem;padding:.9rem 1rem 1.1rem}
.m3-code__lines span{display:flex;align-items:center;gap:.4rem}
.m3-code__lines span.ind{padding-left:1.1rem}
.m3-code__lines i{display:block;height:.5rem;border-radius:.125rem;background:#2a322b;flex:none}
.m3-code__lines .g{background:var(--green)}
.m3-code .m3-caret{width:.125rem;height:.6rem;margin-left:0;background:#f2f4f2}
.m3-flow{display:grid;grid-template-columns:auto minmax(2rem,1fr) minmax(0,15rem);align-items:center;gap:clamp(.9rem,2.2vw,1.6rem);width:100%}
.m3-nodes{display:grid;gap:.7rem}
.m3-nodes i{display:flex;align-items:center;justify-content:center;width:clamp(3rem,6vw,3.75rem);height:clamp(3rem,6vw,3.75rem);border:.0625rem solid var(--line);border-radius:.6rem;background:var(--surface-2)}
.m3-nodes img{width:1.7rem;height:1.7rem;display:block;filter:grayscale(1);opacity:.7}
.m3-wire{position:relative;display:block;height:.75rem;align-self:center}
.m3-wire svg{width:100%;height:100%;display:block}
.m3-wire::after{content:"";position:absolute;right:-.0625rem;top:50%;width:.5rem;height:.5rem;border-top:.125rem solid var(--green);border-right:.125rem solid var(--green);transform:translateY(-50%) rotate(45deg)}
.m3-ui{display:block;border:.0625rem solid var(--line-2);border-radius:.6rem;background:var(--surface-2);overflow:hidden;box-shadow:var(--shadow-card)}
.m3-ui>b{display:block;height:1.4rem;background:#0b0e0b}
.m3-ui__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.8rem .9rem 1rem}
.m3-ui__grid i{display:block;height:2rem;border-radius:.3rem;background:var(--surface);border:.0625rem solid var(--line)}
.m3-ui__grid .on{background:var(--green-dim);border-color:transparent}
.m3-ui__grid .m3-ui__slot{position:relative;background:transparent;border:.09rem dashed var(--line-2)}
.m3-ui__cur{position:absolute;right:-.4rem;bottom:-.35rem;width:1rem;height:1rem;color:var(--ink)}
.m3-ui__cur svg{width:100%;height:100%;display:block}

/* ---- 03 INSTALL: the dashboard window echo of the hero demo (dark island) ---- */
.m3-win{--bg:#0a0a0a;--surface:#111411;--surface-2:#0d100d;--ink:#f2f4f2;--muted:#9aa39b;--muted-2:rgba(154,163,155,.82);--line:#1e231f;--line-2:#2a322b;--green-t:#1fd15f;--green-dim:rgba(31,209,95,.12);--green-dim-2:rgba(31,209,95,.06);color:var(--ink);border:.0625rem solid var(--line);border-radius:.75rem;background:var(--surface-2);overflow:hidden;box-shadow:0 .375rem 1.125rem rgba(11,15,12,.10),0 2.125rem 5.625rem rgba(11,15,12,.22)}
.m3-win__bar{display:flex;align-items:center;gap:.45rem;padding:.7rem .9rem;background:#0b0e0b;border-bottom:.0625rem solid var(--line)}
.m3-win__bar i{width:.5625rem;height:.5625rem;border-radius:50%;display:block}
.m3-win__bar i:nth-of-type(1){background:#ff5f57}
.m3-win__bar i:nth-of-type(2){background:#febc2e}
.m3-win__bar i:nth-of-type(3){background:#28c840}
.m3-win__bar span{margin-left:.6rem;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.m3-win__body{display:grid;grid-template-columns:auto 1fr}
.m3-win__side{display:flex;flex-direction:column;gap:.15rem;border-right:.0625rem solid var(--line);padding:.9rem .75rem;background:#0b0e0b}
.m3-win__side span{display:flex;align-items:center;gap:.7em;padding:.45em .85em;border-radius:.4rem;font-family:var(--ff-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap}
.m3-win__side span i{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--line-2);flex:none}
.m3-win__side .is-on{background:var(--green-dim);color:var(--green-t)}
.m3-win__side .is-on i{background:var(--green)}
.m3-win__main{padding:clamp(1.1rem,2.4vw,1.6rem);display:grid;gap:clamp(.9rem,2vw,1.2rem);align-content:start;min-width:0}
.m3-win__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.m3-win__top b{font-family:var(--ff-display);font-weight:800;font-size:clamp(1rem,.9rem + .5vw,1.3rem);letter-spacing:-.02em}
.m3-kpirule{display:block;height:.125rem;border-radius:.125rem;background:var(--green);transform-origin:left center}
.m3-win__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.0625rem;background:var(--line);border:.0625rem solid var(--line);border-radius:.5rem;overflow:hidden}
.m3-win__kpis>div{background:var(--surface);padding:clamp(.85rem,2vw,1.2rem);min-width:0}
.m3-win__kpis b{display:block;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.6rem,1.2rem + 1.7vw,2.8rem);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.m3-win__kpis small{display:block;margin-top:.5rem;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-2);line-height:1.5}
@media (max-width:39.9375em){.m3-win__side{display:none}.m3-win__body{grid-template-columns:1fr}}
/* the install tableau (scenes spec): the desktop window above, then a second
   device running the SAME dashboard + a notepad with a pen - the team taking
   notes - and the TEAM ONBOARDED beat */
.m3-install{display:grid;gap:clamp(.9rem,2vw,1.3rem)}
.m3-install__row{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(.8rem,1.8vw,1.2rem)}
.m3-phone{--green-t:#1fd15f;--green-dim:rgba(31,209,95,.12);width:8.6rem;flex:none;border:.0625rem solid #1e231f;border-radius:.9rem;background:#0d100d;color:#f2f4f2;box-shadow:0 .375rem 1.125rem rgba(11,15,12,.10),0 1.5rem 3.5rem rgba(11,15,12,.2);padding:.7rem .7rem .8rem;display:grid;gap:.55rem;align-content:start}
.m3-phone::before{content:"";width:1.6rem;height:.25rem;border-radius:100rem;background:#2a322b;margin:0 auto}
.m3-phone__top{display:flex;align-items:center;justify-content:space-between;gap:.4rem}
.m3-phone__top b{font-family:var(--ff-display);font-weight:800;font-size:.6875rem;letter-spacing:-.01em}
.m3-phone .m3-live{padding:.2rem .45rem;font-size:.5rem}
.m3-phone__kpis{display:grid;grid-template-columns:1fr 1fr;gap:.0625rem;background:#1e231f;border:.0625rem solid #1e231f;border-radius:.4rem;overflow:hidden}
.m3-phone__kpis span{background:#111411;padding:.5rem .55rem;min-width:0}
.m3-phone__kpis b{display:block;font-family:var(--ff-display);font-weight:800;font-size:1.05rem;line-height:1;font-variant-numeric:tabular-nums}
.m3-phone__kpis small{display:block;margin-top:.25rem;font-family:var(--ff-mono);font-size:.4375rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(154,163,155,.82)}
.m3-pad{position:relative;width:12rem;flex:none;rotate:2deg;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.25rem;box-shadow:var(--shadow-card);padding:.8rem .95rem .5rem}
.m3-pad .mono-sm{color:var(--muted-2)}
.m3-pen{position:absolute;right:-.55rem;bottom:-.5rem;width:2.1rem;height:2.1rem;color:var(--muted);rotate:18deg}
.m3-pen svg{width:100%;height:100%;display:block}
.m3-team{align-self:center}

/* ---- 04 AUTOMATE: the n8n-grammar canvas (scenes spec) - a trigger node
   branches over curved wires into two action nodes, status dots green, flow
   dots riding the live wire; mono RUNS beat beneath. No dot-grid ground
   (audit law), nodes wear the severe card grammar. ---- */
.m3-canvas{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:clamp(1.1rem,2.4vw,1.6rem);display:grid;grid-template-columns:auto minmax(2.5rem,1fr) auto;align-items:center;gap:clamp(.7rem,1.6vw,1.1rem);width:100%;max-width:34rem}
.m3-node{display:flex;align-items:center;gap:.6rem;padding:.65rem .85rem;border:.0625rem solid var(--line-2);border-radius:.6rem;background:var(--surface-2);box-shadow:var(--shadow-card)}
.m3-node--t{border-radius:2rem .6rem .6rem 2rem;padding-left:1rem}
.m3-node img{width:1.3rem;height:1.3rem;display:block;filter:grayscale(1);opacity:.7;flex:none}
.m3-node small{display:block;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.m3-node b{display:block;font-weight:700;font-size:.9375rem;line-height:1.25;color:var(--ink);white-space:nowrap}
.m3-node>i{width:.4rem;height:.4rem;border-radius:50%;background:var(--green);flex:none;margin-left:.15rem}
.m3-acts{display:grid;gap:clamp(.9rem,2vw,1.3rem)}
.m3-cwires{align-self:stretch;min-height:7rem}
.m3-cwires svg{width:100%;height:100%;display:block;overflow:visible}
.m3-cw{stroke:var(--green);stroke-width:.125rem;stroke-linecap:round}
.m3-wflow{stroke:#fff;stroke-width:.22rem;stroke-linecap:round;stroke-dasharray:0 .12}
.m3-runs{grid-column:1 / -1;margin-top:.3rem;padding-top:.9rem;border-top:.0625rem solid var(--line);color:var(--muted-2)}
@media (max-width:25.9375em){.m3-canvas{grid-template-columns:1fr}.m3-cwires{display:none}.m3-runs{grid-column:auto}}

/* ---- 05 AI AGENTS TAKE OVER: the dark band - hero window grammar, agents alive ---- */
.m3-agent{border:.0625rem solid var(--line);border-radius:.75rem;background:var(--surface-2);overflow:hidden;box-shadow:0 1.875rem 5rem rgba(0,0,0,.55);width:100%;max-width:35rem}
.m3-agent__bar{display:flex;align-items:center;gap:.45rem;padding:.7rem .9rem;background:#0b0e0b;border-bottom:.0625rem solid var(--line)}
.m3-agent__bar i{width:.5625rem;height:.5625rem;border-radius:50%;display:block}
.m3-agent__bar i:nth-of-type(1){background:#ff5f57}
.m3-agent__bar i:nth-of-type(2){background:#febc2e}
.m3-agent__bar i:nth-of-type(3){background:#28c840}
.m3-agent__bar span{margin-left:.6rem;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.m3-agent__body{padding:clamp(1.25rem,2.6vw,1.9rem)}
.m3-feed{position:relative;display:grid;gap:1.15rem;padding-left:1.7rem}
.m3-feedline{position:absolute;left:.21rem;top:.55em;bottom:.55em;width:.125rem;background:var(--green);opacity:.4;transform-origin:top center}
.m3-feed__row{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .6rem}
.m3-feed__row>i{position:absolute;left:-1.7rem;top:.45em;width:.55rem;height:.55rem;border-radius:50%;background:var(--green)}
.m3-feed__tag{font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--green-t);flex:none}
.m3-feed__row .m3-area{padding:.28rem .6rem;font-size:.5rem}
.m3-feed__row b{font-weight:700;color:var(--ink);font-size:clamp(.9375rem,.9rem + .25vw,1.0625rem)}
.m3-feed__app{width:1.05rem;height:1.05rem;display:block;filter:grayscale(1) invert(1);opacity:.7;flex:none}
.m3-feed__row em{font-style:normal;font-family:var(--ff-mono);font-size:.625rem;letter-spacing:.12em;color:var(--muted-2)}
.m3-pro{margin-top:1.4rem;border:.0625rem solid var(--line-2);border-radius:.6rem;background:var(--green-dim-2);padding:1rem 1.15rem}
.m3-pro__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.m3-pro__head .mono-sm{color:var(--green-t)}
.m3-pro p{margin-top:.45rem;color:var(--muted);font-size:clamp(.9375rem,.9rem + .2vw,1.0625rem);line-height:1.6}


/* band 04 - the switch-on: a soft green-washed ground bridging paper -> dark (Shane 2026-08-05: 'any green background here?') */
.m3-band--green{background:linear-gradient(180deg, rgba(31,209,95,.07), rgba(31,209,95,.12));border-top:1px solid rgba(31,209,95,.28);border-bottom:1px solid rgba(31,209,95,.28)}

/* round-3 shared zone contract: band 05's window matches the 31rem footprint (Shane: all 5 boxes same size) */
@media (min-width:56.25em){
  .m3-band--last .m3-rbig{min-height:31rem;display:flex;flex-direction:column;justify-content:space-between}
}
/* ---- (marquee strip removed per Shane 2026-08-05 18:2x) ---- */
.m3-cap{position:relative;overflow:hidden;padding-block:1.1rem;border-top:.0625rem solid var(--line)}
.m3-cap::before,.m3-cap::after{content:"";position:absolute;top:0;bottom:0;width:clamp(2.5rem,7vw,6rem);z-index:1;pointer-events:none}
.m3-cap::before{left:0;background:linear-gradient(90deg,var(--black),transparent)}
.m3-cap::after{right:0;background:linear-gradient(270deg,var(--black),transparent)}
.m3-cap__track{display:flex;width:max-content}
.m3-cap__g{display:flex;align-items:center;flex:none}
.m3-cap__g span{display:inline-flex;align-items:center;gap:1.3rem;padding-inline:.65rem;font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:rgba(242,244,242,.72)}
.m3-cap__g span i{width:.4rem;height:.4rem;border-radius:50%;background:var(--green);display:block;flex:none}
.m3-sr{position:absolute;width:.0625rem;height:.0625rem;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ==========================================================================
   AMBIENT LOOPS - motion-gated keyframes only. Subtle, 2-4s periods.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-live i{animation:m3Blip 2.4s var(--ease) infinite}
  @keyframes m3Blip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .35rem rgba(31,209,95,0)}}
  .m3-pro{animation:m3Halo 3.4s var(--ease) infinite}
  @keyframes m3Halo{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,0)}45%{box-shadow:0 0 0 .55rem rgba(31,209,95,.09)}}
  .m3-cap__track{animation:m3Slide 46s linear infinite}
  @keyframes m3Slide{to{transform:translateX(-50%)}}
  /* mid-write carets blink (01 SOP + 02 editor); static = visible caret */
  .m3-caret{animation:m3Caret 1.1s steps(1) infinite}
  @keyframes m3Caret{50%{opacity:0}}
  /* 04: flow dots ride the live wire; static = frozen dots on the wire */
  .m3-wflow{animation:m3Flow 1.4s linear infinite}
  @keyframes m3Flow{to{stroke-dashoffset:-.12}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre. Same support + media gates as the live
   site's v4 block - the winner ports drop-in. Everything below REWINDS the
   finished base state and hands it to the visitor's scroll: the rail fills,
   chips deal in, wires and arrows draw, the workflow canvas wires itself,
   the counter counts, the feed comes alive. Each band drives its children off its own
   named view-timeline; staggers are expressed as offset animation-ranges
   (the scroll-native form of the site's rv/da delay ladder).
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* the connective tissue: one green rail fills across all five bands */
  .m3-thread{view-timeline-name:--m3thread}
  .m3-rail{animation:m3Rail linear both;animation-timeline:--m3thread;animation-range:cover 0% cover 100%}
  @keyframes m3Rail{from{transform:scaleY(0)}to{transform:scaleY(1)}}

  /* every band (and the head band) is its own chapter timeline */
  .m3-band,.m3-headband{view-timeline-name:--m3b}

  /* the ghost word drifts slightly against the scroll - the Lytbox parallax */
  .m3-ghost{animation:m3Ghost linear both;animation-timeline:--m3b;animation-range:cover 0% cover 100%}
  @keyframes m3Ghost{from{transform:translateY(1.4rem)}to{transform:translateY(-1.4rem)}}

  /* deal-in ladder - the rv/da stagger grammar, scroll-mapped */
  .m3-r{animation:m3In linear both;animation-timeline:--m3b}
  .m3-r1{animation-range:entry 5% entry 40%}
  .m3-r2{animation-range:entry 12% entry 48%}
  .m3-r3{animation-range:entry 19% entry 56%}
  .m3-r4{animation-range:entry 26% entry 64%}
  .m3-r5{animation-range:entry 33% entry 72%}
  .m3-r6{animation-range:entry 40% entry 80%}
  .m3-r7{animation-range:entry 47% entry 88%}
  @keyframes m3In{from{opacity:0;transform:translateY(1.1rem)}to{opacity:1;transform:none}}
  .m3-rbig{animation-name:m3InBig}
  @keyframes m3InBig{from{opacity:0;transform:translateY(2.2rem)}to{opacity:1;transform:none}}

  /* station dots ignite as their chapter arrives */
  .m3-band::after{background:var(--line-2);animation:m3Dot linear both;animation-timeline:--m3b;animation-range:entry 55% entry 78%}
  @keyframes m3Dot{from{background:var(--line-2)}to{background:var(--green)}}

  /* draw-on grammar: strokes carry pathLength="1" in the markup */
  @keyframes m3Draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3Fade{from{opacity:0}to{opacity:1}}

  /* 01: the arrow draws from the scattered chips into the SOP card */
  .m3-arrow path{stroke-dasharray:1;stroke-dashoffset:1;animation:m3Draw linear both;animation-timeline:--m3b;animation-range:entry 26% entry 72%}
  .m3-arrow path.m3-tip{stroke-dasharray:none;stroke-dashoffset:0;animation-name:m3Fade;animation-range:entry 68% entry 80%}

  /* 02: the wire draws left to right; the chevron lands at its tip */
  .m3-wire path{stroke-dasharray:1;stroke-dashoffset:1;animation:m3Draw linear both;animation-timeline:--m3b;animation-range:entry 22% entry 70%}
  .m3-wire::after{opacity:0;animation:m3Fade linear both;animation-timeline:--m3b;animation-range:entry 66% entry 78%}

  /* 03: the signature green hairline sweeps above the KPI row */
  .m3-kpirule{animation:m3Sweep linear both;animation-timeline:--m3b;animation-range:entry 32% entry 68%}
  @keyframes m3Sweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  /* the one counter: hours given back counts up as the window lands */
  .m3-count span{display:none}
  .m3-count::after{counter-reset:m3c var(--m3c);content:counter(m3c);animation:m3Count linear both;animation-timeline:--m3b;animation-range:entry 28% entry 82%}
  @keyframes m3Count{from{--m3c:0}to{--m3c:27}}

  /* 04: the canvas wires draw the machine left to right */
  .m3-cwires .m3-cw{stroke-dasharray:1;stroke-dashoffset:1;animation:m3Draw linear both;animation-timeline:--m3b;animation-range:entry 24% entry 66%}

  /* 05: the feed's own little rail draws down through the agents' work */
  .m3-feedline{animation:m3FeedLine linear both;animation-timeline:--m3b;animation-range:entry 26% entry 76%}
  @keyframes m3FeedLine{from{transform:scaleY(0)}to{transform:scaleY(1)}}

}}

@media (forced-colors:active){.m3-n,.m3-ghost{display:none}.m3-h__o{color:CanvasText;-webkit-text-stroke:0}}


/* ==========================================================================
   BAND 01 REBUILD - "THE MAPPING WALL" (2026-08-05, per Shane's upgrade note:
   rows and lists of processes and flowcharts being mapped).
   Three objects, flat and ordered: (1) ONE small flowchart actively being
   mapped - five nodes, connectors that draw on with scroll, the last node
   mid-placement (dashed outline + cursor); (2) two tidy ROWS of compact
   process-list cards - the library visibly being filled; (3) the mono
   PROCESS LIBRARY tally counting up. Severe card grammar, green-only
   accents, area hues as quiet dots. No rotation, no layering, no scatter.
   Base styles below = the FINISHED static state (the fallback everywhere);
   the tier-2 gate at the bottom rewinds it and hands it to the scroll.
   ========================================================================== */

/* the animated integer for the library tally (engines without @property
   ignore this; the static numeral stays in the markup as the fallback) */
@property --m3s1c{syntax:"<integer>";initial-value:0;inherits:true}

/* ---- the wall ---- */
.m3-s1-wall{display:grid;gap:clamp(.9rem,2vw,1.2rem);width:100%;max-width:38rem;min-width:0}

/* ---- (1) the flowchart being mapped ---- */
.m3-s1-map{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:clamp(.9rem,2vw,1.25rem) clamp(1rem,2.2vw,1.4rem);display:grid;gap:clamp(.75rem,1.8vw,1rem)}
.m3-s1-map__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.m3-s1-map__id{color:var(--muted-2)}
.m3-s1-row{display:flex;align-items:center;gap:.6rem;min-width:0}
.m3-s1-node{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:.0625rem solid var(--line-2);border-radius:.5rem;background:var(--surface-2);box-shadow:var(--shadow-card);font-weight:700;font-size:.8125rem;line-height:1.2;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;flex:none}
.m3-s1-node i{width:.35rem;height:.35rem;border-radius:50%;background:var(--green);flex:none}
/* the node mid-placement: dashed outline, muted, the placement cursor on its corner */
.m3-s1-ph{border:.09rem dashed var(--line-2);background:transparent;box-shadow:none;color:var(--muted-2)}
.m3-s1-ph i{background:var(--line-2)}
.m3-s1-cur{position:absolute;right:-.55rem;bottom:-.5rem;width:1.05rem;height:1.05rem;color:var(--ink)}
.m3-s1-cur svg{width:100%;height:100%;display:block}
/* connectors: stretchy wires so each row squares off edge to edge */
.m3-s1-wire{position:relative;flex:1 1 1.5rem;min-width:1.1rem;height:.75rem;color:var(--green)}
.m3-s1-wire svg{width:100%;height:100%;display:block}
.m3-s1-wire::after{content:"";position:absolute;right:-.0625rem;top:50%;width:.45rem;height:.45rem;border-top:.125rem solid currentColor;border-right:.125rem solid currentColor;transform:translateY(-50%) rotate(45deg)}
.m3-s1-cw{stroke:currentColor;stroke-width:.125rem;stroke-linecap:round;fill:none}
/* the return elbow between the two flow rows */
.m3-s1-eb{height:1.4rem;margin-block:-.15rem;color:var(--green)}
.m3-s1-eb svg{width:100%;height:100%;display:block;overflow:visible}

/* ---- (2) the library rows - compact process-list cards ---- */
.m3-s1-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.7rem,1.6vw,.9rem)}
.m3-s1-card{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.6rem;box-shadow:var(--shadow-card);padding:.75rem .85rem .8rem;min-width:0;display:grid;gap:.45rem;align-content:start}
.m3-s1-card__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.m3-s1-tag{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;color:var(--muted-2);white-space:nowrap}
.m3-s1-tag i{width:.35rem;height:.35rem;border-radius:50%;background:var(--ac,var(--green));flex:none}
.m3-s1-card__meta{display:inline-flex;align-items:center;gap:.45rem;flex:none}
.m3-s1-card__meta img{width:.95rem;height:.95rem;display:block;filter:grayscale(1);opacity:.6}
.m3-s1-card__id{color:var(--muted-2);font-size:.5rem;white-space:nowrap}
.m3-s1-card>b{font-weight:700;font-size:.8125rem;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}
.m3-s1-steps{list-style:none;margin:0;padding:0;display:grid;gap:.28rem}
.m3-s1-steps li{display:flex;align-items:baseline;gap:.45rem;font-size:.6875rem;line-height:1.45;color:var(--muted)}
.m3-s1-steps li i{font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.1em;color:var(--muted-2);flex:none}
/* the mid-write caret on the newest line; static = visible caret */
.m3-s1-caret{display:inline-block;width:.11em;height:1.05em;background:var(--ink);margin-left:.14em;vertical-align:text-bottom}

/* ---- (3) the tally ---- */
.m3-s1-lib{color:var(--muted-2)}
.m3-s1-count{font-weight:500;color:var(--green-t);font-variant-numeric:tabular-nums}

@media (min-width:64em){
  .m3-s1-rows{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:35.9375em){
  .m3-s1-node{font-size:.75rem;padding:.42rem .6rem;gap:.4rem}
  .m3-s1-row{gap:.45rem}
  .m3-s1-wire{min-width:.9rem}
}

/* ---- ambient loop (max discipline: the caret; the reused .m3-live dot
   already blips via the page's shared ambient rule) ---- */
@media (prefers-reduced-motion: no-preference){
  .m3-s1-caret{animation:m3S1Caret 1.1s steps(1) infinite}
  @keyframes m3S1Caret{50%{opacity:0}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site.
   The flow maps itself node by node (pop, wire draws, chevron lands), the
   dashed node arrives last with its cursor; the library cards deal in row
   by row on the page's m3-r ladder; the tally counts 0 -> 12.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* idempotent restatement of the page's chapter timeline */
  .m3-band{view-timeline-name:--m3b}

  /* nodes pop in sequence along the mapping path */
  .m3-s1-node{animation:m3S1Pop linear both;animation-timeline:--m3b}
  .m3-s1-f1{animation-range:entry 18% entry 28%}
  .m3-s1-f2{animation-range:entry 34% entry 44%}
  .m3-s1-f3{animation-range:entry 48% entry 58%}
  .m3-s1-f4{animation-range:entry 62% entry 72%}
  .m3-s1-ph{animation-name:m3S1Fade;animation-range:entry 76% entry 86%}
  @keyframes m3S1Pop{from{opacity:0;transform:translateY(.45rem)}to{opacity:1;transform:none}}
  @keyframes m3S1Fade{from{opacity:0}to{opacity:1}}

  /* connectors draw on with scroll (strokes carry pathLength="1") */
  .m3-s1-wire path,.m3-s1-eb path{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S1Draw linear both;animation-timeline:--m3b}
  .m3-s1-w1 path{animation-range:entry 24% entry 38%}
  .m3-s1-w2 path{animation-range:entry 40% entry 52%}
  .m3-s1-eb path{animation-range:entry 54% entry 66%}
  .m3-s1-w3 path{animation-range:entry 68% entry 80%}
  @keyframes m3S1Draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

  /* the chevron lands at each wire's tip */
  .m3-s1-wire::after{opacity:0;animation:m3S1Fade linear both;animation-timeline:--m3b}
  .m3-s1-w1::after{animation-range:entry 34% entry 40%}
  .m3-s1-w2::after{animation-range:entry 48% entry 54%}
  .m3-s1-w3::after{animation-range:entry 76% entry 82%}

  /* the placement cursor arrives with the dashed node */
  .m3-s1-cur{opacity:0;animation:m3S1Fade linear both;animation-timeline:--m3b;animation-range:entry 82% entry 90%}

  /* the library tally counts up as the rows land */
  .m3-s1-count span{display:none}
  .m3-s1-count::after{counter-reset:m3s1c var(--m3s1c);content:counter(m3s1c);animation:m3S1Count linear both;animation-timeline:--m3b;animation-range:entry 30% entry 85%}
  @keyframes m3S1Count{from{--m3s1c:0}to{--m3s1c:12}}

}}


/* ==========================================================================
   BAND 01 REBUILD r3 - "THE CAPTURE PAD" (Shane round 3, 2026-08-05:
   "make it more like taking notes. The little roadmap is confusing. This
   doesn't look like a data capture."). The FLOW-13 flowchart card is KILLED.
   The scene is a NOTE-TAKING / DATA-CAPTURE tableau: ONE large lined capture
   pad (mono header OWNER WALKTHROUGH - CAPTURE, five handwritten answer
   lines that write on with scroll, blinking caret, a pen at its edge) with
   three ticked capture checks landing beside it; beneath, a small drawn
   green arrow ("Notes become the process") hands the pad to THREE of the
   existing SOP mini-cards in one tidy row - notes BECOME documented process.
   Band shell, locked copy block, g-lift ground and ghost numeral untouched.
   SHARED ZONE CONTRACT: the zone root renders EXACTLY 31rem tall at desktop
   (~469px at 1512, html font-size is 1vw) inside the band's 541px grid
   column; the pad's ruled paper is the elastic part, so the footprint fills
   with ruling, never clips. Fresh m3-s1-* names throughout - zero collisions
   with the retired mapping-wall rules if they survive the splice. Static
   finished state FIRST (mobile / reduced-motion / no-support get every line
   written, every tick drawn, the arrow drawn, all three cards laid); ambient
   loops motion-gated; scroll theatre lives in this fragment's own copy of
   the site's tier-2 gate. No JS. rem/em units only. No em-dash.
   ========================================================================== */

/* ---- the zone root: auto-height stack on mobile; the 31rem contract
   footprint from the band's own two-col breakpoint up ---- */
.m3-s1-scene{display:grid;gap:.9rem;width:100%;min-width:0;align-content:start}
@media (min-width:56.25em){
  .m3-s1-scene{height:31rem;min-height:31rem;grid-template-rows:minmax(0,1fr) auto auto;align-content:stretch}
}

/* ---- (1) the capture row: the big pad + the ticks beside it ---- */
.m3-s1-capture{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem;align-items:stretch;min-height:0;min-width:0}

/* the pad: one large lined sheet, ruled to its full height */
.m3-s1-pad{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.3rem;box-shadow:var(--shadow-card);padding:.95rem 1.1rem .8rem}
.m3-s1-padhead{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.6rem;border-bottom:.0625rem solid var(--line-2)}
.m3-s1-padid{font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* the answers: handwriting on ruling. The ruling is painted on the
   paragraph's full box, so when the pad stretches to fill the 31rem
   footprint the empty rules keep going - a real pad, never a clip. */
.m3-s1-ans{flex:1 1 auto;min-height:0;overflow:hidden;margin-top:.45rem;padding-left:1.7rem;font-style:italic;font-size:.9375rem;line-height:1.9;color:var(--muted);background-image:linear-gradient(90deg,transparent 0,transparent 1.15rem,var(--line-2) 1.15rem,var(--line-2) calc(1.15rem + .0625rem),transparent calc(1.15rem + .0625rem)),repeating-linear-gradient(180deg,transparent 0,transparent calc(1.9em - .0625rem),var(--line) calc(1.9em - .0625rem),var(--line) 1.9em)}
.m3-s1-aln{display:block;white-space:nowrap;overflow:hidden;min-width:0}
.m3-s1-aln b{font-weight:600;color:var(--ink)}
.m3-s1-pc{display:inline-block;width:.11em;height:1.05em;background:var(--ink);margin-left:.16em;vertical-align:text-bottom}
/* the pen at the pad's edge - the site's drawn pen glyph */
.m3-s1-pen{position:absolute;right:-.6rem;bottom:-.55rem;width:2.5rem;height:2.5rem;color:var(--muted);rotate:16deg}
.m3-s1-pen svg{width:100%;height:100%;display:block}

/* the ticks: three small checkbox lines - captured, captured, captured */
.m3-s1-checks{display:grid;gap:.85rem;align-self:center;align-content:center;min-width:8.5rem}
.m3-s1-chd{color:var(--muted-2)}
.m3-s1-chk{display:flex;align-items:center;gap:.55rem}
.m3-s1-chk svg{width:1.05rem;height:1.05rem;flex:none;display:block}
.m3-s1-bx{fill:none;stroke:var(--line-2);stroke-width:1.2}
.m3-s1-tk{fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.m3-s1-ckt{display:grid;gap:.14rem;min-width:0}
.m3-s1-ckt b{font-weight:700;font-size:.8125rem;letter-spacing:-.01em;line-height:1.2;color:var(--ink);white-space:nowrap}
.m3-s1-ckt em{font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1;color:var(--green-t)}

/* ---- (2) the turn: a small drawn arrow - notes become the process ---- */
.m3-s1-turn{display:flex;align-items:center;gap:.7rem;min-height:2.2rem;padding-left:2rem;min-width:0}
.m3-s1-arw{width:2.3rem;height:2rem;flex:none;color:var(--green)}
.m3-s1-arw svg{width:100%;height:100%;display:block;overflow:visible}
.m3-s1-as{fill:none;stroke:currentColor;stroke-width:.23rem;stroke-linecap:round;stroke-linejoin:round}
.m3-s1-albl{color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- (3) the output: three of the SOP mini-cards, one tidy row ---- */
.m3-s1-sops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;align-items:stretch;min-width:0}
.m3-s1-sop{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.6rem;box-shadow:var(--shadow-card);padding:.8rem .85rem .85rem;min-width:0;display:grid;gap:.5rem;align-content:start}
.m3-s1-sh{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.m3-s1-stag{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;color:var(--muted-2);white-space:nowrap}
.m3-s1-stag i{width:.35rem;height:.35rem;border-radius:50%;background:var(--ac,var(--green));flex:none}
.m3-s1-sm{display:inline-flex;align-items:center;gap:.45rem;flex:none}
.m3-s1-sm img{width:.95rem;height:.95rem;display:block;filter:grayscale(1);opacity:.6}
.m3-s1-sid{color:var(--muted-2);font-size:.5rem;white-space:nowrap}
.m3-s1-sop>b{font-weight:700;font-size:.8125rem;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}
.m3-s1-sls{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.m3-s1-sls li{display:flex;align-items:baseline;gap:.45rem;font-size:.6875rem;line-height:1.45;color:var(--muted)}
.m3-s1-sls li i{font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.1em;color:var(--muted-2);flex:none}

/* ---- small screens: the pad keeps the stage, the ticks tuck beneath it
   as a wrapping row, the cards tile as they fit ---- */
@media (max-width:35.9375em){
  .m3-s1-capture{grid-template-columns:1fr}
  .m3-s1-ans{min-height:13.3em}
  .m3-s1-checks{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.2rem;min-width:0}
  .m3-s1-chd{flex:1 1 100%}
  .m3-s1-turn{padding-left:.4rem}
  .m3-s1-sops{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr))}
}

/* ==========================================================================
   AMBIENT - motion-gated loops only: the caret blinks mid-capture and the
   pen jots. (The Capturing pill's dot already blips via the page's shared
   .m3-live rule.) Static fallback = caret visible, pen resting.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s1-pc{animation:m3S1Pc 1.1s steps(1) infinite}
  @keyframes m3S1Pc{50%{opacity:0}}
  .m3-s1-pen{animation:m3S1Jot 2.6s var(--ease) infinite}
  @keyframes m3S1Jot{0%,100%{transform:none}50%{transform:translate(-.12rem,.08rem) rotate(-3deg)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site's
   v4 block, riding the band's --m3b view-timeline. Rewinds the finished
   base state and hands it to the scroll, in story order: the pad lands,
   the five answers WRITE ON line by line, the three capture ticks land and
   DRAW as their areas are covered, the green arrow draws the handover, and
   the three SOP cards deal in last - notes become documented process.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* idempotent restatement of the page's chapter timeline */
  .m3-band{view-timeline-name:--m3b}

  @keyframes m3S1Land{from{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}
  @keyframes m3S1Show{from{opacity:0}to{opacity:1}}
  @keyframes m3S1Ink{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3S1Write{from{clip-path:inset(-.15em 100% -.15em 0)}to{clip-path:inset(-.15em -.15em -.15em 0)}}

  /* the pad lands first, its pen with it */
  .m3-s1-pad{animation:m3S1Land linear both;animation-timeline:--m3b;animation-range:entry 6% entry 20%}

  /* the answers write on, line by line - taking notes */
  .m3-s1-aln{animation:m3S1Write linear both;animation-timeline:--m3b}
  .m3-s1-a1{animation-range:entry 16% entry 30%}
  .m3-s1-a2{animation-range:entry 26% entry 40%}
  .m3-s1-a3{animation-range:entry 36% entry 50%}
  .m3-s1-a4{animation-range:entry 46% entry 60%}
  .m3-s1-a5{animation-range:entry 56% entry 70%}

  /* the capture ticks land beside the pad, then DRAW - captured */
  .m3-s1-chd{animation:m3S1Show linear both;animation-timeline:--m3b;animation-range:entry 26% entry 36%}
  .m3-s1-chk{animation:m3S1Land linear both;animation-timeline:--m3b}
  .m3-s1-ck1{animation-range:entry 34% entry 44%}
  .m3-s1-ck2{animation-range:entry 46% entry 56%}
  .m3-s1-ck3{animation-range:entry 58% entry 68%}
  .m3-s1-tk{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S1Ink linear both;animation-timeline:--m3b}
  .m3-s1-ck1 .m3-s1-tk{animation-range:entry 40% entry 48%}
  .m3-s1-ck2 .m3-s1-tk{animation-range:entry 52% entry 60%}
  .m3-s1-ck3 .m3-s1-tk{animation-range:entry 64% entry 72%}

  /* the handover: the arrow draws, its tip lands, the label follows */
  .m3-s1-aw{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S1Ink linear both;animation-timeline:--m3b;animation-range:entry 58% entry 74%}
  .m3-s1-atip{animation:m3S1Show linear both;animation-timeline:--m3b;animation-range:entry 72% entry 80%}
  .m3-s1-albl{animation:m3S1Show linear both;animation-timeline:--m3b;animation-range:entry 74% entry 86%}

  /* the output deals in last - the notes are now the process */
  .m3-s1-sop{animation:m3S1Land linear both;animation-timeline:--m3b}
  .m3-s1-sp1{animation-range:entry 64% entry 78%}
  .m3-s1-sp2{animation-range:entry 70% entry 84%}
  .m3-s1-sp3{animation-range:entry 76% entry 90%}

}}


/* ==========================================================================
   BAND 01 r4 - "THE CAPTURE PAD" gets DESIGN DEPTH (Shane round 4,
   2026-08-05: "add more design here, just looks like white space with black
   text. Keep design same, tie in with notes at top.")
   The r3 composition is UNTOUCHED (capture pad -> ticks -> arrow -> SOP row);
   every object is redrawn as a designed artifact in the site's grammar:
   (1) the pad becomes a REAL pad - warm cream paper gradient, classic
       red-line left margin rule, green header underline, a translucent tape
       tab straddling the top edge, a stronger lift shadow, the pen bigger
       and inkier with a soft drop shadow;
   (2) the handwritten lines carry AREA-COLOURED margin dots in the pad
       gutter (quotes = Sales #0C7A37, invoices = Finances #C24E4E,
       bookings = Operations #3B7AC2, holidays = Admin #B58A2E, the line
       still being written = a hollow open dot) plus a faint area-coloured
       underline swipe behind two keywords - and the three SOP cards below
       carry the SAME area hue as a 2px TOP BAR + their tag dot, so each
       note visibly maps to the card it became (the tie-in);
   (3) the CAPTURED tick rail sits on a hairline chip card with a quiet
       green tint instead of floating on the band;
   (4) two quiet hand-authored doodle marks (a sparkle star, a small drawn
       arrow) sit in the pad margin's empty ruled run at desktop - the dead
       space now reads as a used notepad.
   Band shell, g-lift ground, locked copy block and ghost numeral untouched.
   SHARED ZONE CONTRACT (absolute): the zone root .m3-s1-scene is EXACTLY
   height:31rem / min-height:31rem at >=56.25em inside the band's ~541px
   column at 1512. The pad's ruling is the elastic part - it fills, never
   clips - and nothing extends past the column edges.
   This fragment restates the whole r3 band standalone (duplicates no-op,
   later position wins for the edits); fresh classes for the new artifacts:
   m3-s1-tape / m3-s1-dl / m3-s1-hl / m3-s1-doo. Static finished state
   FIRST (mobile / reduced-motion / no-support get the full picture: paper
   warm, every dot placed, ticks drawn, bars on, doodles resting); ambient
   loops motion-gated; ALL scroll moves live in this fragment's own copy of
   the site's tier-2 gate. No JS. rem/em units. No em-dash.
   ========================================================================== */

/* ---- the zone root: auto-height stack on mobile; the 31rem contract
   footprint from the band's own two-col breakpoint up ---- */
.m3-s1-scene{display:grid;gap:.9rem;width:100%;min-width:0;align-content:start}
@media (min-width:56.25em){
  .m3-s1-scene{height:31rem;min-height:31rem;grid-template-rows:minmax(0,1fr) auto auto;align-content:stretch}
}

/* ---- (1) the capture row: the big pad + the ticks beside it ---- */
.m3-s1-capture{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem;align-items:stretch;min-height:0;min-width:0}

/* the pad r4: warm cream paper, stronger lift, a real artifact */
.m3-s1-pad{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:linear-gradient(168deg,#FFFDF6 0%,#FBF7EA 58%,#F6F1DE 100%);border:.0625rem solid #E4DEC9;border-radius:.3rem;box-shadow:0 .125rem .375rem rgba(11,15,12,.05),0 .875rem 1.75rem rgba(11,15,12,.09),0 2.125rem 4.25rem rgba(11,15,12,.13);padding:1rem 1.1rem .85rem}
/* the tape tab straddling the top edge */
.m3-s1-tape{position:absolute;left:50%;top:-.55rem;width:4.2rem;height:1.15rem;background:rgba(233,229,209,.62);border:.0625rem solid rgba(11,15,12,.06);border-radius:.125rem;box-shadow:0 .125rem .3rem rgba(11,15,12,.07);transform:translateX(-50%) rotate(-2deg)}
/* the header: green underline - the system's colour rules the sheet */
.m3-s1-padhead{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.6rem;border-bottom:.125rem solid var(--green)}
.m3-s1-padid{font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* the answers: handwriting on warm ruling behind a classic red margin
   rule. Ruling paints on the paragraph's full box, so when the pad
   stretches to fill the 31rem footprint the empty rules keep going -
   a real pad, never a clip. */
.m3-s1-ans{flex:1 1 auto;min-height:0;overflow:hidden;margin-top:.45rem;padding-left:1.7rem;font-style:italic;font-size:.9375rem;line-height:1.9;color:var(--muted);background-image:linear-gradient(90deg,transparent 0,transparent 1.15rem,rgba(192,80,60,.38) 1.15rem,rgba(192,80,60,.38) calc(1.15rem + .0625rem),transparent calc(1.15rem + .0625rem)),repeating-linear-gradient(180deg,transparent 0,transparent calc(1.9em - .0625rem),rgba(151,140,104,.26) calc(1.9em - .0625rem),rgba(151,140,104,.26) 1.9em)}
/* r4: the line spans go overflow:visible so the gutter dots can live at a
   negative left offset; the ans box (overflow:hidden) still clips any spill */
.m3-s1-aln{display:block;white-space:nowrap;overflow:visible;min-width:0}
.m3-s1-aln b{font-weight:600;color:var(--ink)}
/* (2) the area dots in the pad gutter - each note wears its area's hue */
.m3-s1-dl{position:relative}
.m3-s1-dl::before{content:"";position:absolute;left:-1.32rem;top:.72em;width:.45rem;height:.45rem;border-radius:50%;background:var(--md,var(--green))}
/* the line still being classified: a hollow open dot */
.m3-s1-dl--o::before{background:transparent;border:.09rem solid rgba(151,140,104,.55)}
/* the faint area-coloured swipe behind a keyword */
.m3-s1-hl{background-image:linear-gradient(var(--hl,var(--green-dim)),var(--hl,var(--green-dim)));background-repeat:no-repeat;background-size:100% .42em;background-position:0 72%;padding-inline:.06em;margin-inline:-.06em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.m3-s1-pc{display:inline-block;width:.11em;height:1.05em;background:var(--ink);margin-left:.16em;vertical-align:text-bottom}
/* the margin doodles: quiet hand marks in the empty ruled run - desktop
   only, where the pad has the tall margin to doodle in */
.m3-s1-doo{display:none}
@media (min-width:56.25em){
  .m3-s1-doo{display:block;position:absolute;color:rgba(11,15,12,.28);pointer-events:none}
  .m3-s1-doo svg{width:100%;height:100%;display:block;overflow:visible}
  .m3-s1-doo--star{left:1.3rem;top:66%;width:.9rem;height:.9rem;rotate:-8deg}
  .m3-s1-doo--arw{left:1.35rem;top:80%;width:.95rem;height:1.15rem;rotate:5deg}
}
/* the pen: bigger, inkier, present */
.m3-s1-pen{position:absolute;right:-.65rem;bottom:-.6rem;width:2.9rem;height:2.9rem;color:var(--ink);opacity:.82;rotate:16deg;filter:drop-shadow(0 .18rem .2rem rgba(11,15,12,.2))}
.m3-s1-pen svg{width:100%;height:100%;display:block}

/* (3) the ticks: the CAPTURED rail on its hairline chip card - quiet
   green tint, no float */
.m3-s1-checks{display:grid;gap:.85rem;align-self:center;align-content:center;min-width:0;background:linear-gradient(180deg,rgba(31,209,95,.045),rgba(31,209,95,.085));border:.0625rem solid var(--line);border-radius:.6rem;padding:1rem .95rem}
.m3-s1-chd{color:var(--green-t)}
.m3-s1-chk{display:flex;align-items:center;gap:.55rem}
.m3-s1-chk svg{width:1.05rem;height:1.05rem;flex:none;display:block}
.m3-s1-bx{fill:none;stroke:var(--line-2);stroke-width:1.2}
.m3-s1-tk{fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.m3-s1-ckt{display:grid;gap:.14rem;min-width:0}
.m3-s1-ckt b{font-weight:700;font-size:.8125rem;letter-spacing:-.01em;line-height:1.2;color:var(--ink);white-space:nowrap}
.m3-s1-ckt em{font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1;color:var(--green-t)}

/* ---- the turn: a small drawn arrow - notes become the process ---- */
.m3-s1-turn{display:flex;align-items:center;gap:.7rem;min-height:2.2rem;padding-left:2rem;min-width:0}
.m3-s1-arw{width:2.3rem;height:2rem;flex:none;color:var(--green)}
.m3-s1-arw svg{width:100%;height:100%;display:block;overflow:visible}
.m3-s1-as{fill:none;stroke:currentColor;stroke-width:.23rem;stroke-linecap:round;stroke-linejoin:round}
.m3-s1-albl{color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- the output: three SOP cards, each wearing its area's 2px top bar
   (the Problem-section card grammar) + the SAME area dot as its pad line ---- */
.m3-s1-sops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;align-items:stretch;min-width:0}
.m3-s1-sop{position:relative;overflow:hidden;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.6rem;box-shadow:var(--shadow-card);padding:.9rem .85rem .85rem;min-width:0;display:grid;gap:.5rem;align-content:start}
.m3-s1-sop::before{content:"";position:absolute;top:0;left:0;right:0;height:.125rem;background:var(--ac,var(--green))}
.m3-s1-sh{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.m3-s1-stag{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;color:var(--muted-2);white-space:nowrap}
.m3-s1-stag i{width:.35rem;height:.35rem;border-radius:50%;background:var(--ac,var(--green));flex:none}
.m3-s1-sm{display:inline-flex;align-items:center;gap:.45rem;flex:none}
.m3-s1-sm img{width:.95rem;height:.95rem;display:block;filter:grayscale(1);opacity:.6}
.m3-s1-sid{color:var(--muted-2);font-size:.5rem;white-space:nowrap}
.m3-s1-sop>b{font-weight:700;font-size:.8125rem;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}
.m3-s1-sls{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.m3-s1-sls li{display:flex;align-items:baseline;gap:.45rem;font-size:.6875rem;line-height:1.45;color:var(--muted)}
.m3-s1-sls li i{font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.1em;color:var(--muted-2);flex:none}

/* ---- small screens: the pad keeps the stage, the tick card tucks beneath
   it as a wrapping row, the cards tile as they fit ---- */
@media (max-width:35.9375em){
  .m3-s1-capture{grid-template-columns:1fr}
  .m3-s1-ans{min-height:13.3em}
  .m3-s1-checks{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.2rem;min-width:0;padding:.85rem .95rem}
  .m3-s1-chd{flex:1 1 100%}
  .m3-s1-turn{padding-left:.4rem}
  .m3-s1-sops{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr))}
}

/* ==========================================================================
   AMBIENT - motion-gated loops only: the caret blinks mid-capture and the
   pen jots. (The Capturing pill's dot already blips via the page's shared
   .m3-live rule.) Static fallback = caret visible, pen resting.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s1-pc{animation:m3S1Pc 1.1s steps(1) infinite}
  @keyframes m3S1Pc{50%{opacity:0}}
  .m3-s1-pen{animation:m3S1Jot 2.6s var(--ease) infinite}
  @keyframes m3S1Jot{0%,100%{transform:none}50%{transform:translate(-.12rem,.08rem) rotate(-3deg)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site's
   v4 block, riding the band's --m3b view-timeline. Full r3 story restated
   (the pad lands, the five answers WRITE ON line by line, the tick card
   grounds then its ticks land and DRAW, the green arrow draws the handover,
   the three SOP cards deal in last) plus the r4 beats: each margin dot pops
   as its line writes (the write wipe now opens the gutter so dots survive
   the clip), each card's area bar SWEEPS on after the card lands, and the
   margin doodles fade in late - the pad ends the scroll looking used.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* idempotent restatement of the page's chapter timeline */
  .m3-band{view-timeline-name:--m3b}

  @keyframes m3S1Land{from{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}
  @keyframes m3S1Show{from{opacity:0}to{opacity:1}}
  @keyframes m3S1Ink{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  /* r4 write wipe: the left inset runs negative so the gutter dots are
     inside the visible region once their line has written */
  @keyframes m3S1WriteB{from{clip-path:inset(-.15em 100% -.15em -1.6rem)}to{clip-path:inset(-.15em -.15em -.15em -1.6rem)}}
  @keyframes m3S1Bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}

  /* the pad lands first - tape, ruling and pen with it */
  .m3-s1-pad{animation:m3S1Land linear both;animation-timeline:--m3b;animation-range:entry 6% entry 20%}

  /* the answers write on, line by line - taking notes */
  .m3-s1-aln{animation:m3S1WriteB linear both;animation-timeline:--m3b}
  .m3-s1-a1{animation-range:entry 16% entry 30%}
  .m3-s1-a2{animation-range:entry 26% entry 40%}
  .m3-s1-a3{animation-range:entry 36% entry 50%}
  .m3-s1-a4{animation-range:entry 46% entry 60%}
  .m3-s1-a5{animation-range:entry 56% entry 70%}

  /* each area dot pops in the margin as its line writes */
  .m3-s1-dl::before{opacity:0;animation:m3S1Show linear both;animation-timeline:--m3b}
  .m3-s1-a1::before{animation-range:entry 16% entry 22%}
  .m3-s1-a2::before{animation-range:entry 26% entry 32%}
  .m3-s1-a3::before{animation-range:entry 36% entry 42%}
  .m3-s1-a4::before{animation-range:entry 46% entry 52%}
  .m3-s1-a5::before{animation-range:entry 56% entry 62%}

  /* the tick card grounds, then the capture ticks land and DRAW */
  .m3-s1-checks{animation:m3S1Show linear both;animation-timeline:--m3b;animation-range:entry 20% entry 30%}
  .m3-s1-chd{animation:m3S1Show linear both;animation-timeline:--m3b;animation-range:entry 26% entry 36%}
  .m3-s1-chk{animation:m3S1Land linear both;animation-timeline:--m3b}
  .m3-s1-ck1{animation-range:entry 34% entry 44%}
  .m3-s1-ck2{animation-range:entry 46% entry 56%}
  .m3-s1-ck3{animation-range:entry 58% entry 68%}
  .m3-s1-tk{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S1Ink linear both;animation-timeline:--m3b}
  .m3-s1-ck1 .m3-s1-tk{animation-range:entry 40% entry 48%}
  .m3-s1-ck2 .m3-s1-tk{animation-range:entry 52% entry 60%}
  .m3-s1-ck3 .m3-s1-tk{animation-range:entry 64% entry 72%}

  /* the handover: the arrow draws, its tip lands, the label follows */
  .m3-s1-aw{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S1Ink linear both;animation-timeline:--m3b;animation-range:entry 58% entry 74%}
  .m3-s1-atip{animation:m3S1Show linear both;animation-timeline:--m3b;animation-range:entry 72% entry 80%}
  .m3-s1-albl{animation:m3S1Show linear both;animation-timeline:--m3b;animation-range:entry 74% entry 86%}

  /* the output deals in last - the notes are now the process - and each
     card's area bar sweeps on, closing the note-to-card tie */
  .m3-s1-sop{animation:m3S1Land linear both;animation-timeline:--m3b}
  .m3-s1-sp1{animation-range:entry 64% entry 78%}
  .m3-s1-sp2{animation-range:entry 70% entry 84%}
  .m3-s1-sp3{animation-range:entry 76% entry 90%}
  .m3-s1-sop::before{transform-origin:left center;animation:m3S1Bar linear both;animation-timeline:--m3b}
  .m3-s1-sp1::before{animation-range:entry 76% entry 84%}
  .m3-s1-sp2::before{animation-range:entry 82% entry 89%}
  .m3-s1-sp3::before{animation-range:entry 87% entry 94%}

  /* the doodles fade in late - the pad ends the scroll looking used */
  .m3-s1-doo{opacity:0;animation:m3S1Show linear both;animation-timeline:--m3b}
  .m3-s1-doo--star{animation-range:entry 68% entry 78%}
  .m3-s1-doo--arw{animation-range:entry 76% entry 86%}

}}


/* ==========================================================================
   BAND 02 REBUILD - "Build" (splice-ready fragment, prefix m3-s2-)
   The plan beside the work: LEFT sub-column of the visual zone = a small
   workflow chart (nodes + wires, ONE wire drawing on scroll) over a lined
   notes card (handwritten short lines); RIGHT sub-column = three dark
   terminal panes tiled with a slight overlap, syntax-shaped token lines
   TYPING ON at staggered timing, blinking caret in the active pane.
   Rides the band shell (.m3-band/.m3-bw/.m3-n), the copy grammar
   (m3-k/m3-t/m3-u/m3-b) and the m3-r reveal ladder unchanged. Static
   finished-state base styles first; ambient loops motion-gated; all
   scroll-driven rules inside this fragment's own copy of the tier-2 gate.
   No JS. Units rem/em. Green-only accents. No em-dash anywhere.
   ========================================================================== */

/* ---- visual zone: two sub-columns (plan left, terminals right) ---- */
.m3-s2{display:grid;gap:clamp(1.1rem,2.4vw,1.6rem);width:100%;min-width:0;align-content:center}
.m3-s2-plan{display:grid;gap:clamp(.9rem,2vw,1.2rem);align-content:start;justify-items:start;min-width:0}

/* ---- the workflow chart: severe card, three nodes cascading, two wires ---- */
.m3-s2-flow{width:100%;max-width:17rem;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:clamp(.9rem,1.8vw,1.15rem)}
.m3-s2-flow__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.7rem;border-bottom:.0625rem solid var(--line);margin-bottom:.95rem;color:var(--muted-2)}
.m3-s2-fmap{position:relative;display:grid;gap:1.1rem;justify-items:start}
.m3-s2-wires{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.m3-s2-w{stroke:var(--green);stroke-width:.125rem;stroke-linecap:round;fill:none}
.m3-s2-fnode{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .8rem;border:.0625rem solid var(--line-2);border-radius:.5rem;background:var(--surface-2);box-shadow:var(--shadow-card);white-space:nowrap}
.m3-s2-fnode i{width:.4rem;height:.4rem;border-radius:50%;background:var(--green);flex:none}
.m3-s2-fnode b{font-weight:700;font-size:.875rem;line-height:1.2;color:var(--ink)}
.m3-s2-fnode:nth-of-type(2){margin-left:15%}
.m3-s2-fnode:nth-of-type(3){margin-left:30%}

/* ---- the lined notes card: the plan in the owner's hand ---- */
.m3-s2-notes{width:100%;max-width:15rem;rotate:-1.5deg;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.25rem;box-shadow:var(--shadow-card);padding:.85rem 1rem .55rem}
.m3-s2-notes .mono-sm{color:var(--muted-2)}
.m3-s2-scrib{margin-top:.4rem;font-style:italic;font-size:.8125rem;line-height:1.7;color:var(--muted);background-image:repeating-linear-gradient(180deg,transparent 0,transparent calc(1.7em - .0625rem),var(--line) calc(1.7em - .0625rem),var(--line) 1.7em)}

/* ---- the terminals: three dark panes, tiled with a slight overlap ---- */
.m3-s2-terms{display:grid;gap:.8rem;min-width:0;align-content:center}
.m3-s2-term{position:relative;width:100%;border:.0625rem solid #262c27;border-radius:.6rem;background:#0b0e0b;overflow:hidden;box-shadow:0 .375rem 1.125rem rgba(11,15,12,.12),0 1.5rem 3.5rem rgba(11,15,12,.18)}
.m3-s2-term__bar{display:flex;align-items:center;gap:.45rem;padding:.5rem .8rem;border-bottom:.0625rem solid #1e231f}
.m3-s2-term__bar i{width:.5rem;height:.5rem;border-radius:50%;display:block;flex:none}
.m3-s2-term__bar i:nth-of-type(1){background:#ff5f57}
.m3-s2-term__bar i:nth-of-type(2){background:#febc2e}
.m3-s2-term__bar i:nth-of-type(3){background:#28c840}
.m3-s2-term__bar span{margin-left:.4rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.08em;color:rgba(154,163,155,.82);white-space:nowrap}
.m3-s2-st{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#1fd15f;flex:none}
.m3-s2-st i{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--green);display:block;flex:none}
.m3-s2-term__code{display:grid;gap:.55rem;padding:.85rem 1rem 1rem}
.m3-s2-ln{display:flex;align-items:center;gap:.4rem}
.m3-s2-ln.ind{padding-left:1.1rem}
.m3-s2-ln.ind2{padding-left:2.2rem}
.m3-s2-ln i{display:block;height:.5rem;border-radius:.125rem;background:#2a322b;flex:none}
.m3-s2-ln .g{background:var(--green)}
.m3-s2-ln .b2{background:#39423a}
.m3-s2-caret{display:inline-block;width:.125rem;height:.6rem;background:#f2f4f2;flex:none}
.m3-s2-cap{margin-top:.4rem;color:var(--muted-2)}

/* desktop: sub-columns side by side, panes cascade + overlap slightly
   (overlap covers only the pane beneath's bottom padding, never its lines) */
@media (min-width:56.25em){
  .m3-s2{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.4rem,3vw,2.4rem);align-items:center}
  .m3-s2-terms{gap:0}
  .m3-s2-term--a{width:86%;margin-left:0;z-index:1}
  .m3-s2-term--b{width:86%;margin-left:14%;margin-top:-.9rem;z-index:2}
  .m3-s2-term--c{width:92%;margin-left:3%;margin-top:-.9rem;z-index:3;box-shadow:0 .375rem 1.125rem rgba(11,15,12,.14),0 2rem 4.5rem rgba(11,15,12,.24)}
  .m3-s2-cap{margin-top:1rem}
}

/* ==========================================================================
   AMBIENT LOOPS - motion-gated, two per band: the active caret blinks,
   the WRITING dot blips. Static state keeps both visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s2-caret{animation:m3S2Caret 1.1s steps(1) infinite}
  @keyframes m3S2Caret{50%{opacity:0}}
  .m3-s2-st i{animation:m3S2Blip 2.4s var(--ease) infinite}
  @keyframes m3S2Blip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .3rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre for band 02. Same support + media gates as
   the page's v4 block; rides the band's --m3b view-timeline. Rewinds the
   finished base state: the second wire draws, the Booked node ignites as
   the wire lands, and every terminal line TYPES ON in a staggered ladder
   interleaved across the three panes - code written in parallel.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* safety: same declaration the page's gate places on every band */
  .m3-band--02{view-timeline-name:--m3b}

  /* the ONE drawing wire: quote -> booked draws with scroll */
  @keyframes m3S2Draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  .m3-s2-w--draw{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S2Draw linear both;animation-timeline:--m3b;animation-range:entry 34% entry 72%}

  /* the target node's dot ignites green when the wire arrives */
  .m3-s2-fnode:nth-of-type(3) i{background:var(--line-2);animation:m3S2Ig linear both;animation-timeline:--m3b;animation-range:entry 70% entry 82%}
  @keyframes m3S2Ig{from{background:var(--line-2)}to{background:var(--green)}}

  /* typing: each token line wipes on left-to-right in character steps */
  @keyframes m3S2Type{from{clip-path:inset(-.15rem 100% -.15rem 0)}to{clip-path:inset(-.15rem -.15rem -.15rem 0)}}
  .m3-s2-ln{animation:m3S2Type steps(14,end) both;animation-timeline:--m3b}
  .m3-s2-t1{animation-range:entry 30% entry 54%}
  .m3-s2-t2{animation-range:entry 34% entry 58%}
  .m3-s2-t3{animation-range:entry 38% entry 62%}
  .m3-s2-t4{animation-range:entry 42% entry 66%}
  .m3-s2-t5{animation-range:entry 46% entry 70%}
  .m3-s2-t6{animation-range:entry 50% entry 74%}
  .m3-s2-t7{animation-range:entry 54% entry 78%}
  .m3-s2-t8{animation-range:entry 58% entry 82%}
  .m3-s2-t9{animation-range:entry 62% entry 86%}
  .m3-s2-t10{animation-range:entry 66% entry 90%}

}}


/* ==========================================================================
   BAND 02 REBUILD r2 - "Build" goes DARK (splice fragment, prefix m3-s2-)
   Shane round-2 edits, 2026-08-05:
   (a) BLACK BAND: g-black on the article re-points the site tokens exactly
       like band 05 (#0a0a0a ground, light copy block, dark rail track,
       ghost numeral at the dark-ground green alpha). Nothing hand-rolled;
       the band speaks band 05's dark grammar.
   (b) REAL CODE: the three terminals now write short readable TypeScript,
       syntax coloured (keywords green, strings muted-light, punctuation
       grey) in Red Hat Mono, typing on with scroll, block caret blinking
       in the active pane. Defined chrome on the black ground: #141715 pane,
       1px #2c332d borders, title bars with dots + filenames, soft shadow.
       The 3-pane tiled composition and the interleaved typing ladder stay.
   (c) WHITE PLAN CARDS: light tokens re-pinned locally so they pop on
       black. "Workflow drafts" (one mono header, no step count) - five
       named steps with ONE branch into a decision diamond: Enquiry in ->
       Auto-reply -> Quote sent -> Approved? -> yes Booked / dashed no
       Follow-up. "Notes" keeps the lined scribble.
   Static finished state FIRST (mobile / reduced-motion / no-support all
   get the full picture: every line typed, wires drawn, Booked dot green,
   carets visible). Ambient loops motion-gated. All scroll rules live in
   this fragment's own copy of the site's tier-2 gate. No JS. rem/em units.
   ========================================================================== */

/* ---- (a) the band ground - g-black on the article does the token flip;
   this rule is belt and braces so the band reads black even alone ---- */
.m3-band--02{background:var(--black)}

/* ---- visual zone: plan left, terminals right (two-col from 64em; below
   that the zone stacks, and under 900px the band shell stacks the lot) ---- */
.m3-s2{display:grid;gap:clamp(1.1rem,2.4vw,1.6rem);width:100%;min-width:0;align-content:center}
.m3-s2-plan{display:grid;gap:clamp(.9rem,2vw,1.2rem);align-content:start;justify-items:start;min-width:0}

/* ---- (c) the WHITE plan cards: light tokens re-pinned (the inverse of the
   .m3-win trick) so every descendant token resolves paper-side on black ---- */
.m3-s2-flow,.m3-s2-notes{--surface-2:#FFFFFF;--ink:#0B0F0C;--muted:#4A544C;--muted-2:#5C665E;--line:#DFE1D6;--line-2:#C9CDBD;--green-t:#0C7A37;--green-dim:rgba(31,209,95,.16);color:var(--ink);background:#FFFFFF;box-shadow:0 .25rem .75rem rgba(0,0,0,.35),0 1.25rem 3rem rgba(0,0,0,.28)}

/* ---- the workflow chart: one mono header, five named steps, one decision ---- */
.m3-s2-flow{width:100%;max-width:17rem;border:.0625rem solid var(--line);border-radius:.75rem;padding:clamp(.9rem,1.8vw,1.15rem)}
.m3-s2-flow__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.7rem;border-bottom:.0625rem solid var(--line);margin-bottom:.95rem;color:var(--muted-2)}
.m3-s2-fmap{display:grid;justify-items:center;gap:.38rem}
.m3-s2-fnode{display:inline-flex;align-items:center;gap:.45rem;margin-left:0;padding:.42rem .62rem;border:.0625rem solid var(--line-2);border-radius:.5rem;background:var(--surface-2);box-shadow:var(--shadow-card);white-space:nowrap;max-width:100%;min-width:0}
.m3-s2-fnode i{width:.4rem;height:.4rem;border-radius:50%;background:var(--green);flex:none}
.m3-s2-fnode b{font-weight:700;font-size:.8125rem;line-height:1.2;letter-spacing:-.01em;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
/* the decision step wears the diamond mark */
.m3-s2-dia{display:flex;width:1rem;height:1rem;color:var(--green-t);flex:none}
.m3-s2-dia svg{width:100%;height:100%;display:block}
/* spine connectors between steps */
.m3-s2-vw{display:block;width:.125rem;height:.8rem;border-radius:.125rem;background:var(--green);transform-origin:top center}
/* the branch: yes solid green, no dashed muted */
.m3-s2-split{display:block;width:min(10.5rem,92%);height:1.3rem}
.m3-s2-split svg{width:100%;height:100%;display:block;overflow:visible}
.m3-s2-by{stroke:var(--green);stroke-width:.125rem;stroke-linecap:round;fill:none}
.m3-s2-bn{stroke:var(--line-2);stroke-width:.125rem;stroke-linecap:round;fill:none;stroke-dasharray:.055 .045}
.m3-s2-out{display:flex;align-items:flex-start;justify-content:center;gap:.55rem;max-width:100%}
.m3-s2-leg{display:grid;justify-items:center;gap:.3rem;min-width:0}
.m3-s2-leg em{font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1;color:var(--green-t)}
.m3-s2-leg--no em{color:var(--muted-2)}
/* the dashed no-node: drafted, not yet the happy path */
.m3-s2-no{border:.09rem dashed var(--line-2);background:transparent;box-shadow:none}
.m3-s2-no b{color:var(--muted-2)}
.m3-s2-no i{background:var(--line-2)}

/* ---- the lined notes card ---- */
.m3-s2-notes{width:100%;max-width:15rem;rotate:-1.5deg;border:.0625rem solid var(--line);border-radius:.25rem;padding:.85rem 1rem .55rem}
.m3-s2-notes .mono-sm{color:var(--muted-2)}
.m3-s2-scrib{margin-top:.4rem;font-style:italic;font-size:.8125rem;line-height:1.7;color:var(--muted);background-image:repeating-linear-gradient(180deg,transparent 0,transparent calc(1.7em - .0625rem),var(--line) calc(1.7em - .0625rem),var(--line) 1.7em)}

/* ---- (b) the terminals: three defined panes on the black band ---- */
.m3-s2-terms{display:grid;gap:.8rem;min-width:0;align-content:center}
.m3-s2-term{position:relative;width:100%;border:.0625rem solid #2c332d;border-radius:.6rem;background:#141715;overflow:hidden;box-shadow:0 .5rem 1.25rem rgba(0,0,0,.45),0 1.75rem 3.75rem rgba(0,0,0,.3)}
.m3-s2-term__bar{display:flex;align-items:center;gap:.45rem;padding:.5rem .8rem;background:#191d1a;border-bottom:.0625rem solid #2c332d}
.m3-s2-term__bar i{width:.5rem;height:.5rem;border-radius:50%;display:block;flex:none}
.m3-s2-term__bar i:nth-of-type(1){background:#ff5f57}
.m3-s2-term__bar i:nth-of-type(2){background:#febc2e}
.m3-s2-term__bar i:nth-of-type(3){background:#28c840}
.m3-s2-term__bar span{margin-left:.4rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.06em;color:rgba(242,244,242,.66);white-space:nowrap}
.m3-s2-st{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#1fd15f;flex:none}
.m3-s2-st i{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--green);display:block;flex:none}
/* real code lines - Red Hat Mono, small but legible, fluid so the longest
   line always clears the pane from 64em tiling up to full width */
.m3-s2-term__code{display:grid;gap:.4rem;padding:.8rem .85rem .95rem}
.m3-s2-ln{display:block;font-family:'Red Hat Mono',var(--ff-mono);font-weight:500;font-size:clamp(.5625rem,.31rem + .4vw,.6875rem);line-height:1.45;letter-spacing:0;white-space:nowrap;color:#d5dbd5}
.m3-s2-ln.ind{padding-left:1.2em}
.m3-s2-ln.ind2{padding-left:2.4em}
.m3-s2-ln b{font-weight:500;color:var(--green)}
.m3-s2-ln em{font-style:normal;color:#a9b3aa}
.m3-s2-ln u{text-decoration:none;color:#6a756c}
.m3-s2-caret{display:inline-block;width:.45em;height:1.05em;background:#e9ece9;margin-left:.18em;vertical-align:text-bottom}
.m3-s2-cap{margin-top:.4rem;color:var(--muted-2)}

/* between the band's 900px two-col and the 64em tiling, panes sit full width
   (also neutralises the r1 fragment's 56.25em offsets if it survives) */
@media (min-width:56.25em){
  .m3-s2{grid-template-columns:minmax(0,1fr)}
  .m3-s2-terms{gap:.8rem}
  .m3-s2-term--a,.m3-s2-term--b,.m3-s2-term--c{width:100%;margin-left:0;margin-top:0}
}
/* the tiled composition: overlap covers only the pane beneath's bottom
   padding, never its code lines */
@media (min-width:64em){
  .m3-s2{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(1.4rem,2.5vw,2.2rem);align-items:center}
  .m3-s2-terms{gap:0}
  .m3-s2-term--a{width:94%;margin-left:0;z-index:1}
  .m3-s2-term--b{width:94%;margin-left:6%;margin-top:-.85rem;z-index:2}
  .m3-s2-term--c{width:100%;margin-left:0;margin-top:-.85rem;z-index:3;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.5),0 2.25rem 4.5rem rgba(0,0,0,.35)}
  .m3-s2-cap{margin-top:1rem}
}

/* ==========================================================================
   AMBIENT - motion-gated, two moves: the active caret blinks, the WRITING
   dot blips. Static state keeps both visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s2-caret{animation:m3S2Caret 1.1s steps(1) infinite}
  @keyframes m3S2Caret{50%{opacity:0}}
  .m3-s2-st i{animation:m3S2Blip 2.4s var(--ease) infinite}
  @keyframes m3S2Blip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .3rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site's
   v4 block, riding the band's --m3b view-timeline. Rewinds the finished
   base state: the workflow drafts itself step by step (nodes pop, spine
   connectors grow, the yes-wire draws, the dashed no-wire fades in, the
   Booked dot ignites), and every code line TYPES ON in character steps,
   interleaved across the three panes - code written in parallel.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* safety: same declaration the page's gate places on every band */
  .m3-band--02{view-timeline-name:--m3b}

  @keyframes m3S2Pop{from{opacity:0;transform:translateY(.45rem)}to{opacity:1;transform:none}}
  @keyframes m3S2Grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
  @keyframes m3S2Draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3S2Fade{from{opacity:0}to{opacity:1}}
  @keyframes m3S2Ig{from{background:var(--line-2)}to{background:var(--green)}}
  @keyframes m3S2Type{from{clip-path:inset(-.2em 100% -.2em 0)}to{clip-path:inset(-.2em -.2em -.2em 0)}}

  /* the workflow drafts itself top to bottom */
  .m3-s2-n1,.m3-s2-n2,.m3-s2-n3,.m3-s2-n4,.m3-s2-leg{animation:m3S2Pop linear both;animation-timeline:--m3b}
  .m3-s2-n1{animation-range:entry 12% entry 22%}
  .m3-s2-n2{animation-range:entry 24% entry 34%}
  .m3-s2-n3{animation-range:entry 36% entry 46%}
  .m3-s2-n4{animation-range:entry 48% entry 58%}
  .m3-s2-leg--yes{animation-range:entry 64% entry 74%}
  .m3-s2-leg--no{animation-range:entry 68% entry 78%}
  .m3-s2-vw{animation:m3S2Grow linear both;animation-timeline:--m3b}
  .m3-s2-v1{animation-range:entry 18% entry 26%}
  .m3-s2-v2{animation-range:entry 30% entry 38%}
  .m3-s2-v3{animation-range:entry 42% entry 50%}
  .m3-s2-by{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S2Draw linear both;animation-timeline:--m3b;animation-range:entry 56% entry 68%}
  .m3-s2-bn{animation:m3S2Fade linear both;animation-timeline:--m3b;animation-range:entry 60% entry 72%}
  /* step dots hold green (also retires the r1 fragment's nth-of-type ignite
     if it survives the splice); the Booked dot alone ignites when its wire
     lands; the no-node dot stays muted */
  .m3-s2-fmap .m3-s2-fnode i{background:var(--green);animation:none}
  .m3-s2-fmap .m3-s2-no i{background:var(--line-2)}
  .m3-s2-fmap .m3-s2-yes i{background:var(--line-2);animation:m3S2Ig linear both;animation-timeline:--m3b;animation-range:entry 76% entry 86%}

  /* typing: each line wipes on left to right in character steps */
  .m3-s2-ln{animation:m3S2Type steps(24,end) both;animation-timeline:--m3b}
  .m3-s2-t1{animation-range:entry 30% entry 54%}
  .m3-s2-t2{animation-range:entry 34% entry 58%}
  .m3-s2-t3{animation-range:entry 38% entry 62%}
  .m3-s2-t4{animation-range:entry 42% entry 66%}
  .m3-s2-t5{animation-range:entry 46% entry 70%}
  .m3-s2-t6{animation-range:entry 50% entry 74%}
  .m3-s2-t7{animation-range:entry 54% entry 78%}
  .m3-s2-t8{animation-range:entry 58% entry 82%}
  .m3-s2-t9{animation-range:entry 62% entry 86%}
  .m3-s2-t10{animation-range:entry 66% entry 90%}

}}


/* ==========================================================================
   BAND 02 REBUILD r3 - "Build" must convey BUILDING (splice fragment,
   prefix m3-s2-; fresh artifact classes m3-s2-wfc / m3-s2-bf / m3-s2-w* /
   m3-s2-jot / m3-s2-j* so no stale r1/r2 rule can touch them).
   Shane round-3 edits, 2026-08-05:
   (a) the WORKFLOW DRAFTS process card is KILLED. In its place: a white
       WIREFRAME card - mono head "WIREFRAME - v2", then a browser-frame
       outline (dot bar + address slot) holding wireframe placeholder
       grammar drawn in outline strokes on white: nav bar rect, hero block
       with the X-crossed image placeholder, a row of 3 grid tiles (the
       third actively being placed - dashed green + the site's placement
       cursor), and a button rect.
   (b) the NOTES card gets BIG and obvious: full width of the plan
       sub-column, five handwritten ruled lines, resting pen glyph
       (band 03's pen grammar), ruled paper running to the card foot.
   (c) the three code terminals + the "Building - 3 files in parallel"
       beat stay EXACTLY as round 2 (approved) - their styles are restated
       verbatim below so the fragment stands alone; duplicates no-op.
   (d) the band stays BLACK (g-black token flip, band 05's grammar).
   SHARED ZONE CONTRACT (Shane: "each 5 boxes should be the same size
   overall"): the zone root .m3-s2 carries min-height:31rem, and at the
   64em tiling it is EXACTLY height:31rem in the current 1.1fr (~35.75rem
   = 541px at 1512) column. The left column fills it by construction:
   wireframe card auto (~17.95rem) + 1rem gap + notes card = the 1fr
   remainder (~12.05rem, content ~11.7rem - no clipping, no spill); the
   locked terminal stack (~28rem) centers in the same 31rem.
   Wireframe + notes + code = plan on the left, build on the right.
   Static finished state FIRST (mobile / reduced-motion / no-support all
   get the full picture: wireframe fully drawn, notes written, every code
   line typed, carets visible). Ambient loops are motion-gated. All
   scroll rules live in this fragment's own copy of the site's tier-2
   gate. No JS. rem/em units. Green-only accents. No em-dash anywhere.
   ========================================================================== */

/* ---- (d) the band ground - g-black on the article does the token flip;
   belt and braces so the band reads black even alone ---- */
.m3-band--02{background:var(--black)}

/* ---- the visual zone root: the SHARED 31rem footprint ---- */
.m3-s2{display:grid;gap:clamp(1.1rem,2.4vw,1.6rem);width:100%;min-width:0;align-content:center;min-height:31rem}
.m3-s2-plan{display:grid;gap:clamp(.9rem,2vw,1.2rem);align-content:start;justify-items:start;min-width:0}

/* ---- the WHITE plan cards: light tokens re-pinned (the r2 pattern) so
   every descendant token resolves paper-side on the black ground ---- */
.m3-s2-wfc,.m3-s2-jot{--surface-2:#FFFFFF;--ink:#0B0F0C;--muted:#4A544C;--muted-2:#5C665E;--line:#DFE1D6;--line-2:#C9CDBD;--green-t:#0C7A37;--green-dim:rgba(31,209,95,.16);color:var(--ink);background:#FFFFFF;box-shadow:0 .25rem .75rem rgba(0,0,0,.35),0 1.25rem 3rem rgba(0,0,0,.28)}

/* ---- (a) the WIREFRAME card ---- */
.m3-s2-wfc{width:100%;max-width:17rem;border:.0625rem solid var(--line);border-radius:.75rem;padding:.8rem;display:grid;align-content:start;min-width:0}
.m3-s2-wfc__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.55rem;border-bottom:.0625rem solid var(--line);margin-bottom:.7rem;color:var(--muted-2)}
.m3-s2-wfc__head em{font-style:normal;text-transform:none}
/* the browser frame: outline chrome, dot bar, empty address slot */
.m3-s2-bf{--wfs:#B9BEB2;display:block;border:.0625rem solid var(--wfs);border-radius:.5rem;background:#FFFFFF;overflow:hidden}
.m3-s2-bf__bar{display:flex;align-items:center;gap:.3rem;padding:.4rem .55rem;border-bottom:.0625rem solid var(--wfs)}
.m3-s2-bf__bar i{width:.32rem;height:.32rem;border-radius:50%;border:.0625rem solid var(--wfs);display:block;flex:none}
.m3-s2-bf__bar em{display:block;flex:1 1 auto;min-width:0;height:.55rem;margin-left:.35rem;border:.0625rem solid var(--line);border-radius:100rem}
.m3-s2-bf__page{display:grid;gap:.5rem;padding:.55rem;justify-items:start}
/* nav bar rect: logo square left, three link strokes right */
.m3-s2-wnav{display:flex;align-items:center;gap:.35rem;width:100%;height:1.15rem;padding:0 .4rem;border:.0625rem solid var(--wfs);border-radius:.25rem}
.m3-s2-wnav i{width:.5rem;height:.5rem;border:.0625rem solid var(--wfs);border-radius:.125rem;display:block;flex:none}
.m3-s2-wnav em{display:block;width:1.05rem;height:.14rem;border-radius:.125rem;background:var(--wfs);flex:none}
.m3-s2-wnav em:first-of-type{margin-left:auto}
/* hero block: the X-crossed image placeholder */
.m3-s2-whero{position:relative;display:block;width:100%;height:4.7rem;border:.0625rem solid var(--wfs);border-radius:.25rem;overflow:hidden}
.m3-s2-whero svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.m3-s2-wx path{stroke:var(--wfs);stroke-width:.0625rem;fill:none}
/* the tile row: two placed outlines + one actively being placed */
.m3-s2-wrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;width:100%}
.m3-s2-wtile{display:block;height:2.5rem;border:.0625rem solid var(--wfs);border-radius:.25rem;min-width:0}
.m3-s2-wph{position:relative;border:.09rem dashed var(--green);background:var(--green-dim)}
.m3-s2-wcur{position:absolute;right:-.45rem;bottom:-.4rem;width:1.05rem;height:1.05rem;color:var(--ink)}
.m3-s2-wcur svg{width:100%;height:100%;display:block}
/* button rect with its label stroke */
.m3-s2-wbtn{position:relative;display:block;width:5.2rem;height:1.3rem;border:.0625rem solid var(--wfs);border-radius:.25rem;flex:none}
.m3-s2-wbtn::after{content:"";position:absolute;left:50%;top:50%;width:2.4rem;height:.14rem;border-radius:.125rem;background:var(--wfs);transform:translate(-50%,-50%)}

/* ---- (b) the BIG notes card: ruled paper, five lines, resting pen ---- */
.m3-s2-jot{position:relative;width:100%;max-width:21rem;border:.0625rem solid var(--line);border-radius:.35rem;padding:.8rem 1rem .9rem;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.35rem;align-content:start;overflow:hidden;min-width:0}
.m3-s2-jot__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--muted-2)}
.m3-s2-jls{min-height:0;font-style:italic;font-weight:500;font-size:.875rem;line-height:1.95;color:var(--muted);background-image:repeating-linear-gradient(180deg,transparent 0,transparent calc(1.95em - .0625rem),var(--line) calc(1.95em - .0625rem),var(--line) 1.95em)}
.m3-s2-jl{display:block;white-space:nowrap}
.m3-s2-jl b{font-weight:700;color:var(--ink)}
.m3-s2-jpen{position:absolute;right:.55rem;bottom:.5rem;width:2.1rem;height:2.1rem;color:var(--muted);rotate:16deg}
.m3-s2-jpen svg{width:100%;height:100%;display:block}

/* ---- (c) the terminals: EXACTLY round 2 (restated verbatim) ---- */
.m3-s2-terms{display:grid;gap:.8rem;min-width:0;align-content:center}
.m3-s2-term{position:relative;width:100%;border:.0625rem solid #2c332d;border-radius:.6rem;background:#141715;overflow:hidden;box-shadow:0 .5rem 1.25rem rgba(0,0,0,.45),0 1.75rem 3.75rem rgba(0,0,0,.3)}
.m3-s2-term__bar{display:flex;align-items:center;gap:.45rem;padding:.5rem .8rem;background:#191d1a;border-bottom:.0625rem solid #2c332d}
.m3-s2-term__bar i{width:.5rem;height:.5rem;border-radius:50%;display:block;flex:none}
.m3-s2-term__bar i:nth-of-type(1){background:#ff5f57}
.m3-s2-term__bar i:nth-of-type(2){background:#febc2e}
.m3-s2-term__bar i:nth-of-type(3){background:#28c840}
.m3-s2-term__bar span{margin-left:.4rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.06em;color:rgba(242,244,242,.66);white-space:nowrap}
.m3-s2-st{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#1fd15f;flex:none}
.m3-s2-st i{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--green);display:block;flex:none}
.m3-s2-term__code{display:grid;gap:.4rem;padding:.8rem .85rem .95rem}
.m3-s2-ln{display:block;font-family:'Red Hat Mono',var(--ff-mono);font-weight:500;font-size:clamp(.5625rem,.31rem + .4vw,.6875rem);line-height:1.45;letter-spacing:0;white-space:nowrap;color:#d5dbd5}
.m3-s2-ln.ind{padding-left:1.2em}
.m3-s2-ln.ind2{padding-left:2.4em}
.m3-s2-ln b{font-weight:500;color:var(--green)}
.m3-s2-ln em{font-style:normal;color:#a9b3aa}
.m3-s2-ln u{text-decoration:none;color:#6a756c}
.m3-s2-caret{display:inline-block;width:.45em;height:1.05em;background:#e9ece9;margin-left:.18em;vertical-align:text-bottom}
.m3-s2-cap{margin-top:.4rem;color:var(--muted-2)}

/* between the band's 900px two-col and the 64em tiling the zone stacks;
   panes full width (also re-neutralises the r1 fragment's 56.25em offsets) */
@media (min-width:56.25em){
  .m3-s2{grid-template-columns:minmax(0,1fr)}
  .m3-s2-terms{gap:.8rem}
  .m3-s2-term--a,.m3-s2-term--b,.m3-s2-term--c{width:100%;margin-left:0;margin-top:0}
}
/* the 64em tiling: plan left, terminals right, the zone EXACTLY 31rem.
   The plan column is auto + 1fr so the notes card grows to close the
   footprint precisely; pane overlap covers only bottom padding, never code */
@media (min-width:64em){
  .m3-s2{height:31rem;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(1.4rem,2.5vw,2.2rem);align-content:stretch;align-items:center}
  .m3-s2-plan{align-self:stretch;grid-template-rows:auto minmax(0,1fr);gap:1rem;align-content:stretch;justify-items:stretch}
  .m3-s2-wfc{max-width:none}
  .m3-s2-jot{max-width:none}
  .m3-s2-terms{gap:0;align-self:center}
  .m3-s2-term--a{width:94%;margin-left:0;margin-top:0;z-index:1}
  .m3-s2-term--b{width:94%;margin-left:6%;margin-top:-.85rem;z-index:2}
  .m3-s2-term--c{width:100%;margin-left:0;margin-top:-.85rem;z-index:3;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.5),0 2.25rem 4.5rem rgba(0,0,0,.35)}
  .m3-s2-cap{margin-top:1rem}
}

/* ==========================================================================
   AMBIENT - motion-gated, the band's two moves stay as round 2: the active
   caret blinks, the WRITING dot blips. Static state keeps both visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s2-caret{animation:m3S2Caret 1.1s steps(1) infinite}
  @keyframes m3S2Caret{50%{opacity:0}}
  .m3-s2-st i{animation:m3S2Blip 2.4s var(--ease) infinite}
  @keyframes m3S2Blip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .3rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site's
   v4 block, riding the band's --m3b view-timeline. Rewinds the finished
   base state: the WIREFRAME sketches itself top to bottom (nav pops, the
   hero X draws stroke by stroke, tiles land, the third tile arrives dashed
   under the cursor, the button rect closes it), the NOTES write themselves
   line by line, and every code line TYPES ON in character steps across the
   three panes - code written in parallel (the round-2 ladder, verbatim).
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* safety: same declaration the page's gate places on every band */
  .m3-band--02{view-timeline-name:--m3b}

  @keyframes m3S2wIn{from{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:none}}
  @keyframes m3S2wDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3S2wFade{from{opacity:0}to{opacity:1}}
  @keyframes m3S2wWipe{from{clip-path:inset(-.2em 100% -.2em -.2em)}to{clip-path:inset(-.2em -.2em -.2em -.2em)}}

  /* the wireframe sketches itself */
  .m3-s2-wnav{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 14% entry 24%}
  .m3-s2-whero{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 20% entry 30%}
  .m3-s2-wx path{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S2wDraw linear both;animation-timeline:--m3b}
  .m3-s2-wx1{animation-range:entry 28% entry 42%}
  .m3-s2-wx2{animation-range:entry 34% entry 48%}
  .m3-s2-k1{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 44% entry 52%}
  .m3-s2-k2{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 48% entry 56%}
  .m3-s2-wph{animation:m3S2wFade linear both;animation-timeline:--m3b;animation-range:entry 54% entry 64%}
  .m3-s2-wcur{animation:m3S2wFade linear both;animation-timeline:--m3b;animation-range:entry 60% entry 70%}
  .m3-s2-wbtn{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 66% entry 74%}

  /* the notes write themselves line by line */
  .m3-s2-jl{animation:m3S2wWipe steps(18,end) both;animation-timeline:--m3b}
  .m3-s2-j1{animation-range:entry 34% entry 46%}
  .m3-s2-j2{animation-range:entry 40% entry 52%}
  .m3-s2-j3{animation-range:entry 46% entry 58%}
  .m3-s2-j4{animation-range:entry 52% entry 64%}
  .m3-s2-j5{animation-range:entry 58% entry 70%}

  /* typing: each code line wipes on left to right in character steps
     (round-2 ladder, verbatim) */
  @keyframes m3S2Type{from{clip-path:inset(-.2em 100% -.2em 0)}to{clip-path:inset(-.2em -.2em -.2em 0)}}
  .m3-s2-ln{animation:m3S2Type steps(24,end) both;animation-timeline:--m3b}
  .m3-s2-t1{animation-range:entry 30% entry 54%}
  .m3-s2-t2{animation-range:entry 34% entry 58%}
  .m3-s2-t3{animation-range:entry 38% entry 62%}
  .m3-s2-t4{animation-range:entry 42% entry 66%}
  .m3-s2-t5{animation-range:entry 46% entry 70%}
  .m3-s2-t6{animation-range:entry 50% entry 74%}
  .m3-s2-t7{animation-range:entry 54% entry 78%}
  .m3-s2-t8{animation-range:entry 58% entry 82%}
  .m3-s2-t9{animation-range:entry 62% entry 86%}
  .m3-s2-t10{animation-range:entry 66% entry 90%}

}}


/* ==========================================================================
   BAND 02 REBUILD r4 - "Build" FITS the black band (splice fragment,
   prefix m3-s2-; fresh artifact classes m3-s2-nb / m3-s2-ns / m3-s2-nh /
   m3-s2-nl / m3-s2-g* / m3-s2-x* so no stale r1/r2/r3 rule can touch them).
   Shane round-4 edits, 2026-08-05 ("This isn't fitting well for some
   reason"):
   (a) the NOTES card is RESTRUCTURED into AREA SECTIONS: three mono
       micro-headers with area dots - ADMIN gold (intake pack auto-sends /
       one inbox, no drawer), OPERATIONS blue (confirm day before / prep
       list per visit), SERVICE DELIVERY (their niche way with new
       clients: walkthrough call / photos before + after; a fresh quiet
       hue - the page's five area hues are all taken). Handwritten style
       stays (italic script, one printed rule under every line); each
       section separated by a hairline.
   (b) FIT ON BLACK - green frames + WHITE terminals: the two white cards
       AND the three terminals now share ONE light-family skin seated on
       the black band by a 1px green-tinted border + a soft outer green
       glow (rgba(31,209,95,.18-.25)) - the dark-band echo of the site's
       green hairline grammar. The terminals flip to LIGHT panes: #FFFFFF
       paper ground, --line internal borders, pale title bars with mac
       dots, LIGHT syntax theme (keywords #0C7A37, strings muted, grey
       punctuation, ink identifiers, ink caret). Typing choreography +
       caret kept verbatim (the approved t1-t10 ladder, restated below).
   (c) BUILDING THE AIOS, not files: caption -> "Building your AIOS -
       live"; terminal titles lose extensions -> mono module names
       "aios core" / "workflows" / "dashboard"; pane one now opens with
       const aios = new OperatingSystem() and closes aios.sync(dashboard)
       - the old opening enquiry line retires so the pane holds 5 lines
       AND its longest line stays 34 unindented mono chars (an indented
       34-char line would clip .3rem at 1512); the dashboard pane keeps
       tiles(14)/render; wireframe card title -> "AIOS - dashboard
       wireframe" (mono-sm renders it uppercase). No other copy changes.
   ZONE CONTRACT (unchanged, absolute): explicit min-height:31rem on the
   zone root .m3-s2 from the band's 56.25em two-col up, and the exact
   height:31rem + min-height:31rem at the 64em tiling - which covers every
   desktop width from 1024 up, so at 1512 the zone renders EXACTLY 31rem
   tall (469px) in its 541px column. Between 900 and 1024 the zone stacks
   single-column and stays auto-tall (forcing 31rem on the stack would
   clip - the r3 call, kept). FIT MATH at 1512 (1rem = 15.12px): notes
   card auto ~14.74rem + 1rem gap + wireframe card = the rest; the ELASTIC
   part is the wireframe's hero placeholder (min-height 1.4rem, soaks the
   ~1.7rem slack), so the plan column closes 31rem by construction - no
   clipping, nothing spills the 16.13rem column (longest note line
   ~10.9rem, head guard ellipsis-protects the title, longest code line
   14.03rem in a 14.55rem pane). The terminal stack (~29.5rem with
   caption) centres in the same 31rem. Static finished state FIRST
   (mobile / reduced-motion / no-support all get the full picture:
   wireframe drawn, every section written, every code line typed, carets
   visible, glow on). Ambient loops are motion-gated. ALL scroll rules
   live in this fragment's own copy of the site's tier-2 gate. No JS.
   rem/em units. No em-dash anywhere.
   ========================================================================== */

/* ---- the band ground - g-black on the article does the token flip;
   belt and braces so the band reads black even alone ---- */
.m3-band--02{background:var(--black)}

/* ---- (b) ONE light-family skin: the two plan cards + the three
   terminals become a family of white cards glowing green on black.
   1px green-tinted border + soft outer green glow + a low black depth
   shadow that seats them on the band. Light tokens re-pinned so every
   descendant token resolves paper-side. ---- */
.m3-s2-wfc,.m3-s2-jot,.m3-s2-term{--surface-2:#FFFFFF;--ink:#0B0F0C;--muted:#4A544C;--muted-2:#5C665E;--line:#DFE1D6;--line-2:#C9CDBD;--green-t:#0C7A37;--green-dim:rgba(31,209,95,.16);color:var(--ink);background:#FFFFFF;border:.0625rem solid rgba(31,209,95,.45);box-shadow:0 0 .35rem rgba(31,209,95,.18),0 0 1.5rem rgba(31,209,95,.22),0 1.2rem 2.75rem rgba(0,0,0,.32)}

/* ---- (b) the terminals go LIGHT: pale title bars keep the mac dots,
   internal hairlines are --line, syntax flips to the light theme ---- */
.m3-s2-term__bar{background:#F3F4EE;border-bottom:.0625rem solid var(--line)}
.m3-s2-term__bar span{color:var(--muted-2)}
.m3-s2-term__bar .m3-s2-st{color:var(--green-t)}
.m3-s2-ln{color:#333B34}
.m3-s2-ln b{color:#0C7A37}
.m3-s2-ln em{color:#4A544C}
.m3-s2-ln u{color:#9AA39B}
.m3-s2-caret{background:#0B0F0C}

/* ---- (c) the wireframe head: the longer AIOS title needs a guard -
   slightly smaller mono, nowrap, and the title ellipsizes instead of
   spilling if a narrow tiling window squeezes it ---- */
.m3-s2-wfc__head{gap:.5rem}
.m3-s2-wfc__head .mono-sm{font-size:.5625rem;letter-spacing:.12em;white-space:nowrap}
.m3-s2-wfc__head .mono-sm:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.m3-s2-wfc__head .mono-sm:last-child{flex:none}

/* ---- (a) the notes card restructured: head + three area sections.
   Structure only - border/background/glow come from the shared skin ---- */
.m3-s2-jot{grid-template-rows:auto minmax(0,1fr);gap:.4rem;padding:.8rem 1rem .8rem}
.m3-s2-nb{display:grid;gap:.4rem;align-content:start;min-width:0}
.m3-s2-ns{display:grid;gap:.12rem;min-width:0}
.m3-s2-ns+.m3-s2-ns{border-top:.0625rem solid var(--line);padding-top:.4rem}
.m3-s2-nh{display:flex;align-items:center;gap:.4rem;font-family:var(--ff-mono);font-style:normal;font-size:.5rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.4;color:var(--muted-2);white-space:nowrap}
.m3-s2-nh i{width:.35rem;height:.35rem;border-radius:50%;background:var(--ac,var(--green));flex:none}
/* the handwriting: italic script, one printed rule under every line */
.m3-s2-nl{display:block;white-space:nowrap;overflow:hidden;min-width:0;font-style:italic;font-weight:500;font-size:.8125rem;line-height:1.45;color:var(--muted);background-image:linear-gradient(180deg,transparent calc(100% - .0625rem),var(--line) 0)}
.m3-s2-nl b{font-weight:700;color:var(--ink)}

/* ---- the contract minimum + the stacked window (900-1024): zone single
   column, panes full width, auto-tall (restates the r3 neutralisers) ---- */
@media (min-width:56.25em){
  .m3-s2{min-height:31rem;grid-template-columns:minmax(0,1fr)}
  .m3-s2-terms{gap:.8rem}
  .m3-s2-term--a,.m3-s2-term--b,.m3-s2-term--c{width:100%;margin-left:0;margin-top:0}
}

/* ---- the 64em tiling: plan left, terminals right, the zone EXACTLY
   31rem. The plan column is notes-auto + wireframe-elastic: the hero
   placeholder soaks the slack so the footprint closes precisely; pane
   overlap covers only the pane beneath's bottom padding, never its code ---- */
@media (min-width:64em){
  .m3-s2{height:31rem;min-height:31rem;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(1.4rem,2.5vw,2.2rem);align-content:stretch;align-items:center}
  .m3-s2-plan{align-self:stretch;min-height:0;grid-template-rows:minmax(0,1fr) auto;gap:1rem;align-content:stretch;justify-items:stretch}
  .m3-s2-wfc{max-width:none;min-height:0;grid-template-rows:auto minmax(0,1fr);align-content:stretch}
  .m3-s2-wfc__head{padding-bottom:.45rem;margin-bottom:.55rem}
  .m3-s2-bf{display:grid;min-height:0;grid-template-rows:auto minmax(0,1fr)}
  .m3-s2-bf__page{min-height:0;grid-template-rows:auto minmax(1.4rem,1fr) auto auto;gap:.45rem;align-content:stretch}
  .m3-s2-whero{height:auto;min-height:1.4rem;align-self:stretch}
  .m3-s2-wtile{height:2.2rem}
  .m3-s2-jot{max-width:none}
  .m3-s2-terms{gap:0;align-self:center}
  .m3-s2-term--a{width:94%;margin-left:0;margin-top:0;z-index:1}
  .m3-s2-term--b{width:94%;margin-left:6%;margin-top:-.85rem;z-index:2}
  .m3-s2-term--c{width:100%;margin-left:0;margin-top:-.85rem;z-index:3;box-shadow:0 0 .45rem rgba(31,209,95,.2),0 0 1.8rem rgba(31,209,95,.25),0 1.5rem 3.25rem rgba(0,0,0,.38)}
  .m3-s2-cap{margin-top:1rem}
}

/* ==========================================================================
   AMBIENT - motion-gated, the band's two moves: the active caret blinks,
   the WRITING dot blips. Static state keeps both visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s2-caret{animation:m3S2Caret 1.1s steps(1) infinite}
  @keyframes m3S2Caret{50%{opacity:0}}
  .m3-s2-st i{animation:m3S2Blip 2.4s var(--ease) infinite}
  @keyframes m3S2Blip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .3rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site's
   v4 block, riding the band's --m3b view-timeline. Rewinds the finished
   base state: the WIREFRAME sketches itself top to bottom (approved r3
   choreography, restated verbatim), the NOTES build area by area (each
   mono header lands with its dot, then its two handwritten lines WRITE
   ON - Admin, then Operations, then Service delivery), and every code
   line TYPES ON in character steps across the three panes - the AIOS
   assembling in parallel (the approved t1-t10 ladder, verbatim).
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* safety: same declaration the page's gate places on every band */
  .m3-band--02{view-timeline-name:--m3b}

  @keyframes m3S2wIn{from{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:none}}
  @keyframes m3S2wDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3S2wFade{from{opacity:0}to{opacity:1}}
  @keyframes m3S2r4Show{from{opacity:0}to{opacity:1}}
  @keyframes m3S2r4Wipe{from{clip-path:inset(-.2em 100% -.2em -.2em)}to{clip-path:inset(-.2em -.2em -.2em -.2em)}}

  /* the wireframe sketches itself (approved, restated) */
  .m3-s2-wnav{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 14% entry 24%}
  .m3-s2-whero{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 20% entry 30%}
  .m3-s2-wx path{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S2wDraw linear both;animation-timeline:--m3b}
  .m3-s2-wx1{animation-range:entry 28% entry 42%}
  .m3-s2-wx2{animation-range:entry 34% entry 48%}
  .m3-s2-k1{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 44% entry 52%}
  .m3-s2-k2{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 48% entry 56%}
  .m3-s2-wph{animation:m3S2wFade linear both;animation-timeline:--m3b;animation-range:entry 54% entry 64%}
  .m3-s2-wcur{animation:m3S2wFade linear both;animation-timeline:--m3b;animation-range:entry 60% entry 70%}
  .m3-s2-wbtn{animation:m3S2wIn linear both;animation-timeline:--m3b;animation-range:entry 66% entry 74%}

  /* the notes build area by area */
  .m3-s2-nh{animation:m3S2r4Show linear both;animation-timeline:--m3b}
  .m3-s2-g1{animation-range:entry 30% entry 38%}
  .m3-s2-g2{animation-range:entry 46% entry 54%}
  .m3-s2-g3{animation-range:entry 62% entry 70%}
  .m3-s2-nl{animation:m3S2r4Wipe steps(16,end) both;animation-timeline:--m3b}
  .m3-s2-x1{animation-range:entry 34% entry 46%}
  .m3-s2-x2{animation-range:entry 40% entry 52%}
  .m3-s2-x3{animation-range:entry 50% entry 62%}
  .m3-s2-x4{animation-range:entry 56% entry 68%}
  .m3-s2-x5{animation-range:entry 66% entry 78%}
  .m3-s2-x6{animation-range:entry 72% entry 84%}

  /* typing: each code line wipes on left to right in character steps
     (approved ladder, verbatim) */
  @keyframes m3S2Type{from{clip-path:inset(-.2em 100% -.2em 0)}to{clip-path:inset(-.2em -.2em -.2em 0)}}
  .m3-s2-ln{animation:m3S2Type steps(24,end) both;animation-timeline:--m3b}
  .m3-s2-t1{animation-range:entry 30% entry 54%}
  .m3-s2-t2{animation-range:entry 34% entry 58%}
  .m3-s2-t3{animation-range:entry 38% entry 62%}
  .m3-s2-t4{animation-range:entry 42% entry 66%}
  .m3-s2-t5{animation-range:entry 46% entry 70%}
  .m3-s2-t6{animation-range:entry 50% entry 74%}
  .m3-s2-t7{animation-range:entry 54% entry 78%}
  .m3-s2-t8{animation-range:entry 58% entry 82%}
  .m3-s2-t9{animation-range:entry 62% entry 86%}
  .m3-s2-t10{animation-range:entry 66% entry 90%}

}}


/* ==========================================================================
   BAND 02 REBUILD r5 - "Build" shows the THING BEING BUILT (splice fragment;
   fresh artifact classes m3-s2z / m3-s2-top / m3-s2-dcell / m3-s2-deck /
   m3-s2-da|db|dc / m3-s2-fa* / m3-s2-fs / m3-s2-fw* / m3-s2-ft* / m3-s2-fb* /
   m3-s2-hand / m3-s2-os* / m3-s2-ol* / m3-s2-ow* so no stale r1-r4 rule can
   touch the new artifacts; the surviving m3-s2 rules this fragment RIDES are
   the approved r4 family: the .m3-s2-jot notes card with its area sections
   and write-on ladder, the .m3-s2-term light panes + glow + the t1-t10
   typing ladder + caret/Writing ambience, and the .m3-s2-cap caption).
   Shane round-5 verdict, 2026-08-05: "there's something about this part
   that doesn't convey building. It looks confusing." The diagnosis: nothing
   in the scene was visibly INCOMPLETE - three finished artifacts sat side
   by side and the generic webpage wireframe was not the product. The fix:
   (a) the AIOS - DASHBOARD WIREFRAME card is KILLED. The band's focal
       artifact is now THE AIOS DASHBOARD ITSELF, MID-ASSEMBLY: the dark
       AIOS window the site already uses (mac-dot bar YOUR OPERATING
       SYSTEM, sidebar, KPI tiles - band 03's screen grammar at billboard
       scale) rendered HALF-BUILT. Left of the seam: LIVE - dark ground,
       three real tiles with green numbers + a green spark tile, sidebar
       rows lit. Right of the seam: still WIREFRAME - pale paper ground,
       dashed outline tiles, empty dashed sidebar stubs pinned to the
       sidebar foot. The seam is a hard dark-to-pale stop through the tile
       grid with a dashed green construction rule on it - the artifact IS
       the transformation. One tile is actively being placed at the seam
       (dashed green, green-dim fill, the site's placement cursor). Foot:
       the mono progress beat 9 OF 14 TABS BUILT + a green meter filled to
       9/14 (64.3%).
   (b) CONNECTIVE FLOW: two small drawn green arrows in the Document band's
       arrow grammar stitch the zone into one sentence - NOTES -> code
       (mono caption Plan) and code -> the half-built dashboard (mono
       caption Build). A passer-by reads: your notes become code, the code
       becomes your AIOS, and it is visibly growing.
   (c) the NOTES card keeps its r4 area-section content EXACTLY and shrinks
       slightly (type .8125 -> .75, tighter padding); the three terminals
       keep the approved r4 light-pane treatment but tile TIGHTER as a
       cascade deck (front pane full, the two behind showing their title
       bars) so the dashboard owns the focal scale. Caption "Building your
       AIOS - live" stays character-exact.
   ZONE CONTRACT (absolute): the visual zone root .m3-s2z renders EXACTLY
   31rem tall in its ~35.75rem (541px at 1512) column: explicit min-height:
   31rem from the band's 56.25em two-col break, and the exact height:31rem
   + min-height:31rem at the 64em tiling - which covers every desktop width
   from 1024 up, so at 1512 the zone is EXACTLY 31rem (469px). Between 900
   and 1024 the zone stacks single-column and stays auto-tall (forcing the
   exact height on the stack would clip - the r3/r4 call, kept). Zone rows
   at the tiling: [plan row auto] [handover auto] [dashboard 1fr] - the
   dashboard window is the ELASTIC artifact (its tile rows and sidebar
   stretch), so the footprint closes by construction: no clipping, no
   horizontal overflow at 1512 or 390.
   Static finished state FIRST (mobile / reduced-motion / no-support all
   get the full picture: arrows drawn, every note written, every code line
   typed, live tiles on, seam drawn, cursor resting on the placing tile,
   meter at 9/14). Ambient loops are motion-gated. ALL scroll moves live in
   this fragment's own copy of the site's tier-2 gate: the arrows draw the
   sentence, the sidebar lights row by row, live tiles land, the seam
   draws, the next tile arrives under the cursor, the meter fills - the
   assembly visibly progresses with scroll while staying legible static.
   No JS. rem/em units (% only for widths, the page's own pattern).
   Green-only accents. No em-dash anywhere.
   ========================================================================== */

/* ---- the band ground - g-black on the article does the token flip;
   belt and braces so the band reads black even alone ---- */
.m3-band--02{background:var(--black)}

/* ---- the zone root: stacked and auto-tall mobile-first; the 31rem
   contract arrives with the desktop breaks below ---- */
.m3-s2z{display:grid;gap:.9rem;width:100%;min-width:0;align-content:center}

/* ---- (1) the plan row: notes -> arrow -> the terminal deck ---- */
.m3-s2-top{display:grid;gap:.9rem;min-width:0}
.m3-s2-dcell{min-width:0}
.m3-s2-deck{display:grid;gap:.8rem;min-width:0}

/* the notes card shrinks slightly - content untouched, r4 skin + write-on
   ladder untouched (zone-scoped overrides outrank the surviving rules) */
.m3-s2z .m3-s2-jot{width:100%;max-width:none;padding:.65rem .85rem .65rem;gap:.3rem}
.m3-s2z .m3-s2-nb{gap:.3rem}
.m3-s2z .m3-s2-ns+.m3-s2-ns{padding-top:.3rem}
.m3-s2z .m3-s2-nl{font-size:.75rem;line-height:1.45}

/* the terminals compress: tighter code metrics inside the approved skin */
.m3-s2z .m3-s2-term__code{gap:.3rem;padding:.6rem .7rem .7rem}
.m3-s2z .m3-s2-ln{font-size:clamp(.5rem,.2rem + .36vw,.5625rem)}

/* ---- the drawn arrows: the Document band's arrow grammar, green ---- */
.m3-s2-fa{display:grid;justify-items:center;align-content:center;gap:.2rem;min-width:0}
.m3-s2-farw{display:block;width:2.6rem;height:2rem;color:var(--green)}
.m3-s2-farw svg{width:100%;height:100%;display:block;overflow:visible}
.m3-s2-fs{fill:none;stroke:currentColor;stroke-width:.125rem;stroke-linecap:round;stroke-linejoin:round}
.m3-s2-fab{color:var(--muted-2)}
/* stacked (below the tiling): the plan arrow turns to point down the stack */
.m3-s2-fa1 .m3-s2-farw{rotate:90deg}

/* ---- (2) the handover row: code -> the AIOS ---- */
.m3-s2-hand{display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:2.2rem;min-width:0}
.m3-s2-fa2{width:2.7rem;height:2.3rem}

/* ---- (3) THE AIOS DASHBOARD, MID-ASSEMBLY - the focal artifact.
   Hand-rolled colours (the band's g-black token flip must not reach
   inside the window): dark chrome #0b0e0b / #0d100d, hairlines #1e231f,
   pale unbuilt ground #F4F5EF, wireframe strokes #C9CDBD, green #1fd15f.
   Same green border + glow family skin as the plan cards and terminals. ---- */
.m3-s2-osw{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;border-radius:.75rem;overflow:hidden;background:#0d100d;border:.0625rem solid rgba(31,209,95,.45);box-shadow:0 0 .45rem rgba(31,209,95,.2),0 0 1.8rem rgba(31,209,95,.25),0 1.5rem 3.25rem rgba(0,0,0,.38)}
.m3-s2-osbar{display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;background:#0b0e0b;border-bottom:.0625rem solid #1e231f}
.m3-s2-osbar>i{width:.5rem;height:.5rem;border-radius:50%;display:block;flex:none}
.m3-s2-osbar>i:nth-of-type(1){background:#ff5f57}
.m3-s2-osbar>i:nth-of-type(2){background:#febc2e}
.m3-s2-osbar>i:nth-of-type(3){background:#28c840}
.m3-s2-osbar>span:first-of-type{margin-left:.4rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,244,242,.66);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s2-osas{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#1fd15f;flex:none}
.m3-s2-osas i{width:.3125rem;height:.3125rem;border-radius:50%;background:#1fd15f;display:block;flex:none}

/* the body: dark sidebar (top rows lit, dashed stubs pinned to its foot)
   beside the split main ground */
.m3-s2-osbody{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:0;min-width:0}
.m3-s2-osside{display:flex;flex-direction:column;gap:.14rem;padding:.55rem .5rem;background:#0b0e0b;border-right:.0625rem solid #1e231f;min-height:0;overflow:hidden}
.m3-s2-osrow{display:flex;align-items:center;gap:.5em;padding:.26em .7em;border-radius:.4rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;line-height:1.4;color:rgba(154,163,155,.82);white-space:nowrap}
.m3-s2-osrow i{width:.3125rem;height:.3125rem;border-radius:50%;background:#2a322b;flex:none}
.m3-s2-osrow--on{background:rgba(31,209,95,.12);color:#1fd15f}
.m3-s2-osrow--on i{background:#1fd15f}
.m3-s2-osstub{display:block;height:.8rem;border:.09rem dashed #2a322b;border-radius:.4rem;margin-top:.28rem}
.m3-s2-osstub:first-of-type{margin-top:auto}

/* the main: the SEAM. Left half live dark, right half pale wireframe
   ground - one hard stop landing exactly in the tile gap, with a dashed
   green construction rule drawn on it */
.m3-s2-osmain{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(3.1rem,1fr);gap:.5rem;padding:.75rem;background:linear-gradient(90deg,#0d100d 0 50%,#F4F5EF 50% 100%);min-height:0;min-width:0}
.m3-s2-osseam{position:absolute;left:50%;top:.5rem;bottom:.5rem;width:0;border-left:.125rem dashed #1fd15f;transform:translateX(-50%);transform-origin:top center}
/* live tiles: dark card, green top hairline (the site's KPI grammar),
   green number, mono label */
.m3-s2-ol{position:relative;z-index:1;display:grid;align-content:space-between;gap:.3rem;padding:.45rem .55rem .5rem;background:#111411;border:.0625rem solid #262c27;border-top:.125rem solid #1fd15f;border-radius:.35rem;min-width:0}
.m3-s2-ol b{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.05rem,.75rem + .55vw,1.45rem);line-height:1;letter-spacing:-.02em;color:#1fd15f;font-variant-numeric:tabular-nums}
.m3-s2-ol small{font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;line-height:1.4;color:rgba(154,163,155,.82);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s2-osbars{display:flex;align-items:flex-end;gap:.25rem;height:1.45rem}
.m3-s2-osbars i{flex:1;background:rgba(31,209,95,.7);border-radius:.125rem .125rem 0 0}
/* wireframe tiles: dashed outlines on the pale ground, a faint label ghost */
.m3-s2-ow{position:relative;border:.09rem dashed #C9CDBD;border-radius:.35rem;min-width:0}
.m3-s2-ow::after{content:"";position:absolute;left:.5rem;bottom:.45rem;width:45%;height:.14rem;border-radius:.125rem;background:#DCDFD2}
/* the tile being placed: dashed green, green-dim fill, the placement cursor */
.m3-s2-osph{position:relative;z-index:1;border:.1rem dashed #1fd15f;border-radius:.35rem;background:rgba(31,209,95,.14);min-width:0}
.m3-s2-oscur{position:absolute;right:-.45rem;bottom:-.4rem;width:1.05rem;height:1.05rem;color:#0B0F0C;z-index:2}
.m3-s2-oscur svg{width:100%;height:100%;display:block}

/* the foot: the progress beat - 9 OF 14 TABS BUILT + the part-filled meter */
.m3-s2-osfoot{display:flex;align-items:center;gap:.8rem;padding:.5rem .85rem;background:#0b0e0b;border-top:.0625rem solid #1e231f}
.m3-s2-osfoot .mono-sm{color:rgba(242,244,242,.72);white-space:nowrap;flex:none}
.m3-s2-osmt{flex:1 1 auto;height:.375rem;border-radius:100rem;background:#1e231f;overflow:hidden;min-width:2rem}
.m3-s2-osmf{display:block;width:64.3%;height:100%;border-radius:100rem;background:#1fd15f;transform-origin:left center}

/* ---- small screens: the sidebar hands its width to the tiles (the
   page's own .m3-win move) so the half-built grid keeps reading ---- */
@media (max-width:35.9375em){
  .m3-s2-osside{display:none}
  .m3-s2-osbody{grid-template-columns:1fr}
}

/* ---- the contract minimum + the stacked window (900-1024): zone single
   column, everything full width, auto-tall ---- */
@media (min-width:56.25em){
  .m3-s2z{min-height:31rem}
}

/* ---- the 64em tiling: the plan row (notes | Plan arrow | deck) over the
   handover over the dashboard, the zone EXACTLY 31rem. The window is the
   elastic artifact - its 1fr row absorbs every remaining rem ---- */
@media (min-width:64em){
  .m3-s2z{height:31rem;min-height:31rem;grid-template-rows:auto auto minmax(0,1fr);gap:.8rem;align-content:stretch}
  .m3-s2-top{grid-template-columns:minmax(0,1fr) auto minmax(0,1.18fr);gap:.7rem;align-items:stretch}
  .m3-s2-fa1{align-self:center}
  .m3-s2-fa1 .m3-s2-farw{rotate:none}
  /* the deck: three panes cascade in one cell - the front pane full, the
     two behind showing their title bars; padding reserves the offsets so
     the cascade never leans on the caption beneath */
  .m3-s2-deck{gap:0;padding-bottom:3rem}
  .m3-s2-deck>.m3-s2-term{grid-area:1/1;width:92%;align-self:start}
  .m3-s2-da{translate:0 0;z-index:1}
  .m3-s2-db{translate:4% 1.5rem;z-index:2}
  .m3-s2-dc{translate:8% 3rem;z-index:3;box-shadow:0 0 .45rem rgba(31,209,95,.2),0 0 1.8rem rgba(31,209,95,.25),0 1.5rem 3.25rem rgba(0,0,0,.38)}
  /* the handover arrow exits under the deck and dives toward the window */
  .m3-s2-hand{justify-content:flex-end;padding-right:14%}
}

/* ==========================================================================
   AMBIENT - motion-gated loops only: the placing tile breathes green while
   the surviving caret blink + Writing blip keep running in the deck. The
   Assembling dot blips with the site's shared rhythm. Static fallback =
   tile filled, dots solid, caret visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s2-osph{animation:m3S2osBreathe 2.6s var(--ease) infinite}
  @keyframes m3S2osBreathe{0%,100%{background:rgba(31,209,95,.1)}50%{background:rgba(31,209,95,.2)}}
  .m3-s2-osas i{animation:m3S2osBlip 2.4s var(--ease) infinite}
  @keyframes m3S2osBlip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .3rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site's
   v4 block, riding the band's --m3b view-timeline. The surviving ladders
   keep working (notes write on x1-x6, code types on t1-t10); this gate adds
   the assembly: the Plan arrow draws from notes to code, the Build arrow
   draws from code into the dashboard, the sidebar lights row by row, the
   live tiles land, the seam draws top to bottom, the next tile arrives
   dashed under the cursor, and the meter fills to 9 of 14 - the AIOS
   visibly grows as the visitor scrolls. Static = the finished half-built
   state above.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* safety: same declaration the page's gate places on every band */
  .m3-band--02{view-timeline-name:--m3b}

  @keyframes m3S2osIn{from{opacity:0;transform:translateY(.45rem)}to{opacity:1;transform:none}}
  @keyframes m3S2osShow{from{opacity:0}to{opacity:1}}
  @keyframes m3S2osDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3S2osGrow{from{transform:translateX(-50%) scaleY(0)}to{transform:translateX(-50%) scaleY(1)}}
  @keyframes m3S2osFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

  /* the sentence draws: notes -> code (Plan), code -> the AIOS (Build) */
  .m3-s2-fw1,.m3-s2-fw2{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S2osDraw linear both;animation-timeline:--m3b}
  .m3-s2-fw1{animation-range:entry 18% entry 34%}
  .m3-s2-ft1{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 32% entry 40%}
  .m3-s2-fb1{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 34% entry 44%}
  .m3-s2-fw2{animation-range:entry 44% entry 60%}
  .m3-s2-ft2{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 58% entry 66%}
  .m3-s2-fb2{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 60% entry 70%}

  /* the dashboard assembles: sidebar lights row by row */
  .m3-s2-osrow{animation:m3S2osShow linear both;animation-timeline:--m3b}
  .m3-s2-osrow:nth-of-type(1){animation-range:entry 28% entry 36%}
  .m3-s2-osrow:nth-of-type(2){animation-range:entry 32% entry 40%}
  .m3-s2-osrow:nth-of-type(3){animation-range:entry 36% entry 44%}
  .m3-s2-osrow:nth-of-type(4){animation-range:entry 40% entry 48%}
  .m3-s2-osrow:nth-of-type(5){animation-range:entry 44% entry 52%}

  /* live tiles land left to right, the seam draws, the wireframe side
     settles, the next tile arrives under the cursor, the meter fills */
  .m3-s2-ol{animation:m3S2osIn linear both;animation-timeline:--m3b}
  .m3-s2-ol1{animation-range:entry 36% entry 46%}
  .m3-s2-ol2{animation-range:entry 42% entry 52%}
  .m3-s2-ol3{animation-range:entry 48% entry 58%}
  .m3-s2-ol4{animation-range:entry 54% entry 64%}
  .m3-s2-osseam{animation:m3S2osGrow linear both;animation-timeline:--m3b;animation-range:entry 38% entry 58%}
  .m3-s2-ow{animation:m3S2osShow linear both;animation-timeline:--m3b}
  .m3-s2-ow1{animation-range:entry 56% entry 66%}
  .m3-s2-ow2{animation-range:entry 60% entry 70%}
  .m3-s2-ow3{animation-range:entry 64% entry 74%}
  .m3-s2-osph{animation:m3S2osShow linear both,m3S2osBreathe 2.6s var(--ease) infinite;animation-timeline:--m3b,auto;animation-range:entry 66% entry 76%,normal}
  .m3-s2-oscur{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 72% entry 82%}
  .m3-s2-osmf{animation:m3S2osFill linear both;animation-timeline:--m3b;animation-range:entry 42% entry 84%}

}}


/* ==========================================================================
   BAND 02 REBUILD r5 - "Build" shows the THING BEING BUILT (splice fragment;
   fresh artifact classes m3-s2z / m3-s2-top / m3-s2-dcell / m3-s2-deck /
   m3-s2-da|db|dc / m3-s2-fa* / m3-s2-fs / m3-s2-fw* / m3-s2-ft* / m3-s2-fb* /
   m3-s2-hand / m3-s2-os* / m3-s2-ol* / m3-s2-ow* so no stale r1-r4 rule can
   touch the new artifacts; the surviving m3-s2 rules this fragment RIDES are
   the approved r4 family: the .m3-s2-jot notes card with its area sections
   and write-on ladder, the .m3-s2-term light panes + glow + the t1-t10
   typing ladder + caret/Writing ambience, and the .m3-s2-cap caption).
   Shane round-5 verdict, 2026-08-05: "there's something about this part
   that doesn't convey building. It looks confusing." The diagnosis: nothing
   in the scene was visibly INCOMPLETE - three finished artifacts sat side
   by side and the generic webpage wireframe was not the product. The fix:
   (a) the AIOS - DASHBOARD WIREFRAME card is KILLED. The band's focal
       artifact is now THE AIOS DASHBOARD ITSELF, MID-ASSEMBLY: the dark
       AIOS window the site already uses (mac-dot bar YOUR OPERATING
       SYSTEM, sidebar, KPI tiles - band 03's screen grammar at billboard
       scale) rendered HALF-BUILT. Left of the seam: LIVE - dark ground,
       three real tiles with green numbers + a green spark tile, sidebar
       rows lit. Right of the seam: still WIREFRAME - pale paper ground,
       dashed outline tiles, empty dashed sidebar stubs pinned to the
       sidebar foot. The seam is a hard dark-to-pale stop through the tile
       grid with a dashed green construction rule on it - the artifact IS
       the transformation. One tile is actively being placed at the seam
       (dashed green, green-dim fill, the site's placement cursor). Foot:
       the mono progress beat 9 OF 14 TABS BUILT + a green meter filled to
       9/14 (64.3%).
   (b) CONNECTIVE FLOW: two small drawn green arrows in the Document band's
       arrow grammar stitch the zone into one sentence - NOTES -> code
       (mono caption Plan) and code -> the half-built dashboard (mono
       caption Build). A passer-by reads: your notes become code, the code
       becomes your AIOS, and it is visibly growing.
   (c) the NOTES card keeps its r4 area-section content EXACTLY and shrinks
       slightly (type .8125 -> .75, tighter padding); the three terminals
       keep the approved r4 light-pane treatment but tile TIGHTER as a
       cascade deck (front pane full, the two behind showing their title
       bars) so the dashboard owns the focal scale. Caption "Building your
       AIOS - live" stays character-exact.
   ZONE CONTRACT (absolute): the visual zone root .m3-s2z renders EXACTLY
   31rem tall in its ~35.75rem (541px at 1512) column: explicit min-height:
   31rem from the band's 56.25em two-col break, and the exact height:31rem
   + min-height:31rem at the 64em tiling - which covers every desktop width
   from 1024 up, so at 1512 the zone is EXACTLY 31rem (469px). Between 900
   and 1024 the zone stacks single-column and stays auto-tall (forcing the
   exact height on the stack would clip - the r3/r4 call, kept). Zone rows
   at the tiling: [plan row auto] [handover auto] [dashboard 1fr] - the
   dashboard window is the ELASTIC artifact (its tile rows and sidebar
   stretch), so the footprint closes by construction: no clipping, no
   horizontal overflow at 1512 or 390.
   Static finished state FIRST (mobile / reduced-motion / no-support all
   get the full picture: arrows drawn, every note written, every code line
   typed, live tiles on, seam drawn, cursor resting on the placing tile,
   meter at 9/14). Ambient loops are motion-gated. ALL scroll moves live in
   this fragment's own copy of the site's tier-2 gate: the arrows draw the
   sentence, the sidebar lights row by row, live tiles land, the seam
   draws, the next tile arrives under the cursor, the meter fills - the
   assembly visibly progresses with scroll while staying legible static.
   No JS. rem/em units (% only for widths, the page's own pattern).
   Green-only accents. No em-dash anywhere.
   ========================================================================== */

/* ---- the band ground - g-black on the article does the token flip;
   belt and braces so the band reads black even alone ---- */
.m3-band--02{background:var(--black)}

/* ---- the zone root: stacked and auto-tall mobile-first; the 31rem
   contract arrives with the desktop breaks below ---- */
.m3-s2z{display:grid;gap:.9rem;width:100%;min-width:0;align-content:center}

/* ---- (1) the plan row: notes -> arrow -> the terminal deck ---- */
.m3-s2-top{display:grid;gap:.9rem;min-width:0}
.m3-s2-dcell{min-width:0}
.m3-s2-deck{display:grid;gap:.8rem;min-width:0}

/* the notes card shrinks slightly - content untouched, r4 skin + write-on
   ladder untouched (zone-scoped overrides outrank the surviving rules) */
.m3-s2z .m3-s2-jot{width:100%;max-width:none;padding:.65rem .85rem .65rem;gap:.3rem}
.m3-s2z .m3-s2-nb{gap:.3rem}
.m3-s2z .m3-s2-ns+.m3-s2-ns{padding-top:.3rem}
.m3-s2z .m3-s2-nl{font-size:.75rem;line-height:1.45}

/* the terminals compress: tighter code metrics inside the approved skin */
.m3-s2z .m3-s2-term__code{gap:.3rem;padding:.6rem .7rem .7rem}
.m3-s2z .m3-s2-ln{font-size:clamp(.5rem,.2rem + .36vw,.5625rem)}

/* ---- the drawn arrows: the Document band's arrow grammar, green ---- */
.m3-s2-fa{display:grid;justify-items:center;align-content:center;gap:.2rem;min-width:0}
.m3-s2-farw{display:block;width:2.6rem;height:2rem;color:var(--green)}
.m3-s2-farw svg{width:100%;height:100%;display:block;overflow:visible}
.m3-s2-fs{fill:none;stroke:currentColor;stroke-width:.125rem;stroke-linecap:round;stroke-linejoin:round}
.m3-s2-fab{color:var(--muted-2)}
/* stacked (below the tiling): the plan arrow turns to point down the stack */
.m3-s2-fa1 .m3-s2-farw{rotate:90deg}

/* ---- (2) the handover row: code -> the AIOS ---- */
.m3-s2-hand{display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:2.2rem;min-width:0}
.m3-s2-fa2{width:2.7rem;height:2.3rem}

/* ---- (3) THE AIOS DASHBOARD, MID-ASSEMBLY - the focal artifact.
   Hand-rolled colours (the band's g-black token flip must not reach
   inside the window): dark chrome #0b0e0b / #0d100d, hairlines #1e231f,
   pale unbuilt ground #F4F5EF, wireframe strokes #C9CDBD, green #1fd15f.
   Same green border + glow family skin as the plan cards and terminals. ---- */
.m3-s2-osw{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;border-radius:.75rem;overflow:hidden;background:#0d100d;border:.0625rem solid rgba(31,209,95,.45);box-shadow:0 0 .45rem rgba(31,209,95,.2),0 0 1.8rem rgba(31,209,95,.25),0 1.5rem 3.25rem rgba(0,0,0,.38)}
.m3-s2-osbar{display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;background:#0b0e0b;border-bottom:.0625rem solid #1e231f}
.m3-s2-osbar>i{width:.5rem;height:.5rem;border-radius:50%;display:block;flex:none}
.m3-s2-osbar>i:nth-of-type(1){background:#ff5f57}
.m3-s2-osbar>i:nth-of-type(2){background:#febc2e}
.m3-s2-osbar>i:nth-of-type(3){background:#28c840}
.m3-s2-osbar>span:first-of-type{margin-left:.4rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,244,242,.66);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s2-osas{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#1fd15f;flex:none}
.m3-s2-osas i{width:.3125rem;height:.3125rem;border-radius:50%;background:#1fd15f;display:block;flex:none}

/* the body: dark sidebar (top rows lit, dashed stubs pinned to its foot)
   beside the split main ground */
.m3-s2-osbody{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:0;min-width:0}
.m3-s2-osside{display:flex;flex-direction:column;gap:.14rem;padding:.55rem .5rem;background:#0b0e0b;border-right:.0625rem solid #1e231f;min-height:0;overflow:hidden}
.m3-s2-osrow{display:flex;align-items:center;gap:.5em;padding:.26em .7em;border-radius:.4rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;line-height:1.4;color:rgba(154,163,155,.82);white-space:nowrap}
.m3-s2-osrow i{width:.3125rem;height:.3125rem;border-radius:50%;background:#2a322b;flex:none}
.m3-s2-osrow--on{background:rgba(31,209,95,.12);color:#1fd15f}
.m3-s2-osrow--on i{background:#1fd15f}
.m3-s2-osstub{display:block;height:.8rem;border:.09rem dashed #2a322b;border-radius:.4rem;margin-top:.28rem}
.m3-s2-osstub:first-of-type{margin-top:auto}

/* the main: the SEAM. Left half live dark, right half pale wireframe
   ground - one hard stop landing exactly in the tile gap, with a dashed
   green construction rule drawn on it */
.m3-s2-osmain{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(3.1rem,1fr);gap:.5rem;padding:.75rem;background:linear-gradient(90deg,#0d100d 0 50%,#F4F5EF 50% 100%);min-height:0;min-width:0}
.m3-s2-osseam{position:absolute;left:50%;top:.5rem;bottom:.5rem;width:0;border-left:.125rem dashed #1fd15f;transform:translateX(-50%);transform-origin:top center}
/* live tiles: dark card, green top hairline (the site's KPI grammar),
   green number, mono label */
.m3-s2-ol{position:relative;z-index:1;display:grid;align-content:space-between;gap:.3rem;padding:.45rem .55rem .5rem;background:#111411;border:.0625rem solid #262c27;border-top:.125rem solid #1fd15f;border-radius:.35rem;min-width:0}
.m3-s2-ol b{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.05rem,.75rem + .55vw,1.45rem);line-height:1;letter-spacing:-.02em;color:#1fd15f;font-variant-numeric:tabular-nums}
.m3-s2-ol small{font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;line-height:1.4;color:rgba(154,163,155,.82);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s2-osbars{display:flex;align-items:flex-end;gap:.25rem;height:1.45rem}
.m3-s2-osbars i{flex:1;background:rgba(31,209,95,.7);border-radius:.125rem .125rem 0 0}
/* wireframe tiles: dashed outlines on the pale ground, a faint label ghost */
.m3-s2-ow{position:relative;border:.09rem dashed #C9CDBD;border-radius:.35rem;min-width:0}
.m3-s2-ow::after{content:"";position:absolute;left:.5rem;bottom:.45rem;width:45%;height:.14rem;border-radius:.125rem;background:#DCDFD2}
/* the tile being placed: dashed green, green-dim fill, the placement cursor */
.m3-s2-osph{position:relative;z-index:1;border:.1rem dashed #1fd15f;border-radius:.35rem;background:rgba(31,209,95,.14);min-width:0}
.m3-s2-oscur{position:absolute;right:-.45rem;bottom:-.4rem;width:1.05rem;height:1.05rem;color:#0B0F0C;z-index:2}
.m3-s2-oscur svg{width:100%;height:100%;display:block}

/* the foot: the progress beat - 9 OF 14 TABS BUILT + the part-filled meter */
.m3-s2-osfoot{display:flex;align-items:center;gap:.8rem;padding:.5rem .85rem;background:#0b0e0b;border-top:.0625rem solid #1e231f}
.m3-s2-osfoot .mono-sm{color:rgba(242,244,242,.72);white-space:nowrap;flex:none}
.m3-s2-osmt{flex:1 1 auto;height:.375rem;border-radius:100rem;background:#1e231f;overflow:hidden;min-width:2rem}
.m3-s2-osmf{display:block;width:64.3%;height:100%;border-radius:100rem;background:#1fd15f;transform-origin:left center}

/* ---- small screens: the sidebar hands its width to the tiles (the
   page's own .m3-win move) so the half-built grid keeps reading ---- */
@media (max-width:35.9375em){
  .m3-s2-osside{display:none}
  .m3-s2-osbody{grid-template-columns:1fr}
}

/* ---- the contract minimum + the stacked window (900-1024): zone single
   column, everything full width, auto-tall ---- */
@media (min-width:56.25em){
  .m3-s2z{min-height:31rem}
}

/* ---- the 64em tiling: the plan row (notes | Plan arrow | deck) over the
   handover over the dashboard, the zone EXACTLY 31rem. The window is the
   elastic artifact - its 1fr row absorbs every remaining rem ---- */
@media (min-width:64em){
  .m3-s2z{height:31rem;min-height:31rem;grid-template-rows:auto auto minmax(0,1fr);gap:.8rem;align-content:stretch}
  .m3-s2-top{grid-template-columns:minmax(0,1fr) auto minmax(0,1.18fr);gap:.7rem;align-items:stretch}
  .m3-s2-fa1{align-self:center}
  .m3-s2-fa1 .m3-s2-farw{rotate:none}
  /* the deck: three panes cascade in one cell - the front pane full, the
     two behind showing their title bars; padding reserves the offsets so
     the cascade never leans on the caption beneath */
  .m3-s2-deck{gap:0;padding-bottom:3rem}
  .m3-s2-deck>.m3-s2-term{grid-area:1/1;width:92%;align-self:start}
  .m3-s2-da{translate:0 0;z-index:1}
  .m3-s2-db{translate:4% 1.5rem;z-index:2}
  .m3-s2-dc{translate:8% 3rem;z-index:3;box-shadow:0 0 .45rem rgba(31,209,95,.2),0 0 1.8rem rgba(31,209,95,.25),0 1.5rem 3.25rem rgba(0,0,0,.38)}
  /* the handover arrow exits under the deck and dives toward the window */
  .m3-s2-hand{justify-content:flex-end;padding-right:14%}
}

/* ==========================================================================
   AMBIENT - motion-gated loops only: the placing tile breathes green while
   the surviving caret blink + Writing blip keep running in the deck. The
   Assembling dot blips with the site's shared rhythm. Static fallback =
   tile filled, dots solid, caret visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s2-osph{animation:m3S2osBreathe 2.6s var(--ease) infinite}
  @keyframes m3S2osBreathe{0%,100%{background:rgba(31,209,95,.1)}50%{background:rgba(31,209,95,.2)}}
  .m3-s2-osas i{animation:m3S2osBlip 2.4s var(--ease) infinite}
  @keyframes m3S2osBlip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .3rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2: scroll-driven theatre - same support + media gates as the site's
   v4 block, riding the band's --m3b view-timeline. The surviving ladders
   keep working (notes write on x1-x6, code types on t1-t10); this gate adds
   the assembly: the Plan arrow draws from notes to code, the Build arrow
   draws from code into the dashboard, the sidebar lights row by row, the
   live tiles land, the seam draws top to bottom, the next tile arrives
   dashed under the cursor, and the meter fills to 9 of 14 - the AIOS
   visibly grows as the visitor scrolls. Static = the finished half-built
   state above.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* safety: same declaration the page's gate places on every band */
  .m3-band--02{view-timeline-name:--m3b}

  @keyframes m3S2osIn{from{opacity:0;transform:translateY(.45rem)}to{opacity:1;transform:none}}
  @keyframes m3S2osShow{from{opacity:0}to{opacity:1}}
  @keyframes m3S2osDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3S2osGrow{from{transform:translateX(-50%) scaleY(0)}to{transform:translateX(-50%) scaleY(1)}}
  @keyframes m3S2osFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

  /* the sentence draws: notes -> code (Plan), code -> the AIOS (Build) */
  .m3-s2-fw1,.m3-s2-fw2{stroke-dasharray:1;stroke-dashoffset:1;animation:m3S2osDraw linear both;animation-timeline:--m3b}
  .m3-s2-fw1{animation-range:entry 18% entry 34%}
  .m3-s2-ft1{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 32% entry 40%}
  .m3-s2-fb1{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 34% entry 44%}
  .m3-s2-fw2{animation-range:entry 44% entry 60%}
  .m3-s2-ft2{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 58% entry 66%}
  .m3-s2-fb2{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 60% entry 70%}

  /* the dashboard assembles: sidebar lights row by row */
  .m3-s2-osrow{animation:m3S2osShow linear both;animation-timeline:--m3b}
  .m3-s2-osrow:nth-of-type(1){animation-range:entry 28% entry 36%}
  .m3-s2-osrow:nth-of-type(2){animation-range:entry 32% entry 40%}
  .m3-s2-osrow:nth-of-type(3){animation-range:entry 36% entry 44%}
  .m3-s2-osrow:nth-of-type(4){animation-range:entry 40% entry 48%}
  .m3-s2-osrow:nth-of-type(5){animation-range:entry 44% entry 52%}

  /* live tiles land left to right, the seam draws, the wireframe side
     settles, the next tile arrives under the cursor, the meter fills */
  .m3-s2-ol{animation:m3S2osIn linear both;animation-timeline:--m3b}
  .m3-s2-ol1{animation-range:entry 36% entry 46%}
  .m3-s2-ol2{animation-range:entry 42% entry 52%}
  .m3-s2-ol3{animation-range:entry 48% entry 58%}
  .m3-s2-ol4{animation-range:entry 54% entry 64%}
  .m3-s2-osseam{animation:m3S2osGrow linear both;animation-timeline:--m3b;animation-range:entry 38% entry 58%}
  .m3-s2-ow{animation:m3S2osShow linear both;animation-timeline:--m3b}
  .m3-s2-ow1{animation-range:entry 56% entry 66%}
  .m3-s2-ow2{animation-range:entry 60% entry 70%}
  .m3-s2-ow3{animation-range:entry 64% entry 74%}
  .m3-s2-osph{animation:m3S2osShow linear both,m3S2osBreathe 2.6s var(--ease) infinite;animation-timeline:--m3b,auto;animation-range:entry 66% entry 76%,normal}
  .m3-s2-oscur{animation:m3S2osShow linear both;animation-timeline:--m3b;animation-range:entry 72% entry 82%}
  .m3-s2-osmf{animation:m3S2osFill linear both;animation-timeline:--m3b;animation-range:entry 42% entry 84%}

}}


/* ==========================================================================
   BAND 03 INSTALL - the TRAINING ROOM on a WHITE ground. Static finished
   state FIRST (mobile / reduced-motion / no-support all get the full room,
   desk rule drawn, every LIVE dot green). Ambient loops are motion-gated;
   scroll theatre lives in this band's own copy of the tier-2 gate below.
   ========================================================================== */

/* ---- the band ground: pure white (Shane round 2). g-lift's border-block
   stays and now does the separating from the paper page around it. ---- */
.m3-band.m3-band--03{background:var(--surface-2)}

/* ---- the room: an em-scaled tableau. The machines scale fluidly with the
   viewport off one clamp (so the row NEVER overflows, 1512 down to 390);
   the notepads stay at reading scale in rem and wrap instead. ---- */
.m3-s3-room{display:grid;justify-items:center;font-size:clamp(.6rem,.36rem + 1vw,1.32rem)}
.m3-s3-row{display:flex;align-items:flex-end;justify-content:center;gap:.75em;width:100%}

/* ---- round 3: machines + desk edge move as ONE grid item, so the feet
   stay glued to the desk line when the zone distributes its leftover. No
   min-width:0 here ON PURPOSE: the set's min-content is the row's, which
   inflates the room's track - the tableau anchors at the column's left
   edge and spends its extra width in the band's right-side headroom (the
   round-2 geometry), and the desk + notepads + beat all centre on the
   full row, never drifting left over the copy column. ---- */
.m3-s3-set{display:grid;justify-items:center}

/* ---- one iMac: dark display glass, aluminium chin, neck, foot. The whole
   machine scales off --s (shallow arc = centre seat largest). ---- */
.m3-s3-imac{flex:none;font-size:calc(1em*var(--s,1));display:grid;justify-items:center}
.m3-s3-disp{display:block;width:6.6em;border:.09em solid #1e231f;border-radius:.42em;background:#0b0e0b;overflow:hidden;box-shadow:var(--shadow-card)}
.m3-s3-scr{display:grid;grid-template-columns:auto minmax(0,1fr);aspect-ratio:16/10;background:#0d100d;border-bottom:.07em solid #1e231f;overflow:hidden}
/* the same dashboard on every seat: sidebar dots, title bar, LIVE, KPIs */
.m3-s3-side{display:flex;flex-direction:column;gap:.32em;padding:.5em .38em;background:#0b0e0b;border-right:.07em solid #1e231f}
.m3-s3-side i{display:block;width:.3em;height:.3em;border-radius:50%;background:#2a322b;flex:none}
.m3-s3-side .m3-s3-on{background:var(--green)}
.m3-s3-mn{display:grid;align-content:start;gap:.4em;padding:.5em .55em;min-width:0}
.m3-s3-tp{display:flex;align-items:center;justify-content:space-between;gap:.4em}
.m3-s3-tt{display:block;width:2em;height:.3em;border-radius:.15em;background:#2a322b}
.m3-s3-ld{display:block;flex:none}
.m3-s3-ld i{display:block;width:.44em;height:.44em;border-radius:50%;background:var(--green)}
/* KPI pair wears the signature green hairline on its top edge */
.m3-s3-kp{display:grid;grid-template-columns:1fr 1fr;gap:.07em;background:#1e231f;border:.07em solid #1e231f;border-top:.14em solid var(--green);border-radius:.3em;overflow:hidden}
.m3-s3-num{display:block;background:#111411;color:#f2f4f2;padding:.34em .4em .4em;min-width:0;font-family:var(--ff-display);font-weight:800;font-size:.78em;line-height:1;font-variant-numeric:tabular-nums}
.m3-s3-num i{display:block;margin-top:.4em;height:.3em;width:72%;border-radius:.15em;background:#2a322b}

/* ---- the stand, DRAWN (Shane round 2: "hard to see the iMac stands").
   Warm aluminium (#d3d6cd family) against the white ground, every part
   edged in the darker #b9beb2 so it reads at a glance. ---- */
/* the chin - the aluminium band that makes it an iMac, defined bottom edge */
.m3-s3-chin{display:block;height:.9em;background:linear-gradient(180deg,#EEF0E8,#D3D6CD);box-shadow:inset 0 -.09em 0 #b9beb2}
/* the neck - a clearly drawn aluminium column with a real 1px border */
.m3-s3-neck{display:block;width:1.6em;height:1em;clip-path:none;border:.0625rem solid #b9beb2;background:linear-gradient(180deg,#DCDFD5,#CBCFC0)}
/* the foot - a trapezoid slab. clip-path eats borders and box-shadows, so:
   the element itself carries only the drop-shadow (filters on a clipped
   element would clip the shadow away - so the clipping moves to pseudos);
   ::before = the 1px #b9beb2 edge trapezoid, ::after = the aluminium fill
   inset .0625rem inside it. The drop-shadow traces the trapezoid silhouette
   = the soft shadow under the foot. */
.m3-s3-foot{position:relative;display:block;width:3.6em;height:.55em;border-radius:0;background:none;filter:drop-shadow(0 .2em .25em rgba(11,15,12,.16))}
.m3-s3-foot::before{content:"";position:absolute;inset:0;background:#b9beb2;clip-path:polygon(8% 0,92% 0,100% 100%,0 100%)}
.m3-s3-foot::after{content:"";position:absolute;inset:.0625rem;background:linear-gradient(180deg,#DCDFD5,#C6CABB);clip-path:polygon(8% 0,92% 0,100% 100%,0 100%)}

/* ---- the desk edge: the section's green hairline, drawn under the seats ---- */
.m3-s3-desk{justify-self:stretch;display:block;height:.125rem;border-radius:.125rem;background:var(--green);transform-origin:left center}

/* ---- in front: lined notepads with pens - the team taking notes. White
   cards on the white ground: soft --line border + a slightly stronger
   shadow than the card default so they separate (Shane round 2). Round 3:
   slightly enlarged (widths +1rem family, script up half a step). ---- */
.m3-s3-pads{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1.1rem 1.2rem;margin-top:1.5rem}
.m3-s3-pad{position:relative;flex:none;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.25rem;box-shadow:0 .1875rem .5rem rgba(11,15,12,.06),0 1.375rem 3rem rgba(11,15,12,.14);padding:.8rem .95rem .55rem}
.m3-s3-pad .mono-sm{color:var(--muted-2)}
.m3-s3-pad--a{width:11.5rem;rotate:-2deg}
.m3-s3-pad--b{width:10.5rem;rotate:1deg}
.m3-s3-pad--c{width:9.75rem;rotate:2.5deg}
.m3-s3-scrib{margin-top:.4rem;font-style:italic;font-size:.875rem;line-height:1.7;color:var(--muted);background-image:repeating-linear-gradient(180deg,transparent 0,transparent calc(1.7em - .0625rem),var(--line) calc(1.7em - .0625rem),var(--line) 1.7em)}
.m3-s3-caret{display:inline-block;width:.11em;height:1.05em;background:var(--ink);margin-left:.12em;vertical-align:text-bottom}
.m3-s3-pen{position:absolute;right:-.55rem;bottom:-.5rem;width:2.1rem;height:2.1rem;color:var(--muted);rotate:16deg}
.m3-s3-pen--l{right:.55em;left:auto;bottom:-.5em;transform:rotate(38deg)}
.m3-s3-pen svg{width:100%;height:100%;display:block}

/* ---- the beat ---- */
.m3-s3-fin{margin-top:1.35rem}
.m3-s3-live{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:100rem;background:var(--green-dim);color:var(--green-t);font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.5}
.m3-s3-live i{display:block;width:.3125rem;height:.3125rem;border-radius:50%;background:var(--green);flex:none}

/* ==========================================================================
   BAND 03 ROUND-3 SIZE CONFORMANCE - the shared 31rem zone contract.
   The zone root is pinned to EXACTLY 31rem at desktop; space-between hands
   the leftover to the two seams (desk-to-notepads, notepads-to-beat) so the
   tableau FILLS the footprint at every desktop width with the beat landing
   on the zone's bottom edge. Base margins bias seam one wider than seam two.
   These overrides sit AFTER the base rules so the cascade favours them.
   ========================================================================== */
@media (min-width:56.25em){
  .m3-s3-room{height:31rem;min-height:31rem;align-content:space-between}
  .m3-s3-pads{margin-top:2rem}
  .m3-s3-fin{margin-top:.75rem}
}
/* the proportional band (1rem = 1vw): the machine row steps up ~12%. Its
   right edge lands ~2.7rem inside the band edge at any width here - zero
   horizontal overflow. Below 1360px the base clamp holds unchanged (the
   width headroom between column and band edge is thinner there). */
@media (min-width:1360px){
  .m3-s3-room{font-size:1.48rem}
}

/* ==========================================================================
   BAND 03 AMBIENT - motion-gated loops only. Two moves: the LIVE dots blip
   in a left-to-right wave across the seats (--i), and one pad caret blinks.
   Static fallback = solid green dots, visible caret.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s3-ld i,.m3-s3-live i{animation:m3s3Blip 2.6s var(--ease) infinite;animation-delay:calc(.35s*var(--i,0))}
  @keyframes m3s3Blip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .4em rgba(31,209,95,0)}}
  .m3-s3-caret{animation:m3s3Caret 1.1s steps(1) infinite}
  @keyframes m3s3Caret{50%{opacity:0}}
}

/* ==========================================================================
   BAND 03 TIER-2 - the band's own copy of the site gate. The screens deal
   in one by one via the page's m3-r ladder (r2-r6 on the seats); below,
   this block adds: the desk hairline draws under the row, each screen's
   LIVE dot ignites in sequence (grey to green, left to right, AFTER its
   screen has landed), and TEAM ONBOARDED lands last. All driven off the
   band's --m3b view-timeline the shell already declares.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* idempotent restatement of the page's chapter timeline */
  .m3-band--03{view-timeline-name:--m3b}

  /* the desk edge draws left to right as the room enters */
  .m3-s3-desk{animation:m3s3Sweep linear both;animation-timeline:--m3b;animation-range:entry 16% entry 60%}
  @keyframes m3s3Sweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}

  /* LIVE dots ignite in sequence - the room comes online seat by seat */
  .m3-s3-ld{opacity:.28;filter:grayscale(1);animation:m3s3Ignite linear both;animation-timeline:--m3b}
  .m3-s3-imac:nth-child(1) .m3-s3-ld{animation-range:entry 42% entry 52%}
  .m3-s3-imac:nth-child(2) .m3-s3-ld{animation-range:entry 50% entry 60%}
  .m3-s3-imac:nth-child(3) .m3-s3-ld{animation-range:entry 58% entry 68%}
  .m3-s3-imac:nth-child(4) .m3-s3-ld{animation-range:entry 66% entry 76%}
  .m3-s3-imac:nth-child(5) .m3-s3-ld{animation-range:entry 74% entry 84%}
  @keyframes m3s3Ignite{from{opacity:.28;filter:grayscale(1)}to{opacity:1;filter:none}}

  /* the beat lands after the last seat goes live */
  .m3-s3-fin{animation:m3s3In linear both;animation-timeline:--m3b;animation-range:entry 55% entry 92%}
  @keyframes m3s3In{from{opacity:0;transform:translateY(1.1rem)}to{opacity:1;transform:none}}

}}


/* ==========================================================================
   BAND 04 - AUTOMATE rebuild (m3-s4-*) - splice-ready interior rules.
   Two-part visual on the green-washed band: (a) a BIG n8n-grammar canvas -
   three chain lanes x four stations (12 rounded nodes: triggers, branches,
   actions; app glyphs; green status dots) wired by curved connectors that
   cross the lanes so the whole thing reads as ONE working machine; white
   flow-dots drift along three live wires (ambient); the ENQUIRY chain draws
   itself on with scroll. (b) a white list card naming the top automations
   under two mono headers with green dots + run counts - the eight counts sum
   to 214, the canvas foot's RUNS THIS WEEK beat, which counts up on scroll.
   White cards pop on the wash; wires run UNDER the opaque node cards so they
   read as entering/leaving the node edges - the n8n read. Static finished
   state first; ambient loops motion-gated; scroll theatre in this band's own
   copy of the site's tier-2 gate. No JS. rem/em units (vh only in a fluid
   clamp for the stage height, the site's own pattern).
   ========================================================================== */

/* the animated integer for the runs counter (engines without @property keep
   the static 214 numeral that stays in the markup) */
@property --m3s4r{syntax:"<integer>";initial-value:0;inherits:true}

/* ---- band layout: copy + list card share the first row, canvas spans full
   width beneath. Mobile-first: everything stacks in DOM order. ---- */
.m3-s4-canvas{grid-column:1/-1;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:clamp(1rem,2.2vw,1.6rem);min-width:0}
@media (min-width:56.25em){
  .m3-band--green .m3-s4-bw{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.2rem,4vw,3rem) clamp(3rem,5vw,4.5rem);align-items:center}
}

/* ---- shared: band-local live pill ---- */
.m3-s4-live{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:100rem;background:var(--green-dim);color:var(--green-t);font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;flex:none}
.m3-s4-live i{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--green);display:block;flex:none}

/* ---- (b) the list card - what the automations DO, with run counts ---- */
.m3-s4-list{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:clamp(1.1rem,2.2vw,1.5rem);min-width:0}
.m3-s4-lhead{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.85rem;border-bottom:.0625rem solid var(--line)}
.m3-s4-lt,.m3-s4-lw{color:var(--muted-2)}
.m3-s4-cols{display:grid;gap:1.2rem;margin-top:1.05rem}
@media (min-width:30em){.m3-s4-cols{grid-template-columns:1fr 1fr;gap:1.6rem}}
.m3-s4-gh{display:flex;align-items:center;color:var(--muted-2)}
.m3-s4-gh::before{content:"";width:1.1rem;height:.125rem;border-radius:.125rem;background:var(--green);margin-right:.55rem;flex:none}
.m3-s4-list ul{list-style:none;margin:.35rem 0 0;padding:0}
.m3-s4-list li{display:flex;align-items:flex-start;gap:.6rem;padding-block:.62em}
.m3-s4-list li + li{border-top:.0625rem solid var(--line)}
.m3-s4-list li i{width:.4rem;height:.4rem;border-radius:50%;background:var(--green);flex:none;margin-top:.42em}
.m3-s4-list li span{flex:1;min-width:0;font-size:clamp(.8125rem,.78rem + .15vw,.9375rem);font-weight:500;line-height:1.4;color:var(--ink)}
.m3-s4-list li em{font-style:normal;font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.08em;color:var(--muted-2);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;padding-left:.5rem;margin-top:.14em}

/* ---- (a) the canvas card - head / stage / runs foot ---- */
.m3-s4-chead{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem .75rem;padding-bottom:1rem;border-bottom:.0625rem solid var(--line)}
.m3-s4-ct{color:var(--muted-2)}
/* stage: mobile-first = the nodes tile 2-up in chain order, wires hidden */
.m3-s4-stage{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:clamp(1rem,2.4vw,1.5rem)}
.m3-s4-wires{display:none}

/* nodes - the n8n grammar in the severe card voice: rounded card, app glyph,
   mono kind label, bold name, green status dot; triggers wear the pill-left
   radius, branches a fork glyph */
.m3-s4-node{position:relative;z-index:1;display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border:.0625rem solid var(--line-2);border-radius:.6rem;background:var(--surface-2);box-shadow:var(--shadow-card);min-width:0;max-width:100%}
.m3-s4-node--t{border-radius:2rem .6rem .6rem 2rem;padding-left:.85rem}
.m3-s4-node img{width:1.25rem;height:1.25rem;display:block;filter:grayscale(1);opacity:.7;flex:none}
.m3-s4-fork{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;color:var(--muted);flex:none}
.m3-s4-fork svg{width:100%;height:100%;display:block}
.m3-s4-nt{display:grid;gap:.16rem;min-width:0}
.m3-s4-node small{font-family:var(--ff-mono);font-size:.5rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);line-height:1}
.m3-s4-node b{font-weight:700;font-size:clamp(.6875rem,.55rem + .3vw,.875rem);line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s4-node>i{width:.4rem;height:.4rem;border-radius:50%;background:var(--green);flex:none;margin-left:.1rem}

/* wire strokes - muted connectors, green live veins, white drifting beads */
.m3-s4-w{stroke:var(--line-2);stroke-width:.125rem;stroke-linecap:round}
.m3-s4-g,.m3-s4-cw{stroke:var(--green);stroke-width:.125rem;stroke-linecap:round}
.m3-s4-f{stroke:#fff;stroke-width:.22rem;stroke-linecap:round;stroke-dasharray:0 .12}

/* foot - the runs beat */
.m3-s4-foot{margin-top:clamp(1rem,2.4vw,1.5rem);padding-top:1rem;border-top:.0625rem solid var(--line)}
.m3-s4-runs{color:var(--muted-2)}
.m3-s4-runs b{font-weight:700;color:var(--ink)}

/* desktop stage: 3 chain lanes x 12 columns, one absolute wire layer under
   the nodes. Lane centres 16.7 / 50 / 83.3, station centres 12.5 / 37.5 /
   62.5 / 87.5 - the SVG speaks the same 0-100 space (preserveAspectRatio
   none + non-scaling-stroke, the page's own m3-cwires trick). */
@media (min-width:56.25em){
  .m3-s4-stage{grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(3,1fr);gap:0;align-items:center;min-height:clamp(19rem,40vh,26rem)}
  .m3-s4-wires{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0}
  .m3-s4-node{justify-self:center}
  .m3-s4-node:nth-of-type(1){grid-area:1/1/2/4}
  .m3-s4-node:nth-of-type(2){grid-area:1/4/2/7}
  .m3-s4-node:nth-of-type(3){grid-area:1/7/2/10}
  .m3-s4-node:nth-of-type(4){grid-area:1/10/2/13}
  .m3-s4-node:nth-of-type(5){grid-area:2/1/3/4}
  .m3-s4-node:nth-of-type(6){grid-area:2/4/3/7}
  .m3-s4-node:nth-of-type(7){grid-area:2/7/3/10}
  .m3-s4-node:nth-of-type(8){grid-area:2/10/3/13}
  .m3-s4-node:nth-of-type(9){grid-area:3/1/4/4}
  .m3-s4-node:nth-of-type(10){grid-area:3/4/4/7}
  .m3-s4-node:nth-of-type(11){grid-area:3/7/4/10}
  .m3-s4-node:nth-of-type(12){grid-area:3/10/4/13}
}

/* ==========================================================================
   AMBIENT - motion-gated loops only. Three moves: beads drift along the
   live wires, the live pill blips, the two trigger dots pulse armed.
   Static fallback = frozen beads on the wires, everything visible.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s4-fg1 .m3-s4-f{animation:m3s4Flow 1.4s linear infinite}
  .m3-s4-fg2 .m3-s4-f{animation:m3s4Flow 1.9s linear infinite}
  .m3-s4-fg3 .m3-s4-f{animation:m3s4Flow 2.3s linear infinite}
  @keyframes m3s4Flow{to{stroke-dashoffset:-.12}}
  .m3-s4-live i{animation:m3s4Blip 2.4s var(--ease) infinite}
  .m3-s4-node--t>i{animation:m3s4Blip 2.8s var(--ease) infinite .9s}
  @keyframes m3s4Blip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .35rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2 - this band's scroll theatre, same support + media gates as the
   site block. Rewinds the finished state and hands it to the scroll: nodes
   deal in chain by chain, the muted web fades up, the ENQUIRY chain draws
   itself across the machine and dives into lane two, the beads arrive as
   their wire goes live, the runs counter counts to 214.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  .m3-band--green{view-timeline-name:--m3b}

  @keyframes m3s4In{from{opacity:0;transform:translateY(1.1rem)}to{opacity:1;transform:none}}
  @keyframes m3s4Fade{from{opacity:0}to{opacity:1}}
  @keyframes m3s4Draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3s4Count{from{--m3s4r:0}to{--m3s4r:214}}

  /* nodes deal in, chain by chain */
  .m3-s4-node{animation:m3s4In linear both;animation-timeline:--m3b}
  .m3-s4-node:nth-of-type(1){animation-range:entry 4% entry 30%}
  .m3-s4-node:nth-of-type(2){animation-range:entry 8% entry 34%}
  .m3-s4-node:nth-of-type(3){animation-range:entry 12% entry 38%}
  .m3-s4-node:nth-of-type(4){animation-range:entry 16% entry 42%}
  .m3-s4-node:nth-of-type(5){animation-range:entry 21% entry 48%}
  .m3-s4-node:nth-of-type(6){animation-range:entry 25% entry 52%}
  .m3-s4-node:nth-of-type(7){animation-range:entry 29% entry 56%}
  .m3-s4-node:nth-of-type(8){animation-range:entry 33% entry 60%}
  .m3-s4-node:nth-of-type(9){animation-range:entry 38% entry 64%}
  .m3-s4-node:nth-of-type(10){animation-range:entry 42% entry 68%}
  .m3-s4-node:nth-of-type(11){animation-range:entry 46% entry 72%}
  .m3-s4-node:nth-of-type(12){animation-range:entry 50% entry 76%}

  /* the muted web fades up under the arriving nodes */
  .m3-s4-wbase{animation:m3s4Fade linear both;animation-timeline:--m3b;animation-range:entry 16% entry 44%}

  /* the one chain draw-on: ENQUIRY draws station to station, then the
     cross-wire dives into lane two - the machine becomes one */
  .m3-s4-cw{stroke-dasharray:1;stroke-dashoffset:1;animation:m3s4Draw linear both;animation-timeline:--m3b}
  .m3-s4-d1{animation-range:entry 18% entry 36%}
  .m3-s4-d2{animation-range:entry 32% entry 50%}
  .m3-s4-d3{animation-range:entry 46% entry 62%}
  .m3-s4-d4{animation-range:entry 58% entry 80%}

  /* beads appear once their wire is live */
  .m3-s4-fg{animation:m3s4Fade linear both;animation-timeline:--m3b}
  .m3-s4-fg1{animation-range:entry 36% entry 48%}
  .m3-s4-fg3{animation-range:entry 40% entry 55%}
  .m3-s4-fg2{animation-range:entry 78% entry 90%}

  /* the runs counter counts to 214 as the machine assembles */
  .m3-s4-count span{display:none}
  .m3-s4-count::after{counter-reset:m3s4r var(--m3s4r);content:counter(m3s4r);animation:m3s4Count linear both;animation-timeline:--m3b;animation-range:entry 30% entry 85%}

}}


/* ==========================================================================
   BAND 04 - AUTOMATE round-2 rebuild (m3-s4-*) - splice-ready fragment.
   IN-SYNC with the other bands: the copy block rides the shared .m3-copy
   grammar on the left, ONE visual zone sits right at the same width and
   position the band shell (.m3-bw) gives every other band. No full-width
   canvas, no band-level grid override. The zone stacks TWO artifacts:
   (a) a compact DARK n8n-style canvas card - near-black #17191c ground,
   subtle dot-grid, 7 rounded dark nodes (#232629 on #34383d hairlines)
   each led by a colourful icon chip in the n8n palette (orange clock
   trigger, blue mail, teal merge, green tick, purple globe, amber braces),
   node names in light mono, light curved wires with small +ports, flow
   beads drifting on 2 wires, green status dots, a dashed +slot growing the
   chain; title bar = mono AUTOMATION CANVAS + LIVE pill;
   (b) the TOP AUTOMATIONS ledger in the band's existing card grammar -
   mono group headers with the green dash, green dots, hairline rows,
   tabular counts - 7 tight rows per column summing to exactly 268, the
   number the ledger foot claims. Band background (.m3-band--green) is
   untouched and stays exactly as the page ships it.
   Static finished state FIRST (mobile / reduced-motion / no-support all
   get drawn wires, visible beads and ports, the static 268). Ambient
   loops are motion-gated; scroll theatre lives in this fragment's own
   copy of the site's tier-2 gate. No JS. rem/em units (vh only inside
   one fluid clamp for the stage height, the page's own pattern).
   ========================================================================== */

/* the animated integer for the runs counter (engines without @property
   keep the static 268 numeral that stays in the markup) */
@property --m3s4n{syntax:"<integer>";initial-value:0;inherits:true}

/* ---- the visual zone: two stacked artifacts, nothing else ---- */
.m3-s4-zone{display:grid;gap:clamp(.9rem,2vw,1.2rem);width:100%;min-width:0;align-content:center}

/* ==========================================================================
   (a) THE DARK n8n CANVAS CARD
   ========================================================================== */
.m3-s4-n8n{border:.0625rem solid #34383d;border-radius:.75rem;background:#17191c;overflow:hidden;min-width:0;box-shadow:0 .375rem 1.125rem rgba(11,15,12,.12),0 1.5rem 3.5rem rgba(11,15,12,.2)}
.m3-s4-nbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .9rem;background:#121417;border-bottom:.0625rem solid #26292d}
.m3-s4-nbt{font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(214,219,224,.72)}
/* the shared LIVE pill re-tinted for the dark ground (band tokens are light) */
.m3-s4-n8n .m3-live{background:rgba(31,209,95,.14);color:#1fd15f}

/* the editor ground: subtle dot-grid on near-black */
.m3-s4-nwrap{padding:.9rem .7rem;background-image:radial-gradient(circle,#262b30 .0625rem,transparent .0938rem);background-size:1.1rem 1.1rem;background-position:.55rem .55rem}
.m3-s4-nstage{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}

/* wires + ports + the growing +slot exist on the full canvas only */
.m3-s4-nwires,.m3-s4-port,.m3-s4-add{display:none}

/* one node: dark rounded card, colourful chip, light mono name, status dot */
.m3-s4-nn{position:relative;z-index:1;display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border:.0625rem solid #34383d;border-radius:.55rem;background:#232629;box-shadow:0 .125rem .5rem rgba(0,0,0,.35);min-width:0;max-width:100%}
.m3-s4-nn--t{border-radius:1.6rem .55rem .55rem 1.6rem;padding-left:.7rem}
.m3-s4-nn b{font-family:var(--ff-mono);font-weight:500;font-size:.5625rem;letter-spacing:.04em;line-height:1.35;color:#e6e9ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s4-nn>i{width:.3rem;height:.3rem;border-radius:50%;background:var(--green);flex:none;margin-left:.05rem}
/* the colourful icon chip - per-node hue via --cc / --cb inline vars */
.m3-s4-chip{display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:.35rem;flex:none;color:var(--cc,#8b939b);background:var(--cb,rgba(139,147,155,.14))}
.m3-s4-chip svg{width:.85rem;height:.85rem;display:block}

/* wire strokes: light curved connectors + white drifting beads */
.m3-s4-nw{stroke:#666e78;stroke-width:.09rem;stroke-linecap:round;fill:none}
.m3-s4-bead{stroke:rgba(255,255,255,.88);stroke-width:.18rem;stroke-linecap:round;stroke-dasharray:0 .12;fill:none}

/* the full canvas: 4 stations x 2 chain lanes, one absolute wire layer
   under the opaque nodes (SVG speaks the same 0-100 space via
   preserveAspectRatio none + non-scaling-stroke, the page's own trick) */
@media (min-width:36em){
  .m3-s4-nstage{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr 1fr;gap:0;align-items:center;min-height:clamp(10.5rem,24vh,13rem)}
  .m3-s4-nwires{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0}
  .m3-s4-nn{justify-self:center;translate:0 var(--dy,0rem)}
  .m3-s4-nn:nth-of-type(1){grid-area:1/1/2/2}
  .m3-s4-nn:nth-of-type(2){grid-area:1/2/2/3}
  .m3-s4-nn:nth-of-type(3){grid-area:1/3/2/4}
  .m3-s4-nn:nth-of-type(4){grid-area:1/4/2/5}
  .m3-s4-nn:nth-of-type(5){grid-area:2/1/3/2}
  .m3-s4-nn:nth-of-type(6){grid-area:2/2/3/3}
  .m3-s4-nn:nth-of-type(7){grid-area:2/3/3/4}
  /* small +ports riding the wire midpoints */
  .m3-s4-port{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;width:.7rem;height:.7rem;border-radius:.2rem;background:#232629;border:.0625rem solid #34383d;color:#8b939b;transform:translate(-50%,-50%);font-family:var(--ff-mono);font-size:.5rem;font-weight:500;line-height:1}
  /* the dashed add-slot the last chain grows toward - the n8n read */
  .m3-s4-add{grid-area:2/4/3/5;display:flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border:.09rem dashed #3f454c;border-radius:.4rem;color:#7d858d;font-family:var(--ff-mono);font-size:.8rem;font-weight:500;line-height:1;justify-self:center;position:relative;z-index:1}
}

/* ==========================================================================
   (b) THE TOP AUTOMATIONS LEDGER - the band's existing card grammar,
   rows tightened so 7 per column fit the zone
   ========================================================================== */
.m3-s4-ledger{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:clamp(1rem,2vw,1.35rem);min-width:0}
.m3-s4-lhd{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.75rem;border-bottom:.0625rem solid var(--line);color:var(--muted-2)}
.m3-s4-lcols{display:grid;gap:1.1rem;margin-top:.9rem}
@media (min-width:30em){.m3-s4-lcols{grid-template-columns:1fr 1fr;gap:1.4rem}}
.m3-s4-lgh{display:flex;align-items:center;color:var(--muted-2)}
.m3-s4-lgh::before{content:"";width:1.1rem;height:.125rem;border-radius:.125rem;background:var(--green);margin-right:.55rem;flex:none}
.m3-s4-ledger ul{list-style:none;margin:.25rem 0 0;padding:0}
.m3-s4-ledger li{display:flex;align-items:center;gap:.55rem;padding-block:.4em;font-size:.8125rem}
.m3-s4-ledger li + li{border-top:.0625rem solid var(--line)}
.m3-s4-ledger li i{width:.35rem;height:.35rem;border-radius:50%;background:var(--green);flex:none}
.m3-s4-ledger li span{flex:1;min-width:0;font-weight:500;line-height:1.35;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s4-ledger li em{font-style:normal;font-family:var(--ff-mono);font-size:.6563rem;font-weight:500;letter-spacing:.06em;color:var(--muted-2);font-variant-numeric:tabular-nums;flex:none;padding-left:.5rem}
.m3-s4-lfoot{margin-top:.95rem;padding-top:.8rem;border-top:.0625rem solid var(--line);color:var(--muted-2)}
.m3-s4-lfoot b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

/* ==========================================================================
   AMBIENT - motion-gated loops only: flow beads drift along 2 wires.
   (The LIVE pill dot already blips via the page's shared .m3-live rule.)
   Static fallback = frozen beads visible on the wires.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s4-bead{animation:m3s4Bead 1.5s linear infinite}
  .m3-s4-bg2 .m3-s4-bead{animation-duration:2.1s}
  @keyframes m3s4Bead{to{stroke-dashoffset:-.12}}
}

/* ==========================================================================
   TIER-2 - this band's scroll theatre, same support + media gates as the
   site block. Rewinds the finished state and hands it to the scroll:
   nodes pop station by station, wires draw between them, +ports and the
   add-slot land as their wire completes, beads arrive once their wire is
   live, the ledger deals in on the page's m3-r ladder and the runs
   counter counts to 268.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* idempotent restatement of the page's chapter timeline */
  .m3-band--green{view-timeline-name:--m3b}

  @keyframes m3s4NPop{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}
  @keyframes m3s4NDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3s4NFade{from{opacity:0}to{opacity:1}}
  @keyframes m3s4Runs{from{--m3s4n:0}to{--m3s4n:268}}

  /* nodes pop in chain order */
  .m3-s4-nn{animation:m3s4NPop linear both;animation-timeline:--m3b}
  .m3-s4-nn:nth-of-type(1){animation-range:entry 6% entry 26%}
  .m3-s4-nn:nth-of-type(2){animation-range:entry 12% entry 32%}
  .m3-s4-nn:nth-of-type(3){animation-range:entry 18% entry 38%}
  .m3-s4-nn:nth-of-type(4){animation-range:entry 24% entry 44%}
  .m3-s4-nn:nth-of-type(5){animation-range:entry 30% entry 50%}
  .m3-s4-nn:nth-of-type(6){animation-range:entry 36% entry 56%}
  .m3-s4-nn:nth-of-type(7){animation-range:entry 42% entry 62%}

  /* wires draw station to station (strokes carry pathLength="1") */
  .m3-s4-nw{stroke-dasharray:1;stroke-dashoffset:1;animation:m3s4NDraw linear both;animation-timeline:--m3b}
  .m3-s4-nw1{animation-range:entry 14% entry 30%}
  .m3-s4-nw2{animation-range:entry 20% entry 36%}
  .m3-s4-nw3{animation-range:entry 26% entry 42%}
  .m3-s4-nw4{animation-range:entry 32% entry 52%}
  .m3-s4-nw5{animation-range:entry 38% entry 58%}
  .m3-s4-nw6{animation-range:entry 44% entry 64%}

  /* +ports land as their wire completes; the add-slot lands last */
  .m3-s4-port{opacity:0;animation:m3s4NFade linear both;animation-timeline:--m3b}
  .m3-s4-pp1{animation-range:entry 28% entry 34%}
  .m3-s4-pp2{animation-range:entry 34% entry 40%}
  .m3-s4-pp3{animation-range:entry 40% entry 46%}
  .m3-s4-pp4{animation-range:entry 50% entry 56%}
  .m3-s4-pp5{animation-range:entry 56% entry 62%}
  .m3-s4-add{opacity:0;animation:m3s4NFade linear both;animation-timeline:--m3b;animation-range:entry 62% entry 72%}

  /* beads appear once their wire is live */
  .m3-s4-bg1{animation:m3s4NFade linear both;animation-timeline:--m3b;animation-range:entry 32% entry 44%}
  .m3-s4-bg2{animation:m3s4NFade linear both;animation-timeline:--m3b;animation-range:entry 52% entry 64%}

  /* the runs counter counts to 268 as the ledger lands */
  .m3-s4-rcount span{display:none}
  .m3-s4-rcount::after{counter-reset:m3s4n var(--m3s4n);content:counter(m3s4n);animation:m3s4Runs linear both;animation-timeline:--m3b;animation-range:entry 30% entry 85%}

}}


/* ==========================================================================
   BAND 04 - AUTOMATE round-3 (m3-s4b-*) - splice-ready fragment.
   Shane's calls: the dark n8n CANVAS grows to ~62-65% of the zone and gets
   DENSER - a THIRD chain lane (Review ask -> 3 days after -> Send link ->
   Replied? -> Thank you / dashed Nudge once), two big cross-lane sweeps so
   the machine reads as ONE living system, tiny mono sub-labels under three
   nodes (gmail.send / xero.invoice / wa.message), the truncating label
   renamed to "Confirm". The LEDGER keeps all 14 rows + the 268 foot but
   compacts to ~35% - ~.68rem type, tight rows, reduced padding.
   ZONE CONTRACT: the visual zone is EXACTLY 31rem tall at desktop (explicit
   height/min-height on the zone root at the band's 56.25em two-col break)
   at the band shell's unchanged column width. Zone = rows [canvas 1fr]
   [ledger auto]: the ledger takes its compact natural height, the canvas
   absorbs every remaining rem - nothing can clip, nothing overflows.
   Fresh m3-s4b- names throughout so surviving older m3-s4- rules find no
   targets. Band background (.m3-band--green) untouched. Static finished
   state FIRST (mobile / reduced-motion / no-support get drawn wires,
   frozen beads, visible ports, the static 268). Ambient loops are
   motion-gated; scroll theatre lives in this fragment's own copy of the
   site's tier-2 gate. No JS. rem/em units (vh only inside one fluid
   clamp, the page's own pattern). No em-dash anywhere.
   ========================================================================== */

/* the animated integer for the runs counter (engines without @property
   keep the static 268 numeral that stays in the markup) */
@property --m3s4br{syntax:"<integer>";initial-value:0;inherits:true}

/* ---- the visual zone: canvas over ledger. At the band's desktop break it
   locks to the 31rem contract; the ledger keeps its true natural height
   (flex:none - no track-sizing rounding) and the canvas absorbs every
   remaining rem, so nothing can clip. ---- */
.m3-s4b-zone{display:flex;flex-direction:column;gap:.8rem;width:100%;min-width:0}
.m3-s4b-led{flex:none}
@media (min-width:56.25em){
  .m3-s4b-zone{height:31rem;min-height:31rem}
  .m3-s4b-n8n{flex:1 1 0;min-height:0}
}

/* ==========================================================================
   (a) THE DARK n8n CANVAS - three chain lanes, denser, alive
   ========================================================================== */
.m3-s4b-n8n{display:grid;grid-template-rows:auto minmax(0,1fr);border:.0625rem solid #34383d;border-radius:.75rem;background:#17191c;overflow:hidden;min-width:0;box-shadow:0 .375rem 1.125rem rgba(11,15,12,.12),0 1.5rem 3.5rem rgba(11,15,12,.2)}
.m3-s4b-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .9rem;background:#121417;border-bottom:.0625rem solid #26292d}
.m3-s4b-bt{font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(214,219,224,.72)}
/* the shared LIVE pill re-tinted for the dark ground (band tokens are light) */
.m3-s4b-n8n .m3-live{background:rgba(31,209,95,.14);color:#1fd15f}

/* the editor ground: subtle dot-grid on near-black */
.m3-s4b-wrap{display:grid;min-height:0;min-width:0;padding:.85rem .75rem;background-image:radial-gradient(circle,#262b30 .0625rem,transparent .0938rem);background-size:1.1rem 1.1rem;background-position:.55rem .55rem}
/* mobile-first stage: nodes tile 2-up in chain order; wires, ports, the
   add-slot and absolute positioning arrive with the full canvas at 36em */
.m3-s4b-stage{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;min-height:0;min-width:0}
.m3-s4b-wires,.m3-s4b-port,.m3-s4b-add{display:none}

/* one node: dark rounded card, colourful chip, light mono name, status dot */
.m3-s4b-nn{position:relative;z-index:1;display:flex;align-items:center;gap:.45rem;padding:.42rem .55rem;border:.0625rem solid #34383d;border-radius:.55rem;background:#232629;box-shadow:0 .125rem .5rem rgba(0,0,0,.35);min-width:0;max-width:100%}
.m3-s4b-nn--t{border-radius:1.6rem .55rem .55rem 1.6rem;padding-left:.68rem}
.m3-s4b-tx{display:grid;gap:.13rem;min-width:0}
.m3-s4b-nn b{display:block;font-family:var(--ff-mono);font-weight:500;font-size:.5625rem;letter-spacing:.02em;line-height:1.3;color:#e6e9ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* the tiny mono sub-label - the n8n operation flavour */
.m3-s4b-sub{display:block;font-family:var(--ff-mono);font-weight:500;font-size:.4375rem;letter-spacing:.05em;line-height:1.25;color:#7d858d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s4b-nn>i{width:.3rem;height:.3rem;border-radius:50%;background:var(--green);flex:none;margin-left:.05rem}
/* the colourful icon chip - per-node hue via --cc / --cb inline vars */
.m3-s4b-chip{display:flex;align-items:center;justify-content:center;width:1.3rem;height:1.3rem;border-radius:.35rem;flex:none;color:var(--cc,#8b939b);background:var(--cb,rgba(139,147,155,.14))}
.m3-s4b-chip svg{width:.82rem;height:.82rem;display:block}

/* branch outcomes: mini mono pills - solid Thank you, dashed drafted Nudge */
.m3-s4b-out{display:flex;align-items:center;gap:.35rem;padding:.3rem .5rem;border:.0625rem solid #34383d;border-radius:.45rem;background:#232629;box-shadow:0 .125rem .5rem rgba(0,0,0,.35);font-family:var(--ff-mono);font-weight:500;font-size:.5rem;letter-spacing:.03em;line-height:1.3;color:#e6e9ec;white-space:nowrap;min-width:0;max-width:100%}
.m3-s4b-out i{width:.28rem;height:.28rem;border-radius:50%;background:var(--green);flex:none}
.m3-s4b-out--no{border:.09rem dashed #3f454c;background:transparent;box-shadow:none;color:#8b939b}
.m3-s4b-out--no i{background:#3f454c}

/* wire strokes: light curved connectors, one dashed no-leg, white beads */
.m3-s4b-w{stroke:#7a838d;stroke-width:.1rem;stroke-linecap:round;fill:none}
.m3-s4b-w--no{stroke-dasharray:.018 .014}
.m3-s4b-bead{stroke:rgba(255,255,255,.88);stroke-width:.18rem;stroke-linecap:round;stroke-dasharray:0 .12;fill:none}

/* the full canvas: 12 columns x 3 chain lanes (the third lane deeper for
   its fork), one absolute wire layer under the opaque nodes - the SVG
   speaks the same 0-100 space via preserveAspectRatio none +
   non-scaling-stroke, the page's own trick. Explicit per-node placement
   classes - no nth-of-type, stale-rule-proof. */
@media (min-width:36em){
  .m3-s4b-stage{grid-template-columns:repeat(12,1fr);grid-template-rows:1fr 1fr 1.45fr;gap:0;align-items:center;min-height:clamp(12rem,30vh,15rem)}
  .m3-s4b-wires{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0}
  .m3-s4b-nn{justify-self:center;translate:0 var(--dy,0rem)}
  .m3-s4b-p1{grid-area:1/1/2/4}
  .m3-s4b-p2{grid-area:1/4/2/7}
  .m3-s4b-p3{grid-area:1/7/2/10}
  .m3-s4b-p4{grid-area:1/10/2/13}
  .m3-s4b-p5{grid-area:2/1/3/4}
  .m3-s4b-p6{grid-area:2/4/3/7}
  .m3-s4b-p7{grid-area:2/7/3/10}
  .m3-s4b-p8{grid-area:3/1/4/4}
  .m3-s4b-p9{grid-area:3/4/4/7}
  .m3-s4b-p10{grid-area:3/7/4/10}
  .m3-s4b-p11{grid-area:3/10/4/13}
  /* fork outcomes ride the wire layer's coordinate space */
  .m3-s4b-out{position:absolute;z-index:1;translate:-50% -50%}
  /* small +ports riding the wire midpoints */
  .m3-s4b-port{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;width:.7rem;height:.7rem;border-radius:.2rem;background:#232629;border:.0625rem solid #34383d;color:#8b939b;transform:translate(-50%,-50%);font-family:var(--ff-mono);font-size:.5rem;font-weight:500;line-height:1}
  /* the dashed add-slot the money chain grows toward - the n8n read */
  .m3-s4b-add{grid-area:2/10/3/13;display:flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border:.09rem dashed #3f454c;border-radius:.4rem;color:#7d858d;font-family:var(--ff-mono);font-size:.8rem;font-weight:500;line-height:1;justify-self:center;translate:0 .3rem;position:relative;z-index:1}
}
/* at the band's two-col break the 31rem contract owns the height - the
   stage releases its floor and fills whatever the ledger leaves */
@media (min-width:56.25em){
  .m3-s4b-stage{min-height:0;height:100%}
}

/* ==========================================================================
   (b) THE LEDGER, COMPACT - same 14 rows + the 268 foot, ~35% of the zone:
   ~.68rem type, tight rows, trimmed padding
   ========================================================================== */
.m3-s4b-led{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:.55rem .85rem .5rem;min-width:0}
.m3-s4b-lhd{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.22rem;color:var(--muted-2)}
.m3-s4b-lhd .mono-sm{font-size:.5625rem;line-height:1.3}
.m3-s4b-cols{display:grid;gap:.8rem}
@media (min-width:30em){.m3-s4b-cols{grid-template-columns:1fr 1fr;gap:1.2rem}}
.m3-s4b-gh{display:flex;align-items:center;font-size:.5rem;line-height:1.3;color:var(--muted-2)}
.m3-s4b-gh::before{content:"";width:.9rem;height:.125rem;border-radius:.125rem;background:var(--green);margin-right:.45rem;flex:none}
.m3-s4b-led ul{list-style:none;margin:.08rem 0 0;padding:0}
.m3-s4b-led li{display:flex;align-items:center;gap:.45rem;padding-block:.08em;font-size:.6875rem;line-height:1.15}
.m3-s4b-led li + li{border-top:.0625rem solid var(--line)}
.m3-s4b-led li i{width:.3rem;height:.3rem;border-radius:50%;background:var(--green);flex:none}
.m3-s4b-led li span{flex:1;min-width:0;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s4b-led li em{font-style:normal;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.05em;color:var(--muted-2);font-variant-numeric:tabular-nums;flex:none;padding-left:.45rem}
.m3-s4b-foot{margin-top:.3rem;padding-top:.28rem;border-top:.0625rem solid var(--line);color:var(--muted-2);font-size:.5625rem;line-height:1.3}
.m3-s4b-foot b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

/* ==========================================================================
   AMBIENT - motion-gated loops only: beads drift along four live wires at
   staggered speeds, the three trigger dots pulse armed in a round. (The
   LIVE pill dot already blips via the page's shared .m3-live rule.)
   Static fallback = frozen beads visible on the wires.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference){
  .m3-s4b-bg1 .m3-s4b-bead{animation:m3s4bBead 1.4s linear infinite}
  .m3-s4b-bg2 .m3-s4b-bead{animation:m3s4bBead 2s linear infinite}
  .m3-s4b-bg3 .m3-s4b-bead{animation:m3s4bBead 1.7s linear infinite}
  .m3-s4b-bg4 .m3-s4b-bead{animation:m3s4bBead 2.6s linear infinite}
  @keyframes m3s4bBead{to{stroke-dashoffset:-.12}}
  .m3-s4b-nn--t>i{animation:m3s4bBlip 2.8s var(--ease) infinite}
  .m3-s4b-p5>i{animation-delay:.9s}
  .m3-s4b-p8>i{animation-delay:1.7s}
  @keyframes m3s4bBlip{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}55%{box-shadow:0 0 0 .35rem rgba(31,209,95,0)}}
}

/* ==========================================================================
   TIER-2 - this band's scroll theatre, same support + media gates as the
   site block. Rewinds the finished state and hands it to the scroll: the
   machine assembles lane by lane (nodes pop, wires draw station to
   station, the cross-lane sweeps dive between chains, ports land on the
   live wires, the add-slot and the fork outcomes arrive last), beads
   appear once their wire is live, the ledger deals in on the page's m3-r
   ladder and the runs counter counts to 268.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* idempotent restatement of the page's chapter timeline */
  .m3-band--green{view-timeline-name:--m3b}

  @keyframes m3s4bPop{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}
  @keyframes m3s4bDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes m3s4bFade{from{opacity:0}to{opacity:1}}
  @keyframes m3s4bRuns{from{--m3s4br:0}to{--m3s4br:268}}

  /* nodes pop in chain order, lane by lane */
  .m3-s4b-nn{animation:m3s4bPop linear both;animation-timeline:--m3b}
  .m3-s4b-p1{animation-range:entry 4% entry 18%}
  .m3-s4b-p2{animation-range:entry 8% entry 22%}
  .m3-s4b-p3{animation-range:entry 12% entry 26%}
  .m3-s4b-p4{animation-range:entry 16% entry 30%}
  .m3-s4b-p5{animation-range:entry 24% entry 38%}
  .m3-s4b-p6{animation-range:entry 28% entry 42%}
  .m3-s4b-p7{animation-range:entry 32% entry 46%}
  .m3-s4b-p8{animation-range:entry 42% entry 56%}
  .m3-s4b-p9{animation-range:entry 46% entry 60%}
  .m3-s4b-p10{animation-range:entry 50% entry 64%}
  .m3-s4b-p11{animation-range:entry 58% entry 70%}
  .m3-s4b-out{animation:m3s4bPop linear both;animation-timeline:--m3b}
  .m3-s4b-oy{animation-range:entry 64% entry 74%}
  .m3-s4b-on{animation-range:entry 68% entry 78%}

  /* wires draw station to station; the cross sweeps dive between lanes
     (strokes carry pathLength="1"); the dashed no-leg fades, never draws */
  .m3-s4b-dw1,.m3-s4b-dw2,.m3-s4b-dw3,.m3-s4b-dw4,.m3-s4b-dw5,.m3-s4b-dw6,.m3-s4b-dw7,.m3-s4b-dw8,.m3-s4b-dw9,.m3-s4b-dc1,.m3-s4b-dc2,.m3-s4b-dwy{stroke-dasharray:1;stroke-dashoffset:1;animation:m3s4bDraw linear both;animation-timeline:--m3b}
  .m3-s4b-dw1{animation-range:entry 6% entry 20%}
  .m3-s4b-dw2{animation-range:entry 10% entry 24%}
  .m3-s4b-dw3{animation-range:entry 14% entry 28%}
  .m3-s4b-dc1{animation-range:entry 20% entry 34%}
  .m3-s4b-dw4{animation-range:entry 26% entry 40%}
  .m3-s4b-dw5{animation-range:entry 30% entry 44%}
  .m3-s4b-dw6{animation-range:entry 34% entry 48%}
  .m3-s4b-dc2{animation-range:entry 38% entry 52%}
  .m3-s4b-dw7{animation-range:entry 46% entry 58%}
  .m3-s4b-dw8{animation-range:entry 50% entry 62%}
  .m3-s4b-dw9{animation-range:entry 54% entry 66%}
  .m3-s4b-dwy{animation-range:entry 62% entry 72%}
  .m3-s4b-fno{opacity:0;animation:m3s4bFade linear both;animation-timeline:--m3b;animation-range:entry 66% entry 76%}

  /* +ports land as their wire completes; the add-slot lands with lane 3 */
  .m3-s4b-port{opacity:0;animation:m3s4bFade linear both;animation-timeline:--m3b}
  .m3-s4b-q1{animation-range:entry 14% entry 20%}
  .m3-s4b-q2{animation-range:entry 22% entry 28%}
  .m3-s4b-q3{animation-range:entry 30% entry 36%}
  .m3-s4b-q4{animation-range:entry 34% entry 40%}
  .m3-s4b-q5{animation-range:entry 42% entry 48%}
  .m3-s4b-q6{animation-range:entry 48% entry 54%}
  .m3-s4b-q7{animation-range:entry 56% entry 62%}
  .m3-s4b-add{opacity:0;animation:m3s4bFade linear both;animation-timeline:--m3b;animation-range:entry 48% entry 58%}

  /* beads appear once their wire is live */
  .m3-s4b-bg1{animation:m3s4bFade linear both;animation-timeline:--m3b;animation-range:entry 22% entry 32%}
  .m3-s4b-bg2{animation:m3s4bFade linear both;animation-timeline:--m3b;animation-range:entry 44% entry 54%}
  .m3-s4b-bg4{animation:m3s4bFade linear both;animation-timeline:--m3b;animation-range:entry 54% entry 64%}
  .m3-s4b-bg3{animation:m3s4bFade linear both;animation-timeline:--m3b;animation-range:entry 58% entry 68%}

  /* the runs counter counts to 268 as the ledger lands */
  .m3-s4b-rcount span{display:none}
  .m3-s4b-rcount::after{counter-reset:m3s4br var(--m3s4br);content:counter(m3s4br);animation:m3s4bRuns linear both;animation-timeline:--m3b;animation-range:entry 30% entry 85%}

}}


/* ==========================================================================
   BAND 04 - AUTOMATE round-4 (m3-s4c ledger) - splice-ready fragment.
   Shane's round-4 call: "keep exact same design, just 30% less automations
   listed, so we can make the text of the ones left bigger within the
   container." LEDGER ONLY. The dark n8n CANVAS is untouched - its markup
   below is character-identical to round 3 and keeps riding the surviving
   m3-s4b-* rules (card styles, wires, beads, ambient blips, tier-2
   assembly). Only the LEDGER is rebuilt, on fresh m3-s4c-* names so the
   retired 14-row compact rules find no targets. Same card grammar
   throughout: mono TOP AUTOMATIONS / THIS WEEK head, green-dash group
   headers, green dots, hairline row rules, tabular mono counts, mono foot.
   Rows 14 -> 10 (5 per column); row type .6875rem -> .875rem with taller
   rows (.135em padding-block, 1.2 line-height) so the 10 rows FILL the
   same ledger footprint round 3 shipped (~10.78rem at desktop: 5 rows x
   1.28625rem + 4 hairlines = the exact height 7 rows x .9rem + 6 hairlines
   occupied) - the canvas keeps its identical share of the zone.
   FOOT RECOMPUTED HONESTLY: 46+38+31+15+12 = 142 service delivery,
   29+24+21+13+11 = 98 admin, 142+98 = 240 total. Foot reads
   "Runs this week: 214 - 0 needed a person".
   ZONE CONTRACT unchanged and restated idempotently: the zone root renders
   EXACTLY 31rem tall (explicit height + min-height) at the band's 56.25em
   two-col break, at the band shell's unchanged column width; the ledger
   takes its natural height (flex:none), the canvas absorbs every remaining
   rem - nothing clips, nothing overflows. Band background
   (.m3-band--green) untouched. Static finished state FIRST (mobile /
   reduced-motion / no-support get the static 240 and every row visible);
   the counter's scroll theatre lives in this fragment's own copy of the
   site's tier-2 gate; ledger rows deal in on the page's m3-r ladder.
   No JS. rem/em units only. No em-dash anywhere.
   ========================================================================== */

/* the animated integer for the runs counter (engines without @property
   keep the static 240 numeral that stays in the markup) */
@property --m3s4cr{syntax:"<integer>";initial-value:0;inherits:true}

/* ---- zone glue, restated idempotently with round 3's exact values:
   canvas over ledger; at the band's two-col break the 31rem contract owns
   the height - the new ledger keeps its true natural height and the
   canvas absorbs the rest, so the round-3 split survives untouched ---- */
.m3-s4b-zone{display:flex;flex-direction:column;gap:.8rem;width:100%;min-width:0}
@media (min-width:56.25em){
  .m3-s4b-zone{height:31rem;min-height:31rem}
  .m3-s4b-n8n{flex:1 1 0;min-height:0}
}

/* ==========================================================================
   THE LEDGER, round 4 - same grammar, ten bigger rows
   ========================================================================== */
.m3-s4c-led{flex:none;background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow-card);padding:.55rem .85rem .5rem;min-width:0}
.m3-s4c-lhd{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.22rem;color:var(--muted-2)}
.m3-s4c-lhd .mono-sm{font-size:.5625rem;line-height:1.3}
.m3-s4c-cols{display:grid;gap:.8rem}
@media (min-width:30em){.m3-s4c-cols{grid-template-columns:1fr 1fr;gap:1.2rem}}
.m3-s4c-gh{display:flex;align-items:center;font-size:.5rem;line-height:1.3;color:var(--muted-2)}
.m3-s4c-gh::before{content:"";width:.9rem;height:.125rem;border-radius:.125rem;background:var(--green);margin-right:.45rem;flex:none}
.m3-s4c-led ul{list-style:none;margin:.08rem 0 0;padding:0}
/* the upsized row: .875rem type on a 1.28625rem row - five of these plus
   four hairlines occupy the exact rows-block height round 3's seven did */
.m3-s4c-led li{display:flex;align-items:center;gap:.5rem;padding-block:.26em;font-size:.9rem;line-height:1.2}
.m3-s4c-led li + li{border-top:.0625rem solid var(--line)}
.m3-s4c-led li i{width:.35rem;height:.35rem;border-radius:50%;background:var(--green);flex:none}
.m3-s4c-led li span{flex:1;min-width:0;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m3-s4c-led li em{font-style:normal;font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.05em;color:var(--muted-2);font-variant-numeric:tabular-nums;flex:none;padding-left:.5rem}
.m3-s4c-foot{margin-top:.3rem;padding-top:.28rem;border-top:.0625rem solid var(--line);color:var(--muted-2);font-size:.5625rem;line-height:1.3}
.m3-s4c-foot b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

/* ==========================================================================
   TIER-2 - this fragment's own copy of the site's gate: the runs counter
   counts to the honest 240 as the ledger lands. (Canvas assembly + bead
   ambience keep riding the surviving round-3 m3-s4b rules; the ledger's
   rows deal in on the page's m3-r ladder.) Static fallback everywhere
   else = the 240 numeral in the markup, every row visible.
   ========================================================================== */
@supports (animation-timeline: view()){
@media (min-width:900px) and (min-height:700px) and (prefers-reduced-motion: no-preference){

  /* idempotent restatement of the page's chapter timeline */
  .m3-band--green{view-timeline-name:--m3b}

  @keyframes m3s4cRuns{from{--m3s4cr:0}to{--m3s4cr:214}}
  .m3-s4c-rcount span{display:none}
  .m3-s4c-rcount::after{counter-reset:m3s4cr var(--m3s4cr);content:counter(m3s4cr);animation:m3s4cRuns linear both;animation-timeline:--m3b;animation-range:entry 30% entry 85%}

}}


/* ==========================================================================
   DASHBOARD - 'Live OS' (dash-A), ported 2026-08-06, SCOPED under #dashboard.
   The mock is a standalone page shipping its own copy of the site base layer
   (:root palette, .section, .wrap, .rv...). Flat-pasted it would re-theme the
   whole site, so every selector is rewritten: :root/html/body -> #dashboard
   (palette + green ground cascade only inside), .js X -> .js #dashboard X,
   leading .section/.dashx compounds -> #dashboard, everything else prefixed.
   The mock's bare .section frame copy is dropped (the site provides it).
   @keyframes port verbatim - 40 names, zero collisions (checked).
   ========================================================================== */

/* ==========================================================================
   DASH MOCK A - "THE LIVE OPERATING SYSTEM"
   A stylised AIOS window on the bright-green ground. The 14-tab rail is the
   real menu; the main panel auto-demos each tab with an audited miniature
   of the real AIOS build.
   Site idiom throughout: .rv reveals, --d stagger, .mark sweep, mono labels.
   Self-contained: fonts embedded as data URIs, zero external requests.
   ========================================================================== */
@font-face{font-family:'Red Hat Display';font-style:normal;font-weight:400 800;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}
@font-face{font-family:'Red Hat Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}#dashboard{
  --green:#1fd15f;          /* the ground */
  --green-deep:#17b850;
  --green-t:#0C7A37;        /* text-green on light card grounds */
  --ink:#062b14;            /* primary ink ON GREEN - 7.6:1 */
  --ink-soft:#0A3D1F;       /* muted ink ON GREEN - 6.1:1 */
  --paper:#F7F7F3;          /* cream cards carry the dense content */
  --card:#FFFFFF;
  --card-ink:#0B0F0C;       /* site ink inside light cards */
  --card-muted:#4A544C;
  --line:#DFE1D6;
  --chrome:#07301B;         /* deep-green window chrome */
  --chrome-2:#0A3D1F;
  --chrome-line:rgba(234,255,241,.09);
  --chrome-txt:rgba(234,255,241,.68);
  --green-dim:rgba(31,209,95,.16);
  --amber:#8A5A14;--amber-bg:rgba(224,159,62,.16);
  --ff-display:'Red Hat Display',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --ff-body:'Red Hat Display',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --ff-mono:'Red Hat Mono','IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --wrap:77.5rem;
  --gut:clamp(1.25rem,5vw,4rem);
  --ease:cubic-bezier(.22,.61,.36,1);
  --radius:.75rem;
}#dashboard *, #dashboard *::before, #dashboard *::after{box-sizing:border-box}#dashboard{-webkit-text-size-adjust:100%}#dashboard, #dashboard h2, #dashboard h3, #dashboard p, #dashboard ul, #dashboard ol{margin:0}#dashboard ul, #dashboard ol{list-style:none;padding:0}#dashboard img, #dashboard svg{max-width:100%;display:block}#dashboard button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}#dashboard{
  background:var(--green);color:var(--ink);
  font-family:var(--ff-body);
  font-size:clamp(1rem,.96rem + .18vw,1.0625rem);
  line-height:1.65;letter-spacing:-.006em;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}#dashboard ::selection{background:var(--ink);color:var(--green)}#dashboard a:focus-visible, #dashboard button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}#dashboard .aios button:focus-visible{outline-color:var(--green)}

/* ---- type, site scale ---- */#dashboard .d2{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.9rem,1.25rem + 2.8vw,3.4rem);line-height:1.04;letter-spacing:-.028em}#dashboard .d3{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.3rem,1.1rem + .9vw,1.75rem);line-height:1.16;letter-spacing:-.02em}#dashboard .lede{font-size:clamp(1.0625rem,.99rem + .4vw,1.28rem);line-height:1.56;color:var(--ink-soft);letter-spacing:-.01em}#dashboard .mono{font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.5}#dashboard .mono-sm{font-family:var(--ff-mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.6}#dashboard .dot{display:inline-block;width:.4rem;height:.4rem;border-radius:50%;background:var(--paper);vertical-align:middle;margin-right:.55rem;flex:none}

/* the mark sweep, inverted for the green ground: a CREAM band under ink glyphs */#dashboard .mark{background-image:linear-gradient(var(--paper),var(--paper));background-repeat:no-repeat;background-size:100% .32em;background-position:0 74%;padding-inline:.08em;transition:background-size .9s var(--ease) .35s}.js #dashboard .rv:not(.in) .mark{background-size:0% .32em}

/* ---- layout ---- */#dashboard .wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}

/* ---- motion base (site .rv idiom) ---- */.js #dashboard .rv{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}#dashboard .rv.in{opacity:1;transform:none}

/* ==========================================================================
   SECTION HEAD
   ========================================================================== */#dashboard .dashx__eyebrow{display:flex;align-items:center;color:var(--ink-soft);margin-bottom:clamp(1.2rem,2.6vw,1.8rem)}#dashboard h2{max-width:22ch}#dashboard .dashx__lede{max-width:58ch;margin-top:1.1rem}

/* ==========================================================================
   THE OS WINDOW
   ========================================================================== */#dashboard .aios{margin-top:clamp(2.2rem,4.5vw,3.25rem);border-radius:var(--radius);overflow:hidden;background:var(--paper);border:1px solid rgba(4,32,15,.5);box-shadow:0 10px 26px rgba(4,32,15,.28),0 42px 110px rgba(4,32,15,.38)}#dashboard .aios__bar{display:flex;align-items:center;gap:.45rem;padding:.7rem .95rem;background:var(--chrome);border-bottom:1px solid var(--chrome-line)}#dashboard .aios__bar i{width:9px;height:9px;border-radius:50%;display:block;flex:none}#dashboard .aios__bar i:nth-of-type(1){background:#ff5f57}#dashboard .aios__bar i:nth-of-type(2){background:#febc2e}#dashboard .aios__bar i:nth-of-type(3){background:#28c840}#dashboard .aios__bar span{margin-left:.6rem;font-family:var(--ff-mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--chrome-txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .aios__live{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;padding:.26rem .6rem;border-radius:100px;background:var(--green-dim);color:var(--green);font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;flex:none}#dashboard .aios__live i{width:5px;height:5px;border-radius:50%;background:var(--green);display:block}#dashboard .aios__body{display:grid;grid-template-columns:13.5rem minmax(0,1fr);align-items:stretch}

/* ---- the rail: the real 14-tab menu ---- */#dashboard .aios__rail{display:flex;flex-direction:column;gap:.12rem;padding:.85rem .6rem;background:var(--chrome);border-right:1px solid var(--chrome-line);min-width:0}#dashboard .rrow{position:relative;display:flex;align-items:center;gap:.65rem;padding:.48rem .7rem;border-radius:.45rem;font-family:var(--ff-mono);font-size:.65rem;font-weight:500;letter-spacing:.11em;text-transform:uppercase;color:var(--chrome-txt);text-align:left;white-space:nowrap;transition:background .25s var(--ease),color .25s var(--ease);min-width:0}#dashboard .rrow svg{width:1.05rem;height:1.05rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}#dashboard .rrow em{font-style:normal;overflow:hidden;text-overflow:ellipsis;min-width:0}#dashboard .rrow:hover{color:#eafff1;background:rgba(234,255,241,.05)}#dashboard .rrow.is-on{background:var(--green-dim);color:var(--green)}
/* the auto-demo progress hairline under the active tab */#dashboard .rrow b{position:absolute;left:.7rem;right:.7rem;bottom:.16rem;height:2px;border-radius:2px;background:var(--green);transform:scaleX(0);transform-origin:left;display:block}.js #dashboard .rrow.is-on b{animation:railprog var(--dw,3.4s) linear both}#dashboard .aios--paused .rrow b{animation-play-state:paused}
@keyframes railprog{from{transform:scaleX(0)}to{transform:scaleX(1)}}#dashboard .rrow--off{opacity:.38;cursor:default;margin-top:.5rem;border-top:1px solid var(--chrome-line);border-radius:0;padding-top:.85rem}#dashboard .rrow--off:hover{background:none;color:var(--chrome-txt)}

/* ---- the main panel + panes ---- */#dashboard .aios__main{position:relative;background:var(--paper);min-width:0}#dashboard .apane{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:clamp(1.1rem,2.4vw,2rem);align-items:center;padding:clamp(1.2rem,2.6vw,2rem);border-bottom:1px solid var(--line)}#dashboard .apane:last-of-type{border-bottom:0}.js #dashboard .apane{position:absolute;inset:0;border-bottom:0;opacity:0;visibility:hidden;transform:translateY(12px)}.js #dashboard .apane.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}#dashboard .apane__k{color:var(--green-t);margin-bottom:.7rem;display:flex;align-items:center}#dashboard .apane__k .dot{background:var(--green)}#dashboard .apane__t{color:var(--card-ink);margin-bottom:.65rem}#dashboard .apane__b{color:var(--card-muted);font-size:clamp(.9rem,.87rem + .2vw,1rem);line-height:1.62;max-width:44ch}#dashboard .apane__list{margin-top:.9rem;display:grid;gap:.4rem}#dashboard .apane__list li{display:flex;align-items:center;gap:.55rem;font-family:var(--ff-mono);font-size:.625rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--green-t)}#dashboard .apane__list li::before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:var(--green);flex:none}

/* the Analytics pane is the hero: it gets the wider vis column */#dashboard .apane--an{grid-template-columns:minmax(0,1fr) minmax(0,1.85fr)}

/* ---- the miniature vis column: audited replicas of the real AIOS tabs ---- */#dashboard .apane__vis{min-width:0}#dashboard .apane__vis .mz{width:100%}

/* ==========================================================================
   THE ANALYTICS DRILL - the one tab that pays for the rest
   ========================================================================== */#dashboard .adrill{margin-top:clamp(1.4rem,3vw,2rem);background:var(--paper);border:1px solid rgba(4,32,15,.35);border-radius:var(--radius);box-shadow:0 6px 18px rgba(4,32,15,.2),0 26px 70px rgba(4,32,15,.26);padding:clamp(1.4rem,3vw,2.4rem)}#dashboard .adrill__k{color:var(--green-t);display:flex;align-items:center}#dashboard .adrill__k .dot{background:var(--green)}#dashboard .adrill__lede{color:var(--card-muted);font-size:clamp(.92rem,.89rem + .2vw,1.02rem);line-height:1.6;max-width:60ch;margin-top:.6rem}
/* the board rail: mini grouped view tabs + date-range cap, real AIOS in-tab grammar */#dashboard .adrill__rail{margin-top:clamp(1.1rem,2.4vw,1.6rem);display:flex;align-items:flex-end;gap:.9rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}#dashboard .adrill__groups{display:flex;align-items:flex-end;gap:.95rem;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}#dashboard .adrill__groups::-webkit-scrollbar{display:none}#dashboard .adrill__g{display:inline-flex;flex-direction:column;gap:.3rem;flex:none}#dashboard .adrill__g > i{font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--card-muted);opacity:.7}#dashboard .adrill__tabs{display:inline-flex;gap:.65rem}#dashboard .adrill__tab{position:relative;font-family:var(--ff-mono);font-size:.5625rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--card-muted);padding-bottom:.32rem;white-space:nowrap}#dashboard .adrill__tab.is-on{color:var(--card-ink)}#dashboard .adrill__tab.is-on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--green)}#dashboard .adrill__vsep{flex:none;width:1px;height:1.15rem;background:var(--line);margin-bottom:.1rem}#dashboard .adrill__range{flex:none;font-family:var(--ff-mono);font-size:.5rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--card-ink);background:var(--card);border:1px solid var(--line);border-radius:100px;padding:.34rem .65rem;white-space:nowrap}
/* the KPI pill row: 3px accent stripe + tracked mono label + display value + delta */#dashboard .adrill__stats{margin-top:clamp(.9rem,2vw,1.25rem);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.6rem,1.4vw,.9rem)}#dashboard .astat{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:.6rem;padding:.8rem .9rem .75rem}#dashboard .astat::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--green)}#dashboard .astat--amb::before{background:#E09F3E}#dashboard .astat em{display:block;font-style:normal;font-family:var(--ff-mono);font-size:.5rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--card-muted);padding-bottom:.5rem;margin-bottom:.55rem;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .astat b{display:block;font-family:var(--ff-display);font-weight:800;font-size:clamp(1.35rem,1rem + 1.5vw,2.05rem);line-height:1;letter-spacing:-.03em;color:var(--card-ink);font-variant-numeric:tabular-nums}#dashboard .astat__d{display:block;margin-top:.45rem;font-family:var(--ff-mono);font-size:.5rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-t)}#dashboard .astat__d--amb{color:var(--amber)}
/* the source table: compact sortable look; scrolls inside the card on mobile */#dashboard .adrill__tablewrap{margin-top:clamp(.9rem,2vw,1.25rem);overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:.6rem}#dashboard .adrill__table{min-width:34rem}#dashboard .adrill__tr{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr) minmax(0,1.15fr) minmax(0,1.15fr);align-items:center;gap:.7rem;padding:0 1rem}#dashboard .adrill__th{border-bottom:1px solid var(--line)}#dashboard .adrill__th span{font-family:var(--ff-mono);font-size:.5rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--card-muted);padding:.6rem 0;white-space:nowrap}#dashboard .adrill__th .arr{opacity:.5}#dashboard .adrill__th .is-sort{color:var(--green-t)}#dashboard .adrill__th .is-sort .arr{opacity:1}#dashboard .adrill__row{border-top:1px solid rgba(6,43,20,.055)}#dashboard .adrill__row > span{font-family:var(--ff-display);font-size:.78rem;font-weight:600;color:var(--card-ink);padding:.55rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}#dashboard .adrill__num{text-align:right}#dashboard .adrill__row .adrill__num{font-family:var(--ff-mono);font-weight:500;font-size:.72rem;font-variant-numeric:tabular-nums}#dashboard .adrill__chip{display:inline-block;font-family:var(--ff-mono);font-size:.5rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.24rem .55rem;border-radius:100px;color:var(--green-t);background:rgba(31,209,95,.12);border:1px solid rgba(31,209,95,.35)}#dashboard .adrill__chip--amb{color:var(--amber);background:var(--amber-bg);border-color:rgba(224,159,62,.4)}#dashboard .adrill__chip--dim{color:var(--card-muted);background:rgba(6,43,20,.05);border-color:var(--line)}
@media (max-width:640px){#dashboard .adrill__stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:no-preference){#dashboard .adrill__row{animation:adrillsweep 8s ease-in-out infinite;animation-delay:calc(var(--i,0)*2s)}#dashboard .adrill__tab.is-on::after{animation:adrillind 3s ease-in-out infinite}
}
@keyframes adrillsweep{0%,86%,100%{background-color:transparent}90%,95%{background-color:rgba(31,209,95,.08)}}
@keyframes adrillind{0%,100%{opacity:1}50%{opacity:.45}}

/* ---- closing ---- */#dashboard .dashx__punch{margin-top:clamp(2.4rem,5vw,3.6rem);font-family:var(--ff-display);font-weight:800;font-size:clamp(1.5rem,1.15rem + 1.6vw,2.3rem);line-height:1.12;letter-spacing:-.025em;color:var(--ink);max-width:24ch}#dashboard .dashx__foot{margin-top:1.1rem;color:var(--ink-soft);display:flex;align-items:center}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:900px){#dashboard .apane, #dashboard .apane--an{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){#dashboard .aios__body{grid-template-columns:3.1rem minmax(0,1fr)}#dashboard .aios__rail{padding:.7rem .35rem}#dashboard .rrow{justify-content:center;padding:.52rem .4rem;gap:0}#dashboard .rrow em{display:none}#dashboard .rrow b{left:.45rem;right:.45rem}#dashboard .rrow--off{padding-top:.8rem}
}

/* ==========================================================================
   MOTION SAFETY - JS off keeps content; reduced motion kills all movement
   ========================================================================== */
@media (prefers-reduced-motion:reduce){#dashboard *, #dashboard *::before, #dashboard *::after{animation:none!important;transition:none!important}.js #dashboard .rv{opacity:1;transform:none}#dashboard .mark, .js #dashboard .rv:not(.in) .mark{background-size:100% .32em}
}#dashboard .mz-quantum{--ff-mono:'Red Hat Mono',ui-monospace,'SF Mono',Menlo,monospace;--ff-display:'Red Hat Display',-apple-system,'Helvetica Neue',system-ui,sans-serif;
                position:relative;width:100%;height:100%;min-height:280px;display:flex;flex-direction:column;overflow:hidden;
                background:#F7F7F3;border:1px solid rgba(6,43,20,.1);border-radius:10px;padding:10px 12px;box-sizing:border-box}#dashboard .mz-quantum *{box-sizing:border-box}#dashboard .mz-quantum .mzq-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}#dashboard .mz-quantum .mzq-kick{font:700 8px/1 var(--ff-mono);letter-spacing:.22em;color:#15a34a}#dashboard .mz-quantum .mzq-pills{display:flex;gap:4px}#dashboard .mz-quantum .pl{display:inline-flex;align-items:center;gap:3px;font:600 6px/1 var(--ff-mono);letter-spacing:.12em;color:#0e7a36;
                background:rgba(31,209,95,.09);border:1px solid rgba(21,163,74,.28);border-radius:999px;padding:2px 5px}#dashboard .mz-quantum .pl .d{width:3px;height:3px;border-radius:50%;background:#1fd15f}#dashboard .mz-quantum .mzq-body{flex:1;display:flex;gap:12px;align-items:center;justify-content:center;min-height:0}#dashboard .mz-quantum .mzq-orbwrap{flex:none;width:44%;max-width:190px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}#dashboard .mz-quantum .mzq-orb{width:100%;height:auto;display:block}#dashboard .mz-quantum .mzq-cog{font:600 6px/1 var(--ff-mono);letter-spacing:.1em;color:rgba(6,43,20,.45);white-space:nowrap;overflow:hidden;max-width:100%}#dashboard .mz-quantum .mzq-cog em{font-style:normal;color:#0e7a36;font-weight:700}#dashboard .mz-quantum .mzq-chat{flex:1;max-width:290px;display:flex;flex-direction:column;gap:5px;justify-content:center;min-width:0}#dashboard .mz-quantum .mzq-msg{border-radius:8px;padding:5px 8px;display:flex;flex-direction:column;gap:2px;min-width:0}#dashboard .mz-quantum .mzq-msg i{font:700 5.5px/1 var(--ff-mono);font-style:normal;letter-spacing:.16em}#dashboard .mz-quantum .mzq-msg b{font:700 8.5px/1.25 var(--ff-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-quantum .mzq-msg--you{background:#fff;border:1px solid rgba(6,43,20,.1);align-self:flex-end;max-width:88%}#dashboard .mz-quantum .mzq-msg--you i{color:rgba(6,43,20,.45)}#dashboard .mz-quantum .mzq-msg--you b{color:#062b14}#dashboard .mz-quantum .mzq-msg--q{background:#07301B;align-self:flex-start;max-width:96%}#dashboard .mz-quantum .mzq-msg--q i{color:#a8ffc8}#dashboard .mz-quantum .mzq-msg--q b{color:rgba(234,255,241,.9)}#dashboard .mz-quantum .cur{display:inline-block;width:4px;height:8px;margin-left:2px;background:#26ff76;vertical-align:-1px}#dashboard .mz-quantum .mzq-composer{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid rgba(21,163,74,.35);border-radius:999px;padding:5px 9px}#dashboard .mz-quantum .mic{flex:none;width:5px;height:8px;border:1px solid #15a34a;border-radius:3px;position:relative}#dashboard .mz-quantum .mic::after{content:"";position:absolute;left:50%;bottom:-3px;width:1px;height:2px;background:#15a34a;transform:translateX(-50%)}#dashboard .mz-quantum .ph{flex:1;font:600 6.5px/1 var(--ff-mono);letter-spacing:.16em;color:rgba(6,43,20,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-quantum .send{flex:none;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;
                background:#1fd15f;color:#07301B;font:800 8px/1 var(--ff-display)}
              @media (max-width:420px){#dashboard .mz-quantum{min-height:240px;padding:9px 10px}#dashboard .mz-quantum .mzq-body{gap:7px}#dashboard .mz-quantum .mzq-orbwrap{width:38%}#dashboard .mz-quantum .mzq-cog{display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-quantum .ring--spin{animation:mzq-spin 14s linear infinite;transform-origin:0 0}#dashboard .mz-quantum .soulpulse{animation:mzq-soulpulse 2.6s ease-out infinite}#dashboard .mz-quantum .soulcore{animation:mzq-breathe 2.6s ease-in-out infinite}#dashboard .mz-quantum .cur{animation:mzq-cursor 1s steps(2) infinite}#dashboard .mz-quantum .pl .d{animation:mzq-blink 2.2s ease-in-out infinite}
              }
              @keyframes mzq-spin{to{transform:rotate(360deg)}}
              @keyframes mzq-soulpulse{0%{r:24px;opacity:.8}100%{r:46px;opacity:0}}
              @keyframes mzq-breathe{0%,100%{opacity:.9}50%{opacity:1}}
              @keyframes mzq-cursor{0%,100%{opacity:1}50%{opacity:0}}
              @keyframes mzq-blink{0%,100%{opacity:1}50%{opacity:.35}}#dashboard .mz-dashboard{--c-dark:#07301B;--c-dark2:#0A3D1F;--c-cream:#F7F7F3;--c-card:#fff;--c-green:#1fd15f;--c-gdeep:#0f8a41;--c-ink:#062b14;--c-dim:rgba(6,43,20,.52);--c-lite:rgba(234,255,241,.85);--mono:var(--ff-mono,ui-monospace,"SF Mono",Menlo,Consolas,monospace);--disp:var(--ff-display,"Helvetica Neue",Helvetica,Arial,sans-serif);
                width:100%;height:100%;min-height:280px;box-sizing:border-box;display:flex;flex-direction:column;gap:7px;
                background:var(--c-cream);border:1px solid rgba(6,43,20,.08);border-radius:12px;padding:8px;overflow:hidden;
                font-family:var(--mono);color:var(--c-ink)}#dashboard .mz-dashboard *{box-sizing:border-box}#dashboard .mz-dashboard .mzd-chrome{flex:none;display:flex;align-items:center;gap:6px;background:var(--c-dark);border-radius:7px;
                padding:5px 9px;color:var(--c-lite);font-size:7px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}#dashboard .mz-dashboard .mzd-chrome i{width:5px;height:5px;border-radius:50%;background:var(--c-green);flex:none}#dashboard .mz-dashboard .mzd-chrome span{margin-left:auto;opacity:.65;letter-spacing:.1em}#dashboard .mz-dashboard .mzd-kpis{flex:none;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}#dashboard .mz-dashboard .mzd-kpi{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;padding:7px 8px 5px;
                display:flex;flex-direction:column;gap:3px;min-width:0}#dashboard .mz-dashboard .mzd-kpi em{font-style:normal;font-size:7px;letter-spacing:.13em;color:var(--c-dim);text-transform:uppercase;white-space:nowrap}#dashboard .mz-dashboard .mzd-kpi .num{font-family:var(--disp);font-size:15px;font-weight:700;letter-spacing:-.02em;line-height:1;
                display:flex;align-items:baseline;gap:5px}#dashboard .mz-dashboard .mzd-kpi .num s{text-decoration:none;font-family:var(--mono);font-size:7px;font-weight:700;color:var(--c-gdeep)}#dashboard .mz-dashboard .mzd-kpi svg{width:100%;height:15px;display:block;margin-top:2px}#dashboard .mz-dashboard .mzd-kpi svg path{fill:none;stroke:var(--c-green);stroke-width:2.4;stroke-linecap:round}#dashboard .mz-dashboard .mzd-mid{flex:1;display:grid;grid-template-columns:1.12fr 1fr;gap:7px;min-height:0}#dashboard .mz-dashboard .mzd-panel{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;padding:7px 8px;
                display:flex;flex-direction:column;gap:5px;min-height:0;overflow:hidden}#dashboard .mz-dashboard .mzd-panel h4{margin:0;font-size:7px;font-weight:700;letter-spacing:.15em;color:var(--c-dim);text-transform:uppercase;
                display:flex;justify-content:space-between;font-family:var(--mono)}#dashboard .mz-dashboard .mzd-panel h4 b{color:var(--c-gdeep);font-weight:700}#dashboard .mz-dashboard .mzd-flow{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;gap:4px;min-height:0}#dashboard .mz-dashboard .mzd-frow{display:flex;flex-direction:column;gap:2px}#dashboard .mz-dashboard .mzd-frow .fh{display:flex;justify-content:space-between;font-size:7px;color:var(--c-dim);letter-spacing:.08em}#dashboard .mz-dashboard .mzd-frow .fh b{color:var(--c-ink)}#dashboard .mz-dashboard .mzd-bar{height:6px;border-radius:4px;background:rgba(6,43,20,.07);overflow:hidden}#dashboard .mz-dashboard .mzd-fill{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--c-gdeep),var(--c-green))}#dashboard .mz-dashboard .mzd-feed{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;gap:4px;min-height:0}#dashboard .mz-dashboard .mzd-row{display:flex;align-items:center;gap:5px;padding:4px 6px;border-radius:6px;
                background:rgba(6,43,20,.035);font-size:7.5px;letter-spacing:.04em}#dashboard .mz-dashboard .mzd-row i{width:5px;height:5px;border-radius:50%;background:var(--c-green);flex:none}#dashboard .mz-dashboard .mzd-row b{font-weight:700}#dashboard .mz-dashboard .mzd-row span{margin-left:auto;color:var(--c-dim);font-size:7px;white-space:nowrap}
              @media (max-width:420px){#dashboard .mz-dashboard .mzd-kpis{grid-template-columns:repeat(2,1fr)}#dashboard .mz-dashboard .mzd-kpi:nth-child(3){display:none}#dashboard .mz-dashboard .mzd-mid{grid-template-columns:1fr}#dashboard .mz-dashboard .mzd-panel--flow{display:none}#dashboard .mz-dashboard .mzd-row:nth-child(n+5){display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-dashboard .mzd-kpi svg path{stroke-dasharray:100;animation:mzdash-spark 4.2s ease-in-out infinite}#dashboard .mz-dashboard .mzd-kpi:nth-child(2) svg path{animation-delay:.5s}#dashboard .mz-dashboard .mzd-kpi:nth-child(3) svg path{animation-delay:1s}#dashboard .mz-dashboard .mzd-row{animation:mzdash-rowglow 7.5s linear infinite}#dashboard .mz-dashboard .mzd-row:nth-child(2){animation-delay:1.5s}#dashboard .mz-dashboard .mzd-row:nth-child(3){animation-delay:3s}#dashboard .mz-dashboard .mzd-row:nth-child(4){animation-delay:4.5s}#dashboard .mz-dashboard .mzd-row:nth-child(5){animation-delay:6s}#dashboard .mz-dashboard .mzd-chrome i{animation:mzdash-blink 2.4s ease-in-out infinite}
              }
              @keyframes mzdash-spark{0%{stroke-dashoffset:100}45%,100%{stroke-dashoffset:0}}
              @keyframes mzdash-rowglow{0%,3%{background:rgba(31,209,95,.16)}12%,100%{background:rgba(6,43,20,.035)}}
              @keyframes mzdash-blink{0%,100%{opacity:1}50%{opacity:.45}}
              

              /* mz-analytics - miniature replica of the CR AIOS Analytics tab
                 (vtab rail + stat pills + sales tablecard). All selectors scoped .mz-analytics. */#dashboard .mz-analytics{
                --mzm: var(--ff-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);
                --mzd: var(--ff-display, -apple-system, "SF Pro Display", "Segoe UI", sans-serif);
                --mz-ink:#062b14;
                --mz-dim:rgba(6,43,20,.52);
                --mz-mute:rgba(6,43,20,.72);
                --mz-line:rgba(6,43,20,.10);
                --mz-line2:rgba(6,43,20,.055);
                --mz-green:#1fd15f;
                --mz-gink:#0e7a36;
                --mz-gsoft:rgba(31,209,95,.10);
                width:100%;box-sizing:border-box;
                background:#F7F7F3;border:1px solid var(--mz-line);border-radius:14px;
                padding:11px 12px 10px;overflow:hidden;
                font-family:var(--mzm);color:var(--mz-ink);
                -webkit-font-smoothing:antialiased;
              }#dashboard .mz-analytics *{box-sizing:border-box;margin:0;padding:0}

              /* ---- in-tab view rail (real: .views > .vgroup > .vtab + kpi-range) ---- */#dashboard .mz-analytics .anx-rail{position:relative;display:flex;align-items:flex-end;gap:8px;
                padding-bottom:7px;border-bottom:1px solid var(--mz-line2);margin-bottom:9px}#dashboard .mz-analytics .anx-scroll{display:flex;align-items:flex-end;gap:9px;flex:1 1 auto;
                min-width:0;overflow:hidden;white-space:nowrap;
                -webkit-mask-image:linear-gradient(90deg,#000 78%,transparent 99%);
                mask-image:linear-gradient(90deg,#000 78%,transparent 99%)}#dashboard .mz-analytics .anx-g{display:inline-flex;flex-direction:column;gap:3px;flex:0 0 auto}#dashboard .mz-analytics .anx-g > i{font-style:normal;font-size:7px;font-weight:700;
                letter-spacing:.18em;color:var(--mz-dim)}#dashboard .mz-analytics .anx-tabs{display:inline-flex;gap:8px}#dashboard .mz-analytics .anx-tab{position:relative;font-size:8px;font-weight:700;
                letter-spacing:.12em;color:var(--mz-mute);padding-bottom:3px}#dashboard .mz-analytics .anx-tab.is-on{color:var(--mz-ink)}#dashboard .mz-analytics .anx-tab.is-on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;
                height:2px;border-radius:2px;background:var(--mz-green)}#dashboard .mz-analytics .anx-vsep{flex:0 0 1px;width:1px;height:16px;background:var(--mz-line);align-self:flex-end}#dashboard .mz-analytics .anx-range{flex:0 0 auto;font-size:7px;font-weight:700;letter-spacing:.13em;
                color:var(--mz-mute);background:#fff;border:1px solid var(--mz-line);border-radius:6px;
                padding:4px 7px;align-self:center}#dashboard .mz-analytics .anx-range b{color:var(--mz-ink);font-weight:700}

              /* ---- section head (real: .aview__head - accent bar + label + SOURCE) ---- */#dashboard .mz-analytics .anx-head{display:flex;justify-content:space-between;align-items:baseline;
                gap:8px;margin:0 1px 6px}#dashboard .mz-analytics .anx-lab{display:inline-flex;align-items:center;gap:6px;font-size:8.5px;
                font-weight:700;letter-spacing:.16em;color:var(--mz-ink)}#dashboard .mz-analytics .anx-lab .anx-bar{width:14px;height:3px;border-radius:2px;background:var(--mz-green)}#dashboard .mz-analytics .anx-src{font-size:7px;letter-spacing:.1em;color:var(--mz-dim);
                white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}#dashboard .mz-analytics .anx-live{display:inline-flex;align-items:center;gap:3px;font-size:7px;
                font-weight:700;letter-spacing:.14em;color:var(--mz-gink);background:var(--mz-gsoft);
                border:1px solid rgba(21,163,74,.34);border-radius:4px;padding:2px 5px;margin-left:6px}#dashboard .mz-analytics .anx-live::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--mz-green)}

              /* ---- KPI stat pills (real: .stats > .stat - top accent stripe, em label, b value) ---- */#dashboard .mz-analytics .anx-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}#dashboard .mz-analytics .anx-stat{position:relative;overflow:hidden;background:#fff;
                border:1px solid var(--mz-line);border-radius:9px;padding:7px 8px 6px;
                box-shadow:0 1px 2px rgba(6,43,20,.04)}#dashboard .mz-analytics .anx-stat::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--mz-green)}#dashboard .mz-analytics .anx-stat em{display:block;font-style:normal;font-size:7px;font-weight:700;
                letter-spacing:.15em;color:var(--mz-gink);border-bottom:1px solid rgba(31,209,95,.24);
                padding-bottom:4px;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-analytics .anx-stat b{font-family:var(--mzd);font-size:14px;font-weight:700;
                letter-spacing:-.01em;line-height:1;color:var(--mz-ink)}#dashboard .mz-analytics .anx-stat .anx-d{font-family:var(--mzm);font-size:7px;font-weight:700;
                color:var(--mz-gink);margin-left:4px}

              /* ---- tablecard (real: .tablecard table - sortable head, zebra, chips, tfoot) ---- */#dashboard .mz-analytics .anx-card{background:#fff;border:1px solid var(--mz-line);border-radius:9px;
                overflow:hidden;box-shadow:0 1px 2px rgba(6,43,20,.04)}#dashboard .mz-analytics .anx-tr{display:grid;grid-template-columns:1.5fr .95fr .7fr .55fr .7fr;
                align-items:center;gap:6px;padding:0 9px}#dashboard .mz-analytics .anx-th{border-bottom:1px solid var(--mz-line)}#dashboard .mz-analytics .anx-th span{font-size:7px;font-weight:700;letter-spacing:.13em;
                color:var(--mz-mute);padding:6px 0}#dashboard .mz-analytics .anx-th .arr{font-size:7px;color:var(--mz-dim);opacity:.6}#dashboard .mz-analytics .anx-th .is-sort{color:var(--mz-gink)}#dashboard .mz-analytics .anx-th .is-sort .arr{color:var(--mz-gink);opacity:1}#dashboard .mz-analytics .anx-row{border-bottom:1px solid var(--mz-line2)}#dashboard .mz-analytics .anx-row:nth-child(odd){background:rgba(6,43,20,.025)}#dashboard .mz-analytics .anx-row span{font-family:var(--mzd);font-size:8.5px;font-weight:600;
                color:var(--mz-ink);padding:5.5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-analytics .num{text-align:right;font-family:var(--mzm) !important;font-size:8px !important;font-weight:500}#dashboard .mz-analytics .anx-chip{display:inline-block;font-family:var(--mzm);font-size:7px;font-weight:700;
                letter-spacing:.08em;border-radius:3px;padding:2px 4px;border:1px solid;line-height:1}#dashboard .mz-analytics .anx-chip--warn{color:#9a4b07;background:rgba(180,83,9,.08);border-color:rgba(180,83,9,.28)}#dashboard .mz-analytics .anx-chip--info{color:#1d4ed8;background:rgba(29,78,216,.06);border-color:rgba(29,78,216,.24)}#dashboard .mz-analytics .anx-chip--dim{color:var(--mz-mute);background:rgba(6,43,20,.05);border-color:var(--mz-line)}#dashboard .mz-analytics .anx-ft{background:rgba(6,43,20,.04);border-top:1px solid var(--mz-line)}#dashboard .mz-analytics .anx-ft span{font-family:var(--mzm);font-size:7px;font-weight:700;
                letter-spacing:.09em;color:var(--mz-mute);padding:5px 0;white-space:nowrap;
                overflow:hidden;text-overflow:ellipsis}#dashboard .mz-analytics .anx-ft span:first-child{color:var(--mz-gink)}#dashboard .mz-analytics .anx-meta{display:flex;justify-content:space-between;gap:8px;
                font-size:7px;letter-spacing:.11em;color:var(--mz-dim);margin:5px 2px 0}

              /* narrow pane: drop OWNER column + the range chip, compress vertical rhythm */
              @media(max-width:400px){#dashboard .mz-analytics{padding:9px 10px 8px}#dashboard .mz-analytics .anx-tr{grid-template-columns:1.5fr .95fr .7fr .55fr}#dashboard .mz-analytics .anx-c-own{display:none}#dashboard .mz-analytics .anx-range{display:none}#dashboard .mz-analytics .anx-src{display:none}#dashboard .mz-analytics .anx-meta{display:none}#dashboard .mz-analytics .anx-rail{padding-bottom:5px;margin-bottom:7px}#dashboard .mz-analytics .anx-head{margin-bottom:4px}#dashboard .mz-analytics .anx-stats{margin-bottom:7px;gap:6px}#dashboard .mz-analytics .anx-stat{padding:5px 7px 5px}#dashboard .mz-analytics .anx-stat em{padding-bottom:3px;margin-bottom:4px}#dashboard .mz-analytics .anx-stat b{font-size:12px}#dashboard .mz-analytics .anx-row span{padding:4px 0}#dashboard .mz-analytics .anx-th span{padding:5px 0}#dashboard .mz-analytics .anx-ft span{padding:4px 0}
              }

              /* ---- motion: row highlight sweep + active-tab indicator pulse ---- */
              @media(prefers-reduced-motion:no-preference){#dashboard .mz-analytics .anx-row{animation:mzanx-sweep 7.5s ease-in-out infinite;
                  animation-delay:calc(var(--i) * 1.5s)}#dashboard .mz-analytics .anx-tab.is-on::after{animation:mzanx-ind 3s ease-in-out infinite}
              }
              @keyframes mzanx-sweep{
                0%{background-color:rgba(6,43,20,0)}
                4%{background-color:rgba(31,209,95,.16)}
                17%{background-color:rgba(6,43,20,0)}
                100%{background-color:rgba(6,43,20,0)}
              }
              @keyframes mzanx-ind{
                0%,100%{opacity:1}
                50%{opacity:.45}
              }#dashboard .mz-marketing{--c-dark:#07301B;--c-cream:#F7F7F3;--c-card:#fff;--c-green:#1fd15f;--c-gdeep:#0f8a41;--c-ink:#062b14;--c-dim:rgba(6,43,20,.52);--c-lite:rgba(234,255,241,.85);--mono:var(--ff-mono,ui-monospace,"SF Mono",Menlo,Consolas,monospace);--disp:var(--ff-display,"Helvetica Neue",Helvetica,Arial,sans-serif);
                width:100%;height:100%;min-height:280px;box-sizing:border-box;display:flex;flex-direction:column;gap:7px;
                background:var(--c-cream);border:1px solid rgba(6,43,20,.08);border-radius:12px;padding:8px;overflow:hidden;
                font-family:var(--mono);color:var(--c-ink)}#dashboard .mz-marketing *{box-sizing:border-box}#dashboard .mz-marketing .mzm-chrome{flex:none;display:flex;align-items:center;gap:6px;background:var(--c-dark);border-radius:7px;
                padding:5px 9px;color:var(--c-lite);font-size:7px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}#dashboard .mz-marketing .mzm-chrome i{width:5px;height:5px;border-radius:50%;background:var(--c-green);flex:none}#dashboard .mz-marketing .mzm-chrome span{margin-left:auto;opacity:.65;letter-spacing:.1em}#dashboard .mz-marketing .mzm-chips{flex:none;display:flex;gap:4px}#dashboard .mz-marketing .mzm-chip{font-size:7px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-dim);
                background:rgba(6,43,20,.05);border-radius:20px;padding:3px 8px;white-space:nowrap}#dashboard .mz-marketing .mzm-chip.is-on{background:var(--c-dark);color:var(--c-lite)}#dashboard .mz-marketing .mzm-cards{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:7px}#dashboard .mz-marketing .mzm-camp{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-left:3px solid var(--c-green);
                border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:4px;min-width:0}#dashboard .mz-marketing .mzm-camp .ct{display:flex;align-items:center;justify-content:space-between;gap:5px}#dashboard .mz-marketing .mzm-camp .ct b{font-family:var(--disp);font-size:9px;font-weight:700;letter-spacing:.02em;white-space:nowrap}#dashboard .mz-marketing .mzm-live{font-size:6.5px;font-weight:700;letter-spacing:.14em;color:var(--c-gdeep);display:flex;align-items:center;gap:3px}#dashboard .mz-marketing .mzm-live i{width:4px;height:4px;border-radius:50%;background:var(--c-green)}#dashboard .mz-marketing .mzm-camp .cs{display:flex;gap:8px}#dashboard .mz-marketing .mzm-camp .cs span{display:flex;flex-direction:column;gap:1px}#dashboard .mz-marketing .mzm-camp .cs em{font-style:normal;font-size:6.5px;letter-spacing:.1em;color:var(--c-dim);text-transform:uppercase}#dashboard .mz-marketing .mzm-camp .cs b{font-family:var(--disp);font-size:10.5px;font-weight:700}#dashboard .mz-marketing .mzm-panel{flex:1;background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;
                padding:7px 9px;display:flex;flex-direction:column;gap:6px;min-height:0;overflow:hidden}#dashboard .mz-marketing .mzm-panel h4{margin:0;font-size:7px;font-weight:700;letter-spacing:.15em;color:var(--c-dim);
                text-transform:uppercase;display:flex;justify-content:space-between}#dashboard .mz-marketing .mzm-panel h4 b{color:var(--c-gdeep)}#dashboard .mz-marketing .mzm-srows{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;gap:6px;min-height:0}#dashboard .mz-marketing .mzm-srow{display:flex;flex-direction:column;gap:2px}#dashboard .mz-marketing .mzm-srow .sh{display:flex;justify-content:space-between;font-size:7px;letter-spacing:.08em;color:var(--c-dim)}#dashboard .mz-marketing .mzm-srow .sh b{color:var(--c-ink)}#dashboard .mz-marketing .mzm-track{height:9px;border-radius:5px;background:rgba(6,43,20,.07);overflow:hidden}#dashboard .mz-marketing .mzm-spend{display:block;height:100%;width:24%;border-radius:5px;background:rgba(6,43,20,.34)}#dashboard .mz-marketing .mzm-return{display:block;height:100%;width:86%;border-radius:5px;
                background:linear-gradient(90deg,var(--c-gdeep),var(--c-green))}#dashboard .mz-marketing .mzm-roi{margin-top:auto;display:flex;align-items:baseline;gap:6px}#dashboard .mz-marketing .mzm-roi b{font-family:var(--disp);font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--c-gdeep)}#dashboard .mz-marketing .mzm-roi em{font-style:normal;font-size:7px;letter-spacing:.12em;color:var(--c-dim);text-transform:uppercase}
              @media (max-width:420px){#dashboard .mz-marketing .mzm-chip:nth-child(n+4){display:none}#dashboard .mz-marketing .mzm-cards{grid-template-columns:1fr}#dashboard .mz-marketing .mzm-camp:nth-child(2){display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-marketing .mzm-return{animation:mzmkt-climb 5s cubic-bezier(.2,.7,.2,1) infinite}#dashboard .mz-marketing .mzm-live i, #dashboard .mz-marketing .mzm-chrome i{animation:mzmkt-blink 2.4s ease-in-out infinite}
              }
              @keyframes mzmkt-climb{0%{width:24%}55%,100%{width:86%}}
              @keyframes mzmkt-blink{0%,100%{opacity:1}50%{opacity:.4}}#dashboard .mz-sales{--c-dark:#07301B;--c-cream:#F7F7F3;--c-card:#fff;--c-green:#1fd15f;--c-gdeep:#0f8a41;--c-ink:#062b14;--c-dim:rgba(6,43,20,.52);--c-lite:rgba(234,255,241,.85);--mono:var(--ff-mono,ui-monospace,"SF Mono",Menlo,Consolas,monospace);--disp:var(--ff-display,"Helvetica Neue",Helvetica,Arial,sans-serif);
                width:100%;height:100%;min-height:280px;box-sizing:border-box;display:flex;flex-direction:column;gap:7px;
                background:var(--c-cream);border:1px solid rgba(6,43,20,.08);border-radius:12px;padding:8px;overflow:hidden;
                font-family:var(--mono);color:var(--c-ink)}#dashboard .mz-sales *{box-sizing:border-box}#dashboard .mz-sales .mzs-chrome{flex:none;display:flex;align-items:center;gap:6px;background:var(--c-dark);border-radius:7px;
                padding:5px 9px;color:var(--c-lite);font-size:7px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}#dashboard .mz-sales .mzs-chrome i{width:5px;height:5px;border-radius:50%;background:var(--c-green);flex:none}#dashboard .mz-sales .mzs-chrome span{margin-left:auto;opacity:.65;letter-spacing:.1em}#dashboard .mz-sales .mzs-money{flex:none;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}#dashboard .mz-sales .mzs-mtile{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;padding:5px 8px;min-width:0}#dashboard .mz-sales .mzs-mtile em{display:block;font-style:normal;font-size:6.5px;letter-spacing:.12em;color:var(--c-dim);
                text-transform:uppercase;white-space:nowrap}#dashboard .mz-sales .mzs-mtile b{font-family:var(--disp);font-size:12.5px;font-weight:700;letter-spacing:-.02em}#dashboard .mz-sales .mzs-mtile s{text-decoration:none;font-size:7px;font-weight:700;color:var(--c-gdeep);margin-left:4px}#dashboard .mz-sales .mzs-board{flex:1;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;min-height:0}#dashboard .mz-sales .mzs-col{background:rgba(6,43,20,.045);border-radius:9px;padding:5px;display:flex;flex-direction:column;gap:5px;min-height:0;overflow:hidden}#dashboard .mz-sales .mzs-col .ch{display:flex;align-items:center;gap:4px;padding:1px 3px 4px;border-bottom:1px solid rgba(6,43,20,.09)}#dashboard .mz-sales .mzs-col .ch i{width:6px;height:6px;border-radius:2px;background:var(--c-green);flex:none}#dashboard .mz-sales .mzs-col .ch b{font-size:7px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;
                overflow:hidden;text-overflow:ellipsis}#dashboard .mz-sales .mzs-col .ch span{margin-left:auto;font-size:7px;font-weight:700;color:var(--c-gdeep)}#dashboard .mz-sales .mzs-card{background:var(--c-card);border:1px solid rgba(6,43,20,.1);border-left:3px solid var(--c-green);
                border-radius:6px;padding:4px 6px;box-shadow:0 1px 2px rgba(6,43,20,.07)}#dashboard .mz-sales .mzs-card b{display:block;font-family:var(--disp);font-size:8.5px;font-weight:600;line-height:1.25}#dashboard .mz-sales .mzs-card .cv{display:flex;justify-content:space-between;margin-top:2px;font-size:7px}#dashboard .mz-sales .mzs-card .cv b{display:inline;font-family:var(--mono);font-size:7.5px;font-weight:700;color:var(--c-gdeep)}#dashboard .mz-sales .mzs-card .cv span{color:var(--c-dim)}#dashboard .mz-sales .mzs-ghost{position:absolute;top:34px;left:2%;width:29%;z-index:2;opacity:0;
                background:var(--c-card);border:1px solid var(--c-green);border-left:3px solid var(--c-green);
                border-radius:6px;padding:4px 6px;box-shadow:0 4px 10px rgba(6,43,20,.18)}#dashboard .mz-sales .mzs-ghost b{display:block;font-family:var(--disp);font-size:8.5px;font-weight:600}#dashboard .mz-sales .mzs-ghost .cv{display:flex;justify-content:space-between;margin-top:2px;font-size:7px}#dashboard .mz-sales .mzs-ghost .cv b{display:inline;font-family:var(--mono);font-size:7.5px;color:var(--c-gdeep)}#dashboard .mz-sales .mzs-ghost .cv span{color:var(--c-dim)}
              @media (max-width:420px){#dashboard .mz-sales .mzs-mtile b{font-size:11px}#dashboard .mz-sales .mzs-card:nth-child(4){display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-sales .mzs-ghost{animation:mzsal-advance 7s cubic-bezier(.35,0,.25,1) infinite}#dashboard .mz-sales .mzs-col:nth-child(2){animation:mzsal-catch 7s ease infinite}#dashboard .mz-sales .mzs-chrome i{animation:mzsal-blink 2.4s ease-in-out infinite}
              }
              @keyframes mzsal-advance{
                0%,18%{left:2%;opacity:0;transform:translateY(4px)}
                26%{opacity:1;transform:translateY(0)}
                52%,64%{left:35.5%;opacity:1}
                74%,100%{left:35.5%;opacity:0}
              }
              @keyframes mzsal-catch{
                0%,50%{box-shadow:none}
                58%{box-shadow:inset 0 0 0 1.5px rgba(31,209,95,.65)}
                78%,100%{box-shadow:none}
              }
              @keyframes mzsal-blink{0%,100%{opacity:1}50%{opacity:.4}}#dashboard .mz-finances{--c-dark:#07301B;--c-cream:#F7F7F3;--c-card:#fff;--c-green:#1fd15f;--c-gdeep:#0f8a41;--c-ink:#062b14;--c-dim:rgba(6,43,20,.52);--c-lite:rgba(234,255,241,.85);--mono:var(--ff-mono,ui-monospace,"SF Mono",Menlo,Consolas,monospace);--disp:var(--ff-display,"Helvetica Neue",Helvetica,Arial,sans-serif);
                width:100%;height:100%;min-height:280px;box-sizing:border-box;display:flex;flex-direction:column;gap:7px;
                background:var(--c-cream);border:1px solid rgba(6,43,20,.08);border-radius:12px;padding:8px;overflow:hidden;
                font-family:var(--mono);color:var(--c-ink)}#dashboard .mz-finances *{box-sizing:border-box}#dashboard .mz-finances .mzf-chrome{flex:none;display:flex;align-items:center;gap:6px;background:var(--c-dark);border-radius:7px;
                padding:5px 9px;color:var(--c-lite);font-size:7px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}#dashboard .mz-finances .mzf-chrome i{width:5px;height:5px;border-radius:50%;background:var(--c-green);flex:none}#dashboard .mz-finances .mzf-chrome span{margin-left:auto;opacity:.65;letter-spacing:.1em}#dashboard .mz-finances .mzf-tiles{flex:none;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}#dashboard .mz-finances .mzf-tile{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;padding:6px 8px;min-width:0}#dashboard .mz-finances .mzf-tile em{display:block;font-style:normal;font-size:6.5px;letter-spacing:.12em;color:var(--c-dim);
                text-transform:uppercase;white-space:nowrap}#dashboard .mz-finances .mzf-tile b{font-family:var(--disp);font-size:13px;font-weight:700;letter-spacing:-.02em}#dashboard .mz-finances .mzf-tile s{text-decoration:none;display:block;font-size:6.5px;font-weight:700;color:var(--c-gdeep);margin-top:1px}#dashboard .mz-finances .mzf-pnl{flex:1;background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;
                padding:7px 9px;display:flex;flex-direction:column;gap:5px;min-height:0;overflow:hidden}#dashboard .mz-finances .mzf-pnl h4{margin:0;font-size:7px;font-weight:700;letter-spacing:.15em;color:var(--c-dim);
                text-transform:uppercase;display:flex;justify-content:space-between}#dashboard .mz-finances .mzf-pnl h4 b{color:var(--c-gdeep)}#dashboard .mz-finances .mzf-ladder{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;gap:4px;min-height:0}#dashboard .mz-finances .mzf-lrow{display:grid;grid-template-columns:52px 1fr 34px;align-items:center;gap:6px}#dashboard .mz-finances .mzf-lrow em{font-style:normal;font-size:7px;font-weight:700;letter-spacing:.1em;color:var(--c-dim);text-transform:uppercase}#dashboard .mz-finances .mzf-lrow i{font-style:normal;font-size:7.5px;font-weight:700;text-align:right;font-family:var(--mono)}#dashboard .mz-finances .mzf-track{height:8px;border-radius:4px;background:rgba(6,43,20,.06);overflow:hidden}#dashboard .mz-finances .mzf-fill{display:block;height:100%;border-radius:4px;transform-origin:left;background:rgba(6,43,20,.3)}#dashboard .mz-finances .mzf-fill--rev{background:linear-gradient(90deg,var(--c-gdeep),var(--c-green))}#dashboard .mz-finances .mzf-fill--net{background:var(--c-green)}#dashboard .mz-finances .mzf-lrow--net em, #dashboard .mz-finances .mzf-lrow--net i{color:var(--c-gdeep)}#dashboard .mz-finances .mzf-foot{margin-top:auto;display:flex;align-items:baseline;gap:6px;border-top:1px dashed rgba(6,43,20,.14);padding-top:5px}#dashboard .mz-finances .mzf-foot b{font-family:var(--disp);font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--c-gdeep)}#dashboard .mz-finances .mzf-foot em{font-style:normal;font-size:7px;letter-spacing:.12em;color:var(--c-dim);text-transform:uppercase}
              @media (max-width:420px){#dashboard .mz-finances .mzf-tiles{grid-template-columns:repeat(2,1fr)}#dashboard .mz-finances .mzf-tile b{font-size:11.5px}#dashboard .mz-finances .mzf-lrow{grid-template-columns:46px 1fr 32px}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-finances .mzf-fill{animation:mzfin-grow 5.5s cubic-bezier(.2,.7,.2,1) infinite;transform:scaleX(0)}#dashboard .mz-finances .mzf-lrow:nth-of-type(2) .mzf-fill{animation-delay:.25s}#dashboard .mz-finances .mzf-lrow:nth-of-type(3) .mzf-fill{animation-delay:.5s}#dashboard .mz-finances .mzf-lrow:nth-of-type(4) .mzf-fill{animation-delay:.75s}#dashboard .mz-finances .mzf-foot b{animation:mzfin-pulse 5.5s ease infinite}#dashboard .mz-finances .mzf-chrome i{animation:mzfin-blink 2.4s ease-in-out infinite}
              }
              @keyframes mzfin-grow{0%{transform:scaleX(0)}28%,100%{transform:scaleX(1)}}
              @keyframes mzfin-pulse{0%,20%{opacity:.35}34%,100%{opacity:1}}
              @keyframes mzfin-blink{0%,100%{opacity:1}50%{opacity:.4}}#dashboard .mz-calendar{--c-dark:#07301B;--c-cream:#F7F7F3;--c-card:#fff;--c-green:#1fd15f;--c-gdeep:#0f8a41;--c-ink:#062b14;--c-dim:rgba(6,43,20,.52);--c-lite:rgba(234,255,241,.85);--mono:var(--ff-mono,ui-monospace,"SF Mono",Menlo,Consolas,monospace);--disp:var(--ff-display,"Helvetica Neue",Helvetica,Arial,sans-serif);
                width:100%;height:100%;min-height:280px;box-sizing:border-box;display:flex;flex-direction:column;gap:7px;
                background:var(--c-cream);border:1px solid rgba(6,43,20,.08);border-radius:12px;padding:8px;overflow:hidden;
                font-family:var(--mono);color:var(--c-ink)}#dashboard .mz-calendar *{box-sizing:border-box}#dashboard .mz-calendar .mzc-chrome{flex:none;display:flex;align-items:center;gap:6px;background:var(--c-dark);border-radius:7px;
                padding:5px 9px;color:var(--c-lite);font-size:7px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}#dashboard .mz-calendar .mzc-chrome i{width:5px;height:5px;border-radius:50%;background:var(--c-green);flex:none}#dashboard .mz-calendar .mzc-chrome span{margin-left:auto;opacity:.65;letter-spacing:.1em}#dashboard .mz-calendar .mzc-legend{flex:none;display:flex;gap:5px;align-items:center}#dashboard .mz-calendar .mzc-leg{display:flex;align-items:center;gap:3px;font-size:6.5px;font-weight:700;letter-spacing:.11em;
                color:var(--c-dim);text-transform:uppercase;background:rgba(6,43,20,.045);border-radius:20px;padding:2px 7px}#dashboard .mz-calendar .mzc-leg i{width:5px;height:5px;border-radius:2px;flex:none}#dashboard .mz-calendar .mzc-leg .lg-a{background:var(--c-green)}#dashboard .mz-calendar .mzc-leg .lg-b{background:var(--c-dark)}#dashboard .mz-calendar .mzc-leg .lg-c{background:transparent;border:1.5px solid var(--c-gdeep)}#dashboard .mz-calendar .mzc-week{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;min-height:0}#dashboard .mz-calendar .mzc-day{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;
                display:flex;flex-direction:column;min-width:0;overflow:hidden}#dashboard .mz-calendar .mzc-day .dh{flex:none;display:flex;justify-content:space-between;align-items:center;
                padding:4px 6px;border-bottom:1px solid rgba(6,43,20,.08)}#dashboard .mz-calendar .mzc-day .dh em{font-style:normal;font-size:6.5px;font-weight:700;letter-spacing:.13em;color:var(--c-dim)}#dashboard .mz-calendar .mzc-day .dh b{font-family:var(--disp);font-size:9px;font-weight:700}#dashboard .mz-calendar .mzc-day--today{border-color:rgba(31,209,95,.6)}#dashboard .mz-calendar .mzc-day--today .dh{background:rgba(31,209,95,.1)}#dashboard .mz-calendar .mzc-day--today .dh em{color:var(--c-gdeep)}#dashboard .mz-calendar .mzc-day .db{flex:1;padding:4px;display:flex;flex-direction:column;gap:4px}#dashboard .mz-calendar .mzc-ev{border-radius:5px;padding:3px 5px;font-size:6.5px;font-weight:700;letter-spacing:.06em;line-height:1.35}#dashboard .mz-calendar .mzc-ev em{display:block;font-style:normal;font-size:6.5px;opacity:.75}#dashboard .mz-calendar .mzc-ev--disc{background:rgba(31,209,95,.18);color:var(--c-gdeep);border-left:3px solid var(--c-green)}#dashboard .mz-calendar .mzc-ev--demo{background:var(--c-dark);color:var(--c-lite);border-left:3px solid var(--c-green)}#dashboard .mz-calendar .mzc-ev--site{background:transparent;color:var(--c-gdeep);border:1px dashed var(--c-gdeep);border-left:3px solid var(--c-gdeep)}
              @media (max-width:420px){#dashboard .mz-calendar .mzc-week{grid-template-columns:repeat(4,1fr)}#dashboard .mz-calendar .mzc-day:nth-child(5){display:none}#dashboard .mz-calendar .mzc-leg:nth-child(3){display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-calendar .mzc-ev{opacity:0;animation:mzcal-pop 9s ease infinite}#dashboard .mz-calendar .mzc-ev[data-n="1"]{animation-delay:.3s}#dashboard .mz-calendar .mzc-ev[data-n="2"]{animation-delay:1s}#dashboard .mz-calendar .mzc-ev[data-n="3"]{animation-delay:1.7s}#dashboard .mz-calendar .mzc-ev[data-n="4"]{animation-delay:2.4s}#dashboard .mz-calendar .mzc-ev[data-n="5"]{animation-delay:3.1s}#dashboard .mz-calendar .mzc-ev[data-n="6"]{animation-delay:3.8s}#dashboard .mz-calendar .mzc-ev[data-n="7"]{animation-delay:4.5s}#dashboard .mz-calendar .mzc-day--today{animation:mzcal-today 3s ease-in-out infinite}#dashboard .mz-calendar .mzc-chrome i{animation:mzcal-blink 2.4s ease-in-out infinite}
              }
              @media (prefers-reduced-motion:reduce){#dashboard .mz-calendar .mzc-ev{opacity:1}}
              @keyframes mzcal-pop{
                0%{opacity:0;transform:translateY(3px) scale(.94)}
                4%{opacity:1;transform:translateY(0) scale(1)}
                88%{opacity:1}
                96%,100%{opacity:0}
              }
              @keyframes mzcal-today{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.35)}50%{box-shadow:0 0 0 3px rgba(31,209,95,.12)}}
              @keyframes mzcal-blink{0%,100%{opacity:1}50%{opacity:.4}}#dashboard .mz-operations{--c-dark:#07301B;--c-cream:#F7F7F3;--c-card:#fff;--c-green:#1fd15f;--c-gdeep:#0f8a41;--c-ink:#062b14;--c-dim:rgba(6,43,20,.52);--c-lite:rgba(234,255,241,.85);--mono:var(--ff-mono,ui-monospace,"SF Mono",Menlo,Consolas,monospace);--disp:var(--ff-display,"Helvetica Neue",Helvetica,Arial,sans-serif);
                width:100%;height:100%;min-height:280px;box-sizing:border-box;display:flex;flex-direction:column;gap:7px;
                background:var(--c-cream);border:1px solid rgba(6,43,20,.08);border-radius:12px;padding:8px;overflow:hidden;
                font-family:var(--mono);color:var(--c-ink)}#dashboard .mz-operations *{box-sizing:border-box}#dashboard .mz-operations .mzo-chrome{flex:none;display:flex;align-items:center;gap:6px;background:var(--c-dark);border-radius:7px;
                padding:5px 9px;color:var(--c-lite);font-size:7px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}#dashboard .mz-operations .mzo-chrome i{width:5px;height:5px;border-radius:50%;background:var(--c-green);flex:none}#dashboard .mz-operations .mzo-chrome span{margin-left:auto;opacity:.65;letter-spacing:.1em}#dashboard .mz-operations .mzo-body{flex:1;display:grid;grid-template-columns:1.6fr 1fr;gap:7px;min-height:0}#dashboard .mz-operations .mzo-lanes{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;
                padding:7px 8px;display:flex;flex-direction:column;gap:6px;min-height:0;overflow:hidden}#dashboard .mz-operations .mzo-lanes h4, #dashboard .mz-operations .mzo-gate h4{margin:0;font-size:7px;font-weight:700;letter-spacing:.15em;
                color:var(--c-dim);text-transform:uppercase;display:flex;justify-content:space-between}#dashboard .mz-operations .mzo-lanes h4 b, #dashboard .mz-operations .mzo-gate h4 b{color:var(--c-gdeep)}#dashboard .mz-operations .mzo-lanerack{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;gap:6px;min-height:0}#dashboard .mz-operations .mzo-lane{display:grid;grid-template-columns:44px 1fr 16px;align-items:center;gap:6px}#dashboard .mz-operations .mzo-lane em{font-style:normal;font-size:6.5px;font-weight:700;letter-spacing:.1em;color:var(--c-dim);text-transform:uppercase}#dashboard .mz-operations .mzo-lane s{text-decoration:none;font-size:7.5px;font-weight:700;color:var(--c-gdeep);text-align:right}#dashboard .mz-operations .mzo-track{position:relative;height:16px;border-radius:5px;background:rgba(6,43,20,.05);overflow:hidden}#dashboard .mz-operations .mzo-chip{position:absolute;top:3px;height:10px;border-radius:3px;background:var(--c-card);
                border:1px solid rgba(6,43,20,.16);border-left:2.5px solid var(--c-green);box-shadow:0 1px 2px rgba(6,43,20,.08);
                font-family:var(--disp);font-size:6.5px;font-weight:600;line-height:8px;padding:0 4px;color:var(--c-ink);white-space:nowrap}#dashboard .mz-operations .mzo-chip--mover{border-color:var(--c-green);z-index:2}#dashboard .mz-operations .mzo-lane--blocked .mzo-chip{border-left-color:rgba(6,43,20,.4)}#dashboard .mz-operations .mzo-lane--blocked s{color:rgba(6,43,20,.45)}#dashboard .mz-operations .mzo-gate{background:var(--c-card);border:1px solid rgba(6,43,20,.09);border-radius:8px;
                padding:7px 9px;display:flex;flex-direction:column;gap:5px;min-height:0;overflow:hidden}#dashboard .mz-operations .mzo-check{flex:1;display:flex;align-items:center;gap:7px;margin-top:2px}#dashboard .mz-operations .mzo-check svg{width:26px;height:26px;flex:none}#dashboard .mz-operations .mzo-check circle{fill:none;stroke:rgba(6,43,20,.12);stroke-width:2.5}#dashboard .mz-operations .mzo-check .ring{stroke:var(--c-green);stroke-linecap:round}#dashboard .mz-operations .mzo-check .tick{fill:none;stroke:var(--c-gdeep);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}#dashboard .mz-operations .mzo-check b{font-family:var(--disp);font-size:13px;font-weight:700;color:var(--c-gdeep)}#dashboard .mz-operations .mzo-check em{display:block;font-style:normal;font-size:6.5px;letter-spacing:.1em;color:var(--c-dim);text-transform:uppercase}#dashboard .mz-operations .mzo-runs{margin-top:auto;display:flex;flex-direction:column;gap:3px}#dashboard .mz-operations .mzo-run{display:flex;justify-content:space-between;font-size:7px;letter-spacing:.06em;
                background:rgba(6,43,20,.035);border-radius:5px;padding:3px 6px}#dashboard .mz-operations .mzo-run b{font-weight:700}#dashboard .mz-operations .mzo-run s{text-decoration:none;color:var(--c-gdeep);font-weight:700}
              @media (max-width:420px){#dashboard .mz-operations .mzo-body{grid-template-columns:1fr;grid-template-rows:auto auto}#dashboard .mz-operations .mzo-run:nth-child(3){display:none}#dashboard .mz-operations .mzo-lane--blocked{display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-operations .mzo-chip--mover{animation:mzops-travel 6.5s cubic-bezier(.4,0,.3,1) infinite}#dashboard .mz-operations .mzo-check .ring{stroke-dasharray:63;animation:mzops-ring 6.5s ease infinite}#dashboard .mz-operations .mzo-check .tick{stroke-dasharray:14;animation:mzops-tick 6.5s ease infinite}#dashboard .mz-operations .mzo-chrome i{animation:mzops-blink 2.4s ease-in-out infinite}
              }
              @keyframes mzops-travel{
                0%,10%{left:4%;opacity:0}
                16%{opacity:1}
                55%,72%{left:62%;opacity:1}
                82%,100%{left:62%;opacity:0}
              }
              @keyframes mzops-ring{0%,55%{stroke-dashoffset:63}80%,100%{stroke-dashoffset:0}}
              @keyframes mzops-tick{0%,72%{stroke-dashoffset:14}88%,100%{stroke-dashoffset:0}}
              @keyframes mzops-blink{0%,100%{opacity:1}50%{opacity:.4}}#dashboard .mz-agents{--ff-mono:'Red Hat Mono',ui-monospace,'SF Mono',Menlo,monospace;--ff-display:'Red Hat Display',-apple-system,'Helvetica Neue',system-ui,sans-serif;
                position:relative;width:100%;height:100%;min-height:280px;display:flex;flex-direction:column;overflow:hidden;
                background:#F7F7F3;border:1px solid rgba(6,43,20,.1);border-radius:10px;padding:10px 12px;box-sizing:border-box}#dashboard .mz-agents *{box-sizing:border-box}#dashboard .mz-agents .mza-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}#dashboard .mz-agents .mza-kick{font:700 8px/1 var(--ff-mono);letter-spacing:.22em;color:#15a34a}#dashboard .mz-agents .mza-pill{display:inline-flex;align-items:center;gap:5px;font:600 7px/1 var(--ff-mono);letter-spacing:.14em;color:#0e7a36;
                background:rgba(31,209,95,.1);border:1px solid rgba(21,163,74,.3);border-radius:999px;padding:3px 7px}#dashboard .mz-agents .mza-pill .d{width:4px;height:4px;border-radius:50%;background:#1fd15f}#dashboard .mz-agents .mza-dirs{display:flex;gap:6px;margin-bottom:7px}#dashboard .mz-agents .mza-dir{display:inline-flex;align-items:center;gap:4px;font:600 7px/1 var(--ff-mono);letter-spacing:.1em;color:rgba(6,43,20,.6);
                background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:6px;padding:4px 6px}#dashboard .mz-agents .mza-dir b{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:50%;
                background:#062b14;color:#a8ffc8;font:700 6px/1 var(--ff-mono)}#dashboard .mz-agents .mza-grid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;min-height:0}#dashboard .mz-agents .mza-card{background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:8px;padding:6px 7px;
                display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden;min-width:0}#dashboard .mz-agents .mza-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--ac),transparent 75%)}#dashboard .mz-agents .mza-card .t{display:flex;align-items:center;gap:5px;min-width:0}#dashboard .mz-agents .mza-card .av{flex:none;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;
                background:color-mix(in srgb,var(--ac) 16%,#fff);color:var(--ac);border:1px solid color-mix(in srgb,var(--ac) 45%,#fff);font:800 8px/1 var(--ff-display)}#dashboard .mz-agents .mza-card .id{display:flex;flex-direction:column;gap:1px;min-width:0}#dashboard .mz-agents .mza-card .id b{font:800 8.5px/1.1 var(--ff-display);color:#062b14;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-agents .mza-card .id i{font:600 6.5px/1 var(--ff-mono);font-style:normal;letter-spacing:.12em;color:rgba(6,43,20,.5)}#dashboard .mz-agents .mza-card .soul{font:400 7px/1.35 var(--ff-display);color:rgba(6,43,20,.55);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}#dashboard .mz-agents .mza-card .act{font:600 7px/1.2 var(--ff-mono);letter-spacing:.06em;color:rgba(6,43,20,.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-agents .mza-card .act.is-live{color:#0e7a36;display:flex;align-items:center;gap:4px}#dashboard .mz-agents .mza-card .act .bar{flex:none;width:8px;height:3px;border-radius:2px;background:linear-gradient(90deg,#1fd15f,#a8ffc8);overflow:hidden}#dashboard .mz-agents .mza-card .f{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:4px}#dashboard .mz-agents .mza-card .chip{font:700 6px/1 var(--ff-mono);letter-spacing:.12em;color:#0e7a36;background:rgba(31,209,95,.12);border-radius:999px;padding:2px 5px}#dashboard .mz-agents .mza-card .ship{font:600 6px/1 var(--ff-mono);letter-spacing:.1em;color:rgba(6,43,20,.42)}#dashboard .mz-agents .mza-foot{margin-top:7px;font:600 6.5px/1 var(--ff-mono);letter-spacing:.16em;color:rgba(6,43,20,.38);text-align:center}
              @media (max-width:420px){#dashboard .mz-agents{min-height:240px;padding:9px 10px}#dashboard .mz-agents .mza-grid{grid-template-columns:repeat(2,1fr)}#dashboard .mz-agents .mza-card:nth-child(n+5){display:none}#dashboard .mz-agents .mza-dirs{display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-agents .mza-pill .d{animation:mza-blink 2.2s ease-in-out infinite}#dashboard .mz-agents .mza-card .act.is-live .bar{animation:mza-scan 1.8s ease-in-out infinite}#dashboard .mz-agents .mza-card:first-child::before{animation:mza-sheen 3.6s ease-in-out infinite}
              }
              @keyframes mza-blink{0%,100%{opacity:1}50%{opacity:.3}}
              @keyframes mza-scan{0%,100%{width:8px;opacity:1}50%{width:16px;opacity:.55}}
              @keyframes mza-sheen{0%,100%{opacity:1}50%{opacity:.45}}#dashboard .mz-team{--ff-mono:'Red Hat Mono',ui-monospace,'SF Mono',Menlo,monospace;--ff-display:'Red Hat Display',-apple-system,'Helvetica Neue',system-ui,sans-serif;
                position:relative;width:100%;height:100%;min-height:280px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;
                background:#F7F7F3;border:1px solid rgba(6,43,20,.1);border-radius:10px;padding:12px 12px;box-sizing:border-box}#dashboard .mz-team *{box-sizing:border-box}#dashboard .mz-team .mzt-tierlbl{font:600 6.5px/1 var(--ff-mono);letter-spacing:.18em;color:rgba(6,43,20,.42);text-align:center;margin-bottom:6px}#dashboard .mz-team .mzt-row{display:flex;justify-content:center;gap:8px}#dashboard .mz-team .mzt-node{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid rgba(6,43,20,.12);border-radius:8px;padding:4px 8px;min-width:0}#dashboard .mz-team .mzt-node.is-owner{border-color:rgba(21,163,74,.45);box-shadow:0 0 0 2px rgba(31,209,95,.12)}#dashboard .mz-team .mzt-node .av{position:relative;flex:none;width:16px;height:16px;border-radius:50%;overflow:hidden;
                background:color-mix(in srgb,var(--ac) 18%,#fff);border:1px solid color-mix(in srgb,var(--ac) 50%,#fff)}#dashboard .mz-team .mzt-node .av::before{content:"";position:absolute;top:3px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;
                background:color-mix(in srgb,var(--ac) 65%,#062b14)}#dashboard .mz-team .mzt-node .av::after{content:"";position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);width:10px;height:7px;border-radius:50% 50% 0 0;
                background:color-mix(in srgb,var(--ac) 65%,#062b14)}#dashboard .mz-team .mzt-node .rl{font:800 8.5px/1 var(--ff-display);color:#062b14;letter-spacing:.06em;white-space:nowrap}#dashboard .mz-team .mzt-wires{width:100%;height:30px;flex:none;display:block}#dashboard .mz-team .mzt-wires .w{fill:none;stroke:rgba(21,163,74,.3);stroke-width:1}#dashboard .mz-team .mzt-wires .w--main{stroke:rgba(21,163,74,.5);stroke-width:1.2}#dashboard .mz-team .mzt-wires .p{fill:#1fd15f;opacity:0}#dashboard .mz-team .mzt-row--heads{gap:6px;align-items:stretch;flex-wrap:nowrap}#dashboard .mz-team .mzt-col{flex:1 1 0;display:flex;flex-direction:column;gap:3px;min-width:0}#dashboard .mz-team .mzt-head{background:#fff;border:1px solid rgba(6,43,20,.1);border-top:2px solid var(--ac,rgba(6,43,20,.2));border-radius:7px;
                padding:4px 2px;text-align:center;overflow:hidden}#dashboard .mz-team .mzt-head b{font:800 7px/1 var(--ff-display);color:#062b14;letter-spacing:.05em;white-space:nowrap}#dashboard .mz-team .mzt-sq{display:grid;grid-template-columns:1fr 1fr;gap:3px}#dashboard .mz-team .mzt-sq i{font:600 5.5px/1 var(--ff-mono);font-style:normal;letter-spacing:.08em;color:rgba(6,43,20,.5);text-align:center;
                background:#fff;border:1px solid rgba(6,43,20,.08);border-left:2px solid color-mix(in srgb,var(--ac,#1fd15f) 55%,#fff);border-radius:4px;padding:3px 0;min-width:0}
              @media (max-width:420px){#dashboard .mz-team{min-height:230px;padding:10px 8px}#dashboard .mz-team .mzt-row--dir{gap:5px}#dashboard .mz-team .mzt-node{padding:3px 6px;gap:4px}#dashboard .mz-team .mzt-node .rl{font-size:7.5px}#dashboard .mz-team .mzt-row--heads{gap:4px}#dashboard .mz-team .mzt-head b{font-size:5.5px;letter-spacing:.03em}#dashboard .mz-team .mzt-sq{gap:2px}#dashboard .mz-team .mzt-sq i{font-size:0;height:8px;padding:0}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-team .p1{animation:mzt-drop1 3.6s ease-in infinite}#dashboard .mz-team .p2{animation:mzt-drop2 3.6s ease-in infinite 1.8s}
              }
              @keyframes mzt-drop1{0%{cx:248px;cy:0;opacity:0}10%{opacity:1}45%{cx:280px;cy:16px}90%{opacity:1}100%{cx:280px;cy:34px;opacity:0}}
              @keyframes mzt-drop2{0%{cx:378px;cy:0;opacity:0}10%{opacity:1}45%{cx:280px;cy:16px}90%{opacity:1}100%{cx:168px;cy:34px;opacity:0}}#dashboard .mz-clients{--ff-mono:'Red Hat Mono',ui-monospace,'SF Mono',Menlo,monospace;--ff-display:'Red Hat Display',-apple-system,'Helvetica Neue',system-ui,sans-serif;
                position:relative;width:100%;height:100%;min-height:280px;display:flex;flex-direction:column;overflow:hidden;
                background:#F7F7F3;border:1px solid rgba(6,43,20,.1);border-radius:10px;padding:10px 12px;box-sizing:border-box}#dashboard .mz-clients *{box-sizing:border-box}#dashboard .mz-clients .mzc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}#dashboard .mz-clients .mzc-kick{display:inline-flex;align-items:center;gap:5px;font:700 8px/1 var(--ff-mono);letter-spacing:.2em;color:#15a34a}#dashboard .mz-clients .mzc-kick .d{width:4px;height:4px;border-radius:50%;background:#1fd15f}#dashboard .mz-clients .mzc-vera{font:700 7px/1 var(--ff-mono);letter-spacing:.16em;color:#1a9e94;border:1px solid rgba(26,158,148,.4);border-radius:999px;padding:3px 7px}#dashboard .mz-clients .mzc-vera i{font-style:normal}#dashboard .mz-clients .mzc-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:7px}#dashboard .mz-clients .mzc-tile{background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:7px;padding:5px 7px;display:flex;flex-direction:column;gap:2px}#dashboard .mz-clients .mzc-tile i{font:600 6px/1 var(--ff-mono);font-style:normal;letter-spacing:.14em;color:rgba(6,43,20,.48)}#dashboard .mz-clients .mzc-tile b{font:800 12px/1 var(--ff-display);color:#062b14}#dashboard .mz-clients .mzc-tile--gold b{color:#8a6d12}#dashboard .mz-clients .mzc-tile--teal b{color:#14766e}#dashboard .mz-clients .mzc-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:6px;min-height:0}#dashboard .mz-clients .mzc-card{position:relative;background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:8px;padding:7px 8px;
                display:flex;flex-direction:column;gap:4px;overflow:hidden;min-width:0}#dashboard .mz-clients .mzc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--ac),transparent 72%)}#dashboard .mz-clients .mzc-card .t{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0}#dashboard .mz-clients .mzc-card .t b{font:800 9px/1.1 var(--ff-display);color:#062b14;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-clients .pill{flex:none;font:700 5.5px/1 var(--ff-mono);letter-spacing:.1em;color:#0e7a36;background:rgba(31,209,95,.12);border-radius:999px;padding:2px 5px}#dashboard .mz-clients .pill--rev{color:#8a6d12;background:rgba(201,162,39,.14)}#dashboard .mz-clients .pill--exp{color:#6d3fc0;background:rgba(139,92,246,.13)}#dashboard .mz-clients .mzc-card .v{font:800 10px/1 var(--ff-display);color:#062b14}#dashboard .mz-clients .mzc-card .v i{font:600 6px/1 var(--ff-mono);font-style:normal;letter-spacing:.12em;color:rgba(6,43,20,.42);margin-left:3px}#dashboard .mz-clients .mzc-card .mv{font:600 6px/1.3 var(--ff-mono);letter-spacing:.08em;color:rgba(6,43,20,.42)}#dashboard .mz-clients .dots{margin-top:auto;display:flex;gap:3px}#dashboard .mz-clients .dots i{width:5px;height:5px;border-radius:50%;background:rgba(6,43,20,.12)}#dashboard .mz-clients .dots .on{background:color-mix(in srgb,var(--ac) 75%,#062b14)}#dashboard .mz-clients .dots .live{background:var(--ac)}#dashboard .mz-clients .mzc-foot{margin-top:7px;display:flex;align-items:center;gap:5px;font:600 6px/1 var(--ff-mono);letter-spacing:.14em;color:rgba(6,43,20,.38)}#dashboard .mz-clients .mzc-foot .src{color:#0e7a36;background:rgba(31,209,95,.1);border-radius:4px;padding:2px 4px;font-weight:700}
              @media (max-width:420px){#dashboard .mz-clients{min-height:240px;padding:9px 10px}#dashboard .mz-clients .mzc-tile b{font-size:10px}#dashboard .mz-clients .mzc-grid{grid-template-columns:1fr}#dashboard .mz-clients .mzc-card:nth-child(n+3){display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-clients .dots .live{animation:mzc-pulse 1.9s ease-in-out infinite}#dashboard .mz-clients .mzc-kick .d{animation:mzc-blink 2.4s ease-in-out infinite}
              }
              @keyframes mzc-pulse{0%,100%{box-shadow:0 0 0 0 rgba(31,209,95,.5);opacity:1}50%{box-shadow:0 0 0 3px rgba(31,209,95,0);opacity:.75}}
              @keyframes mzc-blink{0%,100%{opacity:1}50%{opacity:.35}}#dashboard .mz-comms{--ff-mono:'Red Hat Mono',ui-monospace,'SF Mono',Menlo,monospace;--ff-display:'Red Hat Display',-apple-system,'Helvetica Neue',system-ui,sans-serif;
                position:relative;width:100%;height:100%;min-height:280px;display:flex;flex-direction:column;overflow:hidden;
                background:#F7F7F3;border:1px solid rgba(6,43,20,.1);border-radius:10px;padding:10px 12px;box-sizing:border-box}#dashboard .mz-comms *{box-sizing:border-box}#dashboard .mz-comms .mzm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}#dashboard .mz-comms .mzm-kick{font:700 8px/1 var(--ff-mono);letter-spacing:.22em;color:#15a34a}#dashboard .mz-comms .mzm-badge{display:inline-flex;align-items:center;gap:4px;font:700 6.5px/1 var(--ff-mono);letter-spacing:.14em;color:#0e7a36;
                background:rgba(31,209,95,.1);border:1px solid rgba(21,163,74,.3);border-radius:999px;padding:3px 6px}#dashboard .mz-comms .mzm-badge .d{width:4px;height:4px;border-radius:50%;background:#1fd15f}#dashboard .mz-comms .mzm-levels{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-bottom:7px}#dashboard .mz-comms .mzm-lvl{background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:7px;padding:5px 6px;display:flex;flex-direction:column;gap:2px}#dashboard .mz-comms .mzm-lvl i{font:600 5.5px/1 var(--ff-mono);font-style:normal;letter-spacing:.1em;color:rgba(6,43,20,.48);white-space:nowrap;overflow:hidden}#dashboard .mz-comms .mzm-lvl b{font:800 11px/1 var(--ff-display);color:#062b14}#dashboard .mz-comms .mzm-lvl.is-off{opacity:.45}#dashboard .mz-comms .mzm-feedhead{font:600 6px/1 var(--ff-mono);letter-spacing:.16em;color:rgba(6,43,20,.4);margin-bottom:4px}#dashboard .mz-comms .mzm-list{flex:1;background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;min-height:0}#dashboard .mz-comms .mzm-row{display:flex;align-items:center;gap:6px;padding:5px 8px;border-bottom:1px solid rgba(6,43,20,.07);min-width:0}#dashboard .mz-comms .mzm-row:last-child{border-bottom:0}#dashboard .mz-comms .mzm-row.is-new{background:rgba(31,209,95,.06)}#dashboard .mz-comms .ch{flex:none;width:44px;font:700 5.5px/1 var(--ff-mono);letter-spacing:.08em;color:#0e7a36;background:rgba(31,209,95,.1);
                border-radius:4px;padding:2px 4px;text-align:center}#dashboard .mz-comms .ch--wa{color:#0b7a4b;background:rgba(18,183,106,.14)}#dashboard .mz-comms .ch--sms{color:#3f5ddb;background:rgba(63,93,219,.1)}#dashboard .mz-comms .ch--fb{color:#2f5ec4;background:rgba(47,94,196,.1)}#dashboard .mz-comms .ch--li{color:#0e6e8c;background:rgba(14,110,140,.1)}#dashboard .mz-comms .ch--ig{color:#b03f8e;background:rgba(176,63,142,.1)}#dashboard .mz-comms .bd{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}#dashboard .mz-comms .bd b{font:800 8px/1.15 var(--ff-display);color:#062b14;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-comms .bd i{font:400 7px/1.2 var(--ff-display);font-style:normal;color:rgba(6,43,20,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-comms .ts{flex:none;font:600 6px/1 var(--ff-mono);letter-spacing:.08em;color:rgba(6,43,20,.4)}
              @media (max-width:420px){#dashboard .mz-comms{min-height:240px;padding:9px 10px}#dashboard .mz-comms .mzm-levels{grid-template-columns:repeat(4,1fr)}#dashboard .mz-comms .mzm-lvl.is-off{display:none}#dashboard .mz-comms .mzm-row:nth-child(n+5){display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-comms .mzm-row.is-new{animation:mzm-arrive 7s ease-out infinite}#dashboard .mz-comms .mzm-badge .d{animation:mzm-blink 2.2s ease-in-out infinite}
              }
              @keyframes mzm-arrive{0%{opacity:0;transform:translateY(-7px);background:rgba(31,209,95,.16)}
                6%{opacity:1;transform:none}55%{background:rgba(31,209,95,.06)}100%{opacity:1;transform:none;background:rgba(31,209,95,.06)}}
              @keyframes mzm-blink{0%,100%{opacity:1}50%{opacity:.35}}#dashboard .mz-companybrain{--ff-mono:'Red Hat Mono',ui-monospace,'SF Mono',Menlo,monospace;--ff-display:'Red Hat Display',-apple-system,'Helvetica Neue',system-ui,sans-serif;
                position:relative;width:100%;height:100%;min-height:280px;display:flex;flex-direction:column;overflow:hidden;
                background:radial-gradient(120% 90% at 50% 42%,#0A3D1F 0%,#07301B 62%,#052514 100%);border-radius:10px}#dashboard .mz-companybrain .mzcb-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 0}#dashboard .mz-companybrain .mzcb-kick{font:700 8px/1 var(--ff-mono);letter-spacing:.22em;color:#a8ffc8}#dashboard .mz-companybrain .mzcb-stat{display:inline-flex;align-items:center;gap:5px;font:600 7px/1 var(--ff-mono);letter-spacing:.14em;color:rgba(234,255,241,.72)}#dashboard .mz-companybrain .mzcb-stat .d{width:4px;height:4px;border-radius:50%;background:#1fd15f}#dashboard .mz-companybrain .mzcb-stage{flex:1;position:relative;min-height:0}#dashboard .mz-companybrain .mzcb-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#dashboard .mz-companybrain .mzcb-foot{display:flex;align-items:center;gap:5px;padding:8px 12px 10px}#dashboard .mz-companybrain .mzcb-cx{font:600 7px/1 var(--ff-mono);letter-spacing:.12em;color:rgba(234,255,241,.6);
                border:1px solid rgba(31,209,95,.3);border-radius:999px;padding:3px 6px}#dashboard .mz-companybrain .mzcb-cx.is-on{color:#07301B;background:#1fd15f;border-color:#1fd15f}#dashboard .mz-companybrain .mzcb-ask{margin-left:auto;font:600 7px/1 var(--ff-mono);letter-spacing:.14em;color:#a8ffc8;
                border:1px dashed rgba(168,255,200,.45);border-radius:999px;padding:3px 8px}
              @media (max-width:420px){#dashboard .mz-companybrain{min-height:240px}#dashboard .mz-companybrain .mzcb-cx:nth-child(2), #dashboard .mz-companybrain .mzcb-cx:nth-child(4){display:none}#dashboard .mz-companybrain .mzcb-stat .syn{display:none}#dashboard .mz-companybrain .mzcb-kick{white-space:nowrap}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-companybrain .mzcb-stat .d{animation:mzcb-blink 2.2s ease-in-out infinite}
              }
              @keyframes mzcb-blink{0%,100%{opacity:1}50%{opacity:.35}}#dashboard .mz-wiki{--ff-mono:'Red Hat Mono',ui-monospace,'SF Mono',Menlo,monospace;--ff-display:'Red Hat Display',-apple-system,'Helvetica Neue',system-ui,sans-serif;
                position:relative;width:100%;height:100%;min-height:280px;display:flex;flex-direction:column;overflow:hidden;
                background:#F7F7F3;border:1px solid rgba(6,43,20,.1);border-radius:10px;padding:10px 12px;box-sizing:border-box}#dashboard .mz-wiki *{box-sizing:border-box}#dashboard .mz-wiki .mzw-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}#dashboard .mz-wiki .mzw-kick{font:700 8px/1 var(--ff-mono);letter-spacing:.22em;color:#15a34a}#dashboard .mz-wiki .mzw-count{font:600 7px/1 var(--ff-mono);letter-spacing:.14em;color:rgba(6,43,20,.5)}#dashboard .mz-wiki .mzw-body{flex:1;display:flex;gap:7px;min-height:0}#dashboard .mz-wiki .mzw-tree{flex:none;width:34%;background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:8px;padding:7px 8px;
                display:flex;flex-direction:column;gap:4px;overflow:hidden}#dashboard .mz-wiki .mzw-branch{display:flex;align-items:center;gap:3px;font:700 6.5px/1 var(--ff-mono);letter-spacing:.08em;color:#062b14;white-space:nowrap;overflow:hidden}#dashboard .mz-wiki .mzw-branch .c{font-style:normal;color:#15a34a;font-size:6px}#dashboard .mz-wiki .mzw-leaf{font:600 6.5px/1 var(--ff-mono);letter-spacing:.08em;color:rgba(6,43,20,.55);padding-left:11px;position:relative;white-space:nowrap;overflow:hidden}#dashboard .mz-wiki .mzw-leaf::before{content:"";position:absolute;left:4px;top:50%;width:4px;height:1px;background:rgba(21,163,74,.4)}#dashboard .mz-wiki .mzw-leaf.is-on{color:#0e7a36;font-weight:700}#dashboard .mz-wiki .mzw-docs{flex:1;background:#fff;border:1px solid rgba(6,43,20,.1);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;min-width:0;position:relative}#dashboard .mz-wiki .mzw-doc{display:flex;align-items:center;gap:6px;padding:5px 8px;border-bottom:1px solid rgba(6,43,20,.07);min-width:0}#dashboard .mz-wiki .mzw-doc:last-child{border-bottom:0}#dashboard .mz-wiki .mzw-doc .ic{flex:none;width:9px;height:11px;border:1px solid rgba(21,163,74,.55);border-radius:2px;position:relative;background:rgba(31,209,95,.07)}#dashboard .mz-wiki .mzw-doc .ic::before{content:"";position:absolute;left:2px;top:3px;right:2px;height:1px;background:rgba(21,163,74,.6);box-shadow:0 2.5px 0 rgba(21,163,74,.45),0 5px 0 rgba(21,163,74,.3)}#dashboard .mz-wiki .mzw-doc .bd{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}#dashboard .mz-wiki .mzw-doc .bd b{font:800 8px/1.15 var(--ff-display);color:#062b14;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#dashboard .mz-wiki .mzw-doc .bd i{font:600 5.5px/1 var(--ff-mono);font-style:normal;letter-spacing:.1em;color:rgba(6,43,20,.42);white-space:nowrap;overflow:hidden}#dashboard .mz-wiki .tag{flex:none;font:700 5.5px/1 var(--ff-mono);letter-spacing:.1em;color:rgba(6,43,20,.5);background:rgba(6,43,20,.06);border-radius:4px;padding:2px 4px}#dashboard .mz-wiki .tag--new{color:#0e7a36;background:rgba(31,209,95,.14)}#dashboard .mz-wiki .tag--lock{color:#8a6d12;background:rgba(201,162,39,.14)}#dashboard .mz-wiki .mzw-docs::after{content:"";position:absolute;left:0;right:0;top:0;height:22px;
                background:linear-gradient(90deg,rgba(31,209,95,.08),rgba(31,209,95,0) 80%);pointer-events:none}#dashboard .mz-wiki .mzw-foot{margin-top:7px;display:flex;align-items:center;gap:5px;font:600 6.5px/1 var(--ff-mono);letter-spacing:.16em;color:rgba(6,43,20,.4);
                background:#fff;border:1px dashed rgba(21,163,74,.4);border-radius:999px;padding:4px 9px}#dashboard .mz-wiki .mzw-foot .q{width:6px;height:6px;border:1px solid #15a34a;border-radius:50%;position:relative}#dashboard .mz-wiki .mzw-foot .q::after{content:"";position:absolute;right:-2px;bottom:-2px;width:3px;height:1px;background:#15a34a;transform:rotate(45deg)}
              @media (max-width:420px){#dashboard .mz-wiki{min-height:240px;padding:9px 10px}#dashboard .mz-wiki .mzw-tree{width:40%}#dashboard .mz-wiki .mzw-doc:nth-child(n+5){display:none}#dashboard .mz-wiki .mzw-branch:nth-child(n+7){display:none}
              }
              @media (prefers-reduced-motion:no-preference){#dashboard .mz-wiki .mzw-docs::after{animation:mzw-scan 6s ease-in-out infinite}#dashboard .mz-wiki .tag--new{animation:mzw-glow 2.4s ease-in-out infinite}
              }
              @keyframes mzw-scan{0%,100%{transform:translateY(0)}50%{transform:translateY(88px)}}
              @keyframes mzw-glow{0%,100%{opacity:1}50%{opacity:.5}}
              

/* ===== outcome monolith (2026-08-06) ===== */
/* section#outcome - the Monolith tri-ground block. Three columns FLUSH
   against each other (gap 0, shared edges, ONE 1px frame) so it reads as
   one object, not three cards - therefore NO per-column hover lift. Ground
   escalation carries the drama: surface-2 (quiet) -> black (inverted) ->
   green (payoff). One skeleton, restated per ground through outm- custom
   properties; every rule is #outcome-scoped, zero cascade leaks. */

#outcome .outm{
  display:grid;grid-template-columns:1fr;gap:0;
  border:1px solid var(--line);
  background:var(--surface-2);
  margin-top:clamp(2rem,4vw,3rem);
}
/* same boundary the old .outs grid used - the site's 3-across threshold */
@media (min-width:820px){#outcome .outm{grid-template-columns:repeat(3,1fr)}}

/* ---- one skeleton ---- */
#outcome .outm-col{
  display:flex;flex-direction:column;align-items:flex-start;
  padding:clamp(1.75rem,3vw,2.6rem);
  color:var(--outm-ink);
}

/* ---- three grounds. Only the variables change. ---- */
#outcome .outm-col--paper{
  background:var(--surface-2);
  --outm-ink:var(--ink);
  --outm-mut:var(--muted);
  --outm-num:var(--muted-2);
  --outm-hair:var(--line);
  --outm-dot:var(--green);
  --outm-chip-bg:var(--surface);
  --outm-chip-ink:var(--ink);
  --outm-chip-line:var(--line-2);
}
#outcome .outm-col--black{
  background:var(--black);
  --outm-ink:#fff;
  --outm-mut:rgba(242,244,242,.66);
  --outm-num:var(--green);
  --outm-hair:var(--line-inv);
  --outm-dot:var(--green);
  --outm-chip-bg:var(--green);
  --outm-chip-ink:var(--btn-ink);
}
#outcome .outm-col--green{
  background:var(--green);
  --outm-ink:var(--btn-ink);
  --outm-mut:var(--btn-ink);
  --outm-num:var(--btn-ink);
  --outm-hair:rgba(6,43,20,.28);
  --outm-dot:var(--btn-ink);
  --outm-chip-bg:var(--black);
  --outm-chip-ink:var(--green);
}

/* ---- internal geometry, identical across columns ---- */
#outcome .outm-num{color:var(--outm-num);margin-bottom:clamp(1.5rem,2.6vw,2.1rem)}
#outcome .outm-t{color:var(--outm-ink);margin-bottom:.6rem}
#outcome .outm-lede{
  color:var(--outm-mut);
  font-size:clamp(.9375rem,.9rem + .2vw,1.02rem);line-height:1.62;
  max-width:34ch;margin-bottom:clamp(1.2rem,2vw,1.6rem);
}
/* the chip ground is INVERTED vs its column - the one loud element per col */
#outcome .outm-chip{
  display:inline-flex;align-items:center;
  padding:.5rem .8rem;border-radius:2px;white-space:nowrap;
  background:var(--outm-chip-bg);color:var(--outm-chip-ink);
  border:1px solid var(--outm-chip-line,transparent);
}
#outcome .outm-rule{
  display:block;width:100%;height:1px;background:var(--outm-hair);
  margin-block:clamp(1.2rem,2vw,1.6rem);
}
#outcome .outm-list{display:grid;gap:.7rem}
#outcome .outm-list li{
  display:flex;align-items:flex-start;gap:.65rem;
  font-size:.9375rem;line-height:1.6;color:var(--outm-mut);
}
#outcome .outm-list li::before{
  content:"";flex:none;width:.4rem;height:.4rem;border-radius:50%;
  background:var(--outm-dot);margin-top:.52rem;
}

/* ---- entrance: the site's existing .rv observer, per-column --d stagger
        (mirrors the .ocard reveal grammar; .js-scoped so no-JS stays visible) */
.js #outcome .rv .outm-col{opacity:0;transform:translateY(14px)}
#outcome .rv.in .outm-col{opacity:1;transform:none;transition:opacity .55s var(--ease) var(--d,0s),transform .55s var(--ease) var(--d,0s)}

/* the hairline draws left to right after its column lands - extra motion, gated */
@media (prefers-reduced-motion:no-preference){
  .js #outcome .rv .outm-rule{transform:scaleX(0);transform-origin:left}
  #outcome .rv.in .outm-rule{transform:scaleX(1);transition:transform .8s var(--ease) calc(var(--d,0s) + .3s)}
}

/* ===== ninety editorial (2026-08-06) ===== */
/* section#ninety timeline, de-templated. Grammar borrowed from the cost trio
   (hairline-separated columns, flush edges, no boxes) plus the Problem
   section's draw-on rule: each phase carries a green rule that scaleX-draws
   0 -> 1 on reveal, staggered left to right so the motion IS the timeline.
   Run alone carries a live pulse dot. Entrance rides the existing .rv
   observer + per-column --d; zero new JS. Every rule descendant-scoped
   under #ninety; every new class prefixed ninx-. Hairline thicknesses stay
   1px / 2px on purpose - that is the site's hairline grammar (.cost::before,
   .area::before); all spacing and type is rem/em. */

/* ---- structure: 4 editorial columns, hairline-separated, flush edges ---- */
#ninety .ninx{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(2.25rem,4.5vw,3.25rem)}
#ninety .ninx-col{position:relative;padding:0 clamp(1.1rem,.8rem + 1.2vw,2rem)}
#ninety .ninx-col:first-child{padding-left:0}
#ninety .ninx-col:last-child{padding-right:0}
/* vertical dividers between phases - the cost-trio move, var(--line) only */
#ninety .ninx-col + .ninx-col::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line);transform-origin:top}

/* ---- column skeleton: numeral / drawn rule / title / week / body ---- */
#ninety .ninx-num{display:block;font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.18em;color:var(--muted-2);font-variant-numeric:tabular-nums}
/* the phase rule: same species as .area::before - 2px, var(--green) */
#ninety .ninx-rule{display:block;height:2px;margin-top:.8rem;background:var(--green);transform-origin:left}
#ninety .ninx-t{margin:.9rem 0 0}
/* week label: the site's .tlrow__w treatment, verbatim */
#ninety .ninx-w{display:block;margin-top:.45rem;font-family:var(--ff-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-t)}
#ninety .ninx-b{margin:.7rem 0 0;color:var(--muted);font-size:.97rem;line-height:1.66;max-width:62ch;text-wrap:pretty}

/* ---- the one accent: Run is the live state ---- */
#ninety .ninx-live{position:relative;display:inline-block;width:.34em;height:.34em;border-radius:50%;background:var(--green);margin-left:.5em;vertical-align:middle}
@media (prefers-reduced-motion:no-preference){
  #ninety .ninx-live::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--green);animation:ninx-pulse 2.2s var(--ease) infinite}
  @keyframes ninx-pulse{0%{transform:scale(1);opacity:.5}70%,100%{transform:scale(2.4);opacity:0}}
}

/* ---- entrance: existing .rv observer; columns rise on their own --d, then
   the four green rules draw left to right in sequence (delay = 3x the
   column's --d + .2s -> .5s / .8s / 1.1s / 1.4s: a relay across the row,
   the 90 days passing). Hidden states all gated on html.js, so no-JS and
   failed-JS visitors get the settled layout - same contract as the trio. */
.js #ninety .ninx-col{opacity:0;transform:translateY(.875rem)}
#ninety .ninx.in .ninx-col{opacity:1;transform:none;transition:opacity .6s var(--ease) var(--d,0s),transform .6s var(--ease) var(--d,0s)}
.js #ninety .ninx-rule{transform:scaleX(0);transition:transform .55s var(--ease) calc(var(--d,0s) * 3 + .2s)}
#ninety .ninx.in .ninx-rule{transform:scaleX(1)}
/* dividers draw top-down as their column lands */
.js #ninety .ninx-col + .ninx-col::before{transform:scaleY(0)}
#ninety .ninx.in .ninx-col + .ninx-col::before{transform:scaleY(1);transition:transform .9s var(--ease) var(--d,0s)}

/* ---- stacked rows under 900 (this section's existing boundary) ---- */
@media (max-width:900px){
  #ninety .ninx{grid-template-columns:1fr;row-gap:1.9rem}
  #ninety .ninx-col{padding:0}
  #ninety .ninx-col + .ninx-col{padding-top:1.9rem}
  /* stacked: the divider between phases is horizontal - redraw the pseudo */
  #ninety .ninx-col + .ninx-col::before{top:0;bottom:auto;left:0;right:0;width:auto;height:1px;transform-origin:left}
  .js #ninety .ninx-col + .ninx-col::before{transform:scaleX(0)}
  #ninety .ninx.in .ninx-col + .ninx-col::before{transform:scaleX(1)}
}

/* ---- print: never ship a blank section if .in hasn't fired ---- */
@media print{
  .js #ninety .ninx-col{opacity:1;transform:none}
  .js #ninety .ninx-rule,.js #ninety .ninx-col + .ninx-col::before{transform:none}
}

/* ---- reduced motion: structure arrives fully drawn, dot goes static (the
   pulse ring only exists inside no-preference above). Selectors mirror the
   .js-gated hidden states exactly and sit later in the sheet, so they win;
   keep this block LAST. ---- */
@media (prefers-reduced-motion:reduce){
  .js #ninety .ninx-col{opacity:1;transform:none;transition:none}
  .js #ninety .ninx-rule,.js #ninety .ninx-col + .ninx-col::before{transform:none;transition:none}
}


/* ===== fit editorial (2026-08-06) ===== */
/* section#fit sector cells, de-templated. The tinted rounded icon chips
   (--ic/--icb/--icl hexes, six non-token hues) were condemned in the 08-05
   pillar audit - SaaS card dialect. Grammar borrowed from the ninx columns
   + the cost trio: six flush editorial cells, 3 cols x 2 rows, hairline-
   separated, no boxes, no fills, no radius, no shadows. Cell = 3 objects:
   mono index / ink stroke icon / name (3-second-read law). Structure draws
   itself (var(--line) pseudos scale 0 -> 1), content rises on the existing
   .rv observer + per-cell inline --d; zero new JS. Every hidden state is
   gated on html.js so no-JS and failed-JS visitors get the settled layout
   by construction (ninx precedent). Green arrives on interaction only -
   the solution's colour, never resting decoration. */

/* ---- structure: six flush cells, hairline-separated, flush edges ---- */
#fit .vfit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(1.75rem,3.5vw,2.5rem)}
#fit .vfit__c{position:relative;padding:0 clamp(1.1rem,.8rem + 1.2vw,2rem)}
#fit .vfit__c:nth-child(3n+1){padding-left:0}
#fit .vfit__c:nth-child(3n){padding-right:0}
#fit .vfit__c:nth-child(-n+3){padding-bottom:clamp(1.6rem,3vw,2.2rem)}
#fit .vfit__c:nth-child(n+4){padding-top:clamp(1.6rem,3vw,2.2rem)}
/* dividers - var(--line) pseudos so they can DRAW on reveal. The three
   per-cell ::after segments on row 2 read as one continuous rule. */
#fit .vfit__c:not(:nth-child(3n+1))::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line);transform-origin:top}
#fit .vfit__c:nth-child(n+4)::after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);transform-origin:left}

/* ---- cell skeleton: index / icon / name ---- */
#fit .vfit__n{display:block;font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.18em;color:var(--muted-2);font-variant-numeric:tabular-nums}
#fit .vfit__i{display:block;width:1.6rem;height:1.6rem;margin-top:.9rem;color:var(--ink);transition:color .35s var(--ease)}
#fit .vfit__i svg{display:block;width:100%;height:100%}
/* one stroke language for every icon on the site - re-declared for this
   scope (the site icon law only names .area svg / .stile svg) */
#fit .vfit svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* name: typography carries the hierarchy; the green rule beneath it is the
   cost__t underline species, drawn only on interaction */
#fit .vfit__t{margin:.8rem 0 0;font-family:var(--ff-display);font-weight:700;font-size:clamp(1.02rem,2.2vw,1.15rem);letter-spacing:-.02em;line-height:1.25;color:var(--ink);max-width:14ch;display:inline-block;padding-bottom:.14em;background-image:linear-gradient(var(--green),var(--green));background-repeat:no-repeat;background-position:left bottom;background-size:0% .16em;transition:background-size .5s var(--ease)}

/* ---- interaction: green on action only. NO lift, NO shadow, NO fill. ---- */
#fit .vfit__c:hover .vfit__i,#fit .vfit__c.is-hot .vfit__i{color:var(--green-t)}
#fit .vfit__c:hover .vfit__t,#fit .vfit__c.is-hot .vfit__t{background-size:100% .16em}

/* ---- entrance: rides the existing .rv observer on the section's --d:.08s
   wrapper. Cells rise 18% of own height on their inline --d (lytbox beat,
   costs precedent); verticals draw top-down with their cell; the row-2 top
   rule sweeps across .2s behind, three segments relaying left to right.
   Hidden states .js-gated ONLY. ---- */
.js #fit .vfit__c{opacity:0;transform:translateY(18%)}
#fit .rv.in .vfit__c{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.25,.46,.45,.94) var(--d,0s),transform .9s cubic-bezier(.25,.46,.45,.94) var(--d,0s)}
.js #fit .vfit__c:not(:nth-child(3n+1))::before{transform:scaleY(0)}
#fit .rv.in .vfit__c:not(:nth-child(3n+1))::before{transform:scaleY(1);transition:transform .9s cubic-bezier(.25,.46,.45,.94) var(--d,0s)}
.js #fit .vfit__c:nth-child(n+4)::after{transform:scaleX(0)}
#fit .rv.in .vfit__c:nth-child(n+4)::after{transform:scaleX(1);transition:transform .9s cubic-bezier(.25,.46,.45,.94) calc(var(--d,0s) + .2s)}

/* ---- stacked rows under 760: cell becomes a row (icon / name / index),
   dividers redrawn horizontal - the ninx mobile pseudo-redraw move ---- */
@media (max-width:760px){
  #fit .vfit{grid-template-columns:1fr}
  #fit .vfit__c{display:grid;grid-template-columns:1.6rem 1fr auto;align-items:center;column-gap:.9rem;padding:1rem 0}
  #fit .vfit__c:nth-child(3n+1){padding-left:0}
  #fit .vfit__c:nth-child(3n){padding-right:0}
  #fit .vfit__c:nth-child(-n+3){padding-bottom:1rem}
  #fit .vfit__c:nth-child(n+4){padding-top:1rem}
  #fit .vfit__c:first-child{padding-top:0}
  #fit .vfit__i{order:-1;margin-top:0}
  #fit .vfit__n{order:2;justify-self:end}
  /* grid blockifies the inline-block name; start-align so the hover
     underline hugs the text, not the whole 1fr track */
  #fit .vfit__t{margin:0;max-width:none;justify-self:start}
  /* every ::after dies; the row divider is a horizontal ::before redraw */
  #fit .vfit__c:nth-child(n+4)::after{content:none}
  #fit .vfit__c + .vfit__c::before{content:"";position:absolute;top:0;bottom:auto;left:0;right:0;width:auto;height:1px;background:var(--line);transform-origin:left}
  .js #fit .vfit__c + .vfit__c::before{transform:scaleX(0)}
  #fit .rv.in .vfit__c + .vfit__c::before{transform:scaleX(1);transition:transform .9s cubic-bezier(.25,.46,.45,.94) var(--d,0s)}
}

/* ---- print: never ship a blank section if .in hasn't fired. Selectors
   mirror the .js-gated hidden states exactly (ninx precedent). ---- */
@media print{
  .js #fit .vfit__c{opacity:1;transform:none}
  .js #fit .vfit__c:not(:nth-child(3n+1))::before,.js #fit .vfit__c:nth-child(n+4)::after,.js #fit .vfit__c + .vfit__c::before{transform:none}
}

/* ---- reduced motion: everything arrives settled and fully drawn.
   Selectors mirror the .js-gated hidden states exactly and sit later in
   the sheet, so they win; keep this block LAST. ---- */
@media (prefers-reduced-motion:reduce){
  .js #fit .vfit__c{opacity:1;transform:none;transition:none}
  .js #fit .vfit__c:not(:nth-child(3n+1))::before,.js #fit .vfit__c:nth-child(n+4)::after,.js #fit .vfit__c + .vfit__c::before{transform:none;transition:none}
  #fit .vfit__i,#fit .vfit__t{transition:none}
}

/* ===== offer calendly band (2026-08-06) ===== */
/* section#offer closing act: the inline Calendly frame full-width BENEATH the
   offer__grid, so the section stays one idea - pitch (ocard) -> proof (Shane +
   map + guarantee + scarcity) -> the calendar to act on it (apply-page pairing
   precedent). The frame's own CSS (.cal / .cal__bar / .cal__skel /
   .calendly-inline-widget) is GLOBAL in main.css (INNER PAGES block, shipped
   with /apply/) - REUSED here, not duplicated. .ocard-green and the whole
   aside are untouched. This block only shapes the new .vofr band; every rule
   scoped #offer, namespace vofr per contract. */

/* ---- structure: capped and centered so the frame reads as a document, not a
   barn door (62rem = the site's reading-measure cap, e.g. faq p / ninx-b) ---- */
#offer .vofr{margin-top:clamp(2.25rem,4.5vw,3.25rem);max-width:62rem;margin-inline:auto}

/* ---- reveal: the band rides the existing global .js .rv hidden state
   (MOTION BASE) on the wrapper itself - plain rise, no new pseudos, no new
   hidden states, so the global noscript / print / reduced-motion .rv rules
   already cover it. The tails below re-mirror that one state scoped to this
   section at higher specificity, belt on the braces. ---- */

/* ---- 390px: full measure; the Calendly iframe is width:100% by its embed,
   min-height 40rem carries over from the global .cal rules, no fixed widths
   anywhere so nothing can overflow the viewport ---- */
@media (max-width:640px){
  #offer .vofr{max-width:100%}
}

/* ---- print: never ship a blank band if .in has not fired ---- */
@media print{
  .js #offer .vofr{opacity:1;transform:none;transition:none}
}

/* ---- reduced motion: mirrors the .js-gated hidden state exactly and sits
   after it in the cascade at higher specificity - keep this LAST ---- */
@media (prefers-reduced-motion:reduce){
  .js #offer .vofr{opacity:1;transform:none;transition:none}
}

/* ===== faq ledger (2026-08-06) ===== */
/* section#faq de-templated: numbered editorial ledger. Grammar borrowed from
   the ninety editorial columns (mono index register, ninx-num verbatim) and
   the cost trio's drawn hairlines. <details>/<summary> semantics kept; green
   arrives on interaction only (green = the solution's colour, action-earned).
   Every rule scoped under #faq; every new class prefixed qa__. The old .faq
   block above goes DORMANT (markup no longer references it) - flagged for
   the dead-CSS sweep, not bundled here. Hidden states are all gated on
   html.js, so no-JS and failed-JS visitors get the settled ledger - same
   contract as the cost trio. */

/* ---- structure: drawn top rule, hairline rows, 3-column summary grid ---- */
#faq .qa{margin-top:clamp(2rem,4vw,3rem);position:relative}
/* top rule as a pseudo (not a static border) so it can DRAW on reveal */
#faq .qa::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:left}
#faq .qa details{border-bottom:1px solid var(--line)}
/* 44px tap floor is a hard audit rule - min-height 2.75rem, never lower */
#faq .qa summary{display:grid;grid-template-columns:2.6rem 1fr 1rem;align-items:center;gap:1rem;padding-block:clamp(.85rem,1.6vw,1.15rem);min-height:2.75rem;cursor:pointer;list-style:none}
#faq .qa summary::-webkit-details-marker{display:none}
/* mono ledger index - the ninx-num register, verbatim */
#faq .qa .qa__n{display:block;font-family:var(--ff-mono);font-size:.6875rem;font-weight:500;letter-spacing:.18em;color:var(--muted-2);font-variant-numeric:tabular-nums;transition:color .25s var(--ease)}
#faq .qa .qa__q{font-family:var(--ff-display);font-weight:700;font-size:clamp(1rem,2.2vw,1.125rem);letter-spacing:-.015em;color:var(--ink);transition:color .25s var(--ease)}
/* in-house + mark: two 1.5px bars in currentColor, ink at rest, no radius,
   no chip - rotates to x on open */
#faq .qa .qa__m{width:1rem;height:1rem;position:relative;color:var(--ink);transition:transform .3s var(--ease),color .25s var(--ease)}
#faq .qa .qa__m::before,#faq .qa .qa__m::after{content:"";position:absolute;background:currentColor}
#faq .qa .qa__m::before{left:0;top:.46875rem;width:1rem;height:1.5px}
#faq .qa .qa__m::after{left:.46875rem;top:0;width:1.5px;height:1rem}
/* answer: indented flush under the question column (2.6rem index track plus
   the 1rem grid gap - written as a calc so the alignment is self-evident) */
#faq .qa details p{color:var(--muted);font-size:.9375rem;line-height:1.62;max-width:62ch;padding:0 0 clamp(.9rem,1.7vw,1.15rem) calc(2.6rem + 1rem)}

/* ---- interaction: green arrives on action only ---- */
#faq .qa summary:hover .qa__n,#faq .qa summary:hover .qa__q,#faq .qa summary:hover .qa__m,
#faq .qa details[open] .qa__n,#faq .qa details[open] .qa__q,#faq .qa details[open] .qa__m{color:var(--green-t)}
#faq .qa details[open] .qa__m{transform:rotate(45deg)}
/* answer entrance lives inside no-preference, so reduce never sees it
   (the old ungated faqIn, now gated properly) */
@media (prefers-reduced-motion:no-preference){
  #faq .qa details[open] p{animation:qaIn .38s var(--ease)}
  @keyframes qaIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
}

/* ---- entrance: existing .rv observer, zero new JS; rows rise on a .06s
   ladder riding the wrapper's inline --d, then the top rule sweeps across
   a beat later. Hidden states .js-gated ONLY. ---- */
.js #faq .qa details{opacity:0;transform:translateY(10px)}
#faq .qa.in details{opacity:1;transform:none;transition:opacity .5s cubic-bezier(.25,.46,.45,.94) var(--qd,0s),transform .5s cubic-bezier(.25,.46,.45,.94) var(--qd,0s)}
#faq .qa.in details:nth-child(1){--qd:var(--d,0s)}
#faq .qa.in details:nth-child(2){--qd:calc(var(--d,0s) + .06s)}
#faq .qa.in details:nth-child(3){--qd:calc(var(--d,0s) + .12s)}
#faq .qa.in details:nth-child(4){--qd:calc(var(--d,0s) + .18s)}
#faq .qa.in details:nth-child(5){--qd:calc(var(--d,0s) + .24s)}
#faq .qa.in details:nth-child(6){--qd:calc(var(--d,0s) + .30s)}
#faq .qa.in details:nth-child(7){--qd:calc(var(--d,0s) + .36s)}
.js #faq .qa::before{transform:scaleX(0)}
#faq .qa.in::before{transform:scaleX(1);transition:transform 1s cubic-bezier(.25,.46,.45,.94) .1s}

/* ---- single breakpoint: tighter index column, full-measure answers
   (mobile reading width beats column alignment; who__note precedent) ---- */
@media (max-width:640px){
  #faq .qa summary{grid-template-columns:2.2rem 1fr 1rem}
  #faq .qa details p{padding-left:0}
}

/* ---- print: never ship a blank section if .in hasn't fired ---- */
@media print{
  .js #faq .qa details{opacity:1;transform:none}
  .js #faq .qa::before{transform:none}
}

/* ---- reduced motion: rows arrive settled, rule arrives drawn. Selectors
   mirror the .js-gated hidden states exactly and sit later in the sheet,
   so they win; keep this block LAST. ---- */
@media (prefers-reduced-motion:reduce){
  .js #faq .qa details{opacity:1;transform:none;transition:none}
  .js #faq .qa::before{transform:none;transition:none}
}

/* ===== offer: one fold (2026-08-06, Shane) =====
   Three moves: the map document lives INSIDE the green card (it is the artefact
   the card sells), the calendar moved UP into the right column, and the section
   is grid-centred at 100svh so the whole offer reads without scrolling. The
   calendar height is a CLAMP against the viewport, not a fixed number, so the
   fold survives any browser chrome height instead of overflowing on short ones. */
/* the fold budget is the viewport MINUS the sticky header (69px measured): a
   full 100svh box puts its own last 69px under the header, which is what hid
   the guarantee strip on the first pass. Scroll-margin keeps an anchored jump
   clear of the same header. */
#offer.ofold-sec{height:calc(100svh - 4.5rem);min-height:40rem;display:grid;padding-block:clamp(.9rem,1.8vw,1.4rem);scroll-margin-top:4.5rem}
/* the fold is a fixed box and the middle row is the ONLY flexible one, so every
   pixel the headline and the guarantee strip do not use goes to the calendar -
   Shane: "the full calendar should show in this window, not a small version". */
#offer.ofold-sec>.wrap{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.6rem,1.4vw,1.1rem);min-height:0;align-content:stretch}
.ofold{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(1.1rem,2.4vw,2rem);align-items:stretch;min-height:0}
.ocard--fold{padding:clamp(1.2rem,2.4vw,1.9rem)}
/* the card keeps its NATURAL height - stretching it to match a 646px calendar
   opened a dead green void between the bullets and the map. The calendar is the
   taller column by design now; both are top-aligned. */
/* LEFT column only. `.ofold__cal` also carries .rv, so a bare `.ofold>.rv`
   un-stretched the calendar column too - its height collapsed to content and the
   injected iframe's height="100%" lost its base, snapping back to the 150px UA
   default. Exclude the calendar explicitly. */
.ofold>.rv:not(.ofold__cal){align-self:start}
.ocard--fold h3{margin:.5rem 0 .9rem}
.ocard--fold ul{gap:.5rem;margin-bottom:1.1rem;padding-top:.9rem}
.ocard--fold li{font-size:.92rem}
/* the document, on green: keep the white sheet, drop the shadow (a resting
   shadow on a green field reads muddy - the flat-card verdict, 08-05 audit) */
.mapdoc--in{max-width:none;margin:0 0 1.2rem;background:#fff;border-color:rgba(6,43,20,.16);box-shadow:none;padding:.85rem .95rem}
.mapdoc--in .mapdoc__row{padding-block:.3rem;border-top-color:rgba(6,43,20,.1)}
.mapdoc--in .mapdoc__foot{padding-top:.55rem}
.ofold__cal{display:flex;flex-direction:column;gap:.6rem;min-height:0}
.ofold__cal .cal{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.ofold__cal .shane{gap:.85rem}
.ofold__cal .shane__pic{width:3.25rem;height:3.25rem}
.ofold__cal .shane p{font-size:.88rem}
.ofold__cal .cal__fb{padding:0}
#offer .cal{min-height:0}
/* percentage height needs a definite base: give the widget a positioning context
   and pin the injected iframe to it, so the iframe is sized by the box rather than
   by a percentage that cannot resolve inside a flex item. */
#offer .calendly-inline-widget{flex:1 1 auto;height:auto;min-height:0;position:relative}
#offer .calendly-inline-widget>iframe{position:absolute;inset:0;width:100%;height:100%}
.ofold__foot{display:flex;align-items:center;gap:clamp(.75rem,1.6vw,1.25rem);flex-wrap:wrap}
.ofold__foot .guarantee{flex:1 1 26rem;padding:.7rem 1rem;font-size:.86rem}
.ofold__foot .scarcity{flex:1 1 16rem;font-size:.6875rem}
/* below the two-column threshold a calendar cannot share a fold with the card:
   release the height lock and let the section scroll naturally (a forced fold
   here would clip the month grid, which is worse than a scroll). */
@media (max-width:900px){
  #offer.ofold-sec{height:auto;min-height:0;display:block;padding-block:clamp(3rem,7vw,5rem)}
  #offer.ofold-sec>.wrap{display:block}
  .ofold__cal{display:grid}
  .ofold__cal .cal{flex:none}
  .ofold{grid-template-columns:1fr}
  #offer .calendly-inline-widget{flex:none;height:40rem}
}

/* ===== FAQ popup (2026-08-06, Shane: "place this section as a popup") =====
   Native <dialog>: Esc, focus containment and background inertness come from the
   platform, not from hand-rolled JS. Opened by every existing href="#faq". */
.qamodal{border:0;padding:0;background:transparent;width:min(58rem,92vw);max-width:none;max-height:88svh;margin:auto;overflow:visible}
.qamodal::backdrop{background:rgba(8,12,9,.58)}
.qamodal__in{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.4rem,3vw,2.4rem);max-height:88svh;overflow-y:auto}
.qamodal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:clamp(.9rem,2.2vw,1.5rem)}
.qamodal__t{font-family:var(--ff-display);font-weight:800;font-size:clamp(1.45rem,1.1rem+1.5vw,2.3rem);line-height:1.06;letter-spacing:-.03em;color:var(--ink)}
.qamodal__x{flex:none;width:2.4rem;height:2.4rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);cursor:pointer;transition:border-color .2s var(--ease)}
.qamodal__x svg{width:1.05rem;height:1.05rem;fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round}
.qamodal__x:hover{border-color:var(--green)}
/* the ledger's rows were unhidden by the .rv scroll observer, which a dialog
   never fires - so unhide them here, at higher specificity than
   `.js #faq .qa details`, and let the open animation carry the entrance. */
.js #faq.qamodal .qa details{opacity:1;transform:none}
.js #faq.qamodal .qa::before{transform:scaleX(1)}
@media (prefers-reduced-motion:no-preference){
  .qamodal[open] .qa details{animation:qaRise .45s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--qd,0s)}
  .qamodal[open] .qa details:nth-child(1){--qd:.02s}
  .qamodal[open] .qa details:nth-child(2){--qd:.06s}
  .qamodal[open] .qa details:nth-child(3){--qd:.10s}
  .qamodal[open] .qa details:nth-child(4){--qd:.14s}
  .qamodal[open] .qa details:nth-child(5){--qd:.18s}
  .qamodal[open] .qa details:nth-child(6){--qd:.22s}
  .qamodal[open] .qa details:nth-child(7){--qd:.26s}
  @keyframes qaRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
/* NO-JS: showModal() never runs, and a closed <dialog> is display:none - the FAQ
   would simply vanish. The :target rule renders it inline as an ordinary band so
   the content is never lost, which is why the id stayed "faq". */
html:not(.js) .qamodal:target{display:block;position:static;width:auto;max-height:none;padding-block:clamp(3rem,7vw,5rem)}
html:not(.js) .qamodal:target .qamodal__in{max-width:var(--wrap,72rem);margin:0 auto;border:0;background:transparent;max-height:none;overflow:visible}
html:not(.js) .qamodal__x{display:none}
@media print{.qamodal[open] .qa details{animation:none}}

/* ===== partners (2026-08-06, Shane: "show people Our Happy Partners") =====
   Trio grammar extended: open columns, hairline dividers, display-face names, mono
   descriptor. No cards, no logo chips - one partner has no public mark, and a row
   where two names are images and one is type reads as a broken asset. */
.ptn{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:clamp(1.5rem,3vw,2.5rem) 0 clamp(1.75rem,3.5vw,2.75rem);border-top:1px solid var(--line)}
.ptn__c{padding:clamp(1.1rem,2.2vw,1.6rem) clamp(1rem,2vw,1.6rem);border-left:1px solid var(--line)}
.ptn__c:first-child{border-left:0;padding-left:0}
.ptn__n{font-family:var(--ff-display);font-weight:800;letter-spacing:-.02em;line-height:1.12;color:var(--ink);font-size:clamp(1.05rem,.85rem+.55vw,1.45rem)}
.ptn__m{color:var(--muted-2);margin-top:.5rem}
.ptn__l{display:inline-block;margin-top:.85rem;font-family:var(--ff-mono);font-size:.6875rem;letter-spacing:.06em;color:var(--green-t);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.ptn__l:hover{color:var(--ink)}
@media (max-width:760px){
  .ptn{grid-template-columns:1fr}
  .ptn__c{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-right:0}
  .ptn__c:first-child{border-top:0}
}


/* ===== agents: mock B port (2026-08-06, Shane "this concept was far better") =====
   Section header rules re-homed from the deleted mock-d block (they were defined
   nowhere else): eyebrow / lede / second-paragraph measure. ===== */
#agents .agents__eyebrow{display:flex;align-items:center;color:rgba(242,244,242,.6);margin-bottom:1rem}
#agents h2{max-width:16ch}
#agents .agents__lede{max-width:58ch;margin-top:1.15rem}
#agents .agents__second{max-width:56ch;margin-top:1rem}
   /* Copied from ~/Downloads/TODAY/agents-mock-b.html (copy-not-reimplement lock), every
   selector scoped under #agents so the block can neither leak out nor be bled into -
   the previous port died on exactly this: its band rules said `#agents .g-black`
   (descendant, matches nothing) so the island vars never applied and .onode names
   rendered ink-on-ink at 1.0:1. The section element IS .g-black; site-level .g-black
   handles the band, this block only styles the chart. ===== */
/* ==========================================================================
   THE ORGANISATION
   Frame + three tiers. Connectors are the site hairline (--conn) drawn on
   scroll: stem, spine, buses, drops - then the pulses ride them.
   ========================================================================== */
#agents .org2{
  --og:1rem;                      /* grid gap */
  --drop:2.4rem;                  /* bus to node */
  --treegap:2.6rem;               /* row group 1 to row group 2 */
  --conn:rgba(31,209,95,.45);
  --card:#0b0e0b;
  margin-top:clamp(2.75rem,6vw,4.25rem);
  border:1px solid var(--line-inv);border-radius:1rem;
  background:rgba(242,244,242,.02);
  padding:clamp(1.5rem,3.4vw,2.75rem) clamp(1.1rem,2.6vw,2.25rem);
}

/* ---- tier 1: you ---- */
#agents .t-you{display:flex;justify-content:center}
#agents .ynode{min-width:min(16.25rem,100%);text-align:center;background:var(--green-dim-2);border:1px solid rgba(31,209,95,.4);border-radius:10px;padding:1rem 1.15rem;position:relative;z-index:2}
#agents .ynode__k{display:block;color:rgba(242,244,242,.5)}
#agents .ynode b{display:block;margin-top:.2rem;font-family:var(--ff-display);font-weight:800;font-size:1.15rem;letter-spacing:-.02em;color:var(--green)}
#agents .ynode span:last-child{display:block;margin-top:.3rem;font-size:.84rem;line-height:1.5;color:rgba(242,244,242,.55)}

/* ---- tier 2: quantum ---- */
#agents .t-q{display:flex;justify-content:center}
#agents .qnode{width:min(46rem,100%);display:grid;grid-template-columns:auto 1fr;gap:.15rem 1.15rem;align-items:center;background:var(--card);border:1px solid rgba(31,209,95,.4);border-radius:12px;padding:1.15rem 1.3rem .95rem;position:relative;z-index:2}
#agents .qorb{width:3.6rem;height:3.6rem;grid-row:1/span 1;align-self:center}
#agents .qorb svg{width:100%;height:100%;overflow:visible}
#agents .qorb__ring{stroke:#2a322b;stroke-width:1;stroke-dasharray:3 5}
#agents .qorb__aura{fill:rgba(31,209,95,.14)}
#agents .qorb__soul{fill:var(--green)}
#agents .qorb__core{fill:#a8ffc8}
#agents .qorb__pulse{stroke:#26ff76;stroke-width:1;opacity:0}
@media (prefers-reduced-motion:no-preference){
  #agents .qorb__ring{transform-box:fill-box;transform-origin:center;animation:qspin 26s linear infinite}
  @keyframes qspin{to{transform:rotate(360deg)}}
  #agents .qorb__pulse{transform-box:fill-box;transform-origin:center;animation:qpulse 2.6s var(--ease) infinite}
  @keyframes qpulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(2.1);opacity:0}100%{transform:scale(2.1);opacity:0}}
}
#agents .qnode__k{display:block;color:var(--green)}
#agents .qnode__nm{display:block;margin-top:.1rem;font-family:var(--ff-display);font-weight:800;font-size:1.35rem;letter-spacing:-.022em;color:var(--ink)}
#agents .qnode__s{display:block;margin-top:.3rem;font-size:.86rem;line-height:1.55;color:rgba(242,244,242,.58)}
#agents .qnode__tick{grid-column:1/-1;margin-top:.75rem;padding-top:.65rem;border-top:1px solid var(--line-inv);display:flex;align-items:center;gap:.55rem;color:rgba(242,244,242,.55);min-width:0}
#agents .qnode__tick i{width:.4rem;height:.4rem;border-radius:50%;background:var(--green);flex:none}
#agents .qnode__tick span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (prefers-reduced-motion:no-preference){
  #agents .qnode__tick i{animation:tickBlink 2s var(--ease) infinite}
  @keyframes tickBlink{0%,100%{opacity:1}50%{opacity:.3}}
}

/* ---- connectors: stems ---- */
#agents .lk{display:block;position:relative;z-index:1}
#agents .lk--stem1{width:1px;height:2.2rem;margin:0 auto;background:var(--conn)}
#agents .lk--stem2{width:1px;height:2.6rem;margin:0 auto;background:var(--conn)}
.js #agents .lk--stem1,.js #agents .lk--stem2{transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
#agents .org2.in .lk--stem1{transform:scaleY(1);transition-delay:.25s}
#agents .org2.in .lk--stem2{transform:scaleY(1);transition-delay:.55s}

/* ---- tier 3: the tree ---- */
#agents .tree{position:relative;display:grid;gap:var(--treegap)}
#agents .rowg{position:relative;padding-top:var(--drop)}
/* the tee where the spine meets each bus */
#agents .tree::before,#agents .rowg--2::before{content:"";position:absolute;top:0;left:50%;width:.4375rem;height:.4375rem;margin:-.21875rem 0 0 -.21875rem;border-radius:50%;background:var(--green);display:none;z-index:2}
/* bus: first column centre to last column centre (4 columns) */
#agents .bus{position:absolute;top:0;left:calc((100% - 3 * var(--og)) / 8);right:calc((100% - 3 * var(--og)) / 8);height:1px;background:var(--conn);display:none}
.js #agents .bus{transform:scaleX(0);transition:transform .6s var(--ease)}
#agents .org2.in .bus{transform:scaleX(1)}
#agents .org2.in .rowg--1 .bus{transition-delay:.9s}
#agents .org2.in .rowg--2 .bus{transition-delay:1.05s}
/* spine: bus 1, straight down the central gap, to bus 2 */
#agents .lk--spine{position:absolute;top:0;bottom:calc(-1 * var(--treegap));left:50%;width:1px;background:var(--conn);display:none;z-index:0}
.js #agents .lk--spine{transform:scaleY(0);transform-origin:top;transition:transform .55s var(--ease)}
#agents .org2.in .lk--spine{transform:scaleY(1);transition-delay:.8s}

#agents .row4{display:grid;grid-template-columns:1fr;gap:var(--og);align-items:start}

/* ---- squadron node ---- */
#agents .sq{position:relative;background:var(--card);border:1px solid var(--line-inv);border-radius:10px;transition:border-color .35s var(--ease),background .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease)}
#agents .sq::before{content:"";position:absolute;top:calc(-1 * var(--drop));left:50%;width:1px;height:var(--drop);background:var(--conn);display:none;transition:background .35s var(--ease)}
.js #agents .sq::before{transform:scaleY(0);transform-origin:top}
#agents .org2.in .sq::before{transform:scaleY(1);transition:transform .35s var(--ease) calc(1.15s + var(--i,0) * .06s),background .35s var(--ease)}
#agents .sq:hover{border-color:rgba(31,209,95,.45);background:#0d120e;transform:translateY(-3px)}
#agents .sq.is-hot{border-color:rgba(31,209,95,.35);box-shadow:0 0 0 1px rgba(31,209,95,.1),0 14px 34px rgba(31,209,95,.07)}
#agents .sq.is-hot::before,#agents .sq:hover::before{background:var(--green)}
#agents .sq.is-open{border-color:rgba(31,209,95,.75);background:#0d120e;transform:none;box-shadow:0 18px 44px rgba(0,0,0,.5),0 0 0 1px rgba(31,209,95,.3);z-index:3}
#agents .sq.is-open::before{background:var(--green)}
/* entrance: staggered rise once the buses have drawn */
.js #agents .org2:not(.in) .sq{opacity:0}
#agents .org2.in .sq{animation:sqIn .55s var(--ease) calc(1.15s + var(--i,0) * .07s) backwards}
@keyframes sqIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ghost numeral, the outcome-card grammar on dark */
#agents .sq__ghost{position:absolute;right:.5rem;top:.15rem;font-family:var(--ff-display);font-weight:800;font-size:4.2rem;line-height:1;color:rgba(242,244,242,.04);pointer-events:none;z-index:1}

#agents .sq__h{margin:0}
#agents .sq__head{display:block;width:100%;text-align:left;background:none;border:0;padding:1.05rem 1.05rem .95rem;cursor:pointer;position:relative;z-index:2;border-radius:10px}
#agents .sq__no{display:block;color:rgba(242,244,242,.55);padding-right:2.2rem}
#agents .sq__no b{color:var(--green);font-weight:500}
#agents .sq__nm{display:block;margin-top:.35rem;font-family:var(--ff-display);font-weight:800;font-size:1.22rem;letter-spacing:-.02em;color:var(--ink)}
#agents .sq__remit{display:block;margin-top:.3rem;font-size:.8rem;line-height:1.5;color:rgba(242,244,242,.55)}
#agents .sq__meta{display:flex;gap:.45rem;margin-top:.7rem}

/* the +/- affordance */
#agents .sq__ic{position:absolute;top:.95rem;right:.95rem;width:1.65rem;height:1.65rem;border:1px solid var(--line-inv);border-radius:50%;transition:border-color .3s var(--ease),transform .35s var(--ease);display:none}
.js #agents .sq__ic{display:block}
#agents .sq__ic::before,#agents .sq__ic::after{content:"";position:absolute;left:50%;top:50%;background:rgba(242,244,242,.7);transition:transform .35s var(--ease),background .3s var(--ease)}
#agents .sq__ic::before{width:.7rem;height:1.5px;margin:-.75px 0 0 -.35rem}
#agents .sq__ic::after{width:1.5px;height:.7rem;margin:-.35rem 0 0 -.75px}
#agents .sq:hover .sq__ic{border-color:rgba(31,209,95,.45)}
/* quarter-turn to a minus: the horizontal bar hides, the vertical bar lands flat */
#agents .sq.is-open .sq__ic{border-color:var(--green);transform:rotate(90deg)}
#agents .sq.is-open .sq__ic::before,#agents .sq.is-open .sq__ic::after{background:var(--green)}
#agents .sq.is-open .sq__ic::before{transform:scaleX(0)}

/* status chips */
#agents .chip{display:inline-flex;align-items:center;gap:.4rem;padding:.24rem .6rem;border-radius:100px;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
#agents .chip i{width:5px;height:5px;border-radius:50%;background:currentColor;display:block}
#agents .chip--live{background:var(--green-dim);color:var(--green)}
#agents .chip--learn{border:1px solid var(--line-inv);color:rgba(242,244,242,.55)}
@media (prefers-reduced-motion:no-preference){
  #agents .chip--live i{animation:tickBlink 2s var(--ease) infinite}
}

/* ---- the expanding dossier ---- */
#agents .sq__panel{display:grid;grid-template-rows:1fr}
.js #agents .sq__panel{grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .45s var(--ease),visibility 0s linear .45s}
.js #agents .sq.is-open .sq__panel{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .45s var(--ease),visibility 0s}
#agents .sq__clip{overflow:hidden;min-height:0}
#agents .sq__inner{padding:.9rem 1.05rem 1.05rem;border-top:1px solid var(--line-inv);position:relative;z-index:2}
#agents .sq__duties{display:grid;gap:.42rem}
#agents .sq__duties li{position:relative;padding-left:.95rem;font-size:.8rem;line-height:1.5;color:rgba(242,244,242,.66)}
#agents .sq__duties li::before{content:"";position:absolute;left:0;top:.5em;width:.3rem;height:.3rem;border-radius:50%;background:var(--green)}
#agents .sq__beltk{margin-top:.95rem;color:rgba(242,244,242,.45)}
#agents .sq__belt{display:flex;flex-wrap:wrap;align-items:center;row-gap:.25rem;margin-top:.45rem}
#agents .sq__belt li{font-family:var(--ff-mono);font-size:.5875rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(242,244,242,.72);white-space:nowrap}
#agents .sq__belt li+li::before{content:"\203A";color:var(--green);margin-inline:.5rem;letter-spacing:0}
#agents .sq__foot{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.95rem}
#agents .fchip{border:1px solid var(--line-inv);border-radius:100px;padding:.22rem .6rem;font-family:var(--ff-mono);font-size:.5625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,244,242,.5);white-space:nowrap}

/* open-panel content settles in */
@media (prefers-reduced-motion:no-preference){
  .js #agents .sq .sq__inner{opacity:0;translate:0 6px;transition:opacity .3s var(--ease),translate .3s var(--ease)}
  .js #agents .sq.is-open .sq__inner{opacity:1;translate:0 0;transition-delay:.14s}
}

/* helper line */
#agents .org2__hint{margin-top:1.5rem;text-align:center;color:rgba(242,244,242,.38)}

/* ---- pulses: junction dot + travelling spark, desktop and motion only ---- */
#agents .pulse{display:none}

/* ==========================================================================
   LAYOUT TIERS
   under 640: stacked list, squadron connectors hidden (stems remain)
   640 to 979: two columns, connectors hidden
   980 up: the full chart - 4x2, buses, spine, drops, pulses
   ========================================================================== */
@media (min-width:640px) and (max-width:979.98px){
  #agents .row4{grid-template-columns:1fr 1fr}
  #agents .rowg{padding-top:0}
  #agents .tree{gap:var(--og)}
  #agents .tree::after{content:"";position:absolute;top:calc(-1 * var(--treegap));left:50%;width:1px;height:var(--treegap);background:var(--conn);display:none}
}
@media (max-width:979.98px){
  #agents .rowg{padding-top:0}
  #agents .tree{gap:var(--og)}
  #agents .t-q + .lk--stem2{height:1.6rem}
}
@media (min-width:980px){
  #agents .row4{grid-template-columns:repeat(4,1fr)}
  #agents .bus,#agents .lk--spine{display:block}
  #agents .tree::before,#agents .rowg--2::before{display:block}
  #agents .sq::before{display:block}
  /* the junction dot is structure and renders regardless of motion preference */
  #agents .pulse{display:block;position:absolute;top:calc(-1 * var(--drop));left:50%;width:.4375rem;height:.4375rem;margin:-.21875rem 0 0 -.21875rem;border-radius:50%;background:var(--green);z-index:1}
  @media (prefers-reduced-motion:no-preference){
    #agents .org2.in .pulse::after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;border-radius:50%;background:#7fe0a1;animation:pdrop 1.8s linear infinite;animation-delay:calc(1.9s + var(--i,0) * .22s)}
    @keyframes pdrop{0%{transform:translateY(0);opacity:0}14%{opacity:1}86%{opacity:1}100%{transform:translateY(var(--drop));opacity:0}}
    #agents .sq:hover .pulse::after,#agents .sq.is-hot .pulse::after,#agents .sq.is-open .pulse::after{animation-duration:.9s}
    /* sparks riding the stems and the spine */
    #agents .lk__spark{position:absolute;left:50%;top:0;width:3px;height:3px;margin-left:-1.5px;border-radius:50%;background:#7fe0a1;opacity:0}
    #agents .org2.in .lk--stem1 .lk__spark{animation:lkRun 2.4s linear infinite 1.6s}
    #agents .org2.in .lk--stem2 .lk__spark{animation:lkRun 2.4s linear infinite 2.1s}
    #agents .org2.in .lk--spine .lk__spark{animation:lkRun 3.4s linear infinite 2.5s}
    @keyframes lkRun{0%{top:0;opacity:0}12%{opacity:1}86%{opacity:1}100%{top:calc(100% - 3px);opacity:0}}
  }
}

/* tier-2: the spine draw hands itself to the scroll (site scrub grammar) */
@supports (animation-timeline: view()){
@media (min-width:980px) and (min-height:700px) and (prefers-reduced-motion:no-preference){
  .js #agents .lk--spine{transition:none;animation:spineScrub linear both;animation-timeline:view();animation-range:entry 30% contain 50%}
  @keyframes spineScrub{from{transform:scaleY(0)}to{transform:scaleY(1)}}
}}

/* cursor-tracked glow on the cards (site .glow-grid grammar) */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  #agents .sq::after{content:"";position:absolute;inset:0;border-radius:10px;pointer-events:none;z-index:1;opacity:0;transition:opacity .35s var(--ease);background:radial-gradient(11rem circle at var(--gx,50%) var(--gy,42%),var(--green-dim),transparent 65%)}
  #agents .sq:hover::after{opacity:1}
}

/* ---- print: nothing may hold at opacity 0 or scale 0 ---- */
@media print{
  #agents .rv,#agents .sq{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  #agents .lk,#agents .bus,#agents .sq::before{transform:none!important;animation:none!important}
  #agents .pulse::after,#agents .lk__spark{display:none!important}
}
@media (forced-colors:active){
  #agents .sq__ghost{display:none}
}

/* ---- reduced motion: targeted opt-outs (site discipline) ---- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  #agents .rv,#agents .sq{opacity:1!important;transform:none!important}
  #agents .lk--stem1,#agents .lk--stem2,#agents .lk--spine,#agents .bus,#agents .sq::before{transform:none!important;animation:none!important}
  #agents .aurora::before,#agents .aurora::after{animation:none!important}
  #agents .pulse::after,#agents .lk__spark{display:none!important}
  .js #agents .sq .sq__inner{opacity:1;translate:none;transition:none}
}

/* ==========================================================================
   2026-08-07 - Shane, phone review of the live site
   ========================================================================== */
/* "See how it works" removed from the hero on PHONES only (Shane: "remove this
   from the mobile hero, it's confusing"). It sat directly under the primary
   CTA where, stacked full-width, two buttons read as two equal choices - the
   satisficing reader picks neither. Desktop keeps the secondary path, so this
   rule is bounded by max-width and can never leak upward. The #fix anchor is
   still reachable on a phone from the burger menu. */
@media (max-width:35.9375em){
  .hero__actions .btn--ghost{display:none}
}

/* Booking calendar goes DARK in its stacked form (Shane 2026-08-07: "make the
   booking calendar dark themed on mobile it will sit a lot better").
   NOT a repaint: every colour inside .cx comes from a token, and the site
   already owns a dark palette - this pins the SAME token set the dark islands
   use (.g-black/.foot/.dash, main.css ~line 113), so the calendar cannot drift
   from the rest of the site's dark surfaces. `.cal` reads --surface-2 for its
   card and --line for its border, so the card flips with the tokens.
   Bounded by max-width and tied to the 900px breakpoint where the calendar
   already stacks, so the dark form and the stacked form always agree, and
   desktop cannot move. color-scheme keeps the native <select> and any
   scrollbar dark instead of rendering a light OS widget on a dark card. */
@media (max-width:56.25em){
  .cal--cx{
    --surface:#111411;
    --surface-2:#0d100d;
    --ink:#f2f4f2;
    --muted:#9aa39b;
    --muted-2:rgba(154,163,155,.82);
    --line:#1e231f;
    --line-2:#2a322b;
    --green-t:#1fd15f;
    --green-dim:rgba(31,209,95,.12);
    --green-dim-2:rgba(31,209,95,.06);
    color:var(--ink);
    color-scheme:dark;
  }
}

/* Header CTA de-duplication, phones only. Paired with the .nav--cta-dup
   observer in main.js (see the comment there for why the pill is suppressed
   rather than deleted). Bounded by max-width so the desktop header is
   untouched, and keyed on a class that only ever appears when JS is running -
   with JS off the pill stays, which is the pre-existing behaviour. */
@media (max-width:939px){
  .nav--cta-dup .nav__cta{display:none}
}

/* #offer header -> green card cushion on phones (Shane 2026-08-07: "add a
   v tiny bit of cushion between title and top of box on mobile").
   MEASURED, not guessed: the gap was 0px. The only .ofold margin-top lives
   inside @media (min-width:901px), so below that the h2 and the card were
   flush - the two paragraphs removed earlier tonight (the verticals line and
   the craft line) had been the sole separation. This is the complementary
   max-width half of that existing rule, so the two can never both apply. */
@media (max-width:56.25em){
  #offer .ofold{margin-top:1rem}
}

/* ==========================================================================
   #problem section, PHONES ONLY (Shane 2026-08-07)
   ========================================================================== */
/* 1. The app icons light up as you scroll.
   They sit at grayscale(1)/opacity .66 at rest and only regain colour via
   `.fp:hover` - which a touch device never fires, so on a phone they were
   permanently grey. `.fp` is now in main.js's hot-band observer (the same one
   .step/.ocard/.area already use), which adds .is-hot while the card is in the
   middle third of the viewport and removes it on the way out - so they ignite
   and fade as the section passes. That observer is gated on `(hover:none)` and
   on prefers-reduced-motion, so a mouse-driven desktop keeps hover as before
   and a reduced-motion visitor gets no ignition at all.
   The existing .35s filter/opacity transition does the fade; the stagger below
   makes it read as a sweep across the tray rather than five bulbs on a switch. */
.fp.is-hot .fp__tool img{filter:none;opacity:1}
.fp.is-hot .fp__tool:nth-child(2) img{transition-delay:.07s}
.fp.is-hot .fp__tool:nth-child(3) img{transition-delay:.14s}
.fp.is-hot .fp__tool:nth-child(4) img{transition-delay:.21s}
.fp.is-hot .fp__tool:nth-child(5) img{transition-delay:.28s}

@media (max-width:56.25em){
  /* 2. Bigger sticky notes - MEASURED, not eyeballed. At 390px the three notes
     rendered 166/128/156px against a 355px card, so ~150px average. Shane
     wanted them "halfway between where it is now and the box itself" and
     explicitly NOT the card's width: 150 -> 355 puts the midpoint at ~252px,
     which is 71% of the card. Font goes up with it, or a wider note just
     reads as a small line of text swimming in amber. Padding is already in
     `em`, so it scales with the type on its own.
     The base rule also carries `max-width:11.5rem` (184px), which silently
     clamped the first attempt back to 189px - so the cap is lifted here too,
     on phones only. Desktop keeps its 184px cap and its content-width notes. */
  .fp__slips .slip{width:71%;max-width:none;font-size:.84rem}
}

/* /apply/ intro, broken out of one dense block (Shane 2026-08-07: "it just
   looks like one big block of text... format this way better"). Same words -
   the six areas simply stop being a comma list buried mid-sentence and become
   a scannable column set, which is the "people scan, they do not read" rule
   from the bible applied literally. */
.apply__areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.4rem 1rem;list-style:none;margin:1.15rem 0 0;padding:0}
.apply__areas li{position:relative;padding-left:1rem;font-family:var(--ff-mono);font-size:.6875rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.apply__areas li::before{content:"";position:absolute;left:0;top:.5em;width:.32em;height:.32em;border-radius:50%;background:var(--green)}
.page__keep{margin-top:1.15rem;color:var(--ink);font-weight:600}
