/* =====================================================================
   TestDynamics web system · "Registration"
   Layout concept: a light reading room. Day-lit paper carries the reading;
   night-indigo bands are the viewer; the sunrise appears only where things
   converge (the focal glow, the highlight words, the closing dawn band).
   Graphic convention: registration — disparate images aligning into one
   clear view, marked by the registration crosshair and the convergence rule.
   Single, deliberate look (light pages with dark bands); every color is a token.
   ===================================================================== */
:root{
  color-scheme: light;
  /* ground */
  --paper:#F6F5FB;     --paper-2:#EDEBF6;   --paper-3:#E3E0F1;   --white:#FFFFFF;
  /* ink */
  --ink:#14113A;       --ink-2:#3F3B66;     --ink-3:#66628C;     --ink-4:#9692B5;
  --line:#DAD6EB;      --line-2:#C9C4E2;
  /* night (the viewer) */
  --night:#1E1590;     --night-2:#2A1D9E;   --night-3:#3324B0;   --night-card:#2A1FA3;  --deep:#150D6E;
  --night-line:rgba(220,212,255,.18);       --night-line-2:rgba(220,212,255,.34);
  --on-night:#FFFFFF;  --on-night-2:#ECE8FF; --on-night-3:#CBC4F6; --on-night-4:#AEA6EC;
  --g-royal:linear-gradient(180deg,#1A1186 0%,#22178F 55%,#2A1D9E 100%);
  --g-royal-warm:linear-gradient(180deg,#2A1D9E 0%,#3A22B8 45%,#4A2CD6 100%);
  /* brand */
  --royal:#3324B0;     --satori-a:#4437F2;  --satori-b:#8443FF;  --violet:#7B3FE0;
  --orchid:#C04BB0;    --pink:#FF3C72;      --coral:#FF5C48;     --orange:#FF6E32;  --amber:#FF8645;
  --peach:#FFC9A8;     --blush:#FFB6CF;     --mist:#F1EBFF;
  --ok:#2E9E6B;
  /* gradients */
  --g-td:linear-gradient(90deg,var(--orange),var(--pink) 55%,#9E79EF);
  --g-satori:linear-gradient(90deg,var(--satori-a),var(--satori-b));
  --g-hl-night:linear-gradient(90deg,var(--peach),var(--blush) 55%,var(--mist));
  --g-hl-day:linear-gradient(90deg,var(--royal),var(--violet) 52%,var(--pink));
  --g-sunrise:linear-gradient(180deg,#17105E 0%,#2A1D9E 18%,#4A2CD6 34%,#7B3FE0 50%,#C04BB0 66%,#FF3C72 80%,#FF5C48 91%,#FF8645 100%);
  /* type */
  --f-display:"Barlow",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-body:"Barlow",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-cond:"Barlow Condensed","Barlow",ui-sans-serif,system-ui,sans-serif;
  --f-mono:"Barlow",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-logo:"Manrope","Barlow",ui-sans-serif,system-ui,sans-serif;
  /* scale */
  --t-hero:clamp(42px,5.3vw,78px);
  --t-h1:clamp(40px,5.2vw,68px);
  --t-h2:clamp(32px,3.9vw,52px);
  --t-h3:clamp(21px,1.7vw,24px);
  --t-lede:clamp(18px,1.45vw,21px);
  --t-body:17px; --t-small:15px; --t-micro:12.5px;
  /* layout */
  --wrap:1240px; --wrap-narrow:880px;
  --gl:max(20px,env(safe-area-inset-left,0px)); --gr:max(20px,env(safe-area-inset-right,0px));
  --r:14px; --r-lg:22px;
  --sec:clamp(72px,9vw,132px);
  --ease:cubic-bezier(.2,.7,.1,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:var(--t-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:90;background:var(--deep)}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
img,svg{max-width:100%;display:block}
a{color:inherit}
button{font:inherit}
:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:6px}
.on-night :focus-visible{outline-color:var(--peach)}
h1,h2,h3,h4{font-family:var(--f-display);text-wrap:balance;letter-spacing:-.015em;font-weight:800;line-height:1.04}
p{text-wrap:pretty}
section[id]{scroll-margin-top:96px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- highlight words (booth convention) ---------- */
.hl{background:var(--g-hl-day);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--royal)}
.on-night .hl{background:var(--g-hl-night);-webkit-background-clip:text;background-clip:text;color:var(--peach)}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
.wrap--narrow{max-width:calc(var(--wrap-narrow) + 40px)}
.sec{padding-block:var(--sec)}
.band-paper2{background:var(--paper-2)}
.band-white{background:var(--white)}
.on-night{background:var(--night);color:var(--on-night)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.split--top{align-items:start}
.split > *{min-width:0}
.stack{display:grid;gap:18px}
.stack-lg{display:grid;gap:28px}
.center{text-align:center;justify-items:center}

.h2{font-size:var(--t-h2)}
.h3{font-size:var(--t-h3);font-weight:700;letter-spacing:-.01em;line-height:1.2}
.lede{font-size:var(--t-lede);line-height:1.5;color:var(--ink-2);max-width:60ch}
.on-night .lede{color:var(--on-night-2)}
.body-2{color:var(--ink-2)}
.on-night .body-2{color:var(--on-night-2)}
.small{font-size:var(--t-small);color:var(--ink-3)}
.on-night .small{color:var(--on-night-3)}
.measure{max-width:62ch}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:var(--t-micro);letter-spacing:.02em}
.head{display:grid;gap:18px;max-width:820px;margin-bottom:clamp(36px,5vw,64px)}
.head.center{margin-left:auto;margin-right:auto}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;border:0;
  font-family:var(--f-display);font-weight:700;font-size:16.5px;letter-spacing:.005em;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,color .2s,border-color .2s}
.btn svg{width:18px;height:18px;flex:none;transition:transform .2s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn--primary{background:var(--g-td);color:#fff;box-shadow:0 10px 26px -12px rgba(255,60,114,.75)}
.btn--primary:hover{transform:translateY(-1px);box-shadow:0 16px 30px -12px rgba(255,60,114,.85)}
.btn--line{background:transparent;color:var(--ink);border:1.5px solid var(--line-2)}
.btn--line:hover{border-color:var(--ink)}
.on-night .btn--line{color:#fff;border-color:rgba(255,255,255,.32)}
.on-night .btn--line:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn--sm{min-height:40px;padding:0 18px;font-size:15px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.tlink{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--royal);text-decoration:none}
.tlink svg{width:16px;height:16px;transition:transform .2s var(--ease)}
.tlink:hover svg{transform:translateX(3px)}
.on-night .tlink{color:var(--peach)}

/* ---------- registration mark & convergence rule ---------- */
.reg{width:22px;height:22px;max-width:none;flex:none;color:var(--royal)}
/* every registration mark keeps its own size and stays a true circle, whatever its wrapper does */
svg.reg,.focus__f svg,.cv__find svg,.lockframe .reg{max-width:none;flex-shrink:0;aspect-ratio:1}
/* list point: a line resolving to a point; the registration mark itself is reserved for moments of convergence */
svg.reg.reg--pt{width:20px;height:20px;margin-top:3px;opacity:1}
.step__k svg.reg.reg--pt{width:14px;height:14px;margin-top:0}
.on-night .reg{color:var(--peach)}
.conv{display:block;width:min(260px,100%);height:22px;color:var(--royal)}
.on-night .conv{color:var(--peach)}
.conv--full{width:100%}
.conv svg{width:100%;height:100%;overflow:visible}

/* ---------- header ---------- */
.review{position:relative;z-index:80;background:var(--deep);color:var(--on-night-3);font-size:13px}
.review .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;min-height:40px;padding-block:6px}
.review b{color:#fff;font-weight:600}
.review__ctl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.review__ctl span{margin-right:2px}
.seg{display:inline-flex;border:1px solid var(--night-line-2);border-radius:999px;padding:2px}
.seg button{appearance:none;border:0;background:transparent;color:var(--on-night-3);font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer}
.seg button[aria-pressed="true"]{background:#fff;color:var(--night)}

.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:70;background:rgba(27,18,138,.84);backdrop-filter:saturate(140%) blur(16px);
  -webkit-backdrop-filter:saturate(140%) blur(16px);border-bottom:1px solid var(--night-line);color:#fff}
.hdr .wrap{display:flex;align-items:center;gap:28px;min-height:clamp(72px,5.6vw,80px)}
.hdr__logo{flex:none}
.hdr__logo{font-size:clamp(15.5px,1.45vw,21px)}
.hdr__logo img{height:1.55em;width:auto}
.nav{display:flex;align-items:center;gap:4px;margin-right:auto}
.nav__item{position:relative}
.nav__btn,.nav__link{appearance:none;background:none;border:0;color:var(--on-night-2);font-weight:600;font-size:15.5px;padding:10px 12px;border-radius:10px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.nav__btn svg{width:12px;height:12px;transition:transform .2s}
.nav__btn:hover,.nav__link:hover,.nav__item.open .nav__btn{color:#fff;background:rgba(255,255,255,.06)}
.nav__item.open .nav__btn svg{transform:rotate(180deg)}
.nav__btn[aria-current="true"],.nav__link[aria-current="page"]{color:#fff}
.nav__btn[aria-current="true"]::after,.nav__link[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:2px;background:var(--g-td)}
.nav__btn,.nav__link{position:relative}
.menu{position:absolute;left:-12px;min-width:340px;padding:10px;border-radius:18px;background:#24199C;border:1px solid var(--night-line-2);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s}
.nav__item.open .menu{opacity:1;visibility:visible;transform:none}
.menu a{display:grid;gap:2px 12px;align-items:start;padding:12px;border-radius:12px;text-decoration:none;color:#fff}
.menu a:hover{background:rgba(255,255,255,.06)}
.menu a b{font-weight:700;font-size:15.5px}
.menu a span{grid-column:2;font-size:13.5px;line-height:1.4;color:var(--on-night-3)}
.menu a .ic img{width:12px;height:auto}
.hdr__cta{display:flex;gap:10px;align-items:center}
.hdr__cta .tl{color:var(--on-night-2);font-weight:600;font-size:15px;text-decoration:none;padding:8px 6px}
.hdr__cta .tl:hover{color:#fff}
.burger{display:none;appearance:none;background:none;border:1px solid var(--night-line-2);color:#fff;width:44px;height:44px;border-radius:12px;cursor:pointer;place-items:center}
.burger svg{width:20px;height:20px}
.drawer{display:none}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(70% 80% at 78% 45%,rgba(123,63,224,.45),transparent 70%),var(--g-royal);color:#fff}
.hero__sky{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero__sky svg{width:100%;height:100%}
.hero .wrap{padding-block:clamp(56px,7vw,104px) clamp(64px,8vw,120px)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero__grid > *{min-width:0}
.hero h1{font-size:var(--t-hero);line-height:.98;letter-spacing:-.025em}
.hero .lede{margin-top:26px}
.hero .btns{margin-top:36px}
.ones{margin-top:44px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:600px}
.ones li{display:grid;gap:6px;padding-top:14px;border-top:1px solid var(--night-line-2)}
.ones b{display:flex;align-items:center;gap:10px;font-size:16.5px;font-weight:700}
.ones span{font-size:14px;line-height:1.4;color:var(--on-night-3)}
.ones .reg{width:18px;height:18px}

/* page hero (inner) */
.phero{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(60% 90% at 85% 30%,rgba(123,63,224,.4),transparent 70%),var(--g-royal);color:#fff}
.phero .wrap{padding-block:clamp(56px,7vw,100px) clamp(56px,7vw,96px)}
.phero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(32px,5vw,72px);align-items:center}
.phero__grid > *{min-width:0}
.phero h1{font-size:var(--t-h1);line-height:1}
.phero .lede{margin-top:22px}
.phero .btns{margin-top:32px}
.phero--plain .phero__grid{grid-template-columns:minmax(0,1fr)}
.phero--plain h1{max-width:18ch}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:22px;font-size:14px;color:var(--on-night-3)}
.crumbs a{text-decoration:none;color:var(--on-night-2)}
.crumbs a:hover{color:#fff}
.crumbs i{width:4px;height:4px;border-radius:50%;background:var(--on-night-4)}

/* ---------- lockups ---------- */
.lock{display:inline-flex;align-items:center;white-space:nowrap;line-height:1}
.lock .m{height:calc(var(--lk,22px)*1.42);width:auto}
.lock .w{height:var(--lk,22px);width:auto}
.newtag{display:inline-flex;align-items:center;font-family:var(--f-cond);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;line-height:1;
  padding:5px 10px 4px;border-radius:999px;background:linear-gradient(90deg,var(--orange),var(--pink));color:#fff;vertical-align:middle}
html[data-release="pre"] .rel-post{display:none!important}
html[data-release="post"] .rel-pre{display:none!important}

/* ---------- plates (framed images with registration corners + overlay text) ---------- */
.plate{position:relative;border-radius:6px;overflow:hidden;background:#120A5C;box-shadow:0 30px 60px -30px rgba(10,6,40,.6)}
.plate img{width:100%;height:100%;object-fit:cover}
.plate__ov{position:absolute;inset:10px 12px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;font-family:var(--f-mono);font-variant-numeric:tabular-nums;
  font-size:10.5px;line-height:1.35;letter-spacing:.04em;color:rgba(241,235,255,.78);text-transform:uppercase}
.plate__ov div{display:flex;justify-content:space-between;gap:10px}
.plate__ov span:last-child{text-align:right}
.corners{position:absolute;inset:8px;pointer-events:none}
.corners::before,.corners::after,.corners i::before,.corners i::after{content:"";position:absolute;width:14px;height:14px;border-color:rgba(241,235,255,.7);border-style:solid}
.corners::before{left:0;top:0;border-width:1.5px 0 0 1.5px}
.corners::after{right:0;top:0;border-width:1.5px 1.5px 0 0}
.corners i::before{left:0;bottom:0;border-width:0 0 1.5px 1.5px}
.corners i::after{right:0;bottom:0;border-width:0 1.5px 1.5px 0}

/* ---------- the convergence composition (hero) ---------- */
.cv{position:relative;aspect-ratio:1/0.74;width:100%;max-width:700px;margin-left:auto}
.cv__p{position:absolute;left:7%;top:8%;width:86%;height:78%;border-radius:8px;overflow:hidden;background:#120A5C;
  box-shadow:0 30px 60px -25px rgba(0,0,0,.75),0 0 0 1px rgba(201,190,255,.18);
  transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(var(--s));opacity:var(--o);
  transition:transform 2.4s cubic-bezier(.45,0,.2,1),opacity 1.8s ease,filter 1.8s ease;transition-delay:var(--d,0s);filter:saturate(1.05)}
.cv__p img{width:100%;height:100%;object-fit:cover}
.cv__p .plate__ov{font-size:10px}
.cv.is-converged .cv__p{transform:translate(var(--cx,0),var(--cy,0)) rotate(0) scale(1);opacity:var(--co,1)}
.cv__win{display:flex;flex-direction:column;background:#ECEAF5;color:#2a2650;font-family:var(--f-body)}
.cv__win .bar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#D7D3E8;font-size:11px;font-weight:600}
.cv__win .bar i{width:8px;height:8px;border-radius:50%;background:#B1ABCB}
.cv__win .bd{flex:1;display:grid;place-content:center;gap:8px;padding:16px;text-align:center;font-size:12px}
.cv__win .bd b{font-size:14px}
.cv__win .f{height:24px;border-radius:5px;background:#fff;border:1px solid #CFCBE0;width:180px;margin:0 auto}
.cv__win .go{height:26px;border-radius:5px;background:#9C97B8;width:180px;margin:0 auto}
.cv__top{z-index:5}
.cv__top .sv{position:absolute;inset:0;background:#120A5C}
.cv__top .sv img{object-fit:cover;object-position:50% 45%}
.cv__lock{position:absolute;inset:0;pointer-events:none;z-index:6;opacity:0;transition:opacity .8s ease 2.2s}
/* the point the sightlines resolve on: a spot in the left upper lung of the top CT, lit and marked as everything lands */
.cv__find{position:absolute;left:70.6%;top:26.7%;width:0;height:0;z-index:2;pointer-events:none}
.cv__find::before{content:"";position:absolute;left:50%;top:50%;width:clamp(70px,9vw,112px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%) scale(.4);
  background:radial-gradient(circle,rgba(255,176,137,.5) 0%,rgba(255,60,114,.2) 30%,rgba(132,67,255,.06) 52%,rgba(42,29,158,0) 68%);mix-blend-mode:screen;opacity:0;
  transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.cv__find svg{position:absolute;left:50%;top:50%;max-width:none;width:clamp(26px,3.6vw,38px);height:clamp(26px,3.6vw,38px);transform:translate(-50%,-50%);color:#FFF3EA;opacity:0;
  filter:drop-shadow(0 0 1.2px rgba(18,10,92,.95)) drop-shadow(0 0 6px rgba(255,176,137,.7));transition:opacity .15s ease}
.cv.is-found .cv__find::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cv.is-found .cv__find svg{opacity:1;transform:translate(-50%,-50%)}
.cv.is-converged .cv__lock{opacity:1}
.cv__lock .corners{inset:calc(8% - 12px) calc(7% - 12px) calc(14% - 12px)}
.cv__lock .corners::before,.cv__lock .corners::after,.cv__lock .corners i::before,.cv__lock .corners i::after{width:22px;height:22px;border-color:var(--peach);border-width:2px}
.cv__lock .corners::before{border-width:2px 0 0 2px}.cv__lock .corners::after{border-width:2px 2px 0 0}
.cv__lock .corners i::before{border-width:0 0 2px 2px}.cv__lock .corners i::after{border-width:0 2px 2px 0}
.cv__cap{position:absolute;left:7%;right:7%;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--on-night-2)}
.cv__cap b{color:#fff;font-weight:500;display:inline-flex;align-items:center;gap:8px}
.cv__cap .reg{width:16px;height:16px}
.cv__cap .cv-pre,.cv.is-converged .cv__cap .cv-post{display:inline-flex}
.cv__cap .cv-post,.cv.is-converged .cv__cap .cv-pre{display:none}

/* ---------- problem ledger ---------- */
.ledger{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--white);overflow:hidden}
.ledger > *{min-width:0;padding:clamp(22px,3vw,36px)}

/* ---------- evidence / citations ---------- */
.evidence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line);margin-top:clamp(40px,5vw,64px)}
.evidence > *{min-width:0;padding:26px 28px 6px 0}
.evidence > * + *{padding-left:28px;border-left:1px solid var(--line)}
.ev__fig{font-family:var(--f-display);font-weight:800;font-size:clamp(40px,4.6vw,60px);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ev__fig sup{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;vertical-align:top;color:var(--ink-3);margin-left:4px;letter-spacing:0}
.ev__txt{margin-top:12px;font-size:15.5px;color:var(--ink-2);line-height:1.5}
.ev__pull{font-family:var(--f-display);font-weight:700;font-size:clamp(24px,2.4vw,32px);line-height:1.15;text-wrap:balance;align-self:center}
.notes{margin-top:26px;display:grid;gap:4px;font-size:12.5px;color:var(--ink-3);line-height:1.5}
.notes a{color:var(--ink-3)}
.on-night .notes,.on-night .notes a{color:var(--on-night-4)}

/* ---------- platform elements ---------- */
.els{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.el{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);overflow:hidden;text-decoration:none;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
a.el:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(20,17,58,.45);border-color:var(--line-2)}
.el__vis{position:relative;aspect-ratio:16/10;background:var(--night);overflow:hidden}
.el__vis img{width:100%;height:100%;object-fit:cover}
.el__body{display:grid;gap:12px;padding:24px 26px 26px;flex:1;align-content:start}
.el__body .lock{--lk:17px;color:var(--ink)}
.el__body h3{font-size:var(--t-h3);font-weight:700;letter-spacing:-.01em;line-height:1.2}
.el__body p{color:var(--ink-2);font-size:16px}
.el__body .tlink{margin-top:auto;padding-top:6px}
.el::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--g-satori);z-index:2}
.el--gov::before{background:linear-gradient(90deg,var(--coral),var(--pink))}
.roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.role{padding:12px 14px;border-radius:12px;background:var(--white);border:1px solid var(--line)}
.role b{display:block;font-size:14.5px}
.role span{display:block;margin-top:4px;font-size:13.5px;line-height:1.4;color:var(--ink-3)}
.edge-strip{margin-top:20px;display:grid;grid-template-columns:auto 1fr;gap:10px 28px;align-items:center;padding:20px 26px;border-radius:var(--r-lg);background:var(--g-satori);color:#fff}
.edge-strip b{font-size:18px}
.edge-strip ul{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.edge-strip li{font-size:13.5px;font-weight:600;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25)}

/* ---------- benefits ---------- */
.bens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.bens > *{min-width:0;padding:30px 30px 0 0;display:grid;gap:12px;align-content:start}
.bens > * + *{padding-left:30px;border-left:1px solid var(--line)}
.bens h3{font-size:clamp(22px,2vw,27px);font-weight:800;line-height:1.12}
.bens p{color:var(--ink-2);font-size:16px}
.on-night .bens,.on-night .bens > * + *{border-color:var(--night-line-2)}
.on-night .bens p{color:var(--on-night-2)}

/* ---------- governance / loop ---------- */
.gov-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}
.loop{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:clamp(36px,4vw,56px);position:relative}
.loop::before{content:"";position:absolute;left:10%;right:10%;top:27px;height:1.5px;background:linear-gradient(90deg,var(--night-line-2),var(--peach),var(--night-line-2))}
.loop li{position:relative;display:grid;justify-items:center;text-align:center;gap:8px;padding:0 10px;min-width:0}
.loop .n{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--night-card);border:1px solid var(--night-line-2);
  font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--on-night-2);position:relative;z-index:1}
.loop li.on .n{background:linear-gradient(135deg,var(--orange),var(--pink));border-color:transparent;color:#fff}
.loop b{font-size:18px}
.loop span{font-size:14px;line-height:1.4;color:var(--on-night-3)}

/* governance monitor (illustrative UI) */
.mon{border-radius:18px;background:#160E78;border:1px solid var(--night-line-2);box-shadow:0 50px 90px -50px rgba(0,0,0,.9);overflow:visible;font-size:14px}
.mon__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--night-line);background:#1B1288;border-radius:17px 17px 0 0}
.mon__bar .lock{--lk:13px}
.mon__tag{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-night-4);border:1px dashed var(--night-line-2);border-radius:999px;padding:3px 9px}
.mon__body{padding:16px 28px;display:grid;gap:12px}
.mon__row{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)) 92px;gap:10px;align-items:center;padding:11px 12px;border-radius:10px;background:#22188F;border:1px solid var(--night-line)}
.mon__row.h{background:none;border:0;padding:0 12px;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--on-night-4)}
.mon__row > *{min-width:0}
.mon__row b{display:block;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mon__row small{display:block;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--on-night-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.bar i{display:block;height:100%;border-radius:3px;background:var(--g-satori)}
.mon__v{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--on-night-2);margin-top:4px;font-variant-numeric:tabular-nums}
.chip{display:inline-flex;align-items:center;gap:6px;justify-content:center;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:999px;white-space:nowrap}
.chip--keep{background:rgba(123,227,181,.12);color:#9BEBC7;border:1px solid rgba(123,227,181,.3)}
.chip--watch{background:rgba(255,201,168,.12);color:var(--peach);border:1px solid rgba(255,201,168,.35)}
.chip--replace{background:rgba(255,60,114,.16);color:var(--blush);border:1px solid rgba(255,60,114,.45)}
.mon__foot{display:flex;justify-content:space-between;gap:10px;padding:10px 16px;border-top:1px solid var(--night-line);font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--on-night-4);letter-spacing:.04em}

/* ---------- scan figure: treated imaging in a registration frame (replaces product screenshots, Oct 31) ----------
   The image clips inside .scan__img; the frame, focus brackets and annotations live on .scan so nothing gets cut off */
.scan{position:relative;display:block}
.scan__img{position:relative;aspect-ratio:var(--sar,16/10);border-radius:14px;overflow:hidden;background:#120A5C;box-shadow:0 50px 90px -45px rgba(20,17,58,.7),0 0 0 1px rgba(201,190,255,.16)}
.scan__img img{width:100%;height:100%;object-fit:cover;object-position:var(--sop,50% 50%)}
.scan__img .plate__ov{inset:14px 18px;font-size:10.5px;z-index:2;text-shadow:0 1px 6px rgba(18,10,92,.9)}
.scan__img::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,rgba(18,10,92,.6),rgba(18,10,92,0) 20%,rgba(18,10,92,0) 82%,rgba(18,10,92,.45))}
.scan__img .corners{z-index:2}
.el__vis .plate__ov{inset:16px 24px;text-shadow:0 1px 6px rgba(18,10,92,.9)}
.scan .anno{z-index:8}
/* ---------- product (Satori View) frame ---------- */
.viewer{position:relative;border-radius:16px;overflow:hidden;background:#0b0b0d;box-shadow:0 50px 90px -45px rgba(20,17,58,.7);border:1px solid #23203a}
.viewer img{width:100%;height:auto}
.ticks{display:grid;gap:18px}
.ticks li{display:grid;grid-template-columns:24px 1fr;gap:4px 14px}
.ticks .reg{margin-top:2px}
.ticks b{font-size:17.5px;font-weight:700}
.ticks span{grid-column:2;color:var(--ink-2);font-size:16px;line-height:1.5}
.on-night .ticks span{color:var(--on-night-2)}

/* ---------- quotes & proof ---------- */
.quote{display:grid;gap:26px;max-width:960px}
.quote blockquote{font-family:var(--f-display);font-weight:600;font-size:clamp(21px,2.8vw,38px);line-height:1.22;letter-spacing:-.01em;text-wrap:balance;position:relative}
.quote blockquote::before{content:"\201C";position:absolute;left:-.55em;top:-.12em;font-weight:800;background:var(--g-td);-webkit-background-clip:text;background-clip:text;color:transparent}
.quote figcaption{display:flex;align-items:center;gap:16px}
.quote figcaption b{display:block;font-size:17px}
.quote figcaption span{display:block;font-size:15px;color:var(--ink-3)}
.on-night .quote figcaption span{color:var(--on-night-3)}
.avatar{flex:none;width:60px;height:60px;border-radius:50%;object-fit:cover;background:var(--paper-3);border:2px solid var(--white);box-shadow:0 0 0 1px var(--line)}
.avatar--ph{display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,var(--line-2) 0 22%,transparent 23%),radial-gradient(ellipse at 50% 108%,var(--line-2) 0 46%,transparent 47%),var(--paper-3)}
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.qcard{display:flex;flex-direction:column;gap:22px;padding:28px;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);min-width:0}
.qcard blockquote{font-size:18px;line-height:1.5;color:var(--ink);font-weight:500}
.qcard figcaption{margin-top:auto;display:flex;gap:14px;align-items:center}
.qcard figcaption b{display:block;font-size:15.5px}
.qcard figcaption span{display:block;font-size:13.5px;color:var(--ink-3);line-height:1.35}
.qcard .avatar{width:48px;height:48px}
.creds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--white);margin-top:20px}
.creds > *{display:flex;gap:14px;align-items:center;padding:20px 22px;min-width:0}
.creds > * + *{border-left:1px solid var(--line)}
.creds img{height:44px;width:auto;flex:none}
.creds .ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--paper-2);color:var(--royal)}
.creds .ic svg{width:22px;height:22px}
.creds b{display:block;font-size:15px;line-height:1.25}
.creds span{display:block;font-size:13px;color:var(--ink-3);line-height:1.35;margin-top:2px}

/* pending (content we still need) */
.pending{position:relative;outline:1.5px dashed rgba(123,63,224,.55);outline-offset:6px;border-radius:6px}
.on-night .pending{outline-color:rgba(255,201,168,.55)}
.pend{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  padding:3px 9px;border-radius:999px;background:rgba(123,63,224,.1);color:var(--violet);border:1px solid rgba(123,63,224,.3);vertical-align:middle;white-space:nowrap}
.on-night .pend{background:rgba(255,201,168,.1);color:var(--peach);border-color:rgba(255,201,168,.35)}
.ph{color:var(--ink-3);font-style:normal}
.on-night .ph{color:var(--on-night-3)}
.rnote{display:none;margin-top:10px;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.45;background:#FFF6EE;color:#6A3B1E;border:1px solid #FFD9BD}
html.review-on .rnote{display:block}
html:not(.review-on) .pending{outline:none}
html:not(.review-on) .pend{display:none}

/* ---------- solutions ---------- */
.sols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.sol{position:relative;display:flex;flex-direction:column;gap:14px;min-height:260px;padding:28px;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);text-decoration:none;overflow:hidden;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.sol:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(20,17,58,.45)}
.sol h3{font-size:clamp(24px,2.2vw,30px);font-weight:800;line-height:1.08}
.sol p{color:var(--ink-2);font-size:16px}
.sol .tlink{margin-top:auto}
/* role cards: the role's own icon (same as the menu), as a tile and as a large quiet watermark */
.sol__ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--royal) 8%,#fff);border:1px solid color-mix(in srgb,var(--royal) 18%,#fff);color:var(--royal);transition:background .3s,color .3s,border-color .3s}
.sol__ic svg{width:28px;height:28px;max-width:none}
.sol__wm{position:absolute;right:-26px;top:-22px;width:170px;height:170px;max-width:none;color:var(--royal);opacity:.12;pointer-events:none;transition:opacity .4s,transform .6s var(--ease)}
.sol:hover .sol__ic{background:var(--g-satori);border-color:transparent;color:#fff}
.sol:hover .sol__wm{opacity:.11;transform:rotate(-4deg) scale(1.04)}

/* ---------- steps / stages ---------- */
.stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;counter-reset:st}
.stage{display:flex;flex-direction:column;gap:12px;padding:22px 20px;border-radius:var(--r);background:var(--white);border:1px solid var(--line);min-width:0;position:relative}
.stage h3{font-size:22px;font-weight:800}
.stage p{font-size:15px;color:var(--ink-2);line-height:1.5}
.stage ul{display:grid;gap:6px;font-size:14px;color:var(--ink-2)}
.stage ul li{display:grid;grid-template-columns:12px 1fr;gap:8px}
.stage ul li::before{content:"";width:6px;height:6px;margin-top:8px;border-radius:50%;background:var(--violet)}
.gate{margin-top:auto;padding-top:12px;border-top:1px dashed var(--line-2);font-size:13.5px;line-height:1.45;color:var(--ink-2)}
.gate b{display:block;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-weight:500;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--violet);margin-bottom:4px}
.stage.rep{background:linear-gradient(180deg,var(--white),#F7F3FF)}

.steps{display:grid;gap:clamp(48px,6vw,88px)}
.step{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(28px,5vw,72px);align-items:center}
.step:nth-child(even) .step__vis{order:-1}
.step > *{min-width:0}
.step__k{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--violet);display:flex;align-items:center;gap:10px}
.step h3{font-size:clamp(26px,2.6vw,36px);font-weight:800;line-height:1.08;margin-top:12px}
.step .sub{margin-top:10px;font-weight:600;color:var(--ink)}
.step p.body-2{margin-top:12px}

/* ---------- misc cards & lists ---------- */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{display:grid;gap:10px;align-content:start;padding:26px;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);min-width:0}
.card h3{font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.01em}
.card p{font-size:15.5px;color:var(--ink-2)}
.card .k{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.on-night .card{background:var(--night-card);border-color:var(--night-line)}
.on-night .card p{color:var(--on-night-2)}
.on-night .card .k{color:var(--on-night-4)}
.objection{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:start;padding:clamp(28px,4vw,48px);border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line)}
.objection > *{min-width:0}
.objection q{display:block;font-family:var(--f-display);font-weight:700;font-size:clamp(24px,2.4vw,32px);line-height:1.15;quotes:"\201C" "\201D"}
.objection p{color:var(--ink-2);font-size:17px}

/* accordion */
.acc{border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:52px minmax(0,1fr) 28px;gap:14px;align-items:center;padding:22px 0}
.acc summary::-webkit-details-marker{display:none}
.acc summary .n{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-3)}
.acc summary b{font-size:clamp(18px,1.6vw,21px);font-weight:700;line-height:1.3}
.acc summary small{display:block;font-size:15px;font-weight:500;color:var(--ink-3);margin-top:3px}
.acc summary .pm{width:28px;height:28px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;transition:transform .25s var(--ease),background-color .2s}
.acc summary .pm svg{width:12px;height:12px}
.acc details[open] summary .pm{transform:rotate(45deg);background:var(--paper-2)}
.acc .ans{padding:0 42px 26px 66px;color:var(--ink-2);max-width:820px}
.acc--plain summary{grid-template-columns:minmax(0,1fr) 28px}
.acc--plain .ans{padding:0 42px 24px 0}

/* architecture diagram */
.arch{border-radius:var(--r-lg);background:var(--night);color:#fff;padding:clamp(18px,2.6vw,32px);border:1px solid var(--night-line);box-shadow:0 50px 90px -60px rgba(20,17,58,.9)}
.arch__vend{text-align:center;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--on-night-4)}
.arch__chips{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:12px}
.arch__chips i{width:28px;height:28px;border-radius:7px;background:#2F23A8;border:1px solid #5246C4}
.arch__chips i.on{background:#4A3FB8;border-color:#8A7BF0}
.arch__lines{height:34px;position:relative}
.arch__lines svg{position:absolute;inset:0;width:100%;height:100%}
.arch__edge{border-radius:12px;padding:14px 18px;text-align:center;background:var(--g-satori)}
.arch__edge b{font-size:16.5px;margin-right:10px}
.arch__edge span{font-size:14px;color:var(--mist)}
.arch__sys{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:0}
.arch__sys span{text-align:center;font-size:13px;font-weight:600;padding:8px 6px;border-radius:16px;border:1px solid var(--night-line-2);background:var(--night-card)}

/* team / photo */
.photo{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;background:var(--night)}
.photo img{width:100%;height:100%;object-fit:cover}
.photo .corners{inset:14px}

/* insights */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.post{display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:var(--white);border:1px solid var(--line);text-decoration:none;min-width:0}
.post h3{font-size:19px;font-weight:700;line-height:1.25;letter-spacing:-.005em}

/* article */
.article{max-width:720px;margin:0 auto}
.article p,.article li{font-size:18.5px;line-height:1.7;color:var(--ink-2)}
.article > * + *{margin-top:22px}
.article h2{font-size:30px;margin-top:48px}
.article ul{display:grid;gap:10px;padding-left:20px;list-style:disc}

/* legal */
.legal{max-width:760px}
.legal h2{font-size:24px;margin-top:40px;margin-bottom:12px}
.legal h3{font-size:19px;margin-top:28px;margin-bottom:8px;font-weight:700}
.legal p,.legal li{font-size:16px;line-height:1.65;color:var(--ink-2);margin-bottom:12px}
.legal ul{list-style:disc;padding-left:22px}
.legal a{color:var(--royal)}

/* ---------- forms ---------- */
.formcard{padding:clamp(24px,3vw,36px);border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);box-shadow:0 40px 80px -60px rgba(20,17,58,.6)}
.formcard h2{font-size:26px}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}
.field{display:grid;gap:6px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-size:14px;font-weight:600;color:var(--ink-2)}
.field label small{font-weight:500;color:var(--ink-4)}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--paper);color:var(--ink);font:500 16px/1.35 var(--f-body)}
.field textarea{min-height:120px;resize:vertical}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 4px rgba(123,63,224,.14);background:var(--white)}
.field .err{display:none;font-size:13px;color:#C2185B}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#E0457B}
.field.invalid .err{display:block}
.drop{display:grid;place-items:center;gap:4px;min-height:96px;border-radius:12px;border:1.5px dashed var(--line-2);background:var(--paper);color:var(--ink-3);font-size:14.5px;text-align:center;padding:14px;cursor:pointer}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.formcard .btn{width:100%;margin-top:20px;min-height:56px;font-size:17.5px}
.fine{margin-top:12px;font-size:13px;color:var(--ink-3)}
.done{display:grid;gap:12px}
.done h2{font-size:28px}
.checks{display:grid;gap:12px;margin-top:8px}
.checks li{display:grid;grid-template-columns:22px 1fr;gap:12px;font-size:16.5px;color:var(--ink-2)}
.on-night .checks li{color:var(--on-night-2)}
.checks .reg{width:20px;height:20px;margin-top:3px}
.choose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;padding:0;margin:0;min-width:0}
.choose label{position:relative;display:block;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--paper);cursor:pointer}
.choose input{position:absolute;opacity:0;pointer-events:none}
.choose b{display:block;font-size:16px}
.choose span{display:block;font-size:13.5px;color:var(--ink-3);margin-top:2px;line-height:1.35}
.choose label:has(input:checked){border-color:var(--violet);background:#F4EFFF}
.choose label:has(input:focus-visible){outline:2px solid var(--violet);outline-offset:2px}

/* contact list */
.clist{display:grid;gap:18px}
.clist li{display:grid;gap:2px}
.clist .k{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--on-night-4)}
.clist .v{font-size:18px;font-weight:600;color:#fff;user-select:all}

/* ---------- dawn CTA ---------- */
.dawn{position:relative;overflow:hidden;isolation:isolate;color:#fff;background:linear-gradient(180deg,#1E1590 0%,#2A1D9E 24%,#4A2CD6 46%,#7B3FE0 62%,#C04BB0 78%,#FF3C72 90%,#FF6A47 100%)}
.dawn__sky{position:absolute;inset:0;z-index:-1;pointer-events:none}
.dawn__sky svg{width:100%;height:100%}
.dawn .wrap{padding-block:clamp(80px,10vw,140px) clamp(120px,14vw,200px)}
.dawn h2{font-size:clamp(40px,5.4vw,72px);line-height:1}
.dawn .lede{margin-top:20px;color:var(--mist)}
.dawn .btns{margin-top:34px;justify-content:center}
.dawn .btn--primary{background:#fff;color:var(--night);box-shadow:0 14px 30px -12px rgba(255,60,114,.8)}
.dawn .btn--primary:hover{background:var(--mist)}

/* ---------- footer ---------- */
.ftr{background:var(--deep);color:var(--on-night-3);border-top:1px solid var(--night-line)}
.ftr .wrap{padding-block:64px calc(40px + env(safe-area-inset-bottom,0px))}
.ftr__top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,.7fr));gap:32px}
.ftr__top > *{min-width:0}
.ftr__brand img{height:24px;width:auto}
.ftr__brand p{margin-top:18px;font-size:15px;line-height:1.55;max-width:34ch}
.ftr h3{font-family:var(--f-body);font-size:14px;font-weight:600;color:#fff;letter-spacing:0;margin-bottom:14px}
.ftr ul{display:grid;gap:10px;font-size:15px}
.ftr a{text-decoration:none}
.ftr a:hover{color:#fff}
.ftr__bot{margin-top:56px;padding-top:24px;border-top:1px solid var(--night-line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;font-size:13px;color:var(--on-night-4)}
.ftr__bot nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.ftr__ck{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.ftr__ck:hover{color:#fff}
.ftr .conv{width:100%;height:22px;color:var(--on-night-4)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .nav,.hdr__cta .tl{display:none}
  .burger{display:grid;margin-left:auto}
  .hdr__cta{margin-left:0}
  .drawer{display:block;position:fixed;inset:0;z-index:95;background:var(--night);color:#fff;overflow-y:auto;transform:translateX(100%);visibility:hidden;transition:transform .3s var(--ease),visibility .3s;
    padding:calc(16px + env(safe-area-inset-top,0px)) var(--gr) calc(32px + env(safe-area-inset-bottom,0px)) var(--gl)}
  .drawer.open{transform:none;visibility:visible}
  .drawer__top{display:flex;justify-content:space-between;align-items:center;min-height:56px}
  .drawer__top img{height:22px;width:auto}
  .drawer h3{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-night-4);margin:28px 0 8px;font-weight:500}
  .drawer a{display:block;padding:10px 0;font-size:19px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--night-line)}
  .drawer .btns{margin-top:28px}
  .drawer .btns .btn{flex:1 1 100%}
  .roles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stages{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ftr__top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ftr__brand{grid-column:1/-1}
  .creds{grid-template-columns:repeat(2,minmax(0,1fr))}
  .creds > *:nth-child(3){border-left:0}
  .creds > *:nth-child(n+3){border-top:1px solid var(--line)}
  .mon__row{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr)) 84px}
  .mon__row > :nth-child(4){display:none}
}
@media (max-width:900px){
  body{font-size:16.5px}
  .hero__grid,.phero__grid,.split,.step,.objection,.ledger{grid-template-columns:minmax(0,1fr)}
  .step:nth-child(even) .step__vis{order:0}
  .cv{margin:8px auto 0}
  .els,.sols,.quotes,.posts,.cards,.cards--4{grid-template-columns:minmax(0,1fr)}
  .cards--2{grid-template-columns:minmax(0,1fr)}
  .bens,.evidence{grid-template-columns:minmax(0,1fr)}
  .bens > *,.evidence > *{padding:24px 0 0}
  .bens > * + *,.evidence > * + *{padding-left:0;border-left:0;border-top:1px solid var(--line);margin-top:24px}
  .on-night .bens > * + *{border-top-color:var(--night-line-2)}
  .loop{grid-template-columns:minmax(0,1fr);gap:12px}
  .loop::before{left:27px;right:auto;top:28px;bottom:28px;width:1.5px;height:auto;background:linear-gradient(180deg,var(--night-line-2),var(--peach),var(--night-line-2))}
  .loop li{grid-template-columns:56px 1fr;justify-items:start;text-align:left;gap:2px 16px;padding:0}
  .loop .n{grid-row:1/3}
  .stages{grid-template-columns:minmax(0,1fr)}
  .arch__sys{grid-template-columns:repeat(2,minmax(0,1fr))}
  .arch__sys span:last-child{grid-column:1/-1}
  .edge-strip{grid-template-columns:minmax(0,1fr)}
  .edge-strip ul{justify-content:flex-start}
  .acc .ans{padding:0 0 24px 0}
  .acc summary{grid-template-columns:40px minmax(0,1fr) 28px}
}
@media (max-width:600px){
  .ones{grid-template-columns:minmax(0,1fr);gap:0;margin-top:36px}
  .ones li{grid-template-columns:auto 1fr;align-items:baseline;gap:4px 12px;padding:12px 0}
  .hero .btns .btn,.phero .btns .btn{flex:1 1 100%}
  .fgrid,.choose{grid-template-columns:minmax(0,1fr)}
  .roles{grid-template-columns:minmax(0,1fr)}
  .creds{grid-template-columns:minmax(0,1fr)}
  .creds > * + *{border-left:0;border-top:1px solid var(--line)}
  .mon__row{grid-template-columns:minmax(0,1fr) 80px}
  .mon__row > :nth-child(2),.mon__row > :nth-child(3){display:none}
  .ftr__top{grid-template-columns:minmax(0,1fr)}
  .quote blockquote::before{position:static;display:block;height:.5em}
  .hdr__cta .btn{padding:0 14px;font-size:14px}
  .review{font-size:12px}
  .cv__cap{font-size:10px}
  .plate__ov{font-size:9px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* royal bands */
.band-royal{background:var(--g-royal);color:#fff}
.band-royal-warm{background:var(--g-royal-warm);color:#fff}
.band-royal .lede,.band-royal-warm .lede{color:var(--on-night-2)}

/* registered stack (static convergence for inner page heroes) */
.rstack{position:relative;width:100%;max-width:640px;margin-left:auto;aspect-ratio:16/10.4;margin-top:28px}
.rstack > .plate{position:absolute;inset:0}
.rstack > .plate:nth-child(1){transform:translate(-30px,-30px);opacity:.38}
.rstack > .plate:nth-child(2){transform:translate(-20px,-20px);opacity:.55}
.rstack > .plate:nth-child(3){transform:translate(-10px,-10px);opacity:.78}
.rstack > .plate.top{box-shadow:0 40px 80px -30px rgba(10,6,60,.8),0 0 0 1px rgba(220,212,255,.2)}
.lockframe{position:absolute;inset:-12px;pointer-events:none;z-index:3}
.lockframe::before,.lockframe::after,.lockframe i::before,.lockframe i::after{content:"";position:absolute;width:22px;height:22px;border:0 solid var(--peach)}
.lockframe::before{left:0;top:0;border-width:2px 0 0 2px}.lockframe::after{right:0;top:0;border-width:2px 2px 0 0}
.lockframe i::before{left:0;bottom:0;border-width:0 0 2px 2px}.lockframe i::after{right:0;bottom:0;border-width:0 2px 2px 0}
.lockframe .reg{position:absolute;right:-30px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--peach)}

/* teams (Clear Start) */
.teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:18px;align-items:stretch;margin-bottom:28px}
.teams > *{min-width:0}
.team{padding:22px 24px;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line)}
.team h3{font-size:18px;font-weight:700;margin-bottom:12px}
.team ul{display:grid;gap:8px;font-size:15px;color:var(--ink-2)}
.team li{display:grid;grid-template-columns:20px 1fr;gap:8px}
.team .reg{width:16px;height:16px;margin-top:4px}
.teams__join{display:grid;place-items:center;align-content:center;gap:8px;text-align:center;font-size:13.5px;color:var(--ink-3);max-width:150px}
.teams__join b{color:var(--ink);font-size:15px}
.teams__join .reg{width:34px;height:34px}
@media (max-width:900px){.teams{grid-template-columns:minmax(0,1fr)}.teams__join{max-width:none;grid-auto-flow:column}}

/* mini product illustrations */
.mini{border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);padding:clamp(18px,2.4vw,28px);box-shadow:0 40px 80px -60px rgba(20,17,58,.5)}
.mini__h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.mini__h b{font-size:15.5px}
.mini__tag{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border:1px dashed var(--line-2);border-radius:999px;padding:3px 9px;white-space:nowrap}
.need{padding:14px 16px;border-radius:12px;background:var(--paper-2);display:grid;gap:2px;margin-bottom:12px}
.need small{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.need b{font-size:16.5px}
.cand{display:grid;gap:8px}
.cand li{display:grid;grid-template-columns:minmax(0,1fr) 110px 72px;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;border:1px solid var(--line);font-size:14.5px}
.cand li.pick{border-color:var(--violet);background:#F6F1FF}
.cand .bar{background:var(--paper-3)}
.cand .ok{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);text-align:right}
.cand li.pick .ok{color:var(--violet)}
.doc{display:grid;gap:10px}
.doc__top{display:flex;align-items:center;gap:12px;padding:16px;border-radius:12px;background:var(--g-satori);color:#fff}
.doc__top b{font-size:17px}
.doc__top span{font-size:13.5px;opacity:.85;display:block}
.doc__v{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.doc__v span{font-size:13px;font-weight:600;text-align:center;padding:9px 6px;border-radius:9px;border:1px solid var(--line);background:var(--paper)}
.wl{display:grid;gap:6px;font-size:14px}
.wl li{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;border:1px solid var(--line)}
.wl li small{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-3)}
.wl li.flag{border-color:rgba(255,60,114,.45);background:#FFF3F6}
.flagc{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:linear-gradient(90deg,var(--orange),var(--pink));color:#fff;white-space:nowrap}
.fb{display:grid;gap:12px}
.fb__f{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border-radius:12px;background:var(--paper-2)}
.fb__f b{font-size:15.5px}
.fb__f small{display:block;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-3)}
.fb__btns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fb__btns span{text-align:center;padding:10px 6px;border-radius:10px;border:1.5px solid var(--line-2);font-weight:700;font-size:14.5px}
.fb__btns span.on{border-color:var(--violet);background:#F4EFFF;color:var(--royal)}
.points{display:grid;gap:16px}
.points li{display:grid;grid-template-columns:24px 1fr;gap:4px 14px}
.points b{font-size:17.5px}
.points span{grid-column:2;font-size:16px;color:var(--ink-2)}
.on-night .points span{color:var(--on-night-2)}
.related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.related a{display:grid;gap:8px;padding:20px;border-radius:var(--r);background:var(--white);border:1px solid var(--line);text-decoration:none;align-content:start;transition:transform .2s var(--ease),border-color .2s}
.related a:hover{transform:translateY(-3px);border-color:var(--line-2)}
.related b{font-size:16.5px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.related b svg{width:16px;height:16px;color:var(--royal)}
.related span{font-size:14.5px;color:var(--ink-2);line-height:1.45}
@media (max-width:1100px){.related{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.related{grid-template-columns:minmax(0,1fr)}.cand li{grid-template-columns:minmax(0,1fr) 72px}.cand li .bar{display:none}}
.leaders{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.leader{display:grid;gap:12px;min-width:0}
.leader b{font-size:17px}
.leader span{display:block;font-size:14.5px;color:var(--ink-3)}
@media (max-width:900px){.leaders{grid-template-columns:repeat(2,minmax(0,1fr))}}
.story p{font-size:clamp(18px,1.5vw,20px);line-height:1.7;color:var(--ink-2)}
.story > * + *{margin-top:20px}
.story .big{font-family:var(--f-display);font-weight:700;font-size:clamp(26px,2.6vw,34px);line-height:1.2;color:var(--ink)}

/* ---------- focus: the registration mark as a "clarify this" marker ----------
   Brackets settle around an element and the mark locks on, slowly, when it scrolls into view.
   Used sparingly: one or two per page, only on what we want clarified. */
.focus{position:relative}
.focus__f{position:absolute;inset:-22px;pointer-events:none;opacity:0;z-index:4;color:var(--royal);
  transition:inset 2.4s cubic-bezier(.25,.6,.15,1),opacity 2s ease}
.on-night .focus__f{color:var(--peach)}
.focus.in .focus__f{inset:-11px;opacity:1}
.focus__f::before,.focus__f::after,.focus__f i::before,.focus__f i::after{content:"";position:absolute;width:18px;height:18px;border:0 solid currentColor}
.focus__f::before{left:0;top:0;border-width:1.75px 0 0 1.75px}.focus__f::after{right:0;top:0;border-width:1.75px 1.75px 0 0}
.focus__f i::before{left:0;bottom:0;border-width:0 0 1.75px 1.75px}.focus__f i::after{right:0;bottom:0;border-width:0 1.75px 1.75px 0}
.focus__f svg{position:absolute;width:22px;height:22px;right:-11px;top:-11px;background:var(--paper);border-radius:50%;padding:2px;opacity:0;transform:scale(.6);
  transition:opacity 1.2s ease 1.6s,transform 1.6s cubic-bezier(.25,.6,.15,1) 1.6s}
.on-night .focus__f svg{background:transparent}
.band-white .focus__f svg{background:var(--white)}
.band-paper2 .focus__f svg{background:var(--paper-2)}
.focus.in .focus__f svg{opacity:1;transform:none}
.focus__note{position:absolute;right:16px;bottom:-34px;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:inherit;opacity:0;transition:opacity 1.2s ease 2.2s;white-space:nowrap}
.focus.in .focus__note{opacity:.85}
/* a focus frame placed over part of an image */
.spot{position:absolute;pointer-events:none}

/* paper sightlines: the quiet version behind key diagrams on light bands */
.sky-paper{position:absolute;inset:0;z-index:0;pointer-events:none}
.sky-paper svg{width:100%;height:100%}
.has-sky{position:relative;isolation:isolate;overflow:hidden}
.has-sky > .wrap{position:relative;z-index:1}

/* anno: a registration mark pinned to one spot in an image, with a short leader and label */
.anno{position:absolute;left:var(--ax);top:var(--ay);z-index:8;display:flex;align-items:center;transform:translate(-11px,-11px);pointer-events:none;opacity:0;transition:opacity 1.4s ease 1s}
.in .anno,.anno.on{opacity:1}
.anno .reg{position:relative;width:22px;height:22px;color:#FFF3EA;flex:none;filter:drop-shadow(0 0 1.2px rgba(18,10,92,.95)) drop-shadow(0 0 5px rgba(18,10,92,.7))}
.anno .ring{position:absolute;left:0;top:0;display:block;width:22px;height:22px;border-radius:50%;border:1px solid var(--peach);animation:anno-ring 6s ease-out infinite}
@keyframes anno-ring{0%{transform:scale(.6);opacity:.6}55%,100%{transform:scale(2.6);opacity:0}}
.anno__l{width:var(--al,36px);height:1px;background:var(--peach);opacity:.85;flex:none}
.anno__t{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;color:#1A1186;background:var(--peach);padding:5px 8px;border-radius:6px;white-space:nowrap;box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
.anno--l{flex-direction:row-reverse;transform:translate(calc(-100% + 11px),-11px)}
.anno--l .ring{left:auto;right:0}
@media (max-width:700px){.anno__t{white-space:normal;max-width:140px}.anno__l{width:16px}}

/* ---------- nav v2: label is a link to the section overview; chevron opens the menu ---------- */
.nav__item{display:flex;align-items:center}
.nav__item .nav__link{padding:10px 4px 10px 12px}
.nav__item .nav__btn{padding:10px 8px 10px 4px;border-radius:8px}
.nav__item .nav__btn::after{display:none}
.nav__link[aria-current="true"]{color:#fff}
.nav__link[aria-current="true"]::after{content:"";position:absolute;left:12px;right:4px;bottom:2px;height:2px;border-radius:2px;background:var(--g-td)}
.nav__item:hover .nav__link{color:#fff}
.menu{top:calc(100% + 6px)}
.menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
/* menu rows: glyph in column 1, title and line in column 2 */
.menu a{grid-template-columns:36px minmax(0,1fr);column-gap:12px;row-gap:3px}
.menu a .ic{grid-column:1;grid-row:1 / span 2;width:36px;height:36px;border-radius:10px;align-self:start;display:grid;place-items:center;
  background:rgba(255,255,255,.06);border:1px solid var(--night-line);color:var(--peach)}
.menu a .ic svg{width:20px;height:20px;color:var(--peach)}
.menu a b{grid-column:2;grid-row:1;display:flex;align-items:center;gap:8px;line-height:1.25}
.menu a > span:not(.ic){grid-column:2;grid-row:2}
.menu a:hover .ic{background:rgba(255,201,168,.12);border-color:rgba(255,201,168,.35)}
.drawer h3 a{display:inline;padding:0;border:0;font:inherit;color:inherit;text-decoration:none}

/* ---------- motif boxes ---------- */
[data-motif] svg{width:100%;height:100%;display:block}
.glyph{width:28px;height:28px;color:var(--royal);flex:none}
.on-night .glyph{color:var(--peach)}

/* ---------- founder photographs: present and past, registered ---------- */
.founder{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,88px);align-items:start}
.founder > *{min-width:0}
@media (max-width:900px){.founder{grid-template-columns:minmax(0,1fr)}}

/* ---------- Satori platform diagram (ported from the RSNA page, booth panel I) ---------- */
:root{--td-ink:#FFFFFF;--td-ink-2:#ECE8FF;--td-ink-3:#C3BCF0;--td-ink-4:#9E97D6;
 --td-peach:#FFC9A8;--td-blush:#FFB6CF;--td-mist:#F1EBFF;--td-coral:#FF5650;--td-satori-b:#8443FF;--td-grad-satori:linear-gradient(90deg,#4437F2,#8443FF);
 --td-display:"Barlow",ui-sans-serif,system-ui,sans-serif;--td-signage:"Barlow Condensed","Barlow",ui-sans-serif,sans-serif}
.td-dia-scroll{margin-top:clamp(32px,4vw,52px);overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.td-dia{min-width:0;border-radius:20px;background:rgba(14,10,52,.88);border:1px solid var(--td-line-2);padding:clamp(18px,2.4vw,30px);
  box-shadow:0 50px 90px -50px rgba(0,0,0,.8)}
.td-vlabel{text-align:center;font-family:var(--td-signage);font-size:14px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--td-ink-4)}
.td-vendors{display:flex;justify-content:center;gap:clamp(6px,1vw,12px);margin-top:12px;flex-wrap:wrap}
.td-vendors i{width:clamp(22px,2.6vw,32px);aspect-ratio:1;border-radius:6px;background:#2A2650;border:1px solid #4A4486;transition:background-color .6s ease,border-color .6s ease}
.td-vendors i.on{background:#4A3FB8;border-color:#7B6BE8}
.td-links{display:grid;height:30px;padding:0 6%}
.td-links.three{grid-template-columns:repeat(3,1fr)}
.td-links.five{grid-template-columns:repeat(5,1fr)}
.td-links span{position:relative;justify-self:center;width:2px;height:100%;background:var(--td-line-3);overflow:hidden}
.td-links span::after{content:"";position:absolute;left:-2px;width:6px;height:10px;border-radius:3px;background:var(--td-peach);box-shadow:0 0 10px var(--td-blush);
  top:-12px;animation:td-pulse 2.6s ease-in infinite}
.td-links span:nth-child(2)::after{animation-delay:.6s}
.td-links span:nth-child(3)::after{animation-delay:1.2s}
.td-links span:nth-child(4)::after{animation-delay:.3s}
.td-links span:nth-child(5)::after{animation-delay:.9s}
@keyframes td-pulse{0%{top:-12px;opacity:0}15%{opacity:1}85%{opacity:1}100%{top:100%;opacity:0}}
.td-vendorblock{width:max-content;max-width:100%;margin:0 auto}
.td-vendorblock .td-links{padding:0}
.td-stewards{border:1.5px dashed var(--td-line-3);border-radius:16px;padding:clamp(12px,1.6vw,18px)}
.td-stew-id{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 14px;text-align:center}
.td-stew-id h3{font-size:20px;font-weight:800}
.td-stew-id p{font-size:15px;color:var(--td-ink-3)}
.td-roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px;padding-bottom:16px;border-bottom:1px solid var(--td-line-2);margin-bottom:16px}
.td-role{background:rgba(132,67,255,.16);border:1px solid var(--td-line-2);border-radius:10px;padding:10px 12px}
.td-role b{display:block;font-family:var(--td-signage);font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--td-ink-3)}
.td-role span{display:block;font-size:14px;line-height:1.35;color:var(--td-ink-2);margin-top:3px}
.td-els{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.td-el{min-width:0;background:var(--td-card-solid);border:1px solid var(--td-line-2);border-top:4px solid var(--td-satori-b);border-radius:12px;padding:16px 18px 18px;
  transition:transform .2s ease,border-color .2s ease}
.td-el:hover{transform:translateY(-3px);border-color:var(--td-line-3)}
.td-el.gov{border-top-color:var(--td-coral)}
.td-el h4{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--td-display);font-size:19px;font-weight:800;margin:0}
.td-newtag{font-family:var(--td-signage);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1;padding:5px 9px 4px;border-radius:999px;
  background:linear-gradient(90deg,var(--td-orange),var(--td-pink));color:var(--td-ink)}
.td-el .lead{margin-top:8px;font-size:15.5px;line-height:1.45;color:var(--td-ink-2)}
.td-el .lead b{color:var(--td-ink)}
.td-el .more{margin-top:8px;font-size:14.5px;line-height:1.45;color:var(--td-ink-4)}
.td-edge{border-radius:12px;padding:14px 20px 16px;text-align:center;background:var(--td-grad-satori)}
.td-edge__top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 14px}
.td-edge__top b{font-size:19px;font-weight:800}
.td-edge__top span{font-size:15px;color:var(--td-ink-2)}
.td-edge p{margin-top:6px;font-size:14.5px;line-height:1.45;color:var(--td-mist);max-width:84ch;margin-left:auto;margin-right:auto}
.td-systems{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.td-sys{text-align:center;font-size:14px;font-weight:600;padding:8px 6px;border-radius:999px;border:1px solid var(--td-line-3);background:var(--td-card-solid)}
@media (max-width:1020px){.td-roles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.td-els{grid-template-columns:minmax(0,1fr)}.td-links.three{grid-template-columns:1fr}.td-links.three span:nth-child(n+2){display:none}.td-links.five{display:none}.td-systems{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.td-systems .td-sys:last-child{grid-column:1/-1}}
@media (max-width:560px){.td-vendors{gap:5px;flex-wrap:nowrap}.td-vendors i{width:20px}}
@media (prefers-reduced-motion:reduce){.td-links span::after{display:none}}
/* diagram on royal */
.band-royal .td-dia{background:rgba(16,9,92,.62);border-color:rgba(220,212,255,.22)}
:root{--td-card-solid:#1F1680;--td-line-2:#4A40A8;--td-line-3:#6A60C8;--td-orange:#FF6E32;--td-pink:#FF3C72}
.band-royal .td-vendors i{background:#2A1F9A;border-color:#5246C4}
.band-royal .td-vendors i.on{background:#5A4BD8;border-color:#A99BFF}

/* Satori lockup at headline scale */
.lock--hero{--lk:clamp(36px,4.6vw,62px)}
.h1--satori{margin-top:clamp(18px,2vw,28px)}

/* ---------- capabilities as a scroll experience ---------- */
.caps__side{position:sticky;top:120px;display:grid;gap:22px;align-content:start}
.caps{display:grid;gap:4px;counter-reset:none}
.cap{padding:22px 24px 22px 18px;border-radius:16px;border:1px solid transparent}
.cap::before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:2px;border-radius:2px;background:var(--line);transition:background .5s ease}
.cap h3{font-size:clamp(19px,1.7vw,23px);font-weight:700;line-height:1.25;letter-spacing:-.01em}
.js-caps .cap{opacity:.55}
.js-caps .cap.is-open{opacity:.85}
.caps__weave{position:relative;height:clamp(330px,42vh,380px);margin-top:0}
.caps__weave svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;max-width:none}
@media (max-width:900px){.caps__weave{display:none}}
@media (max-width:900px){.caps__side{position:relative;top:0}.cap{grid-template-columns:20px minmax(0,1fr);padding:18px 16px 18px 14px}}

/* ---------- the tagline: TestDynamics. One Clear View. ---------- */
.hdr__logo{display:flex;align-items:center;gap:.9em;text-decoration:none;color:#fff}
.hdr__tag{position:relative;padding-left:.95em;font-family:var(--f-display);font-weight:700;font-size:1em;letter-spacing:-.005em;white-space:nowrap;color:#fff}
.hdr__tag::before{content:"";position:absolute;left:0;top:50%;width:2px;height:1.3em;transform:translateY(-50%);background:rgba(255,255,255,.55)}
@media (max-width:1199px) and (min-width:1101px){.hdr__tag{display:none}}
@media (max-width:600px){.hdr__logo{font-size:17px}}
@media (max-width:480px){.hdr__tag{display:none}}
.ftr__tag{display:grid;justify-items:center;text-align:center;gap:clamp(14px,1.6vw,22px);padding-bottom:clamp(48px,6vw,80px);margin-bottom:clamp(40px,5vw,64px)}
.ftr__tag img{height:clamp(28px,3vw,40px);width:auto}
.ftr__line{font-family:var(--f-display);font-weight:800;font-size:clamp(52px,8.4vw,128px);line-height:.95;letter-spacing:-.03em;
  background:var(--g-hl-night);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em}
.ftr__tag .conv{width:min(560px,90%);margin:6px auto 0;color:var(--on-night-3)}

/* ---------- founder letter (Oct 31): story first, founder small ---------- */
.memo{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:linear-gradient(160deg,#3A2E7A,#1A1186);display:grid;place-items:center;color:var(--on-night-2);margin-top:8px}
.memo .ph-in{display:grid;gap:6px;justify-items:center;text-align:center;padding:10px;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase}
.memo .ph-in svg{width:24px;height:24px;color:var(--peach)}
.sign{display:flex;align-items:center;gap:16px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.sign__ph{width:56px;height:56px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--g-royal-warm);color:var(--peach)}
.sign__ph svg{width:24px;height:24px}
.sign b{display:block;font-family:var(--f-display);font-size:19px}
.sign span{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
@media (max-width:600px){.memo{width:132px}}

/* ---------- vertical pages (Oct 31) ---------- */
.vhero{margin:28px 0 0}
.vsit__side{display:grid;gap:22px}
.vhear{padding:24px 26px;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line)}
.vhear h3{font-family:var(--f-display);font-size:20px;font-weight:700;color:var(--ink);margin-bottom:14px}
.vhear ul{display:grid;gap:12px}
.vhear li{display:grid;grid-template-columns:24px 1fr;gap:12px;font-size:16.5px;line-height:1.45;color:var(--ink);font-style:italic}
.vhow__head{position:sticky;top:120px}
a.vwho{text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .3s,transform .3s var(--ease)}
a.vwho:hover{border-color:var(--line-2);box-shadow:0 30px 60px -45px rgba(20,17,58,.5);transform:translateY(-2px)}
.vwho h3{font-size:19px}
.vwho p{text-decoration:none}
.vwho__r{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:11.5px;letter-spacing:.04em;line-height:1.5;color:var(--ink-3)}
.vwho .tlink{margin-top:auto;padding-top:6px}
@media (max-width:900px){.vhow__head{position:relative;top:0}}
@media (max-width:1100px){.cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.cards--4{grid-template-columns:1fr}}

/* vertical title: the audience named plainly at reading size (no eyebrow) */
.vfor{display:flex;align-items:center;gap:14px;margin-bottom:clamp(18px,2vw,26px);font-family:var(--f-display);font-weight:700;font-size:clamp(22px,2.1vw,30px);line-height:1.2;color:var(--peach)}
.vfor svg{width:clamp(34px,3vw,42px);height:clamp(34px,3vw,42px);flex:none;padding:7px;border-radius:12px;background:rgba(255,201,168,.1);border:1px solid rgba(255,201,168,.28);color:var(--peach);max-width:none}

/* capability panels take their ribbon's colour: a light wash once opened, a stronger one when active */
.js-caps .cap.is-open{background:color-mix(in srgb,var(--cc,#3324B0) 5%,transparent)}
.js-caps .cap.is-open::before{background:color-mix(in srgb,var(--cc,#3324B0) 45%,transparent)}

.sol__wm g,.sol__wm path,.sol__wm rect,.sol__wm circle{stroke-width:.32 !important}

/* ---------- the ledger (Oct 31 v2): twenty pieces of work register into five ---------- */
.led{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--white);--cols:76px repeat(5,minmax(0,1fr));--gap:10px}
/* motion: rows stack in, lines draw down, the five answers light (plays once) */
@media (max-width:760px){
  .led{--cols:44px repeat(5,minmax(0,1fr));--gap:5px}
}

/* brand: Barlow everywhere (Manrope only in the logo lockup); labels that were monospaced use Barlow medium with even figures */

/* ================= Nov 2: home simplification ================= */
.sec--tight{padding-block:clamp(64px,7vw,104px)}

/* ---- together ledger: each kind of work, four times over, converges into one ---- */
.lg{position:relative;display:grid;grid-template-columns:150px repeat(4,minmax(0,1fr)) 104px minmax(0,1.75fr);column-gap:10px;row-gap:12px;align-items:center;
  margin-top:clamp(36px,4.5vw,56px);padding:26px 0 26px 26px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--white);overflow:hidden}
/* every tool arrives in its own shape */
@media (max-width:860px){
  .lg{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:6px;column-gap:5px;padding:18px}
}

/* ---- numbers ---- */

/* ---- stewards in one line ---- */
.stew-line{margin-top:20px;padding:18px 26px;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line)}
.stew-line p{font-size:16px;line-height:1.5;color:var(--ink-2)}
.stew-line b{font-size:18px;color:var(--ink)}

/* ---- governance cycle ---- */
.cyc{position:relative;width:100%;max-width:520px;aspect-ratio:1;margin:0 auto;justify-self:center}
@keyframes cycIn{from{opacity:0;transform:translate(-50%,calc(-50% + 6px))}to{opacity:1;transform:translate(-50%,-50%)}}
@media (max-width:860px){.cyc{max-width:400px;margin-top:12px}}

/* ---- logo placeholders ---- */
.creds--5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1080px){.creds--5{grid-template-columns:repeat(2,minmax(0,1fr))}.creds--5 > *{border-left:0!important;border-top:1px solid var(--line)}.creds--5 > *:nth-child(-n+2){border-top:0}}
@media (max-width:600px){.creds--5{grid-template-columns:1fr}.creds--5 > *{border-top:1px solid var(--line)!important}.creds--5 > *:first-child{border-top:0!important}}
@media (max-width:720px){.els .el__vis{aspect-ratio:16/7!important;height:auto}}

/* ---- Nov 3 · the weight: every tool carries its own stack until Satori carries it once ---- */
.wt{margin-top:clamp(32px,4vw,52px);padding:clamp(20px,2.6vw,32px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--white)}
.wt__state{position:relative;font-family:var(--f-display);font-weight:800;font-size:clamp(19px,1.8vw,24px);line-height:1.2;color:var(--ink);min-height:1.2em}
.wt__state b{display:block;transition:opacity .4s ease}
.wt__state .s-a{inset:0;opacity:0;color:var(--royal)}
.wt.is-a .wt__state .s-b{opacity:0}.wt.is-a .wt__state .s-a{opacity:1}
.wt__stage{display:grid;grid-template-columns:128px repeat(5,minmax(0,1fr));align-items:center}
.wt__lab{font-size:14px;font-weight:600;color:var(--ink-2)}
.wt__tool{display:grid;place-items:center;height:40px;margin-bottom:8px;border-radius:10px;border:1.5px solid var(--ink);font-size:14px;font-weight:700;color:var(--ink);background:var(--white);transition:transform .6s var(--ease),border-color .4s,color .4s}
.wt__tool--next{border-style:dashed;border-color:var(--line-2);color:var(--ink-3);font-weight:600}
.wt__tool--next i{font-style:normal;grid-area:1/1;transition:opacity .4s ease .9s}
.wt__tool--next .a{opacity:0}
.wt.is-a .wt__tool--next{border-style:solid;border-color:var(--ink);color:var(--ink);transform:translateY(0)}
.wt.is-a .wt__tool--next .b{opacity:0}.wt.is-a .wt__tool--next .a{opacity:1}
@keyframes wtDrop{0%{transform:translateY(-14px)}60%{transform:translateY(3px)}100%{transform:none}}
/* the stacks: each tool's own tower of work */
.wt__blk{position:relative;z-index:1;display:grid;place-items:center;padding:0 6px;font-style:normal;font-size:13px;font-weight:600;color:var(--ink-2);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:var(--paper-2);
  transition:opacity .45s ease calc(var(--r)*.1s + var(--c)*.03s),transform .75s var(--ease) calc(var(--r)*.1s + var(--c)*.03s)}
.wt__blk[style*="--r:3"]{border-style:dashed;border-color:var(--line-2);font-weight:500}
/* the merge: matching blocks slide together and fuse into one shared layer */
.wt.is-a .wt__blk{opacity:0;transform:translateX(calc((2 - var(--c)) * (100% + 18px))) scaleX(.6)}
.wt__fuse{position:relative;z-index:2;align-self:stretch;display:flex;align-items:center;gap:12px;padding:0 20px;min-height:46px;background:var(--g-royal);color:#fff;border-radius:4px;
  opacity:0;transform:scaleX(.18);transform-origin:50% 50%;pointer-events:none;
  transition:opacity .45s ease calc(var(--r)*.1s),transform .75s var(--ease) calc(var(--r)*.1s)}
.wt__fuse b{font-family:var(--f-display);font-size:16.5px;white-space:nowrap}
.wt__fuse span{font-size:14px;color:var(--on-night-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wt.is-a .wt__fuse{opacity:1;transform:none}
.wt__base{display:flex;align-items:center;gap:12px;padding:0 20px;height:44px;border-radius:4px 4px 12px 12px;background:linear-gradient(90deg,var(--orange),var(--pink));color:#fff;font-size:14px;font-weight:600;
  opacity:0;transition:opacity .45s ease,transform .6s var(--ease)}
.wt.is-a .wt__base{opacity:1}
.wt__base .lock{color:#fff}
@media (prefers-reduced-motion:reduce){.wt *{transition-duration:.01s!important;animation:none!important}}
@media (max-width:760px){
  .wt__stage{grid-template-columns:64px repeat(5,minmax(0,1fr));row-gap:3px}
  .wt__lab{font-size:11.5px}
  .wt__tool{height:30px;border-width:1px;border-radius:7px;margin-bottom:6px}
  .wt__blk{font-size:0;padding:0}
  .wt.is-a .wt__blk{transform:translateX(calc((2 - var(--c)) * (100% + 6px))) scaleX(.6)}
  .wt__fuse{justify-content:center;gap:1px}
  .wt__fuse b{font-size:14px}.wt__fuse span{font-size:12px;white-space:normal}
  .wt__base{padding:0 12px;font-size:12px}
}
/* towers, not a table: stacked with no gaps, darkening as they go down, sitting heavy on the ground */
.wt__stage{row-gap:0;column-gap:22px}
.wt__state{display:grid}.wt__state b{grid-area:1/1}.wt__state .s-a{position:static}
.wt__blk{height:48px;border-radius:0;border:0;border-left:1px solid rgba(20,17,58,.08);border-right:1px solid rgba(20,17,58,.08);border-top:1px solid rgba(255,255,255,.7)}
.wt__blk[style*="--r:0"]{border-radius:10px 10px 0 0;background:#ECEAF7}
.wt__blk[style*="--r:1"]{background:#E1DDF2}
.wt__blk[style*="--r:2"]{background:#D5D0EC;color:var(--ink)}
.wt__blk[style*="--r:3"]{border-radius:0 0 10px 10px;background:#C9C3E6;border:0;border-left:1px solid rgba(20,17,58,.08);border-right:1px solid rgba(20,17,58,.08);color:var(--ink-2);font-style:italic;
  box-shadow:0 22px 22px -16px rgba(20,17,58,.55)}

.wt__fuse{margin:2px 0}
.wt__fuse[style*="--r:0"]{border-radius:12px 12px 4px 4px}
@media (max-width:760px){.wt__stage{column-gap:7px}.wt__blk{height:34px}}
@media (max-width:760px){
  .wt__fuse{min-height:0;height:34px;padding:0 12px;flex-direction:row;align-items:center;margin:1px 0}
  .wt__fuse span{display:none}
  .wt__base > span:not(.lock){display:none}
  .wt__base{height:32px}
}

/* ---- Nov 3 · click to add Satori ---- */
.wt .wt__stage .wt__blk--next{background:transparent;border:1.5px dashed var(--line-2);border-radius:0;box-shadow:none;margin-top:-1.5px;color:transparent}
.wt .wt__stage .wt__blk--next[style*="--r:0"]{border-radius:10px 10px 0 0;margin-top:0}
.wt .wt__stage .wt__blk--next[style*="--r:3"]{border-radius:0 0 10px 10px}
/* waiting: the next tool keeps arriving with a stack of its own, and the towers dip under it */
@keyframes wtFill{0%,12%{background:transparent;border-color:var(--line-2)}24%,62%{background:#D9D4EE;border-color:rgba(20,17,58,.12);border-style:solid}78%,100%{background:transparent;border-color:var(--line-2)}}
@keyframes wtDip{0%,30%,62%,100%{transform:none}38%{transform:translateY(3px)}46%{transform:translateY(1px)}}
@keyframes wtNext{0%,12%,78%,100%{border-style:dashed;color:var(--ink-4)}24%,62%{border-style:solid;color:var(--ink-2)}}
/* the empty foundation, asking to be filled */
@keyframes wtPulse{0%{box-shadow:0 0 0 0 rgba(255,92,72,.32)}70%{box-shadow:0 0 0 12px rgba(255,92,72,0)}100%{box-shadow:0 0 0 0 rgba(255,92,72,0)}}
/* Satori rises in first, then each layer fuses from the bottom up */
.wt__base{margin-top:12px;transform:translateY(26px)}
.wt.is-a .wt__base{transform:none;transition-delay:.05s;transition-duration:.45s,.6s}
.wt.is-a .wt__fuse{transition-delay:calc(.4s + (3 - var(--r))*.12s)}
.wt.is-a .wt__blk{transition-delay:calc(.4s + (3 - var(--r))*.12s + var(--c)*.02s)}
.wt.is-a .wt__tool--next{animation:wtDrop .7s var(--ease) 1.05s both}
@media (max-width:760px){.wt__base{margin-top:8px}}
@media (max-width:760px){.wt__tool--next .b{font-size:9px;line-height:1.1;text-align:center}}

/* ---- Nov 3 · slider: drag from without Satori to with Satori; the merge follows the hand ---- */
.wt{--p:0}
.wt__ctl{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 16px;border-radius:999px;background:var(--paper);border:1px solid var(--line)}
.wt__end{font:inherit;font-size:15px;font-weight:700;background:none;border:0;cursor:pointer;padding:6px 8px;white-space:nowrap;transition:color .3s,opacity .3s}
.wt__end--l{color:var(--ink);opacity:calc(1 - var(--p)*.38)}
.wt__end--r{color:var(--royal);opacity:calc(.72 + var(--p)*.28)}
.wt__end:focus-visible{outline:2px solid var(--royal);outline-offset:3px;border-radius:8px}
.wt__track{position:relative;height:40px}
.wt__track::before{content:"";position:absolute;left:0;right:0;top:50%;height:6px;margin-top:-3px;border-radius:6px;background:var(--paper-3)}
.wt__fill{position:absolute;left:0;top:50%;height:6px;margin-top:-3px;border-radius:6px;width:calc(20px + (100% - 40px)*var(--p));background:linear-gradient(90deg,var(--royal),var(--violet) 60%,var(--pink));pointer-events:none}
.wt__knob{position:absolute;top:0;left:calc((100% - 40px)*var(--p));width:40px;height:40px;border-radius:50%;display:grid;place-items:center;pointer-events:none;
  background:linear-gradient(135deg,var(--orange),var(--pink));box-shadow:0 8px 18px -8px rgba(255,60,114,.9),0 0 0 3px var(--white)}
.wt__knob img{width:16px;height:auto}
.wt.is-idle .wt__knob{animation:wtKnob 2.4s ease-out infinite}
@keyframes wtKnob{0%{box-shadow:0 8px 18px -8px rgba(255,60,114,.9),0 0 0 3px var(--white),0 0 0 3px rgba(255,92,72,.45)}70%{box-shadow:0 8px 18px -8px rgba(255,60,114,.9),0 0 0 3px var(--white),0 0 0 16px rgba(255,92,72,0)}100%{box-shadow:0 8px 18px -8px rgba(255,60,114,.9),0 0 0 3px var(--white),0 0 0 3px rgba(255,92,72,0)}}
.wt__hint{position:absolute;top:50%;left:calc(52px + (100% - 40px)*var(--p));transform:translateY(-50%);font-size:13.5px;font-weight:600;color:var(--coral);white-space:nowrap;pointer-events:none;opacity:calc(1 - var(--p)*6);transition:opacity .3s}
.wt__hint::after{content:" \2192";display:inline-block;animation:wtArrow 1.4s ease-in-out infinite}
@keyframes wtArrow{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
.wt.is-touched .wt__hint{opacity:0}
.wt__range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:grab;z-index:2}
.wt__range:active{cursor:grabbing}
.wt__range:focus-visible ~ .wt__knob{box-shadow:0 0 0 3px var(--white),0 0 0 6px var(--royal)}
/* the merge is driven by --p: each layer has its own window, bottom layer first */
.wt .wt__stage .wt__blk,.wt .wt__stage .wt__fuse,.wt .wt__stage .wt__base,.wt .wt__stage .wt__tool{transition:none}
.wt .wt__stage .wt__blk,.wt .wt__stage .wt__fuse{--st:calc((3 - var(--r)) * .11);--lp:clamp(0,(var(--p) - var(--st)) / .5,1)}
.wt .wt__stage .wt__blk{opacity:calc(1 - var(--lp));transform:translateX(calc((2 - var(--c)) * (100% + 22px) * var(--lp))) scaleX(calc(1 - var(--lp)*.4));animation:none}
.wt .wt__stage .wt__fuse{opacity:var(--lp);transform:scaleX(calc(.18 + var(--lp)*.82))}
.wt .wt__stage .wt__base{--lp:clamp(0,var(--p) / .3,1);opacity:var(--lp);transform:translateY(calc(26px * (1 - var(--lp))))}
.wt .wt__stage .wt__tool{animation:none}
.wt .wt__tool--next{transition:border-color .3s,color .3s}
.wt.is-full .wt__tool--next{border-style:solid;border-color:var(--ink);color:var(--ink);animation:wtDrop .6s var(--ease) both}
.wt .wt__tool--next i{transition:opacity .3s}
.wt .wt__tool--next .a{opacity:0}.wt .wt__tool--next .b{opacity:1}
.wt.is-full .wt__tool--next .a{opacity:1}.wt.is-full .wt__tool--next .b{opacity:0}
.wt .wt__stage .wt__blk--next{animation:none}
@media (max-width:760px){
  .wt__ctl{grid-template-columns:1fr 1fr;gap:8px 10px;border-radius:18px;padding:12px}
  .wt__track{grid-column:1 / -1;grid-row:1}
  .wt__end{font-size:13px;padding:2px 4px}.wt__end--r{text-align:right}
  .wt .wt__stage .wt__blk{transform:translateX(calc((2 - var(--c)) * (100% + 7px) * var(--lp))) scaleX(calc(1 - var(--lp)*.4))}
  .wt__hint{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.wt.is-idle .wt__knob,.wt__hint::after{animation:none}}

/* ---- Nov 4 · from the RSNA landing page: Satori mark on each merged layer; spacing ---- */
.wt__fmark{flex:none;height:24px;width:auto}
.wt__ctl{margin-bottom:clamp(22px,2.6vw,30px)}
.wt__state{margin-bottom:clamp(22px,2.6vw,32px)}
@media (max-width:760px){.wt .wt__stage .wt__fuse{justify-content:flex-start;gap:10px}.wt__fmark{height:20px}}

/* ---- Nov 4 · Satori Governance Cycle, sniped from the RSNA landing page (rsna a105dd4); tokens scoped to the card ---- */
.td-cyc{--td-line:rgba(201,184,255,.22);--td-peach:#FFC9A8;--td-ink-2:#ECE8FF;--td-ink:#FFFFFF;--td-signage:"Barlow Condensed","Barlow",ui-sans-serif,system-ui,sans-serif;color:#fff;align-self:start}
.td-cyc__lock .lock{color:#fff}
/* The Satori Governance Cycle, as on the RSNA one pager: five numbered steps, arrows between them, and a return path from Replace to Choose.
   The progression plays once each step at a time while the cycle is on screen; at rest every step and the return path are shown. */
.td-cyc{padding:clamp(20px,2.6vw,30px);border-radius:18px;background:rgba(17,11,71,.72);border:1px solid var(--td-line)}
.td-cyc__lock{--lk:24px}
.td-cyc__body{position:relative;margin-top:22px;padding-right:44px}
.td-cyc__steps{position:relative;z-index:1;display:grid;grid-auto-rows:1fr;gap:26px;counter-reset:none}
.td-cyc__steps li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:baseline;padding:14px 16px;border-radius:12px;
  z-index:1;background:linear-gradient(180deg,#3B27AE,#2B1C8A);border:1px solid rgba(201,184,255,.28);border-top:2px solid rgba(255,182,207,.75);
  transition:background-color .5s ease,border-color .5s ease,box-shadow .5s ease,transform .5s ease,opacity .5s ease}
.td-cyc__steps .n{grid-row:1 / span 2;font-family:var(--td-signage);font-weight:700;font-size:16px;color:var(--td-peach);min-width:12px}
.td-cyc__steps b{font-size:18px;font-weight:800;line-height:1.2}
.td-cyc__steps .d{grid-column:2;margin-top:2px;font-size:15px;line-height:1.4;color:var(--td-ink-2)}
/* arrows between steps */
.td-cyc__steps li + li::before{content:"";position:absolute;left:50%;top:-20px;width:2px;height:12px;margin-left:-1px;background:var(--td-peach);opacity:.85;transition:opacity .4s ease}
.td-cyc__steps li + li::after{content:"";position:absolute;left:50%;top:-11px;width:8px;height:8px;margin-left:-4px;border-right:2px solid var(--td-peach);border-bottom:2px solid var(--td-peach);transform:rotate(45deg);opacity:.85;transition:opacity .4s ease}
/* the return path: from Replace back up to Choose */
.td-cyc__return{position:absolute;right:16px;width:28px;top:calc((100% - 104px) / 10);bottom:calc((100% - 104px) / 10);
  border:2px solid var(--td-peach);border-left:0;border-radius:0 14px 14px 0;opacity:.85;clip-path:inset(0 0 0 0);transition:clip-path .9s cubic-bezier(.6,0,.3,1),opacity .4s ease}
.td-cyc__return::after{content:"";position:absolute;left:-2px;top:-6px;width:9px;height:9px;border-left:2px solid var(--td-peach);border-bottom:2px solid var(--td-peach);transform:rotate(45deg)}
.td-cyc__label{margin-top:16px;text-align:center;font-weight:700;font-size:15px;color:var(--td-peach);transition:opacity .5s ease,text-shadow .5s ease}
/* the progression */
/* dim the words, never the card, so the light stays hidden beneath it */
.td-cyc__steps li > *{transition:opacity .5s ease}
.td-cyc.is-run .td-cyc__steps li > *{opacity:.42}
.td-cyc.is-run .td-cyc__steps li.is-done > *{opacity:.75}
.td-cyc.is-run .td-cyc__steps li.is-on > *{opacity:1}
.td-cyc.is-run .td-cyc__steps li.is-on{transform:translateX(4px);border-color:rgba(255,201,168,.65);border-top-color:var(--td-peach);
  box-shadow:0 0 0 1px rgba(255,201,168,.35),0 16px 30px -18px rgba(255,110,50,.7)}
.td-cyc.is-run .td-cyc__steps li + li::before,.td-cyc.is-run .td-cyc__steps li + li::after{opacity:.25}
.td-cyc.is-run .td-cyc__steps li.is-on::before,.td-cyc.is-run .td-cyc__steps li.is-on::after,
.td-cyc.is-run .td-cyc__steps li.is-done::before,.td-cyc.is-run .td-cyc__steps li.is-done::after{opacity:.85}
.td-cyc.is-run .td-cyc__label{opacity:.5}
.td-cyc.is-run.is-loop .td-cyc__label{opacity:1;text-shadow:0 0 18px rgba(255,201,168,.55)}

/* the living path: a glowing arrow draws the cycle. It rests at the top of the step being read, travels down through the
   gap to the next step (the line it draws stays behind it), runs up the return path into Choose, and the line is erased
   before the next turn begins. Drawn by script; the static arrows and border are the no-script fallback. */
.td-cyc__flow{position:absolute;inset:0;z-index:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.td-cyc.is-live .td-cyc__return{display:none}
.td-cyc.is-live .td-cyc__steps li + li::before,.td-cyc.is-live .td-cyc__steps li + li::after{display:none}
.td-cyc__track{fill:none;stroke:rgba(255,201,168,.13);stroke-width:2;stroke-linejoin:round}
.td-cyc__line{fill:none;stroke:#FFC9A8;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.85;transition:opacity .6s ease}
.td-cyc__glow{fill:none;stroke:#FF8F6B;stroke-width:12;stroke-linecap:round;stroke-linejoin:round;opacity:.45;filter:blur(5px);transition:opacity .4s ease}
.td-cyc__arrow{transition:opacity .4s ease}
.td-cyc__tip{fill:#FFE6D8}
.td-cyc__halo{fill:#FF8F6B;opacity:.5;transform-box:fill-box;transform-origin:center;animation:td-cyc-breathe 2.4s ease-in-out infinite}
.td-cyc.is-moving .td-cyc__halo{animation:none;opacity:.6}
.td-cyc.is-erase .td-cyc__line,.td-cyc.is-erase .td-cyc__arrow{opacity:0}
@keyframes td-cyc-breathe{0%,100%{transform:scale(1);opacity:.4}50%{transform:scale(1.8);opacity:.12}}
@media (prefers-reduced-motion:reduce){.td-cyc *{transition:none!important}}
.wt.is-a .wt__tool--next i{transition-delay:0s}
.td-cyc .td-cyc__body{margin-top:0}
@media (max-width:760px){.wt__tool .ai{display:none}.wt__tool{font-size:10px;padding:0 2px}}
@media (max-width:760px){.wt__tool--next .a{font-size:9px;letter-spacing:-.01em}}
/* tool labels: the phone-only "AI" tag must stay on the same line */
.wt__tool:not(.wt__tool--next){display:flex;align-items:center;justify-content:center;white-space:nowrap}
.wt__tool .ai{margin-right:.28em}

/* ================= V2 (Nov 5) ================= */
/* Solutions menu: roles first, organizations as one quiet row */

/* quotes, as on the one pagers: dark card, ringed circle headshot with a quote badge, name in peach */
.oq{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(18px,2.4vw,28px);align-items:center;padding:clamp(22px,3vw,34px) clamp(22px,3.2vw,40px);border-radius:var(--r-lg);
  background:linear-gradient(180deg,#2B1C8A,#22178F);border:1px solid rgba(201,184,255,.28);color:#fff;box-shadow:0 40px 70px -50px rgba(20,17,58,.8)}
.oq__ph{position:relative;width:clamp(84px,9vw,112px);aspect-ratio:1;border-radius:50%;border:2px solid var(--peach);padding:3px;flex:none}
.oq__ph img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.oq__ph::after{content:"\201C";position:absolute;right:-6px;top:-4px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--pink);color:#fff;font-family:var(--f-display);font-weight:800;font-size:22px;line-height:1;padding-top:8px;box-shadow:0 0 0 3px #2B1C8A}
.oq blockquote{font-family:var(--f-display);font-weight:500;font-size:clamp(18px,1.7vw,23px);line-height:1.45;color:#fff;text-wrap:pretty}
.oq .oq__by{margin-top:12px}
.oq .oq__by b{display:block;font-size:15.5px;color:var(--peach)}
.oq .oq__by span{display:block;font-size:14px;color:var(--on-night-3);margin-top:2px}
.oq--short blockquote{font-size:clamp(20px,2vw,27px)}
@media (max-width:620px){.oq{grid-template-columns:1fr;justify-items:start}}
.oq-pair{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:stretch;margin-bottom:20px}
.oq-pair .oq{grid-template-columns:1fr;align-content:start;justify-items:start}
@media (max-width:900px){.oq-pair{grid-template-columns:1fr}}

/* ---- V2 Solutions: what we hear, and what changes ---- */
.wwh{display:grid;gap:14px;margin-top:clamp(28px,3.4vw,44px)}
.wwh__hd{display:grid;grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);font-weight:700;color:var(--ink-3)}
.wwh__hd span:last-child{grid-column:3;color:var(--royal)}
.wwh__row{display:grid;grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);align-items:center}
.wwh__q{position:relative;margin:0;padding:22px 26px 22px 58px;border-radius:16px;background:var(--paper);border:1px solid var(--line);font-family:var(--f-display);font-weight:600;font-size:clamp(17px,1.5vw,20px);line-height:1.4;color:var(--ink-2)}
.wwh__q::before{content:"\201C";position:absolute;left:20px;top:12px;font-family:var(--f-display);font-weight:800;font-size:48px;line-height:1;background:var(--g-hl-day);-webkit-background-clip:text;background-clip:text;color:transparent}
.wwh__ln{position:relative;height:2px;margin:0 10px;background:linear-gradient(90deg,var(--line-2),var(--royal));transform-origin:left center}
.wwh__ln::after{content:"";position:absolute;right:-3px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:var(--royal);box-shadow:0 0 0 4px rgba(51,36,176,.14)}
.wwh__a{padding:20px 24px;border-radius:16px;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--royal);box-shadow:0 26px 50px -40px rgba(20,17,58,.5)}
.wwh__a h3{font-size:clamp(18px,1.6vw,21px);font-weight:800;line-height:1.25;color:var(--ink)}
.wwh__a p{margin-top:6px;font-size:15.5px;line-height:1.55;color:var(--ink-2)}
.js-wwh .wwh__q{opacity:0;transform:translateX(-14px);transition:opacity .5s ease calc(var(--i)*.16s),transform .7s var(--ease) calc(var(--i)*.16s)}
.js-wwh .wwh__ln{transform:scaleX(0);transition:transform .6s cubic-bezier(.45,0,.2,1) calc(.3s + var(--i)*.16s)}
.js-wwh .wwh__ln::after{opacity:0;transition:opacity .3s ease calc(.85s + var(--i)*.16s)}
.js-wwh .wwh__a{opacity:0;transform:translateX(14px);transition:opacity .5s ease calc(.75s + var(--i)*.16s),transform .7s var(--ease) calc(.75s + var(--i)*.16s)}
.js-wwh .wwh__row.in .wwh__q,.js-wwh .wwh__row.in .wwh__a{opacity:1;transform:none}
.js-wwh .wwh__row.in .wwh__ln{transform:none}.js-wwh .wwh__row.in .wwh__ln::after{opacity:1}
@media (max-width:860px){
  .wwh__hd{display:none}
  .wwh__row{grid-template-columns:1fr;gap:0}
  .wwh__ln{width:2px;height:28px;margin:0 0 0 34px;background:linear-gradient(180deg,var(--line-2),var(--royal));transform-origin:top center}
  .wwh__ln::after{right:auto;left:50%;top:auto;bottom:-3px;margin:0 0 0 -4.5px}
  .js-wwh .wwh__ln{transform:scaleY(0)}
  .wwh__q{padding:18px 20px 18px 50px}.wwh__q::before{left:16px;font-size:40px}
}

/* ---- leaders: answers for leadership ---- */
.qa{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:clamp(26px,3vw,40px)}
.qa__c{padding:24px 26px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid var(--night-line-2);border-top:2px solid var(--peach)}
.qa__c h3{font-family:var(--f-display);font-weight:800;font-size:clamp(19px,1.8vw,23px);line-height:1.25;color:#fff}
.qa__c p{margin-top:8px;font-size:16px;line-height:1.55;color:var(--on-night-2)}
@media (max-width:760px){.qa{grid-template-columns:1fr}}

/* ---- radiologists: before, during, after ---- */
.bda{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(26px,3vw,40px);padding-top:34px}
.bda::before{content:"";position:absolute;left:24px;right:8%;top:6px;height:2px;background:linear-gradient(90deg,var(--peach),rgba(255,201,168,.25))}
.bda__c{position:relative;padding:24px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid var(--night-line-2)}
.bda__c::before{content:"";position:absolute;left:24px;top:-35px;width:14px;height:14px;border-radius:50%;background:var(--peach);box-shadow:0 0 0 5px rgba(255,201,168,.18)}
.bda__k{display:block;margin-bottom:8px;font-size:13.5px;font-weight:700;color:var(--peach)}
.bda__c h3{font-family:var(--f-display);font-weight:800;font-size:clamp(19px,1.8vw,22px);color:#fff}
.bda__c p{margin-top:8px;font-size:15.5px;line-height:1.55;color:var(--on-night-2)}
@media (max-width:860px){.bda{grid-template-columns:1fr;padding-top:0}.bda::before,.bda__c::before{display:none}}

/* ---- role links and organization cards ---- */
.rolerow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}
.rolecard,.orgcard{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:14px;background:var(--white);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}
.rolecard:hover,.orgcard:hover{transform:translateY(-2px);border-color:var(--line-2);box-shadow:0 20px 40px -30px rgba(20,17,58,.5)}
.rolecard b,.orgcard b{display:block;font-size:16.5px;line-height:1.25}
.rolecard span span,.orgcard span span{display:block;margin-top:3px;font-size:14px;line-height:1.4;color:var(--ink-3)}
.rolecard__ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--paper-2);color:var(--royal)}
.rolecard__ic svg{width:24px;height:24px}
.orgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.orgcard > svg{flex:none;width:18px;height:18px;margin-left:auto;color:var(--royal)}
@media (max-width:900px){.rolerow,.orgs{grid-template-columns:1fr}}

/* ---- V2 Platform: ten capabilities, each a ribbon that converges into one program (sales deck orientation) ---- */
.tp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 clamp(12px,2vw,28px);margin-top:clamp(28px,3.4vw,44px);align-items:stretch}
@media (max-width:900px){.tp{grid-template-columns:1fr}}

/* ---- V2 Platform: Clear Start, an on-ramp into a loop that repeats for every new use case ---- */
.cs{margin-top:clamp(28px,3.4vw,44px)}
.cs__map{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);align-items:center;gap:0;padding:clamp(18px,2.6vw,32px);border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);box-shadow:0 40px 80px -60px rgba(20,17,58,.45)}
@keyframes csIn{from{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:none}}
.cs__tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.cs__tabs button{font:inherit;font-size:14px;font-weight:700;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--white);color:var(--ink-3);cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.cs__tabs button[aria-selected="true"]{background:var(--royal);border-color:var(--royal);color:#fff}
@media (max-width:900px){
  .cs__map{grid-template-columns:1fr;padding:16px}
}

/* ---- hero starburst: rays fly out from the mark as the sightlines land, then fade (Nov 8) ---- */
.cv__burst{position:absolute;left:50%;top:50%;width:clamp(150px,19vw,240px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.cv__find .cv__burst svg,.cv.is-found .cv__find .cv__burst svg{position:absolute;inset:0;left:0;top:0;width:100%;height:100%;overflow:visible;max-width:none;opacity:1;transform:none;transition:none;filter:drop-shadow(0 0 3px rgba(255,176,137,.9))}
.cv__burst line{stroke:#FFF3EA;stroke-width:2;stroke-linecap:round;stroke-dasharray:.42 1.2;stroke-dashoffset:.42;opacity:0;vector-effect:non-scaling-stroke}
.cv__burst line[style*="--k:1"]{stroke:#FFB089}.cv__burst line[style*="--k:2"]{stroke:#FF8FB0}
.cv__burst circle{fill:none;stroke:#FFC9A8;stroke-width:1.5;opacity:0;transform-origin:0 0}
.cv.is-found .cv__burst line{animation:cvRay 1s cubic-bezier(.15,.7,.25,1) both}
.cv.is-found .cv__burst circle{animation:cvRing 1.1s cubic-bezier(.15,.7,.25,1) both}
@keyframes cvRay{0%{stroke-dashoffset:.42;opacity:0}15%{opacity:1}100%{stroke-dashoffset:-.95;opacity:0}}
@keyframes cvRing{0%{transform:scale(.6);opacity:0}20%{opacity:.55}100%{transform:scale(3.4);opacity:0}}
@media (prefers-reduced-motion:reduce){.cv__burst{display:none}}
/* ---- home: Satori's first appearance gets a larger lockup (Nov 8) ---- */
.lock--intro{--lk:clamp(40px,5vw,64px);margin-bottom:clamp(14px,1.6vw,22px)}
/* ---- home proof strip: partner logos lead their cell (Nov 8) ---- */
.creds--5 > *{flex-direction:column;align-items:flex-start;gap:10px}
.creds--5 .cred-logo img.wide{height:auto;max-height:40px;width:auto;max-width:min(100%,190px)}
.creds--5 .cred-logo img.badge{height:64px;width:auto}
.creds--5 > *{align-self:stretch}
.creds--5 > * > img,.creds--5 .cred-logo img.wide,.creds--5 .cred-logo img.badge{height:60px;width:100%;max-width:200px;max-height:none;object-fit:contain;object-position:left center}

/* ---- hero: the seeking mark every sightline is tied to (Nov 8) ---- */
.hero__seek{position:absolute;width:clamp(26px,3.6vw,38px);aspect-ratio:1;transform:translate(-50%,-50%);z-index:10;pointer-events:none;color:#FFF3EA;opacity:0;transition:opacity .25s ease;
  filter:drop-shadow(0 0 1.2px rgba(18,10,92,.95)) drop-shadow(0 0 6px rgba(255,176,137,.7))}
.hero__seek.is-on{opacity:1}
.hero__seek svg{display:block;width:100%;height:100%;overflow:visible;max-width:none}
/* ---- home: the three ones under "works together" (Nov 8) ---- */
.one3{margin-top:12px;display:grid;gap:0;max-width:440px}
.one3 li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.one3 li:last-child{border-bottom:1px solid var(--line)}
.one3 .reg{width:18px;height:18px;color:var(--royal);flex:none}
.one3 b{font-size:clamp(16.5px,1.35vw,18.5px);font-weight:700;color:var(--ink)}
.btn .btn__cal,.btn:hover .btn__cal{width:17px;height:17px;transform:none}
.td-links.six{grid-template-columns:repeat(6,1fr)}.td-links span:nth-child(6)::after{animation-delay:.45s}
.td-systems:has(> .td-sys:nth-child(6)){grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:860px){.td-links.six{display:none}.td-systems:has(> .td-sys:nth-child(6)){grid-template-columns:repeat(2,minmax(0,1fr))}.td-systems:has(> .td-sys:nth-child(6)) .td-sys:last-child{grid-column:auto}}
/* ---- Platform: "The platform you need to achieve One Clear View." head; Satori lockup on the diagram (Nov 8) ---- */
.ocv-head__a{display:block;font-size:clamp(24px,2.4vw,34px);line-height:1.15;color:#fff;-webkit-text-fill-color:#fff}
.ocv-head__b{display:block;font-size:clamp(52px,6.4vw,92px);line-height:1;letter-spacing:-.02em;margin-top:6px}
.td-dia--logo{position:relative}
.td-dia__logo{position:absolute;top:clamp(16px,2vw,26px);left:clamp(18px,2.4vw,30px);--lk:clamp(14px,1.3vw,18px);color:#fff;opacity:.95}
@media (max-width:860px){.td-dia__logo{position:static;margin-bottom:10px}}
.ocv{text-align:center;max-width:900px;margin:0 auto clamp(28px,3.4vw,44px)}
.ocv .ocv-head__b{white-space:nowrap}
@media (max-width:520px){.ocv .ocv-head__b{white-space:normal}}
/* ---- Platform: "Satori delivers:" six capabilities; hover or tap a row for the full canon detail (Nov 8) ---- */
.cap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,3.4vw,48px);align-items:start;margin-top:clamp(24px,3vw,36px)}
.cap__list{display:grid;border-top:1px solid var(--line)}
.cap__row{border-bottom:1px solid var(--line)}
.cap__btn{all:unset;box-sizing:border-box;display:grid;grid-template-columns:14px minmax(0,1fr) 16px;gap:16px;align-items:start;width:100%;padding:18px 18px 18px 16px;cursor:pointer;border-radius:12px;position:relative;transition:background .25s}
.cap__btn:focus-visible{outline:2px solid var(--royal);outline-offset:2px}
.cap__dot{width:12px;height:12px;margin-top:6px;border-radius:50%;background:var(--cc);box-shadow:0 0 0 4px color-mix(in srgb,var(--cc) 18%,transparent)}
.cap__tx b{display:block;font-family:var(--f-display);font-weight:800;font-size:clamp(18px,1.5vw,21px);line-height:1.25;color:var(--ink)}
.cap__tx span{display:block;margin-top:3px;font-size:15px;line-height:1.45;color:var(--ink-3)}
.cap__chev{width:16px;height:16px;margin-top:6px;color:var(--ink-3);transition:transform .25s}
.cap__chev svg{width:16px;height:16px}
.cap__body p{font-size:15.5px;line-height:1.6;color:var(--ink-2)}
.cap__body p + p{margin-top:10px}
.cap__stage{display:none}
/* without script every detail shows under its row */
.cap:not(.js-caps) .cap__body{padding:0 18px 18px 46px}
.cap:not(.js-caps) .cap__chev{display:none}
@media (min-width:900px){
  .js-caps .cap__chev{display:none}
  .js-caps .cap__body{display:none}
  .js-caps .cap__btn[aria-expanded="true"]::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px}
  .js-caps .cap__stage{display:block}
  .cap__card{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(28px,3vw,40px);min-height:340px}
  .cap__rule{position:absolute;left:0;right:0;top:0;height:5px}
  .cap__txt p{font-size:17px;line-height:1.6}
  .cap__txt p + p{margin-top:14px}
  @keyframes capIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
}
@media (max-width:899px){
  .cap{grid-template-columns:1fr}
  .js-caps .cap__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease)}
  .js-caps .cap__body > *{overflow:hidden;min-height:0}
  .js-caps .cap__body{padding:0 18px 0 46px}
  .js-caps .cap__btn[aria-expanded="true"] + .cap__body{grid-template-rows:1fr;padding-bottom:18px}
  .js-caps .cap__btn[aria-expanded="true"] .cap__chev{transform:rotate(180deg)}
}
/* caps v2: the card follows the active row, joined by a ribbon (Nov 8) */
.cap{position:relative}
.cap__rib{display:none}
@media (min-width:900px){
  .cap{gap:clamp(56px,6vw,96px);align-items:stretch}
  .js-caps .cap__stage{position:relative;top:auto}
  .js-caps .cap__card{position:absolute;left:0;right:0;top:0;min-height:0}
  .js-caps .cap__rib{display:block;position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:2}
  .cap__txt{margin-top:0}
  .cap__card{padding-top:clamp(30px,3.2vw,42px)}
}
@media (prefers-reduced-motion:reduce){.js-caps .cap__card{transition:none}}
/* caps v3: ribbon spans the full row into the full card; changes fade, and the colour eases between items (Nov 8) */
@property --cap-c{syntax:'<color>';inherits:true;initial-value:#FF6E32}
.cap{--cap-c:#FF6E32;transition:--cap-c .45s ease}
@media (min-width:900px){
  .js-caps .cap__card{transition:opacity .17s ease;--cc:var(--cap-c)}
  .js-caps .cap__rib{transition:opacity .17s ease}
  .cap.is-fading .cap__card,.cap.is-fading .cap__rib{opacity:0}
  .cap__rib path{fill:url(#capG);opacity:1}
  .cap__rib .s0{stop-color:var(--cap-c);stop-opacity:.32}
  .cap__rib .s1{stop-color:var(--cap-c);stop-opacity:.5}
  .cap__rib .s2{stop-color:#1F1677;stop-opacity:1}
  .js-caps .cap__btn[aria-expanded="true"]{background:color-mix(in srgb,var(--cap-c) 14%,#fff)}
  .js-caps .cap__btn[aria-expanded="true"]::before{background:var(--cap-c)}
  .cap__rule{background:linear-gradient(90deg,var(--cap-c),color-mix(in srgb,var(--cap-c) 40%,#8443FF))}
}
/* caps v4: the ribbon is the item's own colour, solid; the colour travels the gradient from item to item; the card stays indigo (Nov 8) */
@media (min-width:900px){
  .cap__rib .s0,.cap__rib .s1,.cap__rib .s2{stop-color:var(--cap-c);stop-opacity:.92}
}
/* caps v5: a white card ringed in the item's colour, so the ribbon flows into its border (Nov 8) */
@media (min-width:900px){
  .cap__card{background:#fff;color:var(--ink);border:2.5px solid var(--cap-c);box-shadow:0 30px 60px -40px color-mix(in srgb,var(--cap-c) 55%,transparent)}
  .cap__rule{display:none}
  .cap__txt p{color:var(--ink-2)}
  .cap__txt p:first-child{color:var(--ink);font-weight:500}
}
/* ---- Platform: Satori Stewards leads its section as a lockup; the horsepower line becomes the subhead (Nov 8) ---- */
.st-head{margin:0;line-height:1}
.lock--stew{--lk:clamp(34px,3.9vw,54px);color:#fff;white-space:normal;flex-wrap:wrap;row-gap:8px}
.st-sub{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,2.3vw,32px);line-height:1.15;color:#fff;margin-top:clamp(12px,1.4vw,18px)}
/* Stewards descriptor: lighter and about 80% of the Satori wordmark, so Satori carries the weight (trial, Nov 8) */
/* Stewards lockup, option C (John, Nov 8): Manrope Light at the height of the Satori wordmark, on the wordmark's baseline */
.lock.lock--stew{display:inline;white-space:nowrap;line-height:1}
.lock--stew img{display:inline;vertical-align:baseline;max-width:none}
.lock--stew .m{height:calc(var(--lk)*1.42);width:auto;vertical-align:calc(var(--lk)*-.24)}
.lock--stew .w{height:var(--lk);width:auto;margin-left:calc(var(--lk)*.32)}
.lock--stew .g{position:static;top:auto;font-family:var(--f-logo);font-weight:300;font-size:var(--lk);letter-spacing:0;opacity:1;margin-left:calc(var(--lk)*.3)}
@media (max-width:420px){.lock--stew{--lk:30px}}
/* ---- Platform: Clear Start as on /messaging/: a rail of five stages beside the stage cards; gates check off as you pass (Nov 8) ---- */
.cs-subhead{font-family:var(--f-display);font-weight:700;font-size:clamp(19px,1.7vw,23px);line-height:1.3;color:var(--royal);margin-top:10px}
.csx{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start;margin-top:clamp(28px,3.4vw,44px)}
.csx__rail{position:sticky;top:110px}
.csx__rh{font-family:var(--f-display);font-weight:800;font-size:18px;color:var(--ink);margin-bottom:16px}
.csx__list{position:relative;display:grid;gap:4px}
.csx__list::before{content:"";position:absolute;left:17px;top:18px;bottom:18px;width:2px;background:var(--line-2,rgba(51,36,176,.18))}
.csx__list::after{content:"";position:absolute;left:17px;top:18px;width:2px;height:var(--prog,0%);max-height:calc(100% - 36px);background:linear-gradient(180deg,var(--orange),var(--pink),var(--violet));transition:height .4s var(--ease)}
.csx__list li{position:relative}
.csx__list a{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;align-items:center;padding:6px 0;color:inherit;text-decoration:none}
.csx__list b{grid-row:span 2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-weight:800;font-size:15px;color:var(--royal);background:var(--white);border:2px solid rgba(51,36,176,.3);position:relative;z-index:1;transition:background .3s,color .3s,border-color .3s,box-shadow .3s}
.csx__list span{font-weight:700;font-size:15.5px;color:var(--ink)}
.csx__list small{font-size:12.5px;line-height:1.3;color:var(--ink-3)}
.csx__list li.is-done b{border-color:var(--pink);color:var(--pink)}
.csx__list li.is-on b{background:linear-gradient(135deg,var(--orange),var(--pink));border-color:transparent;color:#fff;box-shadow:0 0 0 5px rgba(255,92,72,.15)}
.csx__list li.rep::after{content:"";position:absolute;right:-12px;top:0;bottom:0;border-right:1.5px dashed rgba(51,36,176,.35)}
.csx__rep{display:flex;gap:10px;align-items:center;margin-top:14px;font-size:13.5px;line-height:1.35;color:var(--royal);font-weight:600}
.csx__rep span{flex:none;width:22px;border-top:1.5px dashed rgba(51,36,176,.5)}
.csx__stages{display:grid;gap:18px}
.scx{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);overflow:hidden;box-shadow:0 30px 60px -50px rgba(20,17,58,.4);scroll-margin-top:120px}
.scx::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--orange),var(--pink),var(--violet));opacity:.85}
.scx__n{padding:clamp(22px,2.4vw,30px) 0 0 clamp(22px,2.4vw,30px);font-family:var(--f-display);font-weight:800;font-size:clamp(52px,5vw,72px);line-height:.9;background:linear-gradient(160deg,var(--orange),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.scx__main{padding:clamp(22px,2.4vw,30px) clamp(22px,2.6vw,34px) clamp(18px,2vw,24px) clamp(18px,2vw,26px)}
.scx__top{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}
.scx__top h3{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,2.4vw,34px);line-height:1.05}
.scx__time{font-size:13.5px;font-weight:700;padding:6px 12px;border-radius:999px;background:var(--paper-2);color:var(--royal)}
.scx__what{margin-top:12px;font-size:16.5px;line-height:1.6;color:var(--ink-2)}
.scx__deliv{margin-top:16px}
.scx__lab{display:block;font-size:13px;font-weight:700;color:var(--ink-3);margin-bottom:8px}
.scx__deliv ul{display:grid;gap:7px}
.scx__deliv li{position:relative;padding-left:26px;font-size:15px;line-height:1.45;color:var(--ink-2)}
.scx__deliv li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--pink)}
.scx__deliv li::after{content:"";position:absolute;left:5px;top:7px;width:6px;height:3.5px;border-left:1.6px solid var(--pink);border-bottom:1.6px solid var(--pink);transform:rotate(-45deg)}
.scx__gate{grid-column:1 / -1;display:flex;gap:14px;align-items:center;padding:16px clamp(22px,2.4vw,30px);background:linear-gradient(90deg,#FFF1EC,#F4EFFF);border-top:1px solid var(--line)}
.scx__gic{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid rgba(255,60,114,.45);display:grid;place-items:center;transition:background .35s,border-color .35s}
.scx__gic::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px);opacity:0;transition:opacity .3s}
.scx.is-passed .scx__gic{background:linear-gradient(135deg,var(--orange),var(--pink));border-color:transparent}
.scx.is-passed .scx__gic::after{opacity:1}
.scx__glab{display:block;font-size:12.5px;font-weight:700;color:var(--pink)}
.scx__gate p{font-size:15px;font-weight:600;color:var(--ink);line-height:1.4}
.scx-end{display:flex;gap:16px;align-items:center;padding:20px clamp(22px,2.4vw,30px);border-radius:var(--r-lg);background:linear-gradient(135deg,#1C1470,#3324B0);color:#fff}
.scx-end__ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.12)}
.scx-end__ic img{height:24px;width:auto}
.scx-end p{font-size:16.5px;font-weight:600;line-height:1.45}
@media (max-width:900px){.csx{grid-template-columns:1fr}.csx__rail{display:none}.scx__n{font-size:44px;padding:20px 0 0 18px}}
.csx__k{display:block;font-size:clamp(26px,2.4vw,32px);line-height:1.1;margin-bottom:2px}
/* ---- Platform diagram: the three elements are links, with a resident Learn more (Nov 8) ---- */
a.td-el{display:flex;flex-direction:column;color:inherit;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s,background .25s}
a.td-el .more{flex:1}
.td-learn{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:700;color:#fff;border:1px solid rgba(220,212,255,.45);background:rgba(255,255,255,.04);transition:background .25s,border-color .25s,color .25s}
.td-learn svg{width:16px;height:16px;transition:transform .2s var(--ease)}
a.td-el:hover,a.td-el:focus-visible{transform:translateY(-4px);border-color:rgba(220,212,255,.6);background:color-mix(in srgb,var(--td-card-solid) 82%,#8443FF);box-shadow:0 18px 40px -18px rgba(132,67,255,.75),0 0 0 1px rgba(220,212,255,.25)}
a.td-el.gov:hover,a.td-el.gov:focus-visible{box-shadow:0 18px 40px -18px rgba(255,92,72,.7),0 0 0 1px rgba(255,201,168,.35)}
a.td-el:hover .td-learn,a.td-el:focus-visible .td-learn{background:#fff;border-color:#fff;color:var(--royal)}
a.td-el:hover .td-learn svg{transform:translateX(3px)}
a.td-el:focus-visible{outline:2px solid #FFC9A8;outline-offset:3px}
a.td-el:hover,a.td-el:focus-visible{border-top-color:var(--td-satori-b)}a.td-el.gov:hover,a.td-el.gov:focus-visible{border-top-color:var(--td-coral)}
/* Clear Start on phones: stage cards open in place, one at a time (Nov 8) */
.scx__tog{display:none}
@media (max-width:900px){
  .js-csx .scx__top{cursor:pointer;flex-wrap:nowrap}
  .js-csx .scx__top h3{flex:1}
  .js-csx .scx__tog{all:unset;display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--paper-2);color:var(--royal);cursor:pointer}
  .js-csx .scx__tog svg{width:14px;height:14px;transition:transform .25s}
  .js-csx .scx.is-open .scx__tog svg{transform:rotate(180deg)}
  .js-csx .scx:not(.is-open) .scx__what,.js-csx .scx:not(.is-open) .scx__deliv,.js-csx .scx:not(.is-open) .scx__gate{display:none}
  .js-csx .scx:not(.is-open) .scx__main{padding-bottom:20px}
  .js-csx .scx:not(.is-open) .scx__n{padding-bottom:16px}
  .js-csx .scx.is-open .scx__what,.js-csx .scx.is-open .scx__deliv{animation:capIn .35s var(--ease) both}
  .js-csx .csx__stages{gap:12px}
}
@media (max-width:900px){
  .js-csx .scx__top{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center}
  .js-csx .scx__top h3{grid-column:1;grid-row:1}
  .js-csx .scx__time{grid-column:1;grid-row:2;justify-self:start;background:none;padding:0;font-size:13.5px;font-weight:600;color:var(--royal)}
  .js-csx .scx__tog{grid-column:2;grid-row:1 / span 2}
}
.csx__repm{display:none}
@media (max-width:900px){.csx__repm{display:flex;gap:10px;align-items:center;font-size:13.5px;font-weight:600;color:var(--royal)}.csx__repm span{flex:none;width:22px;border-top:1.5px dashed rgba(51,36,176,.5)}}
/* ---- Catalogue: use cases by clinical domain (from Commercial Catalog V25.1; no interface shown) (Nov 8) ---- */
.cx{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(18px,2.6vw,36px);margin-top:clamp(24px,3vw,36px);align-items:start}
.cx__tabs{display:grid;gap:6px}
.cx__tab{all:unset;box-sizing:border-box;display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:center;padding:13px 16px;border-radius:12px;border:1px solid var(--line);background:var(--white);cursor:pointer;transition:background .25s,border-color .25s,box-shadow .25s}
.cx__tab:focus-visible{outline:2px solid var(--royal);outline-offset:2px}
.cx__dot{width:12px;height:12px;border-radius:50%;background:var(--dc)}
.cx__tab b{font-family:var(--f-display);font-weight:800;font-size:18px;color:var(--ink)}
.cx__n{font-size:13px;font-weight:700;color:var(--ink-3);min-width:22px;text-align:right}
.cx__tab:hover{border-color:color-mix(in srgb,var(--dc) 45%,var(--line))}
.cx__tab[aria-selected="true"]{background:color-mix(in srgb,var(--dc) 11%,#fff);border-color:var(--dc);box-shadow:inset 3px 0 0 var(--dc)}
.cx__panel{border-radius:var(--r-lg);border:2px solid var(--dc);background:#fff;padding:clamp(20px,2.4vw,30px);animation:capIn .35s var(--ease) both}
.cx__ph{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.cx__ph b{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,2.2vw,30px);color:var(--ink)}
.cx__ph span{font-size:14px;font-weight:700;color:var(--dc)}
.cx__list li{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line)}
.cx__uc{font-size:16.5px;font-weight:600;color:var(--ink);line-height:1.35}
.cx__tags{display:flex;gap:6px;flex-wrap:wrap}
.cx__mod,.cx__out{font-size:12.5px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.cx__mod{background:var(--paper-2);color:var(--royal)}
.cx__out{background:color-mix(in srgb,var(--dc) 12%,#fff);color:color-mix(in srgb,var(--dc) 75%,#14113A)}
.cx__note{margin-top:16px;font-size:13.5px;line-height:1.5;color:var(--ink-3);max-width:760px}
@media (max-width:860px){.cx{grid-template-columns:1fr}.cx__tabs{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.cx__tab{grid-template-columns:10px auto auto;padding:10px 14px}.cx__tab b{font-size:16px}}
/* ---- element pages: a miniature platform diagram marks where you are (Nov 8) ---- */
.mp{border-radius:20px;padding:clamp(16px,2vw,24px);background:linear-gradient(160deg,#1C1470,#2E21A6);display:grid;gap:10px;box-shadow:0 40px 80px -55px rgba(20,17,58,.7)}
.mp a{color:inherit;text-decoration:none}
.mp-stew,.mp-el{display:grid;gap:4px;border-radius:12px;padding:14px 16px;color:#fff;transition:transform .25s var(--ease),background .25s,border-color .25s,box-shadow .25s}
.mp-stew{border:1px dashed rgba(220,212,255,.4);grid-template-columns:auto 1fr auto;align-items:center;gap:6px 16px}
.lock--mp{--lk:16px;color:#fff}
.mp-els{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mp-el{background:rgba(255,255,255,.06);border:1px solid rgba(220,212,255,.22);border-top:3px solid #7B5CFF}
.mp-el:nth-child(3){border-top-color:#FF5C48}
.mp-el b{font-family:var(--f-display);font-size:17px;font-weight:800}
.mp-line{font-size:13.5px;line-height:1.4;color:rgba(235,231,255,.78)}
.mp-go{margin-top:4px;display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:#FFC9A8}
.mp-go svg{width:14px;height:14px}
a.mp-stew:hover,a.mp-el:hover,.mp a:focus-visible{transform:translateY(-3px);box-shadow:0 14px 30px -16px rgba(132,67,255,.9)}
a.mp-el:hover{background:rgba(255,255,255,.12);border-color:rgba(220,212,255,.55);border-top-color:inherit}
.mp-el.is-here{background:#fff;color:var(--ink);border:2px solid #FFC9A8;box-shadow:0 0 0 6px rgba(255,201,168,.18)}
.mp-el.is-here .mp-line{color:var(--ink-3)}
.mp-here{margin-top:4px;display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:#D0225A}
.mp-here .reg{width:16px;height:16px;color:var(--pink)}
.mp-cs{margin-top:16px}
@media (max-width:760px){.mp-els{grid-template-columns:1fr}.mp-stew{grid-template-columns:1fr}}
.mp-stew b,.mp-el b{color:#fff}.mp-el.is-here b{color:var(--ink)}
/* Catalogue explorer on the royal ground (Nov 8) */
.cx-sec .cx__tab{background:rgba(255,255,255,.06);border-color:rgba(220,212,255,.22)}
.cx-sec .cx__tab b{color:#fff}
.cx-sec .cx__n{color:rgba(235,231,255,.7)}
.cx-sec .cx__tab:hover{border-color:color-mix(in srgb,var(--dc) 60%,rgba(220,212,255,.3));background:rgba(255,255,255,.1)}
.cx-sec .cx__tab[aria-selected="true"]{background:#fff;border-color:var(--dc)}
.cx-sec .cx__tab[aria-selected="true"] b{color:var(--ink)}
.cx-sec .cx__tab[aria-selected="true"] .cx__n{color:var(--ink-3)}
.cx-sec .cx__panel{box-shadow:0 40px 80px -50px rgba(0,0,0,.6)}
.cx-sec .cx__note{color:rgba(235,231,255,.72)}
.cx-sec{padding-bottom:clamp(56px,6vw,84px)}
.cat-how{padding-top:clamp(48px,5vw,72px)}
.btns.mp-cs{margin-top:24px}#a-h{scroll-margin-top:120px}
.credit{display:block;margin-top:2px;font-size:11.5px;opacity:.65}

/* ---- product hero: the seeking mark lands on the image's registration mark (View, Nov 8) ---- */
.seek-wait .hero__seek{width:24px}
.seek-wait .anno{opacity:1}
.seek-wait .anno .reg,.seek-wait .anno .ring{opacity:0}
.seek-wait .anno__l,.seek-wait .anno__t{opacity:0;transition:opacity .6s ease .45s}
.seek-wait.is-found .anno .reg,.seek-wait.is-found .anno .ring{opacity:1}
.seek-wait.is-found .anno .anno__l{opacity:.85}.seek-wait.is-found .anno .anno__t{opacity:1}
.seek-wait .cv__burst svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;max-width:none;filter:drop-shadow(0 0 3px rgba(255,176,137,.9))}
.seek-wait.is-found .cv__burst line{animation:cvRay 1s cubic-bezier(.15,.7,.25,1) both}
.seek-wait.is-found .cv__burst circle{animation:cvRing 1.1s cubic-bezier(.15,.7,.25,1) both}
/* ---- Satori lockup standard (Nov 8): every product name follows the Stewards lockup, Manrope Light at the
   wordmark's height, sitting on the wordmark's baseline ---- */
.lock{gap:calc(var(--lk,22px)*.31)}
.lock .g{font-family:var(--f-logo);font-weight:300;font-size:var(--lk,22px);letter-spacing:0;line-height:1;position:relative;top:calc(var(--lk,22px)*.117)}
.lock--prod{--lk:clamp(28px,2.7vw,36px)}
@media (max-width:420px){.lock--prod{--lk:26px}}

/* Governance hero: the seeking mark lands on the focus frame's mark (Nov 8) */
.seek-wait .focus__f svg{opacity:0!important;transition:none}
.seek-wait.is-found .focus__f svg{opacity:1!important;transform:none}
.focus__f > .cv__burst{left:auto;right:0;top:0;transform:translate(50%,-50%)}

/* ---- Governance: the Satori Governance Cycle beside the referee story, as on the RSNA page (Nov 8) ---- */
.evidence--2{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
.gvc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(36px,5vw,80px);align-items:center}
.gvc .lede{margin-top:18px}
.gvc__pts{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:18px}
.gvc__pts li{border-left:2px solid #FF3C72;padding:2px 0 2px 18px;display:grid;gap:4px}
.gvc__pts b{font-size:17px;color:#fff}
.gvc__pts span{font-size:15px;line-height:1.5;color:var(--on-night-3)}
.gvc .td-cyc__lock{margin:0 0 22px}
@media (max-width:900px){.gvc{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px){.evidence--2{grid-template-columns:minmax(0,1fr)}}

/* ---- Solutions overview: each card leads with the buyer's own words (Nov 8) ---- */
/* two organization links: label on its own line, links stacked (Nov 8) */
span.nav__link{cursor:pointer}

/* what-we-hear sections: the two column headings are the section's headline (Nov 8) */
.wwh__hd{font-size:inherit;padding:0 6px 10px;align-items:end}
.wwh__h{font-family:var(--f-display);font-weight:800;font-size:clamp(22px,2.2vw,30px);line-height:1.12;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.wwh__hd .wwh__h--r{grid-column:3;color:var(--royal)}
@media (max-width:900px){.wwh__hd{display:block}.wwh__hd .wwh__h--r{display:none}}
.wwh__hd{padding-left:0;padding-right:0}

/* ---- Radiologists hero: the frame's four corners close in on one study on the reader's screen, the room dims
   around it, and the mark locks on. One clear view, without lines (Nov 8) ---- */
.ph-cvg{position:relative;overflow:hidden}
.cvg{position:absolute;inset:0;pointer-events:none}
.cvg__b{position:absolute;width:18px;height:18px;border:0 solid var(--peach);filter:drop-shadow(0 0 4px rgba(255,176,137,.6))}
.cvg__b.tl{left:var(--x);top:var(--y);border-width:2px 0 0 2px;animation:cvgTL 1.9s cubic-bezier(.65,0,.2,1) .8s both}
.cvg__b.tr{left:calc(var(--x) + var(--w));top:var(--y);transform:translateX(-100%);border-width:2px 2px 0 0;animation:cvgTR 1.9s cubic-bezier(.65,0,.2,1) .8s both}
.cvg__b.bl{left:var(--x);top:calc(var(--y) + var(--h));transform:translateY(-100%);border-width:0 0 2px 2px;animation:cvgBL 1.9s cubic-bezier(.65,0,.2,1) .8s both}
.cvg__b.br{left:calc(var(--x) + var(--w));top:calc(var(--y) + var(--h));transform:translate(-100%,-100%);border-width:0 2px 2px 0;animation:cvgBR 1.9s cubic-bezier(.65,0,.2,1) .8s both}
@keyframes cvgTL{from{left:3.5%;top:4.5%}}
@keyframes cvgTR{from{left:96.5%;top:4.5%}}
@keyframes cvgBL{from{left:3.5%;top:95.5%}}
@keyframes cvgBR{from{left:96.5%;top:95.5%}}
.cvg__shade{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);border-radius:3px;box-shadow:0 0 0 2000px rgba(12,6,70,.5);animation:cvgFade 1.2s ease 2.4s both}
.cvg__mk{position:absolute;left:var(--mx);top:var(--my);width:24px;height:24px;margin:-12px 0 0 -12px;color:#FFF3EA;max-width:none;filter:drop-shadow(0 0 1.2px rgba(18,10,92,.95)) drop-shadow(0 0 6px rgba(255,176,137,.8));animation:cvgMark .9s cubic-bezier(.2,.7,.2,1) 2.55s both}
@keyframes cvgFade{from{opacity:0}}
@keyframes cvgMark{from{opacity:0;transform:scale(1.8)}}
@media (prefers-reduced-motion:reduce){.cvg *{animation:none!important}}

/* ---- Radiologists: overrule the AI with confidence (Nov 8) ---- */
.jud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:clamp(26px,3vw,40px)}
.jud__c{padding:22px 22px 24px;border-radius:14px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--royal)}
.jud__c h3{font-size:19px;font-weight:800;line-height:1.2}
.jud__c p{margin-top:8px;font-size:15px;line-height:1.5;color:var(--ink-2)}
@media (max-width:1000px){.jud{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.jud{grid-template-columns:minmax(0,1fr)}}

/* ---- Hospitals: community and academic, side by side (Nov 8) ---- */
.hks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2vw,28px);margin-top:clamp(26px,3vw,40px)}
.hk{padding:clamp(24px,2.6vw,34px);border-radius:18px;background:rgba(17,11,71,.45);border:1px solid var(--night-line);border-top:2px solid var(--peach)}
.hk h3{font-size:clamp(21px,2vw,26px);font-weight:800;line-height:1.15;color:#fff}
.hk__lead{margin-top:12px;font-size:16.5px;line-height:1.55;color:var(--on-night-2)}
.hk__list{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:12px}
.hk__list li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.5;color:var(--on-night-2)}
.hk__list li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;background:var(--peach)}
.hk__close{margin-top:20px;padding-top:16px;border-top:1px solid var(--night-line);font-weight:700;font-size:16px;color:#fff}
@media (max-width:860px){.hks{grid-template-columns:minmax(0,1fr)}}
.hks--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:980px){.hks--3{grid-template-columns:minmax(0,1fr)}}

/* ---- Imaging centers hero: image registration. The same study arrives as three misaligned copies, as if from three
   different sites, and slides into register: one sharp image, then the mark locks on (Nov 8) ---- */
.rg .scan__img img{position:absolute;inset:0}
.rg .scan__img{position:relative}
.rg .scan__img .rg-base{position:relative;animation:rgBase 2.2s cubic-bezier(.6,0,.2,1) .5s both}
.rg-ghost{mix-blend-mode:screen;pointer-events:none;opacity:0;animation:rgIn 2.2s cubic-bezier(.6,0,.2,1) .5s both}
.rg-ghost.g1{--t:translate(-7%,4%) rotate(-4deg) scale(1.05);filter:hue-rotate(55deg) saturate(1.2)}
.rg-ghost.g2{--t:translate(6%,-5%) rotate(3deg) scale(.96);filter:hue-rotate(-50deg) saturate(1.2)}
.rg-ghost.g3{--t:translate(3%,6%) rotate(-1.5deg) scale(1.08);filter:hue-rotate(150deg) saturate(.9)}
@keyframes rgIn{0%{opacity:.55;transform:var(--t)}75%{opacity:.4;transform:none}100%{opacity:0;transform:none}}
@keyframes rgBase{0%{opacity:.35;filter:blur(3px)}70%{opacity:1;filter:blur(0)}100%{opacity:1;filter:none}}
.rg .focus__f svg{transition-delay:2.4s}
@media (prefers-reduced-motion:reduce){.rg-ghost{display:none}.rg .scan__img .rg-base{animation:none}}
/* ==== About (Nov 8): mission first, the founder's story, then the people. More editorial than the product pages ==== */
.ab-hero{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(70% 90% at 80% 110%,rgba(255,60,114,.32),transparent 60%),radial-gradient(60% 80% at 10% -10%,rgba(132,67,255,.45),transparent 60%),var(--night);color:#fff}
.ab-h1{font-family:var(--f-display);font-weight:800;font-size:clamp(58px,10.5vw,152px);line-height:.92;letter-spacing:-.035em;max-width:9ch}
@keyframes abFocus{0%{filter:blur(18px);opacity:.15;transform:scale(1.04)}60%{opacity:1}100%{filter:blur(0);opacity:1;transform:none}}
.ab-lede{margin-top:clamp(28px,3vw,40px);max-width:56ch;font-size:clamp(18px,1.6vw,22px);line-height:1.55;color:var(--on-night-2)}
@keyframes abMk{from{opacity:0;transform:translateY(-50%) scale(1.3) rotate(-30deg)}}
.ab-why__grid{display:grid;gap:clamp(30px,5vw,80px);align-items:start}
.ab-belief{font-family:var(--f-display);font-weight:700;font-size:clamp(20px,1.8vw,24px);line-height:1.35;color:var(--ink);border-left:3px solid var(--pink,#FF3C72);padding-left:20px}
.ab-story__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,5vw,80px);align-items:start}
.ab-photo{margin:0;position:sticky;top:110px}
.ab-photo img{width:100%;height:auto;border-radius:6px;box-shadow:0 30px 70px -35px rgba(20,17,58,.55);transform:rotate(-1.5deg);border:10px solid #fff;outline:1px solid var(--line)}
.ab-photo figcaption{margin-top:16px;font-size:14px;color:var(--ink-3);text-align:center}
.ab-letter{max-width:62ch}
.ab-letter p{margin-top:18px;font-size:clamp(17px,1.35vw,19px);line-height:1.7;color:var(--ink-2)}
.ab-letter h2{margin-bottom:6px}
.ab-gap{grid-template-columns:auto 1fr auto;align-items:center;gap:14px;font-size:13px;font-weight:600;color:var(--ink-3)}
.ab-gap span{display:flex;align-items:center;gap:8px;white-space:nowrap}
.ab-gap i{width:12px;height:12px;border-radius:50%;border:2px solid var(--royal);flex:none}
.ab-sig{display:flex;align-items:center;gap:14px;margin-top:28px}
.ab-sig img{border-radius:50%}
.ab-sig b{display:block}.ab-sig span{font-size:14px;color:var(--ink-3)}
.ab-name{margin-top:clamp(56px,7vw,96px);text-align:center;max-width:30ch;margin-inline:auto;font-family:var(--f-display);font-weight:800;font-size:clamp(26px,3vw,40px);line-height:1.15;letter-spacing:-.015em;color:var(--ink);text-wrap:balance}
.ab-vals{list-style:none;margin:clamp(28px,3vw,44px) 0 0;padding:0;display:grid;gap:0;counter-reset:v}
.ab-vals li{display:grid;gap:20px;align-items:baseline;padding:22px 0;border-top:1px solid var(--night-line);counter-increment:v}
.ab-vals li::before{font-family:var(--f-mono);font-size:13px;color:var(--peach)}
.ab-vals b{font-family:var(--f-display);font-size:clamp(22px,2.2vw,30px);font-weight:800;color:#fff}
.ab-vals span{font-size:17px;line-height:1.55;color:var(--on-night-2)}
.ab-ppl{display:grid;gap:clamp(18px,2vw,28px);margin-top:clamp(26px,3vw,40px)}
.ab-ppl--6{grid-template-columns:repeat(6,minmax(0,1fr))}
.ab-p{position:relative;text-align:center}
.ab-p img{width:min(100%,140px);height:auto;aspect-ratio:1;border-radius:50%;display:block;margin:0 auto 14px;box-shadow:0 18px 40px -22px rgba(20,17,58,.55)}
.ab-p--lg img{width:min(100%,200px)}
.ab-p b{display:block;font-size:16px;line-height:1.25}.ab-p--lg b{font-size:19px}
.ab-p span{display:block;margin-top:4px;font-size:13.5px;line-height:1.4;color:var(--ink-3)}
.ab-in{display:inline-grid;place-items:center;width:28px;height:28px;margin-top:10px;border-radius:7px;background:color-mix(in srgb,var(--royal) 9%,#fff);color:var(--royal);font-weight:800;font-size:13px;text-decoration:none}
.ab-in:hover{background:var(--royal);color:#fff}
.ab-sub{margin-top:clamp(56px,6vw,84px);font-size:clamp(22px,2.2vw,28px);font-weight:800}
.ab-subl{margin-top:6px;color:var(--ink-3)}
.ab-join__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,5vw,80px);align-items:start}
.ab-quote{margin:0;font-family:var(--f-display);font-weight:600;font-size:clamp(19px,1.7vw,23px);line-height:1.45;color:var(--ink)}
.ab-quote cite{display:block;margin-top:12px;font-style:normal;font-family:var(--f-body,inherit);font-size:14px;font-weight:600;color:var(--ink-3)}
.ab-bens{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.ab-bens li{padding:16px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}
.ab-bens b{font-size:16.5px}.ab-bens span{font-size:15px;color:var(--ink-2)}
@media (max-width:1000px){.ab-ppl--6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.ab-why__grid,.ab-story__grid,.ab-join__grid{grid-template-columns:minmax(0,1fr)}.ab-photo{position:static;max-width:420px}}
@media (max-width:600px){.ab-ppl--6{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-gap{font-size:12px}}

/* About, round 2 (Nov 8): the crowd comes into focus; two years told in months */
.ab-hero{padding:clamp(100px,11vw,160px) 0 clamp(70px,8vw,110px)}
.ab-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,60px);align-items:center}
@keyframes abCrowd{to{filter:blur(0);opacity:var(--o,.9)}}
.ab-why__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);margin-top:0}
.ab-gap{display:block;margin:30px 0 10px;padding:18px 20px 14px;border-radius:12px;background:var(--paper);border:1px solid var(--line)}
.ab-gap__t{display:block;font-family:var(--f-display);font-weight:800;font-size:clamp(26px,2.6vw,34px);letter-spacing:-.01em;color:var(--ink)}
.ab-gap__m{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:4px;margin-top:12px}
.ab-gap__m i{height:22px;border-radius:3px;background:var(--line-2);opacity:.45}
.ab-gap.in .ab-gap__m i{animation:abMonth .5s ease both}
.ab-gap__m i:nth-child(12n){height:22px}
@keyframes abMonth{to{background:var(--royal);opacity:1}}
.ab-sig img{width:96px;height:96px}
.ab-sig b{font-size:18px}
.ab-vals li{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr)}
.ab-vals li::before{content:none}
@media (max-width:860px){.ab-hero__grid{grid-template-columns:minmax(0,1fr)}.ab-vals li{grid-template-columns:minmax(0,1fr)}.ab-vals span{grid-column:1}}
.ab-gap.in .ab-gap__m i:nth-child(1){animation-delay:0.00s}.ab-gap.in .ab-gap__m i:nth-child(2){animation-delay:0.07s}.ab-gap.in .ab-gap__m i:nth-child(3){animation-delay:0.14s}.ab-gap.in .ab-gap__m i:nth-child(4){animation-delay:0.21s}.ab-gap.in .ab-gap__m i:nth-child(5){animation-delay:0.28s}.ab-gap.in .ab-gap__m i:nth-child(6){animation-delay:0.35s}.ab-gap.in .ab-gap__m i:nth-child(7){animation-delay:0.42s}.ab-gap.in .ab-gap__m i:nth-child(8){animation-delay:0.49s}.ab-gap.in .ab-gap__m i:nth-child(9){animation-delay:0.56s}.ab-gap.in .ab-gap__m i:nth-child(10){animation-delay:0.63s}.ab-gap.in .ab-gap__m i:nth-child(11){animation-delay:0.70s}.ab-gap.in .ab-gap__m i:nth-child(12){animation-delay:0.77s}.ab-gap.in .ab-gap__m i:nth-child(13){animation-delay:0.84s}.ab-gap.in .ab-gap__m i:nth-child(14){animation-delay:0.91s}.ab-gap.in .ab-gap__m i:nth-child(15){animation-delay:0.98s}.ab-gap.in .ab-gap__m i:nth-child(16){animation-delay:1.05s}.ab-gap.in .ab-gap__m i:nth-child(17){animation-delay:1.12s}.ab-gap.in .ab-gap__m i:nth-child(18){animation-delay:1.19s}.ab-gap.in .ab-gap__m i:nth-child(19){animation-delay:1.26s}.ab-gap.in .ab-gap__m i:nth-child(20){animation-delay:1.33s}.ab-gap.in .ab-gap__m i:nth-child(21){animation-delay:1.40s}.ab-gap.in .ab-gap__m i:nth-child(22){animation-delay:1.47s}.ab-gap.in .ab-gap__m i:nth-child(23){animation-delay:1.54s}.ab-gap.in .ab-gap__m i:nth-child(24){animation-delay:1.61s}

/* About round 3: a photograph that comes into focus; 24 months, first hollow, last red */
.ab-hph{margin:0;position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:0 50px 90px -45px rgba(10,5,60,.8);background:var(--night)}
.ab-hph img{width:100%;height:100%;object-fit:cover;object-position:45% 35%;animation:abPhoto 2.4s cubic-bezier(.2,.7,.1,1) .3s both}
@keyframes abPhoto{from{filter:blur(16px) saturate(.6);transform:scale(1.06)}to{filter:none;transform:none}}
.ab-gap__m i:first-child{background:transparent!important;border:2px solid var(--royal);opacity:1}
.ab-gap.in .ab-gap__m i:first-child{animation:none}
.ab-gap__m i:last-child{background:#E5233B}
@keyframes abLast{to{background:#E5233B;opacity:1}}
.ab-gap.in .ab-gap__m i:last-child{animation-name:abLast}
@media (prefers-reduced-motion:reduce){.ab-hph img{animation:none}}
.field .opt{font-weight:400;color:var(--ink-3)}

[hidden]{display:none!important}

.formcard .done p{color:var(--ink-2)}.formcard .done .tlink{color:var(--royal)}.formcard .done h2{color:var(--ink)}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.wwh--plain .wwh__q::before{content:none}.wwh--plain .wwh__q{padding-left:26px}
.ticks .pend{font-size:10px;vertical-align:1px}

/* ---------- Resources (Nov 8) ---------- */
.ranchor{position:relative;top:-120px;display:block;height:0}
.rsearch{position:relative;max-width:560px;margin-top:clamp(24px,3vw,36px)}
.rsearch svg{position:absolute;left:18px;top:50%;width:20px;height:20px;transform:translateY(-50%);fill:none;stroke:var(--on-night-3);stroke-width:1.8;stroke-linecap:round;pointer-events:none}
.rsearch input{width:100%;min-height:58px;padding:14px 18px 14px 50px;border-radius:999px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font:inherit;font-size:17px}
.rsearch input::placeholder{color:var(--on-night-3)}
.rsearch input:focus{outline:none;border-color:var(--peach);background:rgba(255,255,255,.12);box-shadow:0 0 0 4px rgba(255,201,168,.16)}
.rnext{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(20px,3vw,40px);align-items:center;padding:clamp(22px,2.6vw,32px);border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line);box-shadow:0 30px 60px -50px rgba(20,17,58,.5)}
.rnext__date{display:grid;place-items:center;text-align:center;min-width:132px;padding:16px 18px;border-radius:16px;background:var(--g-hl-day, linear-gradient(135deg,#FF6E32,#FF3C72 55%,#8443FF));color:#fff}
.rnext__date b{font-family:var(--f-display);font-size:30px;font-weight:800;line-height:1}
.rnext__date span{font-size:13px;margin-top:4px;opacity:.92}
.rnext__b p{margin-top:6px;color:var(--ink-2);font-size:16.5px}
.rnext .btns{margin:0;flex-wrap:nowrap}
.rtabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.rtab{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 18px;border-radius:999px;border:1.5px solid var(--line-2);background:var(--white);color:var(--ink-2);font:inherit;font-weight:600;font-size:15.5px;cursor:pointer}
.rtab span{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-3)}
.rtab:hover{border-color:var(--violet);color:var(--ink)}
.rtab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.rtab[aria-selected="true"] span{color:rgba(255,255,255,.7)}
.rtab:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(123,63,224,.25)}
.rcount{font-size:14px;color:var(--ink-3);margin-bottom:22px;min-height:20px}
.rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.rcard{display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:var(--white);border:1px solid var(--line);text-decoration:none;color:inherit;min-width:0;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.rcard:hover{transform:translateY(-3px);border-color:rgba(123,63,224,.35);box-shadow:0 30px 50px -40px rgba(20,17,58,.55)}
.rcard[hidden]{display:none}
.rchip{text-transform:none;letter-spacing:0;font-family:inherit}
.rcard__img{aspect-ratio:16/9;background:var(--night);overflow:hidden}
.rcard__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.rcard:hover .rcard__img img{transform:scale(1.03)}
.rcard__b{display:flex;flex-direction:column;gap:9px;padding:20px 22px 22px;flex:1}
.rcard__meta{font-size:13.5px;color:var(--ink-3)}
.rcard h3{font-size:19.5px;font-weight:700;line-height:1.28;letter-spacing:-.005em;color:var(--ink)}
.rcard p{font-size:15.5px;line-height:1.5;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.rchip{display:inline-flex;align-items:center;min-height:26px;padding:3px 11px;border-radius:999px;background:color-mix(in srgb,var(--royal) 8%,#fff);color:var(--royal);font-size:12.5px;font-weight:600}
.rchips--night{margin-top:18px}
.rchips--night .rchip{background:rgba(255,255,255,.1);color:var(--on-night-2)}
.rempty{padding:40px 0;font-size:17px;color:var(--ink-2)}
.rempty .tlink{background:none;border:0;font:inherit;font-weight:700;cursor:pointer;padding:0}
.rmore{display:flex;justify-content:center;margin-top:36px}
.rpress{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,4vw,64px);align-items:start}
.rpress .btns{margin-top:8px}
.rpress__bp{padding:clamp(22px,2.6vw,32px);border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line)}
.rpress__bp h3{font-size:18px;font-weight:700}
.rpress__bp p{margin:10px 0 14px;font-size:16px;line-height:1.6;color:var(--ink-2)}
.rpress__bp .tlink{background:none;border:0;font:inherit;font-weight:700;cursor:pointer;padding:0}
.rsub{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center}
.rsub__f{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.rsub__f .field input{min-height:56px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:#fff}
.rsub__f .field input::placeholder{color:var(--on-night-3)}
.rsub__f .btn{min-height:56px}
.rsub__f .fine{grid-column:1/-1;color:var(--on-night-3)}
.rsub__f .fine a{color:var(--on-night-2)}
.rsub .done h2{color:#fff}.rsub .done p{color:var(--on-night-2);margin-top:6px}
.art__h1{font-size:clamp(32px,4vw,52px);max-width:none;line-height:1.08}
.art__meta{margin-top:18px;color:var(--on-night-3);font-size:15px}
.art__dl{font-weight:700;color:var(--ink)}
.art__lead{margin:0 0 8px;overflow:hidden;background:var(--night)}
.art__lead img{width:100%;display:block}
.art__fig img{width:100%;border-radius:14px;border:1px solid var(--line)}
.article a{color:var(--royal);text-decoration:underline;text-underline-offset:3px}
.article h3{font-size:22px;margin-top:32px}
.article p{font-size:18.5px;line-height:1.7;color:var(--ink-2)}
.article ol{display:grid;gap:10px;padding-left:22px;list-style:decimal}
.article .rnote{font-size:13.5px;line-height:1.5}
.art__next{max-width:720px;margin:clamp(40px,5vw,64px) auto 0;padding:22px 26px;border-radius:16px;background:var(--paper);border:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between}
.art__next span{font-weight:700;color:var(--ink)}
.head--row{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:baseline;justify-content:space-between;max-width:none;margin-bottom:clamp(24px,3vw,36px)}
.evfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--line)}
.evfacts div{background:var(--white);padding:22px 24px}
.evfacts dt{font-size:13.5px;color:var(--ink-3)}
.evfacts dd{margin:6px 0 0;font-family:var(--f-display);font-weight:700;font-size:19px;color:var(--ink)}
.pplayer{display:flex;align-items:center;gap:14px;margin-top:26px;padding:12px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);max-width:620px}
.pplayer__btn{width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:15px;cursor:pointer}
.pplayer__bar{flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.18)}
.pplayer__t{font-family:var(--f-mono);font-size:12.5px;color:var(--on-night-2)}
.psubs{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.psub{padding:8px 14px;border-radius:999px;border:1.5px solid rgba(255,255,255,.28);color:#fff;text-decoration:none;font-weight:600;font-size:14px}
.pguest{display:flex;gap:16px;align-items:center;padding:18px;border-radius:16px;background:var(--paper);border:1px solid var(--line)}
.pguest__ph{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#2A1D9E,#8443FF)}
.pguest b{display:block}.pguest span{color:var(--ink-3);font-size:15px}
.pchap{list-style:none!important;padding:0!important}
.pchap li{display:grid;grid-template-columns:70px 1fr;gap:12px}
.pchap time{font-family:var(--f-mono);font-size:14px;color:var(--ink-3);padding-top:4px}
.ptrans{border:1px solid var(--line);border-radius:14px;padding:16px 20px}
.ptrans summary{cursor:pointer;font-weight:700;color:var(--ink)}
@media (max-width:980px){.rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.rnext{grid-template-columns:auto minmax(0,1fr)}.rnext .btns{grid-column:1/-1}.rpress,.rsub{grid-template-columns:minmax(0,1fr)}.evfacts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.rgrid{grid-template-columns:minmax(0,1fr)}.rnext{grid-template-columns:minmax(0,1fr)}.rnext__date{justify-self:start}.rnext .btns{flex-wrap:wrap}.rsub__f{grid-template-columns:minmax(0,1fr)}.rtabs{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}.rtab{flex:none}.evfacts{grid-template-columns:minmax(0,1fr)}}

.art__h1--long{font-size:clamp(28px,3vw,40px);line-height:1.15}
.art__lead img{max-height:400px;object-fit:cover}

/* Resources image system (Nov 8): one frame for every image, whatever its source.
   photo / graphic: real color, cover. mark: third-party mark in its own colors on a paper plate. card: brand title card. scan: brand ramp.
   The frame is the gradient keyline along the bottom edge; it is CSS, so any uploaded image gets it. */
.rcard__img,.art__lead{position:relative}
.rcard__img::after,.art__lead::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#FF6E32,#FF3C72 50%,#8443FF);pointer-events:none}
.rcard__img--mark,.art__lead--mark{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.rcard__img--mark img{object-fit:contain;padding:9% 18%}
.art__lead--mark img{object-fit:contain;max-height:360px;padding:40px 18%;width:100%}
.art__lead{border-radius:var(--r-lg)}

/* Menus without subtitles (Nov 8, Lior: subtitles only where they earn their place) */
.menu a.menu__plain{align-items:center;padding-block:9px}
.menu a.menu__plain .ic{grid-row:1}
.menu__rule{display:block;height:1px;margin:6px 12px;background:var(--night-line)}

.article{overflow-wrap:break-word}.article a{overflow-wrap:anywhere}
/* image credits on article covers (CC BY and public-domain sources) */
.art__credit{position:absolute;right:10px;bottom:12px;margin:0;padding:3px 8px;border-radius:4px;background:rgba(18,10,92,.62);color:#fff;font-size:11px;line-height:1.3;opacity:1;z-index:1}
.art__lead--scan{background:#120A5C}.art__lead--scan img{object-fit:contain;max-height:380px}
/* Platform menu: the overview link leads, set apart from the product facets */
.menu a.menu__lead{grid-template-columns:30px 1fr auto;background:linear-gradient(90deg,rgba(255,110,50,.14),rgba(132,67,255,.14));border:1px solid var(--night-line-2)}
.menu a.menu__lead:hover{background:linear-gradient(90deg,rgba(255,110,50,.22),rgba(132,67,255,.22))}
.menu a.menu__lead::after{content:"\2192";grid-row:1;color:var(--peach);font-weight:700;font-size:16px;transition:transform .15s}
.menu a.menu__lead:hover::after{transform:translateX(3px)}
@media (max-width:860px){.menu a.menu__lead{grid-template-columns:36px minmax(0,1fr) auto}}
/* Home: the Governance Cycle is desktop and tablet only; the Governance page carries it on phones */
@media (max-width:700px){.td-cyc--home{display:none}}
.drawer .drawer__top a.drawer__logo{display:flex;align-items:center;padding:6px 0;border:0;min-height:0;font-size:inherit}
/* Stewards lockup: the generic .lock .g nudge (later in this file) must not apply to the inline Stewards heading */
.lock.lock--stew .g{position:static;top:auto}
/* ---------- home news bar: event invitations and launches, one at a time, under the hero ---------- */
.newsbar{position:relative;z-index:3;margin-top:-56px}
.nb{position:relative;display:flex;align-items:center;gap:24px;min-height:118px;padding:20px 24px 20px 32px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 28px 60px -26px rgba(20,17,58,.45);overflow:hidden}
.nb::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#FF6E32,#FF3C72 50%,#8443FF)}
.nb__track{flex:1;display:grid;min-width:0}
.nb__item{grid-area:1/1;display:flex;align-items:center;gap:28px;min-width:0;opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease);visibility:hidden}
.nb__item.is-on{opacity:1;transform:none;visibility:visible}
/* event marks in their own colors on a white plate (Resources image system) */
.nb__logo{flex:none;display:grid;place-items:center;width:168px;height:78px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.nb__logo img{max-width:100%;max-height:100%;width:auto;height:auto;display:block}
.nb__logo:not(.nb__logo--rsna):not(.nb__logo--sat) img{height:30px}
.nb__logo--sat .lock{color:var(--ink)}
.nb__body{flex:1;min-width:0}
.nb__when{margin:0;font-family:"Barlow Condensed",var(--f-display);font-weight:700;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--royal)}
.nb__h{margin:4px 0 0;font-family:var(--f-display);font-weight:800;font-size:clamp(21px,1.9vw,27px);line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
.nb__cta{flex:none;white-space:nowrap}
.nb__cta svg{width:18px;height:18px}
.nb__cta--line{color:var(--royal);border-color:var(--line-2)}
.nb__ctl{flex:none;display:flex;flex-direction:column;align-items:center;gap:12px;padding-left:20px;border-left:1px solid var(--line)}
.nb__dots{display:flex;flex-direction:column;gap:6px}
.nb__dots button{width:8px;height:8px;padding:0;border:0;border-radius:4px;background:var(--line-2);cursor:pointer;transition:background .2s,height .2s}
.nb__dots button[aria-current="true"]{height:22px;background:var(--royal)}
.nb__dots button:focus-visible,.nb__pause:focus-visible{outline:2px solid var(--royal);outline-offset:3px}
.nb__pause{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink-2);cursor:pointer}
.nb__pause svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.nb__pause .i-play{display:none;fill:currentColor;stroke:none}
.nb.is-paused .nb__pause .i-pause{display:none}.nb.is-paused .nb__pause .i-play{display:block}
.nb__prog{position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#FF6E32,#FF3C72 50%,#8443FF);transform-origin:left;transform:scaleX(0)}
.nb.is-run .nb__prog{animation:nbProg var(--nb-t,7000ms) linear forwards}
.nb.is-paused .nb__prog,.nb.is-held .nb__prog{animation-play-state:paused}
@keyframes nbProg{to{transform:scaleX(1)}}
.nb--one .nb__ctl,.nb--one .nb__prog{display:none}
@media (max-width:1100px){.nb__logo{width:140px;height:68px}.nb__item{gap:20px}}
@media (max-width:860px){
  .newsbar{margin-top:-36px}
  .nb{flex-direction:column;align-items:stretch;gap:14px;padding:18px 18px 16px 24px}
  .nb__item{flex-direction:column;align-items:flex-start;gap:12px}
  .nb__logo{width:132px;height:58px;padding:10px 14px}
  .nb__logo:not(.nb__logo--rsna):not(.nb__logo--sat) img{height:24px}
  .nb__cta{width:100%}
  .nb__ctl{flex-direction:row;justify-content:space-between;border-left:0;padding-left:0}
  .nb__dots{flex-direction:row}
  .nb__dots button[aria-current="true"]{height:8px;width:22px}
}
@media (prefers-reduced-motion:reduce){.nb__item{transition:none;transform:none}.nb__prog{display:none}}
.ab-ppl--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:600px;margin-inline:auto}
@media (max-width:600px){.ab-ppl--2{grid-template-columns:minmax(0,1fr)}}
/* Home weight slider: short labels inside the blocks on phones, so the burden still reads at small sizes */
.wt__blk .s{display:none}
@media (max-width:760px){
  .wt .wt__stage .wt__blk{font-size:10.5px;padding:0 1px;letter-spacing:-.01em;text-overflow:clip}
  .wt__blk .l{display:none}.wt__blk .s{display:inline}
}
@media (max-width:360px){.wt .wt__stage .wt__blk{font-size:9.5px}}
/* the whole track takes the drag (pointer events), so touch works the same on every platform; the range input keeps keyboard and screen readers */
.wt__track{touch-action:pan-y;cursor:grab}
.wt__track.is-drag{cursor:grabbing}
.wt__range{pointer-events:none}
@media (max-width:760px){.wt .wt__stage .wt__blk .s{white-space:normal;line-height:1.05;hyphens:manual;overflow-wrap:normal}.wt .wt__stage .wt__blk{white-space:normal}}
.wt__tool--next .s{display:none}
@media (max-width:420px){.wt__tool--next .l{display:none}.wt__tool--next .s{display:inline}}
/* Satori Edge's connected systems: pills on wide screens, a plain two-column list on phones */
@media (max-width:760px){
  .edge-strip ul,.arch__sys,.td-systems,.td-systems:has(> .td-sys:nth-child(6)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px;justify-content:stretch;padding-top:12px;border-top:1px solid rgba(255,255,255,.22)}
  .edge-strip li,.arch__sys span,.td-sys{position:relative;padding:5px 0 5px 16px;border:0;border-radius:0;background:none;text-align:left;font-size:14px;font-weight:600;color:#fff;grid-column:auto!important}
  .edge-strip li::before,.arch__sys span::before,.td-sys::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:#FFC9A8}
  .arch__sys{margin-top:4px}
}
/* What we hear / what changes: on narrower screens the column headings collapse, so each card carries a small label */
.wwh__k{display:none}
@media (max-width:900px){
  .wwh__k{display:block;margin:0 0 6px;font-family:"Barlow Condensed",var(--f-display);font-weight:700;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;font-style:normal;line-height:1.2}
  .wwh__q .wwh__k{color:var(--ink-3)}
  .wwh__a .wwh__k{color:var(--royal)}
}

/* Nov 11 review fixes */
@media (max-width:360px){.wt__tool--next .s{font-size:8px;letter-spacing:-.02em}}
.ferr{margin-top:12px;font-size:14.5px;font-weight:600;color:#B42318}
.ferr:empty{display:none}
.rsub__f .ferr{color:#FFB4A8}
