/* =========================================================
   Accelerator clone — shared design system
   Local design-reference build. Palantir-inspired monochrome tokens.
   ========================================================= */

/* ---------- Brand tokens : PALANTIR (cool monochrome) ----------
   White-dominant ground with cool gray panels — the inverse of a
   gray-page/white-card layout. No warm tones anywhere; contrast and
   hairlines do the work that colour would normally do. */
:root {
  --paper: 255 255 255;   /* #FFFFFF  pure white ground */
  --panel: 244 245 246;   /* #F4F5F6  cool gray panel on white */
  --ink:    24  26  29;   /* #181A1D  cool near-black, text */
  --accent: 13  14  16;   /* #0D0E10  true black, structural marks */
  --brand:  45 114 210;   /* #2D72D2  Palantir Blueprint intent blue — emphasis only */
  --hair:  rgba(24,26,29,0.14);

  --maxw: 960px;
  --gutter: 48px;
  --ease: cubic-bezier(.22,.61,.36,1);
}
.band-dark {
  --paper:  10  11  12;   /* #0A0B0C  deepest ground */
  --panel:  26  28  31;   /* #1A1C1F  raised surface */
  --ink:   240 241 242;   /* #F0F1F2  cool off-white text */
  --accent: 255 255 255;  /* #FFFFFF  pure white marks */
  --brand:  76 144 240;   /* #4C90F0  Blueprint blue, lightened for dark ground */
  --hair:  rgba(255,255,255,0.16);
  /* Re-anchor inherited colour. Without this, descendants that declare no
     colour of their own (e.g. .news h3) inherit body's near-black and render
     black-on-black inside the dark band. */
  color: rgb(var(--ink));
}
/* Previous Ascentir-blue tokens (swap in to revert):
:root { --paper:243 242 237; --panel:255 255 255; --ink:20 20 19; --accent:43 71 229; --hair:rgba(20,20,19,0.10); }
.band-dark { --paper:14 14 15; --panel:24 24 27; --ink:244 243 239; --accent:122 146 255; --hair:rgba(255,255,255,0.12); } */

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}
body{
  font-family:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:rgb(var(--paper));color:rgb(var(--ink));
  font-size:16px;min-height:100vh;position:relative;
}
/* Faint technical grid — the Palantir "instrument" backdrop.
   Fixed, non-interactive, fades toward the edges so it reads as texture not chrome. */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgb(var(--ink) / .028) 1px, transparent 1px),
    linear-gradient(90deg, rgb(var(--ink) / .028) 1px, transparent 1px);
  background-size:72px 72px;background-position:center top;
  -webkit-mask-image:radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 78%);
  mask-image:radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 78%);
}
.mono{font-family:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:60;
  background:rgb(var(--paper) / .82);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
header.scrolled{border-bottom-color:var(--hair);background:rgb(var(--paper) / .95)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:11px var(--gutter)}
.logo{display:flex;align-items:center;font-weight:800;font-size:17px;letter-spacing:-.025em;text-decoration:none;white-space:nowrap}
.logo .slash{font-style:italic;font-weight:800;letter-spacing:-3px;margin-right:3px;transform:skewX(-8deg);
  transition:transform .3s var(--ease)}
.logo:hover .slash{transform:skewX(-8deg) translateX(3px)}
.nav-links{display:flex;align-items:center;gap:8px}
.nav-links a{
  position:relative;color:rgb(var(--ink) / .62);text-decoration:none;
  font-size:14.5px;font-weight:500;padding:8px 16px;transition:color .18s var(--ease);
}
.nav-links a::after{
  content:"";position:absolute;left:16px;right:16px;bottom:2px;height:1px;
  background:rgb(var(--ink));transform:scaleX(0);transform-origin:right;
  transition:transform .3s var(--ease);
}
.nav-links a:hover{color:rgb(var(--ink))}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav-links a[aria-current="page"]{color:rgb(var(--ink))}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-size:15px;font-weight:600;letter-spacing:-.01em;
  padding:8px 8px 8px 16px;border-radius:9px;border:1px solid transparent;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);
}
.btn-dark{background:rgb(var(--ink));color:rgb(var(--paper));box-shadow:none}
.btn-dark:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgb(var(--ink) / .18)}
.btn-outline{background:rgb(var(--panel));color:rgb(var(--ink));border-color:rgb(var(--ink))}
.btn-outline:hover{background:rgb(var(--ink));color:rgb(var(--panel))}
.btn-lg{font-size:16.5px;padding:10px 10px 10px 22px;border-radius:11px}
.arrow-chip{
  display:grid;place-items:center;width:22px;height:22px;border-radius:7px;flex:none;
  background:rgb(var(--brand));color:#fff;
  font-family:"Geist Mono",ui-monospace,monospace;font-size:13px;line-height:1;
  transition:transform .25s var(--ease),background .25s var(--ease);
}
.btn-lg .arrow-chip{width:26px;height:26px;border-radius:8px}
.btn:hover .arrow-chip{transform:translateX(3px)}
/* the blue chip reads on every button surface — no per-context override needed */

/* ---------- Generic section furniture ---------- */
main{padding:0 var(--gutter) 0}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:600;letter-spacing:1.7px;text-transform:uppercase;
  color:rgb(var(--ink) / .82);
}
/* hairline lead-rule before the label — instrument-panel precision */
.eyebrow::before{content:"";width:22px;height:1px;background:rgb(var(--ink) / .32)}
.center .eyebrow::after{content:"";width:22px;height:1px;background:rgb(var(--ink) / .32)}
.eyebrow .dot{width:5px;height:5px;border-radius:50%;background:rgb(var(--brand));flex:none;
  animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.72)}}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:600;letter-spacing:1.54px;text-transform:uppercase;
  color:rgb(var(--accent));background:rgb(var(--accent) / .06);
  border:1px solid rgb(var(--accent) / .22);border-radius:999px;padding:6px 14px 6px 12px;
}
.pill .dot{width:6px;height:6px;border-radius:50%;background:rgb(var(--brand))}
.section{padding:88px 0}
.section-head{max-width:660px;margin-bottom:40px}
.section-head h2{font-size:38px;line-height:1.08;font-weight:800;letter-spacing:-.035em;margin:16px 0 0}
.section-head p{font-size:16.5px;line-height:1.62;color:rgb(var(--ink) / .70);margin-top:14px}
.center{text-align:center;margin-left:auto;margin-right:auto}
.center.section-head{display:flex;flex-direction:column;align-items:center}

/* ---------- Hero ---------- */
.hero{text-align:center;padding:96px 0 0;display:flex;flex-direction:column;align-items:center}
h1{font-size:clamp(34px,4.9vw,61.44px);line-height:1.05;font-weight:700;letter-spacing:-.035em;margin:0 0 14px}
.hero .sub{max-width:600px;color:rgb(var(--ink) / .72);font-size:17.5px;line-height:1.6;margin:8px 0 0}
.hero-note{font-size:14px;color:rgb(var(--ink) / .62);margin-top:12px}

/* highlighter decorations */
.hl-underline{position:relative;white-space:nowrap}
.hl-underline::after{
  content:"";position:absolute;left:-2px;right:-2px;bottom:.04em;height:.05em;
  background:rgb(var(--brand));border-radius:3px;
  transform:scaleX(0);transform-origin:left center;
  animation:drawLine .7s .55s var(--ease) forwards;
}
.hl-mark{position:relative;white-space:nowrap;z-index:0}
.hl-mark::before{
  content:"";position:absolute;left:-8px;right:-8px;top:14%;bottom:10%;z-index:-1;
  background:rgb(var(--brand) / .16);border-radius:4px;
  transform:scaleX(0);transform-origin:left center;
  animation:drawMark .75s 1s var(--ease) forwards;
}
@keyframes drawLine{to{transform:scaleX(1)}}
@keyframes drawMark{to{transform:scaleX(1)}}

/* ---------- Trusted pill ---------- */
.trusted{
  display:inline-flex;align-items:center;gap:10px;
  background:rgb(var(--panel));border:1px solid var(--hair);border-radius:999px;
  padding:5px 14px 5px 6px;margin:8px 0;box-shadow:none;
}
.avatars{display:flex}
.avatars span{width:26px;height:26px;border-radius:50%;border:2px solid rgb(var(--panel));margin-left:-9px;
  transition:transform .25s var(--ease)}
.avatars span:first-child{margin-left:0}
.trusted:hover .avatars span{transform:translateY(-2px)}
.a1{background:linear-gradient(135deg,#d8d8d8,#6f6f6f)}
.a2{background:linear-gradient(135deg,#c2c2c2,#4a4a4a)}
.a3{background:linear-gradient(135deg,#e2e2e2,#8a8a8a)}
.a4{background:linear-gradient(135deg,#b4b4b4,#3a3a3a)}
.stars{color:rgb(var(--brand));font-size:13px;letter-spacing:1px}
.trusted b{font-size:12.5px;font-weight:500}

/* ---------- Path cards (home) ---------- */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:var(--maxw);margin:44px auto 0}
.card{
  background:rgb(var(--panel));border:1px solid var(--hair);border-radius:18px;
  padding:20px 22px 18px;box-shadow:none;
  display:flex;flex-direction:column;position:relative;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.card::before{
  content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;
  background:radial-gradient(500px circle at var(--mx,50%) var(--my,0%),rgb(var(--accent)/.05),transparent 42%);
  opacity:0;transition:opacity .35s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgb(var(--ink) / .10);border-color:rgb(var(--ink) / .28)}
.card:hover::before{opacity:1}
.card-label{
  display:inline-flex;align-items:center;gap:9px;margin-bottom:10px;
  font-size:10px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:rgb(var(--accent));
}
.card-label .dot{width:6px;height:6px;border-radius:50%;background:rgb(var(--brand))}
.card h2{font-size:22px;line-height:1.2;font-weight:800;letter-spacing:-.025em;margin:0 0 6px}
.card p.desc{color:rgb(var(--ink) / .70);font-size:15px;line-height:1.6;margin:0 0 12px}
.checks{list-style:none;display:flex;flex-direction:column;gap:7px;margin:0 0 14px}
.checks li{display:flex;align-items:flex-start;gap:11px;font-size:15px;line-height:1.55;color:rgb(var(--ink) / .86)}
.check{
  flex:none;margin-top:1px;width:17px;height:17px;border-radius:50%;
  background:rgb(var(--accent) / .1);color:rgb(var(--accent));
  display:grid;place-items:center;font-size:9px;font-weight:700;
  transition:transform .25s var(--ease),background .25s var(--ease);
}
.card:hover .check{background:rgb(var(--accent) / .16)}
.explore{margin-top:auto}
.explore a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 14px 14px 20px;border-radius:12px;text-decoration:none;
  font-size:13.5px;font-weight:600;border:1px solid transparent;
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease);
}
.explore.dark a{background:rgb(var(--ink));color:rgb(var(--paper))}
.explore.dark a .arrow-chip{background:rgb(var(--brand));color:#fff}
/* white on the gray card — panel would be gray-on-gray after the inversion */
.explore.outline a{background:rgb(var(--paper));color:rgb(var(--ink));border-color:rgb(var(--ink))}
.explore.outline a:hover{background:rgb(var(--ink));color:rgb(var(--panel))}
.explore.outline a:hover .arrow-chip{background:rgb(var(--panel) / .2);color:rgb(var(--panel))}
.explore a:hover .arrow-chip{transform:translateX(3px)}

/* ---------- Stats row ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:var(--maxw);margin:0 auto}
.stat{
  background:rgb(var(--panel));border:1px solid var(--hair);border-radius:14px;padding:24px 22px;
  transition:transform .3s var(--ease),border-color .3s var(--ease);
}
.stat:hover{transform:translateY(-3px);border-color:rgb(var(--ink) / .3)}
.stat .num{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1}
.stat .lbl{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:rgb(var(--ink) / .62);margin-top:10px;font-weight:600}

/* ---------- Feature blocks ---------- */
.feature{
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
  padding:40px 0;border-top:1px solid var(--hair);
}
.feature:nth-child(even) .feature-visual{order:-1}
.feature .idx{font-size:11px;font-weight:700;letter-spacing:1.6px;color:rgb(var(--ink) / .58);font-family:"Geist Mono",monospace}
.feature h3{font-size:26px;line-height:1.2;font-weight:800;letter-spacing:-.03em;margin:12px 0 10px}
.feature p{font-size:16px;line-height:1.62;color:rgb(var(--ink) / .70)}
.feature-visual{
  background:rgb(var(--panel));border:1px solid var(--hair);border-radius:16px;padding:18px;
  box-shadow:none;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.feature-visual:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgb(var(--ink) / .10)}
.chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chip{
  font-family:"Geist Mono",monospace;font-size:10px;letter-spacing:.6px;text-transform:uppercase;
  border:1px solid var(--hair);border-radius:7px;padding:6px 9px;color:rgb(var(--ink) / .72);
  background:rgb(var(--paper) / .6);
}
.chip.live{border-color:rgb(var(--ink) / .35)}
.flow-meta{font-family:"Geist Mono",monospace;font-size:10px;color:rgb(var(--ink) / .60);margin-top:12px;letter-spacing:.5px}

/* ---------- Method stages (tabs) ---------- */
.stage-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:26px}
.stage-tab{
  font-family:"Geist Mono",monospace;font-size:11px;letter-spacing:.8px;text-transform:uppercase;
  border:1px solid var(--hair);background:rgb(var(--panel));border-radius:9px;padding:9px 13px;
  cursor:pointer;color:rgb(var(--ink) / .55);
  transition:all .25s var(--ease);
}
.stage-tab:hover{color:rgb(var(--ink));border-color:rgb(var(--ink) / .35);transform:translateY(-2px)}
.stage-tab[aria-selected="true"]{background:rgb(var(--ink));color:rgb(var(--paper));border-color:rgb(var(--ink))}
.stage-panel{display:none;animation:fadeUp .45s var(--ease) both}
.stage-panel.active{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.stage-panel .meta{font-family:"Geist Mono",monospace;font-size:11px;color:rgb(var(--ink) / .60);letter-spacing:.8px}
.stage-panel h3{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:10px 0 10px}
.stage-panel p{font-size:16px;line-height:1.62;color:rgb(var(--ink) / .70)}
.build-list{list-style:none;display:flex;flex-direction:column;gap:9px;margin-top:6px}
.build-list li{display:flex;gap:11px;align-items:flex-start;font-size:15px;line-height:1.55;color:rgb(var(--ink) / .86)}

/* ---------- Fit check ---------- */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:var(--maxw);margin:0 auto}
.fit-col{background:rgb(var(--panel));border:1px solid var(--hair);border-radius:18px;padding:26px 24px}
.fit-col h3{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:16px}
.fit-item{padding:14px 0;border-top:1px solid var(--hair)}
.fit-item:first-of-type{border-top:0}
.fit-item b{display:block;font-size:15.5px;font-weight:600;margin-bottom:6px}
.fit-item span{font-size:14.5px;line-height:1.58;color:rgb(var(--ink) / .64)}

/* ---------- FAQ ---------- */
.faq{max-width:var(--maxw);margin:0 auto}
.faq-item{border-top:1px solid var(--hair)}
.faq-q{
  width:100%;background:none;border:0;cursor:pointer;text-align:left;font-family:inherit;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px 0;font-size:17.5px;font-weight:600;color:rgb(var(--ink));letter-spacing:-.015em;
  transition:opacity .2s var(--ease);
}
.faq-q:hover{opacity:.62}
.faq-q .ico{
  flex:none;width:22px;height:22px;border-radius:50%;border:1px solid var(--hair);
  display:grid;place-items:center;font-size:14px;transition:transform .3s var(--ease),background .3s var(--ease);
}
.faq-item.open .faq-q .ico{transform:rotate(45deg);background:rgb(var(--accent) / .1)}
.faq-a{overflow:hidden;height:0;transition:height .35s var(--ease)}
.faq-a p{font-size:15.5px;line-height:1.68;color:rgb(var(--ink) / .70);padding-bottom:22px;max-width:70ch}

/* ---------- Case study cards ---------- */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:var(--maxw);margin:0 auto}
.case{
  background:rgb(var(--panel));border:1px solid var(--hair);border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.case:hover{transform:translateY(-5px);box-shadow:0 10px 28px rgb(var(--ink) / .10);border-color:rgb(var(--ink) / .28)}
.case-media{aspect-ratio:16/10;background:linear-gradient(135deg,rgb(var(--ink)/.06),rgb(var(--ink)/.14));
  display:grid;place-items:center;font-family:"Geist Mono",monospace;font-size:11px;
  letter-spacing:1.4px;text-transform:uppercase;color:rgb(var(--ink)/.4);position:relative;overflow:hidden}
.case-media::after{
  content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgb(var(--panel)/.35) 50%,transparent 70%);
  transform:translateX(-100%);transition:transform .7s var(--ease);
}
.case:hover .case-media::after{transform:translateX(100%)}
.case-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.case-body h3{font-size:17.5px;font-weight:800;letter-spacing:-.02em;margin:8px 0 6px;line-height:1.25}
.case-body p{font-size:14px;line-height:1.58;color:rgb(var(--ink) / .64);flex:1}
.case-metric{display:flex;gap:18px;margin-top:14px;padding-top:14px;border-top:1px solid var(--hair)}
.case-metric div span{display:block;font-family:"Geist Mono",monospace;font-size:9.5px;letter-spacing:1px;
  text-transform:uppercase;color:rgb(var(--ink)/.60);margin-top:3px}
.case-metric div b{font-size:17px;font-weight:800;letter-spacing:-.02em}

/* ---------- Illustrative-content disclosure ---------- */
.illustrative{
  display:block;max-width:var(--maxw);margin:14px auto 0;
  font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.6px;
  color:rgb(var(--ink)/.60);text-align:center;
}
.illustrative b{font-weight:700;color:rgb(var(--ink)/.78)}
.notice{
  max-width:var(--maxw);margin:0 auto;border:1px dashed var(--hair);border-radius:12px;
  padding:16px 18px;font-size:12.5px;line-height:1.6;color:rgb(var(--ink)/.72);
}
.notice b{color:rgb(var(--ink));font-weight:600}

/* ---------- Filter chips ---------- */
.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:32px}
.filter{
  font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.9px;text-transform:uppercase;
  border:1px solid var(--hair);background:rgb(var(--panel));border-radius:999px;padding:8px 14px;
  cursor:pointer;color:rgb(var(--ink) / .55);transition:all .25s var(--ease);
}
.filter:hover{color:rgb(var(--ink));border-color:rgb(var(--ink) / .35)}
.filter[aria-pressed="true"]{background:rgb(var(--ink));color:rgb(var(--paper));border-color:rgb(var(--ink))}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;gap:44px;width:max-content;animation:scrollX 26s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee span{font-family:"Geist Mono",monospace;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;
  color:rgb(var(--ink)/.66);white-space:nowrap}
@keyframes scrollX{to{transform:translateX(-50%)}}

/* ---------- Dark CTA band ---------- */
.band{border-radius:16px;padding:52px 44px;background:rgb(var(--paper));color:rgb(var(--ink));
  max-width:var(--maxw);margin:0 auto;text-align:center}
.band h2{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.band p{font-size:16px;line-height:1.62;color:rgb(var(--ink)/.68);margin:12px auto 22px;max-width:52ch}

/* ---------- Newsletter panel ---------- */
.news{max-width:var(--maxw);margin:32px auto 0}
.news .panel{background:rgb(var(--paper));border-radius:14px;padding:22px 26px}
.news .label{display:block;font-size:9.5px;font-weight:700;letter-spacing:1.52px;text-transform:uppercase;
  color:rgb(var(--accent));margin-bottom:4px}
.news h3{font-size:16.5px;line-height:1.25;font-weight:600;letter-spacing:-.01em}
.news form{display:flex;gap:8px;margin-top:14px}
.news input{
  flex:1;background:rgb(var(--ink) / .06);border:1px solid var(--hair);border-radius:8px;
  padding:11px 13px;font-size:15px;font-family:inherit;color:rgb(var(--ink));transition:border-color .2s var(--ease)
}
.news input::placeholder{color:rgb(var(--ink) / .58)}
.news input:focus{outline:none;border-color:rgb(var(--brand));box-shadow:0 0 0 3px rgb(var(--brand) / .18)}
.news button{
  display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;
  background:rgb(var(--accent));color:rgb(var(--paper));font-family:inherit;font-size:15px;font-weight:700;
  padding:11px 10px 11px 16px;border-radius:8px;transition:transform .2s var(--ease)
}
.news button:hover{transform:translateY(-1px)}
.news button .arrow-chip{background:rgb(var(--brand));color:#fff}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--hair);margin-top:88px;padding:40px var(--gutter) 48px}
.foot{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.foot-links{display:flex;gap:22px;flex-wrap:wrap}
.foot a{font-size:14px;color:rgb(var(--ink)/.68);text-decoration:none;transition:color .2s var(--ease)}
.foot a:hover{color:rgb(var(--ink))}
.foot small{font-size:13px;color:rgb(var(--ink)/.64)}

/* ---------- Scroll reveal ----------
   Hidden state is scoped to .js so content is never trapped invisible
   if JS fails, is disabled, or IntersectionObserver never fires. */
.js [data-reveal]{opacity:0;transform:translateY(18px);
  transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- Progress bar ---------- */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:left;transform:scaleX(0);
  background:rgb(var(--brand));z-index:100}

/* ---------- Responsive ---------- */
.btn{white-space:nowrap}
@media(max-width:900px){
  :root{--gutter:20px}
  .nav-links{display:none}
  .nav{padding:10px 18px}
  .logo{font-size:15px}
  /* keep the header CTA on one line and stop it stealing the logo's space */
  header .btn.btn-dark{flex:none;font-size:13px;padding:7px 7px 7px 13px;gap:8px}
  header .btn.btn-dark .arrow-chip{width:20px;height:20px;font-size:12px}
  .cards,.fit,.stage-panel.active,.feature{grid-template-columns:1fr;gap:18px}
  .feature:nth-child(even) .feature-visual{order:0}
  .case-grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr}
  .hero{padding-top:64px}
  .section{padding:60px 0}
  .section-head h2{font-size:29px}
  .band{padding:38px 24px}
  .news form{flex-direction:column}
  .foot{flex-direction:column;align-items:flex-start}
}
@media(max-width:620px){ .case-grid{grid-template-columns:1fr} }
/* On small phones the full wordmark + CTA can't share a row cleanly.
   The hero's primary CTA sits right below, so drop the redundant header button. */
@media(max-width:430px){
  header .btn.btn-dark{display:none}
  .logo{font-size:15.5px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js [data-reveal]{opacity:1;transform:none}
  .hl-underline::after,.hl-mark::before{transform:scaleX(1)}
}

/* Keyboard focus — Blueprint-blue ring */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid rgb(var(--brand));outline-offset:2px;border-radius:6px}
