/* Bluestem Project Solutions: site.css (rev 2). Palette "Datum": Navy, Blue, Milestone Green (graphics only), Field Green, Survey White, Slate, Sky. */

@font-face{font-family:"IBM Plex Sans";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-400-normal.3b646991.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-500-normal.0717336f.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-600-normal.8960851d.woff2) format("woff2")}
@font-face{font-family:"Plex Fallback";src:local("Arial");size-adjust:101%;ascent-override:95%;descent-override:25%;line-gap-override:0}

:root{
  --step--1:clamp(.8333rem,.8177rem + .078vw,.8908rem);
  --step-0:clamp(1rem,.9492rem + .2542vw,1.1875rem);
  --step-1:clamp(1.2rem,1.0962rem + .5192vw,1.5829rem);
  --step-2:clamp(1.44rem,1.2583rem + .9086vw,2.1101rem);
  --step-3:clamp(1.728rem,1.4338rem + 1.4708vw,2.8127rem);
  --step-4:clamp(2rem,1.45rem + 2.6vw,3.6rem);
  --step-5:clamp(2.3rem,1.5rem + 3.6vw,4.6rem);
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
  --section-y:clamp(72px,5.6vw + 40px,148px);
  --gutter:clamp(20px,4vw,48px);
  --container:1240px;
  --edge:max(var(--gutter),calc((100vw - 1360px) / 2));
  --header-h:72px;

  --ease-out:cubic-bezier(.22,1,.36,1);--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-3:300ms;--dur-4:450ms;--dur-reveal:700ms;

  --navy:#132C49;--navy-deep:#0D2036;--blue:#1B62A3;--green:#3F923C;--field:#2B6B2D;
  --bg:#F4F7FA;--surface:#fff;--slate:#4A5B70;--rule:#D5DDE6;--sky:#9CC4EC;--tint:#E8EEF4;
  --ink:var(--navy);--focus:#1B62A3;

  --radius-card:16px;--radius-btn:10px;--radius-sm:8px;
  --shadow-color:210deg 45% 18%;
  --shadow-2:0 1px 1px hsl(var(--shadow-color) / .06),0 3px 6px hsl(var(--shadow-color) / .07),0 10px 24px hsl(var(--shadow-color) / .08);

  --font-display:"IBM Plex Sans","Plex Fallback","Helvetica Neue",Arial,sans-serif;
  --font-body:"IBM Plex Sans","Plex Fallback","Helvetica Neue",Arial,sans-serif;
}
@media(min-width:1024px){:root{--header-h:92px}}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;overflow-x:clip}
html{scroll-padding-top:calc(var(--header-h) + 8px);background:var(--bg);-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:400 var(--step-0)/1.6 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:var(--blue)}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;color:inherit;font-weight:600}
h2,h3,h4{text-wrap:balance}
p,li,figcaption{text-wrap:pretty}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
h2{font-size:var(--step-4);line-height:1.06;letter-spacing:-.025em;max-width:20ch}
h3{font-size:var(--step-1);line-height:1.22;letter-spacing:-.01em}
.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}
.skip-link{position:fixed;left:var(--gutter);top:8px;z-index:400;padding:12px 16px;border-radius:8px;background:var(--navy);color:#fff;transform:translateY(-160%);transition:transform .2s var(--ease-out)}
.skip-link:focus-visible{transform:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.on-dark :focus-visible,.site-header :focus-visible,.menu :focus-visible,.site-footer :focus-visible{outline-color:#fff}
main{position:relative;z-index:1}
main:focus{outline:none}
.section{padding-block:var(--section-y);padding-inline:var(--gutter)}
.container{width:min(var(--container),100%);margin-inline:auto}
.lead{font-size:var(--step-1);line-height:1.45;max-width:44ch;color:var(--slate)}
.prose{max-width:60ch}
.prose p+p{margin-top:1em}
.on-dark{background:var(--navy);color:#fff}
.on-dark a:not(.btn){color:var(--sky)}
.micro{font-size:var(--step--1);color:var(--slate)}
.on-dark .micro{color:#C9D7E6}

/* ------------ Buttons and links ------------ */
.btn{--btn-bg:var(--blue);--btn-fg:#fff;--btn-sweep:var(--navy);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:0;border-radius:var(--radius-btn);background:var(--btn-bg);color:var(--btn-fg);font:600 1rem/1 var(--font-body);text-decoration:none;cursor:pointer;white-space:nowrap;transition:box-shadow var(--dur-3) var(--ease-out)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--btn-sweep);transform:scaleX(0);transform-origin:right center;transition:transform 450ms var(--ease-out)}
.btn__icon{display:inline-grid;transition:transform 300ms var(--ease-out)}
.btn--onDark{--btn-bg:#fff;--btn-fg:var(--navy);--btn-sweep:var(--sky)}
.btn--lg{min-height:58px;padding:0 30px;font-size:1.0625rem}
.btn--sm{min-height:46px;padding:0 20px;font-size:.9375rem}
@media(hover:hover) and (pointer:fine){
  .btn:hover{box-shadow:0 8px 24px hsl(210 60% 14% / .28)}
  .btn:hover::before{transform:scaleX(1);transform-origin:left center}
  .btn:hover .btn__icon{transform:translateX(4px)}
}
.btn:active{transform:translateY(1px) scale(.98)}
.btn[aria-busy="true"] .btn__label,.btn[aria-busy="true"] .btn__icon{opacity:0}
.btn[aria-busy="true"]::after{content:"";position:absolute;inset:0;margin:auto;width:20px;height:20px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}
.link{display:inline-block;min-height:44px;padding-block:9px;line-height:1.35;font-weight:600;color:var(--blue);text-decoration:none}
.nw{white-space:nowrap}
.link .u{background:linear-gradient(currentColor,currentColor) no-repeat left 100%/100% 1.5px;padding-bottom:2px}
.link svg{display:inline-block;vertical-align:-3px;margin-left:8px;transition:transform 300ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){.link:hover svg{transform:translateX(4px)}}
.on-dark .link,.link--light{color:var(--sky)}
.linkrow{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:var(--space-5)}
.ico{flex-shrink:0}

/* ------------ Header ------------ */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);display:flex;align-items:center;gap:var(--space-5);padding-inline:var(--edge);background:linear-gradient(180deg,rgb(19 44 73 / .72),rgb(19 44 73 / 0));color:#fff;transition:transform 350ms var(--ease-out),background-color 300ms var(--ease-out),box-shadow 300ms}
.site-header.is-solid{background:var(--navy);box-shadow:0 1px 0 rgb(255 255 255 / .08)}
.site-header[data-hidden="true"]{transform:translateY(-100%)}
.site-header:focus-within{transform:none}
.logo{display:block;flex-shrink:0;margin-right:auto;line-height:0}
.logo img{height:46px;width:auto}
@media(min-width:420px){.logo img{height:50px}}
@media(min-width:1024px){.logo img{height:64px}}
.nav-desktop{display:none}
.nav-desktop ul{display:flex;gap:2px}
.nav-link{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:#fff;font-weight:500;font-size:.9375rem;text-decoration:none;white-space:nowrap}
.nav-link::after{content:"";position:absolute;left:12px;right:12px;bottom:8px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--dur-3) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.nav-link:hover::after{transform:scaleX(1);transform-origin:left}}
.nav-link:focus-visible::after{transform:scaleX(1);transform-origin:left}
.site-header .btn{display:none;flex:none}
@media(min-width:1200px){.nav-desktop{display:block}.site-header .btn{display:inline-flex}}
.menu-toggle{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid currentColor;border-radius:999px;background:none;color:#fff;font:600 .9375rem var(--font-body);cursor:pointer;white-space:nowrap;flex-shrink:0}
@media(min-width:1200px){.site-header .menu-toggle{display:none}}
.burger{position:relative;width:18px;height:12px}
.burger span{position:absolute;left:0;width:100%;height:2px;background:currentColor;border-radius:2px;transition:transform .35s var(--ease-in-out),top .35s var(--ease-in-out) .1s,opacity .2s}
.burger span:nth-child(1){top:0}.burger span:nth-child(2){top:5px}.burger span:nth-child(3){top:10px}
[aria-expanded="true"] .burger span:nth-child(1){top:5px;transform:rotate(45deg)}
[aria-expanded="true"] .burger span:nth-child(2){opacity:0}
[aria-expanded="true"] .burger span:nth-child(3){top:5px;transform:rotate(-45deg)}
.menu{margin:0;padding:0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:var(--navy);color:#fff;overflow:auto;overscroll-behavior:contain}
.menu::backdrop{background:transparent}
html.menu-open{background:var(--navy)}
.menu-inner{min-height:100%;display:flex;flex-direction:column;padding:calc(var(--header-h) + 24px) var(--gutter) 32px}
.menu .menu-toggle{position:absolute;top:14px;right:var(--gutter)}
.menu-links a{display:block;padding:10px 0;font:600 clamp(28px,8vw,44px)/1.15 var(--font-display);color:#fff;text-decoration:none}
.menu-links .mask{display:block;overflow:hidden}.menu-links .mask>span{display:block}
.menu-foot{margin-top:auto;padding-top:32px;border-top:1px solid rgb(255 255 255 / .15);display:grid;gap:12px}

/* ------------ Hero (full bleed) ------------ */
.hero{position:relative;isolation:isolate;display:flex;flex-direction:column;background:var(--navy);color:#fff;overflow:clip}
.hero__content{order:1;position:relative;z-index:3;padding:calc(var(--header-h) + 30px) var(--gutter) 0}
.hero__media{order:2;position:relative;z-index:1;width:100%;aspect-ratio:4/5;margin-top:-45vw;overflow:hidden}
.hero__media picture,.hero__media img{display:block;width:100%;height:100%}
.hero__media img{object-fit:cover;object-position:50% 50%}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,var(--navy) 0%,rgb(19 44 73 / .9) 16%,rgb(19 44 73 / .45) 34%,rgb(19 44 73 / 0) 52%),linear-gradient(0deg,rgb(19 44 73 / .7) 0%,rgb(19 44 73 / 0) 18%)}
.hero__vp{position:absolute;left:15.4%;top:49.8%;width:16px;height:16px;margin:-8px 0 0 -8px;background:var(--green);transform:rotate(45deg);box-shadow:0 0 0 2px rgb(255 255 255 / .9),0 0 18px rgb(63 146 60 / .6)}
.hero__vp::after{content:"";position:absolute;inset:-2px;border:2px solid var(--green);opacity:0}
.hero__br{position:absolute;z-index:4;width:44px;height:44px;fill:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;pointer-events:none}
.hero__br path{stroke:currentColor}
.hero__br--tl{left:8px;top:calc(var(--header-h) + 4px);color:#4F93D1}
.hero__br--br{right:var(--gutter);bottom:20px;color:#fff;opacity:.85}
.hero__display{font-weight:600;font-size:clamp(2.2rem,9.2vw,3.4rem);line-height:1.02;letter-spacing:-.035em;max-width:11ch;text-wrap:balance}
.hero__h1{margin-top:20px;font-weight:500;font-size:clamp(1.0625rem,3.4vw,1.375rem);line-height:1.3;letter-spacing:-.005em;max-width:30ch;color:#fff}
.hero__sub{margin-top:14px;max-width:44ch;font-size:var(--step-0);line-height:1.5;color:#DCE7F2}
.hero__offer{margin-top:20px;max-width:44ch;font-size:var(--step-0);line-height:1.45;color:#fff;font-weight:500}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;margin-top:20px}
.hero__micro{margin-top:10px;font-size:var(--step--1);color:#C9D7E6}
.hero__proof{margin-top:22px;padding-top:16px;border-top:1px solid rgb(255 255 255 / .22);max-width:44ch;font-size:var(--step--1);color:#DCE7F2;font-weight:500}
@media(max-width:899px){.hero__content{padding-bottom:6px}.hero__sub,.hero__see{display:none}}
@media(min-width:900px){.problem__lead{display:none}}
.problem__lead{max-width:34ch;margin:0 0 var(--space-6);font-size:var(--step-1);line-height:1.4;color:var(--navy);font-weight:500}

@media(min-width:900px){
  .hero{display:block;height:max(700px,min(100svh,960px))}
  .hero__media{position:absolute;inset:0;margin:0;aspect-ratio:auto;container-type:size;z-index:0;transform-origin:36.8% 29.8%;will-change:transform}
  .hero__media img{object-position:68% 35%}
  .hero__scrim{background:linear-gradient(90deg,rgb(19 44 73 / .96) 0%,rgb(19 44 73 / .9) 26%,rgb(19 44 73 / .6) 44%,rgb(19 44 73 / .12) 64%,rgb(19 44 73 / 0) 76%),linear-gradient(180deg,rgb(19 44 73 / .6) 0%,rgb(19 44 73 / 0) 20%),linear-gradient(0deg,rgb(19 44 73 / .55) 0%,rgb(19 44 73 / 0) 22%)}
  /* the vanishing point of the line in the 16:9 photo is at 36.8% x, 29.8% y; this tracks it under object-fit: cover */
  .hero__vp{--iw:max(100cqw,177.7778cqh);--ih:max(56.25cqw,100cqh);left:calc((100cqw - var(--iw)) * .68 + var(--iw) * .368);top:calc((100cqh - var(--ih)) * .35 + var(--ih) * .298);width:20px;height:20px;margin:-10px 0 0 -10px}
  .hero__content{position:absolute;z-index:3;left:0;bottom:0;width:calc(var(--edge) + min(40rem,44vw));padding:0 0 clamp(52px,6.2svh,72px) var(--edge)}
  .hero__display{font-size:clamp(3rem,.8rem + 3.4vw,5rem);max-width:12ch}
  .hero__h1{margin-top:22px;font-size:clamp(1.25rem,.95rem + .8vw,1.65rem);max-width:28ch}
  .hero__br{width:clamp(72px,7vw,120px);height:clamp(72px,7vw,120px);stroke-width:5}
  .hero__br--tl{left:max(10px,calc(var(--edge) - 34px));top:calc(var(--header-h) + 8px)}
  .hero__br--br{right:var(--edge);bottom:clamp(24px,4svh,40px)}
}
/* hero entrance (JS adds .js-motion only when motion is allowed) */
.js-motion .hero__content>*{opacity:0;transform:translateY(22px);animation:rise .9s var(--ease-out-expo) forwards;animation-delay:calc(var(--i,0) * 90ms + 150ms)}
.js-motion .hero__content>*:nth-child(1){--i:0}.js-motion .hero__content>*:nth-child(2){--i:1}.js-motion .hero__content>*:nth-child(3){--i:2}.js-motion .hero__content>*:nth-child(4){--i:3}.js-motion .hero__content>*:nth-child(5){--i:4}.js-motion .hero__content>*:nth-child(6){--i:5}.js-motion .hero__content>*:nth-child(7){--i:6}
@keyframes rise{to{opacity:1;transform:none}}
.js-motion .hero__br path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1s var(--ease-in-out) .35s forwards}
.js-motion .hero__br--br path{animation-delay:.55s}
@keyframes draw{to{stroke-dashoffset:0}}
.js-motion .hero__vp{opacity:0;animation:pop .6s var(--ease-out-expo) 1.1s forwards}
.js-motion .hero__vp::after{animation:ping 1.4s var(--ease-out) 1.5s 1 forwards}
@keyframes pop{from{opacity:0;transform:rotate(45deg) scale(.2)}to{opacity:1;transform:rotate(45deg) scale(1)}}
@keyframes ping{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(3.4)}}

/* ------------ Problem (white) ------------ */
.problem{background:var(--bg);padding-bottom:calc(var(--section-y) * .8)}
.problem__grid{display:grid;gap:var(--space-7) var(--space-8)}
.problem__h{font-size:var(--step-5);line-height:1.02;letter-spacing:-.035em;max-width:14ch}
.problem__body{font-size:var(--step-0);color:var(--navy)}
.problem__body p:last-child{font-weight:600}
@media(min-width:960px){.problem__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}.problem__body{padding-bottom:.5rem}}
.gapline{--g:48px;height:4px;margin-top:clamp(48px,6vw,88px);border-radius:2px;background:linear-gradient(90deg,var(--blue) 0 calc(50% - var(--g)),transparent calc(50% - var(--g)) calc(50% + var(--g)),var(--blue) calc(50% + var(--g)) 100%);position:relative}
.js-motion .gapline{--g:calc((1 - var(--c,0)) * 56px)}
.gapline::before,.gapline::after{content:"";position:absolute;top:50%;width:12px;height:12px;border:3px solid var(--blue);background:var(--bg);border-radius:50%;transform:translateY(-50%)}
.gapline::before{left:0}.gapline::after{right:0}

/* ------------ Where projects break (navy) ------------ */
.break{padding-block:clamp(80px,7vw + 40px,160px)}
.break h2{color:#fff;max-width:14ch}
.sts{--cg:clamp(20px,2.4vw,40px);display:grid;gap:var(--space-7);margin-top:clamp(40px,5vw,72px)}
.st{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:18px}
.st__rail{display:flex;flex-direction:column;align-items:center}
.st__node{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:3px solid var(--sky);background:var(--navy);transition:background-color .4s var(--ease-out)}
.st__conn{--g:28px;flex:1;width:3px;min-height:40px;margin-top:6px;margin-bottom:-60px;background:linear-gradient(180deg,var(--sky) 0 calc(50% - var(--g)),transparent calc(50% - var(--g)) calc(50% + var(--g)),var(--sky) calc(50% + var(--g)) 100%)}
.js-motion .st__conn{--g:calc((1 - var(--c,0)) * 30px)}
.st:last-child .st__conn{display:none}
.st__body{padding-bottom:4px}
.st__ico{display:inline-flex;color:var(--sky);margin-bottom:12px}
.st h3{color:#fff;font-size:var(--step-2);letter-spacing:-.02em;line-height:1.15}
@media(min-width:1000px){.st h3{min-height:2.3em}}
.st p{margin-top:10px;color:#DCE7F2;max-width:30ch}
.break__line{margin-top:clamp(48px,5vw,80px);max-width:30ch;font-size:var(--step-3);line-height:1.2;letter-spacing:-.02em;font-weight:600;color:#fff;padding-top:28px;border-top:1px solid rgb(255 255 255 / .2)}
@media(min-width:1000px){
  .sts{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--cg);row-gap:0}
  .st{display:block}
  .st__rail{flex-direction:row;margin-bottom:26px;margin-right:calc(-1 * var(--cg))}
  .st:last-child .st__rail{margin-right:0}
  .st__conn{width:auto;height:3px;min-height:0;flex:1;margin:0 0 0 6px;background:linear-gradient(90deg,var(--sky) 0 calc(50% - var(--g)),transparent calc(50% - var(--g)) calc(50% + var(--g)),var(--sky) calc(50% + var(--g)) 100%)}
  .st__conn{margin-right:6px}
}

/* ------------ Solution ------------ */
.solution{background:var(--tint)}
.sol__grid{display:grid;gap:var(--space-7) var(--space-8)}
.sol__lead h2{max-width:14ch;font-size:var(--step-5);line-height:1.02;letter-spacing:-.035em}
.sol__lead .prose{margin-top:var(--space-6);font-size:var(--step-0)}
.sol__list{display:grid;gap:0;border-top:2px solid var(--navy)}
.sol__list li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid var(--rule);font-size:var(--step-1);line-height:1.3;font-weight:500;max-width:none}
.sol__ico{display:grid;place-items:center;width:56px;height:56px;border-radius:12px;background:var(--navy);color:#fff}
@media(min-width:960px){.sol__grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:start}.sol__side{padding-top:.75rem}}

/* ------------ Tracker (signature) ------------ */
.tracker{background:var(--bg);padding-block:clamp(80px,7vw + 40px,160px)}
.trk{display:grid;gap:var(--space-7) var(--space-8)}
.trk__head h2{max-width:16ch}
.trk__head .lead{margin-top:20px;max-width:30ch}
@media(min-width:1024px){
  .trk{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(48px,6vw,112px)}
  .trk__head{position:sticky;top:calc(var(--header-h) + 48px);align-self:start}
}
.trk__main{--bx:14px;--pl:46px;min-width:0}
.trk__track{position:relative;--p:0}
@media(min-width:640px){.trk__main{--bx:18px;--pl:68px}}
.trk__list{padding-left:var(--pl)}
.trk__item{padding-block:clamp(26px,3.4vw,44px);border-top:1px solid var(--rule)}
.trk__item:first-child{border-top:0;padding-top:0}
.trk__title{position:relative;display:flex;align-items:center;gap:14px;font-size:clamp(1.35rem,1.05rem + 1.1vw,1.9rem);line-height:1.2;letter-spacing:-.02em;color:color-mix(in srgb,var(--blue) calc(var(--on,0) * 100%),var(--navy))}
.trk__ico{display:inline-flex;color:var(--blue)}
.trk__dot{position:absolute;left:calc(var(--bx) - var(--pl));top:50%;width:16px;height:2px;margin:-1px 0 0 -8px;background:var(--rule-strong,#B9C6D4);z-index:2;transition:background-color .3s,width .3s var(--ease-out),margin .3s var(--ease-out)}
.trk__item.is-passed .trk__dot{background:var(--navy)}
.trk__item.is-active .trk__dot{width:22px;margin-left:-11px;background:var(--blue)}
.trk__body{margin-top:14px;max-width:44ch;font-size:var(--step-0);color:var(--navy)}
.trk__risk{display:flex;gap:10px;align-items:flex-start;margin-top:12px;max-width:44ch;font-size:var(--step--1);line-height:1.45;color:var(--slate);font-weight:500}
.trk__risk .ico{margin-top:2px;color:var(--blue)}
.trk__bar{position:absolute;z-index:1;left:calc(var(--bx) - 3px);width:6px;top:var(--bt,28px);height:var(--bh,70%);border-radius:3px;background:linear-gradient(180deg,#132C49 0%,#17406B 22%,#1B62A3 44%,#287F8E 68%,#379062 86%,#3F923C 100%);display:none}
.trk.is-ready .trk__bar{display:block}
.trk__rest{position:absolute;inset:0;border-radius:3px;background:var(--rule);transform-origin:bottom;transform:scaleY(1);will-change:transform}
.trk__diamond{position:absolute;display:none;left:var(--bx);top:var(--bt,28px);width:24px;height:24px;background:var(--green);border:3px solid #fff;box-shadow:0 2px 10px rgb(19 44 73 / .35),0 0 0 1px rgb(19 44 73 / .15);transform:translate3d(-50%,-12px,0) rotate(45deg);will-change:transform;z-index:6;pointer-events:none}
.trk__diamond i{position:absolute;inset:0;opacity:0;will-change:opacity}
.trk__diamond i:nth-child(1){background:rgb(27,98,163);opacity:1}
.trk__diamond i:nth-child(2){background:rgb(40,127,142)}
.trk__diamond i:nth-child(3){background:rgb(55,144,98)}
.trk__diamond i:nth-child(4){background:rgb(63,146,60)}
.trk.is-ready .trk__diamond{display:block}
.trk__final{margin:clamp(20px,3vw,36px) 0 0 var(--pl);padding-top:28px;border-top:2px solid var(--navy);font-size:var(--step-2);line-height:1.2;letter-spacing:-.02em;font-weight:600;max-width:22ch}
.trk__main .linkrow{margin-left:var(--pl)}
.js-motion .trk.is-ready .trk__item{opacity:calc(.74 + .26 * var(--on,0))}

/* ------------ Neutral (navy statement) ------------ */
.neutral{position:relative;overflow:clip;padding-block:clamp(96px,9vw + 40px,200px)}
.neutral__grid{display:grid;gap:var(--space-7) var(--space-8);position:relative;z-index:1}
.neutral__h{max-width:15ch;font-size:clamp(2.3rem,1.3rem + 4.6vw,5.2rem);line-height:1;letter-spacing:-.04em;color:#fff}
.neutral__side{max-width:40ch;font-size:var(--step-1);line-height:1.5;color:#E4ECF4}
.neutral__side p{margin-bottom:var(--space-4)}
@media(min-width:1000px){.neutral__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}.neutral__side{padding-bottom:.6rem}}
.neutral__br,.hero__br{pointer-events:none}
.neutral__br{position:absolute;width:clamp(64px,7vw,120px);height:clamp(64px,7vw,120px);fill:none;stroke-width:5;stroke-linecap:butt}
.neutral__br path{stroke:currentColor}
.neutral__br--tl{left:var(--edge);top:clamp(28px,4vw,56px);color:#4F93D1}
.neutral__br--br{right:var(--edge);bottom:clamp(28px,4vw,56px);color:#fff;opacity:.8}

/* ------------ Credentials, network ------------ */
.creds{background:var(--bg)}
.creds__grid{display:grid;gap:var(--space-6) var(--space-8)}
.creds h2{font-size:var(--step-4);max-width:13ch}
.creds__body p{font-size:var(--step-0);max-width:52ch}
.ticks{margin-top:var(--space-5);display:grid;gap:12px}
.ticks li{display:flex;gap:14px;align-items:flex-start;font-size:var(--step-1);line-height:1.3;font-weight:500;max-width:none}
.ticks .ico{margin-top:2px;color:var(--blue)}
.creds__line{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--rule);font-weight:600}
.creds .link{margin-top:6px}
@media(min-width:960px){.creds__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.band{padding:clamp(40px,4vw,64px) var(--gutter)}
.network{background:var(--tint);border-block:1px solid var(--rule)}
.network__grid{display:grid;gap:12px var(--space-8);align-items:center}
.network h2{font-size:var(--step-2);max-width:22ch;letter-spacing:-.02em}
.network p{max-width:56ch;color:var(--navy)}
@media(min-width:900px){.network__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}

/* ------------ Benefits ------------ */
.benefits{background:var(--bg)}
.benefits h2{max-width:16ch}
.bens{display:grid;gap:var(--space-7) var(--space-7);margin-top:clamp(40px,5vw,72px)}
.ben{border-top:4px solid var(--blue);padding-top:24px;max-width:none}
.ben:nth-child(2){border-top-color:var(--navy)}
.ben:nth-child(3){border-top-color:var(--blue)}
.ben__ico{display:inline-flex;color:var(--blue);margin-bottom:var(--space-4)}
.ben h3{font-size:var(--step-2);letter-spacing:-.02em}
.ben p{margin-top:12px;color:var(--slate);max-width:36ch}
@media(min-width:900px){.bens{grid-template-columns:repeat(3,minmax(0,1fr))}.ben:nth-child(2){margin-top:clamp(28px,4vw,56px)}.ben:nth-child(3){margin-top:clamp(56px,8vw,112px)}}

/* ------------ Deliverables ------------ */
.deliverables{background:var(--tint)}
.deliv__grid{display:grid;gap:var(--space-8) var(--space-8);align-items:center}
.deliv__fig{position:relative;margin:0;padding:0 0 0 0}
.deliv__fig img{position:relative;z-index:2;width:100%;height:auto;aspect-ratio:900/605;object-fit:cover;border-radius:2px}
.deliv__fig figcaption{margin-top:14px;font-size:var(--step--1);color:var(--slate)}
.deliv__br{position:absolute;z-index:1;width:34%;height:42%;border:solid var(--blue);pointer-events:none}
.deliv__br--a{left:-18px;top:-18px;border-width:10px 0 0 10px}
.deliv__br--b{right:-18px;bottom:calc(14px + 1.6em + 4px);border-width:0 10px 10px 0;border-color:var(--navy)}
.deliv__lead{margin-top:var(--space-5);max-width:50ch;font-size:var(--step-0)}
.deliverables h2{max-width:14ch}
.dels{display:grid;gap:var(--space-5) var(--space-6);margin-top:var(--space-7)}
.del{border-top:1px solid var(--navy);padding-top:16px;max-width:none}
.del__ico{display:inline-flex;color:var(--blue);margin-bottom:8px}
.del h3{font-size:var(--step-1);letter-spacing:-.015em}
.del p{margin-top:6px;color:var(--slate);font-size:.9688rem;line-height:1.5}
@media(min-width:600px){.dels{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.deliv__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:clamp(56px,7vw,112px)}}

/* ------------ Models ------------ */
.models{background:var(--bg)}
.models__head{display:grid;gap:16px var(--space-8);align-items:end}
.models h2{max-width:14ch}
.models .lead{max-width:42ch}
@media(min-width:960px){.models__head{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}}
.mods{margin-top:clamp(36px,4.5vw,64px);border-top:2px solid var(--navy)}
.mod{display:grid;gap:var(--space-5) var(--space-8);padding-block:clamp(28px,3.4vw,48px);border-bottom:1px solid var(--rule);align-items:center;max-width:none}
.mod h3{font-size:var(--step-2);letter-spacing:-.02em}
.mod p{margin-top:10px;max-width:46ch}
.mod__viz{display:grid;gap:14px}
.mod__cov{font-size:var(--step--1);font-weight:600;color:var(--navy);max-width:none}
@media(min-width:960px){.mod{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}}
.bar{display:flex;gap:6px;height:22px}
.bar i{display:block;border-radius:4px}
.bar--full i{flex:1;background:linear-gradient(90deg,var(--navy),var(--blue));position:relative}
.bar--full i::after{content:"";position:absolute;right:-4px;top:50%;width:18px;height:18px;margin-top:-9px;background:var(--green);transform:rotate(45deg) scale(.8);border:2px solid var(--bg)}
.bar--seg i{flex:1;background:transparent;border:2px dashed #9DB1C7}
.bar--seg i.on{background:var(--blue);border:2px solid var(--blue)}
.bar--blocks{gap:5px}
.bar--blocks i{flex:1;background:transparent;border:2px solid #9DB1C7;border-radius:3px}
.bar--blocks i.on{background:var(--navy);border-color:var(--navy)}
.models__cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:clamp(32px,4vw,56px)}

/* ------------ Who (split) ------------ */
.who{padding:0;background:var(--navy)}
.who__grid{display:grid}
.who__card{display:block;max-width:none;padding:clamp(56px,7vw,112px) var(--gutter)}
.who__card--1{background:var(--navy)}
.who__card--2{background:var(--blue)}
.who__in{max-width:30rem}
.who__ico{display:inline-flex;margin-bottom:var(--space-5);color:#fff}
.who h3{font-size:var(--step-3);letter-spacing:-.025em;line-height:1.08;color:#fff}
.who p{margin-top:16px;color:#fff;max-width:36ch}
.who__card--2 a:not(.btn),.who__card--2 .link{color:#fff}
.who__card--1 .link{color:var(--sky)}
.who .link{margin-top:12px}
@media(min-width:900px){
  .who__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .who__card--1{padding-left:var(--edge)}
  .who__card--2{padding-right:var(--edge)}
}

/* ------------ FAQ ------------ */
.faq{background:var(--bg)}
.faq__grid{display:grid;gap:var(--space-7) var(--space-8)}
.faq h2{max-width:12ch}
@media(min-width:960px){.faq__grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}.faq h2{position:sticky;top:calc(var(--header-h) + 40px);align-self:start}}
.faq__list{border-top:2px solid var(--navy)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:18px 0;cursor:pointer;list-style:none;font:600 var(--step-0)/1.35 var(--font-display)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{position:relative;flex-shrink:0;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--navy)}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--navy);transition:transform .3s var(--ease-out)}
.faq summary .pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0)}
@media(hover:hover) and (pointer:fine){.faq summary:hover .pm{background:var(--tint)}}
.faq .ans{padding:0 56px 26px 0;max-width:66ch;color:var(--slate)}

/* ------------ Warning ------------ */
.warn{background:var(--tint);border-top:1px solid var(--rule)}
.warn__grid{display:grid;gap:var(--space-6) var(--space-8);align-items:start}
.warn h2{font-size:var(--step-4);max-width:14ch}
.warn__body p{max-width:46ch;font-size:var(--step-0)}
.warn__body p+p{margin-top:1em}
.warn__cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:var(--space-6)}
@media(min-width:900px){.warn__grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}}

/* ------------ Close and form ------------ */
.close{overflow:clip}
.close__in{text-align:center}
.close h2{max-width:none;margin-inline:auto;font-size:clamp(2.1rem,1.1rem + 4.2vw,5rem);line-height:1.02;letter-spacing:-.04em;color:#fff}
.close h2 span{display:block}
.close__body{margin:var(--space-6) auto 0;color:#E4ECF4;max-width:44ch;font-size:var(--step-1)}
.close__cta{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:var(--space-6)}
.closeline{position:relative;width:min(34rem,72%);height:28px;margin:clamp(40px,5vw,72px) auto 0}
.closeline__l{position:absolute;left:0;right:30px;top:50%;height:3px;margin-top:-1.5px;background:var(--sky);border-radius:2px;transform-origin:left;transform:scaleX(var(--c,1))}
.closeline__d{position:absolute;right:2px;top:50%;width:18px;height:18px;margin:-9px 0 0 0;background:var(--green);transform:rotate(45deg) scale(var(--c,1))}
.formcard{margin:var(--space-8) auto 0;width:min(44rem,100%);text-align:left;background:var(--surface);color:var(--navy);border-radius:20px;padding:clamp(24px,4vw,44px);box-shadow:0 24px 60px rgb(0 0 20 / .35)}
.formcard h3{font-size:var(--step-2);font-weight:600}
.formcard .intro{margin-top:8px;color:var(--slate)}
.formgrid{display:grid;gap:18px;margin-top:var(--space-5)}
@media(min-width:640px){.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.formgrid .full{grid-column:1/-1}}
.field label{display:block;font-weight:600;font-size:.9375rem;margin-bottom:6px}
.field .opt{font-weight:400;color:var(--slate)}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;font:400 1rem var(--font-body);color:var(--navy);background:var(--bg);border:1.5px solid #8EA0B4;border-radius:10px;appearance:none;-webkit-appearance:none}
.field textarea{min-height:130px;resize:vertical}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23132C49' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--blue)}
.field [aria-invalid="true"]{border-color:#B3261E;background:#fff}
.field .helper{margin-top:6px;font-size:.875rem;color:var(--slate)}
.field .err{display:none;margin-top:6px;font-size:.9062rem;color:#B3261E;font-weight:500}
.field [aria-invalid="true"]~.err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formfoot{margin-top:var(--space-5);display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.formfoot .note{font-size:var(--step--1);color:var(--slate);max-width:36ch}
.formcard .btn{min-width:240px}
.fail{display:none;margin-top:14px;color:#B3261E;font-weight:600}
.fail.is-on{display:block}
.thanks{display:none;text-align:left}
.thanks.is-on{display:block}
.thanks h3{font-size:var(--step-3)}
.thanks p{margin-top:14px;color:var(--slate);max-width:52ch}
.thanks .link{margin-top:16px}

/* ------------ Footer ------------ */
.site-footer{background:var(--navy-deep);color:#DCE7F2;padding:clamp(48px,6vw,80px) var(--gutter) calc(20px + env(safe-area-inset-bottom));position:relative;z-index:1}
.site-footer a{color:#fff;text-decoration:none}
.footer__grid{display:grid;gap:var(--space-7) var(--space-6)}
@media(min-width:900px){.footer__grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}}
.footer__brand img{width:min(300px,100%);height:auto;margin:0 0 18px}
.footer__brand p{max-width:34ch;color:#C9D7E6}
.footer__brand .social{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:14px;margin-left:-10px}
.footer__col ul{display:grid;gap:2px}
.site-footer .footer__col a{display:inline-flex;min-height:36px;align-items:center;color:#fff}
.link-draw{background:linear-gradient(currentColor,currentColor) no-repeat right 100%/0 1px;padding-bottom:2px;transition:background-size 350ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){.link-draw:hover{background-size:100% 1px;background-position-x:left}}
.link-draw:focus-visible{background-size:100% 1px}
.footer__note{margin-top:var(--space-8);font-size:.875rem;color:#C9D7E6}
.footer__bar{margin-top:20px;padding-top:20px;border-top:1px solid rgb(156 196 236 / .22);display:flex;justify-content:space-between;align-items:center;gap:16px}
.footer__bar .fine{font-size:.8125rem;color:#C9D7E6}
.studio-credit{position:relative;display:inline-grid;justify-items:center;align-items:center;gap:5px;margin:0 0 0 auto;padding:4px 6px 9px;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
.studio-credit span{font:500 .6875rem/1 var(--font-body);color:#B7C6D8;white-space:nowrap}
.studio-credit img{display:block;width:64px;height:auto;margin:0 auto;opacity:.92;transition:filter .45s ease,opacity .2s ease,transform .45s var(--ease-out-expo)}
.studio-credit::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent 2%,rgba(40,124,255,.55) 30%,rgba(40,124,255,.55) 70%,transparent 98%);opacity:.42;transform:scaleX(.72);transition:transform .5s var(--ease-out-expo),opacity .35s ease}
.studio-credit:hover img,.studio-credit:focus-visible img{opacity:1;filter:drop-shadow(0 0 2px rgba(40,124,255,.48)) drop-shadow(0 0 7px rgba(40,124,255,.2));transform:translateY(-1px)}
.studio-credit:hover::before,.studio-credit:focus-visible::before{opacity:.82;transform:scaleX(1)}
.studio-credit:focus-visible{outline:2px solid #287cff;outline-offset:4px;border-radius:4px}

/* ------------ Sticky mobile CTA ------------ */
.cta-bar{position:fixed;inset:auto 0 0 0;z-index:90;padding:8px var(--gutter) calc(8px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:0 -8px 24px hsl(210 40% 10% / .14);transform:translateY(110%);transition:transform 300ms var(--ease-out)}
.cta-bar.is-on{transform:none}
.cta-bar .btn{width:100%;min-height:56px}
@media(min-width:1024px){.cta-bar{display:none}}
body.has-cta-bar .site-footer{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
@media(min-width:1024px){body.has-cta-bar .site-footer{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}

/* ------------ 404 ------------ */
.nf{position:relative;min-height:80svh;display:grid;align-items:center;padding:calc(var(--header-h) + 64px) var(--gutter) 96px;overflow:clip}
.nf h1{font-size:var(--step-5);letter-spacing:-.035em;line-height:1.02;max-width:14ch}
.nf .lead{margin-top:20px;color:#DCE7F2}
.nf__links{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--space-6)}

/* ------------ Reveals ------------ */
.js-motion [data-reveal]{opacity:0;transform:translateY(24px)}
.js-motion [data-reveal].is-in{opacity:1;transform:none;transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out);transition-delay:calc(var(--d,0) * 80ms)}
@view-transition{navigation:auto}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  @view-transition{navigation:none}
}
@media(min-width:1200px) and (max-width:1399px){.site-header{gap:var(--space-3)}.nav-link{padding:0 8px;font-size:.875rem}.nav-link::after{left:8px;right:8px}.logo img{height:56px}}

/* credentials strip (rev 4): one-line proof, quiet row with a rule, adapted from the 21st.dev "Logo Cloud 3" strip-then-rule pattern */
.creds{padding-top:0}
.creds__strip{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 clamp(40px,5vw,72px);padding:22px 0;border-bottom:1px solid var(--rule);font-size:clamp(.8125rem,.55rem + 1.1vw,1.125rem);font-weight:600;line-height:1.35;color:var(--navy);text-align:center;text-wrap:balance}
.creds__mark{flex:none;width:9px;height:9px;background:var(--green);transform:rotate(45deg)}
/* footer: four labeled columns (adapted from the 21st.dev "Footer with Navigation Grid" pattern) */
.footer__cols{display:grid;gap:var(--space-6) var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr))}
.footer__col h2{margin:0 0 10px;font:600 1rem/1.3 var(--font-display);color:#9CC4EC;letter-spacing:0;text-transform:none}
@media(min-width:900px){.footer__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,2.4fr)!important}.footer__cols{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:419px){.logo img{height:40px}}

/* ======================= Rev 3 home (deck rev 9: Bluestem's article is the site copy) ======================= */
/* green check square (adapted from the 21st.dev "Alternating Rows With Stats" bullet badge) */
.ck{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;margin-top:2px;border-radius:6px;background:var(--green);color:#fff}
.ck svg{stroke:#fff;fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.ck--on{width:22px;height:22px;margin:0;border-radius:6px}
.hero__badge{display:flex;align-items:center;gap:10px;margin-top:22px;font-weight:600;font-size:var(--step-0);line-height:1.2;color:#fff;white-space:nowrap}
.sub{margin-top:16px;max-width:34ch;font-size:var(--step-0);line-height:1.4;font-weight:600;color:var(--blue)}
.on-dark .sub{color:var(--sky)}
.inl{color:var(--blue);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.on-dark .inl{color:var(--sky)}

/* intro: statement paragraph + entity line */
.lede{background:var(--bg);padding-block:clamp(56px,7vw,112px)}
.lede__grid{display:grid;gap:var(--space-6) var(--space-8)}
.lede__p{font-size:clamp(1.4rem,1rem + 1.7vw,2.35rem);line-height:1.25;letter-spacing:-.02em;font-weight:500;color:var(--navy);max-width:30ch;text-wrap:pretty}
.lede__ent{position:relative;max-width:40ch;padding:2px 0 2px 22px;border-left:3px solid var(--blue);font-size:var(--step-0);line-height:1.5;color:var(--slate)}
.lede__mark{position:absolute;left:-8px;top:0;width:13px;height:13px;background:var(--green);transform:rotate(45deg)}
@media(min-width:960px){.lede__grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:end}}

/* owner band reuses .neutral; sub sits under the headline */
.neutral__head .sub{max-width:40ch}
.neutral__side{font-size:var(--step-0)}

/* article sections: heading left, body right, clean checklist */
.art{background:#fff}
.art--tint{background:var(--tint)}
.art__grid{display:grid;gap:var(--space-6) var(--space-8)}
.art h2{font-size:var(--step-4);max-width:13ch;letter-spacing:-.03em}
.art__lead{max-width:48ch;font-size:var(--step-1);line-height:1.45;color:var(--navy)}
.checks{margin:var(--space-5) 0 var(--space-5);border-bottom:1px solid var(--rule)}
.checks li{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--rule);font-size:var(--step-1);line-height:1.35;font-weight:500;color:var(--navy);max-width:none}
.art--tint .checks,.art--tint .checks li{border-color:#C9D5E1}
.art__close{max-width:40ch;font-size:var(--step-1);line-height:1.4;font-weight:600;color:var(--navy)}
.art .linkrow{margin-top:var(--space-5)}
.art--tint .gapline::before,.art--tint .gapline::after{background:var(--tint)}
@media(min-width:960px){
  .art__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
  .art__head{position:sticky;top:calc(var(--header-h) + 40px)}
  .art--flip .art__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .art--flip .art__head{order:2}
}

/* flexible support: three equal cards, each with its bar graphic */
.models{background:var(--bg)}
.models__txt{max-width:36ch;font-size:var(--step-1);line-height:1.4;color:var(--navy)}
.mcards{display:grid;gap:var(--space-5);margin-top:clamp(32px,4vw,56px)}
.mc{display:flex;flex-direction:column;gap:14px;padding:28px 26px 26px;background:#fff;border:1px solid var(--rule);border-top:4px solid var(--navy);max-width:none}
.mc:nth-child(2){border-top-color:var(--blue)}
.mc:nth-child(3){border-top-color:var(--green)}
.mc .bar{margin-bottom:12px}
.mc h3{font-size:var(--step-2);line-height:1.15;letter-spacing:-.02em}
.mc__cov{margin:0;max-width:none;color:var(--slate);font-weight:600;font-size:var(--step--1)}
.mc .link{margin-top:auto;padding-top:10px}
.models__foot{display:grid;gap:var(--space-5);margin-top:clamp(32px,4vw,56px)}
.models__close{max-width:48ch;font-size:var(--step-1);line-height:1.4;color:var(--navy)}
@media(min-width:900px){.mcards{grid-template-columns:repeat(3,minmax(0,1fr))}.models__foot{grid-template-columns:minmax(0,1fr) auto;align-items:end}}

/* deliverables: photo with offset brackets beside heading, sub and one paragraph */
.deliverables{background:#fff}
.deliverables h2{max-width:12ch}
.deliv__lead{max-width:46ch;font-size:var(--step-1);line-height:1.45}
@media(min-width:960px){.deliv__grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}}
.deliverables .deliv__br--a{border-color:var(--blue)}

/* cost control: navy band, three equal "avoid" tiles */
.benefits{background:var(--navy-deep)}
.benefits h2{max-width:12ch;font-size:var(--step-4);color:#fff}
.ben__grid{display:grid;gap:var(--space-6) var(--space-8)}
.ben__lead{margin-top:var(--space-5);max-width:34ch;color:#DCE7F2;font-size:var(--step-0)}
.avoids{display:grid;gap:14px}
.avoid{display:flex;gap:16px;align-items:center;min-height:84px;padding:18px 22px;border:1px solid rgb(156 196 236 / .28);border-left:4px solid var(--sky);background:rgb(255 255 255 / .04);font-size:var(--step-1);line-height:1.3;font-weight:500;color:#fff;max-width:none}
.avoid__ico{display:inline-flex;flex:none;color:var(--sky)}
.ben__close{grid-column:1/-1;margin-top:var(--space-4);max-width:22ch;font-size:clamp(1.6rem,1.1rem + 2vw,2.9rem);line-height:1.1;letter-spacing:-.03em;font-weight:600;color:#fff}
@media(min-width:960px){.ben__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.avoids{align-self:center}}

/* faq: sticky heading left, accordion right (pattern from 21st.dev "Two-Column FAQ"); links read as links */
.faq .ans a{color:var(--blue)}

/* close: The Bottom Line as a typographic moment */
.close{background:var(--navy);padding-block:clamp(80px,9vw,168px)}
.close__in{text-align:left}
.close .close__h{max-width:none;margin:0;font-size:var(--step-1);line-height:1.2;letter-spacing:0;font-weight:600;color:var(--sky)}
.close__lead{margin-top:14px;max-width:34ch;font-size:var(--step-2);line-height:1.2;color:#fff;font-weight:500;letter-spacing:-.015em}
.ctrls{display:grid;margin:clamp(22px,3vw,40px) 0 0;max-width:none}
.ctrl{display:block;padding-block:.08em;border-top:1px solid rgb(156 196 236 / .3);font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,6.8vw,6.4rem);line-height:1.04;letter-spacing:-.045em;color:#fff;max-width:none}
.ctrl:last-child{border-bottom:1px solid rgb(156 196 236 / .3)}
.ctrl b{font-weight:600;color:var(--sky)}
.close__body{margin:var(--space-6) 0 0;max-width:40ch;color:#E4ECF4;font-size:var(--step-1)}
.close__cta{align-items:flex-start}
.closeline{margin-left:0}

/* ======================= Rev 4 premium layout pass (spec: research/06-layout-proportions.md) ======================= */
:root{
  --s-1:8px;--s-2:16px;--s-3:24px;--s-4:32px;--s-5:48px;--s-6:64px;--s-7:96px;--s-8:128px;
  --gutter:clamp(20px,4vw,64px);
  --section-y:clamp(56px,4.2vw + 36px,112px);
  --container:1360px;
  --edge:max(var(--gutter),calc((100vw - 1360px) / 2));
  --step-0:clamp(1rem,.95rem + .2vw,1.125rem);
  --step-1:clamp(1.125rem,1rem + .4vw,1.375rem);
  --step-2:clamp(1.25rem,1.05rem + .7vw,1.625rem);
  --step-4:clamp(1.75rem,1.1rem + 1.9vw,3rem);
  --display:clamp(2.25rem,1rem + 3.2vw,4.25rem);
}
body{line-height:1.55}
h2{line-height:1.12;letter-spacing:-.02em;max-width:24ch}
h3{line-height:1.25}
.link{min-height:44px}

/* thin check mark and outline shield (light, airy) */
.ck{width:24px;height:24px;margin-top:0;border-radius:0;background:none;color:var(--blue)}
.ck svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.6}
.shield{flex:none;color:var(--sky)}

/* ---- hero ---- */
.hero{overflow:clip}
.hero__content{display:flex;flex-direction:column;align-items:flex-start;padding:calc(var(--header-h) + 24px) var(--gutter) 0}
.hero__display{font-size:var(--display);line-height:1.06;letter-spacing:-.025em;max-width:none}
.hero__lede{margin-top:var(--s-3)}
.hero__h1{margin:0;font-size:var(--step-1);line-height:1.3;max-width:30ch}
.hero__sub{display:block!important;margin-top:var(--s-2);max-width:34rem;font-size:var(--step-0);line-height:1.5}
.hero__cta{margin-top:var(--s-4);gap:var(--s-2) var(--s-3);width:100%}
.hero__see{display:inline-flex!important}
.hero__badge{margin-top:var(--s-3);gap:10px;font-weight:500;font-size:.9375rem;color:#fff}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 35%;opacity:0;transition:opacity .8s var(--ease-out)}
.hero__video.is-live{opacity:1}
.hero__video[hidden]{display:none}
@media(max-width:899px){
  .hero__media{margin-top:-30vw}
  .hero__cta .btn{width:100%;min-height:56px}
  .hero__content{padding-bottom:var(--s-2)}
}
@media(min-width:900px){
  .hero{display:flex;flex-direction:row;align-items:flex-end;height:clamp(640px,92svh,960px);padding-top:var(--header-h)}
  .hero__content{position:relative;left:auto;bottom:auto;width:min(44vw,760px);margin-left:var(--edge);padding:0;margin-bottom:clamp(48px,7svh,80px)}
  .hero__display{font-size:var(--display);max-width:none}
  .hero__h1{font-size:var(--step-1);max-width:34ch}
  .hero__cta{width:auto;margin-top:var(--s-5)}
  .hero__sub{margin-top:var(--s-2)}
  .hero__badge{margin-top:var(--s-4)}
  .hero__scrim{background:linear-gradient(90deg,rgb(19 44 73 / .95) 0%,rgb(19 44 73 / .9) 30%,rgb(19 44 73 / .55) 44%,rgb(19 44 73 / .12) 53%,rgb(19 44 73 / 0) 58%),linear-gradient(180deg,rgb(19 44 73 / .55) 0%,rgb(19 44 73 / 0) 22%),linear-gradient(0deg,rgb(19 44 73 / .5) 0%,rgb(19 44 73 / 0) 20%)}
  .hero__br--tl{left:max(10px,calc(var(--edge) - 6px))}
}

@media(min-width:900px) and (max-height:810px){.hero__vp{display:none}}  /* the headline would sit on the vanishing-point diamond */

/* ---- image frames ---- */
.ph{display:block;position:absolute;inset:0;overflow:hidden}
.ph img{width:100%;height:100%;object-fit:cover}
.ph--empty{background:linear-gradient(135deg,#1c4569,#0d2036)}
.band-photo .ph{inset:-6% 0;height:112%}
.band-photo .ph--empty{inset:0;height:100%}

/* ---- statement screen (lede) ---- */
.lede{padding-block:var(--s-7)}
.lede__p{font-size:clamp(1.375rem,1rem + 1.35vw,2.125rem);line-height:1.25;max-width:36ch}
@media(min-width:960px){.lede__grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);column-gap:var(--s-7)}}

/* ---- owner: offset split, photo bleeds to the right edge ---- */
.owner{display:grid;background:var(--navy);color:#fff;overflow:clip}
.owner__copy{position:relative;padding:var(--section-y) var(--gutter)}
.owner__in{max-width:32rem}
.owner h2{color:#fff;max-width:14ch}
.owner__p{margin:var(--s-4) 0 var(--s-3);font-size:var(--step-1);line-height:1.45;color:#E4ECF4}
.owner .link{color:var(--sky)}
.owner .neutral__br{position:absolute;left:var(--gutter);top:var(--s-3);width:56px;height:56px}
.owner__media{position:relative;min-height:62vw}
@media(min-width:960px){
  .owner{grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:clamp(560px,64vh,720px)}
  .owner__copy{padding-left:var(--edge);padding-right:var(--s-6);display:flex;align-items:center}
  .owner .neutral__br{left:var(--edge);top:var(--s-4)}
  .owner__media{min-height:0}
}

/* ---- language: sticky heading with photo, checklist right ---- */
.lang{background:#fff}
.lang__grid{display:grid;gap:var(--s-5) var(--s-7)}
.lang__fig{position:relative;margin-top:var(--s-4);aspect-ratio:16/10;border-radius:4px;overflow:hidden}
.lang__body{max-width:44rem}
@media(min-width:960px){
  .lang__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}
  .lang__head{position:sticky;top:calc(var(--header-h) + var(--s-4))}
  .lang__fig{aspect-ratio:5/4}
}
.checks li{padding:var(--s-2) 0;font-size:var(--step-1);gap:var(--s-2)}

/* ---- simplify: full-bleed photo band, then numbered three-up ---- */
.simplify{background:var(--tint)}
.band-photo{position:relative;isolation:isolate;display:grid;align-items:end;min-height:clamp(420px,62vh,640px);overflow:clip;background:var(--navy-deep);color:#fff}
.band-photo__scrim{position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgb(13 32 54 / .9) 0%,rgb(13 32 54 / .55) 40%,rgb(13 32 54 / .1) 80%)}
.band-photo__scrim--r{background:linear-gradient(90deg,rgb(13 32 54 / .88) 0%,rgb(13 32 54 / .6) 45%,rgb(13 32 54 / .12) 85%)}
.band-photo .ph{z-index:-1}
.band-photo__in{position:relative;z-index:1;padding:var(--section-y) var(--gutter)}
.band-photo__txt{max-width:40rem}
.band-photo h2{color:#fff;max-width:18ch}
.band-photo .sub{color:var(--sky)}
.band-photo p:not(.sub){margin-top:var(--s-3);font-size:var(--step-1);line-height:1.45;color:#E4ECF4;max-width:34rem}
.simplify__body.section{padding-top:var(--s-6)}
.simplify__lead{max-width:44ch}
.nums{display:grid;gap:var(--s-4);margin:var(--s-5) 0}
.num{max-width:none;padding-top:var(--s-3);border-top:1.5px solid var(--navy)}
.num__n{display:block;margin-bottom:var(--s-2);font:500 clamp(2.5rem,2rem + 2vw,3.5rem)/1 var(--font-display);letter-spacing:-.03em;color:var(--blue)}
.num p{font-size:var(--step-1);line-height:1.35;font-weight:500;max-width:22ch}
.simplify__foot{display:grid;gap:var(--s-3)}
.simplify__foot .art__close{max-width:34ch}
@media(min-width:800px){.nums{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5)}.simplify__foot{grid-template-columns:1fr auto;align-items:end}.simplify__foot .linkrow{margin:0}}

/* ---- models: numbered three-up ---- */
.models{background:#fff}
.mc{position:relative;background:var(--bg);border:0;border-top:3px solid var(--navy);padding:var(--s-4) var(--s-4) var(--s-3)}
.mc__n{position:absolute;right:var(--s-4);top:var(--s-3);font:500 1rem/1 var(--font-display);color:var(--blue)}

/* ---- deliverables: image bleeds to the left edge ---- */
.deliverables{display:grid;background:var(--tint);overflow:clip}
.deliv__fig{position:relative;margin:0;display:grid}
.deliv__fig img{position:relative;z-index:0;width:100%;height:100%;min-height:300px;aspect-ratio:900/605;object-fit:cover;border-radius:0}
.deliv__fig figcaption{position:absolute;z-index:2;left:var(--gutter);right:var(--gutter);bottom:var(--s-3);margin:0;color:#fff;font-size:.9375rem;text-shadow:0 1px 8px rgb(13 32 54 / .7)}
.deliv__fig::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(0deg,rgb(13 32 54 / .7),transparent);z-index:1;pointer-events:none}
.deliv__br{z-index:2;left:var(--s-3)!important;top:var(--s-3)!important;width:56px!important;height:56px!important;border-color:#fff!important;border-width:4px 0 0 4px!important}
.deliv__copy{padding:var(--section-y) var(--gutter)}
.deliv__copy>*{max-width:34rem}
@media(min-width:960px){
  .deliverables{grid-template-columns:minmax(0,7fr) minmax(0,5fr);min-height:clamp(560px,64vh,720px)}
  .deliv__fig img{position:absolute;inset:0;aspect-ratio:auto;height:100%}
  .deliv__fig{min-height:480px}
  .deliv__copy{padding-left:var(--s-7);padding-right:var(--edge);display:flex;flex-direction:column;justify-content:center}
  .deliv__br{left:var(--edge)!important}
}

/* ---- benefits: dark band, large rows, pull line ---- */
.benefits{background:var(--navy-deep)}
.ben__grid{row-gap:var(--s-6)}
.avoids{display:block}
.avoid{display:grid;grid-template-columns:auto 1fr;gap:var(--s-3);align-items:baseline;min-height:0;padding:var(--s-3) 0;border:0;border-top:1px solid rgb(156 196 236 / .3);background:none}
.avoid:last-child{border-bottom:1px solid rgb(156 196 236 / .3)}
.avoid__n{font:500 .9375rem/1 var(--font-display);color:var(--sky)}
.avoid__t{font-size:clamp(1.375rem,1.05rem + 1.2vw,2rem);line-height:1.2;font-weight:600;letter-spacing:-.015em;color:#fff}
.ben__close{max-width:20ch;margin-top:0;padding-top:var(--s-5);font-size:clamp(1.9rem,1.1rem + 3.2vw,4rem);line-height:1.08;border-top:1px solid rgb(156 196 236 / .3)}
@media(min-width:960px){.ben__close{grid-column:1/-1}}

/* ---- network: second photo band, text right-weighted scrim on the left ---- */
.band-photo.network{padding:0;border:0;background:var(--navy-deep);align-items:center;min-height:clamp(420px,66vh,680px)}
.network .band-photo__in{padding-block:var(--s-7)}
.network h2{color:#fff;font-size:var(--step-4);max-width:18ch}
.network p{color:#E4ECF4}

/* ---- faq ---- */
.faq{background:var(--bg)}

/* ---- close ---- */
.close{padding-block:var(--s-8)}
@media(max-width:759px){.close{padding-block:var(--s-7)}}
.band-photo__in{width:min(calc(1360px + 2 * var(--gutter)),100%);margin-inline:auto}
.mc__n{position:static;display:block;margin-bottom:var(--s-2)}
.trk__item{padding-block:clamp(18px,2.2vw,30px)}
.faq summary{min-height:60px;padding-block:14px}
.tracker{padding-block:var(--section-y)}
.trk__final{margin-top:var(--s-3);padding-top:var(--s-3)}

.problem__lead{display:none}
.nums,.mcards,.avoids{counter-reset:n}
.num,.mc,.avoid{counter-increment:n}
.num__n::before,.mc__n::before,.avoid__n::before{content:"0" counter(n)}

/* ======================= Rev 4b ======================= */
.shield{color:#56B052}
.hero__vp{display:none!important}
/* faq photo */
.faq__fig{position:relative;margin-top:var(--s-4);aspect-ratio:4/3;border-radius:4px;overflow:hidden;max-width:30rem}
.faq__ph img{object-position:30% 50%}
@media(min-width:960px){.faq .faq__head{position:sticky;top:calc(var(--header-h) + var(--s-4));align-self:start}.faq h2{position:static}.faq__fig{aspect-ratio:4/5}}
/* network band: spiral sits left of centre, so the text sits right */
.band-photo.network .band-photo__txt{margin-left:auto}
.band-photo.network .ph img{object-position:30% 50%}
.band-photo__scrim--r{background:linear-gradient(270deg,rgb(13 32 54 / .9) 0%,rgb(13 32 54 / .65) 40%,rgb(13 32 54 / .1) 75%)}
@media(max-width:759px){.band-photo__scrim--r{background:linear-gradient(0deg,rgb(13 32 54 / .92) 0%,rgb(13 32 54 / .6) 60%,rgb(13 32 54 / .2) 100%)}.band-photo.network{align-items:end}}
.owner__media .ph img{object-position:60% 50%}
.lang__ph img{object-position:45% 50%}
/* tracker diamond color follows the bar gradient (set from JS) */
.trk__diamond{background:transparent}
.hz__dia{fill:#1B62A3}
/* custom cursor: fine pointers only */
.cur{position:fixed;left:0;top:0;z-index:9999;width:0;height:0;pointer-events:none;opacity:0;transition:opacity .2s}
.cur.is-on{opacity:1}
.cur i{position:absolute;left:-5.5px;top:-5.5px;width:11px;height:11px;background:#3F923C;transform:rotate(45deg) scale(1);transition:transform .22s var(--ease-out),background-color .2s,box-shadow .2s;box-shadow:0 0 0 0 rgb(63 146 60 / 0)}
.cur.is-link i{transform:rotate(45deg) scale(1.9);background:rgb(63 146 60 / .35);box-shadow:0 0 0 1.5px #3F923C}
.cur.is-down i{transform:rotate(45deg) scale(.8)}
.cur.is-link.is-down i{transform:rotate(45deg) scale(1.5)}
@media(hover:hover) and (pointer:fine){html.cur-ready,html.cur-ready *,html.cur-ready *::before,html.cur-ready *::after{cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4nGNgAAIAAAUAAXpeqz8AAAAASUVORK5CYII=") 0 0,none!important}}
@media(hover:none),(pointer:coarse){.cur{display:none}}

/* ======================= Rev 4c ======================= */
/* intro: one block */
.lede__grid{display:block;max-width:60rem;margin-inline:0}
.lede__p{max-width:36ch}
.lede__ent{margin-top:var(--s-4);max-width:62ch;padding:0;border:0;font-size:var(--step-0);line-height:1.55;color:var(--slate)}
.lede__mark{display:none}
.lede{padding-block:var(--s-7)}
/* pull line band: centered, edge to edge, balanced space */
.benefits{background:var(--navy-deep)}
.benefits .section{padding-bottom:var(--section-y)}
.pull{background:var(--navy);padding:clamp(72px,8vw,128px) var(--gutter);text-align:center}
.pull .ben__close{max-width:20ch;margin:0 auto;padding:0;border:0;font-size:clamp(1.9rem,1.1rem + 3.2vw,4rem);line-height:1.1;text-wrap:balance}
/* handoff (signature) */
.handoff{display:none;background:#fff;padding-block:var(--s-6)}
.js-motion .handoff,.reduce-motion .handoff{display:block}
.handoff__track{position:relative}
.handoff__len{height:var(--len,0px)}
.handoff__pin{position:sticky;top:var(--stick,calc(var(--header-h) + 16px));padding-inline:var(--gutter);text-align:center}
.reduce-motion .handoff__pin{position:relative;top:auto}
.handoff__head{max-width:46rem;margin:0 auto}
.handoff__head h2{max-width:none;margin:0 auto;font-size:var(--step-4)}
.handoff__head p{margin:var(--s-2) auto 0;max-width:40rem;font-size:var(--step-0);color:var(--slate)}
.handoff__live,.handoff__caps{display:none}
.handoff__stage{position:relative;width:min(1240px,100%);height:min(300px,50svh);margin:var(--s-3) auto 0}
.hz{display:block;overflow:visible;margin:0 auto}
.hz__base{stroke:#C9D5E1;stroke-linecap:butt}
.hz__ghost{stroke:#C9D5E1;stroke-dasharray:2 9;stroke-linecap:round}
.hz__fill{stroke-linecap:butt}
.hz__bl{fill:var(--blue);stroke:none}
.hz__nv{fill:var(--navy);stroke:none}
.hz__bridge{stroke:var(--blue);stroke-linecap:butt}
.hz__label{font-family:var(--font-display);font-weight:600;fill:var(--navy);letter-spacing:-.01em}
.hz__end{fill:var(--slate)}
.hz__end.is-on{fill:var(--field)}
.hz__ring{fill:#fff;stroke:var(--green);stroke-width:2}
.hz__ringfill{fill:var(--green);opacity:0}
.hz__box{fill:#C99B63;stroke:#9A6F3F;stroke-width:1.5}
.hz__flap{fill:none;stroke:#9A6F3F;stroke-width:1.5}
.hz__tape{fill:#E9D5AC;stroke:#B99560;stroke-width:1}
.hz__lbl{fill:#fff;opacity:.9}
.hz__dia{fill:#1B62A3;stroke:#fff;stroke-width:3}
.hz__ping{fill:none;stroke:var(--green);stroke-width:2;opacity:0}
@media(max-width:759px){
  .handoff__stage{width:auto;height:260px;margin:var(--s-3) calc(-1 * var(--gutter)) 0;overflow:hidden}
  .handoff__pin{padding-bottom:0}
  .handoff__head h2{font-size:clamp(1.75rem,7vw,2.1rem)}
  .handoff__head p{font-size:1.0625rem}
  .handoff__live{display:block;margin-top:48px;padding-bottom:0;text-align:center;transition:opacity .18s ease,transform .18s ease}
  .handoff__live.is-out{opacity:0;transform:translateY(8px)}
  .hl__z{display:block;font-size:.8125rem;font-weight:600;color:var(--blue);margin-bottom:6px}
  .hl__t{display:block;max-width:22rem;margin:0 auto;font-size:1.3125rem;line-height:1.3;font-weight:500;color:var(--navy);text-wrap:balance}
  .reduce-motion .handoff__live{display:none}
  .reduce-motion .handoff__caps{display:grid;gap:var(--s-3);margin:var(--s-4) auto 0;padding:0;list-style:none;max-width:24rem;text-align:left}
  .handoff__caps li{font-size:1rem;line-height:1.35;color:var(--navy)}
  .handoff__caps span{display:block;font-size:.8125rem;font-weight:600;color:var(--blue);margin-bottom:2px}
  .hz--pan{margin:0;max-width:none;width:auto;will-change:transform}
  .reduce-motion .handoff__stage{overflow-x:auto;overflow-y:hidden;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .reduce-motion .hz--pan{transform:none!important}
}
}
.faq{padding-bottom:var(--s-6)}

/* ======================= Rev 4d: corner brackets sit out in the gutter, clear of text ======================= */
.hero__br--tl{left:6px;top:calc(var(--header-h) + 2px);width:34px;height:34px}
.hero__br--br{right:10px;bottom:14px;width:34px;height:34px}
.owner .neutral__br{left:6px;top:8px;width:40px;height:40px}
@media(max-width:899px){.hero__content{padding-top:calc(var(--header-h) + 52px)}}
@media(min-width:900px){
  .hero__br--tl{left:max(10px,calc(var(--edge) - 36px));top:calc(var(--header-h) - 4px);width:clamp(72px,7vw,100px);height:clamp(72px,7vw,100px)}
  .hero__br--br{right:max(10px,calc(var(--edge) - 36px));bottom:clamp(20px,3svh,32px);width:clamp(72px,7vw,100px);height:clamp(72px,7vw,100px)}
  .owner .neutral__br{left:max(10px,calc(var(--edge) - 36px));top:var(--s-3);width:56px;height:56px}
  .owner__copy{padding-top:calc(var(--section-y) + 16px)}
}

/* ======================= Rev 4e: intro as a centered statement ======================= */
.lede{padding-block:clamp(72px,7vw,128px)}
.lede__grid{max-width:940px;margin-inline:auto;text-align:center}
.lede__p{max-width:none;margin-inline:auto;font-size:clamp(1.5rem,1rem + 1.7vw,2.5rem);line-height:1.25;text-wrap:balance}
.lede__ent{max-width:60ch;margin:var(--s-5) auto 0;font-size:var(--step-0)}

/* ======================= Rev 4f ======================= */
/* intro: left paragraph, proof list right */
.lede{padding-block:clamp(72px,7vw,128px)}
.lede__grid{max-width:none;margin-inline:auto;text-align:left;display:grid;gap:var(--s-6) var(--s-7);align-items:start}
.lede__p{max-width:34ch;margin-inline:0;font-size:clamp(1.375rem,1rem + 1.35vw,2.125rem);line-height:1.25;text-wrap:pretty}
.lede__ent{max-width:52ch;margin:var(--s-4) 0 0;font-size:var(--step-0);color:var(--slate)}
.proof{display:grid;gap:var(--s-4);align-content:center}
.proof li{display:flex;align-items:center;gap:var(--s-3);max-width:none;font-size:clamp(1.125rem,1rem + .45vw,1.25rem);line-height:1.3;font-weight:500;color:var(--navy);padding-bottom:var(--s-4);border-bottom:1px solid var(--rule)}
.proof li:last-child{border-bottom:0;padding-bottom:0}
.proof__i{flex:none;width:30px;height:30px;color:#3F923C}
/* rev 4h: entity line gone; two columns from tablet up, proof list centered on the paragraph height, rule matches */
@media(min-width:720px){.lede__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.lede__main{align-self:center}.proof{padding-left:var(--s-6);border-left:1px solid var(--rule);align-self:stretch;align-content:center}}
@media(min-width:720px) and (max-width:959px){.lede__grid{gap:var(--s-5)}.lede__p{max-width:none}.proof{gap:var(--s-3)}.proof li{padding-bottom:var(--s-3);font-size:1.0625rem}.proof{padding-left:var(--s-5)}}
@media(min-width:960px){.lede__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
/* pull line: two lines, second in Sky */
.pull .ben__close{max-width:none}
.pull .ben__close span{display:block}
.pull .pull__b{color:var(--sky)}
/* hero bracket clear of the logo */
.hero__br--tl{top:calc(var(--header-h) + 16px)}
@media(max-width:899px){.hero__content{padding-top:calc(var(--header-h) + 60px)}}
@media(min-width:900px){.hero{height:clamp(720px,92svh,960px)}.hero__br--tl{top:calc(var(--header-h) + 56px)}}
@media(max-width:759px){.pull .ben__close{font-size:5.9vw}.pull .ben__close span{white-space:nowrap}}
@media(min-width:760px) and (max-width:1000px){.pull .ben__close span{white-space:nowrap}}

/* ======================= Rev 4s: shorter home ======================= */
.trk__head .sub{margin-top:16px;max-width:40ch}
.trk__head .lead{margin-top:16px;max-width:44ch}
.trk__result{margin-top:14px;max-width:44ch;font-size:var(--step-0);font-weight:600;color:var(--navy)}
.trk__fig{position:relative;margin-top:var(--s-4);aspect-ratio:2/1;border-radius:4px;overflow:hidden;max-width:26rem}
.trk__ph img{object-position:50% 40%}
.trk__phases{max-width:44ch;margin:0 0 var(--s-5) var(--pl);font-size:var(--step-0);color:var(--slate)}
.faq__more{margin-top:var(--s-4)}
@media(max-width:759px){
  :root{--section-y:61px}
  .lede{padding-block:61px}
  .trk__fig{aspect-ratio:16/7;max-width:none}
  .trk__item{padding-block:15px}
  .trk{gap:var(--space-5)}
  .trk__phases{margin-bottom:var(--s-4)}
  .faq__grid{gap:var(--space-5)}
  .pull{padding-block:61px}
}

/* ======================= Rev 4t: Contact page ======================= */
.contact{background:var(--navy);color:#fff;padding:calc(var(--header-h) + 40px) var(--gutter) 56px}
.contact__grid{display:grid;gap:var(--space-6) var(--space-8);align-items:start}
.contact__display{font-weight:600;font-size:clamp(2.2rem,9.2vw,3.4rem);line-height:1.04;letter-spacing:-.035em;max-width:12ch;text-wrap:balance}
.contact__h1{margin-top:20px;font-weight:500;font-size:clamp(1.0625rem,3.4vw,1.375rem);line-height:1.3;max-width:30ch;color:#fff}
.contact__sub{margin-top:14px;max-width:44ch;font-size:var(--step-0);line-height:1.5;color:#DCE7F2}
.contact__body{margin-top:14px;max-width:44ch;font-size:var(--step-0);line-height:1.5;color:#DCE7F2}
.contact__proof{display:flex;align-items:center;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid rgb(255 255 255 / .22);max-width:44ch;font-size:var(--step--1);font-weight:500;color:#DCE7F2}
.contact__proof .shield{flex:none;color:#56B052}
.contact .formcard{margin:0;width:100%}
@media(min-width:960px){
  .contact{padding-top:calc(var(--header-h) + 64px);padding-bottom:88px}
  .contact__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
  .contact__display{font-size:clamp(3rem,.8rem + 3.4vw,5rem);max-width:10ch}
  .contact__txt{position:sticky;top:calc(var(--header-h) + 32px)}
}
.contact-next{background:var(--bg)}
.contact-next h2{max-width:16ch}
.contact-next .nums{margin-top:var(--s-5)}
.contact-next .num h3{font-size:var(--step-1);font-weight:600;color:var(--navy)}
.contact-next .num p{margin-top:6px;font-size:var(--step-0);font-weight:400;color:var(--slate);max-width:28ch}
.contact-links{display:grid;gap:var(--s-3);margin-top:var(--s-6)}
@media(min-width:760px){.contact-links{grid-template-columns:repeat(2,minmax(0,max-content));gap:var(--s-3) var(--s-7)}}
@media(max-width:759px){.contact{padding-top:calc(var(--header-h) + 28px);padding-bottom:40px}.contact-next{padding-block:48px}}
.field select:has(option[value=""]:checked){color:var(--slate)}
@media(max-width:759px){.contact-next .nums{gap:var(--s-3)}.contact-next .num{padding-top:var(--s-3)}.contact-next .num__n{font-size:1.25rem}.contact-next .num p{max-width:none}.contact-links{margin-top:var(--s-5)}}

/* ======================= Rev 4v: swipeable card rows below 768px ======================= */
.avoid__i,.swipe-dots{display:none}
@media(max-width:767px){
  [data-swipe]{display:flex!important;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);padding-block:4px;border:0!important;align-items:stretch}
  [data-swipe]::-webkit-scrollbar{display:none}
  [data-swipe]:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
  [data-swipe]>li{flex:0 0 84%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;opacity:1!important;transform:none!important}
  [data-swipe]>li:last-child{margin-right:0}
  .swipe-dots{display:flex;justify-content:center;gap:4px;margin-top:var(--s-3)}
  .swipe-dots button{color:inherit;position:relative;width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer}
  .swipe-dots button::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:currentColor;opacity:.3;transition:opacity .2s,transform .2s}
  .swipe-dots button[aria-current="true"]::after{opacity:1;transform:scale(1.25)}
  .swipe-dots{color:var(--navy)}
  .on-dark .swipe-dots{color:#fff}
  /* language cards */
  .lang .checks{margin-block:var(--s-4) 0}
  .lang .checks li{flex-direction:column;gap:18px;padding:var(--s-4) var(--s-3);border:1px solid var(--rule);background:#fff;font-size:var(--step-1)}
  .lang .checks .ck{width:48px;height:48px;margin:0;border:1.5px solid var(--green);border-radius:50%;color:var(--green);display:inline-grid;place-items:center}
  .lang .checks .ck svg{width:26px;height:26px;stroke-width:1.6}
  .lang .swipe-dots{margin-bottom:var(--s-4)}
  /* avoid cards on navy */
  .avoids[data-swipe]>.avoid{display:flex;flex-direction:column;align-items:flex-start;gap:20px;min-height:0;padding:var(--s-4) var(--s-3);border:1px solid rgb(156 196 236 / .3);border-top:1px solid rgb(156 196 236 / .3);border-bottom:1px solid rgb(156 196 236 / .3);background:rgb(255 255 255 / .05)}
  .avoids[data-swipe]>.avoid:last-child{border-bottom:1px solid rgb(156 196 236 / .3)}
  .avoid__n{display:none}
  .avoid__i{display:inline-flex;color:var(--sky)}
  .avoid__i .ico{stroke-width:1.6}
  /* models cards */
  .mcards[data-swipe]>.mc{margin:0}
}
@media(max-width:767px){.lang__grid>*,.lang__body,.ben__grid>*,.models .container{min-width:0}}

/* ======================= Rev 5d merge: inner pages (rev 5a, 5b, 5c ported onto the 4v home stylesheet) =======================
   Everything below is additive. Home and Contact markup does not use these classes, except the three shared fixes at the very end. */
:root{--on-dark-1:#DCE7F2;--on-dark-2:#C9D7E6;--on-dark-3:#E4ECF4;--on-dark-4:#B7C6D8}
/* hero load-in (rev 4i motion pass, all pages) and masked line headings */
@keyframes heroUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes heroSettle{from{transform:scale(1.08)}to{transform:none}}
.js-motion .hero__media img{animation:heroSettle var(--dur-intro,1500ms) var(--ease-out) both}
.js-motion .hero__display,.js-motion .hero__h1,.js-motion .hero__sub,.js-motion .hero__cta,.js-motion .hero__badge,.js-motion .hero__micro,.js-motion .hero__proof{animation:heroUp var(--dur-headline,900ms) var(--ease-out) both}
.js-motion .hero__display{animation-delay:150ms}
.js-motion .hero__h1{animation-delay:330ms}
.js-motion .hero__sub{animation-delay:450ms}
.js-motion .hero__cta{animation-delay:580ms}
.js-motion .hero__badge,.js-motion .hero__micro,.js-motion .hero__proof{animation-delay:720ms}
.js-motion [data-split]:not(.is-split){visibility:hidden}
.split-line{display:block}
/* ======================= Rev 5a: inner pages (10 pages built from deck rev 13) ======================= */
:root{--display-in:clamp(2.05rem,.95rem + 2.6vw,3.5rem)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
/* active page */
.nav-link[aria-current]::after{transform:scaleX(1);transform-origin:left}
.menu-links a[aria-current]{color:var(--sky)}
.site-footer a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}

/* breadcrumb (adapted from the 21st.dev "Breadcrumb" family: plain links with a small separator) */
.crumbs{margin:0 0 var(--s-3)}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}
.crumbs li{display:inline-flex;align-items:center;gap:8px;max-width:none;font-size:.9375rem;line-height:1.3;color:var(--on-dark-2)}
.crumbs a{display:inline-flex;align-items:center;min-height:28px;color:var(--on-dark-1);text-decoration:none}
.crumbs a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.crumbs [aria-current]{color:#fff;font-weight:500}
.crumbs svg{flex:none;color:var(--sky);opacity:.85}

/* inner hero: navy band, shorter than home */
.hero.hero--inner{display:block;height:auto;min-height:0;padding:0;overflow:clip}
.hero--inner .hero__content{display:block;position:relative;left:auto;bottom:auto;order:0;width:auto;margin:0;padding:calc(var(--header-h) + 64px) var(--gutter) var(--s-5)}
.hero--inner .hero__display{font-size:var(--display-in);line-height:1.06;letter-spacing:-.03em;max-width:none;text-wrap:balance}
.hero--inner .hero__lede{margin-top:var(--s-3)}
.hero--inner .hero__h1{font-size:var(--step-1);line-height:1.3;max-width:34ch}
.hero--inner .hero__sub{max-width:36rem;margin-top:var(--s-2)}
.hero--inner .hero__cta{margin-top:var(--s-4);gap:var(--s-2) var(--s-3)}
.hero--inner .hero__micro{margin-top:12px}
.hero--inner .hero__proof{margin-top:var(--s-4);max-width:36rem}
.hero--inner .hero__br--tl{left:6px;top:calc(var(--header-h) + 16px);width:30px;height:30px}
.hero--inner .hero__br--br{right:10px;bottom:14px;width:30px;height:30px}
.js-motion .hero--inner .hero__crumbs,.js-motion .hero--inner .crumbs{animation:heroUp var(--dur-headline,900ms) var(--ease-out) both}
@media(min-width:960px){
  .hero--inner .hero__content{padding:calc(var(--header-h) + 56px) 0 80px}
  .hero--inner .hero__br--tl{left:max(10px,calc(var(--edge) - 36px));top:calc(var(--header-h) + 2px);width:36px;height:36px}
  .hero--inner .hero__br--br{right:max(10px,calc(var(--edge) - 36px));bottom:16px;width:36px;height:36px}
  .hero.hero--inner{padding-inline:var(--edge)}
}
.hero--inner .hero__cta .btn{flex:none}

/* photo hero: text left, framed photo right, DATUM brackets offset around the frame */
.pframe{position:relative;margin:0;aspect-ratio:var(--ar,4/3);isolation:isolate}
.pframe .ph{position:absolute;inset:0;overflow:hidden}
.pframe img{object-position:var(--op,50% 50%)}
.pframe figcaption{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:40px 16px 12px;background:linear-gradient(0deg,rgb(13 32 54 / .75),transparent);color:#fff;font-size:.875rem;line-height:1.3}
.pframe::before,.pframe::after{content:"";position:absolute;z-index:3;width:clamp(40px,5vw,60px);height:clamp(40px,5vw,60px);pointer-events:none}
.pframe::before{left:-10px;top:-10px;border:solid var(--b1,#4F93D1);border-width:6px 0 0 6px}
.pframe::after{right:-10px;bottom:-10px;border:solid var(--b2,#fff);border-width:0 6px 6px 0;opacity:.9}
.pframe--light{--b1:var(--blue);--b2:var(--navy)}
.hero--photo .hero__photo{margin:var(--s-2) var(--gutter) var(--s-6)}
@media(min-width:960px){
  .hero.hero--photo{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);column-gap:clamp(48px,6vw,104px);align-items:center;padding-block:0}
  .hero--photo .hero__content{padding:calc(var(--header-h) + 52px) 0 64px}
  .hero--photo .hero__photo{margin:calc(var(--header-h) + 36px) 0 52px}
  .pframe::before{left:-14px;top:-14px}.pframe::after{right:-14px;bottom:-14px}
}
.js-motion .hero__photo .ph{animation:photoIn 1.3s var(--ease-out-expo) .2s both}
.js-motion .hero__photo img{animation:heroSettle var(--dur-intro,1500ms) var(--ease-out) both}
.js-motion .hero__photo::before,.js-motion .hero__photo::after{animation:fadeIn .7s ease 1.1s both}
@keyframes photoIn{from{clip-path:inset(12% 0 0 0);opacity:0}to{clip-path:inset(0);opacity:1}}

/* text hero: display header left, H1 and support right */
@media(min-width:960px){
  .hero--text .hero__content{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(48px,6vw,104px);grid-template-rows:auto auto auto auto 1fr}
  .hero--text .crumbs{grid-column:1/-1}
  .hero--text .hero__display{grid-column:1;grid-row:2/6}
  .hero--text .hero__lede{grid-column:2;grid-row:2;margin-top:0}
  .hero--text .hero__cta{grid-column:2;grid-row:3}
  .hero--text .hero__micro{grid-column:2;grid-row:4}
  .hero--text .hero__blocks{grid-column:1/-1;grid-row:6}
}
/* hourly: row of hour blocks as the hero graphic (home model card 3, larger) */
.hero__blocks{display:flex;gap:8px;margin-top:var(--s-6)}
.hero__blocks i{display:block;flex:1;height:clamp(26px,3.4vw,44px);border:2px solid rgb(156 196 236 / .5);border-radius:4px}
.hero__blocks i.on{background:var(--blue);border-color:#4F93D1}
.js-motion .hero__blocks i{animation:blk .6s var(--ease-out-expo) both;animation-delay:calc(var(--k) * 70ms + 800ms)}
@keyframes blk{from{opacity:0;transform:scaleY(.3)}to{opacity:1;transform:none}}

/* generic inner sections */
.is-white{background:#fff}.is-tint{background:var(--tint)}.is-deep{background:var(--navy-deep)}
.split{display:grid;gap:var(--s-5) var(--s-7)}
.split h2{max-width:20ch}
.split__body{max-width:46rem;min-width:0}
.split__body>p{font-size:var(--step-1);line-height:1.5;color:var(--navy);max-width:46ch}
.split__body>p+p{margin-top:var(--s-3)}
.split__body>.art__lead{max-width:48ch}
.split__body .art__close{margin-top:var(--s-4)}
.on-dark .split__body>p{color:var(--on-dark-3)}
.split__body>.models__cta{margin-top:var(--s-4)}
.split__body>.checks{margin-top:var(--s-4)}
@media(min-width:960px){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.split__head{position:sticky;top:calc(var(--header-h) + var(--s-4))}}
.start__line{margin-top:var(--s-4)!important}
.sit__line{margin-top:var(--s-5);max-width:40ch;font-size:var(--step-2);line-height:1.25;letter-spacing:-.015em;font-weight:600}

/* equal cards */
.pcards{display:grid;gap:var(--s-3);margin-top:clamp(28px,3.5vw,48px);counter-reset:pc}
.pc{counter-increment:pc;position:relative;display:flex;flex-direction:column;gap:12px;padding:var(--s-4) var(--s-4) var(--s-3);background:#fff;border-top:3px solid var(--navy);max-width:none}
.is-white .pc{background:var(--bg)}
.pc:nth-child(2){border-top-color:var(--blue)}.pc:nth-child(3){border-top-color:var(--green)}.pc:nth-child(4){border-top-color:var(--sky)}
.pc__top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}
.pc__n{font:500 1rem/1 var(--font-display);color:var(--blue)}
.pc__n::before{content:"0" counter(pc)}
.pc__ico{color:var(--blue)}
.pc h3{font-size:var(--step-2);line-height:1.15;letter-spacing:-.02em}
.pcards--4 .pc h3{font-size:var(--step-1)}
.pc__body{color:var(--slate);max-width:none}
.pc__fit{margin-top:auto;color:var(--navy);font-weight:600;font-size:.9688rem;line-height:1.4}
.pc__fit+.link{margin-top:0}
.pc .link{margin-top:auto;padding-top:6px}
.pc__fit~.link{margin-top:0}
.keep{display:block;margin-top:12px;padding-top:12px;border-top:1px solid var(--rule);color:var(--navy);font-weight:600}
@media(min-width:640px){.pcards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:760px){.pcards--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1100px){.pcards--4{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* steps (adapted from the 21st.dev "How It Works Steps" family: numbered steps on a rule, no icons) */
.steps{display:grid;gap:var(--s-5);margin-top:clamp(28px,3.5vw,48px);counter-reset:st}
.stp{counter-increment:st;position:relative;padding-top:var(--s-4);border-top:2px solid var(--navy);max-width:none}
.stp::before{content:"";position:absolute;left:0;top:-7px;width:12px;height:12px;background:var(--green);transform:rotate(45deg)}
.stp__n{display:block;margin-bottom:12px;font:500 clamp(2rem,1.6rem + 1.5vw,3rem)/1 var(--font-display);letter-spacing:-.03em;color:var(--blue)}
.stp__n::before{content:"0" counter(st)}
.stp h3{font-size:var(--step-2);letter-spacing:-.02em}
.stp p{margin-top:8px;max-width:32ch;color:var(--slate)}
@media(min-width:760px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5)}}
.split__body>.steps{margin-top:var(--s-5)}
@media(min-width:760px) and (max-width:1199px){.split__body>.steps{grid-template-columns:1fr;gap:var(--s-4)}.split__body>.steps .stp{display:grid;grid-template-columns:72px 1fr;column-gap:16px;align-items:start}.split__body>.steps .stp__n{grid-row:1/3;margin:0}}

/* row links, tags */
.rowlinks{margin-top:var(--s-5);border-top:2px solid var(--navy)}
.rowlinks a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--rule);font-size:var(--step-1);line-height:1.3;font-weight:600;color:var(--navy);text-decoration:none}
.rowlinks svg{flex:none;color:var(--blue);transition:transform 300ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){.rowlinks a:hover svg{transform:translateX(6px)}.rowlinks a:hover span{text-decoration:underline;text-underline-offset:4px}}
.tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s-4)}
.tags li{display:inline-flex;align-items:center;gap:10px;max-width:none;padding:12px 18px;border:1.5px solid var(--navy);border-radius:var(--radius-sm);font-weight:600;line-height:1.2;color:var(--navy)}
.tags .ico{color:var(--blue)}

/* photo band under the hub cards */
.band-photo--slim{min-height:clamp(240px,34vw,500px);margin:0;align-items:end}
.band-photo--slim .band-photo__scrim{background:linear-gradient(0deg,rgb(13 32 54 / .7) 0%,rgb(13 32 54 / 0) 45%)}
.band-photo__cap{position:relative;z-index:1;padding:var(--s-3) var(--gutter);font-size:.9375rem;color:#fff;text-shadow:0 1px 8px rgb(13 32 54 / .7)}

/* controls section: text and framed photo */
.ctl{display:grid;gap:var(--s-5) var(--s-7);align-items:center}
.ctl__txt h2{max-width:20ch}
.ctl__txt>p{margin-top:var(--s-3);font-size:var(--step-1);line-height:1.5;max-width:44ch}
.ctl__fig{margin:var(--s-2) 12px 12px 12px}
@media(min-width:960px){.ctl{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}.ctl__fig{margin:12px 12px 12px 0}}

/* help: text and bullets beside the three-item proof list (reuses the home .proof list) */
.help{display:grid;gap:var(--s-6) var(--s-7)}
.help__main h2{max-width:20ch}
.help__main>p{margin-top:var(--s-3);font-size:var(--step-1);line-height:1.5;max-width:46ch}
.help__main>.checks{margin-top:var(--s-4)}
.help .proof{min-width:0}
.help__foot{grid-column:1/-1}
@media(min-width:960px){.help{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center}}
@media(max-width:719px){.help .proof{padding-top:var(--s-4);border-top:1px solid var(--rule)}}

/* quiet strip (integrators network line) */
.strip{background:var(--tint);border-block:1px solid var(--rule)}
.strip__in{display:grid;gap:var(--s-3) var(--s-7);align-items:center}
.strip h2{font-size:var(--step-3);max-width:20ch;letter-spacing:-.02em}
.strip p{max-width:56ch;color:var(--navy);font-size:var(--step-0)}
@media(min-width:900px){.strip__in{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}

/* about: diamond band with the timeline line */
.dband .closeline{width:100%;margin:0 0 var(--s-6)}
.dband h2{color:#fff}

/* article blocks that reuse the home cost-control band */

/* tracker, compact */
.tracker--compact .trk__item{padding-block:clamp(14px,1.8vw,22px)}
.tracker--compact .trk__body{margin-top:8px}

/* faq on inner pages: no photo, shorter heading */
.faq--in .faq__head h2{max-width:16ch;font-size:clamp(1.6rem,1.1rem + 1.5vw,2.5rem)}
.faq--in{padding-bottom:var(--section-y)}

/* closing band */
.endcta{background:var(--navy);padding-block:clamp(72px,7vw,128px)}
.endcta__in{display:grid;gap:var(--s-5) var(--s-7);align-items:start}
.endcta h2{max-width:14ch;font-size:clamp(2rem,1rem + 3.6vw,4.25rem);line-height:1.04;letter-spacing:-.035em;color:#fff}
.endcta__p{max-width:44ch;color:var(--on-dark-3);font-size:var(--step-1);line-height:1.5}
.endcta .close__cta{align-items:flex-start;margin-top:var(--s-4)}
.endcta .closeline{grid-column:1/-1;width:100%;margin:var(--s-3) 0 0}
@media(min-width:960px){.endcta__in{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}

/* cards: rows line up across a row of cards (title, body, fit line, link) */
@supports (grid-template-rows:subgrid){
  .pcards{row-gap:0}
  .pc{display:grid;grid-row:span var(--rows,3);grid-template-rows:subgrid;gap:0;margin-bottom:var(--s-3)}
  .pc>*+*{margin-top:12px}
  .pc>.pc__fit,.pc>.link{margin-top:12px;align-self:end}
  .pc>.pc__body{align-self:start}
  .pc>.pc__fit+.link,.pc__fit~.link{margin-top:4px}
}

.hero--inner .hero__h1{text-wrap:balance}
.steps+.linkrow,.stp+.linkrow{margin-top:var(--s-5)}
@media(min-width:960px){.split--even{grid-template-columns:minmax(0,6fr) minmax(0,6fr)}}

/* ======================= Rev 5b: audit round 1 fixes ======================= */
:root{--colgap:clamp(48px,6vw,104px)}
/* F11 breadcrumb: the chevron belongs to the crumb before it, crumbs never break inside */
.crumbs li{white-space:nowrap;gap:8px}
.crumbs ol{column-gap:8px}
/* F05 one rule for link groups on inner pages: one per line, 16px apart */
.linkrow--stack{flex-direction:column;align-items:flex-start;gap:16px}
.linkrow--stack .link{max-width:100%}
/* F10 two column splits: 5/7 for bands, 6/6 for heroes and closes, headings top aligned */
.ihead{display:grid;gap:16px var(--s-7);align-items:start}
.ihead h2{max-width:20ch}
@media(min-width:960px){
  .ihead{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .hero.hero--photo{grid-template-columns:minmax(0,6fr) minmax(0,6fr);column-gap:var(--colgap)}
  .hero--text .hero__content{grid-template-columns:minmax(0,6fr) minmax(0,6fr);column-gap:var(--colgap)}
  .endcta__in{grid-template-columns:minmax(0,6fr) minmax(0,6fr);column-gap:var(--colgap)}
  .ctl{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
  .help{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
}
@media(min-width:900px){.strip__in{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}
/* F08 balanced closing and FAQ headings */
.endcta h2{max-width:18ch;text-wrap:balance}
.faq--in .faq__head h2{max-width:none;text-wrap:balance}
/* F09 integrators network body matches the other band bodies */
.strip p{font-size:var(--step-1);line-height:1.5;max-width:52ch}
/* F06 plain list on the services article (no numerals) */
.avoids--plain .avoid{grid-template-columns:1fr}
/* F04 steps share lines across a row */
@supports (grid-template-rows:subgrid){
  @media(min-width:760px){
    .steps{row-gap:0}
    .stp{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
    .stp__n{margin-bottom:12px}
    .pc>.pc__fit,.pc>.link{align-self:start}
    .pc>.keep{margin-top:12px;align-self:start}
  }
  @media(min-width:760px) and (max-width:1199px){
    .split__body>.steps{row-gap:var(--s-4)}
    .split__body>.steps .stp{grid-row:auto;grid-template-rows:none}
  }
}
@supports (grid-template-rows:subgrid){
  .pc>.pc__fit,.pc>.link,.pc>.keep{align-self:start}
}
/* F13 captions sit on the content edge with a chip behind */
.pframe figcaption,.band-photo__cap{background:rgb(13 32 54 / .82);color:#fff;text-shadow:none;border-radius:6px;padding:6px 12px;font-size:.875rem;line-height:1.3;width:fit-content;max-width:calc(100% - 24px)}
.pframe figcaption{left:12px;right:auto;bottom:12px}
.band-photo__capw{position:relative;z-index:1;width:min(var(--container),100%);margin-inline:auto;padding:0 var(--gutter) var(--s-3)}
.band-photo__cap{margin:0}
/* F17 photo heroes a little shorter so the next band peeks on short laptop screens */
@media(min-width:960px){
  .hero--photo .hero__content{padding:calc(var(--header-h) + 36px) 0 36px}
  .hero--photo .hero__photo{margin:calc(var(--header-h) + 24px) 0 36px}
}

/* ======================= Rev 5c: audit round 2 ======================= */
.link .lw{white-space:nowrap}
.link .lw svg{margin-left:8px}
/* hero and framed photo captions sit flush on the photo edge */
.pframe figcaption{left:0;bottom:0;border-radius:0 6px 0 0}
/* help band on phones: no large gap between the checklist and the icon rows */
@media(max-width:719px){
  .help{row-gap:16px}
  .help__main>.checks{margin-bottom:0}
  .help .proof{padding-top:16px}
}
/* footer on phones: the Services column spans both columns so long names stay on one line */
@media(max-width:899px){.footer__col:first-child{grid-column:1/-1}}

/* ---- shared fixes that also reach the home page and Contact ---- */
/* F01 tracker text: inactive phases keep full opacity; only titles and icons dim (4.5:1 or better on Survey White) */
.js-motion .trk.is-ready .trk__item{opacity:1}
.js-motion .trk.is-ready .trk__ico,.js-motion .trk.is-ready .trk__title>span:last-child{opacity:calc(.74 + .26 * var(--on,0))}
.trk__body{color:color-mix(in srgb,var(--navy) calc(var(--on,0) * 100%),var(--slate))}
/* F19 footer credit sizes */
.studio-credit span{font-size:.75rem}
.footer__bar .fine{font-size:.875rem}

/* ======================= Rev 5f: header turns white after the hero, logos ======================= */
.logo{position:relative}
.logo img{transition:opacity 250ms var(--ease-out)}
.logo .logo__light{position:absolute;left:0;top:0;opacity:0}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 6px 20px rgb(19 44 73 / .08);opacity:0;transition:opacity 250ms var(--ease-out)}
.site-header,.site-header .nav-link,.site-header .menu-toggle{transition-property:transform,background-color,box-shadow,color;transition-duration:350ms,300ms,300ms,250ms;transition-timing-function:var(--ease-out)}
.site-header .btn{transition:box-shadow var(--dur-3) var(--ease-out),background-color 250ms var(--ease-out),color 250ms var(--ease-out)}
.site-header.is-light::before{opacity:1}
.site-header.is-light{color:var(--navy)}
.site-header.is-light .nav-link,.site-header.is-light .menu-toggle{color:var(--navy)}
.site-header.is-light .logo__dark{opacity:0}
.site-header.is-light .logo__light{opacity:1}
.site-header.is-light .btn--onDark{--btn-bg:var(--blue);--btn-fg:#fff;--btn-sweep:var(--navy)}
.site-header.is-light :focus-visible{outline-color:var(--focus)}
/* Contact: full-color logo as a signature on the form card */
.formcard__logo{display:block;height:34px;width:auto;margin:0 0 22px}
@media(max-width:759px){.formcard__logo{height:30px;margin-bottom:18px}}
/* 404: full-color logo on a white plate (the navy letters need a light ground), message centered under it */
.nf__in{text-align:center}
.nf h1,.nf .lead{margin-inline:auto}
.nf__links{justify-content:center}
.nf__logo{display:block;width:fit-content;margin:0 auto var(--s-4);padding:14px 22px;background:#fff;border-radius:12px}
.nf__logo img{display:block;height:40px;width:auto}
@media(max-width:759px){.nf__logo img{height:34px}}
