/* Andalus Health — v3 design system
   White-dominant · Midnight #02070A · Electric blue #0297DE · Geist (sans only) · no gradients */
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800&family=Geist+Mono:wght@400;500&display=swap');

:root{
  --ink:#02070A; --ink-2:#0b141a; --ink-soft:rgba(2,7,10,.66); --ink-faint:rgba(2,7,10,.46);
  --blue:#0297DE; --blue-hover:#0281BD; --blue-ink:#0272A8; --blue-wash:#e8f5fd;
  --bg:#fff; --bg-warm:#faf9f7; --line:rgba(2,7,10,.09); --line-strong:rgba(2,7,10,.16);
  --glass:rgba(255,255,255,.14); --glass-strong:rgba(255,255,255,.22); --glass-line:rgba(255,255,255,.34);
  --r-sm:12px; --r:18px; --r-lg:28px; --r-xl:36px; --pill:999px;
  --shadow:0 1px 2px rgba(2,7,10,.04),0 10px 30px rgba(2,7,10,.07);
  --shadow-lg:0 2px 6px rgba(2,7,10,.05),0 28px 70px rgba(2,7,10,.16);
  --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Geist',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.6;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{list-style:none}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}

/* type */
h1,h2,h3,h4{font-weight:600;letter-spacing:-.035em;line-height:1.06}
h1{font-size:clamp(2.7rem,6.2vw,5.4rem)}
h2{font-size:clamp(2rem,4.2vw,3.4rem);letter-spacing:-.032em}
h3{font-size:1.3rem;letter-spacing:-.02em;line-height:1.22}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--ink-soft);line-height:1.6;max-width:58ch}
.accent{color:var(--blue)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--blue-ink);margin-bottom:18px}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:var(--pill);font-weight:500;font-size:15px;letter-spacing:-.01em;transition:transform .2s,background .2s,border-color .2s,color .2s;white-space:nowrap}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-hover);transform:translateY(-1px)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-2);transform:translateY(-1px)}
.btn-line{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}
.btn-line:hover{border-color:var(--ink);transform:translateY(-1px)}
.btn-glass{background:var(--glass);border:1px solid var(--glass-line);color:#fff;-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4)}
.btn-glass:hover{background:var(--glass-strong);transform:translateY(-1px)}
.btn-white{background:#fff;color:var(--ink)}
.btn-white:hover{background:#eef6fb;transform:translateY(-1px)}
.btn .arr{transition:transform .2s}.btn:hover .arr{transform:translateX(3px)}

/* hero (video + glass, no gradient) */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;background:#0a1117;overflow:hidden;isolation:isolate;color:#fff;text-align:center}
.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero .scrim-flat{position:absolute;inset:0;background:rgba(2,7,10,.42);z-index:-1}
.hero-in{padding:180px 28px 180px;max-width:1000px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.glass-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 18px 8px 10px;border-radius:var(--pill);background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);font-size:14px;font-weight:500;margin-bottom:34px;transition:background .2s}
.glass-pill:hover{background:var(--glass-strong)}
.glass-pill em{font-style:normal;background:#fff;color:var(--ink);border-radius:var(--pill);padding:3px 11px;font-size:12px;font-weight:600}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.6rem);margin-bottom:20px;text-shadow:0 2px 40px rgba(2,7,10,.35)}
.hero .sub{font-size:clamp(1.1rem,1.9vw,1.55rem);font-weight:400;color:rgba(255,255,255,.88);letter-spacing:-.02em;margin-bottom:38px}
.hero .cta-row{justify-content:center}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:26px;height:42px;border:1.5px solid rgba(255,255,255,.5);border-radius:14px}
.scroll-cue::after{content:"";position:absolute;top:8px;left:50%;width:3px;height:8px;margin-left:-1.5px;background:#fff;border-radius:2px;animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* logo strip: full-colour logos looping right-to-left, glass fade at both ends */
.strip{padding:56px 0 64px;border-bottom:1px solid var(--line);overflow:hidden}
.strip p{text-align:center;font-size:14px;color:var(--ink-faint);margin-bottom:36px}
.strip-marquee{position:relative;overflow:hidden}
.strip-track{display:flex;width:max-content;animation:strip-scroll 45s linear infinite;will-change:transform}
.strip-marquee:hover .strip-track{animation-play-state:paused}
.strip-row{display:flex;align-items:center;flex:none}
.strip-row img{flex:none;width:auto;max-width:none;height:48px;margin:0 clamp(28px,3.4vw,52px);object-fit:contain;mix-blend-mode:multiply;transition:transform .3s}
.strip-row img:hover{transform:scale(1.06)}
.strip-row .s-ucsi{height:46px}.strip-row .s-scenic{height:56px}.strip-row .s-mosti{height:64px}
.strip-row .s-harvard{height:46px;margin:0 clamp(40px,5vw,72px)}.strip-row .s-nvidia{height:60px;margin:0 clamp(28px,3.4vw,52px)}.strip-row .s-ijn{height:58px}.strip-row .s-rumc{height:52px}.strip-row .s-vh{height:54px}
@keyframes strip-scroll{to{transform:translateX(-33.3333%)}}
/* glass fade at both ends */
.strip-marquee::before,.strip-marquee::after{content:"";position:absolute;top:0;bottom:0;width:clamp(70px,12vw,200px);z-index:2;pointer-events:none;background:rgba(255,255,255,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.strip-marquee::before{left:0;-webkit-mask-image:linear-gradient(to right,#000 20%,transparent);mask-image:linear-gradient(to right,#000 20%,transparent)}
.strip-marquee::after{right:0;-webkit-mask-image:linear-gradient(to left,#000 20%,transparent);mask-image:linear-gradient(to left,#000 20%,transparent)}
@media (max-width:560px){
  .strip-row img{height:40px}
  .strip-row .s-ucsi{height:38px}.strip-row .s-scenic{height:46px}.strip-row .s-mosti{height:52px}
  .strip-row .s-harvard{height:36px}.strip-row .s-nvidia{height:46px}.strip-row .s-ijn{height:48px}.strip-row .s-rumc{height:42px}.strip-row .s-vh{height:44px}
}
@media (prefers-reduced-motion:reduce){
  .strip-track{animation:none}
  .strip-marquee{overflow-x:auto}
  .strip-row[aria-hidden]{display:none}
}

/* sections */
.sec{padding:120px 0}
.sec-warm{background:var(--bg-warm)}
.sec-dark{background:var(--ink);color:#fff}
.sec-head{max-width:760px;margin-bottom:56px}
.sec-head h2{margin-bottom:18px}
.center{text-align:center}.center .sec-head,.center .lead{margin-inline:auto}

/* harvard band */
.harvard{display:grid;grid-template-columns:1.05fr 1fr;gap:72px;align-items:center}
.harvard h2{margin-bottom:22px}
.harvard p{color:var(--ink-soft);max-width:52ch}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:40px 0 36px}
.stat{border-top:1px solid var(--line-strong);padding-top:18px}
.stat b{display:block;font-size:clamp(2rem,3.4vw,2.9rem);font-weight:600;letter-spacing:-.045em;line-height:1}
.stat span{display:block;margin-top:8px;font-size:14px;color:var(--ink-faint);line-height:1.4}
.photo{border-radius:var(--r-lg);overflow:hidden;position:relative}
.photo img{width:100%;height:100%;object-fit:cover}
.harvard .photo{aspect-ratio:4/3.3}
.photo .cap{position:absolute;left:16px;bottom:16px;padding:8px 16px;border-radius:var(--pill);background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);font-size:13px;color:#fff}

/* mission */
.statement{font-size:clamp(2rem,4.6vw,4rem);font-weight:600;letter-spacing:-.04em;line-height:1.08;max-width:19ch}
.statement span{color:var(--ink-faint)}
.mission-copy{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:64px}
.mission-copy p{color:var(--ink-soft);font-size:1.08rem}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:72px}
.value{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px}
.value .n{font-family:'Geist Mono',monospace;font-size:12.5px;color:var(--blue-ink);display:block;margin-bottom:46px}
.value h3{margin-bottom:10px}
.value p{color:var(--ink-soft);font-size:15.5px;line-height:1.58}

/* building */
.build{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;background:var(--ink);color:#fff;border-radius:var(--r-xl);padding:56px;overflow:hidden}
.build p{color:rgba(255,255,255,.7);margin:18px 0 30px;max-width:46ch}
.build .photo{aspect-ratio:16/10;border:1px solid rgba(255,255,255,.12)}

/* partners */
.partners{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.partner{border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--line);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.partner:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.partner img{width:100%;aspect-ratio:16/10;object-fit:cover}
.partner div{padding:26px 28px 30px}
.partner small{font-size:13px;color:var(--blue-ink);font-weight:500}
.partner h3{margin:4px 0 8px}
.partner p{color:var(--ink-soft);font-size:15.5px}

/* news */
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:48px}
.head-row h2{max-width:16ch}
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card .thumb{aspect-ratio:16/10;display:grid;place-items:center;overflow:hidden;font-size:clamp(2.4rem,4vw,3.4rem);font-weight:600;letter-spacing:-.05em;color:#fff}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .thumb.t-blue{background:var(--blue)}
.card .thumb.t-ink{background:var(--ink)}
.card .thumb.t-white{background:#fff;padding:26px;border-bottom:1px solid var(--line)}
.card .thumb.t-white img{object-fit:contain;mix-blend-mode:multiply}
.card .body{padding:26px 28px 28px;display:flex;flex-direction:column;gap:8px;flex:1}
.card small{font-size:13px;color:var(--blue-ink);font-weight:500}
.card h3{line-height:1.25}
.card p{font-size:15px;color:var(--ink-soft);line-height:1.55}
.card .go{margin-top:auto;padding-top:12px;font-size:14.5px;font-weight:500}

/* final cta */
.final{background:var(--ink);color:#fff;border-radius:var(--r-xl);margin:0 28px;padding:120px 28px;text-align:center}
.final img{height:30px;width:auto;margin:0 auto 38px;opacity:.95}
.final h2{max-width:17ch;margin:0 auto 20px}
.final p{color:rgba(255,255,255,.7);max-width:48ch;margin:0 auto 36px}
.final .cta-row{justify-content:center}

/* motion: glass reveal on scroll.
   Content sharpens out of a frosted blur; cards, photos and panels also get a frosted pane that wipes away.
   Uses animations (not transitions) so each element's own hover effects keep working. */
.rv:not(.in){opacity:0;filter:blur(14px);transform:translateY(26px) scale(.985)}
.rv.in{animation:glass-in 1s cubic-bezier(.2,.7,.2,1) backwards}
.rv.d1.in{animation-delay:.09s}.rv.d2.in{animation-delay:.18s}.rv.d3.in{animation-delay:.27s}
@keyframes glass-in{from{opacity:0;filter:blur(14px);transform:translateY(26px) scale(.985)}}

.card,.partner,.value,.photo,.build,.final,.status,.principle,.link-row a,.feature,.recog-card{position:relative}
.card.rv::after,.partner.rv::after,.value.rv::after,.photo.rv::after,.build.rv::after,.final.rv::after,.status.rv::after,.principle.rv::after,.link-row a.rv::after,.feature.rv::after,.recog-card.rv::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;
  background:rgba(255,255,255,.5);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);opacity:0}
.build.rv::after,.final.rv::after{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.card.rv:not(.in)::after,.partner.rv:not(.in)::after,.value.rv:not(.in)::after,.photo.rv:not(.in)::after,.build.rv:not(.in)::after,.final.rv:not(.in)::after,.status.rv:not(.in)::after,.principle.rv:not(.in)::after,.link-row a.rv:not(.in)::after,.feature.rv:not(.in)::after,.recog-card.rv:not(.in)::after{opacity:1}
.card.rv.in::after,.partner.rv.in::after,.value.rv.in::after,.photo.rv.in::after,.build.rv.in::after,.final.rv.in::after,.status.rv.in::after,.principle.rv.in::after,.link-row a.rv.in::after,.feature.rv.in::after,.recog-card.rv.in::after{animation:glass-wipe 1.3s cubic-bezier(.2,.7,.2,1) backwards}
.d1.in::after{animation-delay:.09s!important}.d2.in::after{animation-delay:.18s!important}.d3.in::after{animation-delay:.27s!important}
@keyframes glass-wipe{from{opacity:1;clip-path:inset(0 0 0 0)}to{opacity:0;clip-path:inset(100% 0 0 0)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv:not(.in){opacity:1;filter:none;transform:none}
  .rv::after{display:none!important}
  html{scroll-behavior:auto}
}

/* responsive */
@media (max-width:1000px){
  .harvard,.mission-copy,.build,.partners,.news,.values{grid-template-columns:1fr}
  .build{padding:32px 24px}
  .sec{padding:84px 0}
  .final{margin:0 12px;padding:84px 20px}
  .hero-in{padding:150px 22px 150px}
}
@media (max-width:560px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .stats{grid-template-columns:1fr 1fr 1fr;gap:10px}
  .hero h1{font-size:2.5rem}
}

/* ───────── inner pages (research, news, articles) ───────── */
.page-hero{padding:190px 0 84px;background:var(--bg-warm);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.4rem,5.4vw,4.4rem);max-width:17ch;margin-bottom:22px}
.page-hero .lead{max-width:60ch}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:9px 18px;border-radius:var(--pill);border:1px solid var(--line-strong);font-size:14.5px;font-weight:500;background:#fff;color:var(--ink);transition:all .2s;cursor:pointer;font-family:inherit}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.filter-row{display:flex;gap:28px 40px;flex-wrap:wrap;align-items:center;margin-bottom:36px}
.filter-row .lbl{font-family:'Geist Mono',monospace;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-right:6px}

.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.status{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;display:flex;flex-direction:column;gap:12px}
.status .st{align-self:flex-start;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:var(--pill)}
.st-dev{background:var(--blue-wash);color:var(--blue-ink)}
.st-prep{background:#fff3df;color:#8a5a00}
.st-plan{background:#eef0f2;color:#4a555c}
.status h3{font-size:1.15rem}
.status p{font-size:15px;color:var(--ink-soft);line-height:1.55}
.principles{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.principle{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:34px}
.principle .n{font-family:'Geist Mono',monospace;font-size:12.5px;color:var(--blue-ink);display:block;margin-bottom:34px}
.principle p{color:var(--ink-soft);font-size:15.5px;margin-top:10px}

.pubs{min-height:220px}
.empty{border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);padding:56px 32px;text-align:center;background:#fff}
.empty h3{margin-bottom:10px}
.empty p{color:var(--ink-soft);max-width:48ch;margin:0 auto}
.pub{display:grid;grid-template-columns:140px 1fr auto;gap:24px;padding:26px 0;border-top:1px solid var(--line);align-items:start}
.pub:last-child{border-bottom:1px solid var(--line)}
.pub small{font-size:13px;color:var(--ink-faint)}
.pub h3{font-size:1.1rem;line-height:1.35}
.pub .meta{font-size:14px;color:var(--ink-soft);margin-top:6px}
.pub .tag{font-size:12.5px;font-weight:500;color:var(--blue-ink);background:var(--blue-wash);padding:4px 12px;border-radius:var(--pill)}

.cta-panel{background:var(--ink);color:#fff;border-radius:var(--r-xl);padding:64px;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
.cta-panel p{color:rgba(255,255,255,.7);margin-top:16px;max-width:50ch}
.cta-panel .cta-row{justify-content:flex-end}
.link-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.link-row a{border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;background:#fff;transition:all .3s;display:flex;flex-direction:column;gap:8px}
.link-row a:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}
.link-row p{font-size:15px;color:var(--ink-soft)}
.link-row .go{margin-top:6px;font-size:14.5px;font-weight:500;color:var(--blue-ink)}

/* news */
.feature{display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;margin-bottom:20px;transition:box-shadow .35s}
.feature:hover{box-shadow:var(--shadow-lg)}
.feature .thumb{min-height:360px;display:grid;place-items:center;background:#fff;padding:40px;border-right:1px solid var(--line)}
.feature .thumb img{max-height:260px;width:auto;object-fit:contain;mix-blend-mode:multiply}
.feature .body{padding:48px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.feature small{font-size:13px;color:var(--blue-ink);font-weight:500}
.feature h2{font-size:clamp(1.7rem,2.8vw,2.4rem)}
.feature p{color:var(--ink-soft)}
.card[hidden],.feature[hidden]{display:none}

/* article */
.article-hero{padding:190px 0 56px;background:var(--bg-warm);border-bottom:1px solid var(--line)}
.article-hero .back{display:inline-flex;gap:8px;font-size:14.5px;color:var(--ink-soft);margin-bottom:28px}
.article-hero .back:hover{color:var(--ink)}
.article-hero h1{font-size:clamp(2.1rem,4.6vw,3.6rem);max-width:20ch;margin:14px 0 20px}
.article-hero .meta{font-size:14.5px;color:var(--ink-faint)}
.article-figure{max-width:960px;margin:-1px auto 0;padding:0 28px}
.article-figure .fig{border-radius:0 0 var(--r-lg) var(--r-lg);overflow:hidden;border:1px solid var(--line);border-top:0;background:#fff}
.article-figure img{width:100%;max-height:480px;object-fit:cover}
.article-figure .fig.logo{padding:44px;text-align:center}
.article-figure .fig.logo img{max-height:220px;width:auto;margin:0 auto;object-fit:contain}
.prose{max-width:720px;margin:0 auto;padding:64px 28px 24px}
.prose p{font-size:1.14rem;line-height:1.75;color:rgba(2,7,10,.82);margin-bottom:1.4em}
.prose h2{font-size:1.7rem;margin:1.8em 0 .6em}
.facts{max-width:720px;margin:0 auto 40px;padding:0 28px}
.facts dl{display:grid;grid-template-columns:150px 1fr;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts dt,.facts dd{padding:16px 22px;border-top:1px solid var(--line);font-size:15px}
.facts dt:first-of-type,.facts dd:first-of-type{border-top:0}
.facts dt{background:var(--bg-warm);color:var(--ink-faint);font-weight:500}

/* terms table (research program) */
.terms{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.terms th{background:var(--ink);color:#fff;text-align:left;padding:16px 22px;font-weight:600;font-size:15px}
.terms td{padding:18px 22px;border-top:1px solid var(--line);vertical-align:top;color:var(--ink-soft);font-size:15.5px;background:#fff}
.steps{counter-reset:s;display:grid;gap:14px}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 24px}
.steps li::before{content:counter(s);width:36px;height:36px;border-radius:50%;background:var(--blue-wash);color:var(--blue-ink);display:grid;place-items:center;font-weight:600}
.steps b{display:block;margin-bottom:2px}
.steps span{color:var(--ink-soft);font-size:15.5px}
.draft{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:90;background:#fff3df;color:#8a5a00;border:1px solid #f0d9a8;padding:10px 20px;border-radius:var(--pill);font-size:13.5px;font-weight:500;box-shadow:var(--shadow)}

@media (max-width:1000px){
  .status-grid,.principles,.link-row,.cta-panel,.feature{grid-template-columns:1fr}
  .page-hero,.article-hero{padding:150px 0 56px}
  .cta-panel{padding:36px 24px}.cta-panel .cta-row{justify-content:flex-start}
  .feature .thumb{min-height:220px;border-right:0;border-bottom:1px solid var(--line)}
  .feature .body{padding:30px 24px}
  .pub{grid-template-columns:1fr;gap:8px}
  .facts dl{grid-template-columns:1fr}
}

/* video player (click-to-load YouTube, so no third-party requests until played) */
.yt{position:relative;aspect-ratio:16/9;background:#0a1117 center/cover no-repeat;overflow:hidden;cursor:pointer}
.yt::before{content:"";position:absolute;inset:0;background:rgba(2,7,10,.28);transition:background .3s}
.yt:hover::before{background:rgba(2,7,10,.16)}
.yt-play{position:absolute;inset:0;display:grid;place-items:center;width:100%;z-index:2}
.yt-play span{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);transition:transform .3s,background .3s}
.yt:hover .yt-play span{transform:scale(1.08);background:var(--glass-strong)}
.yt-play svg{width:34px;height:34px;margin-left:4px}
.yt-label{position:absolute;left:20px;bottom:20px;z-index:2;padding:9px 18px;border-radius:var(--pill);background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);color:#fff;font-size:14px;font-weight:500}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:3}
.video-card{margin-top:64px;border-radius:var(--r-xl);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.video-card .video-cap{padding:26px 32px 30px;color:var(--ink-soft);font-size:1.05rem;max-width:80ch}
.article-figure .fig .yt{border-radius:0}
@media (max-width:560px){.yt-play span{width:68px;height:68px}.video-card .video-cap{padding:20px}.yt-label{left:12px;bottom:12px;font-size:13px}}

/* What we do: manifesto + scroll-driven photo rows */
.about-do{padding:120px 0 110px;overflow:hidden}
.do-head{max-width:1000px}
.do-head h2{font-size:clamp(2rem,4.6vw,3.8rem);line-height:1.08;letter-spacing:-.045em;font-weight:600;margin:0}
.do-head h2 span{color:var(--ink-faint)}
.do-quote{margin:64px 0 72px;padding:44px 48px;border-radius:var(--r-xl);background:rgba(2,151,222,.06);border:1px solid rgba(2,151,222,.2);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start}
.do-quote i{font-style:normal;font-size:84px;line-height:.7;color:var(--blue);font-weight:600}
.do-quote p{margin:0;font-size:clamp(1.3rem,2.3vw,1.9rem);line-height:1.35;letter-spacing:-.03em;font-weight:500;color:var(--ink);max-width:34ch}
.do-quote small{display:block;margin-top:18px;font-family:'Geist Mono',monospace;font-size:12.5px;letter-spacing:.04em;color:var(--blue-ink)}
.d-rows{display:grid;gap:18px}
.d-row{position:relative;overflow:hidden;padding:6px 0}
.d-track{display:flex;align-items:center;gap:18px;width:max-content;will-change:transform;padding:0 28px}
.d-item{position:relative;flex:none;margin:0;border-radius:var(--r);overflow:hidden;background:#e9eef2}
.d-item.s{height:clamp(190px,19vw,270px)}.d-item.t{height:clamp(240px,25vw,350px)}
.d-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.d-item:hover img{transform:scale(1.04)}
.d-item figcaption{position:absolute;left:12px;bottom:12px;padding:6px 13px;border-radius:var(--pill);background:rgba(2,7,10,.28);border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);font-family:'Geist Mono',monospace;font-size:12px;letter-spacing:.04em;color:#fff}
.d-row::before,.d-row::after{content:"";position:absolute;top:0;bottom:0;width:clamp(40px,8vw,130px);z-index:2;pointer-events:none;background:rgba(255,255,255,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.d-row::before{left:0;-webkit-mask-image:linear-gradient(to right,#000 20%,transparent);mask-image:linear-gradient(to right,#000 20%,transparent)}
.d-row::after{right:0;-webkit-mask-image:linear-gradient(to left,#000 20%,transparent);mask-image:linear-gradient(to left,#000 20%,transparent)}
@media (max-width:700px){.do-quote{grid-template-columns:1fr;padding:30px 26px}.do-quote i{font-size:56px}}

/* Problem: scroll-scrubbed statement + drawing pulse line */
.problem{padding:130px 0 90px}
.scrub{font-size:clamp(2rem,5vw,4.3rem);font-weight:600;letter-spacing:-.045em;line-height:1.1;max-width:20ch;margin:0}
.scrub .w{color:rgba(2,7,10,.14);transition:color .35s}
.scrub .w.on{color:var(--ink)}
.scrub .dim .w.on{color:rgba(2,7,10,.4)}
.scrub .hl .w.on{color:var(--blue)}
.pulse{display:block;width:100%;height:clamp(70px,10vw,120px);margin:56px 0 40px;overflow:visible}
.pulse path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.pulse-bg{stroke:rgba(2,7,10,.08);stroke-width:2}
.pulse-fg{stroke:var(--blue);stroke-width:2.5}
.problem-note{max-width:52ch;font-size:1.15rem;line-height:1.6;color:var(--ink-soft);margin:0}
/* Compact recognition band */
.recog{padding:0 0 90px}
.recog-in{display:grid;grid-template-columns:1.3fr 1.2fr auto;gap:40px;align-items:center;padding-top:36px;padding-bottom:36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.recog p{margin:0;color:var(--ink-soft);max-width:44ch;line-height:1.5}
.recog-stats{display:flex;gap:34px}
.recog-stats b{display:block;font-size:1.7rem;font-weight:600;letter-spacing:-.04em}
.recog-stats span{font-size:13px;color:var(--ink-faint)}
.mission-copy.one{grid-template-columns:1fr}.mission-copy.one p{max-width:60ch}
/* FAQ */
.faq-list{max-width:820px;border-top:1px solid var(--line-strong)}
.faq-list details{border-bottom:1px solid var(--line-strong)}
.faq-list summary{list-style:none;cursor:pointer;padding:24px 40px 24px 0;font-size:1.25rem;font-weight:500;letter-spacing:-.03em;position:relative}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:1.6rem;font-weight:300;color:var(--blue-ink);transition:transform .3s}
.faq-list details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-list p{margin:0 0 26px;max-width:60ch;color:var(--ink-soft);line-height:1.65}
.faq-list a{color:var(--blue-ink);text-decoration:underline}
@media (max-width:860px){.recog-in{grid-template-columns:1fr;gap:24px}.recog-stats{gap:24px}}

/* Product cards (cream, tinted, animated UI on soft gradient photos) */
.help{background:#fff;padding:110px 0 120px}
.help-head{max-width:640px;margin-bottom:44px}.help-head h2{margin:0}
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(2,7,10,.08),0 2px 8px rgba(2,7,10,.04);transition:box-shadow .4s,transform .4s}
.pcard:hover{box-shadow:0 30px 70px rgba(2,7,10,.12),0 2px 8px rgba(2,7,10,.05)}
.pcard.big{grid-column:1/-1;flex-direction:row;align-items:stretch}
.pcard.big .ptext{flex:0 0 38%;justify-content:center;padding:56px}
.pcard.big .ppanel{flex:1;min-height:520px}
.ptext{padding:34px 38px 40px;display:flex;flex-direction:column;gap:12px}
.ptext h3{margin:0;font-size:clamp(1.5rem,2.3vw,2.1rem);font-weight:600;letter-spacing:-.04em;line-height:1.12}
.ptext p{margin:0;color:var(--ink-soft);font-size:1.05rem;line-height:1.55;max-width:34ch}
.pbtn{align-self:flex-start;margin-top:14px;display:inline-flex;gap:8px;padding:13px 22px;border-radius:var(--pill);background:var(--ink);color:#fff;font-weight:500;font-size:15px;transition:gap .25s,transform .2s}
.pbtn:hover{gap:14px;transform:translateY(-1px)}
.ppanel{position:relative;min-height:380px;background-size:cover;background-position:center;display:grid;place-items:center;padding:34px;overflow:hidden;border-radius:var(--r-lg)}
.pcard:not(.big) .ppanel{border-radius:var(--r-lg) var(--r-lg) 0 0;border-radius:0}
.pcard.big .ppanel{border-radius:var(--r-lg);margin:14px 14px 14px 0}
.ui{width:min(440px,100%);background:#fff;border-radius:22px;padding:20px 20px 18px;box-shadow:0 24px 60px rgba(2,7,10,.14),0 2px 6px rgba(2,7,10,.05);font-size:14px}
.ui-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:15px}
.sim{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.04em;color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:var(--pill);padding:3px 9px}
.plist{position:relative;height:calc(6*54px)}
.pr{position:absolute;left:0;right:0;height:48px;display:flex;align-items:center;gap:12px;padding:0 14px;border-radius:14px;background:#fafafa;border:1px solid transparent;transition:top .8s cubic-bezier(.2,.8,.2,1),background .5s,border-color .5s}
.pr b{font-weight:600;width:48px}
.pr .pv{flex:1;color:var(--ink-faint);font-size:13px;white-space:nowrap}
.pdot{width:10px;height:10px;border-radius:50%;flex:none;transition:background .5s,box-shadow .5s}
.ppill{font-style:normal;font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:var(--pill);transition:all .5s;white-space:nowrap}
.pr.st-n .pdot{background:#2FA66A}.pr.st-n .ppill{background:#E6F6EE;color:#1c7a4d}
.pr.st-h{background:#FFFAEB;border-color:#F6E3A6}.pr.st-h .pdot{background:#E9A100}.pr.st-h .ppill{background:#FFF0C2;color:#8a5a00}
.pr.st-c{background:#FEF1F1;border-color:#F6C4C4}.pr.st-c .pdot{background:#E5484D;box-shadow:0 0 0 5px rgba(229,72,77,.18)}.pr.st-c .ppill{background:#FBD9D9;color:#b02a2f}
.toast{position:absolute;right:22px;top:22px;display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:11px 16px;border-radius:var(--pill);font-size:13.5px;box-shadow:0 14px 34px rgba(2,7,10,.25);opacity:0;transform:translateY(-10px) scale(.96);transition:opacity .45s,transform .45s}
.toast.on{opacity:1;transform:none}.toast i{width:8px;height:8px;border-radius:50%;background:#ff6b6f;animation:j-pulse 1.2s infinite}
.soap{min-height:260px;font-size:14.5px;line-height:1.55;color:var(--ink)}
.soap p{margin:0 0 12px}.soap p b{display:inline-block;width:22px;color:var(--blue-ink);font-family:'Geist Mono',monospace}
.soap .caret{display:inline-block;width:2px;height:1.05em;background:var(--blue);vertical-align:-2px;margin-left:1px;animation:j-pulse .9s infinite}
.draft-tag{margin-top:6px;font-family:'Geist Mono',monospace;font-size:11.5px;color:var(--ink-faint)}
.achips{min-height:236px}
.achip{max-height:48px;overflow:hidden;margin-bottom:8px;padding:12px 14px;border-radius:12px;background:#f4f4f4;color:var(--ink-soft);font-size:13.5px;transition:opacity .5s,max-height .6s .15s,margin .6s .15s,padding .6s .15s,background .5s,color .5s}
.achip.n.gone{opacity:0;max-height:0;margin:0;padding-top:0;padding-bottom:0;text-decoration:line-through}
.achip.real{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--ink)}
.achip.real i{width:8px;height:8px;border-radius:50%;background:var(--ink-faint);transition:background .5s}
.achip.real.hot{background:#E8F4FB;color:var(--blue-ink);box-shadow:0 0 0 1px rgba(2,151,222,.35) inset}.achip.real.hot i{background:var(--blue);animation:j-pulse 1.4s infinite}
@keyframes j-pulse{50%{opacity:.3}}
.ui-foot{font-family:'Geist Mono',monospace;font-size:12px;color:var(--ink-faint);padding-top:6px;transition:color .4s}
.ui-foot.hot{color:var(--blue-ink)}
@media (max-width:860px){.pcards{grid-template-columns:1fr}.pcard.big{flex-direction:column}.pcard.big .ptext{padding:34px 28px}.pcard.big .ppanel{margin:0;border-radius:0;min-height:460px}.ppanel{padding:22px 16px}}

/* Chat demo */
.pcard.big.rev{flex-direction:row-reverse}
.pcard.big.rev .ppanel{margin:14px 0 14px 14px}
.ui-chat{width:min(500px,100%)}
.spark{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--blue);margin-right:9px;box-shadow:0 0 0 4px rgba(2,151,222,.18)}
.msgs{display:flex;flex-direction:column;justify-content:flex-end;gap:10px;height:318px;overflow:hidden;margin-bottom:10px}
.msg{max-width:88%;padding:11px 15px;border-radius:16px;font-size:14.5px;line-height:1.5;animation:msg-in .4s cubic-bezier(.2,.8,.2,1)}
.msg.user{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:5px}
.msg.bot{align-self:flex-start;background:#f2f5f7;border-bottom-left-radius:5px}
.msg.bot b{font-weight:600}
.msg .st{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:var(--pill);margin-right:6px;vertical-align:1px}
.msg .st.c{background:#FBD9D9;color:#b02a2f}.msg .st.h{background:#FFF0C2;color:#8a5a00}
.msg .dots{display:inline-flex;gap:4px;align-items:center;height:14px}
.msg .dots i{width:6px;height:6px;border-radius:50%;background:#9aa6ae;animation:dot 1s infinite}
.msg .dots i:nth-child(2){animation-delay:.15s}.msg .dots i:nth-child(3){animation-delay:.3s}
@keyframes dot{40%{transform:translateY(-4px);opacity:.5}}
@keyframes msg-in{from{opacity:0;transform:translateY(8px)}}
.sugs{display:flex;gap:8px;flex-wrap:wrap;min-height:34px;margin-bottom:10px;opacity:0;transition:opacity .4s}
.sugs.on{opacity:1}
.sug{padding:7px 13px;border-radius:var(--pill);border:1px solid var(--line-strong);font-size:13px;color:var(--ink-soft);background:#fff;transition:background .2s,border-color .2s}
.sug.press{background:#E8F4FB;border-color:var(--blue);color:var(--blue-ink)}
.chat-in{display:flex;align-items:center;gap:10px;border:1px solid var(--line-strong);border-radius:16px;padding:8px 8px 8px 16px;min-height:50px;position:relative}
.chat-txt{flex:1;font-size:14.5px;min-height:1.2em}
.chat-ph{position:absolute;left:16px;color:var(--ink-faint);font-size:14.5px;pointer-events:none}
.chat-in.has .chat-ph{display:none}
.chat-send{width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-size:15px;display:grid;place-items:center;transition:transform .2s,background .2s}
.chat-send.press{transform:scale(.88);background:var(--blue)}
.cur{position:absolute;left:0;top:0;width:26px;height:26px;z-index:5;pointer-events:none;transition:transform 1s cubic-bezier(.5,.1,.2,1);filter:drop-shadow(0 4px 8px rgba(2,7,10,.25))}
@media (max-width:860px){.pcard.big.rev{flex-direction:column}.pcard.big.rev .ppanel{margin:0}.msgs{height:300px}}

/* Calm statement / quote */
.calm{padding:130px 0 110px;text-align:center}
.calm-line,.quote blockquote p{max-width:24ch;margin:0 auto;font-size:clamp(1.9rem,3.6vw,3.1rem);font-weight:500;letter-spacing:-.04em;line-height:1.18;color:var(--ink)}
.quote blockquote{margin:0}
.quote footer{margin-top:26px;font-size:1.05rem;color:var(--ink-soft)}.quote footer b{color:var(--ink);font-weight:600}
.quote footer span{color:var(--ink-faint)}

/* Built-for: compact auto-rolling text */
.wheel-wrap{padding:0;background:#fff}
.wheel{width:100%;height:clamp(520px,50vw,680px);background:#0675b3;--bg:url(/image/bg/grad-blue.jpg);color:#fff;display:grid;grid-template-columns:1fr 2.4fr 1fr;align-items:center;gap:24px;padding:0 max(28px,calc((100vw - var(--wrap))/2 + 28px));overflow:hidden}
.w-label{font-size:clamp(.98rem,1.3vw,1.15rem);font-weight:500;line-height:1.35;letter-spacing:-.02em;color:rgba(255,255,255,.92)}
.w-list{position:relative;height:100%;margin:0;padding:0;list-style:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 75%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 75%,transparent)}
.wi{position:absolute;left:0;right:0;top:50%;white-space:nowrap;font-size:clamp(1.25rem,2.3vw,2rem);font-weight:500;letter-spacing:-.035em;line-height:1.1;color:#fff;opacity:0;will-change:transform,opacity}
.w-cta{justify-self:end}
.wheel .w-label{text-shadow:0 1px 14px rgba(2,40,70,.35)}.wi{text-shadow:0 1px 18px rgba(2,40,70,.3)}
@media (max-width:860px){
  .wheel{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;height:560px;padding:36px 22px;gap:0}
  .w-cta{justify-self:start}
}
@media (prefers-reduced-motion:reduce){
  .wheel{height:auto;padding:48px;display:block}.w-list{height:auto;margin:20px 0;-webkit-mask-image:none;mask-image:none}
  .wi{position:static;opacity:1;margin-bottom:10px}
}

/* Trust line in hero + How it runs */
.hero-trust{display:inline-flex;align-items:center;gap:9px;margin:30px 0 0;font-size:14.5px;color:rgba(255,255,255,.9);padding:9px 18px;border-radius:var(--pill);background:rgba(2,7,10,.22);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.hero-trust svg{width:16px;height:16px;flex:none}

/* ---------- animated bento: How it runs + What VitalSync does ---------- */
.runs,.feats{background:#fff}
.runs{padding:110px 0 30px}.feats{padding:80px 0 100px}
.runs-head,.feats-head{max-width:760px;margin-bottom:48px}.runs-head h2,.feats-head h2{margin:0}
.rbento{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.r-edge{grid-column:span 7;grid-row:span 2}.r-off{grid-column:span 5}.r-ai{grid-column:span 5}.r-hosp{grid-column:span 12}
.fbento{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rbox,.fbox{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:0 24px 60px rgba(2,7,10,.07),0 2px 8px rgba(2,7,10,.04);display:flex;flex-direction:column;isolation:isolate}
.rbox::before,.fbox::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(2,151,222,.20) 1px,transparent 1.3px) 0 0/20px 20px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 85% 100%,#000,transparent 70%);mask-image:radial-gradient(ellipse 80% 70% at 85% 100%,#000,transparent 70%)}
.rbox::after,.fbox::after{content:"";position:absolute;width:340px;height:340px;right:-120px;bottom:-160px;border-radius:50%;background:radial-gradient(rgba(2,151,222,.16),transparent 65%);z-index:-1;animation:glow 7s ease-in-out infinite}
@keyframes glow{50%{transform:scale(1.2);opacity:.6}}
.rtxt{padding:34px 36px 0}.rtxt h3,.fbox h3{margin:0 0 10px;font-size:clamp(1.4rem,2vw,1.8rem);font-weight:600;letter-spacing:-.04em;line-height:1.1}
.rtxt p,.fbox p{margin:0;color:var(--ink-soft);font-size:1.02rem;line-height:1.55;max-width:44ch}
.rviz{flex:1;display:flex;align-items:center;justify-content:center;padding:18px 28px 28px;min-height:170px}
.viz{width:100%;max-width:520px;height:auto;overflow:visible}.viz.wide{max-width:760px}
.vt{font-family:'Geist',sans-serif;font-size:12.5px;fill:var(--ink-faint)}.vt.mid{text-anchor:middle}.vt.end{text-anchor:end}.vt.w{fill:#fff;font-weight:600}
/* edge */
.bld{fill:rgba(2,151,222,.05);stroke:#0297DE;stroke-opacity:.45;stroke-width:2;stroke-dasharray:6 7;animation:dash 14s linear infinite}
@keyframes dash{to{stroke-dashoffset:-130}}
.wires path{fill:none;stroke:#0297DE;stroke-opacity:.3;stroke-width:1.5}
.mon rect{fill:#fff;stroke:#0297DE;stroke-opacity:.5;stroke-width:1.5}.mon polyline{fill:none;stroke:#0297DE;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pk{fill:#0297DE}
.chip{fill:#0297DE}.pins path{stroke:#0297DE;stroke-width:3;stroke-linecap:round}.core{fill:rgba(255,255,255,.95);animation:corep 2.4s ease-in-out infinite}
@keyframes corep{50%{fill:rgba(255,255,255,.55)}}
.out{fill:none;stroke:#0297DE;stroke-opacity:.35;stroke-width:1.5;stroke-dasharray:4 6}
.packet{fill:#0297DE;opacity:0;animation:pkt 4.2s ease-in-out infinite}
@keyframes pkt{0%{transform:translateX(0);opacity:0}8%{opacity:1}42%{transform:translateX(118px);opacity:1}50%{transform:translateX(118px);opacity:0}100%{opacity:0}}
.flash{fill:none;stroke:#0297DE;stroke-width:2;opacity:0;transform-origin:350px 148px;animation:fl 4.2s ease-out infinite}
@keyframes fl{0%,40%{opacity:0;transform:scale(.3)}44%{opacity:.9;transform:scale(.8)}60%{opacity:0;transform:scale(1.5)}100%{opacity:0}}
.cloud{fill:#E9EEF2}.x{stroke:#9aa6ae;stroke-width:3;stroke-linecap:round}
/* offline */
.wifi path{fill:none;stroke:#0297DE;stroke-width:6;stroke-linecap:round;animation:wf 4.4s ease-in-out infinite}.wifi path:nth-child(2){animation-delay:.12s}.wifi path:nth-child(3){animation-delay:.24s}
.wifi circle{fill:#0297DE;animation:wf 4.4s ease-in-out infinite;animation-delay:.36s}
@keyframes wf{0%,18%{opacity:1}34%,100%{opacity:.14}}
.slash{stroke:#02070A;stroke-width:5;stroke-linecap:round;stroke-dasharray:140;stroke-dashoffset:140;animation:sl 4.4s ease-in-out infinite}
@keyframes sl{0%,22%{stroke-dashoffset:140}40%,86%{stroke-dashoffset:0}100%{stroke-dashoffset:-140}}
.ecg{fill:none;stroke:#0297DE;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:400;animation:ec 2.8s linear infinite}
@keyframes ec{from{stroke-dashoffset:400}to{stroke-dashoffset:0}}
/* open-source chips */
.aichips{display:grid;gap:12px;width:100%;max-width:420px}
.achip2{position:relative;display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:18px;background:#fff;border:1px solid rgba(2,151,222,.25);box-shadow:0 10px 30px rgba(2,151,222,.10);overflow:hidden;font-size:15px;font-weight:500}
.achip2 i{width:9px;height:9px;border-radius:50%;background:#0297DE;box-shadow:0 0 0 0 rgba(2,151,222,.5);animation:ping 2.4s infinite}
.achip2.b i{animation-delay:1.2s}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(2,151,222,0)}100%{box-shadow:0 0 0 0 rgba(2,151,222,0)}}
.achip2 em{margin-left:auto;font-style:normal;font-family:'Geist Mono',monospace;font-size:11.5px;color:var(--blue-ink);background:#E8F4FB;padding:4px 10px;border-radius:999px}
.achip2::after{content:"";position:absolute;top:0;bottom:0;width:60px;left:-80px;background:linear-gradient(100deg,transparent,rgba(2,151,222,.14),transparent);animation:sweep 4.6s ease-in-out infinite}
.achip2.b::after{animation-delay:2.3s}
@keyframes sweep{0%{left:-80px}45%,100%{left:110%}}
/* hospitals */
.r-hosp .rbox,.r-hosp{flex-direction:row}
.r-hosp .rtxt{flex:0 0 38%;padding:40px 36px;align-self:center}
.r-hosp .rviz{padding:24px 36px}
.flow{fill:none;stroke:#0297DE;stroke-width:2;stroke-dasharray:5 7;animation:fw 1.6s linear infinite}.flow.f2{animation-duration:2.2s}
@keyframes fw{to{stroke-dashoffset:-24}}
.ring{fill:rgba(2,151,222,.08);stroke:#0297DE;stroke-opacity:.4;stroke-width:1.5;transform-origin:360px 75px;animation:rg 3.4s ease-in-out infinite}
@keyframes rg{50%{transform:scale(1.14);fill:rgba(2,151,222,.14)}}
.core2{fill:#0297DE}.node rect{fill:#fff;stroke:#0297DE;stroke-opacity:.45;stroke-width:1.5}.node text{fill:var(--ink);font-weight:500}
/* features */
.fbox{padding:0}.fviz{position:relative;min-height:210px;padding:26px 26px 6px;display:flex;align-items:center;justify-content:center;flex-direction:column}
.fbox h3{padding:6px 32px 0}.fbox p{padding:0 32px 32px}
.grid path{stroke:rgba(2,7,10,.08);stroke-width:1}
.rline{fill:none;stroke:#0297DE;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420;animation:rl 5s ease-in-out infinite}
@keyframes rl{0%{stroke-dashoffset:420}60%,92%{stroke-dashoffset:0}100%{stroke-dashoffset:-420}}
.rdot{fill:#0297DE}
.rflag{position:absolute;right:34px;top:34px;font-size:12.5px;font-weight:600;color:#fff;background:#0297DE;padding:6px 13px;border-radius:999px;box-shadow:0 8px 20px rgba(2,151,222,.35);opacity:0;transform:translateY(-8px) scale(.9);animation:fg 5s ease-in-out infinite}
@keyframes fg{0%,58%{opacity:0;transform:translateY(-8px) scale(.9)}66%,90%{opacity:1;transform:none}100%{opacity:0}}
.thr{stroke:#0297DE;stroke-opacity:.5;stroke-width:1.5;stroke-dasharray:5 6}
.bars rect{fill:rgba(2,7,10,.12);transform-origin:bottom;transform-box:fill-box;transform:scaleY(0);animation:bg 5.6s ease-out infinite}
.bars rect:nth-child(1){animation-delay:.0s}.bars rect:nth-child(2){animation-delay:.25s}.bars rect:nth-child(3){animation-delay:.5s}.bars rect:nth-child(4){animation-delay:.75s}.bars rect:nth-child(5){animation-delay:1s}.bars rect:nth-child(6){animation-delay:1.25s}
.bars rect.hit{fill:#0297DE}
@keyframes bg{0%{transform:scaleY(0)}12%,84%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.tag{opacity:0;animation:tg 5.6s ease-out infinite}
.tl{stroke:#0297DE;stroke-width:1.5}.tg{fill:#0297DE}
@keyframes tg{0%,26%{opacity:0;transform:translateY(8px)}34%,84%{opacity:1;transform:none}100%{opacity:0}}
.dgrid{display:grid;grid-template-columns:repeat(8,1fr);gap:14px;width:230px;position:relative}
.dgrid i{width:100%;aspect-ratio:1;border-radius:50%;background:rgba(2,7,10,.16);animation:dd 6s ease-in-out infinite;animation-delay:calc(var(--i)*60ms)}
@keyframes dd{0%,25%{opacity:1;transform:scale(1)}45%,85%{opacity:0;transform:scale(.3)}100%{opacity:1;transform:scale(1)}}
.dgrid .one{position:absolute;left:calc(50% - 8px);top:calc(50% - 8px);width:16px;height:16px;border-radius:50%;background:#0297DE;animation:one 6s ease-in-out infinite}
.dgrid .one::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #0297DE;opacity:0;animation:ringp 6s ease-out infinite}
@keyframes one{0%,25%{transform:scale(1)}50%,85%{transform:scale(1.5)}100%{transform:scale(1)}}
@keyframes ringp{0%,40%{opacity:0;transform:scale(.8)}50%{opacity:.8}85%{opacity:0;transform:scale(2.2)}100%{opacity:0}}
.dlab{margin-top:16px;font-size:13px;font-weight:600;color:var(--blue-ink);opacity:0;animation:lb 6s ease-in-out infinite}
@keyframes lb{0%,40%{opacity:0}55%,85%{opacity:1}100%{opacity:0}}
@media (max-width:900px){.rbento{grid-template-columns:1fr}.r-edge,.r-off,.r-ai,.r-hosp{grid-column:auto;grid-row:auto}.fbento{grid-template-columns:1fr}.r-hosp{flex-direction:column}.r-hosp .rtxt{flex:none}}
@media (prefers-reduced-motion:reduce){.rbox *,.fbox *,.rbox::after,.fbox::after{animation:none!important}.rline,.slash{stroke-dashoffset:0}.bars rect,.tag,.rflag,.dlab{opacity:1;transform:none}.dgrid i{opacity:.4}}
.r-edge .rviz{padding:10px 34px 34px}.r-edge .viz{max-width:none;width:100%}

/* ---------- restored: chat refinements, drivers list, next steps, paging dialog ---------- */
.pcard:not(.big) .ppanel{flex:1}
.pcard:not(.big) .ptext p{max-width:none;min-height:3.2em}
.pcard:not(.big) .msgs{height:410px}
.msgs{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 14%);mask-image:linear-gradient(to bottom,transparent,#000 14%)}
@keyframes msg-in{from{opacity:0;transform:translateY(22px)}}
.msg{animation:msg-in .6s cubic-bezier(.2,.8,.2,1)}
.mlist{margin:8px 0 8px;padding:0;list-style:none;display:grid;gap:5px}
.mlist li{position:relative;padding-left:16px;font-size:14px;color:var(--ink)}
.mlist li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--ink)}
.mlist li b{font-weight:600}
.mlist .v-hr{color:#1E9E57}.mlist .v-spo2{color:#0A84D6}.mlist .v-rr{color:#B8860B}.mlist .v-bp{color:#D6455D}.mlist .v-temp{color:#D9622B}
.mnote{display:block;font-size:13.5px;line-height:1.5;color:var(--ink)}.mnote b{font-weight:600}
.sug.act{background:#fff;color:var(--ink);border-color:var(--line-strong)}
.sug.act.press{background:var(--ink);color:#fff;border-color:var(--ink)}
.sug.act.done{background:#E6F6EE;border-color:#2FA66A;color:#1c7a4d}
.nsteps{margin:8px 0 8px;padding:0 0 0 20px;list-style:decimal;display:grid;gap:6px;font-size:14px;line-height:1.45}
.nsteps li{padding-left:2px}
.modal{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:20px;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s}
.modal.on{opacity:1;visibility:visible}
.dlg{position:relative;width:min(380px,100%);background:#fff;border-radius:20px;padding:20px;box-shadow:0 30px 80px rgba(2,7,10,.28);transform:translateY(18px) scale(.96);transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.modal.on .dlg{transform:none}
.dlg-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:15px}
.dlg-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px}
.dlg-row span{color:var(--ink-faint)}.dlg-row b{font-weight:500}
.dlg-row .pri{background:#FBD9D9;color:#b02a2f;border-radius:var(--pill);padding:2px 10px;font-weight:600;font-size:12.5px}
.sbar{margin:8px 0 14px;padding:12px 14px;background:#f4f6f8;border-radius:12px;font-size:13.5px;line-height:1.45}
.sbar p{margin:0 0 6px;display:flex;gap:10px}.sbar p:last-child{margin:0}
.sbar b{flex:none;width:14px;font-family:'Geist Mono',monospace;color:var(--blue-ink)}
.dlg-actions{display:flex;gap:8px;justify-content:flex-end}
.dbtn{padding:9px 16px;border-radius:var(--pill);font-size:13.5px;font-weight:500;transition:transform .2s,background .2s}
.dbtn.ghost{color:var(--ink-soft)}
.dbtn.send{background:var(--ink);color:#fff}
.dbtn.send.press{transform:scale(.94);background:var(--blue)}
.dlg-done{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#fff;border-radius:20px;opacity:0;pointer-events:none;transition:opacity .4s;text-align:center}
.dlg-done i{font-style:normal;width:44px;height:44px;border-radius:50%;background:#E6F6EE;color:#1c7a4d;display:grid;place-items:center;font-size:22px;font-weight:600;margin-bottom:6px}
.dlg-done b{font-size:1.1rem;font-weight:600}.dlg-done span{font-size:13.5px;color:var(--ink-soft)}
.dlg.sent .dlg-done{opacity:1}



/* ---------- refinement: gradient panels instead of glows ---------- */
.rbox::before,.rbox::after{display:none!important}
.rbox{box-shadow:0 1px 2px rgba(2,7,10,.04),0 16px 40px rgba(2,7,10,.06)}
.rviz{margin:14px;border-radius:var(--r-lg);background-size:cover;background-position:center;padding:28px;min-height:190px}
.r-edge .rviz{--bg:url(/image/bg/grad-sky.jpg);padding:20px}
.r-off .rviz{--bg:url(/image/bg/grad-sand.jpg)}
.r-ai .rviz{--bg:url(/image/bg/grad-mint.jpg)}
.r-hosp .rviz{--bg:url(/image/bg/grad-dusk.jpg);margin:14px 14px 14px 0}
.r-edge .viz{max-width:none;width:100%}
/* edge: colour */
.bld{fill:#fff;stroke:rgba(2,7,10,.14);animation:none;stroke-dasharray:none}
.mon rect{fill:#fff;stroke:rgba(2,7,10,.16)}
.mon polyline{stroke-width:2.2}
.wires path{stroke:rgba(2,7,10,.18)}
.chip{fill:#02070A}.pins path{stroke:#F2B600}.core{fill:#F2B600}
.out{stroke:rgba(2,7,10,.3)}.cloud{fill:#fff}.x{stroke:#E5484D}
.packet{fill:#F2B600}.flash{stroke:#F2B600}
/* offline: one calm animation */
.offsvg{max-width:230px}
.wifi path{stroke:#0A84D6;animation:none;opacity:1}.wifi circle{fill:#0A84D6;animation:none}
.slash{stroke:#E5484D;stroke-width:7;stroke-dasharray:140;stroke-dashoffset:140;animation:sl 5s ease-in-out infinite}
/* ai: simple */
.achip2{box-shadow:none;border:0;background:#fff;overflow:visible}
.achip2::after{display:none}.achip2 i{animation:none;box-shadow:none}
.achip2 em{background:#F3F4F6;color:var(--ink-soft)}
/* hospitals: simple and colourful */
.hs{display:flex;align-items:center;justify-content:center;gap:0;width:100%}
.hs-pill{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:#fff;font-size:15px;font-weight:600;box-shadow:0 8px 24px rgba(2,7,10,.08)}
.hs-pill i{width:11px;height:11px;border-radius:50%}
.hs-pill.h i{background:#0A84D6}.hs-pill.c i{background:#1E9E57}
.hs-line{flex:1;max-width:110px;height:2px;background:rgba(2,7,10,.22)}
.hs-core{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:#F2B600;color:#02070A;font-weight:700;font-size:15px;letter-spacing:-.02em;box-shadow:0 10px 28px rgba(242,182,0,.35)}
@media (max-width:900px){.r-hosp .rviz{margin:0 14px 14px}.hs-line{max-width:34px}.hs-pill{padding:11px 14px;font-size:13.5px}.hs-core{width:74px;height:74px}}

/* static, centred */
.r-edge .rviz{display:flex;align-items:center;justify-content:center;padding:26px 22px}
.r-edge .edgeviz{max-width:none;width:100%}
.r-off .rviz{display:flex;align-items:center;justify-content:center}
.offsvg{max-width:210px;width:100%}
.wifi path{stroke:#0A84D6;stroke-width:7;animation:none;opacity:1}.wifi circle{fill:#0A84D6;animation:none;opacity:1}
.slash{stroke:#E5484D;stroke-width:8;stroke-dasharray:none;stroke-dashoffset:0;animation:none}
.edgecard{width:100%;background:#fff;border-radius:22px;padding:18px 14px 10px;box-shadow:0 24px 60px rgba(2,7,10,.14),0 2px 6px rgba(2,7,10,.05)}
.edgecard .edgeviz{display:block}
.edgecard{background:none;box-shadow:none;padding:0;border-radius:0}
.edgecard .edgeviz{filter:drop-shadow(0 22px 34px rgba(2,7,10,.16))}
.r-edge .rviz{padding:22px 18px}


/* ---------- gradient panels: light slowly breathes from blue toward white and back ---------- */
.ppanel,.rviz{position:relative;isolation:isolate;overflow:hidden}
.ppanel{background-image:none!important}
.ppanel::before,.rviz::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--bg) center/cover no-repeat}
.ppanel::after,.rviz::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse 70% 60% at 30% 35%,rgba(255,255,255,.85),transparent 70%),radial-gradient(ellipse 60% 55% at 78% 78%,rgba(255,255,255,.6),transparent 70%);
  animation:breathe 9s ease-in-out infinite alternate}
.pcard:nth-child(2) .ppanel::after{animation-duration:11s;animation-delay:-4s}
.pcard:nth-child(3) .ppanel::after{animation-duration:10s;animation-delay:-7s}
.r-off .rviz::after{animation-duration:12s;animation-delay:-3s}
.r-ai .rviz::after{animation-duration:10s;animation-delay:-6s}
.r-hosp .rviz::after{animation-duration:13s;animation-delay:-8s}
@keyframes breathe{0%{opacity:0;transform:scale(1)}100%{opacity:.75;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.ppanel::after,.rviz::after{animation:none}}
/* ---------- rolling band: flat electric blue, larger type, yellow button ---------- */
.wheel{background:#0297DE!important}
.wheel::before,.wheel::after{display:none!important}
.wheel .w-label{font-size:clamp(1.35rem,2.1vw,1.9rem);line-height:1.25;text-shadow:none;font-weight:600}
.wi{font-size:clamp(1.9rem,3.8vw,3.4rem);text-shadow:none}
.w-cta.btn{background:#F2B600;color:#02070A!important}
.w-cta.btn:hover{background:#FFC61F}
.wheel{grid-template-columns:1.05fr 3.4fr auto}
.wi{font-size:clamp(1.8rem,3.2vw,2.9rem)}
@media (max-width:860px){.wheel{grid-template-columns:1fr}}
.w-cta.btn{background:#fff;color:#02070A!important}.w-cta.btn:hover{background:#EAF6FD}
.wheel .w-label{white-space:nowrap}
.wheel{grid-template-columns:auto 1fr auto}
.wheel{gap:72px}
.wheel .w-label{font-size:clamp(1.05rem,1.4vw,1.3rem);font-weight:500;line-height:1.3}
.wi{font-size:clamp(1.6rem,2.8vw,2.55rem)}
@media (max-width:860px){.wheel{gap:0}}

/* "What we are building" heading, larger */
.help-head.big{max-width:900px;margin-bottom:56px}
.help-head.big .eyebrow{font-size:1.05rem}
.help-head.big h2{font-size:clamp(2.6rem,5.4vw,4.6rem);line-height:1.04;letter-spacing:-.045em}
.help-sub{margin:22px 0 0;max-width:62ch;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.55;color:var(--ink-soft)}
/* "How VitalSync runs": tabs, deliberately unlike the card grid above */
.rtabs{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:48px;align-items:stretch}
.rt-list{display:flex;flex-direction:column;border-top:1px solid var(--line-strong)}
.rt-item{display:block;width:100%;text-align:left;padding:26px 0;border-bottom:1px solid var(--line-strong);background:none;cursor:pointer;color:var(--ink-faint);transition:color .3s}
.rt-h{display:block;font-size:clamp(1.4rem,2.2vw,2rem);font-weight:600;letter-spacing:-.04em;line-height:1.1}
.rt-p{display:block;max-height:0;overflow:hidden;opacity:0;margin-top:0;font-size:1.05rem;line-height:1.55;color:var(--ink-soft);max-width:42ch;transition:max-height .5s,opacity .4s,margin .4s}
.rt-item.on{color:var(--ink)}
.rt-item.on .rt-p{max-height:140px;opacity:1;margin-top:12px}
.rt-item:hover{color:var(--ink)}
.rt-stage{position:relative;min-height:520px;border-radius:var(--r-xl);overflow:hidden}
.rt-pane.rviz{position:absolute;inset:0;margin:0;border-radius:var(--r-xl);min-height:0;display:flex;align-items:center;justify-content:center;padding:28px;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s;--bg:url(/image/bg/grad-sky.jpg)}
.rt-pane.on{opacity:1;visibility:visible}
.rt-pane[data-k="off"]{--bg:url(/image/bg/grad-sand.jpg)}.rt-pane[data-k="ai"]{--bg:url(/image/bg/grad-mint.jpg)}.rt-pane[data-k="hosp"]{--bg:url(/image/bg/grad-dusk.jpg)}
.rt-pane .edgecard{width:100%}.rt-pane .aichips{max-width:460px}.rt-pane .offsvg{max-width:240px}
@media (max-width:900px){.rtabs{grid-template-columns:1fr;gap:24px}.rt-stage{min-height:440px}}

/* "How VitalSync runs": scroll-driven, one idea at a time */
.rscroll{position:relative;height:420vh}
.rscroll .rtabs{position:sticky;top:96px;height:min(640px,calc(100vh - 130px));grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:56px;align-items:stretch}
.rscroll .rt-list{position:relative;border-top:0;display:block;height:100%}
.rscroll .rt-item{position:absolute;left:0;right:0;top:50%;width:auto;padding:0;border:0;cursor:default;pointer-events:none;color:var(--ink);opacity:0;transform:translateY(-38%) scale(.94);transform-origin:left center;transition:opacity .6s ease,transform .7s cubic-bezier(.2,.9,.25,1.15)}
.rscroll .rt-item.on{opacity:1;transform:translateY(-50%) scale(1);pointer-events:auto}
.rscroll .rt-item.past{transform:translateY(-62%) scale(.97)}
.rscroll .rt-h{font-size:clamp(1.9rem,3.4vw,3.1rem);line-height:1.04}
.rscroll .rt-p{max-height:none;opacity:1;margin-top:16px;font-size:1.15rem;max-width:36ch}
.rscroll .rt-stage{min-height:0;height:100%}
.rt-dots{position:absolute;left:0;bottom:6px;display:flex;gap:8px}
.rt-dots i{width:26px;height:4px;border-radius:4px;background:rgba(2,7,10,.14);transition:background .4s,width .4s}
.rt-dots i.on{background:#0297DE;width:44px}
@media (max-width:900px){
  .rscroll{height:380vh}
  .rscroll .rtabs{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:18px;top:80px;height:calc(100vh - 110px)}
  .rscroll .rt-list{height:150px}
  .rscroll .rt-item{top:40%}
  .rscroll .rt-h{font-size:1.7rem}.rscroll .rt-p{font-size:1rem;margin-top:10px}
}
@media (prefers-reduced-motion:reduce){
  .rscroll{height:auto}.rscroll .rtabs{position:static;height:auto;grid-template-columns:1fr 1.3fr}
  .rscroll .rt-list{height:auto}.rscroll .rt-item{position:static;opacity:1;transform:none;margin-bottom:28px;pointer-events:auto}
  .rscroll .rt-stage{height:520px}.rt-dots{display:none}
}

/* pin the heading together with the steps, everything vertically centred */
.rscroll .rsticky{position:sticky;top:96px;height:calc(100vh - 116px);min-height:520px;display:flex;flex-direction:column}
.rscroll .runs-head{flex:none;margin-bottom:26px;max-width:none}
.rscroll .runs-head h2{font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.06}
.rscroll .runs-head .eyebrow{margin-bottom:10px}
.rscroll .rtabs{position:relative;top:auto;height:auto;flex:1;min-height:0}
.rt-pane .edgecard{max-width:600px;margin:0 auto}
.rt-pane .edgeviz{max-width:none;width:100%;margin:0 auto}
.rt-pane .aichips{margin:0 auto}
@media (max-width:900px){.rscroll .rsticky{top:80px;height:calc(100vh - 100px)}.rscroll .rtabs{height:auto}}
@media (prefers-reduced-motion:reduce){.rscroll .rsticky{position:static;height:auto}}
/* smaller overall + vertical progress line beside the title */
.rscroll{height:380vh}
.rscroll .rsticky{height:min(580px,calc(100vh - 140px));min-height:460px;top:110px}
.rscroll .runs-head{margin-bottom:20px}
.rscroll .runs-head h2{font-size:clamp(1.5rem,2.5vw,2.2rem)}
.rscroll .runs-head .eyebrow{font-size:.9rem;margin-bottom:8px}
.rscroll .rtabs{gap:44px}
.rscroll .rt-item{left:38px}
.rscroll .rt-h{font-size:clamp(1.5rem,2.4vw,2.1rem)}
.rscroll .rt-p{font-size:1rem;margin-top:12px;max-width:34ch}
.rt-dots{left:0;bottom:auto;top:50%;transform:translateY(-50%);flex-direction:column;gap:8px}
.rt-dots i{width:4px;height:26px}
.rt-dots i.on{width:4px;height:56px;background:#0297DE}
.rt-pane .edgecard{max-width:520px}
@media (max-width:900px){.rscroll .rsticky{top:84px;height:calc(100vh - 104px)}.rscroll .rt-item{left:30px}.rscroll .rt-list{height:140px}}

/* centred, slightly larger pinned block with sub-copy */
.rscroll .rsticky{top:50%;transform:translateY(-50%);height:min(640px,calc(100vh - 150px));min-height:480px;justify-content:center}
.rscroll .runs-head{margin-bottom:26px}
.rscroll .runs-head h2{font-size:clamp(1.7rem,2.9vw,2.6rem)}
.runs-sub{margin:12px 0 0;max-width:62ch;font-size:1.05rem;line-height:1.55;color:var(--ink-soft)}
.rscroll .rt-h{font-size:clamp(1.7rem,2.7vw,2.4rem)}
.rscroll .rt-p{font-size:1.08rem;max-width:36ch}
.rt-pane .edgecard{max-width:560px}
@media (max-width:900px){.rscroll .rsticky{top:50%;height:calc(100vh - 110px)}.runs-sub{font-size:.98rem}}
@media (prefers-reduced-motion:reduce){.rscroll .rsticky{transform:none}}

/* fix overlap: no transform on the pinned block, centre it with top instead */
.rscroll .rsticky{transform:none!important;--H:min(680px,calc(100vh - 140px));height:var(--H);top:max(96px,calc((100vh - var(--H))/2 + 36px));min-height:500px}
.rscroll{height:400vh}
.rscroll .rtabs{flex:1;min-height:0}
.rscroll .rt-stage{height:100%}
@media (max-width:900px){.rscroll .rsticky{--H:calc(100vh - 110px);top:90px}}

/* taller gradient panel */
.rscroll .rsticky{--H:min(820px,calc(100vh - 100px));min-height:560px;top:max(90px,calc((100vh - var(--H))/2 + 40px))}
.rscroll{height:420vh}
@media (max-width:900px){.rscroll .rsticky{--H:calc(100vh - 100px);top:84px}}

/* Harvard: full section with certificate + photo */
.harv{padding:110px 0 120px;background:#fff}
.harv-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:64px;align-items:center}
.harv-copy h2{margin:0 0 18px;font-size:clamp(2rem,3.8vw,3.3rem);line-height:1.06;letter-spacing:-.045em}
.harv-copy>p{margin:0 0 30px;max-width:48ch;font-size:1.1rem;line-height:1.6;color:var(--ink-soft)}
.harv-copy .recog-stats{margin-bottom:34px}
.harv-vis{position:relative;min-height:640px;border-radius:var(--r-xl);overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:44px}
.harv-vis::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bg) center/cover no-repeat}
.harv-cert{width:min(330px,62%);height:auto;border-radius:10px;box-shadow:0 30px 70px rgba(2,7,10,.28),0 2px 8px rgba(2,7,10,.08);transform:rotate(-2.5deg);background:#fff}
.harv-photo{position:absolute;right:28px;bottom:34px;width:min(260px,46%);margin:0;border-radius:18px;overflow:hidden;box-shadow:0 24px 54px rgba(2,7,10,.3);transform:rotate(2deg);background:#fff;border:5px solid #fff}
.harv-photo img{display:block;width:100%;height:auto}
.harv-photo figcaption{position:absolute;left:10px;bottom:10px;padding:5px 11px;border-radius:999px;background:rgba(2,7,10,.4);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;font-size:12px}
@media (max-width:900px){.harv{padding:70px 0}.harv-in{grid-template-columns:1fr;gap:36px}.harv-vis{min-height:520px;padding:30px}.harv-photo{right:16px;bottom:20px}}
.harv-vis{justify-content:flex-start;align-items:flex-start}
.harv-cert{width:min(340px,64%);margin:0 0 0 6%}
.harv-photo{width:min(230px,42%);right:22px;bottom:26px}



/* framed gallery wall: certificate largest */
.harv-in{grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);gap:56px}
.harv-vis{display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:repeat(3,auto);gap:22px;padding:34px;min-height:0;border-radius:var(--r-xl);background:#F1F0EE;box-shadow:none;border:0;margin:0;outline:0;overflow:visible;isolation:auto;align-items:stretch}
.harv-vis::before{display:none}
.cb{position:static;transform:none;margin:0;display:flex;flex-direction:column;background:#fff;border:1px solid #1b1d20;padding:14px 14px 12px;box-shadow:0 1px 2px rgba(2,7,10,.08),0 18px 36px rgba(2,7,10,.12);width:auto}
.cb img{display:block;width:100%;height:auto;flex:1;min-height:0;object-fit:cover;background:#f6f6f6}
.cb figcaption{position:static;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--ink-soft);padding:10px 2px 0;font-family:'Geist Mono',monospace;font-size:11.5px;letter-spacing:.03em;max-width:none;white-space:normal}
.cb-cert{grid-column:1;grid-row:1/4;padding:20px 20px 16px}
.cb-cert img{object-fit:contain;flex:none}
.cb-cert::after{content:"Harvard HSIL · Certificate of Achievement";font-family:'Geist Mono',monospace;font-size:11.5px;letter-spacing:.03em;color:var(--ink-soft);padding:12px 2px 0}
.cb-a{grid-column:2;grid-row:1}.cb-b{grid-column:2;grid-row:2}.cb-c{grid-column:2;grid-row:3}
.cb-a img,.cb-b img,.cb-c img{aspect-ratio:3/2}
.cb::before,.cb-a::after{display:none}
@media (max-width:900px){.harv-in{grid-template-columns:1fr}.harv-vis{grid-template-columns:1fr 1fr;padding:18px;gap:14px}.cb-cert{grid-column:1/-1;grid-row:auto}.cb-a,.cb-b,.cb-c{grid-column:auto;grid-row:auto}.cb-c{grid-column:1/-1}}
.harv-in{grid-template-columns:minmax(0,.72fr) minmax(0,1.4fr)}
.harv-vis{grid-template-columns:1.6fr 1fr}
.cb-cert img{flex:1;min-height:0;object-fit:contain;background:#fff}
.cb-cert::after{margin-top:auto}
@media (max-width:900px){.harv-vis{grid-template-columns:1fr 1fr}.cb-cert img{flex:none}}
.harv-in{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:48px}
.harv-copy .recog-stats{gap:28px;flex-wrap:wrap}

/* Harvard: centred text on top, big grid below */
.harv-in{display:block}
.harv-copy{text-align:center;max-width:860px;margin:0 auto 56px;display:flex;flex-direction:column;align-items:center}
.harv-copy h2{font-size:clamp(2.2rem,4.4vw,3.8rem)}
.harv-copy>p{max-width:62ch;margin:0 0 34px}
.harv-copy .recog-stats{justify-content:center;gap:56px;margin-bottom:34px}
.harv-copy .recog-stats>div{text-align:center}
.harv-vis{grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:24px;padding:36px;min-height:0}
.cb-cert{grid-column:1;grid-row:1/3}
.cb-a{grid-column:2;grid-row:1}.cb-b{grid-column:3;grid-row:1}.cb-c{grid-column:2/4;grid-row:2}
.cb-a img,.cb-b img,.cb-c img{aspect-ratio:auto;flex:1;min-height:0;object-fit:cover}
.cb-c img{object-position:center 60%}
.harv-vis{height:min(820px,92vh);min-height:640px}
@media (max-width:900px){.harv-vis{height:auto;min-height:0;grid-template-columns:1fr 1fr;grid-template-rows:auto;padding:18px;gap:14px}.cb-cert{grid-column:1/-1;grid-row:auto}.cb-a,.cb-b{grid-column:auto;grid-row:auto}.cb-c{grid-column:1/-1;grid-row:auto}.cb-a img,.cb-b img,.cb-c img{aspect-ratio:3/2;flex:none}.harv-copy .recog-stats{gap:28px}}

/* Philosophy: full-bleed tinted band with four tinted principle cards */
.phil{background:#E9F2F8;padding:120px 0 130px}
.phil-h{font-size:clamp(2.1rem,4.4vw,3.8rem);font-weight:600;letter-spacing:-.045em;line-height:1.08;max-width:18ch;margin:0 0 64px}
.phil-h span{color:rgba(2,7,10,.42)}
.phil-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pbox{border-radius:var(--r-lg);padding:30px 28px 34px;min-height:260px;display:flex;flex-direction:column;gap:12px}
.pbox h3{margin:0;font-size:1.4rem;font-weight:600;letter-spacing:-.035em;line-height:1.15}
.pbox p{margin:0;font-size:1.02rem;line-height:1.55;color:rgba(2,7,10,.68)}
.pbox:nth-child(1){background:#fff}
.pbox:nth-child(2){background:#FBF0D6}
.pbox:nth-child(3){background:#DDEFE4}
.pbox:nth-child(4){background:#F6DCD6}
.yt::after{content:"";position:absolute;inset:0;background:rgba(2,7,10,.12);pointer-events:none;z-index:1}
.yt-play,.yt-label{z-index:2}
@media (max-width:980px){.phil-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.phil{padding:80px 0}.phil-grid{grid-template-columns:1fr}.pbox{min-height:0}}

/* map thumbnail: keep the map bright and fully visible */
.yt::after{display:none!important}
.yt-map{aspect-ratio:4/3;background-size:cover;background-position:center 52%;max-height:760px}
.yt-map::before{background:rgba(2,7,10,.06)}
.yt-map:hover::before{background:rgba(2,7,10,0)}
.yt-map .yt-play span{background:rgba(255,255,255,.28)}
@media (max-width:700px){.yt-map{aspect-ratio:1/1}}
.yt-map{aspect-ratio:3/2;max-height:none;width:100%}
.yt-map .yt-label{background:rgba(2,7,10,.55);border-color:rgba(255,255,255,.3)}
.yt-map .yt-play span{background:rgba(2,7,10,.45)}
@media (max-width:700px){.yt-map{aspect-ratio:1/1}}

/* "What we are building": white with a fine dot-grid texture that fades at the edges */
.help{position:relative;isolation:isolate;overflow:hidden;background:#fff}
.help::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:radial-gradient(rgba(2,7,10,.20) 1.3px,transparent 1.6px);background-size:24px 24px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%)}
.help::after{content:"";position:absolute;left:0;right:0;top:0;height:420px;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 60% 100% at 30% 0,#fff 30%,rgba(255,255,255,0) 75%)}

/* ---------- section rhythm: soft tinted bands, each with its own fine dot texture ---------- */
#problem,#how-it-runs,#journey,#news{position:relative;isolation:isolate}
#problem::before,#how-it-runs::before,#journey::before,#news::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-size:24px 24px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%)}
#problem{background:#FFF6DC}
#problem::before{background-image:radial-gradient(rgba(176,120,0,.22) 1.3px,transparent 1.6px)}
#how-it-runs{background:#E7F4EC}
#how-it-runs::before{background-image:radial-gradient(rgba(20,110,60,.20) 1.3px,transparent 1.6px)}
#journey{background:#FBECE7}
#journey::before{background-image:radial-gradient(rgba(176,60,40,.18) 1.3px,transparent 1.6px)}
#news{background:#ECEEFB}
#news::before{background-image:radial-gradient(rgba(60,70,180,.20) 1.3px,transparent 1.6px)}
.phil{position:relative;isolation:isolate}
.phil::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(rgba(2,100,170,.20) 1.3px,transparent 1.6px);background-size:24px 24px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%)}
/* make the cards stand out on tinted bands */
#news .card,#how-it-runs .rt-stage{box-shadow:0 1px 2px rgba(2,7,10,.05),0 18px 40px rgba(2,7,10,.08)}

/* back to white: same fine grey dots on every textured section */
#problem,#how-it-runs,#journey,#news{background:#fff}
#problem::before,#how-it-runs::before,#journey::before,#news::before{background-image:radial-gradient(rgba(2,7,10,.20) 1.3px,transparent 1.6px)}

/* ---------- landing-page-design skill: safe adoptions ---------- */
h1,h2,h3,.statement,.phil-h,.harv-copy h2{text-wrap:balance}
p,.lead,.video-cap,.help-sub,.runs-sub{text-wrap:pretty}
.rv.in{animation-timing-function:cubic-bezier(.22,1,.36,1)}
.btn:active,.pbtn:active,.ah-btn:active{transform:scale(.98)}
.skip-link{position:fixed;left:16px;top:-80px;z-index:300;padding:10px 16px;border-radius:12px;background:#02070A;color:#fff;font-size:14px;font-weight:600;transition:top .3s cubic-bezier(.22,1,.36,1)}
.skip-link:focus{top:16px}

/* =====================================================================
   Abridge-inspired pass: lighter headings, uppercase eyebrows, two-tone titles,
   3-column product cards with glass-blur backdrop, awards + stats, news carousel
   ===================================================================== */
.eyebrow{text-transform:uppercase;letter-spacing:.07em;font-size:13px;font-weight:500}
.eyebrow::before{display:none}
.help-head.big .eyebrow{font-size:13px}
h1,h2{font-weight:500}
.soft{color:rgba(2,7,10,.42)}
.mtag{display:inline-flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.07em;text-transform:uppercase;font-weight:500}
.mtag i{width:9px;height:9px;border-radius:50%;background:var(--blue);flex:none}
.sec,.harv,.phil,.help{padding-top:clamp(88px,10vw,150px)}
.sec{padding-bottom:clamp(88px,10vw,150px)}

/* ---- What we are building: centred head, photo backdrop that turns to glass ---- */
.help{background:#fff;padding-bottom:clamp(88px,10vw,150px)}
.help::before,.help::after{display:none}
.help .wrap{max-width:1360px}
.help-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);overflow:hidden}
.help{--gb:0}
.help-bg{background:linear-gradient(to bottom,transparent 44vw,#02070A 67vw),url(/image/bg/help-blur.jpg) 50% -16vw/100% auto no-repeat #02070A}
.help-bg::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 44vw,#02070A 67vw),url(/image/bg/surgery-hd.jpg) 50% -16vw/100% auto no-repeat;opacity:calc(1 - var(--gb));transform:scale(calc(1 + var(--gb)*.04));will-change:opacity}
.help-bg::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,calc(.5 + var(--gb)*.28))}
.help-head.big{max-width:900px;margin:0 auto 48px;text-align:center}
.help-head.big h2{font-size:clamp(2.4rem,5vw,4.2rem);font-weight:500;letter-spacing:-.045em}
.help-head .soft{color:rgba(2,7,10,.58)}
.help-sub{margin:24px auto 0;max-width:60ch;color:rgba(2,7,10,.72)}
.pcards{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.pcards .pcard{background:var(--cream,#F7F4EF);border:0;border-radius:28px;box-shadow:0 1px 2px rgba(2,7,10,.04),0 24px 60px rgba(2,7,10,.10)}
.pcards .pcard .ppanel{flex:none;margin:12px 12px 0;border-radius:20px;padding:16px 12px;height:480px;min-height:0}
.pcards .ui{width:100%}
.pcards .pcard .msgs{height:185px}
.pcards .ptext{padding:22px 28px 28px;gap:8px}
.plabel{font-family:'Geist Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.pcards .ptext h3{font-size:clamp(1.35rem,1.8vw,1.7rem);font-weight:500;letter-spacing:-.03em}
.pcards .ptext p{font-size:1rem;max-width:none;min-height:0;color:var(--ink-soft)}
.help-cta{display:flex;justify-content:center;margin-top:56px}
/* cards rise in one by one as you scroll (progress --c is set per card by js/site.js) */
.pcards .pcard{will-change:transform,opacity;backface-visibility:hidden}
@media (max-width:1060px){.pcards{grid-template-columns:1fr;max-width:560px;margin:0 auto}}

/* ---- Recognition: copy + big numbers, dark feature card, photo row ---- */
.awd{background:#fff;padding-bottom:clamp(88px,10vw,150px)}
.awd .wrap{max-width:1360px}
.awd-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(40px,7vw,120px);align-items:center}
.awd-copy h2{font-size:clamp(2.2rem,4.4vw,3.8rem);font-weight:500;letter-spacing:-.045em;line-height:1.06;margin:0 0 24px}
.awd-copy>p{max-width:46ch;color:var(--ink-soft);font-size:1.1rem;margin:0 0 32px}
.awd-stats{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:72px;max-width:640px}
.awd-stats>div{border-bottom:1px solid var(--line-strong);padding-bottom:24px}
.awd-stats b{display:block;font-size:clamp(2.8rem,5vw,4.2rem);font-weight:400;letter-spacing:-.05em;line-height:1}
.awd-stats span{display:block;margin-top:12px;color:var(--ink-soft);font-size:1.05rem}
.awd-card{display:flex;flex-direction:column;background:#0a0c0e;color:#fff;border-radius:28px;overflow:hidden;box-shadow:0 30px 70px rgba(2,7,10,.22);transition:transform .4s cubic-bezier(.22,1,.36,1)}
.awd-card:hover{transform:translateY(-4px)}
.awd-vis{background:#14181b;display:flex;align-items:center;justify-content:center;height:clamp(300px,30vw,400px);padding:32px;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.06)}
.awd-vis img{height:100%;width:auto;max-width:100%;object-fit:contain;border-radius:8px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.awd-body{padding:34px 38px 36px;display:flex;flex-direction:column;gap:14px}
.awd-body h3{font-size:1.4rem;font-weight:500;letter-spacing:-.025em;line-height:1.2;color:#fff}
.awd-body p{color:rgba(255,255,255,.62);font-size:1.02rem;line-height:1.55}
.awd-foot{display:flex;align-items:center;justify-content:space-between;margin-top:18px;color:rgba(255,255,255,.7)}
.awd-go{width:46px;height:46px;border-radius:12px;background:#22272b;color:#fff;display:grid;place-items:center;font-size:20px;transition:background .25s,transform .25s}
.awd-card:hover .awd-go{background:var(--blue);transform:translateX(3px)}
.awd-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:88px}
.awd-photos figure{position:relative;aspect-ratio:4/3;border-radius:24px;overflow:hidden;background:#eee}
.awd-photos img{width:100%;height:100%;object-fit:cover}
.awd-photos figcaption{position:absolute;left:16px;bottom:16px;padding:7px 14px;border-radius:999px;background:rgba(2,7,10,.38);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.24);color:#fff;font-size:13px}
@media (max-width:960px){.awd-grid{grid-template-columns:1fr}.awd-photos{grid-template-columns:1fr;margin-top:56px}.awd-stats{margin-top:48px;gap:28px}}

/* ---- News: horizontal carousel ---- */
.newsc{--gut:max(28px,calc((100vw - var(--wrap))/2 + 28px));overflow:hidden;padding-bottom:clamp(64px,7vw,100px)}
.newsc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:56px}
.newsc-head h2{font-size:clamp(2.2rem,4.4vw,3.8rem);font-weight:500;letter-spacing:-.045em;line-height:1.05;margin:0;max-width:none}
.newsc-arrows{display:flex;gap:10px}
.narr{width:50px;height:50px;border-radius:12px;border:1px solid var(--line-strong);background:#fff;font-size:20px;display:grid;place-items:center;transition:border-color .2s,background .2s,opacity .2s}
.narr:hover:not(:disabled){border-color:var(--ink);background:var(--ink);color:#fff}
.narr:disabled{opacity:.3;cursor:default}
.ntrack{display:flex;gap:36px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px var(--gut) 10px;scroll-padding-left:var(--gut);-webkit-overflow-scrolling:touch}
.ntrack::-webkit-scrollbar{display:none}
.ncard{flex:0 0 clamp(290px,36vw,580px);scroll-snap-align:start;display:flex;flex-direction:column;gap:22px}
.nvis{aspect-ratio:4/3;border-radius:24px;overflow:hidden;background:#eef1f3;position:relative}
.nvis img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.22,1,.36,1)}
.ncard:hover .nvis img{transform:scale(1.04)}
.nvis.logo{background:#fff;border:1px solid var(--line);display:grid;place-items:center;padding:14%}
.nvis.logo img,.nvis.dark img,.nvis.wide img{object-fit:contain}
.nvis.wide{background:#000}
.nvis.logo img{mix-blend-mode:multiply}
.nvis.dark{background:var(--ink);display:grid;place-items:center;padding:22%}
.ncard h3{font-size:clamp(1.3rem,1.8vw,1.65rem);font-weight:500;letter-spacing:-.025em;line-height:1.22;max-width:26ch}
.nmeta{display:flex;align-items:center;gap:18px;color:var(--ink-soft);font-size:13px;letter-spacing:.07em;text-transform:uppercase}
.newsc-all{margin-top:48px}
@media (max-width:700px){.newsc-head{align-items:flex-start;flex-direction:column}.ncard{flex-basis:82vw}.ntrack{gap:20px}}


/* ---- native scroll-driven animation: runs on the compositor, locked to the scroll position (no JS lag) ---- */
@keyframes pcard-in{from{opacity:0;transform:translate3d(0,80px,0) scale(.95)}to{opacity:1;transform:none}}
@keyframes bg-sharp-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}
@keyframes bg-veil{from{background:rgba(255,255,255,.5)}to{background:rgba(255,255,255,.78)}}
@supports (animation-timeline:view()){
  .pcards .pcard{animation:pcard-in linear both;animation-timeline:view();
    animation-range:entry 0vh entry 18vh}
  .pcards .pcard:nth-child(2){animation-range:entry 9vh entry 27vh}
  .pcards .pcard:nth-child(3){animation-range:entry 18vh entry 36vh}
  @media (max-width:1060px){.pcards .pcard:nth-child(n){animation-range:entry 0vh entry 20vh}}
  .help-bg::before{animation:bg-sharp-out linear both;animation-timeline:view();animation-range:cover 25vh cover 115vh}
  .help-bg::after{animation:bg-veil linear both;animation-timeline:view();animation-range:cover 25vh cover 115vh}
}
@media (prefers-reduced-motion:reduce){
  .pcards .pcard{animation:none!important;opacity:1;transform:none}
  .help-bg::before{animation:none!important;opacity:0}
  .help-bg::after{animation:none!important;background:rgba(255,255,255,.6)}
}

/* overflow:hidden would make these their own scroll containers and break the page-level scroll timelines */
.help{overflow:clip}
.help-bg{overflow:clip}

/* ---- product cards: equal-height demos, same alignment as the chat card, single-line "Simulated data" tag ---- */
.help .wrap{max-width:1480px}
.pcards .pcard .ppanel{display:flex;align-items:stretch;height:540px;padding:16px 12px}
.pcards .ui{height:100%;display:flex;flex-direction:column;padding:20px 20px 16px}
.pcards .ui .draft-tag{margin-top:auto;padding-top:8px}
.pcards .ui-soap .soap{flex:1;min-height:0}
.pcards .pcard .ui-chat .msgs{flex:1;height:auto;min-height:0}
.ui-top b{min-width:0}
.sim{white-space:nowrap;flex:none;margin-left:10px;font-size:10.5px;padding:3px 9px}
.pcards .plist{height:calc(6*66px)}
.pcards .pr{height:56px;border-radius:16px;font-size:15px}
/* alert toast sits at the foot of the card so it never covers the heading */
.pcards .toast{top:auto;right:auto;left:50%;bottom:44px;transform:translate(-50%,10px) scale(.96);white-space:nowrap}
.pcards .toast.on{transform:translate(-50%,0)}

/* ---- "What we are building": dark theme so the painting stays visible ---- */
.help{background:#02070A}
.help-bg{-webkit-mask-image:none;mask-image:none}
.help-bg::after{background:rgba(2,7,10,calc(.25 + var(--gb)*.33))}
@keyframes bg-veil-dark{from{background:rgba(2,7,10,.25)}to{background:rgba(2,7,10,.58)}}
@supports (animation-timeline:view()){
  .help-bg::after{animation-name:bg-veil-dark}
}
@media (prefers-reduced-motion:reduce){.help-bg::after{background:rgba(2,7,10,.45)}}
.help .eyebrow{color:#7cc9f2}
.help-head.big h2{color:#fff}
.help-head .soft{color:rgba(255,255,255,.62)}
.help-sub{color:rgba(255,255,255,.82)}
.help-cta .btn-dark{background:#fff;color:var(--ink)}
.help-cta .btn-dark:hover{background:#e9f4fb}

/* ---- quote: dark theme, fading in from the white logo strip and flowing straight into the dark section below ---- */
#problem{background:linear-gradient(to bottom,#fff 0,#02070A 210px,#02070A 100%);padding:240px 0 130px}
#problem::before{background-image:radial-gradient(rgba(255,255,255,.16) 1.3px,transparent 1.6px)}
#problem .quote blockquote p,.quote blockquote p{color:#fff}
.quote footer{color:rgba(255,255,255,.72)}
.quote footer b{color:#fff}
.quote footer span{color:rgba(255,255,255,.5)}
/* the painting below emerges out of the dark instead of starting with a hard edge */
.help-bg{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 18%);mask-image:linear-gradient(to bottom,transparent 0,#000 18%)}
/* quote: solid dark from the top edge (no white fade) */
#problem{background:#02070A;padding:150px 0 130px}

/* logo strip: slimmer band */
.strip{padding:30px 0 32px}
.strip p{margin-bottom:18px}
.strip-row img{height:38px}
.strip-row .s-ucsi{height:36px}.strip-row .s-scenic{height:44px}.strip-row .s-mosti{height:50px}
.strip-row .s-harvard{height:36px}.strip-row .s-nvidia{height:46px}.strip-row .s-ijn{height:44px}.strip-row .s-rumc{height:40px}.strip-row .s-vh{height:42px}
@media (max-width:700px){
  .strip{padding:24px 0 26px}
  .strip-row img{height:32px}
  .strip-row .s-ucsi{height:30px}.strip-row .s-scenic{height:36px}.strip-row .s-mosti{height:40px}
  .strip-row .s-harvard{height:30px}.strip-row .s-nvidia{height:38px}.strip-row .s-ijn{height:36px}.strip-row .s-rumc{height:34px}.strip-row .s-vh{height:34px}
}

/* logo strip without the label: logos back to full size, band still slim */
.strip{padding:36px 0}
.strip-row img{height:48px}
.strip-row .s-ucsi{height:46px}.strip-row .s-scenic{height:56px}.strip-row .s-mosti{height:64px}
.strip-row .s-harvard{height:46px}.strip-row .s-nvidia{height:60px}.strip-row .s-ijn{height:58px}.strip-row .s-rumc{height:52px}.strip-row .s-vh{height:54px}
@media (max-width:700px){
  .strip{padding:28px 0}
  .strip-row img{height:40px}
  .strip-row .s-ucsi{height:38px}.strip-row .s-scenic{height:46px}.strip-row .s-mosti{height:52px}
  .strip-row .s-harvard{height:36px}.strip-row .s-nvidia{height:46px}.strip-row .s-ijn{height:48px}.strip-row .s-rumc{height:42px}.strip-row .s-vh{height:44px}
}

/* logo strip is draggable: JS drives the motion, the CSS animation steps aside */
.strip-marquee{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.strip-marquee.grabbing{cursor:grabbing}
.strip-row img{-webkit-user-drag:none;user-drag:none;pointer-events:none}

/* logo strip: locked. Pure CSS scroll, no hover/click/drag, logos can't be grabbed or saved from the page */
.strip-marquee{cursor:default;touch-action:auto;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.strip-marquee.grabbing{cursor:default}
.strip-track,.strip-marquee:hover .strip-track{animation:strip-scroll 45s linear infinite;animation-play-state:running}
.strip-row img{-webkit-user-drag:none;user-drag:none;pointer-events:none}
@media (prefers-reduced-motion:reduce){.strip-track,.strip-marquee:hover .strip-track{animation:none}.strip-marquee{pointer-events:auto;overflow-x:auto}}


/* card labels (Risk ranking / Shift handover / Clinical assistant): site font, solid black, easy to read */
.pcards .plabel{font-family:'Geist',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#02070A;opacity:1}
.pcards .plabel{font-weight:300}

/* ---- "How VitalSync runs": dark theme (the gradient diagram panel keeps its colour and pops against it) ---- */
#how-it-runs,.runs{background:#02070A}
#how-it-runs::before{background-image:radial-gradient(rgba(255,255,255,.14) 1.3px,transparent 1.6px)}
#how-it-runs .eyebrow{color:#7cc9f2}
#how-it-runs .runs-head h2,#how-it-runs h2{color:#fff}
#how-it-runs .runs-sub,#how-it-runs .runs-head p{color:rgba(255,255,255,.76)}
#how-it-runs .rscroll .rt-item,#how-it-runs .rt-item.on,#how-it-runs .rt-item:hover{color:#fff}
#how-it-runs .rt-h{color:#fff}
#how-it-runs .rt-p{color:rgba(255,255,255,.72)}
#how-it-runs .rt-dots i{background:rgba(255,255,255,.22)}
#how-it-runs .rt-dots i.on{background:#0297DE}
#how-it-runs .rt-stage{box-shadow:0 0 0 1px rgba(255,255,255,.08),0 30px 80px rgba(0,0,0,.5)}

/* ---- "How VitalSync runs": centred layout. Heading, then one wide diagram, then the current step below it ---- */
#how-it-runs .rscroll .runs-head{text-align:center;max-width:760px;margin:0 auto 28px}
#how-it-runs .rscroll .runs-sub{margin:14px auto 0}
#how-it-runs .rscroll .rsticky{justify-content:center}
#how-it-runs .rscroll .rtabs{display:flex;flex-direction:column-reverse;flex:none;height:auto;gap:30px;width:100%;max-width:920px;margin:0 auto}
#how-it-runs .rscroll .rt-stage{width:100%;height:clamp(290px,42vh,400px);min-height:0}
#how-it-runs .rscroll .rt-list{position:relative;height:clamp(130px,19vh,170px);width:100%}
#how-it-runs .rscroll .rt-item{left:0;right:0;top:0;text-align:center;transform:translateY(16px);transform-origin:center}
#how-it-runs .rscroll .rt-item.on{transform:none}
#how-it-runs .rscroll .rt-item.past{transform:translateY(-16px)}
#how-it-runs .rscroll .rt-h{font-size:clamp(1.6rem,2.6vw,2.3rem)}
#how-it-runs .rscroll .rt-p{margin:10px auto 0;max-width:54ch;font-size:1.05rem}
#how-it-runs .rt-dots{left:50%;top:auto;bottom:0;transform:translateX(-50%);flex-direction:row;gap:8px}
#how-it-runs .rt-dots i{width:26px;height:4px}
#how-it-runs .rt-dots i.on{width:46px;height:4px}
@media (prefers-reduced-motion:reduce){
  #how-it-runs .rscroll .rt-list{height:auto}
  #how-it-runs .rscroll .rt-item{transform:none;margin-bottom:24px}
  #how-it-runs .rt-dots{display:none}
}
#how-it-runs .rscroll .runs-head{max-width:980px}
#how-it-runs .rscroll .rtabs{gap:24px}
#how-it-runs .rscroll .rt-stage{height:clamp(260px,38vh,380px)}
#how-it-runs .rscroll .rt-list{height:clamp(120px,17vh,160px)}

/* rolling band: blue gradient and a slimmer height (three lines visible instead of five) */
.wheel{background:
  radial-gradient(ellipse 55% 130% at 8% 0%,#4cc8ff 0%,rgba(76,200,255,0) 62%),
  radial-gradient(ellipse 65% 120% at 100% 100%,#0a4fc2 0%,rgba(10,79,194,0) 68%),
  linear-gradient(120deg,#13a6f0 0%,#0297DE 45%,#0a6fd0 100%)!important;
  height:clamp(300px,25vw,360px)}
@media (max-width:860px){.wheel{height:400px}}

/* ---- Recognition (Harvard): dark theme, continuing straight on from the dark "How VitalSync runs" ---- */
.awd,.harv.awd{background:#02070A}
.awd .eyebrow{color:#7cc9f2}
.awd-copy h2{color:#fff}
.awd-copy .soft{color:rgba(255,255,255,.5)}
.awd-copy>p{color:rgba(255,255,255,.74)}
.awd .btn-dark{background:#fff;color:var(--ink)}
.awd .btn-dark:hover{background:#e9f4fb}
.awd-stats>div{border-bottom-color:rgba(255,255,255,.2)}
.awd-stats b{color:#fff}
.awd-stats span{color:rgba(255,255,255,.62)}
.awd-card{background:#0e1318;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 30px 80px rgba(0,0,0,.5)}
.awd-vis{background:#171d23;border-bottom-color:rgba(255,255,255,.08)}
.awd-photos figure{background:#10151a}

/* Recognition: certificate shown on its own (no card); heading and copy fully white */
.awd-copy .soft{color:#fff}
.awd-copy>p{color:#fff}
.awd-cert{display:flex;justify-content:center;align-items:center}
.awd-cert img{width:auto;max-width:100%;max-height:640px;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.awd-cert:hover img{transform:translateY(-4px)}

/* "Global Top 30," carries a blue highlight that sweeps in when the heading appears */
.hl{color:#fff;padding:0 .14em;margin:0 -.14em;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone;
  background:linear-gradient(#0297DE,#0297DE) left center/0% 100% no-repeat;transition:background-size .8s cubic-bezier(.22,1,.36,1) .35s}
.in .hl,.hl.in{background-size:100% 100%}
@media (prefers-reduced-motion:reduce){.hl{background-size:100% 100%;transition:none}}

/* ---- Mission: one large rounded card, photo behind, text and buttons at the bottom-left ---- */
.mission-sec{background:#fff}
.mission-sec .wrap{max-width:1560px}
.mcard{aspect-ratio:auto;min-height:clamp(540px,46vw,760px);border-radius:28px;display:flex;align-items:flex-end;cursor:default;background-size:cover;background-position:center 52%;isolation:isolate}
.mcard::before{background:linear-gradient(to top,rgba(2,7,10,.94) 0%,rgba(2,7,10,.78) 40%,rgba(2,7,10,.3) 72%,rgba(2,7,10,.1) 100%)!important}
.mcard:hover::before{background:linear-gradient(to top,rgba(2,7,10,.94) 0%,rgba(2,7,10,.78) 40%,rgba(2,7,10,.3) 72%,rgba(2,7,10,.1) 100%)!important}
.mcard-in{position:relative;z-index:2;padding:clamp(28px,4.2vw,64px);max-width:760px;color:#fff}
.mcard-eyebrow{display:block;font-size:13px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:#7cc9f2;margin-bottom:16px}
.mcard h2{color:#fff;font-size:clamp(1.9rem,3.2vw,2.9rem);font-weight:500;letter-spacing:-.04em;line-height:1.1;margin:0 0 16px}
.mcard h2 span{color:rgba(255,255,255,.62)}
.mcard p{color:rgba(255,255,255,.78);font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.6;max-width:58ch;margin:0 0 28px}
.mcard-btns{display:flex;flex-wrap:wrap;gap:12px}
.mbtn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:8px;font-weight:500;font-size:15px;letter-spacing:-.01em;transition:background .2s,transform .2s,border-color .2s}
.mbtn svg{width:16px;height:16px}
.mbtn-light{background:#f4f1ec;color:var(--ink)}
.mbtn-light:hover{background:#fff;transform:translateY(-1px)}
.mbtn-line{border:1px solid rgba(255,255,255,.7);color:#fff}
.mbtn-line:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-1px)}
.mcard-cap{max-width:70ch;margin:32px auto 0;text-align:center;color:var(--ink-soft)}
@media (max-width:700px){.mcard{min-height:560px;border-radius:22px}.mcard-in{padding:26px 22px}}

.mcard-cap{max-width:1120px;font-size:1.05rem;text-wrap:balance}

/* mission card matches the video's 16:9 shape, so the player fills it with no side bars */
@media (min-width:701px){
  .mcard{aspect-ratio:16/9;min-height:0;max-width:1240px;margin:0 auto}
}

/* ---- Philosophy: dark, centred statement over four numbered rows ---- */
.phl{background:#02070A;padding:clamp(88px,10vw,150px) 0}
.phl::before{display:none}
.phl .eyebrow{color:#7cc9f2}
.phl-head{text-align:center;max-width:980px;margin:0 auto clamp(48px,6vw,88px)}
.phl-h{font-size:clamp(2.1rem,4.4vw,3.8rem);font-weight:500;letter-spacing:-.045em;line-height:1.08;color:#fff;margin:0}
.phl-h span{color:rgba(255,255,255,.5)}
.phl-list{list-style:none;margin:0 auto;padding:0;max-width:1120px;border-bottom:1px solid rgba(255,255,255,.16)}
.phl-row{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1.25fr);gap:clamp(16px,3vw,48px);align-items:start;padding:clamp(28px,3.2vw,44px) 0;border-top:1px solid rgba(255,255,255,.16);position:relative;transition:background .35s,padding .35s cubic-bezier(.22,1,.36,1)}
.phl-row::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:#0297DE;transition:width .6s cubic-bezier(.22,1,.36,1)}
.phl-row:hover{background:rgba(255,255,255,.035);padding-left:18px;padding-right:18px}
.phl-row:hover::before{width:100%}
.phl-num{font-size:1rem;font-weight:400;letter-spacing:.04em;color:rgba(255,255,255,.4);padding-top:.6em;transition:color .3s}
.phl-row:hover .phl-num{color:#7cc9f2}
.phl-row h3{font-size:clamp(1.5rem,2.4vw,2.1rem);font-weight:500;letter-spacing:-.035em;line-height:1.12;color:#fff;margin:0}
.phl-row p{font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.6;color:rgba(255,255,255,.7);margin:0;max-width:52ch;padding-top:.25em}
@media (max-width:820px){
  .phl-row{grid-template-columns:44px 1fr;row-gap:10px}
  .phl-row p{grid-column:2}
}

/* ---- Philosophy v2: a photo for each principle, so the section has people in it ---- */
.phl{position:relative;isolation:isolate;overflow:clip}
.phl::after{content:"";position:absolute;left:50%;top:-12%;width:min(1100px,120vw);height:620px;transform:translateX(-50%);z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(2,151,222,.22),rgba(2,151,222,0) 70%)}
.phl .wrap{max-width:1320px}
.phl-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:start;max-width:none}
.phl-media{position:sticky;top:130px}
.phl-frame{position:relative;aspect-ratio:5/4;border-radius:28px;overflow:hidden;background:#10161b;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 40px 90px rgba(0,0,0,.55)}
.phl-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .8s ease,transform 1.6s cubic-bezier(.22,1,.36,1)}
.phl-frame img.on{opacity:1;transform:scale(1)}
.phl-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(2,7,10,.45),rgba(2,7,10,0) 45%);pointer-events:none}
.phl-list{max-width:none;margin:0;border-bottom:0}
.phl-row{display:block;padding:clamp(26px,3vw,40px) 0;cursor:default;outline:none;opacity:.42;transition:opacity .45s,padding .35s cubic-bezier(.22,1,.36,1)}
.phl-row.on,.phl-row:hover,.phl-row:focus-visible{opacity:1}
.phl-row:hover{background:none;padding-left:0;padding-right:0}
.phl-row:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.phl-top{display:flex;align-items:baseline;gap:20px}
.phl-row h3{font-size:clamp(1.6rem,2.6vw,2.3rem)}
.phl-row p{margin:14px 0 0 calc(1rem + 40px);max-width:46ch}
.phl-row.on::before{width:100%}
.phl-row.on .phl-num{color:#7cc9f2}
@media (max-width:900px){
  .phl-split{grid-template-columns:1fr}
  .phl-media{position:sticky;top:76px;z-index:3;margin-bottom:10px}
  .phl-frame{aspect-ratio:16/10;max-height:230px;border-radius:20px}
  .phl-row p{margin-left:0}
  .phl-row{opacity:.55}
}
@media (prefers-reduced-motion:reduce){.phl-frame img{transition:none}}

/* ---- Philosophy v3: manifesto. Large sentences whose words light up as you scroll ---- */
.mf .wrap{max-width:1100px}
.mf-list{list-style:none;margin:0 auto;padding:0;max-width:960px;display:flex;flex-direction:column;gap:clamp(56px,8vw,112px)}
.mf-item{position:relative}
.mf-label{display:flex;align-items:center;gap:16px;margin-bottom:20px;font-size:13px;letter-spacing:.07em;text-transform:uppercase}
.mf-label span{color:#7cc9f2;font-weight:500}
.mf-label b{font-weight:500;color:rgba(255,255,255,.55)}
.mf-label::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.16)}
.mf-t{font-size:clamp(1.7rem,3.3vw,2.9rem);font-weight:500;letter-spacing:-.035em;line-height:1.2;margin:0;color:#fff;max-width:none;text-wrap:pretty}
.mf-t .w{color:rgba(255,255,255,.2);transition:color .35s ease}
.mf-t .w.on{color:#fff}
@media (prefers-reduced-motion:reduce){.mf-t .w{color:#fff;transition:none}}

/* ---- Philosophy v4: short and quiet. Four principles, one line each ---- */
.pq-sec .wrap{max-width:1240px}
.pq-sec .phl-head{margin-bottom:clamp(48px,6vw,80px)}
.pq-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.16)}
.pq{padding:36px clamp(18px,2vw,30px) 8px;border-left:1px solid rgba(255,255,255,.12);position:relative}
.pq:first-child{border-left:0;padding-left:0}
.pq::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:#0297DE;transition:width .6s cubic-bezier(.22,1,.36,1)}
.pq:hover::before{width:100%}
.pq svg{width:30px;height:30px;fill:none;stroke:#7cc9f2;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:26px}
.pq h3{font-size:clamp(1.25rem,1.7vw,1.5rem);font-weight:500;letter-spacing:-.03em;line-height:1.18;color:#fff;margin:0 0 12px}
.pq p{font-size:1rem;line-height:1.55;color:rgba(255,255,255,.62);margin:0;max-width:28ch}
@media (max-width:980px){
  .pq-list{grid-template-columns:1fr 1fr}
  .pq{padding:32px 24px 12px 0;border-left:0;border-bottom:1px solid rgba(255,255,255,.12)}
}
@media (max-width:560px){.pq-list{grid-template-columns:1fr}}

.phl::after{display:none}

/* ---- "The people behind it": one centred founder quote ---- */
#journey{background:#E4F3FC}
#journey::before{display:none}
.fq{text-align:center;max-width:1000px;margin:0 auto;padding:clamp(24px,4vw,56px) 0 clamp(8px,2vw,24px)}
.fq .eyebrow{justify-content:center;color:#0272A8;margin-bottom:34px}
.fq-q{margin:0}
.fq-mark{width:clamp(40px,5vw,60px);height:auto;fill:#0297DE;margin:0 auto 26px;opacity:.9}
.fq-q p{font-size:clamp(1.8rem,3.9vw,3.4rem);font-weight:500;letter-spacing:-.04em;line-height:1.16;color:#02070A;text-wrap:balance;max-width:none;margin:0}
.fq-q em{font-style:normal;color:#0297DE}
.fq-q footer{margin-top:40px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:1rem}
.fq-q footer::before{content:"";width:44px;height:2px;background:#0297DE;border-radius:2px;margin-bottom:18px}
.fq-q footer b{font-weight:600;color:#02070A}
.fq-q footer span{color:rgba(2,7,10,.58)}
#journey .cta-row{justify-content:center;margin:48px 0 64px!important}

/* ---- "The people behind it": white with fine grey dots; photo rows scroll by themselves, endlessly, in opposite directions ---- */
#journey{background:#fff}
#journey::before{display:block;background-image:radial-gradient(rgba(2,7,10,.20) 1.3px,transparent 1.6px)}
.fq .eyebrow{color:var(--blue-ink)}
.d-track{padding:0 18px 0 0;will-change:transform;animation:d-left 90s linear infinite}
.d-row:nth-child(2) .d-track{animation-name:d-right;animation-duration:100s}
@keyframes d-left{from{transform:translate3d(0,0,0)}to{transform:translate3d(-25%,0,0)}}
@keyframes d-right{from{transform:translate3d(-25%,0,0)}to{transform:translate3d(0,0,0)}}
.d-rows{pointer-events:none}
@media (prefers-reduced-motion:reduce){.d-track{animation:none}.d-row{overflow-x:auto}}

/* quote legibility: the dot texture fades out behind the text; darker type; name and role sit in a clear row with a photo */
.fq{position:relative;isolation:isolate}
.fq::before{content:"";position:absolute;left:50%;top:50%;width:min(1500px,145%);height:150%;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 50% 50% at 50% 50%,#fff 0%,#fff 58%,rgba(255,255,255,0) 100%)}
.fq-q p{color:#02070A;font-weight:500}
.fq .eyebrow{color:#02607f;font-weight:600}
.fq-q footer{flex-direction:row;justify-content:center;align-items:center;gap:16px;margin-top:44px;text-align:left}
.fq-q footer::before{display:none}
.fq-av{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(2,7,10,.14),0 8px 20px rgba(2,7,10,.12)}
.fq-who{display:flex;flex-direction:column;gap:2px}
.fq-who b{font-size:1.1rem;font-weight:600;color:#02070A;letter-spacing:-.01em}
.fq-who span{font-size:.98rem;color:rgba(2,7,10,.74)}
.fq-q p::after{content:"";display:block;width:44px;height:2px;background:#0297DE;border-radius:2px;margin:34px auto 0}
#journey .cta-row{position:relative;z-index:2}

.strip-row .s-mystartup{height:34px}
.strip-row .s-cradle{height:40px}
@media (max-width:700px){.strip-row .s-mystartup{height:28px}.strip-row .s-cradle{height:32px}}
.strip-row .s-mystartup{height:24px}
.strip-row .s-cradle{height:36px}
@media (max-width:700px){.strip-row .s-mystartup{height:20px}.strip-row .s-cradle{height:30px}}

/* ---- rolling band on phones and iPad: stacked, centred, no overlap ---- */
@media (max-width:860px){
  .wheel{display:grid;grid-template-columns:1fr;grid-template-rows:auto 150px auto;height:auto;gap:6px;justify-items:center;text-align:center;padding:52px 22px 56px}
  .wheel .w-label{white-space:normal;font-size:1.05rem;line-height:1.3;color:rgba(255,255,255,.9)}
  .wheel .w-label br{display:none}
  .wheel .w-list{width:100%;height:150px;margin:0}
  .wi{left:0;right:0;text-align:center;white-space:normal;font-size:clamp(1.55rem,7vw,2.3rem);line-height:1.1;padding:0 8px}
  .wheel .w-cta{justify-self:center;margin-top:8px}
}

/* iPad: Harvard photos sit three across instead of three tall stacked pictures */
@media (min-width:561px) and (max-width:960px){
  .awd-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:48px}
  .awd-photos figure{aspect-ratio:3/4;border-radius:18px}
  .awd-photos figcaption{left:10px;bottom:10px;font-size:11.5px;padding:5px 10px}
  .awd-cert img{max-height:520px}
}

/* =====================================================================
   PHONE TUNING (<= 700px): smaller hero text, faster/lighter strips, visible backdrop, compact cards
   ===================================================================== */
@media (max-width:700px){
  .hero-in{padding:120px 20px 110px}
  .glass-pill{font-size:12px;padding:6px 12px 6px 7px;gap:8px;line-height:1.3;max-width:100%}
  .glass-pill em{font-size:11px;padding:2px 9px}
  .hero h1{font-size:1.95rem;line-height:1.1;margin-bottom:12px}
  .hero .sub{font-size:1rem;margin-bottom:24px}
  .hero .cta-row{gap:10px}
  .hero .btn{padding:11px 18px;font-size:14px}
  .hero-trust{font-size:12.5px;padding:8px 14px;margin-top:20px;line-height:1.35;text-align:left}
  .hero-trust svg{width:14px;height:14px}

  .strip{padding:22px 0}
  .strip-track,.strip-marquee:hover .strip-track{animation-duration:18s}
  .strip-row img{height:34px;margin:0 22px}
  .strip-row .s-ucsi{height:32px}.strip-row .s-scenic{height:40px}.strip-row .s-mosti{height:44px}
  .strip-row .s-harvard{height:30px}.strip-row .s-nvidia{height:40px}.strip-row .s-ijn{height:38px}
  .strip-row .s-rumc{height:34px}.strip-row .s-vh{height:36px}.strip-row .s-mystartup{height:18px}.strip-row .s-cradle{height:28px}

  .help{padding-top:72px;padding-bottom:64px}
  .help-bg::before{animation:none!important;opacity:1!important;transform:none!important;
    background:linear-gradient(to bottom,transparent 560px,#02070A 980px),url(/image/bg/surgery-hd.jpg) 50% -30px/auto 980px no-repeat}
  .help-bg::after{animation:none!important;background:rgba(2,7,10,.18)!important}
  .help-head.big{margin-bottom:28px}
  .help-head.big h2{font-size:1.85rem}
  .help-sub{font-size:.98rem;margin-top:14px}

  .pcards{gap:18px}
  .pcards .pcard .ppanel{height:372px;padding:10px 8px;margin:8px 8px 0;border-radius:16px}
  .pcards .ui{padding:14px 14px 10px;border-radius:16px;font-size:13px}
  .pcards .ui-top{margin-bottom:8px;font-size:13px}
  .pcards .ui-top b{line-height:1.25}
  .sim{font-size:9.5px;padding:2px 7px;margin-left:6px}
  .pcards .plist{height:calc(6*50px)}
  .pcards .pr{height:44px;border-radius:12px;font-size:13px;gap:8px;padding:0 10px}
  .pcards .pr b{width:auto;white-space:nowrap}
  .pcards .pr .pv{font-size:11.5px}
  .pcards .ppill,.pcards .pr em{font-size:11px;padding:3px 8px;white-space:nowrap}
  .pcards .ui .draft-tag{font-size:10px;padding-top:4px}
  .pcards .ui-soap .soap{font-size:12.5px;line-height:1.45}
  .pcards .msgs{gap:7px}
  .pcards .toast{bottom:20px;font-size:12px;padding:9px 13px}
  .pcards .ptext{padding:14px 20px 20px;gap:5px}
  .pcards .ptext h3{font-size:1.2rem}
  .pcards .ptext p{font-size:.92rem;line-height:1.45}
  .plabel{font-size:11.5px}

  .d-rows{gap:10px}
  .d-track{gap:10px;padding-right:10px}
  .d-item.s{height:110px}.d-item.t{height:140px}
  .d-item{border-radius:12px}
  .d-track{animation-duration:16s}
  .d-row:nth-child(2) .d-track{animation-duration:17s}
}

/* hero pill: plain text, no separate white tag */
.glass-pill{padding:9px 18px 9px 20px}
@media (max-width:700px){
  .glass-pill{padding:8px 14px 8px 16px;font-size:12.5px;text-align:left}
  .hero-trust{display:none}
  .pcards .pcard .ppanel{height:396px}
  .pcards .plist{height:calc(6*46px)}
  .pcards .pr{height:40px}
  .d-track{animation-duration:30s}
  .d-row:nth-child(2) .d-track{animation-duration:32s}
}
@media (max-width:700px){.glass-pill{font-size:12px;text-wrap:balance;max-width:330px}}

/* hero: "Incubated by" label above a centred, non-clickable pill */
.inc{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}
.inc-by{font-size:13px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.85)}
.inc-pill{justify-content:center;text-align:center;cursor:default;pointer-events:none;padding:9px 20px}
.inc-pill:hover{background:var(--glass)}
@media (max-width:700px){
  .inc-by{font-size:11.5px}
  .inc-pill{font-size:12.5px;padding:8px 16px;max-width:300px;text-wrap:balance}
}

/* phone: show the WHOLE painting, landscape, directly behind the heading and intro text */
@media (max-width:700px){
  .help-bg::before{background:linear-gradient(to bottom,rgba(2,7,10,0) 0,rgba(2,7,10,0) 330px,#02070A 420px),url(/image/bg/surgery-hd.jpg) 50% 30px/100% auto no-repeat!important}
  .help-bg::after{background:linear-gradient(to bottom,rgba(2,7,10,.2) 0,rgba(2,7,10,.2) 330px,rgba(2,7,10,0) 420px)!important}
}

/* phone: taller demo boxes, compact paging dialog that fits inside, chips never overlap */
.sug{flex:none;white-space:nowrap}
@media (max-width:700px){
  .pcards .pcard .ppanel{height:470px}
  .pcards .plist{height:calc(6*52px)}
  .pcards .pr{height:46px}
  .pcards .ui .draft-tag{margin-top:auto}
  .modal{padding:10px}
  .dlg{padding:14px 14px 12px;border-radius:16px;width:100%}
  .dlg-top{margin-bottom:6px;font-size:14px}
  .dlg-row{padding:6px 0;font-size:12.5px}
  .sbar{margin:6px 0 10px;padding:9px 11px;font-size:12px;line-height:1.4}
  .sbar p{margin:0 0 4px;gap:8px}
  .dlg-actions .dbtn{padding:8px 14px;font-size:12.5px}
  .sugs{gap:6px;margin-bottom:8px}
  .sug{padding:6px 11px;font-size:12px}
  .nsteps{font-size:12.5px;gap:4px}
  .mnote,.mlist li{font-size:12.5px}
}

/* RM50,000 SCENIC photos: highlighted, first in the rows, slightly larger with a blue ring */
.d-item.big{height:clamp(190px,19vw,280px)}

.article-gal{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:960px;margin:44px -120px 8px}
.article-gal img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
@media (max-width:1100px){.article-gal{margin:36px 0 8px}}
@media (max-width:560px){.article-gal{grid-template-columns:1fr}}
.article-figure img{max-height:560px}

/* chat chips: fixed-height row so the messages above never jump or overlap when the chips change */
.pcards .sugs{align-content:flex-start}
@media (max-width:700px){.pcards .sugs{min-height:70px}}

/* smaller photo rows (desktop and phone); the SCENIC win photos stay a little bigger than the rest */
.d-item.s{height:clamp(130px,12.5vw,185px)}
.d-item.t{height:clamp(160px,16vw,230px)}
.d-item.big{height:clamp(190px,19vw,280px)}
.d-track{animation-duration:62s}
.d-row:nth-child(2) .d-track{animation-duration:70s}
@media (max-width:700px){
  .d-item.s{height:84px}.d-item.t{height:108px}.d-item.big{height:132px}
  .d-track{animation-duration:26s}.d-row:nth-child(2) .d-track{animation-duration:28s}
}
