/* ============================================================
   Avatar Lab — "Voltaic Grotesk" homepage
   Single fixed visual system (black/white alternation is the
   content, not viewer theme) — every color painted explicitly
   so the page holds on any host ground.
   ============================================================ */

:root{
  --ink:      #0A0A0A;
  --paper:    #FAFAFA;
  --accent:   #7C3AED;
  --accent-2: #C026D3;
  --duo-1:    #3B0764;
  --duo-2:    #C026D3;
  --gray:     #6B6B6B;
  --gray-on-ink: #A8A8AD;
  --border:   #E5E5E5;
  --border-on-ink: rgba(255,255,255,0.14);
  --radius:   12px;
  --pill:     999px;
  --font: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --wrap: 1220px;
  --gutter: 24px;
}

@media (prefers-reduced-motion: no-preference){
  .reveal{ opacity:0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
  .reveal.is-in{ opacity:1; transform: translateY(0); }
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background: var(--ink);
  color: var(--ink);
  font-family: var(--font);
  font-feature-settings: "tnum" 1;
  -webkit-font-smoothing: antialiased;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }
::selection{ background: var(--accent); color:#fff; }

.wrap{
  position:relative;
  max-width: var(--wrap);
  margin-inline:auto;
  padding-inline: var(--gutter);
}

/* ---------- decorative accents ---------- */
.deco-dots{
  position:absolute;
  width:104px; height:104px;
  background-image: radial-gradient(var(--accent) 1.6px, transparent 1.6px);
  background-size: 15px 15px;
  opacity:.32;
  pointer-events:none;
  z-index:-1;
}

.grain{ position:relative; }
.grain::before{
  content:"";
  position:absolute; inset:0;
  opacity:.045;
  mix-blend-mode:overlay;
  pointer-events:none;
  z-index:-1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:160px 160px;
}

/* ---------- type ---------- */
.eyebrow{
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:.6em;
  margin:0 0 1.1em;
}
.eyebrow::before{
  content:"";
  width:.85em;
  height:.85em;
  border-radius:50%;
  background: var(--accent);
  flex:none;
}
h1,h2,h3{ margin:0; font-weight:900; letter-spacing:-.02em; text-wrap:balance; }
h1{ font-size:clamp(2.1rem,5.2vw,4.6rem); line-height:1.02; }
h2{ font-size:clamp(1.7rem,3.6vw,2.7rem); line-height:1.08; }
h3{ font-size:clamp(1.02rem,1.6vw,1.22rem); font-weight:800; line-height:1.2; }
p{ margin:0; }
.lede{ font-size:clamp(.98rem,1.3vw,1.08rem); line-height:1.55; font-weight:400; }
.body-copy{ font-size:.92rem; line-height:1.65; font-weight:400; }
.on-ink .body-copy, .on-ink .lede{ color: var(--gray-on-ink); }
.on-paper .body-copy, .on-paper .lede{ color: var(--gray); }
strong{ font-weight:700; }
.on-ink strong{ color:#fff; }
.on-paper strong{ color: var(--ink); }
.num{ font-weight:900; letter-spacing:-.03em; font-variant-numeric: tabular-nums; }

/* ---------- buttons / pills ---------- */
.pill{
  display:inline-flex;
  align-items:center;
  gap:.55em;
  padding: .95em 1.7em;
  border-radius: var(--pill);
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.01em;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition: transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
  white-space:nowrap;
}
.pill:hover{ transform: translateY(-2px); }
.pill:active{ transform: translateY(0); }
.pill--solid{ background: var(--accent); color:#fff; }
.pill--solid:hover{ background:#6d28d9; }
.pill--ghost-ink{ border-color: var(--border-on-ink); color:#fff; }
.pill--ghost-ink:hover{ background:#fff; color:var(--ink); }
.pill--ghost-paper{ border-color: var(--ink); color:var(--ink); }
.pill--ghost-paper:hover{ background:var(--ink); color:#fff; }
.pill--sm{ padding:.6em 1.1em; font-size:.78rem; }

.icon-btn{
  width:56px; height:56px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--border-on-ink);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(6px);
  color:#fff; flex:none; cursor:pointer;
  transition: transform .18s ease, background-color .18s ease;
}
.icon-btn:hover{ transform: scale(1.06); background: rgba(255,255,255,.14); }

/* ---------- nav ---------- */
header.nav{
  position: sticky; top:0; z-index:40;
  background: rgba(10,10,10,.7);
  backdrop-filter: blur(14px) saturate(140%);
  border-bottom:1px solid var(--border-on-ink);
}
.nav__row{
  display:flex; align-items:center; justify-content:space-between;
  height:72px; gap:1.5rem;
}
.nav__mark{
  font-weight:900; font-size:1.05rem; letter-spacing:-.01em;
  color:#fff; text-decoration:none;
  display:flex; align-items:center; gap:.55em;
}
.nav__mark img{ height:22px; width:auto; display:block; }
.nav__links{
  display:flex; gap:.25rem; list-style:none; margin:0; padding:0;
}
.nav__links a{
  text-decoration:none; color: var(--gray-on-ink);
  font-size:.88rem; font-weight:600;
  padding:.55em 1em; border-radius: var(--pill);
  transition: background-color .18s ease, color .18s ease;
}
.nav__links a:hover{ background: rgba(255,255,255,.09); color:#fff; }
.nav__cta{ display:flex; }
@media (max-width:860px){
  .nav__links{ display:none; }
}

/* ---------- sections ---------- */
.sec{ position:relative; overflow:hidden; padding-block: clamp(4.5rem,9vw,8rem); }
.sec--ink{ background: var(--ink); color:#fff; }
.sec--paper{ background: var(--paper); color: var(--ink); }
.sec--tight{ padding-block: clamp(3.5rem,6vw,5.5rem); }

.kicker-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; margin-bottom:2.75rem; }
.kicker-row .lede{ max-width:44ch; }

/* ---------- abstract "motion" photography placeholder ---------- */
.motion-media{ position:relative; overflow:hidden; border-radius:var(--radius); background:#111; }
.motion-media svg{ width:100%; height:100%; display:block; }
.motion-media img{ width:100%; height:100%; display:block; object-fit:cover; }
.motion-media.gray svg, .motion-media.gray img{ filter: grayscale(1) contrast(1.08) brightness(.92); }
.motion-media.duo{ isolation:isolate; }
.motion-media.duo svg, .motion-media.duo img{ filter: grayscale(1) contrast(1.15) brightness(1.05); }
.motion-media.duo::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(135deg, var(--duo-1), var(--duo-2) 70%);
  mix-blend-mode: color; opacity:.92;
}
.motion-media.duo::before{
  content:""; position:absolute; inset:0; z-index:2;
  background: linear-gradient(180deg, rgba(10,10,10,0) 35%, rgba(10,10,10,.82) 100%);
}
.motion-media .cap{
  position:absolute; right:1.25rem; top:1rem; z-index:3;
  font-size:.65rem; letter-spacing:.12em; text-transform:uppercase;
  color: rgba(255,255,255,.45); font-weight:700;
  text-align:right; max-width:14rem;
}
.motion-media.shift svg, .motion-media.shift img{ filter: grayscale(.55) sepia(.25) hue-rotate(215deg) saturate(2.4) contrast(1.05); }

/* ============ 01 HERO ============ */
.hero{ padding-block: 0; min-height: 0; }
.hero__stage{
  position:relative;
  height: min(66vh, 620px);
  min-height: 500px;
}
.hero__stage .motion-media{ position:absolute; inset:0; border-radius:0; }
.hero__stage .motion-media svg{ height:100%; }
.hero__stage .motion-media.duo::before{
  background: linear-gradient(180deg, rgba(10,10,10,0) 6%, rgba(10,10,10,.5) 42%, rgba(10,10,10,.94) 100%);
}
.hero__overlay{
  position:relative; z-index:4; height:100%;
  display:flex; flex-direction:column; justify-content:flex-end;
  gap:.9rem;
  padding-block: clamp(1.5rem,4vw,3rem) clamp(2.75rem,5.5vw,4rem);
}
.hero__overlay > *{ margin:0; }
.hero__headline{
  font-size:clamp(1.6rem,3.6vw,3.2rem);
  line-height:1.1;
  max-width: 22ch;
}
.hero__row{
  display:flex; align-items:center;
  gap:1rem; flex-wrap:wrap; margin-top:.4rem;
}
.hero__sub{ max-width:52ch; }
.hero__note{ font-size:.85rem; color:var(--gray-on-ink); font-weight:600; letter-spacing:.01em; margin-top:.3rem; }

/* ============ 02 PROBLEM ============ */
.problem-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.problem-card{
  position:relative; overflow:hidden;
  background:#fff;
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.6rem 1.5rem 1.7rem;
  box-shadow: 0 8px 24px rgba(10,10,10,0.06);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.problem-card:hover{
  transform: translateY(-5px);
  box-shadow: 0 18px 36px rgba(124,58,237,.18);
  border-color: var(--accent);
}
.problem-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background: var(--accent);
}
.problem-card .num{ display:block; font-size:1.5rem; color: var(--accent); margin-bottom:.9rem; }
.problem-card h3{ color: var(--ink); margin-bottom:.5rem; font-size:clamp(1rem,1.6vw,1.2rem); }
.problem-card p{ color: var(--gray); font-size:.9rem; line-height:1.55; }
.drift-demo{
  margin-top: 3.25rem;
  display:grid; grid-template-columns: 1fr 1fr; gap:1rem;
  align-items:stretch;
}
.drift-demo figure{ margin:0; }
.drift-demo .motion-media{ aspect-ratio: 4/3; }
.drift-demo figcaption{ margin-top:.65rem; font-size:.82rem; color:var(--gray); font-weight:600; }
.drift-demo .tag{
  display:inline-block; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  padding:.3em .7em; border-radius:var(--pill); margin-bottom:.5rem;
}
.tag--match{ background:#EFEAFE; color:var(--accent); }
.tag--drift{ background:#0A0A0A; color:#fff; }

/* ============ 03 PRODUCT ============ */
.stage-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.stage-card{
  border:1px solid var(--border-on-ink);
  border-radius: var(--radius);
  overflow:hidden;
  background: rgba(255,255,255,.03);
  transition: transform .25s ease, border-color .25s ease;
}
.stage-card:hover{ transform: translateY(-4px); }
.stage-card .motion-media{ aspect-ratio: 16/10; border-radius:0; }
.stage-card .motion-media img{ transition: transform .5s ease; }
.stage-card:hover .motion-media img{ transform: scale(1.06); }
.stage-card--light:hover{ border-color: var(--accent); }
.stage-card__body{ padding:1.6rem 1.5rem 1.9rem; }
.stage-card .num{ font-size:1rem; color:var(--accent); display:block; margin-bottom:.6rem; letter-spacing:.05em; }
.stage-card h3{ color:#fff; margin-bottom:.5rem; }

/* ============ solution pivot + model flexibility note ============ */
.solution-pivot{
  margin-top: clamp(3.5rem,7vw,5.5rem);
  padding-top: clamp(2.5rem,5vw,3.5rem);
  border-top: 1px solid var(--border);
}
.solution-pivot h2{ max-width:22ch; margin-top:.4rem; }
.stage-card--light{ border:1px solid var(--border); background:#fff; }
.stage-card--light h3{ color: var(--ink); }
.flex-note{
  margin-top:2.5rem; padding-top:1.75rem;
  border-top:1px solid var(--border);
  max-width:60ch;
}
.flex-note .mini-tag{
  display:block; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--accent); margin-bottom:.6rem;
}
.flex-note p{ font-size:1.05rem; line-height:1.6; }

/* ============ 05 HOW IT WORKS ============ */
.flow{ position:relative; margin-top:3rem; }
.flow__line{
  position:absolute; left:0; right:0; top:34px; height:1px;
  background: var(--border-on-ink);
  display:none;
}
.flow__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; position:relative; }
.flow__step{
  position:relative;
  border:1px solid var(--border-on-ink);
  border-radius: var(--radius);
  padding:1.5rem 1.4rem 1.7rem;
  background: rgba(255,255,255,.025);
  transition: transform .25s ease, border-color .25s ease, background-color .25s ease;
}
.flow__step:hover{
  transform: translateY(-4px);
  border-color: var(--accent);
  background: rgba(124,58,237,.06);
}
.flow__step .num{
  font-size:clamp(1.6rem,2.4vw,2.1rem);
  display:block; margin-bottom:1.1rem; color: rgba(255,255,255,.22);
}
.flow__step h3{ color:#fff; margin-bottom:.55rem; }
.flow__step p{ font-size:.88rem; color:var(--gray-on-ink); line-height:1.55; }
.flow__step--quiet{
  border-top: 2px solid var(--accent);
}
.flow__step--quiet .num{ color: var(--accent); }
.flow__fact{
  margin-top:.9rem; padding-top:.9rem; border-top:1px solid var(--border-on-ink);
  display:flex; align-items:baseline; gap:.6rem;
}
.flow__fact .num{ font-size:1.3rem; color:#fff; margin:0; }
.flow__fact span{ font-size:.78rem; color:var(--gray-on-ink); line-height:1.4; }
.flow__closing{ margin-top:3.5rem; text-align:center; }
.flow__closing p{ font-size:clamp(1rem,1.5vw,1.15rem); font-weight:700; color:#fff; }

/* quiet trailing facts, folded in from the former B2B section — matches the step-card treatment above */
.flow__extra{
  margin-top:1.75rem;
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.flow__extra-item{
  border:1px solid var(--border-on-ink);
  border-radius: var(--radius);
  padding:1.5rem 1.4rem 1.7rem;
  background: rgba(255,255,255,.025);
  transition: transform .25s ease, border-color .25s ease;
}
.flow__extra-item:hover{ transform: translateY(-3px); border-color: var(--accent); }
.flow__extra .mini-tag{
  display:block; font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:var(--gray-on-ink); margin-bottom:.5rem;
}
.flow__extra p{ font-size:.85rem; color:var(--gray-on-ink); line-height:1.5; }

/* ============ 07 WHO IT'S FOR ============ */
.who-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:2.5rem; }
.who-card{
  border-radius: var(--radius);
  border:1px solid var(--border-on-ink);
  background: rgba(255,255,255,.03);
  padding: 2rem 1.7rem;
  display:flex; flex-direction:column; gap:.9rem;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.who-card:hover{ transform: translateY(-4px); border-color: var(--accent); }
.who-card--light:hover{ box-shadow: 0 16px 34px rgba(124,58,237,.14); }
.who-card .tag{
  align-self:flex-start;
  font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  padding:.35em .8em; border-radius:var(--pill);
  background: rgba(124,58,237,.16); color:#c4a3ff;
}
.who-card h3{ color:#fff; }
.who-card p{ color: var(--gray-on-ink); font-size:.94rem; line-height:1.6; }
.who-card--light{ border-color: var(--border); background:#fff; }
.who-card--light .tag{ background:#EFEAFE; color:var(--accent); }
.who-card--light h3{ color: var(--ink); }
.who-card--light p{ color: var(--gray); }

/* ============ 08 FINAL CTA ============ */
.cta{ padding-block:0; }
.cta__stage{ position:relative; min-height:520px; display:flex; align-items:center; }
.cta__stage .motion-media{ position:absolute; inset:0; border-radius:0; }
.cta__content{ position:relative; z-index:3; padding-block:clamp(4rem,10vw,7rem); text-align:center; margin-inline:auto; }
.cta__content .eyebrow{ justify-content:center; }
.cta__content h2{ max-width:18ch; margin-inline:auto; }
.cta__content .lede{ max-width:44ch; margin:1.3rem auto 2.2rem; }
.cta__actions{ display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* ---------- footer ---------- */
footer{ background:var(--paper); color:var(--ink); padding-block: clamp(3rem,6vw,4.5rem) 2.5rem; }
.foot__top{ display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; padding-bottom:2.5rem; margin-bottom:2rem; border-bottom:1px solid var(--border); }
.foot__mark{ font-weight:900; font-size:1.2rem; display:flex; align-items:center; gap:.6em; flex-wrap:wrap; }
.foot__mark img{ height:24px; width:auto; display:block; }
.foot__mark .sub{ display:block; width:100%; font-weight:500; font-size:.85rem; color:var(--gray); margin-top:.1rem; }
.foot__links{ display:flex; gap:2.5rem; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.foot__links a{ text-decoration:none; color:var(--ink); font-weight:600; font-size:.92rem; }
.foot__links a:hover{ color:var(--accent); }
.foot__bottom{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem; color:var(--gray); }
.foot__legal{ display:flex; gap:1.5rem; list-style:none; margin:0; padding:0; }
.foot__legal a{ text-decoration:none; color:var(--gray); }
.foot__legal a:hover{ color:var(--ink); }

/* ---------- demo request modal ---------- */
.demo-modal-overlay{
  position:fixed; inset:0; z-index:100;
  background: rgba(10,10,10,.78);
  backdrop-filter: blur(6px);
  display:none; align-items:center; justify-content:center;
  padding: 1.5rem;
}
.demo-modal-overlay.is-open{ display:flex; }
.demo-modal{
  position:relative;
  width:100%; max-width:460px;
  background: var(--ink); color:#fff;
  border:1px solid var(--border-on-ink);
  border-radius: var(--radius);
  padding: 2.25rem 2rem 2rem;
  box-shadow: 0 24px 64px rgba(0,0,0,.5);
}
.demo-modal__close{
  position:absolute; top:.9rem; right:.9rem;
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--border-on-ink); background:transparent; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; cursor:pointer; line-height:1;
  transition: background-color .18s ease;
}
.demo-modal__close:hover{ background: rgba(255,255,255,.1); }
.demo-modal h3{ color:#fff; font-size:1.3rem; margin-bottom:.5rem; }
.demo-modal p.lede{ color: var(--gray-on-ink); font-size:.95rem; margin-bottom:1.6rem; }
.demo-form{ display:flex; flex-direction:column; gap:1rem; }
.demo-form label{
  display:block; font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color: var(--gray-on-ink); margin-bottom:.5rem;
}
.demo-form input, .demo-form textarea{
  width:100%; background: rgba(255,255,255,.04);
  border:1px solid var(--border-on-ink); border-radius:8px;
  padding:.8em .9em; color:#fff; font-family:var(--font); font-size:.95rem;
  transition: border-color .18s ease, background-color .18s ease;
}
.demo-form input::placeholder, .demo-form textarea::placeholder{ color: rgba(255,255,255,.32); }
.demo-form input:focus, .demo-form textarea:focus{
  outline:none; border-color: var(--accent); background: rgba(124,58,237,.08);
}
.demo-form textarea{ min-height:88px; resize:vertical; }
.demo-form .pill{ margin-top:.4rem; width:100%; justify-content:center; border:none; }
.demo-modal__success{ display:none; text-align:center; padding-block: 1rem; }
.demo-modal__success.is-shown{ display:block; }
.demo-modal__success h3{ margin-bottom:.6rem; }
.demo-modal__success p{ color: var(--gray-on-ink); font-size:.95rem; }

/* ---------- responsive ---------- */
@media (max-width:900px){
  .problem-grid, .stage-grid, .flow__grid, .who-grid, .flow__extra{ grid-template-columns:1fr; }
  .drift-demo{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .hero__row{ flex-direction:column; align-items:flex-start; }
}
