/* ============================================================
   Vizlitics — design system
   Palette:  Vizlitics brand blues + content neutrals,
   with approved red, green, yellow, and info states
   from the brand palette.
   Type:     Archivo (display, expanded weights)
             IBM Plex Sans (body)  ·  IBM Plex Mono (data labels)
   ============================================================ */

:root{
  --paper:      #F4F7FF;
  --paper-2:    #DFE8FE;
  --white:      #FFFFFF;
  --ink:        #101828;
  --ink-2:      #4B5563;
  --ink-3:      #5B6472;
  --hair:       #CBD7F0;
  --hair-2:     #B2B2B2;

  --navy:       #162A58;
  --accent:       #2458D8;
  --accent-bright:#64A6FD;
  --accent-wash:  #D9E4FF;

  /* warm signal — foundation layer ONLY */
  --gold:     #FFCB42;
  --gold-2:   #5387FF;
  --gold-wash:#FFFAEB;

  --success:     #05A37E;
  --success-wash:#E5F6F2;
  --danger:      #E04A3F;
  --danger-wash: #FCECEB;
  --info:        #5387FF;
  --info-wash:   #F4F7FF;
  --muted:       #F0F0F0;

  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 20px;

  --shadow-sm: 0 1px 2px rgba(22,42,88,.05), 0 2px 8px rgba(22,42,88,.04);
  --shadow-md: 0 8px 30px rgba(22,42,88,.08), 0 2px 8px rgba(22,42,88,.05);

  --maxw: 1140px;
  --gutter: clamp(20px, 5vw, 56px);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
}

/* Direction-aware reveals for content entering the viewport */
.scroll-reveal{
  --reveal-y:36px;
  opacity:0;
  transform:translate3d(0,var(--reveal-y),0) scale(.985);
  transition:
    opacity .7s ease var(--reveal-delay,0ms),
    transform .78s cubic-bezier(.16,.76,.3,1) var(--reveal-delay,0ms);
  backface-visibility:hidden;
}
.scroll-reveal--up{ --reveal-y:-36px; }
.scroll-reveal--down{ --reveal-y:36px; }
.scroll-reveal.is-visible{ opacity:1; transform:translate3d(0,0,0) scale(1); }
@media (prefers-reduced-motion: reduce){
  .scroll-reveal{ transition-duration:.7s,.78s!important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"IBM Plex Sans", system-ui, -apple-system, sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ---- type ---- */
h1,h2,h3,h4,.display{
  font-family:"Archivo", "IBM Plex Sans", sans-serif;
  font-variation-settings:"wdth" 100;
  letter-spacing:-.02em;
  line-height:1.04;
  margin:0;
  color:var(--ink);
}
.eyebrow{
  font-family:"IBM Plex Mono", monospace;
  font-size:12.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 18px;
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:""; width:26px; height:1.5px; background:var(--accent); display:inline-block; }
.mono{ font-family:"IBM Plex Mono", monospace; }

a{ color:var(--navy); text-decoration:none; }

/* ---- layout ---- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(56px, 9vw, 120px); }
.lede{ font-size:clamp(19px, 2.1vw, 23px); color:var(--ink-2); line-height:1.5; max-width:62ch; }

/* ---- focus / a11y ---- */
:focus-visible{ outline:2.5px solid var(--accent); outline-offset:3px; border-radius:3px; }

/* ============================================================
   Header
   ============================================================ */
/* ============================================================
   Press-coverage promo bar (dismissible, above header)
   ============================================================ */
.promo-bar{ background:linear-gradient(90deg, var(--navy), var(--accent)); color:#fff; }
.promo-bar__inner{ display:flex; align-items:center; gap:16px; padding-block:11px; }
.promo-bar__tag{
  flex:none; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  border:1px solid rgba(255,255,255,.45); color:#fff; border-radius:100px; padding:5px 12px; white-space:nowrap;
}
.promo-bar__text{ flex:1; margin:0; font-size:14.5px; font-weight:600; line-height:1.35; color:#fff; }
.promo-bar__cta{
  flex:none; display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  background:#fff; color:var(--navy); font-weight:600; font-size:13.5px;
  border-radius:100px; padding:8px 16px; transition:transform .15s, box-shadow .15s;
}
.promo-bar__cta:hover{ transform:translateY(-1px); box-shadow:0 4px 14px rgba(0,0,0,.18); }
.promo-bar__cta svg{ width:14px; height:14px; }
.promo-bar__close{
  flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%; color:rgba(255,255,255,.85);
  background:transparent; border:0; cursor:pointer; transition:background .15s, color .15s;
}
.promo-bar__close:hover{ background:rgba(255,255,255,.15); color:#fff; }
.promo-bar__close svg{ width:18px; height:18px; }
@media (max-width:720px){
  .promo-bar__inner{ flex-wrap:wrap; gap:10px 12px; padding-block:12px; }
  .promo-bar__text{ flex:1 1 100%; order:3; }
  .promo-bar__tag{ order:1; }
  .promo-bar__close{ order:2; margin-left:auto; }
  .promo-bar__cta{ order:4; }
}

.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(244,247,255,.88);
  backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid var(--hair);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:66px;
}
.brand{ display:flex; align-items:center; gap:11px; }
.brand__logo{ display:block; width:112px; height:auto; flex:none; }
.brand__mark{ width:26px; height:26px; flex:none; }
.brand__name{
  font-family:"Archivo", sans-serif;
  font-weight:800; font-size:20px; letter-spacing:-.03em; color:var(--ink);
}
.brand__name b{ color:var(--accent); font-weight:800; }
.nav__links{ display:flex; align-items:center; gap:6px; }
.nav__links a{
  font-size:14.5px; color:var(--ink-2); padding:8px 12px; border-radius:var(--r-sm);
  transition:background .15s, color .15s;
}
.nav__links a:hover{ background:var(--paper-2); color:var(--ink); }
.nav__links a.is-active{ color:var(--accent); }
.nav__cta{
  margin-left:6px; background:var(--navy); color:#fff!important;
  padding:9px 16px!important; border-radius:var(--r-sm); font-weight:500;
}
.nav__cta:hover{ background:var(--ink); }
.nav__toggle{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
.nav__toggle svg{ width:24px; height:24px; stroke:var(--ink); }

@media (max-width:1040px){
  .nav__toggle{ display:block; }
  .nav__links{
    position:absolute; top:66px; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:2px;
    background:var(--white); border-bottom:1px solid var(--hair);
    padding:12px var(--gutter) 20px; box-shadow:var(--shadow-md);
    display:none;
  }
  .nav__links.is-open{ display:flex; }
  .nav__links a{ padding:12px; font-size:16px; }
  .nav__cta{ margin-left:0; text-align:center; margin-top:6px; }
}

/* ============================================================
   Buttons
   ============================================================ */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-family:"IBM Plex Sans", sans-serif; font-weight:500; font-size:15.5px;
  padding:12px 22px; border-radius:var(--r-sm); border:1px solid transparent;
  cursor:pointer; transition:transform .12s, background .15s, box-shadow .15s;
}
.btn svg{ width:16px; height:16px; }
.btn--primary{ background:var(--accent); color:#fff; }
.btn--primary:hover{ background:var(--navy); transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.btn--ghost{ background:transparent; color:var(--navy); border-color:var(--hair-2); }
.btn--ghost:hover{ border-color:var(--navy); background:var(--white); }

/* ============================================================
   Hero / identity band
   ============================================================ */
.hero{
  padding-block:88px clamp(48px,7vw,88px);
  position:relative; overflow:hidden;
  background:
    linear-gradient(115deg, rgba(223,232,254,.94) 0%, rgba(244,247,255,.98) 48%, rgba(100,166,253,.24) 100%),
    var(--paper);
}
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(22,42,88,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22,42,88,.08) 1px, transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.86), rgba(0,0,0,.18) 78%, transparent 100%);
  mask-image:linear-gradient(180deg, rgba(0,0,0,.86), rgba(0,0,0,.18) 78%, transparent 100%);
}
.hero__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,72px); align-items:center; }
.hero h1{ font-size:clamp(38px, 6.2vw, 74px); font-weight:800; }
.hero h1 .accent{ color:var(--accent); }
.hero__sub{ margin-top:26px; font-size:clamp(18px,2.2vw,23px); color:var(--ink-2); line-height:1.5; max-width:52ch; }
.hero__callout{ margin-top:20px; padding-left:18px; border-left:3px solid var(--accent); font-family:"Archivo",sans-serif; font-weight:700; font-size:clamp(18px,2vw,22px); letter-spacing:-.01em; color:var(--navy); line-height:1.4; max-width:50ch; }
.hero__actions{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }

@media (max-width:900px){ .hero__grid{ grid-template-columns:1fr; } .hero__art{ order:0; } }

/* clinical summary demo card (hero art) */
.cs-card{
  background:#fff; border:1px solid var(--hair); border-radius:16px;
  box-shadow:0 24px 60px -24px rgba(22,42,88,.22); overflow:hidden;
  max-width:520px; margin:0 auto;
}
.cs-card__bar{ display:flex; align-items:center; gap:11px; padding:13px 16px; border-bottom:1px solid var(--hair); background:var(--paper); }
.cs-card__bar .ic{ width:30px; height:30px; border-radius:8px; background:var(--accent-wash); color:var(--accent); display:flex; align-items:center; justify-content:center; flex:none; }
.cs-card__bar .ic svg{ width:16px; height:16px; }
.cs-card__bar b{ font-size:13.5px; }
.cs-card__bar .sub{ font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); }
.cs-card__spec{ margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); border:1px solid var(--hair); border-radius:100px; padding:4px 11px; background:var(--accent-wash); }

.cs-pt{ display:flex; gap:12px; padding:16px 16px 12px; }
.cs-pt__avatar{ width:38px; height:38px; border-radius:10px; background:var(--navy); color:#fff; font-weight:800; font-family:"Archivo",sans-serif; display:flex; align-items:center; justify-content:center; font-size:14px; flex:none; }
.cs-pt b{ font-size:15px; }
.cs-pt .meta{ font-size:12px; color:var(--ink-3); }
.cs-pt p{ margin:5px 0 0; font-size:12.5px; color:var(--ink-2); line-height:1.45; }

.cs-facts{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 16px; }
.cs-facts span{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.02em; color:var(--ink-2); background:var(--paper-2); border:1px solid var(--hair); border-radius:6px; padding:4px 8px; }

.cs-label{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin:0; padding:13px 16px 8px; border-top:1px solid var(--hair); }
.cs-timeline{ list-style:none; margin:0; padding:0 16px 6px; max-height:288px; overflow-y:auto; }
.cs-timeline li{ display:grid; grid-template-columns:64px 1fr; gap:12px; padding:8px 0; }
.cs-when{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; color:var(--accent); text-align:right; padding-top:2px; white-space:nowrap; }
.cs-what{ position:relative; font-size:12.5px; color:var(--ink-2); line-height:1.45; border-left:2px solid var(--hair); padding-left:14px; }
.cs-what::before{ content:""; position:absolute; left:-5px; top:5px; width:8px; height:8px; border-radius:50%; background:var(--accent); border:2px solid #fff; }
.cs-what b{ color:var(--ink); font-weight:600; }
.cs-timeline::-webkit-scrollbar{ width:8px; }
.cs-timeline::-webkit-scrollbar-thumb{ background:var(--hair-2); border-radius:8px; border:2px solid #fff; }

.cs-foot{ display:flex; gap:9px; align-items:flex-start; padding:12px 16px; border-top:1px solid var(--hair); background:var(--paper); font-size:11px; color:var(--ink-3); line-height:1.45; }
.cs-foot svg{ width:14px; height:14px; color:var(--accent); flex:none; margin-top:1px; }

/* demo rotator (two auto-cycling product demos) */
.demo-rotator{ position:relative; }
.demo-slide{ display:none; }
.demo-slide.is-active{ display:block; animation:demoFade .5s ease both; }
@keyframes demoFade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.demo-dots{ display:flex; gap:8px; justify-content:center; margin-top:18px; }
.demo-dots button{ width:8px; height:8px; padding:0; border:0; border-radius:50%; background:var(--hair-2); cursor:pointer; transition:background .2s, width .2s; }
.demo-dots button:hover{ background:var(--ink-3); }
.demo-dots button.is-active{ background:var(--accent); width:24px; border-radius:5px; }

/* trial-matching eligibility screening card */
.ts-meta{ display:flex; flex-wrap:wrap; gap:12px 22px; padding:13px 16px; border-bottom:1px solid var(--hair); }
.ts-meta div{ font-size:12.5px; color:var(--ink); }
.ts-meta b{ display:block; font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3); font-weight:500; margin-bottom:3px; }
.ts-subtabs{ display:flex; align-items:center; gap:18px; padding:11px 16px; border-bottom:1px solid var(--hair); font-size:12.5px; }
.ts-subtabs > span:not(.ts-counts){ color:var(--ink-3); padding-bottom:2px; }
.ts-subtabs > span.is-active{ color:var(--ink); font-weight:600; border-bottom:2px solid var(--accent); }
.ts-counts{ margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.03em; color:var(--ink-3); }
.ts-counts em{ font-style:normal; }
.ts-counts .c-met{ color:var(--success); } .ts-counts .c-no{ color:var(--danger); } .ts-counts .c-unk{ color:var(--ink-3); }

.ts-criteria{ max-height:360px; overflow-y:auto; }
.ts-criteria::-webkit-scrollbar{ width:8px; }
.ts-criteria::-webkit-scrollbar-thumb{ background:var(--hair-2); border-radius:8px; border:2px solid #fff; }
.ts-crit{ display:grid; grid-template-columns:20px 1fr auto; gap:11px; align-items:start; padding:13px 16px; border-bottom:1px solid var(--hair); }
.ts-crit__no{ font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--ink-3); padding-top:2px; }
.ts-crit__txt{ font-size:12.5px; color:var(--ink-2); line-height:1.45; }
.ts-status{ align-self:start; font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; font-weight:600; padding:5px 9px; border-radius:6px; white-space:nowrap; }
.ts-status--met{ background:var(--success-wash); color:var(--success); border:1px solid var(--success); }
.ts-status--no{ background:var(--danger-wash); color:var(--danger); border:1px solid var(--danger); }
.ts-status--unk{ background:var(--paper-2); color:var(--ink-3); border:1px solid var(--hair-2); }
.ts-crit--open{ background:linear-gradient(0deg, var(--accent-wash), transparent 60%); }
.ts-evidence{ grid-column:1 / -1; margin-top:12px; background:#fff; border:1px solid var(--hair); border-radius:10px; padding:14px 16px; font-size:12px; color:var(--ink-2); line-height:1.5; }
.ts-evidence h6{ margin:0 0 8px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.ts-evidence p{ margin:0; }
.ts-evidence b{ color:var(--ink); font-weight:600; }
.ts-evidence ul{ list-style:none; margin:6px 0 0; padding:0; }
.ts-evidence li{ position:relative; padding:3px 0 3px 15px; }
.ts-evidence li::before{ content:""; position:absolute; left:3px; top:11px; width:5px; height:5px; border-radius:50%; background:var(--accent); }
.met-tag{ display:inline-block; margin-top:12px; font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:700; letter-spacing:.05em; color:var(--accent); background:var(--accent-wash); border:1px solid var(--hair); border-radius:6px; padding:6px 11px; }

/* product hero with demo card on the right */
.phero__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(28px,4vw,56px); align-items:start; }
@media (max-width:960px){ .phero__grid{ grid-template-columns:1fr; } }
.phero__col{ min-width:0; }
.phero__demo{ min-width:0; }
@media (max-width:960px){ .phero__demo{ margin-top:8px; } }

/* real-world data cohort dashboard card */
.rwd-cohort{ padding:11px 16px 0; font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.03em; color:var(--ink-3); }
.rwd-continuum{ display:flex; gap:4px; padding:11px 16px 4px; }
.rwd-continuum span{ flex:1; text-align:center; font-family:"IBM Plex Mono",monospace; font-size:8px; letter-spacing:.02em; text-transform:uppercase; color:#fff; padding:6px 2px; border-radius:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rwd-continuum span:nth-child(1){ background:var(--navy); }
.rwd-continuum span:nth-child(2){ background:var(--accent); }
.rwd-continuum span:nth-child(3){ background:var(--info); }
.rwd-continuum span:nth-child(4){ background:var(--success); }
.rwd-continuum span:nth-child(5){ background:var(--danger); }

.rwd-scroll{ max-height:330px; overflow-y:auto; }
.rwd-scroll::-webkit-scrollbar{ width:8px; }
.rwd-scroll::-webkit-scrollbar-thumb{ background:var(--hair-2); border-radius:8px; border:2px solid #fff; }

.rwd-kpis{ display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:12px 16px 4px; }
.rwd-kpi{ border:1px solid var(--hair); border-radius:10px; padding:12px 13px; }
.rwd-kpi .lbl{ font-family:"IBM Plex Mono",monospace; font-size:8.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); }
.rwd-kpi .val{ font-family:"Archivo",sans-serif; font-weight:800; font-size:23px; line-height:1; margin-top:5px; color:var(--navy); letter-spacing:-.02em; }
.rwd-kpi .val.teal{ color:var(--accent); } .rwd-kpi .val.red{ color:var(--danger); } .rwd-kpi .val.green{ color:var(--success); }
.rwd-kpi .sub{ font-size:10px; color:var(--ink-3); margin-top:5px; }

.rwd-sec{ padding:14px 16px 2px; }
.rwd-sec h6{ font-size:10.5px; font-family:"IBM Plex Mono",monospace; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin:0 0 11px; }
.rwd-stage{ display:grid; grid-template-columns:104px 1fr 38px; gap:10px; align-items:center; margin-bottom:9px; font-size:11.5px; }
.rwd-stage .nm{ color:var(--ink-2); }
.rwd-stage .track{ height:8px; background:var(--paper-2); border-radius:5px; overflow:hidden; }
.rwd-stage .fill{ display:block; height:100%; border-radius:5px; }
.rwd-stage .pct{ text-align:right; font-weight:700; font-family:"IBM Plex Mono",monospace; font-size:11px; }
.rwd-stage--i .fill{ background:var(--success); } .rwd-stage--i .pct{ color:var(--success); }
.rwd-stage--ii .fill{ background:var(--accent); } .rwd-stage--ii .pct{ color:var(--accent); }
.rwd-stage--iii .fill{ background:var(--gold); } .rwd-stage--iii .pct{ color:var(--navy); }
.rwd-stage--iv .fill{ background:var(--danger); } .rwd-stage--iv .pct{ color:var(--danger); }

.rwd-metrics{ display:flex; flex-wrap:wrap; gap:8px; padding:8px 16px 16px; }
.rwd-metric{ flex:1 1 90px; border:1px solid var(--hair); border-radius:8px; padding:9px 11px; }
.rwd-metric b{ display:block; font-family:"Archivo",sans-serif; font-weight:800; font-size:16px; color:var(--ink); }
.rwd-metric span{ font-family:"IBM Plex Mono",monospace; font-size:8.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-3); }

/* ============================================================
   RWD comprehensive multi-view dashboard (RWD product page)
   ============================================================ */
.rwd-dash{ display:flex; flex-direction:column; height:600px; max-width:544px; margin:0 auto; background:#fff; border:1px solid var(--hair); border-radius:16px; box-shadow:0 24px 60px -24px rgba(22,42,88,.22); overflow:hidden; }
.rwd-dash__bar{ display:flex; align-items:center; gap:10px; padding:12px 16px; background:var(--navy); color:#fff; }
.rwd-dash__bar .brand{ font-family:"Archivo",sans-serif; font-weight:800; font-size:13px; }
.rwd-dash__bar .chip{ color:#fff; font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.4); border-radius:100px; padding:3px 10px; }
.rwd-dash__bar .cohort{ margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:9px; color:rgba(255,255,255,.72); letter-spacing:.03em; }
.rwd-dash__tabs{ display:flex; border-bottom:1px solid var(--hair); background:var(--paper); }
.rwd-dash__tabs button{ flex:1; border:0; background:transparent; cursor:pointer; padding:11px 4px; font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-3); border-bottom:2px solid transparent; position:relative; }
.rwd-dash__tabs button:hover{ color:var(--ink); }
.rwd-dash__tabs button.is-active{ font-weight:600; color:var(--ink); }
/* underline fills over the auto-cycle interval so the active tab visibly counts down to the next auto-advance; duration must match INTERVAL in the site.js auto-cycle */
.rwd-dash__tabs button::after{ content:''; position:absolute; left:0; bottom:0; height:2px; width:0; background:currentColor; }
.rwd-dash__tabs button.is-active::after{ animation:rwdTabProgress 7000ms linear forwards; }
.rwd-dash.is-paused .rwd-dash__tabs button.is-active::after{ animation-play-state:paused; }
@keyframes rwdTabProgress{ from{ width:0%; } to{ width:100%; } }
.rwd-dash__tabs button[data-page="overview"].is-active{ color:var(--navy); }
.rwd-dash__tabs button[data-page="screening"].is-active{ color:var(--accent); }
.rwd-dash__tabs button[data-page="diagnosis"].is-active{ color:var(--info); }
.rwd-dash__tabs button[data-page="treatment"].is-active{ color:var(--danger); }
.rwd-dash__tabs button[data-page="survival"].is-active{ color:var(--success); }
.rwd-dash__body{ flex:1; overflow-y:auto; }
.rwd-dash__body::-webkit-scrollbar{ width:8px; }
.rwd-dash__body::-webkit-scrollbar-thumb{ background:var(--hair-2); border-radius:8px; border:2px solid #fff; }
.rwd-dash__title{ padding:13px 16px 0; }
.rwd-dash__title h5{ font-size:15px; font-weight:800; margin:0; letter-spacing:-.01em; }
.rwd-dash__title p{ margin:3px 0 0; font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.03em; color:var(--ink-3); }
.rwd-page{ display:none; padding-bottom:8px; }
.rwd-page.is-active{ display:block; animation:demoFade .4s ease both; }

.rwd-chart{ padding:6px 16px 8px; }
.rwd-chart svg{ width:100%; height:auto; display:block; }
.rwd-chart text{ font-family:"IBM Plex Mono",monospace; font-size:7px; fill:var(--ink-3); }

.rwd-km{ margin-top:8px; }
.rwd-km svg{ width:100%; height:auto; display:block; }
.rwd-km text{ font-family:"IBM Plex Mono",monospace; font-size:6.5px; fill:var(--ink-3); }
.rwd-km__legend{ display:flex; flex-wrap:wrap; gap:14px; font-size:10.5px; color:var(--ink-2); margin-bottom:6px; }
.rwd-km__legend i{ width:9px; height:9px; border-radius:2px; display:inline-block; margin-right:5px; }

.rwd-crit{ display:flex; gap:10px; align-items:flex-start; padding:9px 11px; border:1px solid var(--hair); border-radius:10px; margin-bottom:7px; }
.rwd-crit .ic{ width:26px; height:26px; border-radius:7px; background:var(--accent-wash); color:var(--accent); display:flex; align-items:center; justify-content:center; flex:none; }
.rwd-crit .ic svg{ width:15px; height:15px; }
.rwd-crit b{ font-size:12px; display:block; }
.rwd-crit span{ font-size:10.5px; color:var(--ink-3); }
.rwd-note{ background:var(--gold-wash); border:1px solid var(--gold); border-left:3px solid var(--gold); border-radius:8px; padding:9px 12px; font-size:10.5px; color:var(--navy); line-height:1.45; margin:6px 16px 4px; }
.rwd-note b{ color:var(--ink); }

.rwd-hbar{ display:grid; grid-template-columns:1fr 84px 40px; gap:9px; align-items:center; padding:5px 0; font-size:11.5px; }
.rwd-hbar .nm{ color:var(--ink-2); line-height:1.3; }
.rwd-hbar .nm em{ font-style:normal; font-family:"IBM Plex Mono",monospace; font-size:9px; color:var(--ink-3); margin-left:5px; }
.rwd-hbar .track{ height:7px; background:var(--paper-2); border-radius:5px; overflow:hidden; }
.rwd-hbar .fill{ display:block; height:100%; border-radius:5px; background:var(--accent); }
.rwd-hbar .pct{ text-align:right; font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:700; color:var(--ink-2); }

.rwd-subtabs{ display:flex; gap:6px; padding:12px 16px 2px; flex-wrap:wrap; }
.rwd-subtabs button{ border:1px solid var(--hair-2); background:#fff; border-radius:100px; padding:5px 12px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.03em; color:var(--ink-2); cursor:pointer; position:relative; overflow:hidden; }
.rwd-subtabs button.is-active{ color:var(--navy); font-weight:600; border-color:var(--navy); }
/* fills left-to-right over 1/N of the main tabs' interval (--rwd-sub-interval, set by site.js) so all N subtabs get a turn before the top-level tab advances */
.rwd-subtabs button::after{ content:''; position:absolute; top:0; left:0; bottom:0; width:0; background:var(--accent-wash); z-index:-1; }
.rwd-subtabs button.is-active::after{ animation-name:rwdSubtabFill; animation-duration:var(--rwd-sub-interval, 2333ms); animation-timing-function:linear; animation-fill-mode:forwards; }
.rwd-dash.is-paused .rwd-subtabs button.is-active::after{ animation-play-state:paused; }
@keyframes rwdSubtabFill{ from{ width:0%; } to{ width:100%; } }
.rwd-subpage{ display:none; }
.rwd-subpage.is-active{ display:block; animation:demoFade .35s ease both; }

.rwd-stagecards{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:12px 16px 2px; }
.rwd-stagecards div{ background:var(--paper-2); border:1px solid var(--hair); border-radius:9px; padding:9px 3px; text-align:center; }
.rwd-stagecards .p{ font-family:"Archivo",sans-serif; font-weight:800; font-size:17px; line-height:1; }
.rwd-stagecards .l{ font-family:"IBM Plex Mono",monospace; font-size:7.5px; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-3); margin-top:4px; }
.rwd-stagecards .g{ color:var(--success); } .rwd-stagecards .t{ color:var(--accent); } .rwd-stagecards .a{ color:var(--info); } .rwd-stagecards .r{ color:var(--danger); }

.rwd-tnm{ padding:12px 16px 2px; }
.rwd-subh{ font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin:12px 0 6px; }
.rwd-subh:first-child{ margin-top:0; }
.rwd-tnm .row{ display:grid; grid-template-columns:48px 1fr; gap:8px; padding:3px 0; font-size:11px; }
.rwd-tnm .row b{ color:var(--accent); font-family:"IBM Plex Mono",monospace; font-size:10.5px; }
.rwd-tnm .row span{ color:var(--ink-2); line-height:1.35; }

.rwd-histo{ padding:12px 16px 2px; }
.rwd-histo__cat{ border:1px solid var(--hair); border-radius:11px; overflow:hidden; margin-bottom:10px; }
.rwd-histo__hd{ display:flex; align-items:center; gap:8px; padding:9px 12px; color:#fff; }
.rwd-histo__hd b{ font-size:12.5px; } .rwd-histo__hd small{ font-weight:400; opacity:.82; font-size:9.5px; }
.rwd-histo__hd .pct{ margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:12px; font-weight:700; }
.rwd-histo__cat--nsclc .rwd-histo__hd{ background:var(--navy); }
.rwd-histo__cat--net .rwd-histo__hd{ background:var(--danger); }
.rwd-histo__cat--other .rwd-histo__hd{ background:var(--info); }
.rwd-histo__row{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; padding:8px 12px; border-top:1px solid var(--hair); font-size:11.5px; }
.rwd-histo__row b{ font-weight:600; color:var(--ink); }
.rwd-histo__row .sub{ display:block; color:var(--ink-3); font-size:9.5px; margin-top:2px; }
.rwd-histo__row .pct{ font-family:"IBM Plex Mono",monospace; font-weight:700; color:var(--ink); flex:none; }

.rwd-kras{ display:flex; flex-wrap:wrap; gap:10px 14px; padding:2px 0 4px; }
.rwd-kras span{ font-size:11.5px; color:var(--ink-2); display:flex; align-items:center; gap:6px; }
.rwd-kras i{ width:10px; height:10px; border-radius:3px; display:inline-block; }

/* ============================================================
   OnTrial multi-view dashboard (Trial Matching product page)
   reuses .rwd-dash shell + JS; adds curation/graph/performance
   ============================================================ */
.rwd-dash__tabs button[data-page="curation"].is-active{ color:var(--accent); }
.rwd-dash__tabs button[data-page="graph"].is-active{ color:var(--info); }
.rwd-dash__tabs button[data-page="performance"].is-active{ color:var(--navy); }

/* curation — trial list */
.tc-filters{ display:flex; flex-wrap:wrap; gap:6px; padding:12px 16px 4px; }
.tc-filters span{ font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.03em; color:var(--ink-2); background:var(--paper-2); border:1px solid var(--hair); border-radius:6px; padding:3px 8px; }
.tc-filters span em{ font-style:normal; color:var(--accent); font-weight:700; margin-left:4px; }
.tc-count{ padding:4px 16px 8px; font-family:"IBM Plex Mono",monospace; font-size:9.5px; color:var(--ink-3); letter-spacing:.03em; }
.tc-trial{ padding:11px 16px; border-top:1px solid var(--hair); }
.tc-trial__top{ display:flex; align-items:center; gap:8px; }
.tc-trial__id{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; font-weight:700; color:var(--accent); }
.tc-open{ display:inline-flex; align-items:center; gap:4px; font-size:10px; color:var(--success); font-weight:600; }
.tc-open i{ width:7px; height:7px; border-radius:50%; background:var(--success); display:inline-block; }
.tc-team{ margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-2); background:var(--accent-wash); border:1px solid var(--hair); border-radius:100px; padding:2px 8px; white-space:nowrap; }
.tc-trial__title{ font-size:11.5px; color:var(--ink-2); line-height:1.4; margin:6px 0 3px; }
.tc-trial__cond{ font-size:10px; color:var(--ink-3); }
.tc-trial__nct{ font-family:"IBM Plex Mono",monospace; font-size:9px; color:var(--ink-3); }

/* curation — eligibility table */
.tc-elig{ padding:8px 16px 4px; }
.tc-elig__row{ display:grid; grid-template-columns:18px 96px 1fr; gap:8px; padding:7px 0; border-bottom:1px solid var(--hair); font-size:11px; }
.tc-elig__row .sr{ font-family:"IBM Plex Mono",monospace; color:var(--ink-3); font-size:10px; }
.tc-elig__row .cl{ font-family:"IBM Plex Mono",monospace; font-size:8.5px; letter-spacing:.02em; text-transform:uppercase; color:var(--accent); }
.tc-elig__row .cr{ color:var(--ink-2); line-height:1.4; }

/* curation — patient selection metrics */
.tc-sel{ padding:10px 16px 4px; }
.tc-sel__hd{ background:var(--paper-2); border-radius:7px; padding:6px 11px; font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); margin:10px 0 8px; }
.tc-sel__hd:first-child{ margin-top:0; }
.tc-sel p{ margin:0 0 6px; font-size:11.5px; color:var(--ink-2); line-height:1.45; }
.tc-sel p b{ color:var(--ink); }
.tc-sel code{ font-family:"IBM Plex Mono",monospace; font-size:10px; color:var(--accent); }
.tc-check{ display:flex; align-items:center; gap:9px; padding:6px 0; font-size:11.5px; color:var(--ink-2); }
.tc-check i{ width:15px; height:15px; border-radius:4px; border:1.5px solid var(--hair-2); flex:none; display:inline-flex; align-items:center; justify-content:center; }
.tc-check.on i{ background:var(--accent); border-color:var(--accent); }
.tc-check.on i::after{ content:""; width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg) translate(-1px,-1px); }
.tc-check b{ color:var(--ink); font-weight:600; }

/* graph — disease hierarchy tree */
.tc-tree{ padding:14px 16px 4px; font-size:12px; }
.tc-tree__node{ display:flex; align-items:center; gap:7px; padding:5px 0; color:var(--ink-2); }
.tc-tree__node .arw{ color:var(--accent); opacity:.7; }
.tc-tree__node b{ color:var(--navy); font-weight:600; }
.tc-tree__node .ct{ font-family:"IBM Plex Mono",monospace; font-size:9px; color:var(--ink-3); }
.tc-tree__l1{ padding-left:0; } .tc-tree__l2{ padding-left:16px; } .tc-tree__l3{ padding-left:34px; }
.tc-tree__trial{ margin:5px 0 5px 34px; border:1px solid var(--success); background:var(--success-wash); border-radius:9px; padding:9px 11px; }
.tc-tree__trial .id{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:700; color:var(--accent); }
.tc-tree__trial .ti{ font-size:10.5px; color:var(--ink-2); line-height:1.4; margin-top:4px; }
.tc-tree__trial .ti b{ color:var(--ink); }

/* performance — donut + tables */
.perf-charts{ padding:10px 16px 4px; }
.perf-donut{ display:flex; align-items:center; gap:16px; }
.perf-donut .ring{ width:96px; height:96px; border-radius:50%; flex:none;
  background:conic-gradient(var(--accent) 0 60%, var(--success) 60% 96.7%, var(--info) 96.7% 100%);
  -webkit-mask:radial-gradient(circle 30px at center, transparent 98%, #000 100%);
          mask:radial-gradient(circle 30px at center, transparent 98%, #000 100%); }
.perf-legend{ display:flex; flex-direction:column; gap:6px; font-size:11px; color:var(--ink-2); }
.perf-legend span{ display:flex; align-items:center; gap:7px; }
.perf-legend i{ width:10px; height:10px; border-radius:3px; display:inline-block; }
.perf-table{ width:100%; border-collapse:collapse; font-size:10.5px; margin-top:4px; }
.perf-table th{ text-align:right; font-family:"IBM Plex Mono",monospace; font-size:8.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-3); font-weight:500; padding:5px 6px; border-bottom:1px solid var(--hair); }
.perf-table th:first-child, .perf-table td:first-child{ text-align:left; }
.perf-table td{ padding:5px 6px; border-bottom:1px solid var(--hair); color:var(--ink-2); text-align:right; }
.perf-table tr:last-child td{ font-weight:700; color:var(--ink); border-bottom:0; }
.perf-race{ display:flex; flex-wrap:wrap; gap:6px; padding:2px 0 4px; }
.perf-race span{ font-size:10.5px; color:var(--ink-2); background:var(--paper-2); border:1px solid var(--hair); border-radius:7px; padding:5px 9px; }
.perf-race span b{ color:var(--ink); font-family:"IBM Plex Mono",monospace; margin-left:4px; }
.perf-trials__row{ display:grid; grid-template-columns:1fr auto; gap:8px; padding:8px 0; border-bottom:1px solid var(--hair); font-size:11px; }
.perf-trials__row .nct{ font-family:"IBM Plex Mono",monospace; font-size:10px; color:var(--accent); }
.perf-trials__row .pr{ color:var(--ink-2); }
.perf-trials__row .ph{ font-family:"IBM Plex Mono",monospace; font-size:9px; color:var(--navy); background:var(--gold-wash); border:1px solid var(--gold); border-radius:6px; padding:2px 7px; white-space:nowrap; align-self:start; }

/* lineage motif (hero art) */
.lineage{ width:100%; height:auto; display:block; }

/* ============================================================
   Architecture diagram  (products + foundation)
   ============================================================ */
.arch{ background:var(--white); border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); }
.arch__head{ max-width:64ch; margin-bottom:clamp(36px,5vw,60px); }
.arch__head h2{ font-size:clamp(28px,4vw,44px); font-weight:800; }
.arch__head p{ margin-top:18px; }

.stack{ display:flex; flex-direction:column; gap:0; }

/* product row */
.products{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  position:relative; z-index:2;
}
.pcard{
  background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md);
  padding:26px 24px 24px; display:flex; flex-direction:column;
  transition:transform .16s, box-shadow .16s, border-color .16s;
  position:relative;
}
.pcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--accent); }
.pcard__no{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-3); letter-spacing:.1em; }
.pcard__icon{ width:38px; height:38px; margin:6px 0 14px; color:var(--accent); }
.pcard h3{ font-size:22px; font-weight:800; }
.pcard__desc{ margin-top:10px; font-size:15px; color:var(--ink-2); line-height:1.5; flex:1 0 auto; }
.pcard__specs{ margin-top:20px; display:flex; flex-wrap:wrap; gap:7px; }
.chip{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.03em;
  padding:5px 10px; border-radius:100px; background:var(--accent-wash); color:var(--accent);
  border:1px solid var(--hair);
}
.pcard__link{
  margin-top:22px; display:inline-flex; align-items:center; gap:7px;
  font-weight:500; font-size:14.5px; color:var(--accent);
}
.pcard__link svg{ width:15px; height:15px; transition:transform .15s; }
.pcard:hover .pcard__link svg{ transform:translateX(3px); }

/* connective feeder zone — arrows rise from foundation into each card */
.feeders{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  height:70px; position:relative; z-index:1;
}
.feeder{ display:flex; align-items:stretch; justify-content:center; }
.feeder svg{ width:34px; height:100%; overflow:visible; color:var(--gold); }
.feeder .flow{ stroke-dasharray:5 7; animation:flowup 1.5s linear infinite; }
@media (prefers-reduced-motion: reduce){ .feeder .flow{ animation:none; } }
@keyframes flowup{ to{ stroke-dashoffset:-24; } }

/* foundation band */
.foundation{
  background:linear-gradient(180deg, #fff 0%, var(--gold-wash) 100%);
  border:1px solid var(--gold); border-radius:var(--r-md);
  padding:26px clamp(22px,4vw,40px);
  display:flex; align-items:center; gap:26px; flex-wrap:wrap;
  position:relative; z-index:2;
}
.foundation__badge{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--navy); background:#fff; border:1px solid var(--gold); border-radius:100px; padding:5px 12px;
}
.foundation__icon{ width:44px; height:44px; color:var(--gold); flex:none; }
.foundation__body{ flex:1 1 340px; }
.foundation__body h3{ font-size:22px; font-weight:800; }
.foundation__body p{ margin-top:8px; font-size:15px; color:var(--ink-2); max-width:70ch; }

/* AI intelligence tier — sits between data (below) and products (above) */
.feeders--ai .feeder svg{ color:var(--accent); }

.ai-layer{
  background:linear-gradient(180deg, #fff 0%, var(--accent-wash) 100%);
  border:1px solid var(--hair); border-radius:var(--r-md);
  padding:26px clamp(22px,4vw,36px);
  position:relative; z-index:2;
}
.ai-layer__top{ display:flex; align-items:flex-start; gap:20px; flex-wrap:wrap; }
.ai-layer__icon{ width:44px; height:44px; color:var(--accent); flex:none; }
.ai-layer__intro{ flex:1 1 340px; }
.ai-layer__badge{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent); background:#fff; border:1px solid var(--hair); border-radius:100px; padding:5px 12px;
}
.ai-layer__top h3{ font-size:22px; font-weight:800; margin-top:12px; }
.ai-layer__top p{ margin-top:8px; font-size:15px; color:var(--ink-2); max-width:74ch; }
.ai-layer__top p b{ color:var(--ink); font-weight:600; }

.pipe{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:24px; }
.pipe__step{ background:#fff; border:1px solid var(--hair); border-radius:var(--r-sm); padding:16px 16px 15px; position:relative; }
.pipe__step .n{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; color:var(--accent); }
.pipe__step h5{ font-family:"Archivo",sans-serif; font-size:15px; font-weight:700; margin:6px 0 0; letter-spacing:-.01em; }
.pipe__step p{ margin-top:6px; font-size:13px; color:var(--ink-2); line-height:1.45; }
.pipe__step:not(:last-child)::after{
  content:""; position:absolute; right:-11px; top:50%; width:14px; height:14px;
  border-top:2px solid var(--accent); border-right:2px solid var(--accent);
  transform:translateY(-50%) rotate(45deg); z-index:3;
}
@media (max-width:820px){ .pipe{ grid-template-columns:1fr 1fr; } .pipe__step:not(:last-child)::after{ display:none; } }
@media (max-width:480px){ .pipe{ grid-template-columns:1fr; } }

@media (max-width:820px){
  .products{ grid-template-columns:1fr; gap:16px; }
  .feeders{ display:none; }
  .stack{ gap:18px; }
  .foundation{ flex-direction:column; align-items:flex-start; text-align:left; }
  .ai-layer__top{ flex-direction:column; }
}

/* ============================================================
   Product-page AI band
   ============================================================ */
.ai-band{ background:var(--navy); color:var(--accent-wash); }
.ai-band .wrap{ padding-block:clamp(44px,6vw,72px); }
.ai-band .eyebrow{ color:var(--accent-bright); }
.ai-band .eyebrow::before{ background:var(--accent-bright); }
.ai-band h2{ color:#fff; font-size:clamp(24px,3.2vw,36px); font-weight:800; max-width:24ch; }
.ai-band__lede{ margin-top:16px; color:var(--accent-wash); font-size:17px; max-width:66ch; line-height:1.55; }
.ai-band__lede b{ color:#fff; font-weight:600; }
.ai-points{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 30px; margin-top:34px; }
@media (max-width:720px){ .ai-points{ grid-template-columns:1fr; } }
.ai-point{ display:flex; gap:12px; align-items:flex-start; padding:14px 0; border-top:1px solid rgba(100,166,253,.35); }
.ai-point svg{ width:20px; height:20px; color:var(--accent-bright); flex:none; margin-top:2px; }
.ai-point b{ color:#fff; font-weight:600; display:block; font-size:15.5px; }
.ai-point span{ color:var(--hair-2); font-size:14px; }
.ai-band__moat{
  margin-top:34px; padding:18px 22px; border-radius:var(--r-md);
  background:rgba(100,166,253,.12); border:1px solid var(--info);
  font-size:15px; color:var(--accent-wash);
}
.ai-band__moat b{ color:var(--accent-bright); }

/* ============================================================
   About page
   ============================================================ */
.about-intro{ max-width:64ch; }
.about-intro p{ font-size:clamp(18px,2vw,22px); color:var(--ink-2); line-height:1.5; }

/* hero headline — bold statement + gradient italic accent line */
.about-hero-h1{ display:flex; flex-direction:column; gap:2px; }
.about-hero-h1__lead{ font-weight:800; color:var(--ink); }
.about-hero-h1__sub{
  margin-top:4px; font-style:italic; font-weight:700;
  font-size:0.86em; letter-spacing:-.01em;
  background:linear-gradient(90deg, var(--accent), var(--accent-bright));
  -webkit-background-clip:text; background-clip:text; color:var(--accent);
  -webkit-text-fill-color:transparent;
}

/* mission · approach · commitment */
.mvc{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:820px){ .mvc{ grid-template-columns:1fr; } }
.mvc__card{
  background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md);
  padding:28px 26px; border-top:3px solid var(--accent);
}
.mvc__icon{ width:40px; height:40px; color:var(--accent); }
.mvc__card h2{ font-size:20px; font-weight:800; margin:16px 0 0; }
.mvc__card p{ margin-top:12px; font-size:15.5px; color:var(--ink-2); line-height:1.55; }

/* shared vision — patient / clinical team / health system */
.vision-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:32px; }
@media (max-width:900px){ .vision-grid{ grid-template-columns:1fr; } }
.vision-col{ display:flex; flex-direction:column; }
.vision-col__label{ display:flex; align-items:center; gap:10px; font-family:"IBM Plex Mono",monospace; font-weight:700; font-size:13px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:14px; }
.vision-col__label i{ width:3px; height:18px; border-radius:2px; display:inline-block; background:currentColor; font-style:normal; }
.vision-card{ flex:1; display:flex; flex-direction:column; border:1px solid var(--hair); border-radius:var(--r-md); padding:26px 22px; }
.vision-card h3{ text-align:center; font-size:19px; font-weight:800; }
.vision-items{ margin-top:20px; display:flex; flex-direction:column; gap:14px; flex:1; }
.vision-item{ background:var(--white); border:1px solid var(--hair); border-radius:10px; padding:16px 18px; }
.vision-item__head{ display:flex; align-items:center; gap:9px; font-weight:700; font-size:15px; color:var(--ink); }
.vision-item__head .emoji{ font-size:16px; line-height:1; }
.vision-item p{ margin-top:6px; font-size:13.5px; color:var(--ink-2); line-height:1.5; }
.vision-quote{ margin-top:16px; padding:16px 18px; border-radius:10px; text-align:center; font-style:italic; font-weight:700; font-size:14.5px; }

.vision--pink{ color:#D6336C; }
.vision--pink .vision-card{ background:linear-gradient(180deg,#FDF1F5,#FFFFFF); border-color:#F6C7D6; }
.vision--pink .vision-card h3{ color:#D6336C; }
.vision--pink .vision-quote{ background:#FBE0E8; color:#B0295A; }

.vision--green{ color:var(--success); }
.vision--green .vision-card{ background:linear-gradient(180deg,var(--success-wash),#FFFFFF); border-color:#BEEBDD; }
.vision--green .vision-card h3{ color:var(--success); }
.vision--green .vision-quote{ background:var(--success-wash); color:var(--success); }

.vision--blue{ color:var(--accent); }
.vision--blue .vision-card{ background:linear-gradient(180deg,var(--accent-wash),#FFFFFF); border-color:#C7D6FA; }
.vision--blue .vision-card h3{ color:var(--navy); }
.vision--blue .vision-quote{ background:var(--accent-wash); color:var(--navy); }

.vision-banner{
  margin-top:26px; padding:22px 26px; border-radius:var(--r-md); border:1px solid var(--hair);
  background:linear-gradient(90deg,#FDF1F5,var(--success-wash),var(--accent-wash));
  text-align:center;
}
.vision-banner p{ font-size:clamp(15px,1.8vw,18px); font-weight:700; color:var(--ink); }
.vision-banner b{ color:var(--accent); }

/* leadership grid */
.team{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:900px){ .team{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .team{ grid-template-columns:1fr; } }
.person{
  position:relative; overflow:visible; text-align:center;
  background:linear-gradient(180deg, var(--navy), #0B1730); border-radius:var(--r-md);
  padding:68px 24px 30px; margin-top:58px;
  transition:box-shadow .16s, transform .16s;
}
.person:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
.person__avatar{
  position:absolute; top:-58px; left:50%; transform:translateX(-50%);
  width:116px; height:116px; border-radius:50%; border:4px solid var(--white);
  display:block; object-fit:cover; object-position:center; box-shadow:var(--shadow-md);
  font-family:"Archivo",sans-serif; font-weight:700; font-size:32px; letter-spacing:.02em;
  color:#fff; background:linear-gradient(135deg, var(--navy), var(--accent));
}
.person--lead .person__avatar{ background:linear-gradient(135deg, var(--accent), var(--accent-bright)); }
.person h4{ font-size:19px; font-weight:800; margin-top:20px; color:#fff; }
.person__role{ font-family:"IBM Plex Mono",monospace; font-size:13px; letter-spacing:.02em; color:var(--accent-bright); margin-top:6px; }
.person__bio{ margin-top:14px; font-size:14px; color:rgba(255,255,255,.7); line-height:1.6; }

.team-band{ background:var(--paper-2); border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); }
.team-band__head{ max-width:60ch; margin-bottom:clamp(30px,4vw,48px); }
.team-band__head h2{ font-size:clamp(26px,3.6vw,42px); font-weight:800; }
.team-band__head p{ margin-top:14px; color:var(--ink-2); }

/* ============================================================
   Research page
   ============================================================ */
/* grants */
.grant{
  background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md);
  padding:28px clamp(22px,3vw,32px); margin-bottom:20px;
  display:grid; grid-template-columns:210px 1fr; gap:clamp(20px,3vw,40px);
}
@media (max-width:720px){ .grant{ grid-template-columns:1fr; gap:18px; } }
.grant__side{ border-right:1px solid var(--hair); padding-right:24px; }
@media (max-width:720px){ .grant__side{ border-right:0; border-bottom:1px solid var(--hair); padding-right:0; padding-bottom:16px; } }
.grant__funder{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); }
.grant__id{ font-family:"Archivo",sans-serif; font-weight:800; font-size:19px; color:var(--navy); margin-top:6px; letter-spacing:-.01em; }
.grant__date{ font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--ink-2); margin-top:8px; }
.grant__phase{
  display:inline-block; margin-top:12px; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.06em;
  background:var(--accent-wash); color:var(--accent); border:1px solid var(--hair); border-radius:100px; padding:4px 10px;
}
.grant__name{ font-size:12.5px; }
.grant__prog{ font-family:"Archivo",sans-serif; font-weight:800; font-size:22px; letter-spacing:-.01em; }
.grant__prog b{ color:var(--accent); font-weight:800; }
.grant__title{ margin-top:6px; font-size:15.5px; color:var(--ink-2); font-weight:500; }
.grant__inst{ margin-top:14px; font-size:13.5px; color:var(--ink-3); display:flex; align-items:flex-start; gap:8px; }
.grant__inst svg{ width:16px; height:16px; color:var(--accent); flex:none; margin-top:2px; }
.grant__desc{ margin-top:16px; font-size:15px; color:var(--ink-2); line-height:1.55; }

/* collaborations */
.collabs{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:8px; }
@media (max-width:820px){ .collabs{ grid-template-columns:1fr; } }
.collab{
  background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md);
  padding:28px 26px; border-top:3px solid var(--accent);
}
.collab__logo{
  height:44px; display:flex; align-items:center;
  font-family:"Archivo",sans-serif; font-weight:800; font-size:26px; letter-spacing:-.02em; color:var(--navy);
}
.collab__cat{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.04em; color:var(--accent); text-transform:uppercase; margin-top:14px; }
.collab p{ margin-top:10px; font-size:15px; color:var(--ink-2); line-height:1.55; }

/* publications */
.pub-intro{ max-width:64ch; margin-bottom:32px; }
.pub-evidence{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:32px; }
@media (max-width:760px){ .pub-evidence{ grid-template-columns:1fr; } }
.pub-stat{ border-left:2px solid var(--accent); padding:6px 0 6px 18px; }
.pub-stat b{ font-family:"Archivo",sans-serif; font-weight:800; font-size:30px; color:var(--navy); display:block; }
.pub-stat span{ font-size:14px; color:var(--ink-2); }
.pub-empty{
  background:var(--paper-2); border:1px dashed var(--hair-2); border-radius:var(--r-md);
  padding:28px; display:flex; gap:16px; align-items:flex-start;
}
.pub-empty svg{ width:22px; height:22px; color:var(--accent); flex:none; margin-top:2px; }
.pub-empty h4{ font-size:16px; font-weight:700; }
.pub-empty p{ margin-top:6px; font-size:14.5px; color:var(--ink-2); }

/* publications — poster/conference feed */
.pubfeed{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:980px){ .pubfeed{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .pubfeed{ grid-template-columns:1fr; } }
.pubfeed__card{ background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md); overflow:hidden; display:flex; flex-direction:column; }
.pubfeed__top{ background:var(--paper-2); padding:14px 22px 20px; flex:1; }
.pubfeed__head{ display:flex; align-items:flex-start; }
.pubfeed__badge{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:500; letter-spacing:.04em;
  background:#dcf5e3; color:#1c7a41; border-radius:100px; padding:4px 10px;
}
.pubfeed__icon{
  margin-left:auto; width:30px; height:30px; border-radius:50%; background:var(--white);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.pubfeed__icon svg{ width:15px; height:15px; color:var(--accent); }
.pubfeed__date{ margin-top:6px; font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--ink-3); }
.pubfeed__type{ margin-top:2px; font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
.pubfeed__inst{ margin-top:6px; font-size:15.5px; font-weight:700; letter-spacing:-.01em; }
.pubfeed__desc{ margin-top:8px; font-size:14px; color:var(--ink-2); line-height:1.5; }
.pubfeed__bottom{ padding:18px 22px; border-top:1px solid var(--hair); background:var(--white); }
.pubfeed__logo{ font-family:"Archivo",sans-serif; font-weight:800; font-size:16px; letter-spacing:-.01em; color:var(--navy); }
.pubfeed__logo img{ display:block; width:auto; max-width:100%; height:48px; object-fit:contain; object-position:left center; }

/* ============================================================
   Real-World Data — platform sections
   ============================================================ */
/* hero badges */
.phero__badges{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.pbadge{
  display:inline-flex; align-items:center; gap:7px;
  font-size:13px; font-weight:500; color:var(--ink-2);
  background:var(--white); border:1px solid var(--hair-2); border-radius:100px; padding:7px 14px;
}
.pbadge svg{ width:15px; height:15px; color:var(--accent); }
.pbadge--secure svg{ color:var(--success); }

/* stat band */
.rwd-stats{ border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); background:var(--white); }
.rwd-stats .wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
@media (max-width:720px){ .rwd-stats .wrap{ grid-template-columns:1fr 1fr; } }
.rwd-stat{ padding:30px clamp(16px,2.4vw,28px); border-left:1px solid var(--hair); }
.rwd-stat:first-child{ border-left:0; }
@media (max-width:720px){ .rwd-stat:nth-child(odd){ border-left:0; } .rwd-stat:nth-child(n+3){ border-top:1px solid var(--hair); } }
.rwd-stat b{ font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(30px,4vw,44px); color:var(--navy); display:block; letter-spacing:-.02em; }
.rwd-stat span{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin-top:8px; display:block; }

/* challenges */
.challenges{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
@media (max-width:820px){ .challenges{ grid-template-columns:1fr; } }
.challenge{ background:var(--paper-2); border:1px solid var(--hair); border-radius:var(--r-md); padding:24px; }
.challenge__icon{ width:30px; height:30px; color:var(--ink-3); }
.challenge h4{ font-size:17px; font-weight:700; margin-top:14px; }
.challenge p{ margin-top:10px; font-size:14.5px; color:var(--ink-2); line-height:1.55; }

/* disease coverage */
.coverage{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,52px); }
@media (max-width:820px){ .coverage{ grid-template-columns:1fr; } }
.coverage__col h3{ font-size:15px; font-family:"IBM Plex Mono",monospace; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); font-weight:500; padding-bottom:14px; border-bottom:2px solid var(--accent); }
.disease{ display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--hair); }
.disease__icon{ width:34px; height:34px; border-radius:var(--r-sm); background:var(--accent-wash); color:var(--accent); display:flex; align-items:center; justify-content:center; flex:none; }
.disease__icon svg{ width:19px; height:19px; display:block; }
.disease b{ font-size:15.5px; font-weight:700; color:var(--ink); }
.disease > div > span{ display:block; margin-top:4px; font-size:12.5px; color:var(--ink-3); font-family:"IBM Plex Mono",monospace; letter-spacing:.01em; line-height:1.5; }
.disease--more .disease__icon{ background:var(--paper-2); color:var(--ink-3); }

/* 7-module continuum */
.continuum-flow{ display:flex; border-radius:var(--r-sm); overflow:hidden; margin-bottom:34px; box-shadow:var(--shadow-sm); }
.continuum-flow span{
  flex:1; text-align:center; padding:13px 6px; font-family:"IBM Plex Mono",monospace;
  font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#fff; white-space:nowrap;
}
.continuum-flow span:nth-child(1){ background:var(--navy); }
.continuum-flow span:nth-child(2){ background:var(--accent); }
.continuum-flow span:nth-child(3){ background:var(--info); }
.continuum-flow span:nth-child(4){ background:var(--accent-bright); }
.continuum-flow span:nth-child(5){ background:var(--success); }
.continuum-flow span:nth-child(6){ background:var(--danger); }
.continuum-flow span:nth-child(7){ background:var(--ink); }
@media (max-width:760px){ .continuum-flow{ display:none; } }

.modules{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media (max-width:720px){ .modules{ grid-template-columns:1fr; } }
.module{ background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md); padding:22px 24px; display:flex; gap:18px; }
.module__no{ font-family:"Archivo",sans-serif; font-weight:800; font-size:15px; color:#fff; background:var(--accent); width:34px; height:34px; border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; flex:none; }
.module h4{ font-size:17px; font-weight:700; }
.module .sub{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.04em; color:var(--accent); text-transform:uppercase; margin-top:2px; }
.module p{ margin-top:10px; font-size:14px; color:var(--ink-2); line-height:1.55; }

/* demo CTA card variant on RWD */
.cta-band__inner .qr{ display:flex; align-items:center; gap:20px; }

/* ============================================================
   Trial Matching — platform sections
   ============================================================ */
/* "the problem today" cards (amber-warning tone, distinct from foundation) */
.problems{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
@media (max-width:820px){ .problems{ grid-template-columns:1fr; } }
.problem{ background:var(--gold-wash); border:1px solid var(--gold); border-radius:var(--r-md); padding:24px; display:flex; gap:16px; }
.problem__badge{ width:34px; height:34px; border-radius:50%; background:var(--gold); color:#fff; display:flex; align-items:center; justify-content:center; flex:none; }
.problem__badge svg{ width:18px; height:18px; }
.problem h4{ font-size:16.5px; font-weight:700; }
.problem p{ margin-top:8px; font-size:14px; color:var(--ink-2); line-height:1.5; }

/* key innovations */
.innovations{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--hair); border-radius:var(--r-md); overflow:hidden; margin-top:36px; }
@media (max-width:820px){ .innovations{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .innovations{ grid-template-columns:1fr; } }
.innovation{ padding:24px; background:var(--white); border-left:1px solid var(--hair); }
.innovation:first-child{ border-left:0; }
@media (max-width:820px){ .innovation:nth-child(odd){ border-left:0; } .innovation:nth-child(n+3){ border-top:1px solid var(--hair); } }
@media (max-width:520px){ .innovation{ border-left:0; border-top:1px solid var(--hair); } .innovation:first-child{ border-top:0; } }
.innovation .n{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; color:var(--accent); }
.innovation p{ margin-top:10px; font-size:14.5px; color:var(--ink-2); line-height:1.5; }

/* deployment workflows */
.flows{ display:flex; flex-direction:column; gap:16px; margin-top:8px; }
.flow-row{ background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md); padding:22px 24px; }
.flow-row__head{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.flow-row__head b{ font-size:16px; font-weight:700; }
.flow-row__head span{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-3); letter-spacing:.02em; }
.flow-steps{ display:flex; align-items:stretch; gap:0; flex-wrap:wrap; }
.fstep{ display:flex; align-items:center; gap:10px; }
.fstep__box{ border-radius:var(--r-sm); padding:10px 14px; min-width:96px; text-align:center; }
.fstep__box b{ display:block; font-size:13.5px; font-weight:600; line-height:1.2; }
.fstep__box small{ font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; opacity:.85; }
.fstep__box--trigger{ background:var(--paper-2); color:var(--ink-2); border:1px dashed var(--hair-2); }
.fstep__box--auto{ background:var(--accent); color:#fff; }
.fstep__box--verify{ background:var(--gold); color:#fff; }
.fstep__box--clinical{ background:var(--white); color:var(--ink-2); border:1px solid var(--hair-2); }
.fstep__box--full{ background:var(--navy); color:#fff; }
.fstep__box--enroll{ background:var(--success); color:#fff; }
.fstep__arrow{ width:22px; height:22px; color:var(--ink-3); flex:none; }
@media (max-width:820px){
  .flow-steps{ flex-direction:column; align-items:stretch; gap:6px; }
  .fstep{ flex-direction:column; align-items:stretch; }
  .fstep__arrow{ transform:rotate(90deg); align-self:center; }
  .fstep__box{ min-width:0; }
}
.flow-legend{ display:flex; gap:20px; flex-wrap:wrap; margin-bottom:18px; font-size:12.5px; color:var(--ink-2); }
.flow-legend span{ display:inline-flex; align-items:center; gap:7px; }
.flow-legend i{ width:12px; height:12px; border-radius:3px; display:inline-block; }

/* ============================================================
   Consult Prep — feature grid + two-panel comparison
   ============================================================ */
.feat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:36px; }
@media (max-width:1000px){ .feat-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .feat-grid{ grid-template-columns:1fr; } }
.feat-grid--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .feat-grid--3{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .feat-grid--3{ grid-template-columns:1fr; } }
.feat{
  background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md);
  padding:22px 20px; border-left:3px solid var(--accent);
  transition:box-shadow .16s, transform .16s;
}
.feat:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
.feat__icon{ width:30px; height:30px; color:var(--accent); }
.feat h4{ font-size:16px; font-weight:700; margin-top:14px; color:var(--accent); }
.feat p{ margin-top:8px; font-size:14px; color:var(--ink-2); line-height:1.5; }

/* two-panel (left/right) comparison */
.panels{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:36px; }
@media (max-width:820px){ .panels{ grid-template-columns:1fr; } }
.panel-card{ border:1px solid var(--hair); border-radius:var(--r-md); overflow:hidden; background:var(--white); }
.panel-card__head{ padding:16px 24px; font-weight:700; font-size:16px; color:#fff; }
.panel-card--left .panel-card__head{ background:var(--accent); }
.panel-card--right .panel-card__head{ background:var(--navy); }
.panel-card ul{ margin:0; padding:20px 24px 22px; list-style:none; }
.panel-card li{ font-size:15px; color:var(--ink-2); padding:11px 0 11px 22px; position:relative; border-top:1px solid var(--hair); line-height:1.5; }
.panel-card li:first-child{ border-top:0; }
.panel-card li::before{ content:""; position:absolute; left:3px; top:19px; width:7px; height:7px; border-radius:2px; background:var(--accent); }
.panel-card li b{ color:var(--ink); font-weight:700; }

/* consult prep summary strip */
.cp-strip{ background:var(--accent-wash); border:1px solid var(--hair); border-radius:var(--r-md); padding:20px 26px; margin-top:36px; text-align:center; }
.cp-strip p{ font-family:"Archivo",sans-serif; font-weight:700; font-size:clamp(15px,1.8vw,18px); color:var(--accent); letter-spacing:-.01em; }
.cp-strip span{ color:var(--accent); margin:0 6px; }

/* ============================================================
   Consult Prep — Tumor Board / Review Board workflow
   ============================================================ */
.rbphase-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:32px; }
@media (max-width:1000px){ .rbphase-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .rbphase-grid{ grid-template-columns:1fr; } }
.rbphase-grid--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .rbphase-grid--3{ grid-template-columns:1fr; } }

.rb-panelhead{ margin-top:44px; padding-top:36px; border-top:1px solid var(--hair); display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 24px; }
.rb-panelhead h3{ font-size:clamp(22px,2.6vw,28px); font-weight:800; }
.rb-panelhead p{ margin-top:6px; color:var(--ink-2); font-size:15px; }
.rb-panelhead .phero__badges{ margin-top:0; }
.rbphase{ display:flex; flex-direction:column; }
.rbphase__tag{ font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px; flex:none; }
.rbphase__tag small{ display:block; margin-top:3px; font-weight:500; letter-spacing:.04em; text-transform:none; color:var(--ink-3); }
.rbphase__card{ flex:1; display:flex; flex-direction:column; background:var(--white); border:1px solid var(--hair); border-top:3px solid var(--accent); border-radius:var(--r-md); padding:22px; }
.rbphase__card h4{ font-size:16.5px; font-weight:700; }
.rbphase__card > p{ margin-top:6px; font-size:13.5px; color:var(--ink-2); line-height:1.45; }
.rbphase__items{ margin:16px 0 0; padding-left:0; list-style:none; flex:1; }
.rbphase__items li{ font-size:13.5px; color:var(--ink-2); padding:10px 0 10px 18px; position:relative; border-top:1px solid var(--hair); line-height:1.45; }
.rbphase__items li:first-child{ border-top:0; padding-top:0; }
.rbphase__items li::before{ content:""; position:absolute; left:2px; top:16px; width:6px; height:6px; border-radius:2px; background:var(--accent); }
.rbphase__items li:first-child::before{ top:6px; }
.rbphase__items b{ display:block; color:var(--ink); font-weight:700; font-size:14px; }
.rbphase__foot{ margin-top:16px; padding:9px 12px; border-radius:8px; font-size:12px; font-weight:600; color:var(--accent); background:var(--accent-wash); }

.rbphase--green .rbphase__tag{ color:var(--success); }
.rbphase--green .rbphase__card{ border-top-color:var(--success); }
.rbphase--green .rbphase__items li::before{ background:var(--success); }
.rbphase--green .rbphase__foot{ color:var(--success); background:var(--success-wash); }

.rbphase--orange .rbphase__tag{ color:#C2660D; }
.rbphase--orange .rbphase__card{ border-top-color:#C2660D; }
.rbphase--orange .rbphase__items li::before{ background:#C2660D; }
.rbphase--orange .rbphase__foot{ color:#C2660D; background:#FFF3E6; }

.rbphase--purple .rbphase__tag{ color:#7C3AED; }
.rbphase--purple .rbphase__card{ border-top-color:#7C3AED; }
.rbphase--purple .rbphase__items li::before{ background:#7C3AED; }
.rbphase--purple .rbphase__foot{ color:#7C3AED; background:#F3ECFF; }

/* stat strip */
.rbstats{ display:flex; flex-wrap:wrap; background:var(--success-wash); border:1px solid var(--hair); border-radius:var(--r-md); margin-top:28px; }
.rbstats__item{ flex:1 1 200px; padding:18px 20px; border-left:1px solid var(--hair); text-align:center; }
.rbstats__item:first-child{ border-left:0; }
@media (max-width:720px){ .rbstats__item{ flex:1 1 45%; } .rbstats__item:nth-child(odd){ border-left:0; } .rbstats__item:nth-child(n+3){ border-top:1px solid var(--hair); } }
.rbstats__item b{ font-family:"Archivo",sans-serif; font-weight:800; font-size:16px; color:var(--success); }
.rbstats__item span{ margin-left:6px; font-size:13.5px; color:var(--ink-2); }

/* across-institution routing diagram */
.rbroute{ display:grid; grid-template-columns:1fr auto 1fr; gap:22px; align-items:stretch; margin-top:36px; }
@media (max-width:820px){ .rbroute{ grid-template-columns:1fr; } }
.rbroute__col{ background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md); padding:28px 24px; text-align:center; }
.rbroute__avatar{ width:56px; height:56px; border-radius:50%; margin:0 auto; display:flex; align-items:center; justify-content:center; background:var(--success); color:#fff; }
.rbroute__avatar--navy{ background:var(--navy); }
.rbroute__avatar svg{ width:26px; height:26px; }
.rbroute__col h4{ margin-top:16px; font-size:17px; font-weight:700; }
.rbroute__role{ margin-top:4px; font-size:13.5px; color:var(--ink-2); }
.rbroute__note{ margin-top:10px; font-size:13px; color:var(--success); font-weight:600; }
.rbroute__center{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-width:180px; }
.rbroute__chip{ background:var(--danger); color:#fff; border-radius:10px; padding:12px 18px; text-align:center; font-weight:700; font-size:14px; }
.rbroute__chip span{ display:block; margin-top:2px; font-weight:500; font-size:11.5px; opacity:.9; }
.rbroute__path{ display:block; width:100%; text-align:center; font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:700; letter-spacing:.03em; color:#fff; background:var(--success); border-radius:100px; padding:7px 14px; }
.rbroute__path--dark{ background:var(--navy); }
.rbroute__arrow{ width:18px; height:18px; color:var(--ink-3); }

/* numbered workflow steps */
.rbsteps{ margin-top:36px; }
.rbsteps__group{ border:1px solid var(--hair); border-radius:var(--r-md); padding:18px; background:var(--paper); margin-bottom:14px; }
.rbsteps__label{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--success); margin-bottom:14px; }
.rbsteps__row{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:820px){ .rbsteps__row{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .rbsteps__row{ grid-template-columns:1fr; } }
.rbstep{ background:var(--white); border:1px solid var(--hair); border-radius:10px; padding:16px 14px; text-align:center; }
.rbstep__no{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--navy); color:#fff; font-family:"Archivo",sans-serif; font-weight:800; font-size:12.5px; }
.rbstep p{ margin-top:10px; font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.4; }
.rbstep--done{ background:var(--navy); border-color:var(--navy); }
.rbstep--done .rbstep__no{ background:#fff; color:var(--navy); }
.rbstep--done p{ color:#fff; }
.rbstep--complete{ display:flex; align-items:center; justify-content:center; padding:16px 14px; background:var(--success); color:#fff; font-weight:700; font-size:14px; border-radius:10px; }
.rbsteps__row--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:820px){ .rbsteps__row--3{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .rbsteps__row--3{ grid-template-columns:1fr; } }
.rbsteps__connector{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px; background:var(--navy); border-radius:var(--r-md); padding:14px 18px; margin-bottom:14px; }
.rbsteps__connector span{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.03em; color:var(--hair-2); background:rgba(255,255,255,.08); border-radius:8px; padding:8px 12px; }
.rbsteps__connector span.is-accent{ color:#fff; background:var(--accent); }
.rbsteps__connector svg{ width:16px; height:16px; color:var(--hair-2); flex:none; }

/* terminology note */
.rb-note{ margin-top:16px; padding:14px 18px; border-radius:var(--r-md); background:var(--paper-2); border:1px solid var(--hair); font-size:14px; color:var(--ink-2); }
.rb-note b{ color:var(--ink); }

/* ============================================================
   Company-level trust band (above footer, all pages)
   ============================================================ */
.trust-band{ background:var(--white); border-top:1px solid var(--hair); }
.trust-band .wrap{ padding-block:28px; display:flex; align-items:center; justify-content:space-between; gap:18px 24px; flex-wrap:wrap; }
.trust-band__label{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin:0; }
.trust-badges{ display:flex; flex-wrap:wrap; gap:10px; }
.pbadge--cert svg{ color:var(--success); }
@media (max-width:640px){ .trust-band .wrap{ flex-direction:column; align-items:flex-start; } }

/* ============================================================
   Request a Demo
   ============================================================ */
.demo{ display:grid; grid-template-columns:0.9fr 1.1fr; align-items:stretch; }
@media (max-width:900px){ .demo{ grid-template-columns:1fr; } }

.demo__art{
  position:relative; overflow:hidden;
  background:linear-gradient(158deg, var(--accent-wash) 0%, var(--info-wash) 55%, #ffffff 100%);
  border-right:1px solid var(--hair);
  padding:clamp(40px,5vw,72px) clamp(28px,4vw,56px);
  display:flex; flex-direction:column; justify-content:center;
}
@media (max-width:900px){ .demo__art{ display:none; } }
.demo__art svg{ width:100%; height:auto; max-width:420px; margin:0 auto; display:block; }
.demo__art-cap{ margin-top:30px; text-align:center; }
.demo__art-cap b{ font-family:"Archivo",sans-serif; font-weight:800; font-size:19px; color:var(--navy); display:block; letter-spacing:-.01em; }
.demo__art-cap span{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.06em; color:var(--accent); display:block; margin-top:8px; }

.demo__form{ padding:clamp(38px,5vw,72px) clamp(24px,4vw,64px); }
.demo__form h1{ font-size:clamp(30px,4.5vw,48px); font-weight:800; }
.demo__form .sub{ margin-top:10px; color:var(--ink-2); font-size:17px; }

.demo-form{ margin-top:32px; max-width:620px; }
.demo-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
@media (max-width:560px){ .demo-row{ grid-template-columns:1fr; } }
.field{ margin-bottom:16px; }
.demo-row .field{ margin-bottom:0; }
.field label{ display:block; font-size:13px; color:var(--ink-2); font-weight:500; margin-bottom:6px; }
.field label .req{ color:var(--accent); }
.field input, .field textarea{
  width:100%; font-family:inherit; font-size:15.5px; color:var(--ink); background:var(--white);
  border:1px solid var(--hair-2); border-radius:var(--r-sm); padding:12px 14px;
  transition:border-color .15s, box-shadow .15s;
}
.field textarea{ resize:vertical; min-height:120px; line-height:1.5; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-wash); }
.field.invalid input, .field.invalid textarea{ border-color:var(--danger); box-shadow:0 0 0 3px var(--danger-wash); }
.field .msg{ font-size:12.5px; color:var(--danger); margin-top:5px; display:none; }
.field.invalid .msg{ display:block; }

.demo-verify{
  display:flex; align-items:center; gap:12px; max-width:360px; margin:6px 0 22px;
  border:1px solid var(--hair-2); border-radius:var(--r-sm); padding:14px 16px; background:var(--paper);
}
.demo-verify.invalid{ border-color:var(--danger); box-shadow:0 0 0 3px var(--danger-wash); }
.demo-verify input{ width:22px; height:22px; accent-color:var(--accent); flex:none; cursor:pointer; }
.demo-verify label{ font-size:15px; color:var(--ink-2); cursor:pointer; }
.demo-verify .vsub{ margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.08em; color:var(--ink-3); text-transform:uppercase; }

.demo-actions{ display:flex; gap:12px; align-items:center; }
.demo-status{ margin-top:18px; font-size:14.5px; line-height:1.5; }
.demo-status.ok{ color:var(--success); }
.demo-status.bad{ color:var(--danger); }

.demo-success{ max-width:520px; padding-top:8px; animation:demoSuccessIn .5s ease both; }
.demo-success[hidden]{ display:none; }
.demo-success__icon{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--success-wash, var(--accent-wash)); color:var(--success); margin-bottom:20px;
}
.demo-success__icon svg{ width:28px; height:28px; }
.demo-success h2{ font-family:"Archivo",sans-serif; font-size:clamp(24px,3.4vw,32px); font-weight:800; letter-spacing:-.01em; color:var(--navy); }
.demo-success p{ margin-top:14px; font-size:16px; line-height:1.6; color:var(--ink-2); }
.demo-success__sub{ color:var(--accent) !important; font-weight:500; }
.demo-success .btn{ margin-top:26px; }
@keyframes demoSuccessIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:translateY(0); } }

/* ============================================================
   Accreditation band (AICPA SOC · Powered by NIH), all pages
   ============================================================ */
.accred-band{ background:var(--navy); }
.accred-band .wrap{ padding-block:24px; display:flex; justify-content:center; }
.accred-img{ width:100%; max-width:460px; height:auto; display:block; }

/* ============================================================
   Legal pages (Privacy Policy) — sticky left TOC + body
   ============================================================ */
.legal-hero{ padding-block:22px clamp(24px,3vw,40px); }
.legal-hero h1{ font-size:clamp(32px,4.5vw,52px); font-weight:800; margin-top:16px; }
.legal-hero .eff{ font-family:"IBM Plex Mono",monospace; font-size:13px; letter-spacing:.03em; color:var(--ink-3); margin-top:16px; }
.legal-hero .intro{ margin-top:18px; font-size:17px; color:var(--ink-2); line-height:1.6; max-width:70ch; }

.legal__grid{ display:grid; grid-template-columns:230px 1fr; gap:clamp(30px,5vw,64px); align-items:start; padding-bottom:clamp(56px,8vw,104px); }
@media (max-width:820px){ .legal__grid{ grid-template-columns:1fr; gap:24px; } }

.legal-toc{ position:sticky; top:90px; }
@media (max-width:820px){ .legal-toc{ position:static; padding-bottom:18px; border-bottom:1px solid var(--hair); } }
.legal-toc__label{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin:0 0 14px; }
.legal-toc nav{ display:flex; flex-direction:column; border-left:2px solid var(--hair); }
.legal-toc a{ font-size:14px; color:var(--ink-2); padding:7px 0 7px 16px; margin-left:-2px; border-left:2px solid transparent; line-height:1.4; transition:color .15s, border-color .15s; }
.legal-toc a:hover{ color:var(--ink); }
.legal-toc a.is-active{ color:var(--accent); border-left-color:var(--accent); font-weight:600; }

.legal-body section{ margin-bottom:40px; scroll-margin-top:92px; }
.legal-body section:last-child{ margin-bottom:0; }
.legal-body h2{ font-size:clamp(20px,2.4vw,26px); font-weight:800; margin:0 0 14px; }
.legal-body h3{ font-size:16px; font-weight:700; margin:20px 0 8px; }
.legal-body p{ color:var(--ink-2); margin:0 0 14px; font-size:16px; line-height:1.62; }
.legal-body p:last-child{ margin-bottom:0; }
.legal-body a{ color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
.legal-body ul{ margin:0 0 14px; padding-left:0; list-style:none; }
.legal-body li{ position:relative; padding:6px 0 6px 22px; color:var(--ink-2); font-size:15.5px; line-height:1.55; }
.legal-body li::before{ content:""; position:absolute; left:4px; top:14px; width:6px; height:6px; border-radius:2px; background:var(--accent); }
.legal-callout{ background:var(--accent-wash); border:1px solid var(--hair); border-radius:var(--r-md); padding:18px 22px; margin:0 0 32px; font-size:15px; color:var(--accent); line-height:1.55; }
.legal-caps{ font-size:13px !important; letter-spacing:.01em; color:var(--ink-3) !important; line-height:1.6; background:var(--paper-2); border:1px solid var(--hair); border-radius:var(--r-sm); padding:16px 18px; }

/* ============================================================
   Generic content blocks
   ============================================================ */
.cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; }
@media (max-width:820px){ .cols{ grid-template-columns:1fr; } }

.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
@media (max-width:820px){ .pillars{ grid-template-columns:1fr; } }
.pillar{ border-top:2px solid var(--accent); padding-top:18px; }
.pillar h4{ font-size:17px; font-weight:700; }
.pillar p{ margin-top:8px; font-size:14.5px; color:var(--ink-2); }
.pillar .k{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-3); letter-spacing:.08em; }

/* proof strip */
.proof{ background:var(--navy); color:var(--accent-wash); }
.proof .eyebrow{ color:var(--accent-bright); }
.proof .eyebrow::before{ background:var(--accent-bright); }
.proof h2{ color:#fff; font-size:clamp(24px,3.2vw,36px); font-weight:800; max-width:22ch; }
.proof__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:44px; }
@media (max-width:760px){ .proof__grid{ grid-template-columns:1fr; gap:26px; } }
.proof__grid .stat b{ font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(30px,4vw,46px); color:var(--accent-bright); display:block; }
.proof__grid .stat span{ font-size:14px; color:var(--hair-2); display:block; margin-top:6px; }
.proof__note{ margin-top:34px; font-size:13px; color:var(--hair-2); font-family:"IBM Plex Mono",monospace; }

/* ============================================================
   Product page
   ============================================================ */
.breadcrumb{ font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--ink-3); letter-spacing:.04em; padding-top:34px; }
.breadcrumb a{ color:var(--ink-3); } .breadcrumb a:hover{ color:var(--accent); }
.breadcrumb span{ color:var(--ink); }

.phero{ padding-block:22px clamp(30px,4vw,50px); }
.phero h1{ font-size:clamp(34px,5vw,58px); font-weight:800; margin-top:18px; }
.phero__lede{ margin-top:22px; font-size:clamp(18px,2vw,22px); color:var(--ink-2); max-width:60ch; line-height:1.5; }
.phero__found{
  margin-top:26px; display:inline-flex; align-items:center; gap:10px;
  background:var(--gold-wash); border:1px solid var(--gold); border-radius:100px;
  padding:8px 16px; font-size:13.5px; color:var(--navy);
}
.phero__found svg{ width:16px; height:16px; color:var(--gold); }
.phero__found a{ color:var(--navy); text-decoration:underline; text-underline-offset:2px; }

/* specialization sub-nav (tabs behave as sub-pages) */
.spec-nav{ position:sticky; top:66px; z-index:20; background:var(--paper); border-bottom:1px solid var(--hair); }
.section-anchor-map{ position:relative; height:0; top:-96px; overflow:visible; }
.section-anchor-map span{ position:absolute; inset:0; pointer-events:none; }
.spec-nav__inner{ display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; }
.spec-nav__inner::-webkit-scrollbar{ display:none; }
.spec-tab{
  appearance:none; background:none; border:0; cursor:pointer; white-space:nowrap;
  font-family:"IBM Plex Sans",sans-serif; font-size:15px; color:var(--ink-2);
  padding:16px 16px 14px; border-bottom:2.5px solid transparent; transition:color .15s, border-color .15s;
}
.spec-tab:hover{ color:var(--ink); }
.spec-tab[aria-selected="true"]{ color:var(--accent); border-bottom-color:var(--accent); font-weight:600; }
.spec-tab small{ display:block; font-family:"IBM Plex Mono",monospace; font-size:10.5px; color:var(--ink-3); letter-spacing:.06em; margin-top:2px; }
.spec-tab[aria-selected="true"] small{ color:var(--accent); }

.spec-panel{ display:none; }
.spec-panel.is-active{ display:block; animation:fade .35s ease; }
@keyframes fade{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }

.spec-head{ max-width:64ch; }
.spec-head .tag{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.1em; color:var(--accent); text-transform:uppercase; }
.spec-head h2{ font-size:clamp(26px,3.4vw,40px); font-weight:800; margin-top:12px; }
.spec-head p{ margin-top:16px; color:var(--ink-2); font-size:17px; }

/* detail cards */
.dgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:36px; }
@media (max-width:720px){ .dgrid{ grid-template-columns:1fr; } }
.dcard{ background:var(--white); border:1px solid var(--hair); border-radius:var(--r-md); padding:24px; }
.dcard h4{ font-size:17px; font-weight:700; display:flex; align-items:center; gap:9px; }
.dcard h4 svg{ width:18px; height:18px; color:var(--accent); flex:none; }
.dcard p{ margin-top:10px; font-size:15px; color:var(--ink-2); }
.dcard ul{ margin:12px 0 0; padding-left:0; list-style:none; }
.dcard li{ font-size:14.5px; color:var(--ink-2); padding:6px 0 6px 22px; position:relative; border-top:1px solid var(--hair); }
.dcard li:first-child{ border-top:0; }
.dcard li::before{ content:""; position:absolute; left:4px; top:14px; width:6px; height:6px; border-radius:2px; background:var(--accent); }

/* standards row */
.stds{ margin-top:34px; padding:24px; background:var(--paper-2); border-radius:var(--r-md); }
.stds .k{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.1em; color:var(--ink-3); text-transform:uppercase; }
.stds__list{ margin-top:14px; display:flex; flex-wrap:wrap; gap:8px; }
.std{
  font-family:"IBM Plex Mono",monospace; font-size:12.5px; background:var(--white);
  border:1px solid var(--hair-2); border-radius:var(--r-sm); padding:6px 11px; color:var(--ink-2);
}

/* CTA band */
.cta-band{ background:var(--white); border-top:1px solid var(--hair); }
.cta-band__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-band h2{ font-size:clamp(24px,3vw,34px); font-weight:800; max-width:20ch; }
.cta-band p{ margin-top:10px; color:var(--ink-2); max-width:48ch; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer{ background:var(--ink); color:var(--hair-2); }
.site-footer .wrap{ padding-block:56px 40px; }
.foot__grid{ display:grid; grid-template-columns:1.6fr repeat(4, 1fr); gap:32px; }
@media (max-width:900px){ .foot__grid{ grid-template-columns:1fr 1fr 1fr; gap:28px; } }
@media (max-width:560px){ .foot__grid{ grid-template-columns:1fr 1fr; gap:26px; } }
.brand__logo--footer{ width:138px; max-width:100%; }
.foot__brand .brand__name{ color:#fff; }
.foot__brand p{ margin-top:14px; font-size:14px; max-width:34ch; line-height:1.6; }
.foot__col h5{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin:0 0 14px; }
.foot__col a{ display:block; color:var(--muted); font-size:14.5px; padding:5px 0; }
.foot__col a:hover{ color:#fff; }
.foot__bar{ margin-top:40px; padding-top:22px; border-top:1px solid var(--navy); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:var(--ink-3); }

/* ============================================================
   Newsroom
   ============================================================ */
.news-intro{ padding-block:clamp(24px,4vw,44px) clamp(12px,2vw,20px); }
.news-intro h1{ font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(34px,5vw,56px); letter-spacing:-.02em; margin:8px 0 14px; color:var(--ink); }
.news-intro p{ font-size:clamp(15px,1.4vw,18px); color:var(--ink-2); max-width:62ch; line-height:1.6; }

.news-controls{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; padding-bottom:22px; border-bottom:1px solid var(--hair); }
.news-tabs{ display:flex; gap:8px; flex-wrap:wrap; }
.news-tabs button{ border:1px solid var(--hair-2); background:#fff; border-radius:100px; padding:8px 16px; font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.02em; color:var(--ink-2); cursor:pointer; transition:border-color .15s, color .15s, background .15s; }
.news-tabs button:hover{ border-color:var(--accent); color:var(--accent); }
.news-tabs button.is-active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.news-search{ position:relative; display:flex; align-items:center; }
.news-search svg{ position:absolute; left:13px; width:16px; height:16px; color:var(--ink-3); pointer-events:none; }
.news-search input{ border:1px solid var(--hair-2); border-radius:100px; padding:9px 16px 9px 38px; font:inherit; font-size:14px; min-width:220px; color:var(--ink); background:#fff; }
.news-search input:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }

.news-featured{ padding-block:clamp(26px,3.5vw,44px); }
.news-feat{ display:block; position:relative; border:1px solid var(--hair); border-radius:18px; padding:clamp(26px,3.5vw,44px) clamp(26px,3.5vw,44px) clamp(26px,3.5vw,44px) clamp(32px,4vw,52px); background:var(--paper-2); text-decoration:none; color:inherit; overflow:hidden; transition:border-color .18s, box-shadow .18s, transform .18s; }
.news-feat::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--accent); }
.news-feat:hover{ border-color:var(--accent); box-shadow:0 26px 60px -30px rgba(16,30,67,.32); transform:translateY(-2px); }
.news-feat__idx{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--accent); letter-spacing:.12em; }
.news-feat__eyebrow{ display:block; margin-top:10px; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.news-feat__title{ font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(22px,2.6vw,34px); line-height:1.2; letter-spacing:-.01em; color:var(--navy); margin:10px 0 12px; max-width:30ch; }
.news-feat__excerpt{ font-size:clamp(14px,1.3vw,16px); color:var(--ink-2); line-height:1.6; max-width:70ch; margin:0 0 16px; }
.news-feat__more{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--accent); font-size:14px; }
.news-feat__more svg{ width:17px; height:17px; transition:transform .18s; }
.news-feat:hover .news-feat__more svg{ transform:translateX(3px); }

.news-section-title{ font-family:"Archivo",sans-serif; font-weight:800; font-size:20px; color:var(--ink); margin:clamp(8px,2vw,18px) 0 0; }
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-block:clamp(20px,3vw,32px); }
@media (max-width:900px){ .news-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .news-grid{ grid-template-columns:1fr; } }
.news-card{ display:flex; flex-direction:column; border:1px solid var(--hair); border-radius:14px; padding:22px; background:#fff; text-decoration:none; color:inherit; transition:border-color .18s, box-shadow .18s, transform .18s; }
.news-card:hover{ border-color:var(--accent); transform:translateY(-2px); box-shadow:0 18px 40px -26px rgba(16,30,67,.28); }
.news-card__tag{ align-self:flex-start; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; padding:4px 9px; border-radius:6px; margin-bottom:13px; }
.news-card__tag.t-press{ background:var(--accent-wash); color:#1d47b0; border:1px solid #c3d3f5; }
.news-card__tag.t-news{ background:#eef2fb; color:#3a4f86; border:1px solid #dde5f5; }
.news-card__tag.t-view{ background:#fbf3e6; color:#8a6a2f; border:1px solid #f0dcc0; }
.news-card__title{ font-family:"Archivo",sans-serif; font-weight:700; font-size:16.5px; line-height:1.3; color:var(--ink); margin:0 0 10px; }
.news-card__excerpt{ font-size:13.5px; color:var(--ink-2); line-height:1.55; flex:1; margin:0; }
.news-card__meta{ display:flex; align-items:center; gap:8px; margin-top:16px; padding-top:14px; border-top:1px solid var(--hair); font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.02em; color:var(--ink-3); }
.news-card__meta .who{ color:var(--ink-2); font-weight:500; }
.news-empty{ display:none; text-align:center; color:var(--ink-3); padding:40px 0; font-size:15px; }

.news-sub{ margin-block:clamp(18px,3vw,32px); border-radius:18px; background:var(--navy); color:#fff; padding:clamp(28px,4vw,44px); display:grid; grid-template-columns:1.2fr .9fr; gap:26px; align-items:center; }
@media (max-width:760px){ .news-sub{ grid-template-columns:1fr; } }
.news-sub h3{ font-family:"Archivo",sans-serif; font-weight:800; font-size:clamp(20px,2.4vw,28px); margin:0 0 8px; }
.news-sub p{ color:rgba(255,255,255,.78); font-size:14px; line-height:1.55; margin:0; }
.news-sub__form{ display:flex; gap:10px; }
@media (max-width:420px){ .news-sub__form{ flex-direction:column; } }
.news-sub__form input{ flex:1; min-width:0; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.08); color:#fff; border-radius:100px; padding:12px 18px; font:inherit; font-size:14px; }
.news-sub__form input::placeholder{ color:rgba(255,255,255,.55); }
.news-sub__form input:focus-visible{ outline:2px solid var(--accent-bright); outline-offset:1px; }
.news-sub__form .btn{ white-space:nowrap; }
