@font-face{font-family:"Source Serif 4";src:url("assets/fonts/source-serif-4-latin-wght-normal.woff2") format("woff2-variations");font-style:normal;font-weight:200 900;font-display:swap}
@font-face{font-family:Inter;src:url("assets/fonts/inter-latin-wght-normal.woff2") format("woff2-variations");font-style:normal;font-weight:100 900;font-display:swap}
:root{
  --ink:#123a3c;--ink-deep:#092d2f;--body:#405b5b;--muted:#566c69;--paper:#f7f5ed;--paper-2:#eeede2;
  --white:#fffdf8;--field:#52652e;--field-hover:#39471f;--sage:#cdd7b6;--sky:#cfdfe3;--grass:#c9dba4;--dust:#d8c69d;
  --ground:#1e2b20;--line:#c8c9bc;--line-dark:#496052;--success:#2d633b;--focus:#c9762e;
  --serif:"Source Serif 4",Georgia,serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --max:1200px;--wide:1360px;--read:720px;--gutter:clamp(1.25rem,4vw,3rem);--section:clamp(4.75rem,9vw,8rem);
  --teal:#2c6b78;--spark:#3f8f9e;--air-ridge:201,212,211;--air-sun:232,197,128;--air-dust:198,172,126;
  --clay:#9c4f1c;--r-sm:4px;--r-md:8px;--shadow:0 20px 55px rgba(9,45,47,.12);--ease:cubic-bezier(.2,.75,.25,1)
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--body);font:400 1rem/1.65 var(--sans);overflow-x:hidden}img,svg{display:block;max-width:100%}a{color:inherit;text-underline-offset:.22em}button,input,textarea,select{font:inherit}button{color:inherit}.skip-link{position:fixed;z-index:9999;top:.5rem;left:.5rem;padding:.7rem 1rem;background:var(--ink-deep);color:var(--white);transform:translateY(-150%)}.skip-link:focus{transform:none}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3,p{margin-top:0}h1,h2,.display{font-family:var(--serif);font-weight:470;color:var(--ink-deep);letter-spacing:-.035em}h1{font-size:clamp(2.9rem,6.2vw,5.4rem);line-height:.96;margin-bottom:1.5rem}h2{font-size:clamp(2.25rem,4.5vw,4rem);line-height:1.02;margin-bottom:1.25rem}h3{color:var(--ink-deep);font-size:1.08rem;line-height:1.35;margin-bottom:.55rem}.eyebrow,.kicker,.mono{font-size:.75rem;line-height:1.4;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.eyebrow,.kicker{color:var(--field)}.lede{font-size:clamp(1.05rem,1.7vw,1.28rem);line-height:1.55;max-width:680px}.small{font-size:.88rem}.muted{color:var(--muted)}.container{width:min(calc(100% - 2 * var(--gutter)),var(--max));margin-inline:auto}.wide{width:min(calc(100% - 2 * var(--gutter)),var(--wide));margin-inline:auto}.reading{max-width:var(--read)}.section{padding-block:var(--section)}.section-tight{padding-block:clamp(3.25rem,6vw,5rem)}.surface{background:var(--paper-2)}.dark{background:var(--ground);color:#d7dfd2}.dark h2,.dark h3,.dark .eyebrow{color:var(--white)}.rule{border-top:1px solid var(--line)}
.button-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:.55rem;padding:.72rem 1.15rem;border:1px solid transparent;border-radius:999px;font-weight:650;text-decoration:none;transition:background .18s,color .18s,border .18s,transform .18s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--field);color:var(--white)}.button-primary:hover{background:var(--field-hover)}.button-secondary{border-color:var(--ink);color:var(--ink);background:transparent}.button-secondary:hover{background:var(--ink);color:var(--white)}.button-light{background:var(--white);color:var(--ink-deep)}.text-link{font-weight:650;color:var(--ink)}
.masthead{position:sticky;z-index:100;top:0;background:rgba(247,245,237,.96);border-bottom:1px solid transparent;transition:border .2s,box-shadow .2s}.masthead.is-scrolled{border-color:var(--line);box-shadow:0 6px 22px rgba(9,45,47,.06)}.masthead-inner{height:72px;width:min(calc(100% - 2 * var(--gutter)),var(--wide));margin:auto;display:flex;align-items:center;gap:2rem}.brand{display:inline-flex;min-height:44px;align-items:center;gap:.65rem;color:var(--ink-deep);text-decoration:none;white-space:nowrap}.brand-mark{width:27px;height:27px}.brand-word{font-family:var(--serif);font-weight:650;font-size:1.3rem;letter-spacing:-.02em}.brand-word small{font:700 .55rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--field);display:block}.nav{display:flex;align-items:center;gap:.1rem;margin-left:auto}.nav a,.nav button{display:flex;min-height:44px;align-items:center;padding:.5rem .78rem;border:0;background:none;text-decoration:none;font-size:.91rem;font-weight:580;cursor:pointer}.nav a:hover,.nav button:hover{color:var(--field)}.nav-item{position:relative}.nav-caret{width:9px;margin-left:.45rem;stroke:currentColor;fill:none;stroke-width:1.5}.nav-panel{position:absolute;top:calc(100% + 8px);left:50%;width:310px;padding:.65rem;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);transform:translate(-50%,-5px);opacity:0;visibility:hidden;transition:.18s var(--ease)}.nav-panel--wide{width:430px}.nav-item.is-open .nav-panel{opacity:1;visibility:visible;transform:translate(-50%,0)}.nav-panel a{display:block;padding:.75rem;border-radius:var(--r-sm)}.nav-panel a:hover{background:var(--paper-2)}.nav-panel strong,.nav-panel span{display:block}.nav-panel span{font-size:.78rem;color:var(--muted);margin-top:.1rem}.masthead-actions{display:flex;align-items:center;gap:.5rem}.masthead-actions .button{min-height:42px;padding:.55rem 1rem}.menu-toggle{display:none;width:46px;height:46px;background:none;border:0;padding:12px;cursor:pointer}.menu-toggle span{display:block;height:2px;background:var(--ink);margin:6px 0;transition:.2s}.mobile-menu{position:absolute;inset:72px 0 auto;background:var(--paper);border-bottom:1px solid var(--line);padding:1rem var(--gutter) 1.5rem;max-height:calc(100svh - 72px);overflow:auto}.mobile-menu a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600}.mobile-menu .button{margin-top:1rem;color:var(--white);justify-content:center}.mobile-menu[hidden]{display:none}
.hero{position:relative;min-height:calc(100svh - 72px);display:grid;align-items:end;background:var(--ink-deep);color:var(--white);isolation:isolate}.hero-media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.6) hue-rotate(15deg) brightness(.72)}.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,45,47,.92) 0%,rgba(9,45,47,.65) 48%,rgba(9,45,47,.12) 80%),linear-gradient(0deg,rgba(9,45,47,.65),transparent 52%)}.hero-inner{width:min(calc(100% - 2 * var(--gutter)),var(--wide));margin:auto;padding:clamp(4rem,10vh,8rem) 0 5rem}.hero-copy{max-width:800px}.hero h1{color:var(--white);max-width:780px}.hero .lede{color:#e7eee8}.hero .eyebrow{color:#dce6c5}.section-head{display:grid;grid-template-columns:.72fr 1.28fr;gap:2rem;align-items:center;margin-bottom:clamp(2.5rem,6vw,5rem)}.section-head>*{margin-bottom:0}.stateline{display:flex;flex-wrap:wrap;border-block:1px solid var(--line);margin-top:3rem}.stateline span{padding:1rem 1.4rem 1rem 0;margin-right:1.4rem;font-size:.82rem;font-weight:650;color:var(--ink)}
.timeline{counter-reset:steps;border-top:1px solid var(--line)}.timeline-step{counter-increment:steps;display:grid;grid-template-columns:90px .75fr 1.25fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line)}.timeline-step::before{content:"0" counter(steps);font:700 .75rem/1.4 var(--sans);letter-spacing:.13em;color:var(--field)}.timeline-step h3{font-family:var(--serif);font-size:clamp(1.6rem,2.4vw,2.2rem);font-weight:500}.timeline-step p{margin:0}
.product-scale{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}.product{padding:1.7rem;border-right:1px solid var(--line);min-height:300px;display:flex;flex-direction:column}.product:last-child{border:0}.product-num{font-size:.7rem;color:var(--field);letter-spacing:.12em}.product h3{font-family:var(--serif);font-size:1.5rem;font-weight:500;margin-top:2.25rem}.product p{font-size:.9rem}.product a{margin-top:auto;font-weight:650;color:var(--ink)}
.education-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem}.lesson-list{border-top:1px solid var(--line)}.lesson{display:grid;grid-template-columns:50px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}.lesson b{color:var(--field)}.lesson p{margin:0;font-size:.88rem}.principles{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line)}.principle{padding:1.4rem 1.2rem 0 0}.principle .mono{color:var(--field)}.principle h3{font-family:var(--serif);font-weight:500}.principle p{font-size:.88rem}.deployment{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:4rem}.deployment article{background:var(--paper);padding:2rem}.deployment h3{font-family:var(--serif);font-size:1.8rem;font-weight:500}
.proof-band{padding-block:var(--section)}.proof-grid{display:grid;grid-template-columns:.6fr 1.4fr;gap:clamp(2rem,7vw,7rem)}.proof-copy blockquote{margin:0;font:450 clamp(1.6rem,3vw,2.55rem)/1.16 var(--serif);color:var(--ink-deep)}.proof-copy cite{display:block;margin-top:1.5rem;font-style:normal;font-size:.85rem}.workflow-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}.workflow-tags span{border:1px solid rgba(9,45,47,.35);padding:.42rem .7rem;border-radius:999px;font-size:.74rem;font-weight:650}.process-map{display:grid;grid-template-columns:repeat(5,1fr);border-block:1px solid var(--line)}.process-map article{padding:1.5rem;border-right:1px solid var(--line)}.process-map article:last-child{border:0}.process-map .mono{color:var(--field)}.qual-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.field{display:grid;gap:.35rem}.field.full{grid-column:1/-1}.field label{font-size:.82rem;font-weight:650;color:var(--ink)}.field input,.field select,.field textarea{width:100%;min-height:48px;border:1px solid #8b978d;border-radius:var(--r-sm);padding:.7rem .8rem;background:var(--white);color:var(--ink-deep)}.field textarea{min-height:130px;resize:vertical}.form-note{grid-column:1/-1;font-size:.8rem;color:var(--muted)}
.site-footer{background:var(--ground);color:#bac8bc;padding:4.5rem var(--gutter) 1.5rem}.brand--footer .brand-word small{color:#bac8bc}.footer-inner,.footer-base{width:min(100%,var(--wide));margin:auto}.footer-inner{display:grid;grid-template-columns:1.1fr 1.9fr;gap:5rem}.brand--footer{color:var(--white)}.footer-tag{max-width:390px;margin:1rem 0 1.5rem}.footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.footer-cols h2{font:700 .68rem/1.4 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:#91a693}.footer-cols ul{list-style:none;padding:0;margin:0}.footer-cols a{display:inline-flex;align-items:center;min-height:38px;font-size:.84rem;text-decoration:none}.footer-cols a:hover{color:var(--white)}.footer-base{display:flex;justify-content:space-between;gap:2rem;border-top:1px solid var(--line-dark);margin-top:4rem;padding-top:1.5rem;font-size:.75rem}.footer-base a{margin-left:1rem}
.legal{padding:clamp(3.5rem,7vw,6rem) var(--gutter)}.legal-doc{max-width:760px;margin:auto}.legal-doc h1{font-size:clamp(2.8rem,5vw,4.5rem)}.legal-doc h2{font-size:1.2rem;letter-spacing:-.015em;margin-top:2.5rem}.legal-doc li{margin:.45rem 0}.legal-updated{color:var(--muted);font-size:.85rem}.not-found{min-height:65vh;display:grid;place-items:center;text-align:center;padding:4rem var(--gutter)}
.reveal{opacity:1;transform:none}.reveal.reveal-ready{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease),transform .55s var(--ease)}.reveal.reveal-ready.is-visible{opacity:1;transform:none}
@media(max-width:1000px){.product-scale{grid-template-columns:1fr 1fr}.product:nth-child(2){border-right:0}.product:nth-child(-n+2){border-bottom:1px solid var(--line)}.principles{grid-template-columns:repeat(3,1fr)}.footer-inner{grid-template-columns:1fr}.footer-cols{gap:2rem}.process-map{grid-template-columns:1fr 1fr}.process-map article{border-bottom:1px solid var(--line)}.process-map article:nth-child(2n){border-right:0}.process-map article:last-child{border-bottom:0}}
@media(max-width:860px){.nav{display:none}.masthead-actions{margin-left:auto}.masthead-actions>a{display:none}.menu-toggle{display:block}.masthead.menu-open .menu-toggle span:first-child{transform:translateY(4px) rotate(45deg)}.masthead.menu-open .menu-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}.section-head,.education-grid,.proof-grid{grid-template-columns:1fr}.section-head{align-items:start}.timeline-step{grid-template-columns:55px 1fr}.timeline-step p{grid-column:2}.footer-cols{grid-template-columns:1fr 1fr}.hero::after{background:linear-gradient(90deg,rgba(9,45,47,.9),rgba(9,45,47,.48)),linear-gradient(0deg,rgba(9,45,47,.62),transparent 50%)}}
@media(max-width:620px){:root{--gutter:1.25rem;--section:4.5rem}.masthead-inner{height:64px}.mobile-menu{inset-block-start:64px;max-height:calc(100svh - 64px)}.hero{min-height:calc(100svh - 64px)}.hero-inner{padding-bottom:3rem}.button-row{align-items:stretch}.button-row .button{width:100%}.product-scale,.deployment{grid-template-columns:1fr}.product{min-height:auto;border-right:0;border-bottom:1px solid var(--line)}.product:last-child{border-bottom:0}.principles{grid-template-columns:1fr 1fr}.process-map{grid-template-columns:1fr}.process-map article{border-right:0}.timeline-step{gap:1rem}.footer-cols{grid-template-columns:1fr 1fr}.footer-base{display:block}.footer-base a{margin:0 1rem 0 0}.qual-form{grid-template-columns:1fr}.field.full,.form-note{grid-column:auto}.site-footer{padding-top:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Work — the AI employee with eight departments fanned around it, under the
   hero. A 1166x700 stage: wires, agent and cards share stage units and the
   cards are sized in cqw (stage units / 11.66), so it scales as one picture
   at every width. Geometry and copy live in tools/build_site.py (CREW_*). */
.work{position:relative;padding-block:clamp(4rem,8vw,6.5rem) clamp(3rem,7vw,6rem)}.work::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(64% 52% at 50% 64%,rgba(var(--air-sun),.42) 0,rgba(var(--air-sun),.16) 52%,rgba(var(--air-sun),0) 78%)}
.work-head{width:min(calc(100% - 2 * var(--gutter)),860px);margin-inline:auto;text-align:center}
.work-title{font-family:var(--serif);font-weight:470;font-size:clamp(2.1rem,4.6vw,3.7rem);line-height:1.05;letter-spacing:-.03em;color:var(--ink-deep);margin-bottom:1.1rem;text-wrap:balance}
.work-sub{margin:0 auto;max-width:64ch;font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.6;color:var(--body);text-wrap:pretty}
.crew{max-width:1166px;margin:clamp(2.25rem,5vw,4.5rem) auto 0}
.crew-stage{position:relative;aspect-ratio:1166/700;container-type:inline-size}
.crew-wires,.crew-cards{position:absolute;inset:0}
.crew-wires{width:100%;height:100%;overflow:visible}
.wire{fill:none;stroke:var(--teal);stroke-width:1.2;opacity:.4;vector-effect:non-scaling-stroke}
.wire-dot{fill:var(--teal);opacity:.8}
.wire-lit{fill:none;stroke:var(--spark);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:22 100;stroke-dashoffset:22;vector-effect:non-scaling-stroke;opacity:0;animation:crew-lit 24s linear infinite,wire-run 1.4s linear infinite;animation-delay:calc(var(--i) * 3s),0s}
.crew-agent{position:absolute;left:var(--x);top:var(--y);width:var(--w);z-index:1}
.crew-agent::before{content:"";position:absolute;inset:4% -18% 8%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,rgba(var(--air-sun),.55),rgba(var(--air-sun),0))}
.crew-agent img{display:block;width:100%;height:auto;filter:drop-shadow(0 1.5cqw 2cqw rgba(26,36,14,.2));animation:agent-float 5s ease-in-out infinite alternate}
.crew-cards{margin:0;padding:0;list-style:none;z-index:2}
.crew-card{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:18.01cqw;height:6.17cqw;display:grid;grid-template-columns:2.9cqw minmax(0,1fr);column-gap:1.03cqw;align-content:center;align-items:center;padding:0 .9cqw 0 1.03cqw;border-radius:1.2cqw;background:var(--white);border:1px solid rgba(9,45,47,.08);box-shadow:0 .7cqw 2.2cqw rgba(9,45,47,.1)}
.crew-card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1.5px solid var(--spark);box-shadow:0 0 0 .35cqw rgba(63,143,158,.12);opacity:0;pointer-events:none;animation:crew-lit 24s linear infinite;animation-delay:calc(var(--i) * 3s)}
.crew-icon{grid-row:span 2;width:2.9cqw;height:2.9cqw;display:grid;place-items:center;border-radius:.86cqw;background:rgba(63,143,158,.12);color:var(--teal)}
.crew-icon svg{width:1.7cqw;height:1.7cqw;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.crew-name,.crew-note{white-space:nowrap}
.crew-name{font-family:var(--sans);font-size:1.13cqw;font-weight:650;line-height:1.25;letter-spacing:-.01em;color:var(--ink-deep)}
.crew-note{margin-top:.15cqw;font-size:.93cqw;line-height:1.3;color:var(--body)}
@keyframes crew-lit{0%{opacity:0}2%{opacity:1}10%{opacity:1}12.5%{opacity:0}100%{opacity:0}}
@keyframes wire-run{to{stroke-dashoffset:-100}}
@keyframes agent-float{from{transform:translateY(0)}to{transform:translateY(-.7cqw)}}
/* nothing runs until the diagram is on screen */
.crew:not(.is-visible) .wire-lit,.crew:not(.is-visible) .crew-card::after,.crew:not(.is-visible) .crew-agent img{animation-play-state:paused}
/* on a phone, trim a few percent off each side so the picture can be larger */
@media(max-width:700px){.crew{overflow:hidden}.crew-stage{width:108%;margin-left:-4%}.work{padding-bottom:1.5rem}}

/* Anatomy of an AI employee — the whole section is the diagram, on a light
   ground that blends both ways: it opens on the exact tone .work ends on
   (dust .17 over paper) and fades to plain paper for the next section.
   Centre role, four component groups wired to it, dashed governance
   perimeter around the map, controls along its foot. */

.anatomy-shell{position:relative;color:var(--body)}
.anatomy-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1.1rem;border-bottom:1px solid var(--line)}
.anatomy-top .mono{color:var(--ink)}
.status{display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);white-space:nowrap}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:#7a9a3c;box-shadow:0 0 0 0 rgba(122,154,60,.5);animation:status-pulse 2.4s ease-out infinite}
.perimeter{position:relative;margin-top:clamp(1.75rem,3.5vw,2.5rem);padding:clamp(2rem,4vw,3rem) clamp(1rem,3vw,2.5rem) clamp(1rem,2.5vw,1.75rem);border:1px dashed rgba(82,101,46,.45);border-radius:14px;background:radial-gradient(ellipse 50% 45% at 50% 42%,rgba(205,215,182,.35),rgba(205,215,182,0) 70%)}
.perimeter-label{position:absolute;top:0;left:clamp(1rem,3vw,2.5rem);transform:translateY(-50%);margin:0;display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border:1px solid rgba(82,101,46,.4);border-radius:999px;background:var(--white);color:var(--field);font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.perimeter-label svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.anatomy-map{--wire:clamp(2.5rem,5vw,4.5rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.72fr) minmax(0,1fr);grid-template-areas:"identity core knowledge" "computer core software";grid-template-rows:1fr 1fr;column-gap:var(--wire);row-gap:1.25rem;align-items:stretch}
.part--identity{grid-area:identity}.part--computer{grid-area:computer}.part--knowledge{grid-area:knowledge}.part--software{grid-area:software}
.part{position:relative;padding:1.2rem 1.25rem 1.3rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--white);box-shadow:0 12px 32px rgba(9,45,47,.06)}
/* the wire from each group into the core, with a node where it lands */
.part::before{content:"";position:absolute;top:50%;width:var(--wire);height:1px;background:linear-gradient(90deg,rgba(82,101,46,.2),rgba(82,101,46,.7),rgba(82,101,46,.2));background-size:200% 100%;animation:wire-flow 3.2s linear infinite}
.part::after{content:"";position:absolute;top:calc(50% - 3px);width:7px;height:7px;border-radius:50%;background:var(--field);box-shadow:0 0 0 3px rgba(82,101,46,.14)}
.part--identity::before,.part--computer::before{left:100%}
.part--identity::after,.part--computer::after{left:calc(100% + var(--wire) - 4px)}
.part--knowledge::before,.part--software::before{right:100%;animation-direction:reverse}
.part--knowledge::after,.part--software::after{right:calc(100% + var(--wire) - 4px)}
.part-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;margin-bottom:1rem}
.part-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:rgba(82,101,46,.1);border:1px solid rgba(82,101,46,.18);color:var(--field)}
.part-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.part h3{margin:0;font-family:var(--sans);font-size:.98rem;font-weight:650;letter-spacing:-.01em;line-height:1.25;color:var(--ink-deep)}
.part-count{font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--muted);font-variant-numeric:tabular-nums}
.part-list{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}
.part-list li{display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .7rem;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:.78rem;line-height:1.2;color:var(--ink)}
.part-list li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--field);opacity:.85}
/* each side's two wires land on a vertical bus at the core column's edge,
   and one line runs from the buses through the disc */
.core{grid-area:core;position:relative;display:grid;place-items:center;text-align:center;background:linear-gradient(to bottom,transparent calc(50% - .5px),rgba(82,101,46,.45) calc(50% - .5px),rgba(82,101,46,.45) calc(50% + .5px),transparent calc(50% + .5px))}
.core::before,.core::after{content:"";position:absolute;top:calc(25% - .3rem);bottom:calc(25% - .3rem);width:1px;background:rgba(82,101,46,.45)}
.core::before{left:0}.core::after{right:0}
.core-disc{position:relative;display:grid;place-content:center;gap:.2rem;width:clamp(170px,17vw,208px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 35%,var(--white),#e6ebd9 75%);border:1px solid rgba(82,101,46,.45);box-shadow:0 0 0 12px rgba(82,101,46,.06),0 0 0 26px rgba(82,101,46,.035),0 24px 50px rgba(9,45,47,.1)}
.core-disc::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px dashed rgba(82,101,46,.35);animation:core-turn 40s linear infinite}
.core-disc strong{font-family:var(--serif);font-size:clamp(1.3rem,1.8vw,1.55rem);font-weight:520;letter-spacing:-.02em;color:var(--ink-deep);line-height:1.1}
.core-disc span{font-size:.82rem;color:var(--body)}
.core-meta{position:absolute;left:0;right:0;top:calc(50% + clamp(85px,8.5vw,104px) + 1.4rem);margin:0;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:clamp(1.75rem,3vw,2.25rem) 0 0;padding:0;list-style:none;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--line)}
.controls li{display:flex;align-items:flex-start;gap:.65rem;padding:1rem 1.05rem;background:var(--white)}
.control-icon{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:rgba(82,101,46,.1);color:var(--field)}
.control-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.controls b{display:block;font-size:.82rem;font-weight:650;color:var(--ink-deep);line-height:1.25}
.controls small{display:block;margin-top:.15rem;font-size:.72rem;line-height:1.35;color:var(--body)}
@keyframes status-pulse{0%{box-shadow:0 0 0 0 rgba(122,154,60,.5)}70%{box-shadow:0 0 0 8px rgba(122,154,60,0)}100%{box-shadow:0 0 0 0 rgba(122,154,60,0)}}
@keyframes wire-flow{to{background-position:-200% 0}}
@keyframes core-turn{to{transform:rotate(360deg)}}
@media(max-width:1000px){.anatomy-map{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"core core" "identity knowledge" "computer software";row-gap:1rem;column-gap:1rem}.part::before,.part::after,.core::before,.core::after{display:none}.core{background:none;gap:1.1rem;margin-bottom:.75rem}.core-meta{position:static}.controls{grid-template-columns:repeat(6,minmax(0,1fr))}.controls li{grid-column:span 2}.controls li:nth-child(n+4){grid-column:span 3}}
@media(max-width:620px){.anatomy-map{grid-template-columns:minmax(0,1fr);grid-template-areas:"core" "identity" "computer" "knowledge" "software"}.controls{grid-template-columns:minmax(0,1fr)}.controls li,.controls li:nth-child(n+4){grid-column:auto}.anatomy-top{flex-wrap:wrap}.perimeter{padding-top:2.25rem}}

/* ROI — summary strip over a list of recurring jobs with their monthly and
   yearly cost. Figures are generated in tools/build_site.py (ROI_*). */
.roi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 1.25rem;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--white)}
.roi-stat{padding:1.3rem 1.5rem;border-left:1px solid var(--line)}
.roi-stat:first-child{border-left:0}
.roi-stat dt{font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.roi-stat dd{margin:.55rem 0 0;font-family:var(--serif);font-size:clamp(1.7rem,2.6vw,2.25rem);font-weight:520;line-height:1;letter-spacing:-.02em;color:var(--ink-deep);font-variant-numeric:tabular-nums}
.roi-stat--total{background:rgba(82,101,46,.08)}
.roi-stat--total dd{color:var(--field)}
.roi-list{margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--white)}
.roi-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.1rem;padding:1.05rem 1.5rem;border-top:1px solid var(--line);transition:background .18s}
.roi-row:first-child{border-top:0}
.roi-row:hover{background:rgba(205,215,182,.18)}
.roi-index{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);font-size:.72rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.roi-job h3{margin:0;font-family:var(--sans);font-size:1rem;font-weight:650;letter-spacing:-.01em;color:var(--ink-deep)}
.roi-job p{margin:.2rem 0 0;font-size:.8rem;color:var(--muted)}
.roi-figures{display:grid;grid-template-columns:7.5rem 7rem 7rem;margin:0;text-align:right;font-variant-numeric:tabular-nums}
.roi-figures dt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.roi-figures dd{margin:0;font-size:.92rem;color:var(--body)}
.roi-figures .roi-month{font-weight:650;color:var(--ink-deep)}
.roi-figures .roi-year{font-weight:650;color:var(--clay)}
.roi-all{margin-top:2rem;text-align:center}
.roi-all summary{list-style:none;cursor:pointer}
.roi-all summary::-webkit-details-marker{display:none}
.roi-all[open] summary{margin-bottom:1.25rem}
.roi-all .roi-open,.roi-all[open] .roi-closed{display:none}
.roi-all[open] .roi-open{display:inline}
.roi-list--more{text-align:left}
@media(max-width:860px){.roi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.roi-stat:nth-child(3){border-left:0}.roi-stat:nth-child(n+3){border-top:1px solid var(--line)}.roi-row{grid-template-columns:auto minmax(0,1fr);row-gap:.6rem}.roi-figures{grid-column:2;grid-template-columns:repeat(3,auto);justify-content:start;column-gap:1.25rem;text-align:left}}
@media(max-width:620px){.roi-row{padding:1rem}.roi-stat{padding:1rem 1.1rem}.roi-figures dd{font-size:.84rem}.roi-all summary{width:100%}}

/* Homies proof — logo tile and person line beside the testimonial */
.proof-brand{align-self:start}
.proof-logo{display:block;width:clamp(120px,12vw,168px);height:auto;aspect-ratio:1;margin:1.5rem 0 1.25rem;border-radius:22px;box-shadow:0 18px 40px rgba(9,45,47,.14),0 0 0 1px rgba(9,45,47,.06)}
.proof-name{margin:0;font-family:var(--serif);font-size:clamp(1.5rem,2.2vw,1.9rem);letter-spacing:-.02em;color:var(--ink-deep)}
.proof-brand .small{margin-top:.35rem}
.proof-person{display:flex;align-items:center;gap:.8rem;margin:1.75rem 0 0}
.proof-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ink-deep);color:var(--white);font-size:.8rem;font-weight:700;letter-spacing:.04em}
.proof-copy .proof-person cite{margin-top:0;font-size:.95rem;font-weight:650;color:var(--ink-deep)}
.proof-person cite span{display:block;font-size:.8rem;font-weight:400;color:var(--body)}

.feat{--frame:820px;--art-line:#7c9160;--art-fill:#a3b77f;--art-tint:#e7ecd9;position:relative;overflow:hidden;background:var(--paper)}
.feat::before,.feat::after{content:"";position:absolute;top:0;bottom:0;width:80px;border-inline:1px solid var(--line);background:repeating-linear-gradient(135deg,rgba(200,201,188,.55) 0 1px,transparent 1px 7px);pointer-events:none}
.feat::before{left:calc(50% - var(--frame) / 2 - 110px)}
.feat::after{right:calc(50% - var(--frame) / 2 - 110px)}
.feat-frame{position:relative;z-index:1;width:min(calc(100% - 2 * var(--gutter)),var(--frame));margin-inline:auto;padding-block:var(--section);border-inline:1px solid var(--line)}
.feat-head{max-width:30rem;margin-inline:auto;padding:1rem 1.5rem 2.75rem;text-align:center}
.feat-eyebrow{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.55rem;color:var(--field);font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-family:ui-monospace,"SFMono-Regular",Menlo,monospace}
.feat-eyebrow svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.feat-eyebrow span::before{content:"[ "}
.feat-eyebrow span::after{content:" ]"}
.feat-head h2{font-family:var(--serif);font-size:clamp(1.75rem,3vw,2.25rem);font-weight:500;line-height:1.15;letter-spacing:-.01em;color:var(--ink-deep)}
.feat-head p:last-child{margin-top:.6rem;font-size:.9rem;line-height:1.45;color:var(--muted)}
.feat-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr}
.feat-tabs::before{content:"";position:absolute;top:0;bottom:0;left:-100vw;right:-100vw;border-block:1px solid var(--line);background:linear-gradient(var(--line),var(--line)) 0 30%/100% 1px no-repeat,linear-gradient(var(--line),var(--line)) 0 70%/100% 1px no-repeat;opacity:.9;pointer-events:none}
.feat-tab{--corner:var(--line);position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:40px;margin:6px;border:0;background:var(--paper);color:var(--muted);font:600 .625rem/1.4 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.feat-tab+.feat-tab::after{content:"";position:absolute;top:-6px;bottom:-6px;left:-7px;border-left:1px solid var(--line)}
.feat-tab::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(var(--corner),var(--corner)) top left/7px 1.5px no-repeat,linear-gradient(var(--corner),var(--corner)) top left/1.5px 7px no-repeat,linear-gradient(var(--corner),var(--corner)) top right/7px 1.5px no-repeat,linear-gradient(var(--corner),var(--corner)) top right/1.5px 7px no-repeat,linear-gradient(var(--corner),var(--corner)) bottom left/7px 1.5px no-repeat,linear-gradient(var(--corner),var(--corner)) bottom left/1.5px 7px no-repeat,linear-gradient(var(--corner),var(--corner)) bottom right/7px 1.5px no-repeat,linear-gradient(var(--corner),var(--corner)) bottom right/1.5px 7px no-repeat}
.feat-tab svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.feat-tab[aria-selected="true"]{--corner:var(--field);background:var(--white);color:var(--ink-deep);box-shadow:0 1px 3px rgba(9,45,47,.08)}
.feat-tab:hover{color:var(--ink-deep)}
.feat-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.feat-panel{position:relative;background:var(--white);padding:8px;border-top:1px solid var(--line)}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);row-gap:8px}
.feat-card{border:1px solid var(--line);background:var(--white)}
.feat-card:not(:nth-child(3n+1)){border-left:0}
.feat-card--blank{background:repeating-linear-gradient(135deg,rgba(200,201,188,.45) 0 1px,transparent 1px 7px)}
.feat-art{height:300px;border-bottom:1px solid var(--line)}
.feat-art svg{display:block;width:100%;height:100%}
.feat-art polygon,.feat-art rect,.feat-art circle,.feat-art ellipse,.feat-art path,.sol-art polygon,.sol-art rect,.sol-art circle,.sol-art path{fill:var(--white);stroke:var(--art-line);stroke-width:1;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.feat-art .n,.sol-art .n{fill:none}
.feat-art .f,.sol-art .f{fill:var(--art-fill)}
.feat-art .t,.sol-art .t{fill:var(--art-tint)}
.feat-art .w,.sol-art .w{fill:var(--white)}
.feat-art .d,.sol-art .d{fill:none;stroke-dasharray:3 3}
.feat-art .arc{fill:none;stroke:var(--art-fill);stroke-width:4;vector-effect:none}
.feat-copy{min-height:110px;padding:12px}
.feat-copy h3{margin:0 0 2px;font-family:var(--sans);font-size:.8125rem;font-weight:500;line-height:1.4;color:var(--ink-deep)}
.feat-copy p{margin:0;font-size:.8125rem;line-height:1.4;color:var(--muted)}
@media(max-width:1100px){.feat::before,.feat::after{display:none}}
@media(max-width:760px){.feat-grid{grid-template-columns:1fr}.feat-card:not(:nth-child(3n+1)){border-left:1px solid var(--line)}.feat-card--blank{display:none}.feat-art{height:240px}.feat-tab{margin:4px}}
.feat+.feat .feat-frame{padding-top:0}
.sol-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sol-panel{position:relative;padding:12px;background:repeating-linear-gradient(135deg,rgba(200,201,188,.35) 0 1px,transparent 1px 6px)}
.sol-panel::before{content:"";position:absolute;top:0;bottom:0;left:-100vw;right:-100vw;z-index:-1;border-block:1px solid var(--line);pointer-events:none}
.sol-panel:nth-child(odd){border-right:1px solid var(--line)}
.sol-panel:nth-child(even){border-left:1px solid var(--line)}
.sol-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:21px;margin-bottom:9px}
.sol-top h3{margin:0;font:400 .875rem/1.4 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.sol-badge{--c:var(--field);flex:none;padding:2px 8px;background:var(--white) linear-gradient(var(--c),var(--c)) left/1.5px 100% no-repeat;color:var(--field);font:600 .75rem/1.4 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;position:relative}
.sol-badge::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(var(--c),var(--c)) top left/5px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) bottom left/5px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) right/1.5px 100% no-repeat,linear-gradient(var(--c),var(--c)) top right/5px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) bottom right/5px 1.5px no-repeat}
.sol-badge:hover{--c:var(--field-hover);color:var(--field-hover)}
.sol-badge:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sol-card{background:var(--white);box-shadow:0 1px 3px rgba(9,45,47,.08)}
.sol-stats{display:grid;grid-template-columns:1fr 1fr;margin:0}
.sol-stats div{padding:8px 12px;text-align:center;min-width:0}
.sol-stats div+div{border-left:1px solid var(--line)}
.sol-stats dt{display:inline-flex;align-items:center;gap:6px;font:400 .75rem/1.4 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.sol-stats dt::before{content:"";width:5px;height:5px;background:var(--art-line)}
.sol-stats div+div dt::before{background:var(--line)}
.sol-stats dd{margin:0;overflow:hidden;font:400 1.125rem/1.4 ui-monospace,"SFMono-Regular",Menlo,monospace;color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis}
@media(max-width:760px){.sol-grid{grid-template-columns:1fr}.sol-panel:nth-child(n){border-inline:0}.sol-top h3{font-size:.75rem}.sol-stats dd{font-size:.9375rem;white-space:normal}}
.sol-art{display:block;width:100%;height:auto;border-bottom:1px solid var(--line)}
.sol-hero .feat-frame{padding-block:clamp(2.5rem,5vw,4rem) clamp(3rem,6vw,5rem)}
.sol-box{position:relative;padding:clamp(2.5rem,6vw,3.5rem) clamp(1.25rem,4vw,3rem);background:var(--white);border:1px solid var(--line);text-align:center}
.sol-dot{position:absolute;width:6px;height:6px;border:1px solid var(--line);border-radius:50%}
.sol-dot--tl,.sol-dot--tr{top:6px}
.sol-dot--bl,.sol-dot--br{bottom:6px}
.sol-dot--ml,.sol-dot--mr{top:calc(50% - 3px)}
.sol-dot--tl,.sol-dot--ml,.sol-dot--bl{left:6px}
.sol-dot--tr,.sol-dot--mr,.sol-dot--br{right:6px}
.sol-box h1{max-width:34rem;margin:0 auto;font-family:var(--serif);font-size:clamp(2rem,4vw,2.75rem);font-weight:500;line-height:1.12;letter-spacing:-.015em;color:var(--ink-deep)}
.sol-lede{max-width:36rem;margin:1rem auto 0;font-size:1rem;line-height:1.55;color:var(--muted)}
.sol-lede+.sol-lede{margin-top:.75rem}
.sol-button{position:relative;display:inline-flex;align-items:center;min-height:32px;margin-top:2rem;padding:0 12px;border:2px solid var(--sage);background:var(--field);box-shadow:0 0 4px rgba(82,101,46,.6);color:var(--white);font:600 .875rem/1 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.02em;text-transform:uppercase;text-decoration:none}
.sol-button:hover{background:var(--field-hover)}
.sol-button:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.sol-tick{position:absolute;width:4px;height:4px;border:1px solid var(--field-hover)}
.sol-tick--tl{top:-3px;left:-3px;border-width:1px 0 0 1px}
.sol-tick--tr{top:-3px;right:-3px;border-width:1px 1px 0 0}
.sol-tick--bl{bottom:-3px;left:-3px;border-width:0 0 1px 1px}
.sol-tick--br{bottom:-3px;right:-3px;border-width:0 1px 1px 0}
.sol-hero{border-top:1px solid var(--line)}
.sol-faq{border-bottom:1px solid var(--line)}
.faq-panel{background:var(--white);padding:8px;border-top:1px solid var(--line)}
.faq-item{border:1px solid var(--line);background:var(--white)}
.faq-item+.faq-item{border-top:0}
.faq-item summary{display:grid;grid-template-columns:2.5rem 1fr 14px;align-items:center;gap:.75rem;min-height:56px;padding:.9rem 1rem;color:var(--ink-deep);font-weight:500;list-style:none;cursor:pointer}
.faq-item summary::after{content:none}
.faq-item summary:hover .faq-q{color:var(--field)}
.faq-item summary:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.faq-num{font:500 .75rem/1 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.04em;color:var(--field)}
.faq-q{font-size:.9375rem;line-height:1.4}
.faq-icon{position:relative;width:14px;height:14px}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:0;top:6.5px;width:14px;height:1.5px;background:var(--art-line);transition:transform .2s var(--ease)}
.faq-icon::after{transform:rotate(90deg)}
.faq-item[open] .faq-icon::after{transform:rotate(0)}
.faq-item p{margin:0;padding:0 2.75rem 1.1rem calc(1rem + 2.5rem + .75rem);font-size:.875rem;line-height:1.55;color:var(--muted)}
@media(max-width:620px){.faq-item summary{grid-template-columns:1.75rem 1fr 14px;padding:.85rem .75rem}.faq-item p{padding:0 .75rem 1rem calc(.75rem + 1.75rem + .75rem)}}
@media(prefers-reduced-motion:reduce){.faq-icon::before,.faq-icon::after{transition:none}}
.co-figure{margin:1.25rem 0 0}
.co-figure blockquote{margin:0}
.co-mark{display:block;width:40px;height:30px;margin:0 auto 1.25rem;fill:var(--sage)}
.co-pull{max-width:40rem;margin:0 auto;font-family:var(--serif);font-size:clamp(1.75rem,3.6vw,2.6rem);font-weight:500;line-height:1.18;letter-spacing:-.015em;color:var(--ink-deep)}
.co-body{max-width:36rem;margin:2.25rem auto 0;padding-top:2.25rem;border-top:1px solid var(--line);text-align:left}
.co-body p{margin:0;font-size:1rem;line-height:1.65;color:var(--muted)}
.co-body p+p{margin-top:1rem}
.co-cite{display:flex;flex-direction:column;align-items:center;gap:.3rem;margin-top:2.5rem}
.co-cite strong{font:600 .875rem/1.3 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-deep)}
.co-cite span{font:400 .75rem/1.3 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--field)}
.sol-box .qual-form{max-width:40rem;margin:2.25rem auto 0;text-align:left}
.sol-box .field label{font:500 .6875rem/1.3 ui-monospace,"SFMono-Regular",Menlo,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sol-box .field input,.sol-box .field select,.sol-box .field textarea{border:1px solid var(--line);border-radius:0;background:var(--paper)}
.sol-box .field input:focus-visible,.sol-box .field select:focus-visible,.sol-box .field textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--field)}
.sol-box .form-note{margin:0;font-size:.8125rem;line-height:1.5}
.sol-box .form-actions{justify-items:center}
button.sol-button{margin-top:.5rem;cursor:pointer}
.night{position:relative;overflow:hidden;padding-block:clamp(6rem,14vh,9rem) clamp(5rem,11vh,8rem);background:linear-gradient(to bottom,var(--paper) 0,var(--sky) 150px,var(--sky) 44%,var(--grass) 82%,var(--grass) 100%)}
.night-head{max-width:760px;margin:0 auto;padding-inline:var(--gutter);text-align:center}
.night-eyebrow{margin:0;font:700 .75rem/1.4 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--field)}
.night-title{margin:.9rem 0 0;font-family:var(--serif);font-size:clamp(2.1rem,4.5vw,3.6rem);font-weight:470;line-height:1.05;letter-spacing:-.035em;color:var(--ink-deep)}
.night-sub{max-width:50ch;margin:1.2rem auto 0;font-size:clamp(1rem,1.25vw,1.125rem);line-height:1.5;color:var(--body)}
.night-cta{margin:clamp(1.6rem,3.4vh,2.1rem) 0 0}
.night-cta .button{min-height:56px;padding-inline:2.1rem;font-size:1.0625rem}
.night-rows{display:grid;gap:10px;margin-top:clamp(3.25rem,7.5vh,5.5rem)}
.marquee{--gap:10px;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 11%,#000 89%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 11%,#000 89%,transparent 100%)}
.marquee-track{display:flex;width:max-content;animation:marquee 120s linear infinite;animation-play-state:paused}
.marquee-set{display:flex;align-items:center;gap:var(--gap);margin:0;padding:0 var(--gap) 0 0;list-style:none}
.marquee--r1 .marquee-track{animation-duration:115s}
.marquee--r2 .marquee-track{animation-duration:130s}
.marquee--r3 .marquee-track{animation-duration:120s}
.marquee--rev .marquee-track{animation-direction:reverse}
.night.is-in .marquee-track{animation-play-state:running}
.night .marquee:hover .marquee-track{animation-play-state:paused}
.task{display:flex;align-items:center;gap:9px;padding:12px 16px;border:1px solid rgba(18,58,60,.14);border-radius:9px;background:rgba(255,253,248,.8);color:var(--ink);font-size:clamp(.875rem,1.05vw,1rem);letter-spacing:-.008em;white-space:nowrap}
.task::before{content:"";flex:none;width:9px;height:9px;border-radius:2px;background:var(--field)}
@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:640px){.night-rows{gap:8px}.marquee{--gap:8px}.task{gap:8px;padding:10px 13px}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}
/* One atmosphere for the whole page: a mesh of low-opacity radial washes in
   the frontier palette, drifting slowly, with fine grain over it so the large
   gradients cannot band. Sections sit transparent on top of it. */
.home{position:relative;isolation:isolate;overflow:clip}
.home::before,.home::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}
.home::before{background:radial-gradient(42% 26% at 16% 10%,rgba(var(--air-ridge),.60) 0,rgba(var(--air-ridge),0) 72%),radial-gradient(38% 22% at 86% 18%,rgba(var(--air-sun),.34) 0,rgba(var(--air-sun),0) 74%),radial-gradient(46% 26% at 92% 44%,rgba(var(--air-dust),.30) 0,rgba(var(--air-dust),0) 72%),radial-gradient(52% 26% at 8% 56%,rgba(var(--air-sun),.26) 0,rgba(var(--air-sun),0) 74%),radial-gradient(48% 24% at 78% 74%,rgba(var(--air-ridge),.46) 0,rgba(var(--air-ridge),0) 74%),radial-gradient(56% 26% at 20% 88%,rgba(201,219,164,.42) 0,rgba(201,219,164,0) 74%)}
.home::after{opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px}
/* Home bands carry the same hairline frame and hatched margins as the inner
   pages, one step wider so the diagrams keep their measure. */
.home>section:not(.hero):not(.night){--frame:1100px;--max:1040px;position:relative;background-repeat:no-repeat;background-size:1px 100%,1px 100%,80px 100%,1px 100%,1px 100%,80px 100%,1px 100%,1px 100%;background-position:calc(50% - var(--frame) / 2) 0,calc(50% + var(--frame) / 2) 0,calc(50% - var(--frame) / 2 - 110px) 0,calc(50% - var(--frame) / 2 - 110px) 0,calc(50% - var(--frame) / 2 - 30px) 0,calc(50% + var(--frame) / 2 + 30px) 0,calc(50% + var(--frame) / 2 + 30px) 0,calc(50% + var(--frame) / 2 + 110px) 0;background-image:linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line)),repeating-linear-gradient(135deg,rgba(200,201,188,.55) 0 1px,transparent 1px 7px),linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line)),repeating-linear-gradient(135deg,rgba(200,201,188,.55) 0 1px,transparent 1px 7px),linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line))}
@media(max-width:1300px){.home>section:not(.hero):not(.night){background-image:linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line));background-size:1px 100%,1px 100%;background-position:calc(50% - var(--frame) / 2) 0,calc(50% + var(--frame) / 2) 0}}
@media(max-width:1180px){.home>section:not(.hero):not(.night){background-image:none}}
