/* ═════════════ TOKENS ═════════════ */
:root {
  /* CRA Blue (brand identity, kept) */
  --cra-50:#F0F6FF; --cra-100:#D6E6FF; --cra-200:#A3C8FF; --cra-300:#5C9DFF;
  --cra-400:#0A6CFF; --cra-500:#0050C9; --cra-600:#003D99; --cra-700:#002D70;
  --cra-800:#001C47; --cra-900:#001029;

  /* Slate neutrals (dominant) */
  --slate-50:#F6F7F9; --slate-100:#E7EAEE; --slate-200:#CAD0D9; --slate-300:#A0ABBB;
  --slate-400:#718199; --slate-500:#64748B; --slate-600:#404A59; --slate-700:#2F3641;
  --slate-800:#1E232A; --slate-900:#111418;

  /* Signal Orange (single accent, used sparingly) */
  --accent-400:#FB923C; --accent-500:#F97316; --accent-600:#EA580C; --accent-700:#C2410C;
  --accent-50:#FFF7ED;

  /* Off-black (no #000) */
  --ink:#0B0E14;

  /* Semantic */
  --success:#16A34A; --success-bg:#F2FDF6;
  --danger:#DC2626;  --danger-bg:#FDF2F2;

  /* Soft Structuralism shadows, wide, diffused, low-opacity */
  --shadow-ambient:0 1px 2px rgba(13,18,30,.03), 0 12px 24px -10px rgba(13,18,30,.06);
  --shadow-lifted:0 1px 2px rgba(13,18,30,.04), 0 24px 40px -16px rgba(13,18,30,.10);
  --shadow-deep:0 24px 60px -16px rgba(0,29,71,.18), 0 2px 6px rgba(13,18,30,.05);
  --shadow-glass:inset 0 1px 0 rgba(255,255,255,.5), 0 8px 24px -8px rgba(13,18,30,.08);
  --shadow-inset-hi:inset 0 1px 0 rgba(255,255,255,.6);

  /* Radii, squircle, concentric */
  --r-pill:9999px;
  --r-xs:10px;
  --r-sm:14px;
  --r-md:20px;
  --r-lg:28px;
  --r-xl:36px;

  /* Motion */
  --ease-fluid:cubic-bezier(0.32, 0.72, 0, 1);
  --ease-out:cubic-bezier(0, 0, 0.2, 1);
  --d-fast:200ms;
  --d-base:400ms;
  --d-slow:900ms;

  /* Typography stack, Geist family (Inter banned by skills) */
  --font-sans:'Geist','Geist Fallback',system-ui,-apple-system,sans-serif;
  --font-mono:'Geist Mono',ui-monospace,'SF Mono',monospace;

  /* Layout */
  --container-max:1320px;
  --container-px:clamp(20px, 4vw, 48px);
  --nav-h:72px;
  --prose-max:680px;
}

/* ═════════════ RESET ═════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-sans);
  font-size:16.5px;
  line-height:1.65;
  color:var(--slate-600);
  background:var(--slate-50);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-feature-settings:'ss01','cv11';
  overflow-x:hidden;
}
img,svg { display:block; max-width:100%; height:auto; }
button { font:inherit; cursor:pointer; background:none; border:none; color:inherit; }
a { color:inherit; text-decoration:none; }
input,textarea,select { font:inherit; color:inherit; }
:focus-visible {
  outline:2px solid var(--cra-400);
  outline-offset:3px;
  border-radius:6px;
}
::selection { background:var(--cra-100); color:var(--cra-800); }

/* ═════════════ UTILITIES ═════════════ */
.container { max-width:var(--container-max); margin-inline:auto; padding-inline:var(--container-px); }
.prose { max-width:var(--prose-max); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:absolute; top:-50px; left:16px; z-index:300; background:var(--ink); color:#fff; padding:10px 18px; border-radius:var(--r-pill); font-weight:500; transition:top var(--d-fast) var(--ease-fluid); }
.skip-link:focus { top:16px; }

/* Grain noise overlay, fixed, pointer-events-none */
.grain {
  position:fixed; inset:0; pointer-events:none; z-index:1;
  opacity:.025;
  background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode:multiply;
}

/* ═════════════ TYPOGRAPHY ═════════════ */
h1,h2,h3,h4,h5,h6 {
  font-family:var(--font-sans);
  color:var(--ink);
  line-height:1.05;
  letter-spacing:-0.025em;
  font-feature-settings:'ss01','cv11';
}
p { color:var(--slate-600); max-width:65ch; }

.display {
  font-size:clamp(44px, 8.4vw, 104px);
  font-weight:600;
  letter-spacing:-0.035em;
  line-height:0.96;
}
.h-1 {
  font-size:clamp(36px, 5.6vw, 64px);
  font-weight:600;
  letter-spacing:-0.03em;
  line-height:1.02;
}
.h-2 {
  font-size:clamp(28px, 3.6vw, 40px);
  font-weight:600;
  letter-spacing:-0.025em;
  line-height:1.1;
}
.h-3 {
  font-size:clamp(22px, 2.6vw, 28px);
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.2;
}
.h-4 {
  font-size:18px;
  font-weight:600;
  letter-spacing:-0.015em;
  line-height:1.3;
  color:var(--ink);
}
.lede {
  font-size:clamp(17px, 1.6vw, 21px);
  line-height:1.5;
  color:var(--slate-500);
  max-width:58ch;
  font-weight:400;
}
.lede-dark { color:rgba(255,255,255,.7); }
.mono { font-family:var(--font-mono); }

/* Eyebrow pill tag */
.eyebrow {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-mono);
  font-size:11px; font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.18em;
  color:var(--slate-500);
  padding:6px 14px;
  border-radius:var(--r-pill);
  background:rgba(255,255,255,.7);
  border:1px solid var(--slate-100);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.eyebrow-dark {
  color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.1);
}
.eyebrow .pulse {
  width:6px; height:6px; border-radius:50%;
  background:var(--accent-500);
  box-shadow:0 0 0 3px rgba(249,115,22,.2);
  animation:pulse 2s var(--ease-fluid) infinite;
}
@keyframes pulse {
  0%,100% { box-shadow:0 0 0 3px rgba(249,115,22,.2); }
  50% { box-shadow:0 0 0 6px rgba(249,115,22,0); }
}

/* ═════════════ BUTTONS, Button-in-Button pattern ═════════════ */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  height:52px;
  padding:0 8px 0 28px;
  font-family:var(--font-sans);
  font-size:15px; font-weight:500; line-height:1;
  border-radius:var(--r-pill);
  border:1px solid transparent;
  transition:transform var(--d-fast) var(--ease-fluid),
             background var(--d-fast) var(--ease-fluid),
             border-color var(--d-fast) var(--ease-fluid),
             box-shadow var(--d-fast) var(--ease-fluid),
             color var(--d-fast) var(--ease-fluid);
  white-space:nowrap;
  cursor:pointer;
}
.btn .btn-arrow {
  width:38px; height:38px;
  border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.08);
  transition:transform var(--d-fast) var(--ease-fluid),
             background var(--d-fast) var(--ease-fluid);
}
.btn .btn-arrow i {
  font-size:18px;
  transition:transform var(--d-fast) var(--ease-fluid);
}
.btn:hover { transform:translateY(-1px); }
.btn:hover .btn-arrow { transform:translateX(2px); }
.btn:hover .btn-arrow i { transform:translateX(2px); }
.btn:active { transform:translateY(0) scale(0.98); }

.btn-primary {
  background:var(--ink); color:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 8px 20px -6px rgba(13,18,30,.4);
}
.btn-primary .btn-arrow { background:rgba(255,255,255,.12); }
.btn-primary:hover { background:var(--slate-900); }

.btn-blue { background:var(--cra-500); color:#fff; box-shadow:0 1px 0 rgba(255,255,255,.15) inset, 0 8px 20px -6px rgba(0,80,201,.5); }
.btn-blue .btn-arrow { background:rgba(255,255,255,.18); }
.btn-blue:hover { background:var(--cra-600); }

.btn-glass {
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.16);
  color:#fff;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.btn-glass .btn-arrow { background:rgba(255,255,255,.1); }
.btn-glass:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.28); }

.btn-light {
  background:rgba(255,255,255,.9);
  border-color:var(--slate-100);
  color:var(--ink);
  box-shadow:var(--shadow-ambient);
}
.btn-light .btn-arrow { background:var(--slate-100); }
.btn-light:hover { background:#fff; }

.btn-accent {
  background:var(--accent-500); color:#fff; font-weight:600;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 8px 20px -6px rgba(249,115,22,.45);
}
.btn-accent .btn-arrow { background:rgba(255,255,255,.2); }
.btn-accent:hover { background:var(--accent-600); }

.btn-sm { height:42px; padding:0 6px 0 20px; font-size:14px; }
.btn-sm .btn-arrow { width:32px; height:32px; }
.btn-sm .btn-arrow i { font-size:15px; }

.btn-lg { height:60px; padding:0 10px 0 32px; font-size:16px; }
.btn-lg .btn-arrow { width:44px; height:44px; }
.btn-lg .btn-arrow i { font-size:20px; }

.btn-link {
  display:inline-flex; align-items:center; gap:8px;
  color:var(--ink); font-weight:500; font-size:15px;
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  transition:color var(--d-fast) var(--ease-fluid),
             border-color var(--d-fast) var(--ease-fluid);
}
.btn-link i { font-size:16px; transition:transform var(--d-fast) var(--ease-fluid); }
.btn-link:hover { color:var(--cra-500); border-color:var(--cra-200); }
.btn-link:hover i { transform:translateX(4px); }
.btn-link-dark { color:rgba(255,255,255,.85); }
.btn-link-dark:hover { color:#fff; border-color:rgba(255,255,255,.3); }

/* ═════════════ NAV, Floating Glass Pill ═════════════ */
.nav-wrap {
  position:sticky; top:0; z-index:100;
  padding:clamp(12px, 1.6vw, 22px) var(--container-px) 0;
  pointer-events:none;
}
.nav {
  pointer-events:auto;
  max-width:var(--container-max);
  margin-inline:auto;
  height:var(--nav-h);
  padding:8px 8px 8px 24px;
  background:rgba(255,255,255,.7);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border:1px solid rgba(255,255,255,.6);
  border-radius:var(--r-pill);
  box-shadow:var(--shadow-glass);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  transition:background var(--d-fast) var(--ease-fluid),
             box-shadow var(--d-fast) var(--ease-fluid);
}
.nav.is-scrolled {
  background:rgba(255,255,255,.85);
  box-shadow:var(--shadow-lifted), var(--shadow-inset-hi);
}
.nav-logo { display:inline-flex; align-items:center; }
.nav-logo img { height:32px; width:auto; }
.nav-links {
  display:flex; align-items:center; gap:4px; list-style:none;
}
.nav-links a {
  font-size:14.5px; font-weight:500; color:var(--slate-700);
  padding:8px 16px; border-radius:var(--r-pill);
  transition:background var(--d-fast) var(--ease-fluid), color var(--d-fast) var(--ease-fluid);
}
.nav-links a:hover { background:rgba(13,18,30,.06); color:var(--ink); }
.nav-links a.is-active { background:var(--ink); color:#fff; }
.nav-right { display:flex; align-items:center; gap:8px; }
.nav-phone {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-mono); font-size:13px; color:var(--slate-500);
  padding:8px 14px;
  border-radius:var(--r-pill);
  transition:color var(--d-fast) var(--ease-fluid);
}
.nav-phone:hover { color:var(--ink); }
.nav-phone i { font-size:14px; }

.nav-burger {
  display:none;
  width:48px; height:48px;
  align-items:center; justify-content:center;
  border-radius:50%;
  color:var(--ink);
  background:rgba(13,18,30,.05);
  transition:background var(--d-fast) var(--ease-fluid);
}
.nav-burger i { font-size:22px; }
.nav-burger:hover { background:rgba(13,18,30,.1); }

@media (max-width:1080px) {
  .nav-phone { display:none; }
}
@media (max-width:880px) {
  .nav-links { display:none; }
  .nav-right .btn { display:none; }
  .nav-burger { display:inline-flex; }
  .nav { padding-left:16px; padding-right:8px; }
}

/* ═════════════ MOBILE MENU, Staggered Mask Reveal ═════════════ */
.mobile-menu {
  position:fixed; inset:0; z-index:200;
  background:rgba(11,14,20,.9);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  display:flex; flex-direction:column;
  padding:clamp(20px,4vw,32px);
  opacity:0;
  visibility:hidden;
  transition:opacity var(--d-base) var(--ease-fluid), visibility var(--d-base);
}
.mobile-menu[data-open="true"] {
  opacity:1;
  visibility:visible;
}
.mobile-menu-top {
  display:flex; justify-content:space-between; align-items:center;
  height:var(--nav-h);
}
.mobile-menu-close {
  width:48px; height:48px;
  color:#fff;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
}
.mobile-menu-close i { font-size:24px; }
.mobile-menu-links {
  display:flex; flex-direction:column; gap:4px; margin-top:56px; list-style:none;
}
.mobile-menu-links li {
  opacity:0;
  transform:translateY(20px);
  transition:opacity 600ms var(--ease-fluid), transform 600ms var(--ease-fluid);
}
.mobile-menu[data-open="true"] .mobile-menu-links li {
  opacity:1; transform:translateY(0);
}
.mobile-menu[data-open="true"] .mobile-menu-links li:nth-child(1) { transition-delay:100ms; }
.mobile-menu[data-open="true"] .mobile-menu-links li:nth-child(2) { transition-delay:160ms; }
.mobile-menu[data-open="true"] .mobile-menu-links li:nth-child(3) { transition-delay:220ms; }
.mobile-menu[data-open="true"] .mobile-menu-links li:nth-child(4) { transition-delay:280ms; }
.mobile-menu-links a {
  display:block;
  font-size:clamp(32px,7vw,52px); font-weight:600; color:#fff;
  letter-spacing:-0.03em;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:color var(--d-fast) var(--ease-fluid);
}
.mobile-menu-links a:hover { color:var(--cra-300); }
.mobile-menu-links a.is-active { color:var(--cra-300); }
.mobile-menu-footer {
  margin-top:auto;
  padding-top:24px;
  display:flex; flex-direction:column; gap:16px;
}
.mobile-menu-footer .btn { width:fit-content; }
.mobile-menu-phone {
  font-family:var(--font-mono); color:rgba(255,255,255,.5); font-size:14px;
  display:inline-flex; align-items:center; gap:8px;
}

/* ═════════════ PAGES ═════════════ */
.page { display:block; }
.page[hidden] { display:none !important; }

/* ═════════════ SECTIONS, macro whitespace ═════════════ */
.section { padding-block:clamp(96px, 14vw, 160px); }
.section-tight { padding-block:clamp(64px, 9vw, 96px); }
.section-white { background:#fff; }
.section-shell { background:var(--slate-50); }
.section-blue { background:var(--cra-50); }
.section-dark { background:var(--ink); color:#fff; }
.section-dark p, .section-dark .lede { color:rgba(255,255,255,.65); }
.section-dark h1,.section-dark h2,.section-dark h3,.section-dark h4 { color:#fff; }

.section-head { max-width:880px; margin-bottom:clamp(48px,6vw,80px); display:flex; flex-direction:column; gap:18px; }
.section-head.centered { margin-inline:auto; text-align:center; align-items:center; }
.section-head p.lede { margin-top:6px; }
/* Section that hosts a foreground overlay (e.g. Charles cutting into next section) */
.section-has-foreground {
  position:relative;
  z-index:5;
  overflow:visible;
}

/* ═════════════ HERO, Editorial Split ═════════════ */
.hero {
  position:relative;
  height:100vh;
  height:100dvh;
  min-height:600px;
  max-height:760px;
  display:grid;
  align-content:start;
  padding-top:clamp(104px, 11vw, 120px);
  padding-bottom:clamp(32px, 4vw, 48px);
  overflow:hidden;
  isolation:isolate;
  background:#fff;
}
.hero-bg {
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.78) 55%, rgba(255,255,255,.88) 100%),
    radial-gradient(ellipse 50% 40% at 90% 10%, rgba(0,80,201,.18) 0%, transparent 60%),
    radial-gradient(ellipse 50% 50% at 5% 90%, rgba(249,115,22,.10) 0%, transparent 60%),
    var(--cra-bg-hero-home, url("../images/illustrations/95681bea-4154-4f68-b997-409738e8c7fd.png")) right center / cover no-repeat,
    #fff;
}
.hero-bg::after {
  content:'';
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(13,18,30,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13,18,30,.04) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 50%, #000 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%, #000 30%, transparent 80%);
}

.hero-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(48px, 6vw, 80px);
  align-items:center;
}
@media (min-width:980px) {
  .hero-grid { grid-template-columns:1.15fr 1fr; gap:clamp(56px, 7vw, 96px); }
}

.hero-content { display:flex; flex-direction:column; gap:20px; align-items:flex-start; }
.hero-content h1.display {
  color:var(--ink);
  font-size:clamp(36px, 4.4vw, 60px);
  line-height:1.02;
  letter-spacing:-0.03em;
  max-width:min(640px, 100%);
}
.hero-content h1.display em {
  font-style:italic; font-weight:500;
  color:var(--cra-500);
  letter-spacing:-0.025em;
}
.hero-content .lede { font-size:clamp(15px,1.3vw,18px); }
.hero-ctas { display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }

/* Hero asset: asymmetric bento */
.hero-asset {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  grid-template-rows:auto auto auto;
  gap:14px;
  position:relative;
}
.tile {
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:var(--r-lg);
  padding:8px;
  box-shadow:var(--shadow-ambient), var(--shadow-inset-hi);
  transition:transform var(--d-base) var(--ease-fluid), box-shadow var(--d-base) var(--ease-fluid);
}
.tile:hover { transform:translateY(-4px); box-shadow:var(--shadow-lifted); }
.tile-inner {
  background:var(--slate-50);
  border-radius:calc(var(--r-lg) - 8px);
  height:100%;
  padding:24px;
  display:flex; flex-direction:column; gap:12px; justify-content:space-between;
}

.tile-logos {
  grid-column:1 / -1;
  grid-row:1;
}
.tile-logos .tile-inner {
  background:linear-gradient(135deg, var(--slate-50), #fff);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  padding:20px;
  align-items:center;
  justify-items:center;
}
.tile-logos img {
  max-height:32px; max-width:80px; width:auto; object-fit:contain;
  opacity:.85;
  filter:saturate(0.9);
}

.tile-stat .tile-inner { gap:6px; }
.tile-stat .label {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em;
  color:var(--slate-500); text-transform:uppercase;
}
.tile-stat .value {
  font-family:var(--font-sans); font-size:clamp(28px,3.2vw,40px);
  font-weight:700; color:var(--ink); letter-spacing:-0.03em;
  line-height:1;
}
.tile-stat .caption { font-size:12.5px; color:var(--slate-500); line-height:1.45; }

.tile-pill {
  grid-column:1 / -1;
}
.tile-pill .tile-inner {
  background:var(--ink);
  flex-direction:row; align-items:center; justify-content:space-between;
  padding:18px 22px; color:#fff;
}
.tile-pill .label {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em;
  color:rgba(255,255,255,.5); text-transform:uppercase;
  display:flex; align-items:center; gap:8px;
}
.tile-pill .label .dot {
  width:6px; height:6px; border-radius:50%; background:var(--success);
  box-shadow:0 0 0 3px rgba(22,163,74,.25);
}
.tile-pill .copy { color:#fff; font-size:14px; font-weight:500; }
.tile-pill .arrow {
  width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.1);
  display:inline-flex; align-items:center; justify-content:center;
  transition:transform var(--d-fast) var(--ease-fluid), background var(--d-fast);
}
.tile-pill:hover .arrow { background:rgba(255,255,255,.18); transform:translateX(3px); }
.tile-pill .arrow i { font-size:16px; }

@media (min-width:980px) {
  .hero-asset {
    grid-template-columns:1.3fr 1fr;
    grid-template-rows:auto auto auto;
  }
}

/* ═════════════ COMPACT HERO (secondary pages) ═════════════ */
.hero-compact {
  position:relative;
  padding-top:clamp(96px, 14vw, 140px);
  padding-bottom:clamp(48px, 7vw, 80px);
  overflow:hidden;
  isolation:isolate;
  background:#fff;
}
.hero-compact-bg {
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.92) 100%),
    radial-gradient(ellipse 60% 50% at 100% 0%, rgba(0,80,201,.12) 0%, transparent 60%),
    var(--cra-bg-hero-compact, url("../images/illustrations/ChatGPT-Image-Feb-16-2026-12_27_01-AM.png")) center / cover no-repeat,
    #fff;
}
.hero-compact h1 { color:var(--ink); }
.hero-compact .lede { margin-top:24px; }

/* ═════════════ LOGO BAR, Kinetic Marquee ═════════════ */
.logo-strip {
  padding-block:clamp(48px, 6vw, 72px);
  overflow:hidden;
  background:#fff;
  border-top:1px solid var(--slate-100);
  border-bottom:1px solid var(--slate-100);
}
.logo-strip-label {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--slate-400); text-align:center;
  margin-bottom:32px;
}
.logo-strip-rail {
  display:flex; gap:clamp(40px,5vw,80px);
  animation:marquee 40s linear infinite;
  will-change:transform;
}
.logo-strip:hover .logo-strip-rail { animation-play-state:paused; }
@keyframes marquee {
  from { transform:translateX(0); }
  to { transform:translateX(-50%); }
}
.logo-strip-rail img {
  max-height:36px; max-width:140px; width:auto; object-fit:contain;
  opacity:.55;
  filter:grayscale(100%) contrast(0.9);
  transition:opacity var(--d-base) var(--ease-fluid), filter var(--d-base) var(--ease-fluid);
}
.logo-strip-rail img:hover { opacity:1; filter:grayscale(0%) contrast(1); }
@media (prefers-reduced-motion:reduce) {
  .logo-strip-rail { animation:none; flex-wrap:wrap; justify-content:center; }
}

/* ═════════════ EDITORIAL SPLIT (text + media) ═════════════ */
.split {
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(40px, 5vw, 80px);
  align-items:center;
}
@media (min-width:880px) {
  .split { grid-template-columns:1.1fr 1fr; }
  .split-reverse { grid-template-columns:1fr 1.1fr; }
  .split-reverse .split-text { order:2; }
  .split-reverse .split-media { order:1; }
}
.split-text { display:flex; flex-direction:column; gap:20px; max-width:560px; align-items:flex-start; }
.split-text p { font-size:17px; }
.split-text .btn { margin-top:8px; }

/* Outer column (used in .split) — no clip so a foreground layer can extend past */
.split-media {
  position:relative;
}
/* Stack: holds the framed image card + an optional foreground portrait that
   overflows the card's bottom edge into the next section */
.split-media-stack {
  position:relative;
  z-index:5;        /* lifted above sibling sections so the cut-out reads */
}
.split-media-shell {
  position:relative;
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:var(--r-xl);
  padding:10px;
  box-shadow:var(--shadow-lifted), var(--shadow-inset-hi);
}
.split-media-shell::before {
  content:''; position:absolute;
  inset:-1px;
  border-radius:var(--r-xl);
  background:linear-gradient(135deg, rgba(255,255,255,.6), transparent);
  pointer-events:none; z-index:-1;
}
.split-media-frame {
  position:relative;
  border-radius:calc(var(--r-xl) - 10px);
  overflow:hidden;
  aspect-ratio:5 / 4;
  background:var(--slate-100);
}
.split-media-frame > img { width:100%; height:100%; object-fit:cover; }
.split-media-overlay {
  position:absolute; bottom:16px; left:16px;
  display:inline-flex; gap:14px; align-items:center;
  padding:10px 16px;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.6);
  border-radius:var(--r-pill);
  font-family:var(--font-mono); font-size:12px; color:var(--slate-700);
  letter-spacing:.05em;
  z-index:2;
}
/* Foreground portrait — overlays the framed image, shoulders extend past it */
.split-media-front {
  position:absolute;
  left:62%;
  bottom:-42%;
  transform:translateX(-50%);
  height:132%;
  width:auto;
  max-width:96%;
  object-fit:contain;
  object-position:bottom center;
  filter:drop-shadow(0 26px 56px rgba(0,29,71,.28));
  pointer-events:none;
  z-index:3;
  /* Soft fade at the bottom so shoulders don't cut hard against the next section */
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 68%, rgba(0,0,0,.85) 80%, rgba(0,0,0,.4) 92%, transparent 100%);
          mask-image:linear-gradient(to bottom, #000 0%, #000 68%, rgba(0,0,0,.85) 80%, rgba(0,0,0,.4) 92%, transparent 100%);
}
@media (max-width:879px) {
  .split-media-front { left:60%; bottom:-28%; height:118%; }
}

/* ═════════════ MANUFACTURER SHOWCASE — Tabbed, animated ═════════════ */
.mfr-showcase {
  display:flex; flex-direction:column;
  gap:clamp(28px, 4vw, 48px);
}

/* Tabs row — horizontally scrollable on small screens */
.mfr-tabs {
  display:flex; gap:10px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:4px 4px 12px;
  margin:-4px -4px 0;
  scrollbar-width:thin;
  scrollbar-color:var(--slate-200) transparent;
}
.mfr-tabs::-webkit-scrollbar { height:6px; }
.mfr-tabs::-webkit-scrollbar-thumb { background:var(--slate-200); border-radius:999px; }
.mfr-tabs::-webkit-scrollbar-track { background:transparent; }

.mfr-tab {
  flex:1 0 auto;
  min-width:130px;
  height:84px;
  scroll-snap-align:start;
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 18px;
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-ambient);
  cursor:pointer;
  position:relative;
  transition:transform var(--d-fast) var(--ease-fluid),
             border-color var(--d-fast) var(--ease-fluid),
             box-shadow var(--d-fast) var(--ease-fluid),
             background var(--d-fast) var(--ease-fluid);
}
.mfr-tab img {
  max-height:36px; max-width:110px;
  object-fit:contain;
  opacity:.65;
  filter:saturate(.85);
  transition:opacity var(--d-fast) var(--ease-fluid), filter var(--d-fast) var(--ease-fluid);
}
.mfr-tab:hover { transform:translateY(-2px); border-color:var(--slate-200); }
.mfr-tab:hover img { opacity:1; filter:saturate(1); }
.mfr-tab.is-active {
  background:var(--ink);
  border-color:var(--ink);
  box-shadow:var(--shadow-lifted);
}
.mfr-tab.is-active img {
  opacity:1;
  filter:brightness(0) invert(1);
}
.mfr-tab.is-active::after {
  content:'';
  position:absolute; left:50%; bottom:-12px;
  width:8px; height:8px;
  background:var(--ink);
  border-radius:50%;
  transform:translate(-50%, 0) rotate(45deg);
}

/* Stage — single panel visible, swap via JS */
.mfr-stage {
  position:relative;
  display:grid;
  grid-template-areas:"stack";
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:var(--r-xl);
  box-shadow:var(--shadow-lifted), var(--shadow-inset-hi);
  overflow:hidden;
  min-height:520px;
}
.mfr-panel {
  grid-area:stack;
  display:grid;
  grid-template-columns:1fr;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(12px);
  filter:blur(6px);
  transition:opacity var(--d-base) var(--ease-fluid),
             transform var(--d-base) var(--ease-fluid),
             filter var(--d-base) var(--ease-fluid),
             visibility 0s linear var(--d-base);
}
.mfr-panel.is-active {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
  filter:blur(0);
  transition:opacity var(--d-base) var(--ease-fluid),
             transform var(--d-base) var(--ease-fluid),
             filter var(--d-base) var(--ease-fluid),
             visibility 0s;
}
@media (min-width:880px) {
  .mfr-panel { grid-template-columns:1fr 1.05fr; }
}

.mfr-panel-text {
  padding:clamp(28px, 4vw, 56px);
  display:flex; flex-direction:column; gap:18px;
  align-items:flex-start;
  justify-content:center;
}
.mfr-panel-logo {
  max-height:64px; max-width:240px;
  width:auto; height:auto;
  object-fit:contain;
  margin-bottom:6px;
}
.mfr-features {
  font-family:var(--font-sans);
  font-size:14px; font-weight:500;
  color:var(--cra-600);
  letter-spacing:.01em;
  display:flex; flex-wrap:wrap; gap:6px 12px;
  align-items:center;
}
.mfr-features .dot { color:var(--slate-300); }
.mfr-panel h3 {
  font-size:clamp(28px, 3.4vw, 40px);
  font-weight:600;
  letter-spacing:-0.025em;
  line-height:1.05;
  color:var(--ink);
}
.mfr-panel-desc {
  font-size:16px; line-height:1.65;
  color:var(--slate-600);
  max-width:52ch;
}
.mfr-panel-cta { margin-top:10px; }

.mfr-panel-media {
  position:relative;
  background:var(--slate-50);
  min-height:280px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.mfr-panel-media::before {
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(0,80,201,.06) 0%, transparent 70%),
    radial-gradient(ellipse 60% 60% at 100% 0%, rgba(249,115,22,.04) 0%, transparent 70%);
  pointer-events:none;
}
.mfr-panel-media img.product {
  position:relative;
  max-width:90%; max-height:90%;
  width:auto; height:auto;
  object-fit:contain;
  filter:drop-shadow(0 16px 40px rgba(0,29,71,.18));
}
.mfr-panel-media .mfr-video-shell {
  position:relative;
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px, 3vw, 40px);
}
.mfr-panel-media .mfr-video {
  width:100%;
  aspect-ratio:16/9;
  border-radius:var(--r-md);
  overflow:hidden;
  background:linear-gradient(135deg, var(--slate-800), var(--slate-900));
  box-shadow:var(--shadow-deep);
  position:relative;
}
.mfr-panel-media .mfr-video iframe {
  width:100%; height:100%; border:0;
  display:block;
}
/* YouTube thumbnail — sits behind the placeholder overlay */
.mfr-video-thumb {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(.9);
}
/* Video placeholder — clickable button overlay until iframe is loaded */
.mfr-panel-media .mfr-video-placeholder {
  position:absolute; inset:0;
  width:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px;
  padding:0;
  color:#fff;
  text-align:center;
  font:inherit;
  border:0;
  cursor:pointer;
  background:
    radial-gradient(ellipse 60% 60% at 50% 40%, rgba(0,80,201,.32) 0%, transparent 70%),
    linear-gradient(135deg, rgba(11,14,20,.45), rgba(17,20,24,.7));
  transition:background var(--d-fast) var(--ease-fluid);
}
.mfr-panel-media .mfr-video-placeholder:hover {
  background:
    radial-gradient(ellipse 60% 60% at 50% 40%, rgba(0,80,201,.42) 0%, transparent 70%),
    linear-gradient(135deg, rgba(11,14,20,.35), rgba(17,20,24,.6));
}
.mfr-video-placeholder .play {
  width:72px; height:72px; border-radius:50%;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.3);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  display:inline-flex; align-items:center; justify-content:center;
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.3);
  transition:transform var(--d-fast) var(--ease-fluid), background var(--d-fast);
}
.mfr-video-placeholder .play i { font-size:28px; margin-left:3px; }
.mfr-video-placeholder:hover .play { transform:scale(1.08); background:rgba(255,255,255,.28); }
.mfr-video-placeholder .label {
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.7);
}
.mfr-video-placeholder .title {
  font-size:15px; font-weight:500;
  color:#fff;
  max-width:80%;
}

/* ═════════════ BENTO (value prop, 5 steps) ═════════════ */
.bento {
  display:grid;
  grid-template-columns:repeat(1, 1fr);
  gap:14px;
}
@media (min-width:680px) { .bento { grid-template-columns:repeat(6, 1fr); } }

.bento-card {
  position:relative;
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:var(--r-lg);
  padding:8px;
  box-shadow:var(--shadow-ambient), var(--shadow-inset-hi);
  transition:transform var(--d-base) var(--ease-fluid), box-shadow var(--d-base) var(--ease-fluid);
  grid-column:span 6;
}
.bento-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lifted); }
.bento-inner {
  background:var(--slate-50);
  border-radius:calc(var(--r-lg) - 8px);
  padding:28px;
  height:100%;
  display:flex; flex-direction:column; gap:14px;
}
.bento-step {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.15em;
  color:var(--slate-400); text-transform:uppercase;
}
.bento-icon {
  width:48px; height:48px; border-radius:14px;
  background:#fff;
  border:1px solid var(--slate-100);
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--cra-500);
  box-shadow:var(--shadow-inset-hi);
}
.bento-icon i { font-size:24px; }
.bento-card h4 { font-size:20px; font-weight:600; color:var(--ink); }
.bento-card p { font-size:14.5px; line-height:1.55; color:var(--slate-600); }

/* Asymmetric Bento on desktop: 1 wide + 2 normal on row 1, 3 equal on row 2 */
@media (min-width:680px) {
  .bento-card.featured { grid-column:span 4; }
  .bento-card.featured .bento-inner {
    background:
      linear-gradient(135deg, rgba(0,16,41,.88), rgba(0,45,112,.72)),
      var(--cra-bg-bento-featured, url("../images/illustrations/ChatGPT-Image-Mar-7-2026-06_35_08-PM.png")) center / cover no-repeat,
      var(--cra-900);
    color:#fff;
    padding:36px;
  }
  .bento-card.featured h4 { color:#fff; font-size:28px; max-width:24ch; }
  .bento-card.featured p { color:rgba(255,255,255,.7); font-size:15.5px; max-width:50ch; }
  .bento-card.featured .bento-step { color:rgba(255,255,255,.45); }
  .bento-card.featured .bento-icon {
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.15);
    color:#fff;
  }
  .bento-card:nth-child(2) { grid-column:span 2; }
  .bento-card:nth-child(3),
  .bento-card:nth-child(4),
  .bento-card:nth-child(5) { grid-column:span 2; }
}

/* ═════════════ TWO-PATHS BLOCK ═════════════ */
.paths {
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media (min-width:760px) {
  .paths { grid-template-columns:1fr 1fr; }
}
.path-card {
  position:relative;
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:var(--r-xl);
  padding:10px;
  box-shadow:var(--shadow-ambient);
}
.path-inner {
  border-radius:calc(var(--r-xl) - 10px);
  padding:clamp(32px,4vw,48px);
  display:flex; flex-direction:column; gap:18px;
  height:100%;
  background:var(--slate-50);
}
.path-card.path-dark .path-inner {
  background:
    linear-gradient(155deg, rgba(11,14,20,.88), rgba(26,31,43,.78)),
    var(--cra-bg-path-dark, url("../images/illustrations/ChatGPT-Image-Feb-15-2026-10_04_20-PM.png")) center / cover no-repeat,
    var(--ink);
  color:#fff;
}
.path-card.path-dark h3 { color:#fff; }
.path-card.path-dark p { color:rgba(255,255,255,.65); }
.path-card.path-dark .bento-icon {
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12); color:#fff;
}
.path-card h3 { font-size:26px; }
.path-card p { font-size:16px; }
.path-card .path-foot { margin-top:auto; padding-top:8px; }

/* ═════════════ CONTACT (form) ═════════════ */
.contact-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(40px, 5vw, 64px);
  align-items:start;
}
@media (min-width:900px) {
  .contact-grid { grid-template-columns:1fr 1.2fr; }
}
.contact-info { display:flex; flex-direction:column; gap:28px; }
.contact-info-item { display:flex; gap:14px; align-items:flex-start; }
.contact-info-item .icon {
  width:44px; height:44px; min-width:44px;
  border-radius:14px;
  background:#fff; color:var(--ink);
  border:1px solid var(--slate-100);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-inset-hi);
}
.contact-info-item .icon i { font-size:20px; }
.contact-info-item .label {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em;
  color:var(--slate-500); text-transform:uppercase; margin-bottom:4px;
}
.contact-info-item .value { font-size:16px; color:var(--ink); font-weight:500; line-height:1.5; }
.contact-info-item .value a:hover { color:var(--cra-500); }
.contact-info-item .value.mono { font-family:var(--font-mono); }

.form-shell {
  background:var(--slate-50);
  border:1px solid var(--slate-100);
  border-radius:var(--r-xl);
  padding:10px;
  box-shadow:var(--shadow-ambient);
}
.form-card {
  background:#fff;
  border-radius:calc(var(--r-xl) - 10px);
  padding:clamp(28px, 3.5vw, 40px);
}
.form-row {
  display:grid; grid-template-columns:1fr; gap:14px; margin-bottom:14px;
}
@media (min-width:600px) {
  .form-row.two-col { grid-template-columns:1fr 1fr; }
}
.field { display:flex; flex-direction:column; gap:8px; }
.field label {
  font-size:13px; font-weight:500;
  color:var(--slate-700);
  letter-spacing:-0.005em;
}
.field label .req { color:var(--accent-500); margin-left:2px; }
.field input,
.field textarea,
.field select {
  width:100%;
  padding:14px 16px;
  background:var(--slate-50);
  border:1px solid var(--slate-100);
  border-radius:14px;
  font-size:15px;
  color:var(--ink);
  transition:border-color var(--d-fast) var(--ease-fluid),
             box-shadow var(--d-fast) var(--ease-fluid),
             background var(--d-fast) var(--ease-fluid);
}
.field input:hover, .field textarea:hover, .field select:hover { background:#fff; }
.field input:focus, .field textarea:focus, .field select:focus {
  outline:none; background:#fff;
  border-color:var(--cra-400);
  box-shadow:0 0 0 4px var(--cra-100);
}
.field textarea { resize:vertical; min-height:130px; line-height:1.55; }
.field .hint { font-size:12.5px; color:var(--slate-500); }
.form-card .btn { width:fit-content; margin-top:6px; }
.form-card .legal { font-size:12.5px; color:var(--slate-500); margin-top:14px; }

/* Dark-form variant */
.form-shell-dark { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); }
.form-shell-dark .form-card { background:rgba(255,255,255,.02); color:#fff; }
.form-shell-dark .field label { color:rgba(255,255,255,.7); }
.form-shell-dark .field input,
.form-shell-dark .field textarea,
.form-shell-dark .field select {
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.1);
  color:#fff;
}
.form-shell-dark .field input:hover,
.form-shell-dark .field textarea:hover,
.form-shell-dark .field select:hover { background:rgba(255,255,255,.06); }
.form-shell-dark .field input:focus,
.form-shell-dark .field textarea:focus,
.form-shell-dark .field select:focus {
  background:rgba(255,255,255,.08);
  border-color:rgba(163,200,255,.5);
  box-shadow:0 0 0 4px rgba(163,200,255,.15);
}
.form-shell-dark .legal { color:rgba(255,255,255,.4); }

/* ═════════════ GRAVITY FORMS — placeholder styling ═════════════ */
/* Class names mirror real GF output so the WordPress port swaps cleanly */
.gform_wrapper { display:block; }
.gform_wrapper .gform_heading { margin-bottom:8px; }
.gform_wrapper .gform_title { color:var(--ink); }
.gform_wrapper .gform_description { color:var(--slate-500); }
/* Required marker — hide the "(Required)" text, show a single black star */
.gform_wrapper .gfield_required {
  font-size:0;
  line-height:0;
  margin-left:0;
  color:transparent;
}
.gform_wrapper .gfield_required::before {
  content:"*";
  display:inline-block;
  font-size:15px;
  line-height:1;
  font-weight:500;
  color:var(--ink);
  margin-left:4px;
  vertical-align:baseline;
}
.gform_wrapper .gform_fields {
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr; gap:14px;
}
.gform_wrapper .gfield { display:flex; flex-direction:column; gap:8px; }
.gform_wrapper .gfield_label {
  font-size:13.5px; font-weight:500;
  color:var(--slate-800);
  letter-spacing:-0.005em;
}
.gform_wrapper .ginput_container input[type=text],
.gform_wrapper .ginput_container input[type=email],
.gform_wrapper .ginput_container input[type=tel],
.gform_wrapper .ginput_container select,
.gform_wrapper .ginput_container textarea {
  width:100%;
  padding:14px 16px;
  background:var(--slate-50);
  border:1px solid var(--slate-100);
  border-radius:14px;
  font-size:15px; font-family:inherit;
  color:var(--ink);
  transition:border-color var(--d-fast) var(--ease-fluid),
             box-shadow var(--d-fast) var(--ease-fluid),
             background var(--d-fast) var(--ease-fluid);
}
.gform_wrapper .ginput_container input:hover,
.gform_wrapper .ginput_container select:hover,
.gform_wrapper .ginput_container textarea:hover { background:#fff; }
.gform_wrapper .ginput_container input:focus,
.gform_wrapper .ginput_container select:focus,
.gform_wrapper .ginput_container textarea:focus {
  outline:none; background:#fff;
  border-color:var(--cra-400);
  box-shadow:0 0 0 4px var(--cra-100);
}
.gform_wrapper .ginput_container textarea {
  resize:vertical; min-height:130px; line-height:1.55;
}
/* Email confirmation — two columns */
.gform_wrapper .ginput_complex {
  display:grid; grid-template-columns:1fr; gap:14px;
}
@media (min-width:520px) {
  .gform_wrapper .ginput_complex { grid-template-columns:1fr 1fr; }
}
.gform_wrapper .ginput_complex .ginput_left,
.gform_wrapper .ginput_complex .ginput_right {
  display:flex; flex-direction:column; gap:4px;
}
.gform_wrapper .ginput_complex .sub-label {
  font-size:11.5px; font-weight:400;
  color:var(--slate-500);
  text-transform:none;
  letter-spacing:0;
}
/* Half-width modifier (used in some GF themes) */
@media (min-width:600px) {
  .gform_wrapper .gfield--width-half { grid-column:span 1; }
  .gform_wrapper .gform_fields.cols-2 { grid-template-columns:1fr 1fr; }
}
/* Hide GF anti-spam honeypot (per HANDOFF gotcha #10) */
.cra-form-wrap .gform_validation_container,
.cra-form-wrap .gfield_visibility_hidden {
  display:none !important;
  position:absolute !important;
  left:-9000px !important;
}
.gform_wrapper .gform_footer { margin-top:18px; }
.gform_wrapper .gform_footer .gform_button { width:fit-content; }
.gform_wrapper .legal {
  font-size:12.5px; color:var(--slate-500);
  margin-top:14px;
}
/* Subtle placeholder badge (only shows in static; removed on WP port) */
.gform_wrapper[data-gf-placeholder="true"]::before {
  content:'Gravity Forms placeholder · swap with [gravityform id="X"] on WP';
  display:block;
  font-family:var(--font-mono);
  font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--slate-400);
  padding:6px 10px;
  margin-bottom:14px;
  background:repeating-linear-gradient(135deg, rgba(0,0,0,0) 0 8px, rgba(0,80,201,.04) 8px 16px);
  border:1px dashed var(--slate-200);
  border-radius:8px;
}

/* ═════════════ FOUNDER (about) ═════════════ */
.founder {
  display:grid; grid-template-columns:1fr; gap:clamp(32px,4vw,56px); align-items:center;
}
@media (min-width:760px) { .founder { grid-template-columns:280px 1fr; } }
.founder-photo-shell {
  width:clamp(200px, 32vw, 280px);
  margin-inline:auto;
  padding:10px;
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:50%;
  box-shadow:var(--shadow-lifted), var(--shadow-inset-hi);
}
.founder-photo {
  width:100%; aspect-ratio:1;
  border-radius:50%;
  background:linear-gradient(135deg, var(--cra-100), var(--cra-200));
  display:block;
  position:relative;
  overflow:hidden;
}
.founder-photo img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
}
.founder-body { display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.founder-body .role {
  font-family:var(--font-mono); font-size:11px; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--accent-700);
}
.founder-body h2 { font-size:clamp(32px,4vw,48px); }
.founder-body p { font-size:17px; line-height:1.65; }

/* ═════════════ APPROACH GRID (about) ═════════════ */
.approach-grid {
  display:grid; grid-template-columns:1fr; gap:16px;
}
@media (min-width:780px) { .approach-grid { grid-template-columns:repeat(3,1fr); } }
.approach-card {
  background:#fff;
  border:1px solid var(--slate-100);
  border-radius:var(--r-lg);
  padding:8px;
  box-shadow:var(--shadow-ambient);
}
.approach-inner {
  background:var(--slate-50);
  border-radius:calc(var(--r-lg) - 8px);
  padding:28px;
  display:flex; flex-direction:column; gap:14px;
  height:100%;
}
.approach-num {
  font-family:var(--font-mono); font-size:13px; color:var(--cra-500);
  letter-spacing:.05em;
}
.approach-inner h4 { font-size:20px; font-weight:600; color:var(--ink); }
.approach-inner p { font-size:15px; line-height:1.6; color:var(--slate-600); }

/* ═════════════ CTA BAND ═════════════ */
.cta-shell {
  background:linear-gradient(135deg, var(--ink) 0%, #1a1f2b 100%);
  border-radius:var(--r-xl);
  padding:10px;
  position:relative; overflow:hidden;
}
.cta-shell::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(circle at 100% 0%, rgba(0,80,201,.3) 0%, transparent 50%),
    radial-gradient(circle at 0% 100%, rgba(249,115,22,.15) 0%, transparent 50%);
  pointer-events:none;
}
.cta-inner {
  position:relative;
  border:1px solid rgba(255,255,255,.08);
  border-radius:calc(var(--r-xl) - 10px);
  padding:clamp(40px, 5vw, 72px);
  text-align:center;
  display:flex; flex-direction:column; gap:18px; align-items:center;
  background:rgba(11,14,20,.4);
  backdrop-filter:blur(2px);
}
.cta-inner h2 { color:#fff; max-width:18ch; }
.cta-inner p { color:rgba(255,255,255,.7); max-width:520px; }
.cta-inner .ctas { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:14px; }

/* ═════════════ LEGAL PROSE (Terms) ═════════════ */
.legal-prose { max-width:760px; margin-inline:auto; }
.legal-prose .updated {
  font-family:var(--font-mono); font-size:12px;
  color:var(--slate-500); letter-spacing:.1em; text-transform:uppercase;
  margin-bottom:40px;
  padding:6px 14px;
  display:inline-flex;
  border:1px solid var(--slate-100);
  border-radius:var(--r-pill);
}
.legal-prose h2 {
  font-size:24px; font-weight:600;
  margin-top:48px; margin-bottom:16px;
  color:var(--ink); letter-spacing:-0.025em;
}
.legal-prose h2:first-of-type { margin-top:0; }
.legal-prose p { margin-bottom:16px; font-size:16px; line-height:1.75; }
.legal-prose ul { padding-left:24px; margin-bottom:16px; }
.legal-prose li { margin-bottom:8px; font-size:15.5px; line-height:1.7; }
.legal-prose a { color:var(--cra-500); border-bottom:1px solid var(--cra-200); }
.legal-prose a:hover { color:var(--cra-600); }

/* ═════════════ MY PORTAL ═════════════ */
.portal-header {
  position:relative;
  padding-top:clamp(96px, 14vw, 140px);
  padding-bottom:clamp(48px, 6vw, 72px);
  background:
    linear-gradient(180deg, rgba(11,14,20,.72) 0%, rgba(11,14,20,.85) 60%, rgba(11,14,20,.95) 100%),
    var(--cra-bg-portal-header, url("../images/illustrations/25ec037e-8e33-4777-9efc-fed6ffa83d02.png")) center / cover no-repeat,
    var(--ink);
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
.portal-header::before {
  content:''; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(ellipse 50% 50% at 100% 0%, rgba(0,80,201,.32) 0%, transparent 60%),
    radial-gradient(ellipse 40% 40% at 0% 100%, rgba(249,115,22,.12) 0%, transparent 60%);
  mix-blend-mode:screen;
}
.portal-header::after {
  content:''; position:absolute; inset:0; z-index:-1;
  background-image:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 50%, #000 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%, #000 30%, transparent 80%);
}
.portal-head-grid {
  display:flex; flex-wrap:wrap; gap:24px;
  align-items:end; justify-content:space-between;
}
.portal-welcome { display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.portal-welcome h1 {
  font-size:clamp(36px, 5.6vw, 64px);
  font-weight:600; letter-spacing:-0.03em; color:#fff;
  max-width:18ch;
  line-height:1;
}
.portal-welcome p { color:rgba(255,255,255,.65); font-size:15.5px; }
.portal-actions { display:flex; gap:10px; flex-wrap:wrap; }

.portal-stats {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px,1fr));
  gap:10px;
  margin-top:48px;
}
.stat-shell {
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-lg);
  padding:6px;
}
.stat-inner {
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  border-radius:calc(var(--r-lg) - 6px);
  padding:20px;
}
.stat-inner .label {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em;
  color:rgba(255,255,255,.5); text-transform:uppercase;
}
.stat-inner .value {
  font-family:var(--font-sans); font-size:clamp(28px,3.6vw,40px);
  font-weight:700; color:#fff; letter-spacing:-0.03em;
  margin-top:8px; line-height:1;
  display:flex; align-items:baseline; gap:8px;
}
.stat-inner .value .unit {
  font-size:13px; font-weight:500; color:rgba(255,255,255,.5);
  font-family:var(--font-sans); text-transform:uppercase; letter-spacing:.05em;
  font-weight:500;
}

.portal-section { padding-block:clamp(64px, 8vw, 96px); }
.portal-section-head {
  display:flex; align-items:end; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin-bottom:32px;
}
.portal-section-head h2 { font-size:28px; }
.portal-section-head .sub { font-size:14.5px; color:var(--slate-500); margin-top:6px; }

/* Course cards, Double-Bezel */
.course-grid {
  display:grid; grid-template-columns:1fr; gap:14px;
}
@media (min-width:780px) { .course-grid { grid-template-columns:repeat(2,1fr); } }
.course-shell {
  background:var(--slate-50);
  border:1px solid var(--slate-100);
  border-radius:var(--r-lg);
  padding:8px;
  box-shadow:var(--shadow-ambient);
  transition:transform var(--d-base) var(--ease-fluid), box-shadow var(--d-base) var(--ease-fluid);
}
.course-shell:hover { transform:translateY(-3px); box-shadow:var(--shadow-lifted); }
.course-core {
  background:#fff;
  border-radius:calc(var(--r-lg) - 8px);
  padding:24px;
  display:flex; flex-direction:column; gap:18px;
  height:100%;
  box-shadow:var(--shadow-inset-hi);
}
.course-head { display:flex; gap:14px; align-items:center; justify-content:space-between; }
.course-mfr {
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:11px;
  text-transform:uppercase; letter-spacing:.1em; font-weight:500;
  color:var(--slate-700);
}
.course-mfr img { height:18px; width:auto; object-fit:contain; opacity:.8; }
.course-status {
  font-family:var(--font-mono); font-size:10px;
  padding:5px 12px; border-radius:var(--r-pill);
  letter-spacing:.12em; text-transform:uppercase; font-weight:500;
  flex-shrink:0;
}
.status-active { background:var(--cra-50); color:var(--cra-700); }
.status-done { background:var(--success-bg); color:var(--success); }
.status-new { background:var(--accent-50); color:var(--accent-700); }
.course-core h4 { font-size:19px; font-weight:600; color:var(--ink); line-height:1.3; }
.course-meta { display:flex; gap:18px; flex-wrap:wrap; font-size:13px; color:var(--slate-500); }
.course-meta span { display:inline-flex; align-items:center; gap:6px; }
.course-meta i { font-size:14px; opacity:.7; }
.progress { height:5px; background:var(--slate-100); border-radius:var(--r-pill); overflow:hidden; }
.progress > span {
  display:block; height:100%;
  background:linear-gradient(90deg, var(--cra-500), var(--cra-300));
  border-radius:var(--r-pill);
  transition:width 1.2s var(--ease-fluid);
}
.progress-row {
  display:flex; justify-content:space-between;
  font-family:var(--font-mono); font-size:11px;
  color:var(--slate-500); letter-spacing:.06em; margin-bottom:6px;
  text-transform:uppercase;
}
.progress-row .pct { color:var(--cra-600); font-weight:500; }
.course-foot { display:flex; justify-content:space-between; align-items:center; margin-top:auto; }
.course-time { font-family:var(--font-mono); font-size:11px; color:var(--slate-400); letter-spacing:.05em; }

/* Cert cards */
.cert-grid {
  display:grid; grid-template-columns:1fr; gap:14px;
}
@media (min-width:720px) { .cert-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px) { .cert-grid { grid-template-columns:repeat(3,1fr); } }
.cert-shell {
  background:var(--slate-50);
  border:1px solid var(--slate-100);
  border-radius:var(--r-lg);
  padding:8px;
  box-shadow:var(--shadow-ambient);
}
.cert-core {
  background:#fff;
  border-radius:calc(var(--r-lg) - 8px);
  padding:24px;
  display:flex; gap:16px; align-items:flex-start;
  height:100%;
  box-shadow:var(--shadow-inset-hi);
}
.cert-icon {
  width:48px; height:48px; min-width:48px;
  border-radius:14px;
  background:linear-gradient(135deg, var(--cra-500), var(--cra-700));
  color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px -2px rgba(0,80,201,.4), var(--shadow-inset-hi);
}
.cert-icon i { font-size:24px; }
.cert-core h4 { font-size:15.5px; font-weight:600; line-height:1.3; color:var(--ink); }
.cert-core .date { font-family:var(--font-mono); font-size:11px; color:var(--slate-500); letter-spacing:.05em; margin-top:8px; text-transform:uppercase; }
.cert-core .dl {
  margin-top:14px; display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:500; color:var(--cra-500);
}
.cert-core .dl i { font-size:14px; }
.cert-core .dl:hover { color:var(--cra-600); }

/* Sales Elite card */
.elite-shell {
  background:
    linear-gradient(90deg, var(--cra-900) 0%, var(--cra-900) 42%, rgba(0,16,41,.88) 60%, rgba(0,29,71,.5) 85%, rgba(0,29,71,.35) 100%),
    var(--cra-bg-elite-shell, url("../images/illustrations/95681bea-4154-4f68-b997-409738e8c7fd.png")) right center / auto 100% no-repeat,
    var(--cra-900);
  border-radius:var(--r-xl);
  padding:10px;
  position:relative; overflow:hidden;
  box-shadow:var(--shadow-deep);
}
.elite-shell::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(circle at 90% 20%, rgba(10,108,255,.32) 0%, transparent 50%),
    radial-gradient(circle at 10% 100%, rgba(249,115,22,.18) 0%, transparent 50%);
  pointer-events:none;
  mix-blend-mode:screen;
}
.elite-core {
  position:relative;
  background:rgba(0,0,0,.15);
  backdrop-filter:blur(2px);
  border:1px solid rgba(255,255,255,.06);
  border-radius:calc(var(--r-xl) - 10px);
  padding:clamp(32px,4vw,56px);
  display:grid; grid-template-columns:1fr; gap:24px; align-items:center;
  color:#fff;
}
@media (min-width:780px) { .elite-core { grid-template-columns:1.5fr auto; } }
.elite-core .label {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.15em;
  text-transform:uppercase; color:rgba(255,255,255,.55);
  display:inline-flex; align-items:center; gap:8px; margin-bottom:14px;
}
.elite-core .label .dot {
  width:6px; height:6px; border-radius:50%; background:var(--accent-500);
  box-shadow:0 0 0 4px rgba(249,115,22,.25);
}
.elite-core h3 { color:#fff; font-size:clamp(22px,3vw,32px); max-width:24ch; line-height:1.15; }
.elite-core p { color:rgba(255,255,255,.65); margin-top:10px; max-width:48ch; font-size:15px; }

/* Profile */
.profile-shell {
  background:var(--slate-50);
  border:1px solid var(--slate-100);
  border-radius:var(--r-xl);
  padding:10px;
  box-shadow:var(--shadow-ambient);
}
.profile-card {
  background:#fff;
  border-radius:calc(var(--r-xl) - 10px);
  padding:clamp(28px, 3.5vw, 40px);
  box-shadow:var(--shadow-inset-hi);
}

/* ═════════════ FOOTER ═════════════ */
.footer {
  background:var(--ink);
  color:rgba(255,255,255,.6);
  padding:clamp(72px,9vw,112px) 0 32px;
  position:relative;
}
.footer-grid {
  display:grid; grid-template-columns:1fr; gap:clamp(40px,5vw,64px);
  margin-bottom:56px;
}
@media (min-width:880px) { .footer-grid { grid-template-columns:1.5fr 1fr 1fr; } }
.footer-brand img { height:36px; width:auto; margin-bottom:24px; }
.footer-slogan {
  font-size:clamp(20px,2vw,26px); font-weight:500;
  color:rgba(255,255,255,.9); letter-spacing:-0.025em; line-height:1.2;
  max-width:18ch;
}
.footer h5 {
  font-family:var(--font-mono); font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:.18em;
  color:rgba(255,255,255,.4);
  margin-bottom:20px;
}
.footer-links { list-style:none; display:flex; flex-direction:column; gap:8px; }
.footer-links a {
  display:inline-flex; align-items:center; gap:8px;
  font-size:15px; color:rgba(255,255,255,.7);
  padding:4px 0;
  transition:color var(--d-fast) var(--ease-fluid);
}
.footer-links a:hover { color:#fff; }
.footer-links a i { font-size:14px; opacity:0; transform:translateX(-4px); transition:opacity var(--d-fast), transform var(--d-fast) var(--ease-fluid); }
.footer-links a:hover i { opacity:.6; transform:translateX(0); }

.footer-contact-item {
  display:flex; gap:12px; margin-bottom:14px; font-size:14.5px; align-items:flex-start;
  color:rgba(255,255,255,.7);
}
.footer-contact-item i { margin-top:3px; opacity:.45; font-size:16px; }
.footer-contact-item .mono { font-family:var(--font-mono); }
.footer-contact-item a:hover { color:#fff; }

.footer-strip {
  border-top:1px solid rgba(255,255,255,.06);
  padding:32px 0;
  margin-top:24px;
  overflow:hidden;
}
.footer-strip-label {
  text-align:center;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.18em;
  color:rgba(255,255,255,.3); text-transform:uppercase; margin-bottom:24px;
}
.footer-strip-rail {
  display:flex; gap:clamp(32px,4vw,64px);
  justify-content:center;
  flex-wrap:wrap;
}
.footer-strip-rail img {
  max-height:28px; max-width:120px;
  filter:brightness(0) invert(1);
  opacity:.4;
  transition:opacity var(--d-base) var(--ease-fluid);
}
.footer-strip-rail img:hover { opacity:.85; }

.footer-bottom {
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px;
  font-size:13px; color:rgba(255,255,255,.35);
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.06);
}
.footer-bottom a:hover { color:#fff; }

/* ═════════════ REVEAL, blur fade-up ═════════════ */
.reveal {
  opacity:0;
  transform:translateY(40px);
  filter:blur(6px);
  transition:opacity 900ms var(--ease-fluid),
             transform 900ms var(--ease-fluid),
             filter 900ms var(--ease-fluid);
}
.reveal.is-in {
  opacity:1;
  transform:translateY(0);
  filter:blur(0);
}

@media (prefers-reduced-motion:reduce) {
  .reveal { opacity:1; transform:none; filter:none; transition:none; }
  *, *::before, *::after {
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
  }
  .logo-strip-rail { animation:none; }
}

/* ═════════════ PRINT ═════════════ */
@media print {
  .nav-wrap, .footer, .hero-compact, .mobile-menu, .grain { display:none !important; }
  .page[hidden] { display:none !important; }
  body { background:#fff; color:#000; }
}
