/* ==================================================================== *
 * CURAELLE public site — shared stylesheet (landing + /security/).
 *
 * Design authority: Figma y6AZYarYzAGfvPjafXwufj
 *   50:18  Brand Style Guide v1.0   colour, iconography, button geometry
 *   51:2   Landing Page             composition, copy, display typography
 *   50:14..50:17  Key Visuals 1-4   every raster on this site is a crop of one
 *   50:11  Logo lockup              the mark and the wordmark are cut from it
 *   51:250 Continuum ribbon         the glass ribbon of the ecosystem band
 *
 * DISPLAY TYPE. The 51:2 text nodes set the hero and the editorial section
 * headings in a Regular-weight transitional serif (Figma font name
 * "Times New Roman"); the Brand Style Guide draws its "Editorial / Display"
 * specimen in the same serif character. That is the approved marketing face.
 * Inter stays the application / UI face. Liberation Serif (SIL OFL 1.1,
 * metric-compatible) is shipped only as the last source, so a device that has
 * the named face never downloads anything.
 *
 * MOTION. Everything is visible and complete without script and under
 * prefers-reduced-motion. `html.motion` is set by assets/site.js only when
 * script runs, IntersectionObserver exists and the visitor has not asked for
 * reduced motion; every animated start state is scoped to that class.
 * ==================================================================== */

@font-face{font-family:'Inter';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'CURAELLE Editorial';font-style:normal;font-weight:400;font-display:swap;
  src:local('Times New Roman'),local('TimesNewRomanPSMT'),local('Liberation Serif'),local('Tinos'),
      url('fonts/liberation-serif-regular.ttf') format('truetype');}

:root{
  --ink:#0F1B2D;            /* Curaelle Ink        17.28:1 on white */
  --ink-2:#33415A;          /* secondary text      10.27:1 */
  --ink-3:#56647C;          /* muted text           5.9:1 on Clinical White */
  --blue:#2B68FF;           /* Intelligence Blue, one step down: white on it 4.64:1 */
  --blue-text:#1B5CFF;      /* blue as text: 5.03:1 on Clinical White, 4.59:1 on Glacier */
  --blue-deep:#0049FE;
  --aqua:#00D1B2;           /* Signal Aqua, fills only */
  --aqua-text:#00796A;      /* Signal Aqua as text 5.3:1 */
  --glacier:#E6F2FA;
  --white:#F8FBFF;          /* Clinical White */
  --silver:#D9E1EA;         /* Silver / Mist */
  --line:#E4EBF3;
  --line-2:#CFDAE8;
  --glass:rgba(255,255,255,.72);

  --page:min(1320px,100% - 3rem);
  --header-h:68px;
  --r:12px;
  --r-lg:20px;
  --ease:cubic-bezier(.22,.61,.36,1);

  --f-display:'CURAELLE Editorial','Times New Roman',Times,'Liberation Serif',serif;
  --f-ui:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1.25rem)}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--f-ui);font-size:1.0625rem;
  line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:'cv11','ss01';overflow-x:clip}
img,svg{max-width:100%;display:block}
a{color:var(--blue-text)}
h1,h2,h3,h4,p,ul,ol{margin:0}
h1,h2,.display{font-family:var(--f-display);font-weight:400;letter-spacing:-.018em;line-height:1.08;color:var(--ink)}
h3{font-family:var(--f-ui);font-weight:600;letter-spacing:-.01em;line-height:1.25}
.wrap{width:var(--page);margin-inline:auto}

a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
.skip{position:absolute;inset-inline-start:-9999px;top:0;z-index:99;background:var(--ink);color:#fff;
  padding:.75rem 1.25rem;border-radius:0 0 var(--r) 0}
.skip:focus{inset-inline-start:0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.eyebrow{font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:0 0 1rem}
.lede{color:var(--ink-2);max-width:54ch}
.note{font-size:.875rem;color:var(--ink-3);max-width:76ch}

section{padding-block:clamp(3.25rem,6vw,5.5rem)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:1rem 4rem;align-items:end;
  margin-block-end:clamp(1.75rem,3vw,2.75rem)}
.sec-head h2{font-size:clamp(1.85rem,3.1vw,2.85rem);text-wrap:balance}
.sec-head .aside{color:var(--ink-2);font-size:1rem;max-width:44ch;padding-block-end:.3rem}
@media(max-width:60rem){.sec-head{grid-template-columns:minmax(0,1fr);align-items:start}}

/* ---------------------------------------------------------------- *
 * Buttons — 50:18 "UI elements": 12px radius, trailing arrow on primary
 * ---------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:46px;
  font-size:.9375rem;font-weight:500;padding:.7rem 1.35rem;border-radius:var(--r);text-decoration:none;
  border:1px solid transparent;cursor:pointer;font-family:inherit;
  transition:background-color .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),
    box-shadow .2s var(--ease),transform .2s var(--ease)}
.btn .arr{inline-size:1.05em;block-size:1.05em;flex:none;transition:transform .25s var(--ease)}
.btn:hover .arr,.link-arrow:hover .arr{transform:translateX(3px)}
.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue);
  box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 10px 24px -12px rgba(43,104,255,.75)}
.btn-primary:hover{background:var(--blue-deep);border-color:var(--blue-deep);
  box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 14px 28px -12px rgba(0,73,254,.8)}
.btn-ghost{background:rgba(255,255,255,.66);color:var(--blue-text);border-color:#BFD2F5;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue-deep);background:#fff}
/* Header and closing actions are pills in the approved frame (51:7, 51:30/51:33);
   the hero pair keeps the 12px rounded rectangle of 50:18. */
.btn-pill{border-radius:999px;padding-inline:1.5rem}
.btn:active{transform:translateY(1px)}
.link-arrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.9375rem;font-weight:500;
  color:var(--blue-text);text-decoration:none;min-height:44px}
.link-arrow .arr{inline-size:1em;block-size:1em;transition:transform .25s var(--ease)}
.link-arrow:hover{text-decoration:underline;text-underline-offset:.25em}

/* ---------------------------------------------------------------- *
 * Header
 * ---------------------------------------------------------------- */
.top{position:sticky;top:0;z-index:30;background:rgba(248,251,255,.72);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
  border-block-end:1px solid transparent;
  transition:background-color .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}
.top.is-scrolled{background:rgba(248,251,255,.92);border-block-end-color:var(--line);
  box-shadow:0 10px 30px -22px rgba(15,27,45,.35)}
html:not(.js) .top{border-block-end-color:var(--line)}
.top .wrap{display:flex;align-items:center;gap:1.25rem;min-height:var(--header-h);position:relative}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex:none;min-height:44px}
.brand .mark{inline-size:32px;block-size:auto}
.brand .wordmark{inline-size:116px;block-size:auto}
.nav{display:flex;gap:.25rem;margin-inline-start:1.25rem}
.nav a{font-size:.9rem;color:var(--ink-2);text-decoration:none;padding:.6rem .7rem;border-radius:8px;
  position:relative;transition:color .2s var(--ease),background-color .2s var(--ease)}
.nav a:hover{color:var(--ink);background:rgba(43,104,255,.07)}
.nav a[aria-current="true"]{color:var(--blue-text)}
.nav .nav-only-menu{display:none}
.top-cta{margin-inline-start:auto;display:flex;align-items:center;gap:.5rem;flex:none}
.top-cta .signin{font-size:.9rem;color:var(--ink-2);text-decoration:none;font-weight:500;padding:.6rem .7rem;border-radius:8px}
.top-cta .signin:hover{color:var(--blue-text)}
.top-cta .btn{min-height:44px;padding-block:.55rem;font-size:.9rem}
.top-cta .explore{display:none}
@media(min-width:86rem){.top-cta .explore{display:inline-flex}}
.nav-toggle{display:none;align-items:center;justify-content:center;inline-size:46px;block-size:46px;
  border:1px solid var(--line-2);border-radius:var(--r);background:rgba(255,255,255,.7);color:var(--ink);cursor:pointer}
.nav-toggle svg{inline-size:22px;block-size:22px}
.nav-toggle .x{display:none}
.nav-toggle[aria-expanded="true"] .x{display:block}
.nav-toggle[aria-expanded="true"] .bars{display:none}

@media(max-width:74.99rem){
  .top .wrap{gap:.75rem}
  .top-cta .signin{display:none}
  .js .nav-toggle{display:inline-flex;order:3}
  .js .nav{display:none;position:absolute;inset-block-start:calc(100% + 1px);inset-inline:-1.5rem;margin:0;
    flex-direction:column;gap:0;padding:.5rem 1.5rem 1.25rem;background:rgba(248,251,255,.98);
    border-block-end:1px solid var(--line);box-shadow:0 24px 40px -28px rgba(15,27,45,.4);
    max-block-size:calc(100vh - var(--header-h));max-block-size:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain}
  .js .nav.is-open{display:flex}
  .js .nav a{font-size:1.0625rem;padding:.95rem .25rem;border-radius:0;border-block-end:1px solid var(--line);min-height:48px}
  .js .nav .nav-only-menu{display:block}
  .js .nav a.nav-cta{margin-block-start:1rem;border:0;justify-content:center;color:#fff;background:var(--blue);border-radius:var(--r);text-align:center}
  /* Without script the menu cannot open, so the links stay in the document
     flow under the bar instead of disappearing. */
  html:not(.js) .top{position:static}
  html:not(.js) .top .wrap{flex-wrap:wrap;padding-block:.5rem}
  html:not(.js) .nav{order:4;inline-size:100%;margin:0;flex-wrap:wrap}
}
@media(max-width:26rem){
  .top-cta .btn{padding-inline:.9rem;font-size:.875rem}
  .top-cta .btn .arr{display:none}
  .brand .wordmark{inline-size:96px}
}
@media(max-width:21.5rem){.top-cta .btn{display:none}}

/* ---------------------------------------------------------------- *
 * 1. Hero — one luminous environment. The Key Visual is the right-hand
 *    side of the same field the headline sits in; its inline-start edge
 *    dissolves through a mask, so there is no card and no seam.
 * ---------------------------------------------------------------- */
.hero{position:relative;padding:0;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(90rem 40rem at 12% -10%,#fff 0%,rgba(255,255,255,0) 60%),
    linear-gradient(100deg,#F6FAFE 0%,#ECF4FB 46%,#DDEBF8 100%)}
.hero{--hero-h:clamp(34rem,44vw,43rem);--kv-w:calc(var(--hero-h) * 1.7768);
  --gutter:calc((100vw - min(1320px,100vw - 3rem)) / 2)}
.hero-in{position:relative;z-index:2;display:flex;align-items:center;
  min-block-size:var(--hero-h);padding-block:clamp(3rem,6vw,5rem)}
.hero-copy{max-inline-size:35rem}
.hero h1{font-size:clamp(2.55rem,4.35vw,4.25rem);line-height:1.05;letter-spacing:-.022em;text-wrap:balance}
.hero .lede{margin-block:1.4rem 1.9rem;font-size:1.0938rem;line-height:1.62;max-width:33rem}
.hero-actions{display:flex;gap:.875rem;flex-wrap:wrap}
.hero-foot{margin-block-start:1.6rem;font-size:.875rem;color:var(--ink-3)}
.hero-env{position:absolute;inset:0;z-index:1;pointer-events:none}
/* The Continuum sits between the copy column and the caption at every desktop
   width: the picture's right edge is tied to the content edge, not the viewport. */
.hero-kv{position:absolute;inset-block-start:0;inset-inline-end:calc(var(--gutter) - var(--kv-w) * .14);
  block-size:var(--hero-h);inline-size:var(--kv-w);max-width:none;object-fit:cover;
  -webkit-mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.4) 12%,#000 27%,#000 86%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.4) 12%,#000 27%,#000 86%,transparent 100%);
  transform-origin:50% 55%}
.hero-env::after{content:'';position:absolute;inset-inline:0;inset-block-end:0;block-size:18%;
  background:linear-gradient(to bottom,rgba(248,251,255,0),var(--white))}
.hero-sweep{position:absolute;inset-block:-20%;inset-inline-start:-30%;inline-size:26%;opacity:0;
  background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.55) 50%,rgba(255,255,255,0));
  transform:skewX(-14deg);mix-blend-mode:soft-light}
.hero-caption{position:absolute;z-index:2;inset-block-start:clamp(3rem,7vw,5.5rem);
  inset-inline-end:var(--gutter);text-align:start;
  font-size:.75rem;letter-spacing:.2em;line-height:1.9;color:var(--ink-2);text-transform:uppercase}
.hero-caption b{display:block;font-weight:600;color:var(--ink)}
.hero-caption .rule{display:block;block-size:1px;inline-size:34px;background:var(--ink-3);opacity:.55;margin-block:.85rem}

@media(max-width:74.99rem){
  .hero-in{min-block-size:0;padding-block:clamp(2.5rem,7vw,4rem) 1.5rem}
  .hero-copy{max-inline-size:40rem}
  .hero-env{position:relative;inset:auto;block-size:clamp(15rem,58vw,31rem)}
  .hero-kv{inset:0;inline-size:100%;block-size:100%;object-position:50% 42%;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%);
            mask-image:linear-gradient(to bottom,transparent 0,#000 24%)}
  .hero-caption{inset-block-start:26%;inset-inline-end:1.5rem;font-size:.6875rem}
}
@media(max-width:40rem){
  .hero h1{font-size:clamp(1.9rem,9.8vw,2.55rem)}
  .hero-caption{position:static;padding:0 1.5rem 1.75rem;margin-block-start:-.5rem;display:flex;gap:.75rem;align-items:center;line-height:1.5}
  .hero-caption b{display:inline}
  .hero-caption .rule,.hero-caption .second,.hero-caption br{display:none}
  .hero-caption b::after{content:'\00a0\00b7'}
  .hero-env{block-size:clamp(13rem,62vw,20rem)}
  .hero-actions .btn{flex:1 1 13rem}
}

/* ---------------------------------------------------------------- *
 * 2. The Continuum — one family, three operating scales.
 *    Base: the approved glass ribbon (Figma 51:250). Over it: a vector
 *    light trace and three glass discs sitting in the ribbon's lobes.
 * ---------------------------------------------------------------- */
.layer{background:var(--white);padding-block:clamp(2.5rem,5vw,4.5rem) clamp(2.5rem,4.5vw,4rem)}
.layer-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:2.5rem clamp(2rem,5vw,5rem);align-items:center}
.layer-grid h2{font-size:clamp(1.85rem,3.1vw,2.85rem);text-wrap:balance}
.layer-grid .lede{margin-block-start:1.25rem}
.continuum{position:relative;padding-inline:clamp(.25rem,2vw,1.5rem);margin:0;min-inline-size:0}
.continuum-stage{position:relative;aspect-ratio:391/80}
.continuum-ribbon{position:absolute;inset:0;inline-size:100%;block-size:100%;
  filter:drop-shadow(0 14px 22px rgba(43,104,255,.12))}
.continuum-trace{position:absolute;inset:0;inline-size:100%;block-size:100%;overflow:visible}
.continuum-trace path{fill:none;stroke-linecap:round}
.continuum-trace .glow{stroke:url(#traceGrad);stroke-width:1.1;opacity:.75}
.continuum-trace .pulse{stroke:#fff;stroke-width:1.6;opacity:0;filter:drop-shadow(0 0 3px rgba(0,209,178,.9))}
.continuum-nodes{list-style:none;padding:0;margin:0;position:absolute;inset:0}
.continuum-nodes li{position:absolute;inset-block-start:54%;inset-inline-start:var(--x);inline-size:13.2%;min-inline-size:38px;
  aspect-ratio:1;translate:-50% -50%}
.disc{inline-size:100%;block-size:100%;border-radius:50%;display:grid;place-items:center;color:var(--blue);
  background:radial-gradient(circle at 32% 24%,#fff 0,rgba(255,255,255,.86) 42%,rgba(232,243,252,.78) 100%);
  border:1px solid rgba(255,255,255,.95);
  box-shadow:0 1px 0 #fff inset,0 -6px 14px rgba(43,104,255,.08) inset,0 10px 26px -8px rgba(43,104,255,.32);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.disc svg{inline-size:46%;block-size:46%}
.continuum-labels{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;grid-template-columns:22.8% 53.2% 24%;align-items:start}
.continuum-labels li{justify-self:center;text-align:center;inline-size:max-content;max-inline-size:min(14rem,28vw)}
.continuum-labels a{color:inherit;text-decoration:none;display:block;padding:.25rem .35rem;border-radius:8px}
.continuum-labels a:hover b{color:var(--blue-text)}
.continuum-labels b{display:block;font-family:var(--f-ui);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;transition:color .2s var(--ease)}
.continuum-labels small{display:block;margin-block-start:.4rem;font-size:.6875rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);line-height:1.6}
.continuum-foot{text-align:center;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-block-start:1.5rem}
@media(max-width:60rem){.layer-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:34rem){
  .continuum-labels b{font-size:.9375rem}
  .continuum-labels small{font-size:.625rem;letter-spacing:.06em}
}

/* ---------------------------------------------------------------- *
 * 3. Product worlds — three different places, not one sculpture three times.
 *    Practice  KV 3  macro glass and beads: an intimate, flowing journey.
 *    Hospital  KV 4  the clinical atrium: structure, depth, medical silver.
 *    National  KV 2  the field of light paths + a drawn topology: system scale.
 *    The picture is never washed out: only its lower edge blends into the card.
 * ---------------------------------------------------------------- */
.worlds-sec{background:linear-gradient(180deg,var(--white) 0,#EEF5FB 100%)}
.worlds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.world{position:relative;display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;isolation:isolate;
  background:#fff;border:1px solid rgba(207,218,232,.75);scroll-margin-top:calc(var(--header-h) + 1.25rem);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 30px 60px -44px rgba(15,27,45,.45);
  transition:box-shadow .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease)}
.world:hover,.world:focus-within{border-color:rgba(43,104,255,.35);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 36px 70px -40px rgba(43,104,255,.5)}
.world:target{border-color:var(--blue);box-shadow:0 0 0 3px rgba(43,104,255,.22),0 36px 70px -40px rgba(43,104,255,.5)}
.world-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--glacier)}
.world-media>img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;
  transition:transform .9s var(--ease)}
.world:hover .world-media>img,.world:focus-within .world-media>img{transform:scale(1.02)}
.world-media::after{content:'';position:absolute;inset-inline:0;inset-block-end:0;block-size:38%;
  background:linear-gradient(to bottom,rgba(255,255,255,0),#fff)}
.world--practice .world-media>img{object-position:50% 40%}
.world--practice .world-media::before{content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(140deg,rgba(0,209,178,.26) 0,rgba(0,209,178,0) 62%);mix-blend-mode:soft-light}
.world--hospital .world-media>img{object-position:30% 50%;filter:saturate(.72) contrast(1.03)}
.world--national .world-media>img{object-position:50% 60%}
.world-topology{position:absolute;z-index:1;inset-block-start:-8%;inset-inline-end:-7%;block-size:112%;inline-size:auto;aspect-ratio:1;
  filter:drop-shadow(0 18px 30px rgba(43,104,255,.22))}
.world-topology .globe{fill:url(#globeGrad);stroke:rgba(255,255,255,.95);stroke-width:.5}
.world-topology .shine{fill:url(#globeShine)}
.world-topology .ring{fill:none;stroke:rgba(255,255,255,.55);stroke-width:.35}
.world-topology .link{fill:none;stroke:rgba(255,255,255,.92);stroke-width:.42;stroke-linejoin:round}
.world-topology .nd{fill:#fff;filter:drop-shadow(0 0 1.2px rgba(255,255,255,.95))}
.world-topology .nd .hub{fill:#fff;stroke:rgba(43,104,255,.55);stroke-width:.5}
.lockup{position:absolute;z-index:2;inset-block-start:1rem;inset-inline-start:1rem;display:inline-flex;align-items:center;gap:.55rem;
  padding:.4rem .8rem .4rem .5rem;border-radius:999px;background:rgba(255,255,255,.66);
  border:1px solid rgba(255,255,255,.85);-webkit-backdrop-filter:blur(10px) saturate(1.3);backdrop-filter:blur(10px) saturate(1.3)}
.lockup .mark{inline-size:24px;block-size:auto}
.lockup .wm{inline-size:62px;block-size:auto;opacity:.82}
.lockup .lockup-product{font-family:var(--f-ui);font-size:.9375rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;
  padding-inline-start:.55rem;border-inline-start:1px solid var(--line-2)}
.world-body{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;padding:0 1.5rem 1.35rem;margin-block-start:-1.75rem}
.world-body h3{font-family:var(--f-display);font-weight:400;font-size:clamp(1.5rem,2vw,1.8rem);letter-spacing:-.015em;line-height:1.14;text-wrap:balance}
.world-body>p{font-size:.9375rem;color:var(--ink-2);margin-block:.75rem 1rem}
.world-points{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.45rem;font-size:.875rem;color:var(--ink-2)}
.world-points li{display:grid;grid-template-columns:1rem 1fr;gap:.55rem;align-items:baseline}
.world-points li::before{content:'';inline-size:.45rem;block-size:.45rem;border-radius:50%;translate:0 -.1em;
  background:var(--accent,var(--blue));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,var(--blue)) 16%,transparent)}
.world--practice{--accent:#00B79C}
.world--hospital{--accent:#7C8CA3}
.world--national{--accent:var(--blue)}
.world-body .link-arrow{margin-block-start:auto}
.worlds-note{margin-block-start:1.5rem}
@media(max-width:68rem){
  .worlds{grid-template-columns:minmax(0,1fr);gap:1.25rem}
  .world{flex-direction:row}
  .world-media{flex:0 0 44%;aspect-ratio:auto;min-block-size:16rem}
  .world-media::after{inset-block:0;inset-inline:auto 0;inline-size:30%;block-size:auto;
    background:linear-gradient(to right,rgba(255,255,255,0),#fff)}
  .world-body{margin:0;padding:1.5rem 1.5rem 1.25rem .5rem}
}
@media(max-width:44rem){
  .world{flex-direction:column}
  .world-media{flex:none;aspect-ratio:16/10;min-block-size:0}
  .world-media::after{inset-inline:0;inset-block:auto 0;inline-size:auto;block-size:38%;
    background:linear-gradient(to bottom,rgba(255,255,255,0),#fff)}
  .world-body{margin-block-start:-1.5rem;padding:0 1.25rem 1.1rem}
}

/* ---------------------------------------------------------------- *
 * 4. Intelligence chain — Exchange > Workflow > Human Action > Outcome > Evidence
 * ---------------------------------------------------------------- */
.chain-sec{position:relative;background:linear-gradient(180deg,#EEF5FB 0,#E3EFF9 100%);overflow:hidden}
.chain-sec::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60rem 22rem at 50% 108%,rgba(255,255,255,.9),rgba(255,255,255,0) 70%)}
.chain-wrap{position:relative}
.chain{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:0;margin:0}
.chain-track{position:absolute;inset-block-start:38px;inset-inline:10%;block-size:2px;border-radius:2px;
  background:linear-gradient(90deg,rgba(207,218,232,0),var(--line-2) 8%,var(--line-2) 92%,rgba(207,218,232,0))}
.chain-track i{position:absolute;inset:0;border-radius:2px;transform-origin:left center;
  background:linear-gradient(90deg,var(--blue),var(--aqua));opacity:.85}
.chain li{position:relative;text-align:center;padding-inline:.75rem}
.chain li:not(:last-child)::after{content:'';position:absolute;inset-block-start:32px;inset-inline-end:-7px;
  inline-size:10px;block-size:10px;border-block-start:1.6px solid #9FB2CB;border-inline-end:1.6px solid #9FB2CB;rotate:45deg;
  background:transparent}
.chain-dot{position:relative;inline-size:76px;block-size:76px;border-radius:50%;margin:0 auto 1.1rem;display:grid;place-items:center;color:var(--blue);
  background:radial-gradient(circle at 32% 24%,#fff 0,#F5FAFE 55%,#E4F0FA 100%);border:1px solid #fff;
  box-shadow:0 1px 0 #fff inset,0 12px 26px -12px rgba(43,104,255,.4);
  transition:box-shadow .5s var(--ease),transform .5s var(--ease)}
.chain-dot svg{inline-size:28px;block-size:28px}
.chain h3{font-size:1.0625rem}
.chain p{font-size:.875rem;color:var(--ink-2);margin-block-start:.45rem;line-height:1.6;max-inline-size:17rem;margin-inline:auto}
.chain .is-human .chain-dot{color:#fff;background:linear-gradient(160deg,#3D78FF,#1B5CFF);border-color:rgba(255,255,255,.7);
  box-shadow:0 0 0 6px rgba(43,104,255,.12),0 0 0 12px rgba(43,104,255,.06),0 14px 28px -10px rgba(27,92,255,.7)}
.chain-tag{display:inline-block;margin-block-start:.6rem;font-size:.6875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--blue-text);background:rgba(255,255,255,.8);border:1px solid rgba(43,104,255,.25);border-radius:999px;padding:.2rem .65rem}
@media(max-width:60rem){
  .chain{grid-template-columns:minmax(0,1fr);gap:0;max-inline-size:34rem}
  .chain-track{inset-inline:auto;inset-inline-start:27px;inset-block:28px 28px;inline-size:2px;block-size:auto;
    background:linear-gradient(180deg,rgba(207,218,232,0),var(--line-2) 6%,var(--line-2) 94%,rgba(207,218,232,0))}
  .chain-track i{transform-origin:center top;background:linear-gradient(180deg,var(--blue),var(--aqua))}
  .chain li{display:grid;grid-template-columns:56px 1fr;column-gap:1.1rem;text-align:start;padding:0 0 1.6rem;align-items:start}
  .chain li:last-child{padding-block-end:0}
  .chain li:not(:last-child)::after{display:none}
  .chain-dot{inline-size:56px;block-size:56px;margin:0;grid-row:1 / span 3}
  .chain-dot svg{inline-size:22px;block-size:22px}
  .chain h3{padding-block-start:.2rem}
  .chain p{margin-inline:0;max-inline-size:none}
  .chain-tag{justify-self:start}
}

/* ---------------------------------------------------------------- *
 * 5. Key domains — an open, ruled row rather than five more boxes
 * ---------------------------------------------------------------- */
.domains{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block-start:1px solid var(--line-2)}
.domain{padding:1.6rem 1.35rem 0;border-inline-start:1px solid var(--line)}
.domain:first-child{border-inline-start:0;padding-inline-start:0}
.domain-ic{inline-size:44px;block-size:44px;border-radius:12px;display:grid;place-items:center;color:var(--blue);margin-block-end:1rem;
  background:linear-gradient(160deg,#fff,var(--glacier));border:1px solid var(--line);box-shadow:0 8px 18px -12px rgba(43,104,255,.5)}
.domain-ic svg{inline-size:22px;block-size:22px}
.domain h3{font-size:1.0625rem;text-wrap:balance}
.domain p{font-size:.9rem;color:var(--ink-2);margin-block-start:.5rem;line-height:1.6}
@media(max-width:72rem){
  .domains{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:1.75rem}
  .domain{grid-column:span 2;padding-block-end:.25rem}
  .domain:nth-child(4),.domain:nth-child(5){grid-column:span 3}
  .domain:nth-child(4){border-inline-start:0;padding-inline-start:0}
}
@media(max-width:44rem){
  .domains{grid-template-columns:minmax(0,1fr);row-gap:0;border-block-start:0}
  .domain,.domain:nth-child(4),.domain:nth-child(5){grid-column:auto;border-inline-start:0;border-block-start:1px solid var(--line);
    padding:1.25rem 0;display:grid;grid-template-columns:44px 1fr;column-gap:1rem;align-items:start}
  .domain-ic{margin:0;grid-row:1 / span 2}
}

/* ---------------------------------------------------------------- *
 * 6. Open ecosystem — nine tiles, one alignment rule: fixed icon box on
 *    top, label on a two-line box, so nothing shifts when a label wraps.
 * ---------------------------------------------------------------- */
.interop-sec{background:var(--glacier);position:relative}
.systems{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:.75rem}
.system{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.7rem;padding:1.15rem .5rem 1rem;
  border-radius:var(--r);background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.66));
  border:1px solid rgba(255,255,255,.95);box-shadow:0 14px 26px -22px rgba(15,27,45,.5);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.system:hover{transform:translateY(-2px);box-shadow:0 18px 30px -20px rgba(43,104,255,.5)}
.system svg{inline-size:24px;block-size:24px;color:var(--blue);flex:none}
.system span{display:flex;align-items:center;justify-content:center;min-block-size:2.5em;font-size:.8438rem;font-weight:500;
  line-height:1.25;color:var(--ink);text-wrap:balance}
.system small{display:block;font-size:.75rem;font-weight:400;color:var(--ink-3)}
@media(max-width:68rem){
  .systems{grid-template-columns:repeat(3,minmax(0,1fr))}
  .system{flex-direction:row;justify-content:flex-start;text-align:start;gap:.8rem;padding:.9rem 1rem}
  .system span{justify-content:flex-start;min-block-size:0;font-size:.9rem}
}
@media(max-width:34rem){
  .systems{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
  .system:last-child{grid-column:1 / -1}
  .system{padding:.8rem .8rem}
  .system span{font-size:.8438rem}
}

/* ---------------------------------------------------------------- *
 * 7. Trust
 * ---------------------------------------------------------------- */
.trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.trust-item{position:relative;padding:1.5rem 1.35rem 1.4rem;border-radius:var(--r-lg);
  background:linear-gradient(180deg,#fff,rgba(255,255,255,.6));border:1px solid var(--line);
  box-shadow:0 22px 40px -36px rgba(15,27,45,.5)}
.trust-item::before{content:'';position:absolute;inset-block-start:0;inset-inline:1.35rem auto;inline-size:2.5rem;block-size:2px;
  border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--aqua))}
.trust-ic{inline-size:44px;block-size:44px;border-radius:50%;display:grid;place-items:center;color:var(--blue);
  background:var(--glacier);margin-block-end:1rem}
.trust-ic svg{inline-size:22px;block-size:22px}
.trust h3{font-size:1.0625rem}
.trust p{font-size:.9rem;color:var(--ink-2);margin-block-start:.5rem;line-height:1.6}
@media(max-width:68rem){.trust{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:38rem){.trust{grid-template-columns:minmax(0,1fr)}}
.facts{margin-block-start:2rem;padding-block-start:1.5rem;border-block-start:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:1rem 3rem;align-items:baseline}
.facts div{display:flex;align-items:baseline;gap:.6rem;font-size:.9rem;color:var(--ink-2)}
.facts b{font-family:var(--f-display);font-weight:400;font-size:1.9rem;letter-spacing:-.02em;color:var(--ink);line-height:1}
.facts .link-arrow{margin-inline-start:auto}
@media(max-width:44rem){.facts .link-arrow{margin-inline-start:0}}

/* ---------------------------------------------------------------- *
 * 8. Product access — a compact strip, not a second set of product cards
 * ---------------------------------------------------------------- */
.access-sec{padding-block:clamp(2.25rem,4vw,3.25rem);background:#EEF5FB;border-block:1px solid var(--line)}
.access{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:1.5rem 3rem;align-items:center}
.access h2{font-size:clamp(1.5rem,2.2vw,1.95rem)}
.access p{font-size:.9375rem;color:var(--ink-2);margin-block-start:.6rem;max-width:40ch}
.entries{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.entry{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.8rem 1rem;min-block-size:64px;
  border-radius:var(--r);background:#fff;border:1px solid var(--line-2);text-decoration:none;color:var(--ink);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.entry:hover{border-color:var(--blue);box-shadow:0 14px 26px -18px rgba(43,104,255,.6);transform:translateY(-1px)}
.entry img{inline-size:26px;block-size:auto}
.entry b{display:block;font-size:.9688rem;font-weight:600;line-height:1.2}
.entry small{display:block;font-size:.75rem;color:var(--ink-3);margin-block-start:.15rem;overflow-wrap:anywhere}
.entry .arr{inline-size:1.05rem;block-size:1.05rem;color:var(--blue-text);transition:transform .25s var(--ease)}
.entry:hover .arr{transform:translateX(3px)}
@media(max-width:68rem){.access{grid-template-columns:minmax(0,1fr)}}
@media(max-width:44rem){.entries{grid-template-columns:minmax(0,1fr)}}

/* ---------------------------------------------------------------- *
 * 9. Closing scene — a different Key Visual, full bleed
 * ---------------------------------------------------------------- */
.closing{position:relative;padding:0;overflow:hidden;isolation:isolate;
  background:linear-gradient(100deg,#F6FAFE 0%,#EAF3FB 48%,#D9E9F7 100%)}
.closing-in{position:relative;z-index:2;display:flex;align-items:center;min-block-size:var(--cl-h);padding-block:clamp(3rem,6vw,4.5rem)}
.closing-copy{max-inline-size:33rem}
.closing h2{font-size:clamp(2rem,3.4vw,3.1rem);text-wrap:balance}
.closing-copy>p{color:var(--ink-2);margin-block:1.1rem 1.6rem;max-width:30rem}
.closing .contact-line{font-size:.875rem;color:var(--ink-3);margin-block:1.25rem 0}
.closing .contact-line a{font-weight:500}
.closing-env{position:absolute;inset:0;z-index:1;pointer-events:none}
.closing{--cl-h:clamp(24rem,32vw,30rem);--cl-w:calc(var(--cl-h) * 2.2393);
  --gutter:calc((100vw - min(1320px,100vw - 3rem)) / 2)}
.closing-kv{position:absolute;inset-block-start:0;inset-inline-end:calc(var(--gutter) - var(--cl-w) * .08);
  block-size:100%;min-block-size:var(--cl-h);inline-size:auto;aspect-ratio:1254/560;max-width:none;object-fit:cover;
  -webkit-mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.45) 16%,#000 36%,#000 88%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.45) 16%,#000 36%,#000 88%,transparent 100%)}
.closing-sweep{position:absolute;inset-block:-20%;inset-inline-start:-30%;inline-size:22%;opacity:0;transform:skewX(-14deg);
  background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.6) 50%,rgba(255,255,255,0));mix-blend-mode:soft-light}
.closing-caption{position:absolute;z-index:2;inset-block-start:clamp(2.25rem,5vw,3.75rem);
  inset-inline-end:var(--gutter);font-size:.75rem;letter-spacing:.2em;line-height:1.9;
  color:var(--ink-2);text-transform:uppercase}
.closing-caption b{display:block;font-weight:600;color:var(--ink)}
.closing-caption .rule{display:block;block-size:1px;inline-size:34px;background:var(--ink-3);opacity:.55;margin-block:.85rem}
@media(max-width:68rem){
  .closing-in{min-block-size:0;padding-block:clamp(2.75rem,7vw,4rem) 1rem}
  .closing-env{position:relative;inset:auto;block-size:clamp(13rem,48vw,24rem)}
  .closing-kv{inset:0;inline-size:100%;block-size:100%;min-block-size:0;aspect-ratio:auto;object-position:50% 50%;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 26%);mask-image:linear-gradient(to bottom,transparent 0,#000 26%)}
  .closing-caption{display:none}
}
@media(max-width:40rem){.closing .hero-actions .btn{flex:1 1 13rem}}

/* ---------------------------------------------------------------- *
 * 10. Footer
 * ---------------------------------------------------------------- */
footer{background:var(--white);padding-block:2.75rem 1.5rem;border-block-start:1px solid var(--line)}
.foot{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:2rem}
.foot-brand{display:flex;align-items:center;gap:.75rem}
.foot-brand .mark{inline-size:36px;block-size:auto}
.foot-brand .wordmark{inline-size:128px;block-size:auto}
.foot-tag{font-size:.8438rem;color:var(--ink-3);margin-block-start:.75rem}
.foot h2{font-family:var(--f-ui);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .8rem;font-weight:600}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.foot a{display:inline-flex;align-items:center;min-block-size:44px;font-size:.9rem;color:var(--ink-2);text-decoration:none}
.foot a:hover{color:var(--blue-text);text-decoration:underline;text-underline-offset:.25em}
.foot-legal{display:flex;justify-content:space-between;gap:.75rem 2rem;flex-wrap:wrap;margin-block-start:2rem;padding-block-start:1.1rem;
  border-block-start:1px solid var(--line);font-size:.8125rem;color:var(--ink-3)}
@media(max-width:60rem){.foot{grid-template-columns:repeat(3,minmax(0,1fr))}.foot>div:first-child{grid-column:1 / -1}}
@media(max-width:30rem){.foot{grid-template-columns:1fr 1fr}}

/* ---------------------------------------------------------------- *
 * Document pages (/security/)
 * ---------------------------------------------------------------- */
.doc-hero{padding-block:clamp(3rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem);
  background:radial-gradient(70rem 30rem at 10% -20%,#fff,rgba(255,255,255,0) 60%),linear-gradient(100deg,#F6FAFE,#E6F0FA)}
.doc-hero h1{font-size:clamp(2.2rem,4vw,3.5rem);max-width:20ch;text-wrap:balance}
.doc-hero .lede{margin-block-start:1.25rem;max-width:62ch}
.doc{padding-block:clamp(2rem,4vw,3.25rem) clamp(3rem,6vw,5rem)}
.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.doc-card{min-inline-size:0;padding:1.6rem 1.5rem;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:0 22px 40px -36px rgba(15,27,45,.5)}
.doc-card h2{font-family:var(--f-ui);font-weight:600;font-size:1.125rem;letter-spacing:-.01em;line-height:1.3}
.doc-card ul{margin:.85rem 0 0;padding-inline-start:1.1rem;display:grid;gap:.5rem;font-size:.9375rem;color:var(--ink-2)}
.doc-card p{margin-block-start:.85rem;font-size:.9375rem;color:var(--ink-2)}
.doc-wide{grid-column:1 / -1}
.doc-table{inline-size:100%;border-collapse:collapse;margin-block-start:.9rem;font-size:.9rem}
.doc-table th,.doc-table td{text-align:start;padding:.6rem .75rem;border-block-end:1px solid var(--line);vertical-align:top}
.doc-table th{font-weight:600;color:var(--ink)}
.doc-table{min-inline-size:34rem}
.doc-table td{color:var(--ink-2)}
.doc-scroll{overflow-x:auto}
.doc-scroll:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
@media(max-width:52rem){.doc-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------------------------------------------------------------- *
 * Motion. Start states exist only under html.motion.
 * ---------------------------------------------------------------- */
.motion .top{animation:top-in .6s var(--ease) both}
@keyframes top-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

.motion .hero-copy>*{animation:settle .7s var(--ease) both}
.motion .hero-copy>*:nth-child(1){animation-delay:.05s}
.motion .hero-copy>*:nth-child(2){animation-delay:.1s}
.motion .hero-copy>*:nth-child(3){animation-delay:.18s}
.motion .hero-copy>*:nth-child(4){animation-delay:.26s}
.motion .hero-copy>*:nth-child(5){animation-delay:.34s}
@keyframes settle{from{opacity:.25;transform:translateY(10px)}to{opacity:1;transform:none}}
.motion .hero-kv{animation:kv-in 1.6s var(--ease) both}
@keyframes kv-in{from{opacity:.4;transform:scale(1.035) translateY(var(--kv-shift,0px))}to{opacity:1;transform:scale(1) translateY(var(--kv-shift,0px))}}
.motion .hero-kv.is-settled{animation:none;transform:translateY(var(--kv-shift,0px))}
.motion .hero-sweep{animation:sweep 2.2s .35s var(--ease) both}
.motion .closing.is-in .closing-sweep{animation:sweep 2.4s .1s var(--ease) both}
@keyframes sweep{0%{opacity:0;translate:0 0}18%{opacity:1}100%{opacity:0;translate:520% 0}}
.motion .hero-caption{animation:settle .9s .5s var(--ease) both}

.motion [data-reveal]{opacity:0;transform:translateY(12px);
  transition:opacity .7s var(--ease) calc(var(--i,0) * 70ms),transform .7s var(--ease) calc(var(--i,0) * 70ms)}
.motion [data-reveal].is-in{opacity:1;transform:none}

/* Continuum: the light travels the ribbon once, the discs arrive in order. */
.motion .continuum .disc{opacity:0;scale:.86;transition:opacity .6s var(--ease),scale .6s var(--ease);transition-delay:calc(.25s + var(--n,0) * .28s)}
.motion .continuum.is-in .disc{opacity:1;scale:1}
.motion .continuum-labels li{opacity:0;transition:opacity .6s var(--ease);transition-delay:calc(.4s + var(--n,0) * .28s)}
.motion .continuum.is-in .continuum-labels li{opacity:1}
.motion .continuum .pulse{stroke-dasharray:46 1000;stroke-dashoffset:46}
.motion .continuum.is-in .pulse{animation:trace 2.6s .15s cubic-bezier(.45,.05,.3,1) both}
.motion .continuum.is-in .pulse.b{animation-delay:.45s}
.motion .continuum.is-retrace .pulse{animation:none}
@keyframes trace{0%{opacity:0;stroke-dashoffset:46}12%{opacity:.95}85%{opacity:.9}100%{opacity:0;stroke-dashoffset:-470}}

/* Chain: progress runs left to right and holds on the human decision. */
.motion .chain-track i{transform:scaleX(0)}
.motion .chain-wrap.is-in .chain-track i{animation:chain-run 3.4s .2s linear both}
@keyframes chain-run{0%{transform:scaleX(0)}16%{transform:scaleX(.25)}36%{transform:scaleX(.5)}58%{transform:scaleX(.5)}78%{transform:scaleX(.75)}100%{transform:scaleX(1)}}
.motion .chain li{opacity:.28;transition:opacity .5s var(--ease)}
.motion .chain li .chain-dot{transform:scale(.92)}
.motion .chain-wrap.is-in li{opacity:1;transition-delay:calc(.2s + var(--n) * .62s)}
.motion .chain-wrap.is-in li .chain-dot{transform:none;transition-delay:calc(.2s + var(--n) * .62s)}
.motion .chain-wrap.is-in li:nth-child(n+4){transition-delay:calc(.7s + var(--n) * .62s)}
.motion .chain-wrap.is-in li:nth-child(n+4) .chain-dot{transition-delay:calc(.7s + var(--n) * .62s)}
.motion .chain-wrap.is-in .is-human .chain-dot{animation:human-beat 1.5s 1.5s var(--ease) both}
@keyframes human-beat{0%{box-shadow:0 0 0 0 rgba(43,104,255,.45),0 0 0 0 rgba(43,104,255,.2),0 14px 28px -10px rgba(27,92,255,.7)}
  60%{box-shadow:0 0 0 12px rgba(43,104,255,.16),0 0 0 24px rgba(43,104,255,0),0 14px 28px -10px rgba(27,92,255,.7)}
  100%{box-shadow:0 0 0 6px rgba(43,104,255,.12),0 0 0 12px rgba(43,104,255,.06),0 14px 28px -10px rgba(27,92,255,.7)}}
@media(max-width:60rem){
  .motion .chain-track i{transform:scaleY(0)}
  @keyframes chain-run{0%{transform:scaleY(0)}16%{transform:scaleY(.25)}36%{transform:scaleY(.5)}58%{transform:scaleY(.5)}78%{transform:scaleY(.75)}100%{transform:scaleY(1)}}
}

/* Trust: each icon is drawn once. */
.motion .trust-ic svg *{stroke-dasharray:160;stroke-dashoffset:160;transition:stroke-dashoffset 1.1s var(--ease) calc(.15s + var(--i,0) * 90ms)}
.motion .trust-item.is-in .trust-ic svg *{stroke-dashoffset:0}
.motion .trust-item::before{transform:scaleX(0);transform-origin:left center;transition:transform .8s var(--ease) calc(.1s + var(--i,0) * 90ms)}
.motion .trust-item.is-in::before{transform:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
  .top{position:static}.nav,.top-cta,.hero-sweep,.closing-sweep{display:none!important}
  section{padding-block:1.5rem}
}
