/* ============================================================================
   home.css: Financial Brain founder homepage campaign layer (2026-09-02).
   Loaded after founder.css and scoped to .home-page.
   ============================================================================ */

.home-page{
  --home-paper:#f4f3ee;
  --home-white:#ffffff;
  --home-night:#071725;
  --home-night-2:#0d2638;
  --home-blue:#0e5daf;
  --home-blue-soft:#dcecff;
  --home-teal:#17685f;
  --home-teal-bright:#48c7ba;
  --home-copper:#93421f;
  --home-line:#cfd7d5;
  background:var(--home-paper);
}

.home-page .hdr{position:absolute;z-index:20;top:0;left:0;width:100%;background:rgba(244,243,238,.9);border-bottom:1px solid rgba(207,215,213,.74);backdrop-filter:blur(14px)}
.home-page .hdr .wrap{max-width:1220px}
.home-page .hdr-nav a{color:var(--ink)}

/* Hero */
.home-hero{position:relative;min-height:clamp(680px,88svh,790px);overflow:hidden;background:var(--home-paper);isolation:isolate}
.home-hero-art{position:absolute;z-index:-2;inset:72px 0 0 36%;overflow:hidden}
.home-hero-art picture,.home-hero-art img{display:block;width:100%;height:100%}
.home-hero-art img{object-fit:cover;object-position:center;filter:saturate(.96) contrast(1.015)}
/* MOTION-6.2 (motion plan 2026-09-08 s6.2): the network drawn on the wall of the
   composite, traced and brought alive. This replaced five free-floating dots that sat
   at percentage positions and therefore landed on nothing in particular. The SVG
   repeats the <img> crop (viewBox 1672x941 + slice = object-fit cover, object-position
   center), so every dot stays welded to the node it was traced from at every width.
   It is inside .home-hero-art (z -2), which keeps it UNDER .home-hero::before. Never
   move it above the wash: the wash is what holds the h1 at AA.

   ANIMATIONS ARE OPACITY AND TRANSFORM ONLY. A first cut animated stroke-dashoffset on
   three travel polylines and was REVERTED 2026-09-08: measured against HEAD over 8 idle
   seconds at 1440 with the hero scrolled 4000px OFF SCREEN, it cost 480 layouts, 480
   style recalcs and 0.360s of main thread against HEAD's 0 / 0 / 0.001s, and it never
   stopped, because a hidden animation still ticks. An isolated bench put the same travel
   as a node cascade at 0.004s against dashoffset's 0.067s, and offset-path worse than
   both at 360 layouts. So the signal travelling along a line is drawn the way the plan
   describes the scene itself: nodes brightening one after another.

   THESE ANIMATIONS ARE OPACITY ONLY, AND THAT IS NOT A STYLE PREFERENCE. Chrome does not
   promote an SVG shape to its own compositor layer, so animating transform on a <circle>
   re-lays-out the SVG subtree every frame. Measured on this page over 6 seconds in view:
   opacity alone 0 layouts, transform:scale 360, animating the r attribute 360. The nodes
   therefore brighten and dim rather than swell. Do not add transform, scale or r to a
   keyframe in this layer, and do not reintroduce stroke-dashoffset. The five HTML dots in
   .home-hero-dots are ordinary elements and may keep their scale; the rule is about SVG. */
/* The five dots main shipped, unchanged except for the class name. They are the mobile
   signal layer and the reduced-motion fallback, so this rule set must keep working. */
.home-hero-dots{position:absolute;inset:0;pointer-events:none}
.home-hero-dots span{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;opacity:.24;
  box-shadow:0 0 0 5px rgba(14,93,175,.12),0 0 22px 7px rgba(14,93,175,.28)}
.home-hero-dots span:nth-child(1){left:67%;top:12%}
.home-hero-dots span:nth-child(2){left:82%;top:27%;animation-delay:-1.1s}
.home-hero-dots span:nth-child(3){left:73%;top:48%;animation-delay:-2.3s}
.home-hero-dots span:nth-child(4){left:91%;top:59%;animation-delay:-3.2s}
.home-hero-dots span:nth-child(5){left:86%;top:78%;animation-delay:-4.1s}
/* Above 760 the traced network takes over and the free-floating dots would double it. */
@media (min-width:761px){.home-hero-dots{display:none}}
.home-hero-signals{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.home-hero-signals polyline{fill:none;stroke:#0f7fe0;stroke-linecap:round;stroke-linejoin:round}
.home-hero-signals .hs-lines polyline{stroke-width:1.6;opacity:.32}
/* Travel nodes sit dark until motion is on, so a static page shows only the traced
   network and not thirty stray dots. */
.home-hero-signals .hs-travel circle{fill:#5cc0ff;opacity:0}
.home-hero-signals .hs-nodes circle{fill:#1a86e6;opacity:.42}
.home-hero::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--home-paper) 0%,var(--home-paper) 34%,rgba(244,243,238,.96) 41%,rgba(244,243,238,.7) 51%,rgba(244,243,238,0) 68%)}
.home-hero::after{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:0;height:20%;pointer-events:none;
  background:linear-gradient(0deg,var(--home-paper),rgba(244,243,238,0))}
.home-hero-inner{position:relative;z-index:2;display:flex;align-items:center;min-height:clamp(680px,88svh,790px);max-width:1220px;padding-top:72px;padding-bottom:38px}
.home-hero-copy{width:min(51%,620px)}
.home-kicker{font:700 12px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--home-copper);margin:0 0 18px}
.home-hero h1{font:650 clamp(58px,6.2vw,84px)/.92 var(--sans);letter-spacing:-.055em;max-width:10.6ch;margin:0 0 28px;text-wrap:balance}
.home-hero h1 span{display:block}
.home-hero h1 em{font-family:var(--serif);font-weight:500;color:var(--home-teal);letter-spacing:-.035em}
.home-hero .lede{font-size:20px;line-height:1.48;max-width:49ch;margin-bottom:24px;color:#263244}
.home-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 22px}
.home-primary{border-radius:4px;background:var(--home-night);color:var(--home-white);padding:16px 24px;box-shadow:0 14px 30px -20px rgba(7,23,37,.72)}
.home-primary:hover{background:var(--home-blue);color:var(--home-white)}
.home-secondary{color:var(--ink);font-weight:650;text-decoration-color:var(--home-copper);text-decoration-thickness:2px}
.home-hero .micro{margin-top:17px;max-width:54ch;color:#657083}
.home-image-note{position:absolute;right:24px;bottom:18px;z-index:3;padding:5px 9px;background:rgba(255,255,255,.78);color:#5b6575;
  font:500 11px/1.3 var(--sans);letter-spacing:.04em;backdrop-filter:blur(8px)}
.home-scroll{position:absolute;z-index:4;left:50%;bottom:22px;transform:translateX(-50%);color:var(--ink);font:650 11px/1.2 var(--sans);
  letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.home-scroll::after{content:"";display:inline-block;width:6px;height:6px;margin:0 0 3px 9px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg)}

/* Shared homepage typography and spacing */
.home-section{padding:clamp(88px,10vw,142px) 0;position:relative}
.home-section-head{max-width:860px;margin-bottom:clamp(42px,6vw,72px)}
.home-section .eyebrow,.home-demo .eyebrow,.home-final .eyebrow{color:var(--home-copper)}
.home-section h2,.home-demo h2,.home-final h2{font-size:clamp(42px,5.7vw,72px);line-height:.98;letter-spacing:-.05em;max-width:14ch;text-wrap:balance}
.home-section-head>p:last-child{font-size:20px;line-height:1.55;max-width:58ch;color:var(--mute)}
.home-section em,.home-demo em,.home-final em{font-weight:500;color:var(--home-teal)}

/* Signature context chapter. The animation is code-native so lines and type stay
   crisp at every resolution without adding another autoplay video. */
.home-context{--context-wire:1;--context-answer:1;--context-drift:1;position:relative;background:var(--home-paper);border-top:1px solid var(--home-line)}
.home-motion-ready .home-context{--context-wire:0;--context-answer:0}
.context-scroll{height:165svh;background:var(--home-night)}
.context-sticky{position:sticky;top:0;display:grid;align-items:center;min-height:100svh;overflow:hidden;color:var(--home-white);isolation:isolate}
.context-sticky::before{content:"";position:absolute;z-index:-2;width:min(72vw,980px);aspect-ratio:1;right:-18vw;top:-42%;border-radius:50%;background:radial-gradient(circle,rgba(14,93,175,.34),rgba(14,93,175,.08) 42%,transparent 70%)}
.context-sticky::after{content:"";position:absolute;z-index:-2;width:min(52vw,720px);aspect-ratio:1;left:-28vw;bottom:-44%;border-radius:50%;background:radial-gradient(circle,rgba(72,199,186,.2),transparent 68%)}
.context-grid{position:absolute;z-index:-3;inset:0;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,transparent,black 20%,black 85%,transparent)}
.context-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(540px,1.28fr);gap:clamp(34px,5vw,76px);align-items:center;min-height:100svh;padding-top:clamp(78px,8vw,110px);padding-bottom:clamp(52px,6vw,78px)}
.context-copy{position:relative;z-index:3;align-self:center}
.context-copy .eyebrow{color:#f0a17f;margin-bottom:15px}
.context-copy h2{margin:0 0 24px;max-width:10ch;color:var(--home-white);font:650 clamp(48px,5.4vw,76px)/.93 var(--sans);letter-spacing:-.058em;text-wrap:balance}
.context-copy h2 em{font-family:var(--serif);font-weight:500;color:#7fc1ff;letter-spacing:-.035em}
.context-copy>p:not(.eyebrow){max-width:38ch;color:#b9c8d4;font-size:18px;line-height:1.55}
.context-phases{display:flex;gap:10px;margin-top:32px}
.context-phases span{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.14);color:#8fa4b5;font:650 11px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;transition:border-color .25s ease,background .25s ease,color .25s ease}
.context-phases b{color:#6f8495;font-size:10px}
.home-context[data-phase="gather"] [data-context-phase="gather"],.home-context[data-phase="connect"] [data-context-phase="connect"],.home-context[data-phase="review"] [data-context-phase="review"]{border-color:rgba(127,193,255,.54);background:rgba(14,93,175,.2);color:var(--home-white)}
.home-context[data-phase="gather"] [data-context-phase="gather"] b,.home-context[data-phase="connect"] [data-context-phase="connect"] b,.home-context[data-phase="review"] [data-context-phase="review"] b{color:#7fc1ff}
.context-system{position:relative;width:100%;max-width:760px;aspect-ratio:6/5;margin:0;justify-self:end;filter:drop-shadow(0 42px 70px rgba(0,0,0,.2))}
.context-caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.context-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.context-wire,.context-energy{fill:none;vector-effect:non-scaling-stroke}
.context-wire{stroke:rgba(127,193,255,.46);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--context-wire));transition:stroke .25s ease}
.context-output{stroke:#48c7ba;stroke-width:2;stroke-dashoffset:calc(1 - var(--context-answer))}
.context-energy{stroke:#fff;stroke-width:2.3;stroke-linecap:round;stroke-dasharray:.025 .18;opacity:var(--context-wire)}
.energy-b,.energy-e{animation-delay:-1.1s}.energy-c,.energy-f{animation-delay:-2.2s}.energy-d{animation-delay:-3.1s}
.context-node{position:absolute;z-index:2;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:11px;min-width:142px;padding:13px 15px;background:rgba(13,38,56,.9);border:1px solid rgba(255,255,255,.17);box-shadow:0 18px 42px -30px rgba(0,0,0,.95);backdrop-filter:blur(14px);translate:-50% -50%;transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1),border-color .25s ease}
.context-node>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(14,93,175,.32);border:1px solid rgba(127,193,255,.44);color:#a9d5ff;font:700 10px/1 var(--sans);letter-spacing:.06em}
.context-node strong{align-self:end;color:var(--home-white);font:650 14px/1.15 var(--sans)}
.context-node small{align-self:start;color:#8fa4b5;font:500 11px/1.25 var(--sans)}
.node-records{left:12%;top:17%}.node-documents{left:83%;top:16%}.node-messages{left:7%;top:50%}.node-history{left:93%;top:50%}.node-business{left:10%;top:88%}.node-household{left:90%;top:88%}
.context-question{position:absolute;z-index:3;left:50%;top:42%;width:min(290px,42%);padding:18px 20px;background:var(--home-white);color:var(--ink);border:1px solid rgba(127,193,255,.7);box-shadow:0 26px 70px -32px rgba(0,0,0,.9),0 0 0 8px rgba(14,93,175,.08);translate:-50% -50%;transform:translateY(calc(var(--context-answer) * -42px));transition:transform .2s linear}
.context-question span{display:block;margin-bottom:7px;color:var(--home-blue);font:700 10px/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase}
.context-question strong{display:block;font:500 clamp(19px,1.8vw,24px)/1.18 var(--serif)}
.context-answer{position:absolute;z-index:4;left:50%;top:70%;width:min(390px,52%);padding:18px 20px;background:rgba(244,243,238,.98);color:var(--ink);border:1px solid rgba(72,199,186,.68);box-shadow:0 30px 80px -34px rgba(0,0,0,.95);opacity:var(--context-answer);translate:-50% -50%;transform:translateY(calc(22px - (var(--context-answer) * 22px)));transition:opacity .18s linear,transform .18s linear}
.context-answer-head{display:flex;align-items:center;gap:8px;padding-bottom:11px;margin-bottom:12px;border-bottom:1px solid var(--home-line)}
.context-mark{width:9px;height:9px;border-radius:50%;background:var(--home-teal);box-shadow:0 0 0 5px rgba(23,104,95,.12)}
.context-answer-head b{font:650 12px/1.2 var(--sans)}
.context-answer-head small{margin-left:auto;color:#4f5f73;font:500 10px/1.2 var(--sans)}
.context-answer>strong{display:block;font:650 19px/1.2 var(--sans)}
.context-answer>p{margin:5px 0 13px;color:#526074;font-size:13px;line-height:1.42}
.context-answer-state{display:flex;flex-wrap:wrap;gap:6px}
.context-answer-state span{padding:5px 7px;background:#e4f4f1;color:var(--home-teal);font:700 9px/1.1 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.context-scroll-note{position:absolute;left:50%;bottom:22px;display:flex;align-items:center;gap:10px;translate:-50% 0;color:#7f95a7;font:650 10px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;opacity:calc(1 - var(--context-answer));transition:opacity .2s linear}
.context-scroll-note span{position:relative;width:28px;height:1px;background:rgba(255,255,255,.18);overflow:hidden}
.context-scroll-note span::after{content:"";position:absolute;inset:0;background:#7fc1ff;transform:scaleX(var(--context-wire));transform-origin:left}
.context-after{position:relative;padding:clamp(76px,9vw,124px) 0 clamp(88px,10vw,142px);background:var(--home-paper)}
.context-after::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;background-image:linear-gradient(rgba(14,93,175,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(14,93,175,.055) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}
.research-layout{position:relative;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(54px,9vw,120px);align-items:start}
.research-intro{position:sticky;top:112px}
.research-equation{display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 12px;margin:20px 0 26px;padding-bottom:22px;border-bottom:1px solid var(--home-line);font-family:var(--sans);letter-spacing:-.065em}
.research-equation span,.research-equation strong{display:block;font-size:clamp(55px,6.7vw,88px);line-height:.78}
.research-equation span{grid-column:1;color:var(--home-blue);font-weight:650}
.research-equation b{grid-column:2;grid-row:1/3;align-self:center;color:var(--home-copper);font-size:clamp(42px,5vw,66px);font-weight:500;line-height:1}
.research-equation strong{grid-column:1;margin-top:13px;color:var(--home-teal);font-family:var(--serif);font-style:italic;font-weight:500}
.research-intro h2{max-width:10.5ch;margin:0 0 22px;font-size:clamp(43px,5.2vw,66px);line-height:.98;letter-spacing:-.052em;text-wrap:balance}
.research-note{max-width:39ch;margin:0;color:#536074;font-size:14px;line-height:1.55}
.pattern-list{border-top:1px solid var(--home-line)}
.pattern-list article{position:relative;display:grid;grid-template-columns:54px 1fr;gap:20px;padding:30px 0 32px;border-bottom:1px solid var(--home-line)}
.pattern-list article>span{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(14,93,175,.35);border-radius:50%;color:var(--home-blue);font:700 11px/1 var(--sans)}
.pattern-name{margin:0 0 8px;color:var(--home-copper);font:700 10px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.pattern-list h3{max-width:20ch;margin:0 0 10px;font-size:clamp(25px,2.5vw,34px);line-height:1.08;letter-spacing:-.035em}
.pattern-list div>p:last-child{max-width:49ch;margin:0;color:#536074;font-size:16px;line-height:1.55}
.context-label{display:block;margin-bottom:8px;color:var(--home-blue);font:700 10px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.source-pills{display:flex;flex-wrap:wrap;gap:8px}
.source-pills span{padding:7px 10px;border:1px solid var(--home-line);background:var(--home-white);color:#4e5b6d;font:600 11px/1.2 var(--sans)}

/* Product demonstration */
.home-demo{position:relative;overflow:hidden;padding:clamp(96px,11vw,154px) 0;background:var(--home-night);color:var(--home-white)}
.home-demo::before{content:"";position:absolute;width:700px;aspect-ratio:1;right:-220px;top:-260px;border-radius:50%;
  background:radial-gradient(circle,rgba(23,110,209,.42),rgba(23,110,209,0) 67%)}
.home-demo-grid{position:relative;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(50px,8vw,110px);align-items:center}
.home-demo h2{color:var(--home-white);margin:14px 0 24px}
.home-demo .eyebrow{color:#f0a17f}
.home-demo h2 em{color:#7fc1ff}
.home-demo-copy>p:last-of-type{font-size:19px;line-height:1.55;color:#b9c8d4;max-width:44ch}
.home-demo .home-secondary{color:var(--home-white);text-decoration-color:var(--home-teal-bright)}
.question-ledger{display:grid;gap:0;margin:30px 0 28px;padding:0;border-top:1px solid rgba(255,255,255,.16);list-style:none}
.question-ledger li{display:grid;grid-template-columns:32px 1fr;gap:11px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.16);color:#d6e0e8;font:550 14px/1.4 var(--sans)}
.question-ledger span{color:#7fc1ff;font:700 10px/1.5 var(--sans);letter-spacing:.08em}
.demo-shell{position:relative;padding:18px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);box-shadow:0 34px 82px -40px rgba(0,0,0,.8)}
.demo-window{background:var(--home-white);color:var(--ink)}
.demo-bar{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--home-line);font:650 13px/1.3 var(--sans)}
.demo-dot{width:11px;height:11px;border-radius:50%;background:var(--home-teal)}
.demo-meta{margin-left:auto;color:var(--mute);font-size:11px;font-weight:500}
.brief-question{padding:21px 22px;background:var(--home-blue-soft);border-bottom:1px solid #b9d9ff}
.brief-question strong{display:block;font:500 clamp(22px,2vw,28px)/1.2 var(--serif)}
.brief-stack{display:grid;padding:8px 22px 0}
.brief-row{display:grid;grid-template-columns:76px 1fr;gap:16px;padding:17px 0;border-bottom:1px solid var(--home-line)}
.brief-row>span{padding-top:2px;color:var(--home-blue);font:750 9px/1.3 var(--sans);letter-spacing:.13em;text-transform:uppercase}
.brief-row strong{display:block;font:650 15px/1.35 var(--sans)}
.brief-row p{margin:4px 0 0;color:#5c6879;font-size:12px;line-height:1.45}
.brief-gap{border-bottom-style:dashed}
.brief-gap>span{color:var(--home-copper)}
.brief-next{margin:0 -22px;padding:18px 22px;background:#e4f4f1;border-bottom:0}
.brief-next>span{color:var(--home-teal)}
.demo-window>.source-pills{padding:15px 22px 19px;border-top:1px solid var(--home-line)}

/* Human decision boundary */
.home-boundary{padding-bottom:0;background:var(--home-paper)}
/* The four steps are a real sequence, and the section's argument is that 01 to 03
   are what the Brain does and 04 is where a person decides. The rail carries that:
   solid between the first three, dashed across the hand-off, and the fourth node is
   an outlined teal ring rather than a filled blue one. Boxes removed; the rail and
   the nodes do the work. */
.decision-flow{--flow-gap:clamp(22px,2.6vw,38px);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--flow-gap);margin:56px 0 72px}
.decision-flow article{position:relative;padding-top:58px}
.decision-flow article::before{content:"";position:absolute;top:19px;left:48px;width:calc(100% + var(--flow-gap) - 48px);border-top:1px solid var(--home-line)}
.decision-flow article:nth-child(3)::before{border-top-style:dashed;border-top-color:#a9b6b3}
.decision-flow article:last-child::before{content:none}
.decision-flow span{position:absolute;top:0;left:0;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:var(--home-blue);color:var(--home-white);font:700 12px/1 var(--sans);letter-spacing:.02em}
.decision-flow article:last-child span{background:transparent;border:2px solid var(--home-teal);color:var(--home-teal)}
.decision-flow h3{font-size:clamp(22px,2.1vw,26px);letter-spacing:-.025em;margin-bottom:10px}
.decision-flow p{font-size:15px;line-height:1.5;color:var(--mute);margin:0;max-width:30ch}

/* Honest qualification */
/* The continuity fear. Jay's field feedback says it resonates hardest; the research
   says nobody buys continuity as insurance, so it is named here and never made the ask.
   Pale blue, which breaks a run of three paper sections and is the same value the
   closing section uses, so it reads as a system rather than a one-off. The four items
   are the four things the rail sentence itself lists. */
.home-continuity{background:var(--home-blue-soft);padding:clamp(84px,9.5vw,132px) 0}
.home-continuity .eyebrow{color:#8a3a1a;margin:0 0 14px}
.home-continuity h2{margin:0 0 22px;max-width:16ch;font-size:clamp(42px,5.4vw,70px);line-height:.98;letter-spacing:-.05em;text-wrap:balance}
.home-continuity h2 em{font-weight:500;color:#0f4f47}
.continuity-lede{max-width:54ch;margin:0 0 clamp(34px,4vw,50px);font-size:20px;line-height:1.55;color:#2b3a4d}
.continuity-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 26px;padding:0;list-style:none;border-top:1px solid rgba(7,23,37,.22)}
.continuity-list li{padding:20px 18px 20px 0;font:650 clamp(19px,2vw,26px)/1.2 var(--sans);letter-spacing:-.03em;color:var(--ink)}
.continuity-list li+li{border-left:1px solid rgba(7,23,37,.22);padding-left:22px}
.continuity-fine{max-width:60ch;margin:0;font-size:15px;line-height:1.55;color:#41506a}
/* A11Y-5 (audit 2026-09-01), WCAG 1.4.10 Reflow. The reveal state translates the right-hand
   fit card 22px to the RIGHT (.home-fit:not(.in-view) .fit-card:last-child), and unlike
   .home-demo and .home-own this section had no clip, so those 22px landed outside the
   viewport and the document scrolled sideways: measured 392 at a 390 viewport and 322 at 320,
   on every visit that does not ask for reduced motion. Pre-dates this batch.
   overflow-x:clip, NOT overflow:hidden: hidden would make this a scroll container and break
   the position:sticky panel in the context section above it. */
.home-fit{position:relative;overflow-x:clip;padding:clamp(88px,10vw,142px) 0;background:var(--home-paper);border-top:1px solid var(--home-line)}
.fit-heading{max-width:790px;margin-bottom:clamp(38px,4.5vw,58px)}
.fit-heading .eyebrow{color:var(--home-copper);margin:0 0 13px}
.fit-heading h2{max-width:17ch;margin:0 0 18px;font-size:clamp(43px,5.4vw,68px);line-height:.98;letter-spacing:-.052em;text-wrap:balance}
.fit-heading h2 em{color:var(--home-teal);font-weight:500}
.fit-heading>p:last-child{max-width:55ch;margin:0;color:#4f5d70;font-size:18px;line-height:1.58}
.fit-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(26px,4vw,62px);align-items:start}
.fit-card{padding:0}
.fit-yes{padding:clamp(28px,3.5vw,46px);box-shadow:0 26px 64px -46px rgba(7,23,37,.62)}
.fit-no{padding:clamp(4px,.8vw,12px) 0 0}
.fit-yes{background:var(--home-teal);color:var(--home-white)}
.fit-no{background:transparent;color:var(--ink)}
.fit-label{display:inline-block;margin:0 0 24px;font:750 11px/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase}
.fit-yes .fit-label{color:#bde9e2}.fit-no .fit-label{color:var(--home-copper)}
.fit-card ul{display:grid;gap:0;margin:0;padding:0;list-style:none}
.fit-card li{position:relative;padding:17px 0 17px 30px;border-top:1px solid currentColor;font-size:16px;line-height:1.48}
.fit-card li::before{content:"";position:absolute;left:2px;top:26px;width:10px;height:10px;border-radius:50%;background:currentColor}
.fit-no li::before{top:29px;width:14px;height:2px;border-radius:0;background:var(--home-copper);opacity:.85}
.fit-no li{border-color:rgba(7,23,37,.16);color:#4f5d70;padding-left:28px}
.fit-yes li{border-color:rgba(255,255,255,.23);color:#eef8f6}
.fit-yes li::before{box-shadow:0 0 0 4px rgba(255,255,255,.1)}
.fit-no li{border-color:var(--home-line);color:#4e5a6c}
.fit-no li::before{background:transparent;border:2px solid #9da8b4}
.setup-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;border-top:1px solid rgba(7,23,37,.18);border-bottom:1px solid rgba(7,23,37,.18)}
.setup-strip>div{position:relative;padding:28px 30px 30px 48px}
.setup-strip>div+div{border-left:1px solid rgba(7,23,37,.18)}
.setup-strip span{position:absolute;left:0;top:32px;color:var(--home-blue);font:750 10px/1 var(--sans);letter-spacing:.08em}
.setup-strip strong{display:block;margin-bottom:7px;font:650 18px/1.3 var(--sans)}
.setup-strip p{margin:0;color:#586679;font-size:14px;line-height:1.5}

/* Answers switching inertia, the blocking objection in the research. White, so it lands
   as a clean beat straight after the dark worked example. Four items, deliberately not
   numbered: they are a set of guarantees, not a sequence. */
.home-stays{background:var(--home-white);border-top:1px solid var(--home-line);border-bottom:1px solid var(--home-line);padding:clamp(64px,7.5vw,104px) 0}
.stays-head{max-width:720px;margin-bottom:clamp(34px,4vw,52px)}
.stays-head h2{font-size:clamp(38px,4.6vw,58px);line-height:1;letter-spacing:-.05em;margin:10px 0 16px;max-width:15ch;text-wrap:balance}
.stays-head>p{font-size:19px;line-height:1.5;max-width:52ch;color:var(--mute)}
.stays-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,34px)}
.stays-grid article{padding-top:18px;border-top:2px solid var(--home-teal)}
.stays-grid strong{display:block;font:650 18px/1.25 var(--sans);letter-spacing:-.02em;margin-bottom:8px}
.stays-grid p{margin:0;font-size:15px;line-height:1.5;color:var(--mute)}
.home-own{background:var(--home-night-2);color:var(--home-white);padding:clamp(74px,9vw,120px) 0;overflow:hidden}
.ownership-panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:50px;align-items:center}
.ownership-panel h2{color:var(--home-white);font-size:clamp(38px,5vw,62px);max-width:12ch;margin:12px 0 20px}
.ownership-panel .eyebrow{color:#f0a17f}
.ownership-panel p{color:#c1ced8;font-size:18px}
.ownership-panel .fine{font-size:13px;line-height:1.55;color:#96a9b8}
.ownership-review{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.15)}
.ownership-diagram{display:grid;gap:10px;position:relative}
.ownership-node{display:flex;align-items:center;gap:14px;padding:16px 18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18)}
.ownership-node strong{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--home-blue);font:700 12px/1 var(--sans)}
.ownership-node span{font:600 14px/1.35 var(--sans)}
.ownership-node small{display:block;color:#9fb0be;font-size:12px;font-weight:400}
.ownership-arrow{text-align:center;color:var(--home-teal-bright);font:700 18px/1 var(--sans)}

/* Founder and secondary work */
.home-founder{background:var(--home-white)}
.founder-layout{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);gap:clamp(44px,8vw,100px);align-items:center}
.founder-image{position:relative;margin:0}
.founder-image img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.82) contrast(1.04)}
.founder-image::after{content:"20 years";position:absolute;right:-18px;bottom:24px;padding:18px 20px;background:var(--home-blue);color:var(--home-white);
  font:650 18px/1 var(--serif);box-shadow:0 16px 30px -18px rgba(7,23,37,.7)}
.founder-copy h2{margin:12px 0 24px}
.founder-copy>p{font-size:19px;line-height:1.58;color:var(--mute)}
.founder-quote{margin:28px 0;padding:22px 0 22px 26px;border-left:3px solid var(--home-blue);color:var(--ink);font:500 23px/1.4 var(--serif)}
.home-more{background:var(--home-paper);border-top:1px solid var(--home-line)}
.home-work-band{background:var(--home-teal);color:var(--home-white);padding:clamp(50px,6vw,76px) 0;margin:clamp(34px,4.5vw,54px) 0}
.work-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.24)}
.work-door{--door-accent:#a8e5dc;position:relative;display:flex;flex-direction:column;gap:9px;padding:29px 24px 22px;background:var(--home-teal);color:var(--home-white);text-decoration:none;transition:background .18s ease}
.work-door::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--door-accent);transform:scaleX(.34);transform-origin:left;transition:transform .25s ease}
.work-door:nth-child(1){--door-accent:#4ade80}.work-door:nth-child(2){--door-accent:#d4b777}.work-door:nth-child(3){--door-accent:#f0a06a}
.work-door:hover,.work-door:focus-visible{background:#12564f}
.work-door:hover::before,.work-door:focus-visible::before{transform:scaleX(1)}
.work-pick{font:700 11px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#d6efeb}
.work-title{font:650 23px/1.18 var(--sans);letter-spacing:-.028em}
.work-line{flex:1;font-size:15px;line-height:1.45;color:#d6efeb}
.work-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font:600 13px/1.3 var(--sans);color:#d6efeb}
.work-meta b{margin-left:auto;font-size:17px;font-weight:400}
.work-door:hover .work-meta b{transform:translateX(4px)}
.work-meta b{transition:transform .18s ease}
.work-band-foot{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 30px;margin-top:26px}
.work-band-foot .dated{margin:0;font-size:15px}
.work-band-foot .dated a,.work-band-foot .link{color:var(--home-white);text-decoration-color:#a8e5dc}
.home-work-card{position:relative;min-height:420px;padding:clamp(30px,4vw,50px);overflow:hidden;border:1px solid var(--home-line)}
.home-work-card h3{font-size:clamp(34px,4vw,48px);margin:12px 0 18px;max-width:12ch}
.home-work-card>p{font-size:18px;line-height:1.5;max-width:34ch}
.home-work-card .link{display:inline-block;margin-top:18px}
.home-work-book{display:grid;grid-template-columns:minmax(130px,.62fr) 1.38fr;gap:clamp(30px,5vw,58px);align-items:center;max-width:820px;min-height:0;margin-inline:auto;background:var(--home-white)}
.home-work-book img{width:100%;max-width:190px;border:1px solid var(--home-line);box-shadow:0 24px 44px -30px rgba(7,23,37,.7)}
.home-work-book h3{font-size:clamp(31px,3vw,43px)}

/* Final invitation */
.home-final{position:relative;overflow:hidden;padding:clamp(100px,12vw,170px) 0;text-align:center;background:var(--home-blue-soft)}
.home-final::before,.home-final::after{content:"";position:absolute;border:1px solid rgba(23,110,209,.2);border-radius:50%}
.home-final::before{width:420px;aspect-ratio:1;left:-230px;top:-180px}
.home-final::after{width:560px;aspect-ratio:1;right:-300px;bottom:-310px}
.home-final .wrap{position:relative;display:flex;flex-direction:column;align-items:center}
.home-final h2{max-width:14ch;margin:12px auto 22px}
.home-final p{font-size:19px;max-width:50ch;color:var(--mute)}
.home-final .btn-invite{margin-top:12px}

@media (max-width:1240px) and (min-width:901px){
  .context-layout{grid-template-columns:minmax(275px,.68fr) minmax(500px,1.32fr);gap:28px}
  .context-copy h2{font-size:clamp(48px,5.4vw,66px)}
  .context-copy>p:not(.eyebrow){font-size:16px}
  .context-system{max-width:650px}
  .context-node{min-width:128px;padding:11px 12px;grid-template-columns:30px 1fr;column-gap:8px}
  .context-node>span{width:30px;height:30px}
  .context-node strong{font-size:13px}
  .context-node small{font-size:10px}
}

@media (max-width:900px){
  .continuity-list{grid-template-columns:1fr 1fr}
  .continuity-list li:nth-child(3){border-left:0}
  .continuity-list li:nth-child(n+3){border-top:1px solid rgba(7,23,37,.22)}
  .stays-grid{grid-template-columns:1fr 1fr;gap:24px}
  .context-scroll{height:auto}
  .context-sticky{position:relative;min-height:0;padding:clamp(92px,12vw,124px) 0 72px}
  .context-layout{grid-template-columns:1fr;gap:42px;min-height:0;padding-top:0;padding-bottom:0}
  .context-copy{max-width:660px}
  .context-copy h2{max-width:12ch;font-size:58px}
  .context-copy>p:not(.eyebrow){max-width:48ch}
  .context-system{justify-self:center;width:min(100%,600px);max-width:600px;aspect-ratio:1/1.35}
  .context-wires{display:none}
  .node-records{left:25%;top:10%}.node-documents{left:75%;top:10%}.node-messages{left:25%;top:27%}.node-history{left:75%;top:27%}.node-business{left:25%;top:44%}.node-household{left:75%;top:44%}
  .context-question{top:62%;width:76%;transform:none}
  .context-question::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:38px;background:linear-gradient(#7fc1ff,#48c7ba)}
  .context-answer{top:84%;width:80%}
  .context-scroll-note{display:none}
  .research-layout{grid-template-columns:1fr;gap:50px}
  .research-intro{position:relative;top:auto;max-width:700px}
  .research-equation{max-width:480px}
  .research-intro h2{max-width:13ch}
  .home-demo-grid,.ownership-panel,.founder-layout{grid-template-columns:1fr}
  .home-demo-grid{gap:58px}
  /* The rail turns vertical when the steps stack: same sequence, same dashed hand-off. */
  .decision-flow{grid-template-columns:1fr;gap:0;margin:40px 0 56px}
  .decision-flow article{padding:0 0 30px 58px}
  .decision-flow article::before{top:46px;left:19px;width:0;height:calc(100% - 46px);border-top:0;border-left:1px solid var(--home-line)}
  .decision-flow article:nth-child(3)::before{border-top-style:solid;border-left-style:dashed;border-left-color:#a9b6b3}
  .decision-flow article:last-child{padding-bottom:0}
  .decision-flow p{max-width:none}
  .home-fit{background:var(--home-paper)}
  .fit-heading{grid-template-columns:1fr;gap:20px}
  .fit-heading .eyebrow{grid-column:auto;margin-bottom:0}
  .fit-heading h2{max-width:12ch}
  .fit-heading>p:last-child{max-width:58ch}
  .fit-grid{grid-template-columns:1fr}
  .setup-strip{grid-template-columns:1fr}
  .setup-strip>div{padding-left:48px}
  .setup-strip>div+div{border-left:0;border-top:1px solid rgba(7,23,37,.18)}
  .work-doors{grid-template-columns:1fr}
}

@media (max-width:760px){
  .continuity-list{grid-template-columns:1fr}
  .continuity-list li{padding:15px 0}
  .continuity-list li+li{border-left:0;border-top:1px solid rgba(7,23,37,.22);padding-left:0}
  .stays-grid{grid-template-columns:1fr;gap:0}
  .stays-grid article{padding:16px 0 0;border-top-width:1px}
  .home-page .hdr{position:absolute}
  .home-hero{min-height:760px}
  /* The photo is a face band that ends before the copy starts. Measured 2026-09-02:
     the headline used to overlap the composite by 192px at 390x844 and 169px at
     390x664, running across the brain, the house and the calculator. The art box is
     shorter and cropped to Jay rather than the table, and the paper wash reaches full
     opacity at 37% of the hero (about 298px at 844, 272px at 664), which is above the
     h1 at either height. Re-measure with tools/viewport-check.py before changing the
     art height, the crop or the ramp; the three are tuned together. */
  .home-hero-art{inset:0 0 auto;height:352px}
  /* MOTION-6.2: below 760px the <picture> swaps to the 830x750 MOBILE composite,
     which is a different crop of a different file, so the desktop-traced node
     coordinates would land on blank wall. The layer is removed rather than
     re-drawn wrong. Trace a second node set from the mobile source before
     turning it back on here. */
  /* The traced network is desktop-only: its coordinates come from the 1672x941 composite
     and the mobile source is a different crop. The five dots (.home-hero-dots) are the
     mobile layer and they are NOT hidden here, which is how main rendered this. */
  .home-hero-signals{display:none}
  /* center top, not a percentage: the mobile source is 997x1577 and Jay's head
     starts 15% down, so any downward bias renders his forehead behind the header.
     At width-driven cover scale (0.391) the crop is anchored to the top, which puts
     the top of his head at 92px, clear of the 64px header with air above it. */
  .home-hero-art img{object-position:center top;filter:saturate(.98) contrast(1.08)}
  .home-hero::before{background:linear-gradient(180deg,rgba(244,243,238,0) 15%,rgba(244,243,238,.02) 24%,rgba(244,243,238,.58) 34%,var(--home-paper) 42%)}
  .home-hero::after{display:none}
  .home-hero-inner{align-items:flex-start;min-height:760px;padding-top:292px;padding-bottom:30px}
  .home-hero-copy{width:100%}
  .home-kicker{display:inline-block;margin-left:-6px;margin-bottom:10px;padding:4px 6px;background:rgba(244,243,238,.88);font-size:10px;color:#8e3f22}
  .home-hero h1{font-size:44px;line-height:.94;letter-spacing:-.055em;max-width:8.5ch;margin-bottom:16px}
  .home-hero .lede{font-size:17px;line-height:1.4;max-width:34ch;margin-bottom:18px}
  .home-actions{gap:12px 16px}
  .home-primary{padding:14px 17px;font-size:15px}
  .home-secondary{font-size:14px}
  .home-hero .micro{font-size:12px;line-height:1.4;margin-top:13px;max-width:37ch}
  .home-image-note,.home-scroll{display:none}
  .home-section{padding:76px 0}
  .home-section h2,.home-demo h2,.home-final h2{font-size:42px}
  .home-section-head>p:last-child{font-size:18px}
  .context-sticky{padding:80px 0 58px}
  .context-copy h2{max-width:10ch;font-size:44px;line-height:.94}
  .context-copy>p:not(.eyebrow){font-size:16px}
  .context-phases{margin-top:24px;gap:6px}
  .context-phases span{padding:8px 9px;font-size:9px}
  .context-system{width:100%;max-width:420px;margin-left:0;aspect-ratio:1/1.42}
  .context-node{min-width:106px;padding:9px 10px;grid-template-columns:25px 1fr;column-gap:7px}
  .context-node>span{width:25px;height:25px;font-size:8px}
  .context-node strong{font-size:11px}
  .context-node small{font-size:9px}
  .node-records{left:25%;top:10%}.node-documents{left:75%;top:10%}.node-messages{left:25%;top:27%}.node-history{left:75%;top:27%}.node-business{left:25%;top:44%}.node-household{left:75%;top:44%}
  .context-question{top:62%;width:84%;padding:14px 15px}
  .context-question::after{height:34px}
  .context-question span{font-size:8px}
  .context-question strong{font-size:17px}
  .context-answer{top:84%;width:92%;padding:14px 15px}
  .context-answer-head{padding-bottom:8px;margin-bottom:9px}
  .context-answer>strong{font-size:15px}
  .context-answer>p{font-size:11px;margin-bottom:9px}
  .context-after{padding:70px 0 80px}
  .research-layout{gap:40px}
  .research-equation{margin:17px 0 23px}
  .research-equation{grid-template-columns:max-content max-content;justify-content:start}
  .research-equation span,.research-equation strong{font-size:58px}
  .research-equation b{font-size:46px}
  .research-intro h2{max-width:11ch;font-size:42px}
  .pattern-list article{grid-template-columns:42px 1fr;gap:12px;padding:24px 0 26px}
  .pattern-list article>span{width:34px;height:34px;font-size:9px}
  .pattern-list h3{font-size:25px}
  .pattern-list div>p:last-child{font-size:15px}
  .home-demo{padding:80px 0}
  .question-ledger{margin-top:24px}
  .demo-shell{padding:10px}
  .demo-bar{padding:13px 14px;font-size:12px}
  .demo-meta{font-size:9px}
  .brief-question{padding:17px 16px}
  .brief-stack{padding:6px 16px 0}
  .brief-row{grid-template-columns:62px 1fr;gap:10px;padding:15px 0}
  .brief-next{margin:0 -16px;padding:16px}
  .demo-window>.source-pills{padding:13px 16px 17px}
  .decision-flow{grid-template-columns:1fr;margin:40px 0 52px}
  .decision-flow article{min-height:0}
  .decision-flow article::after,.decision-flow article:nth-child(2)::after{display:none}
  .home-fit{padding:76px 0}
  .fit-heading{margin-bottom:32px}
  .fit-heading h2{font-size:42px}
  .fit-heading>p:last-child{font-size:17px}
  .fit-card{padding:28px 22px}
  .fit-card li{font-size:15px}
  .setup-strip>div{padding:23px 10px 24px 38px}
  .setup-strip span{top:27px}
  .home-own{padding:56px 0}
  .ownership-panel{gap:34px}
  .founder-image::after{right:-6px;bottom:16px;padding:14px 16px;font-size:16px}
  .home-work-card{min-height:0}
  .home-work-book{grid-template-columns:100px 1fr;gap:22px}
  .home-work-book h3{font-size:30px}
  .home-final{padding:90px 0}
}

@media (max-width:420px) and (max-height:720px){
  .home-hero{min-height:720px}
  .home-hero-art{height:320px}
  .home-hero-inner{min-height:720px;padding-top:249px}
  .home-hero h1{font-size:40px;margin-bottom:11px}
  .home-hero .lede{font-size:16px;margin-bottom:10px}
  .home-actions{padding-right:64px}
  .home-hero .micro{margin-top:9px}
}

@media (prefers-reduced-motion:no-preference){
  @keyframes home-fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  /* The scroll chip is already translateX(-50%); a plain translateY would drop that and
     slide it sideways through the whole opening, so it gets its own keyframe. */
  @keyframes home-fade-chip{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translateX(-50%)}}
  @keyframes node-breathe{from{opacity:.22}to{opacity:.92}}
  @keyframes signal-node{0%,100%{opacity:0}5%{opacity:1}14%{opacity:0}}
  @keyframes context-current{from{stroke-dashoffset:1}to{stroke-dashoffset:-1}}

  /* MOTION-6.2 idle layer. pathLength=226 on the three travel polylines normalises
     every path to one dash period, so exactly one 6-unit signal is in flight per path
     whatever its real length; the -2s and -4s offsets keep the three out of step. */
  /* One pulse crosses each path every 6s. --k is the node's index along its own path,
     so the stagger IS the travel; opacity and scale only, nothing to lay out. The three
     paths start 2s apart. .is-idle (set when the hero leaves the viewport or the tab is
     hidden) pauses the whole layer rather than leaving it ticking off screen. */
  @keyframes home-signal{0%,100%{opacity:.18;scale:.76}45%{opacity:.9;scale:1.2}70%{opacity:.34;scale:.9}}
  .home-motion-ready .home-hero-dots span{animation:home-signal 4.6s ease-in-out infinite}
  .home-motion-ready .home-hero-signals .hs-travel circle{
    animation:signal-node 6s linear infinite;animation-delay:calc(var(--k,0) * .28s)}
  .home-motion-ready .home-hero-signals .hs-t2{animation-delay:calc(var(--k,0) * .28s - 2s)}
  .home-motion-ready .home-hero-signals .hs-t3{animation-delay:calc(var(--k,0) * .28s - 4s)}
  .home-hero-signals.is-idle circle{animation-play-state:paused}

  /* Not every node animates, and the count is a measured budget rather than a taste call.
     One style recalc happens per frame whatever we do; its COST scales with how many
     elements are animating. Measured at 1440 with the hero in view, 8 second samples:
     this page already idles at 1.93% CPU with zero signal animation, 62 animated circles
     took it to 6.09%, every second circle 3.76%, every third 3.34%. Animating one node in
     three and one travel dot in two lands at about 3.3%, i.e. roughly 1.4 points above the
     page's own floor, for 0 layouts and no long task. The unanimated circles are not dead
     weight: they are the resting network, and they are what the pulses travel between. */
  .home-motion-ready .home-hero-signals .hs-nodes circle:not(:nth-child(3n+1)){animation:none}
  .home-motion-ready .home-hero-signals .hs-travel circle:nth-child(even){animation:none}
  /* Three periods x a per-node -0.37s offset: 32 nodes, no two in phase, no 32 rules. */
  .home-motion-ready .home-hero-signals .hs-nodes circle{animation:node-breathe var(--nd,5.4s) ease-in-out infinite alternate;animation-delay:calc(var(--i,0) * -0.37s)}
  .home-motion-ready .home-hero-signals .hs-nodes circle:nth-child(3n+1){--nd:4.3s}
  .home-motion-ready .home-hero-signals .hs-nodes circle:nth-child(3n+2){--nd:5.9s}
  .home-motion-ready .home-hero-signals .hs-nodes circle:nth-child(3n){--nd:6.9s}

  /* MOTION-6.3 (motion plan s6.3): the opening, once per session. It used to run on
     .home-hero-copy>* on every single load. The gate is html.home-opening, set by the
     inline script in <head> BEFORE home.css is linked, so nothing can paint and then
     hide; and with the class absent (return visit, reduced motion, or JS off) the copy
     is simply there, which is the same page it is today. Last step ends at 1080ms. */
  .home-opening .home-kicker,
  .home-opening .home-hero h1>span,
  .home-opening .home-hero .lede,
  .home-opening .home-actions,
  .home-opening .home-hero .micro{animation:home-fade 420ms ease-out both}
  .home-opening .home-hero h1>span:nth-child(1){animation-delay:80ms}
  .home-opening .home-hero h1>span:nth-child(2){animation-delay:160ms}
  /* The h1 has TWO spans today, so the 240ms beat below matches nothing. It is kept, not
     deleted, because the plan's 6.3 describes a three line headline and the copy has been
     two lines and three lines before. If a third span is added the cadence is already
     right; if the headline is ever cut to one, delete this and the 160ms line together. */
  .home-opening .home-hero h1>span:nth-child(3){animation-delay:240ms}
  .home-opening .home-hero .lede{animation-delay:420ms}
  .home-opening .home-actions{animation-delay:560ms}
  .home-opening .home-hero .micro{animation-delay:620ms}
  .home-opening .home-scroll{animation:home-fade-chip 180ms ease-out both;animation-delay:900ms}
  .home-context.in-view .context-energy{animation:context-current 4.2s linear infinite}
  .home-motion-ready .home-context:not(.in-view) .context-node{opacity:0;transform:translateY(16px) scale(.96)}
  .home-context.in-view .context-node{opacity:1;transform:none}
  .home-context.in-view .node-records{transition-delay:.06s}.home-context.in-view .node-documents{transition-delay:.12s}.home-context.in-view .node-messages{transition-delay:.18s}.home-context.in-view .node-history{transition-delay:.24s}.home-context.in-view .node-business{transition-delay:.3s}.home-context.in-view .node-household{transition-delay:.36s}
  .home-context.is-paused .context-energy{animation-play-state:paused}

  .home-motion-ready .research-intro,.home-motion-ready .pattern-list article,.home-motion-ready .home-demo-copy,.home-motion-ready .question-ledger li,.home-motion-ready .demo-shell,.home-motion-ready .brief-row,.home-motion-ready .home-boundary .home-section-head,.home-motion-ready .decision-flow article,.home-motion-ready .fit-heading,.home-motion-ready .fit-card,.home-motion-ready .setup-strip>div,.home-motion-ready .ownership-panel>div,.home-motion-ready .founder-image,.home-motion-ready .founder-copy,.home-motion-ready .work-door,.home-motion-ready .work-band-foot,.home-motion-ready .home-final .wrap>*{transition:opacity .65s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
  .home-motion-ready .context-after:not(.in-view) .research-intro{opacity:0;transform:translateX(-24px)}
  .home-motion-ready .context-after:not(.in-view) .pattern-list article{opacity:0;transform:translateY(22px)}
  .home-motion-ready .context-after.in-view .pattern-list article:nth-child(2){transition-delay:.08s}.home-motion-ready .context-after.in-view .pattern-list article:nth-child(3){transition-delay:.16s}.home-motion-ready .context-after.in-view .pattern-list article:nth-child(4){transition-delay:.24s}
  .home-motion-ready .home-demo:not(.in-view) .home-demo-copy{opacity:0;transform:translateX(-24px)}
  .home-motion-ready .home-demo:not(.in-view) .demo-shell{opacity:0;transform:translateX(28px) scale(.98)}
  .home-motion-ready .home-demo:not(.in-view) .question-ledger li{opacity:0;transform:translateX(-16px)}
  .home-motion-ready .home-demo.in-view .question-ledger li:nth-child(2){transition-delay:.05s}.home-motion-ready .home-demo.in-view .question-ledger li:nth-child(3){transition-delay:.1s}.home-motion-ready .home-demo.in-view .question-ledger li:nth-child(4){transition-delay:.15s}.home-motion-ready .home-demo.in-view .question-ledger li:nth-child(5){transition-delay:.2s}
  .home-motion-ready .home-demo:not(.in-view) .brief-row{opacity:0;transform:translateY(12px)}
  .home-motion-ready .home-demo.in-view .brief-row:nth-child(2){transition-delay:.08s}.home-motion-ready .home-demo.in-view .brief-row:nth-child(3){transition-delay:.16s}.home-motion-ready .home-demo.in-view .brief-row:nth-child(4){transition-delay:.24s}
  .home-motion-ready .home-boundary:not(.in-view) .home-section-head{opacity:0;transform:translateY(20px)}
  .home-motion-ready .home-boundary:not(.in-view) .decision-flow article{opacity:0;transform:translateY(18px)}
  .home-motion-ready .home-boundary.in-view .decision-flow article:nth-child(2){transition-delay:.09s}.home-motion-ready .home-boundary.in-view .decision-flow article:nth-child(3){transition-delay:.18s}.home-motion-ready .home-boundary.in-view .decision-flow article:nth-child(4){transition-delay:.27s}
  .home-motion-ready .home-fit:not(.in-view) .fit-heading{opacity:0;transform:translateY(20px)}
  .home-motion-ready .home-fit:not(.in-view) .fit-card:first-child{opacity:0;transform:translateX(-22px)}
  .home-motion-ready .home-fit:not(.in-view) .fit-card:last-child{opacity:0;transform:translateX(22px)}
  .home-motion-ready .home-fit:not(.in-view) .setup-strip>div{opacity:0;transform:translateY(16px)}
  .home-motion-ready .home-fit.in-view .setup-strip>div:nth-child(2){transition-delay:.08s}.home-motion-ready .home-fit.in-view .setup-strip>div:nth-child(3){transition-delay:.16s}
  .home-motion-ready .home-own:not(.in-view) .ownership-panel>div:first-child{opacity:0;transform:translateX(-22px)}
  .home-motion-ready .home-own:not(.in-view) .ownership-panel>div:last-child{opacity:0;transform:translateX(24px)}
  .home-motion-ready .home-founder:not(.in-view) .founder-image{opacity:0;transform:scale(.975)}
  .home-motion-ready .home-founder:not(.in-view) .founder-copy{opacity:0;transform:translateY(22px)}
  .home-motion-ready .home-work-band:not(.in-view) .work-door{opacity:0;transform:translateY(20px)}
  .home-motion-ready .home-work-band.in-view .work-door:nth-child(2){transition-delay:.09s}.home-motion-ready .home-work-band.in-view .work-door:nth-child(3){transition-delay:.18s}
  .home-motion-ready .home-work-band:not(.in-view) .work-band-foot{opacity:0;transform:translateY(14px)}
  .home-motion-ready .home-final:not(.in-view) .wrap>*{opacity:0;transform:translateY(18px)}
  .home-motion-ready .home-final.in-view .wrap>:nth-child(2){transition-delay:.08s}.home-motion-ready .home-final.in-view .wrap>:nth-child(3){transition-delay:.16s}.home-motion-ready .home-final.in-view .wrap>:nth-child(4){transition-delay:.24s}
}

@media (prefers-reduced-motion:reduce){
  /* MOTION-6.2/6.3: a reduced-motion visitor gets the page exactly as it rendered
     before this layer existed, which means the five dots STILL RENDER, statically, the
     way main drew them. Only the traced network is removed, and .home-opening is never
     added, so there is nothing to switch off. An earlier cut hid the dots here too and
     silently took something away from the visitors least able to spare it. */
  .home-hero-signals{display:none}
  .home-hero-dots{display:block}
  .home-hero-dots span{animation:none}
  .context-scroll{height:auto}
  .context-sticky{position:relative}
  .context-wire,.context-output{stroke-dashoffset:0}
  .context-energy,.context-scroll-note{display:none}
  .context-question,.context-answer,.context-node,.research-intro,.pattern-list article,.home-demo-copy,.question-ledger li,.demo-shell,.brief-row,.home-section-head,.decision-flow article,.fit-heading,.fit-card,.setup-strip>div,.ownership-panel>div,.founder-image,.founder-copy,.work-door,.work-band-foot,.home-final .wrap>*{transition:none;transform:none}
}

@media print{
  .home-page .hdr{position:static}
  .home-hero{min-height:0}
  .home-hero-art,.home-hero-signals,.home-hero-dots,.home-scroll,.home-image-note{display:none}
  .home-hero-inner{min-height:0;padding-top:36px}
  .home-hero-copy{width:100%}
  .context-scroll{height:auto}
  .context-sticky{position:relative;min-height:0}
  .context-energy,.context-scroll-note{display:none}
  .home-motion-ready .research-intro,.home-motion-ready .pattern-list article,.home-motion-ready .home-demo-copy,.home-motion-ready .question-ledger li,.home-motion-ready .demo-shell,.home-motion-ready .brief-row,.home-motion-ready .home-boundary .home-section-head,.home-motion-ready .decision-flow article,.home-motion-ready .fit-heading,.home-motion-ready .fit-card,.home-motion-ready .setup-strip>div,.home-motion-ready .ownership-panel>div,.home-motion-ready .founder-image,.home-motion-ready .founder-copy,.home-motion-ready .work-door,.home-motion-ready .work-band-foot,.home-motion-ready .home-final .wrap>*{opacity:1;transform:none}
  .home-demo,.home-own,.home-work-band,.work-door{background:var(--home-white);color:var(--ink);border:1px solid var(--home-line)}
}
