/* =========================================================================
   REDWAVE — redwaveglobal.com
   Bioceramic far-infrared technology · "The Good Inside"
   Palette: Red #D23237 (PMS 1797C) · Grey #969BA0 (PMS 430C) · near-black #040000
   ========================================================================= */

/* ----------------------------- TOKENS ----------------------------------- */
:root{
  --red:        #d23237;
  --red-600:    #b3232a;
  --red-700:    #8f1a20;
  --red-300:    #e8676b;
  --red-tint:   #fbecec;
  --grey:       #969ba0;
  --grey-400:   #b9bdc2;
  --grey-700:   #5c6166;

  --ink:        #0d0d0f;   /* near-black surface */
  --ink-2:      #16161a;
  --ink-3:      #202027;
  --paper:      #ffffff;
  --paper-2:    #f6f6f4;   /* warm off-white */
  --paper-3:    #efeeec;

  --text:       #1a1b1e;   /* body on light */
  --text-soft:  #54585e;
  --text-faint: #888d93;   /* AA on dark surfaces (footer, dark sections) */
  --text-muted: #6c7177;   /* AA (>=4.5:1) on light surfaces */
  --on-dark:    #f4f4f5;
  --on-dark-soft:#aeb2b8;
  --line:       #e4e3e0;
  --line-dark:  rgba(255,255,255,.12);

  --font: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --container: 1200px;
  --radius:    16px;
  --radius-sm: 10px;
  --shadow:    0 1px 2px rgba(13,13,15,.04), 0 16px 40px -18px rgba(13,13,15,.18);
  --shadow-lg: 0 30px 80px -30px rgba(13,13,15,.45);
  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-out:  cubic-bezier(.16,1,.3,1);
  --section-y: clamp(4.5rem, 9vw, 9rem);
}

/* ----------------------------- RESET ------------------------------------ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; font-family:var(--font); color:var(--text);
  background:var(--paper); line-height:1.6;
  font-size:clamp(1rem,.97rem + .2vw,1.08rem);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0; line-height:1.05; letter-spacing:-.02em; font-weight:800; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
::selection{ background:var(--red); color:#fff; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.25rem,4vw,2.5rem); }

.skip-link{
  position:fixed; left:1rem; top:-100px; z-index:200; background:var(--ink); color:#fff;
  padding:.7rem 1.1rem; border-radius:8px; transition:top .2s var(--ease);
}
.skip-link:focus{ top:1rem; }
:focus-visible{ outline:2.5px solid var(--red); outline-offset:3px; border-radius:4px; }

/* ----------------------------- TYPE HELPERS ----------------------------- */
.eyebrow,.kicker{ font-family:var(--mono); font-weight:500; text-transform:uppercase; }
.kicker{
  display:inline-flex; align-items:center; gap:.6rem; font-size:.78rem; letter-spacing:.18em;
  color:var(--text-muted); margin:0 0 1.1rem;
}
.kicker.center{ justify-content:center; }
.kicker.on-dark{ color:var(--on-dark-soft); }
.kicker-num{
  display:inline-grid; place-items:center; width:1.7rem; height:1.7rem; border-radius:50%;
  border:1px solid currentColor; color:var(--red); font-size:.72rem; letter-spacing:0;
}
.kicker.on-dark .kicker-num{ color:var(--red-300); }

.section-title{
  font-size:clamp(2rem,1.3rem + 3.1vw,3.5rem);
  letter-spacing:-.03em; line-height:1.02;
}
.section-lede{
  margin-top:1.1rem; max-width:46ch; color:var(--text-soft);
  font-size:clamp(1.05rem,1rem + .35vw,1.25rem);
}
.section-lede.on-dark{ color:var(--on-dark-soft); }
.ink-red{ color:var(--red); }
.grad{
  background:linear-gradient(105deg,var(--red) 0%,var(--red-300) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.section-head{ max-width:760px; margin-bottom:clamp(2.5rem,5vw,4rem); }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head.center .section-lede{ margin-inline:auto; }

.section{ padding-block:var(--section-y); position:relative; }
.section-dark{ background:var(--ink); color:var(--on-dark); }
.section-dark .section-title{ color:#fff; }

/* ----------------------------- BUTTONS ---------------------------------- */
.btn{
  --bg:var(--red); --fg:#fff;
  display:inline-flex; align-items:center; gap:.55rem; justify-content:center;
  background:var(--bg); color:var(--fg);
  padding:.9rem 1.5rem; border-radius:100px; border:1.5px solid transparent;
  font-weight:700; font-size:.98rem; letter-spacing:-.01em;
  transition:transform .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease), color .25s var(--ease);
  will-change:transform;
}
.btn span[aria-hidden]{ transition:transform .25s var(--ease); }
.btn-primary{ box-shadow:0 10px 30px -10px rgba(210,50,55,.6); }
.btn-primary:hover{ background:var(--red-600); transform:translateY(-2px); }
.btn-primary:hover span[aria-hidden]{ transform:translateX(4px); }
.btn-ghost{ background:transparent; color:var(--text); border-color:rgba(26,27,30,.2); }
.btn-ghost:hover{ border-color:var(--red); color:var(--red); transform:translateY(-2px); }
.section-dark .btn-ghost,.cta .btn-ghost,.hero .btn-ghost{ color:#fff; border-color:rgba(255,255,255,.3); }
.section-dark .btn-ghost:hover,.cta .btn-ghost:hover,.hero .btn-ghost:hover{ border-color:#fff; color:#fff; background:rgba(255,255,255,.07); }
.btn-sm{ padding:.62rem 1.1rem; font-size:.9rem; }
.btn-lg{ padding:1.05rem 1.9rem; font-size:1.05rem; }

/* ----------------------------- HEADER ----------------------------------- */
.site-header{
  position:fixed; inset:0 0 auto; z-index:100; height:74px;
  display:flex; align-items:center;
  background:rgba(255,255,255,0); transition:background .3s var(--ease), box-shadow .3s var(--ease), height .3s var(--ease);
}
.site-header.scrolled{
  background:rgba(255,255,255,.86); backdrop-filter:saturate(160%) blur(14px);
  box-shadow:0 1px 0 var(--line); height:64px;
}
.header-inner{ display:flex; align-items:center; gap:2rem; width:100%; }
.brand{ display:inline-flex; align-items:center; gap:.6rem; }
.brand-mark{ width:34px; height:34px; }
.brand-word{ width:auto; height:17px; }
/* hero is dark → invert the (red/dark) marks to white until scrolled */
.site-header:not(.scrolled) .brand-word{ filter:brightness(0) invert(1); }
.site-header:not(.scrolled) .brand-mark{ filter:brightness(0) invert(1); }
.site-header:not(.scrolled) .main-nav a{ color:rgba(255,255,255,.82); }
.site-header:not(.scrolled) .main-nav a:hover{ color:#fff; }

.main-nav{ display:flex; gap:1.6rem; margin-left:auto; }
.main-nav a{ font-weight:600; font-size:.95rem; color:var(--text-soft); position:relative; padding:.2rem 0; }
.main-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--red);
  transition:right .3s var(--ease);
}
.main-nav a:hover{ color:var(--text); }
.main-nav a:hover::after,.main-nav a.active::after{ right:0; }
.main-nav a.active{ color:var(--text); }
.site-header:not(.scrolled) .main-nav a.active{ color:#fff; }
.header-cta{ margin-left:.4rem; }
.site-header:not(.scrolled) .header-cta .btn-primary{ box-shadow:0 10px 30px -12px rgba(0,0,0,.6); }

.nav-toggle{ display:none; width:44px; height:44px; border:0; background:transparent; margin-left:auto; position:relative; }
.nav-toggle span{ position:absolute; left:11px; right:11px; height:2px; background:var(--text); transition:.3s var(--ease); }
.nav-toggle span:nth-child(1){ top:15px; } .nav-toggle span:nth-child(2){ top:21px; } .nav-toggle span:nth-child(3){ top:27px; }
.site-header:not(.scrolled) .nav-toggle span{ background:#fff; }
.nav-open .nav-toggle span:nth-child(1){ top:21px; transform:rotate(45deg); }
.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
.nav-open .nav-toggle span:nth-child(3){ top:21px; transform:rotate(-45deg); }

/* ----------------------------- HERO ------------------------------------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  background:radial-gradient(120% 120% at 75% 10%, #1c1c22 0%, var(--ink) 45%, #070708 100%);
  color:#fff; overflow:hidden; padding-block:120px 90px; isolation:isolate;
}
.hero-canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:-2; opacity:.9; }
.hero-grid{
  position:absolute; inset:0; z-index:-2; pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px);
  background-size:30px 30px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 78%);
          mask-image:radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 78%);
}
.hero-glow{
  position:absolute; z-index:-1; width:60vw; height:60vw; max-width:760px; max-height:760px;
  right:-8%; top:-12%; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(210,50,55,.42) 0%, rgba(210,50,55,0) 62%);
  filter:blur(10px);
}
.hero-inner{ position:relative; max-width:920px; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.8rem; font-size:.82rem; letter-spacing:.26em;
  color:#fff; padding:.5rem .95rem; border:1px solid rgba(255,255,255,.18); border-radius:100px;
  background:rgba(255,255,255,.04); margin:0 0 1.6rem;
}
.eyebrow-mark{ color:var(--red-300); letter-spacing:.1em; }
.hero-title{
  font-size:clamp(2.6rem,1.4rem + 5.6vw,5.4rem); font-weight:900; letter-spacing:-.035em; line-height:.98;
  max-width:16ch;
}
.hero-sub{
  margin-top:1.6rem; max-width:60ch; color:rgba(255,255,255,.78);
  font-size:clamp(1.08rem,1rem + .5vw,1.35rem);
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.2rem; }
.hero-trust{
  display:flex; flex-wrap:wrap; gap:clamp(1.2rem,3vw,3rem); margin-top:3rem;
  padding-top:1.8rem; border-top:1px solid rgba(255,255,255,.12);
}
.hero-trust li{ display:flex; flex-direction:column; }
.hero-trust strong{ font-size:1.9rem; font-weight:800; color:#fff; letter-spacing:-.03em; }
.hero-trust span{ font-size:.86rem; color:rgba(255,255,255,.6); max-width:22ch; }

.scroll-cue{ position:absolute; left:50%; bottom:26px; translate:-50% 0; width:26px; height:42px; border:1.5px solid rgba(255,255,255,.35); border-radius:100px; z-index:2; }
.scroll-cue span{ position:absolute; left:50%; top:8px; translate:-50% 0; width:4px; height:8px; border-radius:4px; background:var(--red-300); animation:cue 1.6s var(--ease) infinite; }
@keyframes cue{ 0%{ opacity:0; transform:translate(-50%,0); } 30%{ opacity:1; } 100%{ opacity:0; transform:translate(-50%,16px); } }
.hero-byline{ position:absolute; right:clamp(1.25rem,4vw,2.5rem); bottom:30px; font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5); z-index:2; }
.hero-byline strong{ color:rgba(255,255,255,.82); font-weight:600; }

/* ----------------------------- MARQUEE ---------------------------------- */
.marquee{ background:var(--red); color:#fff; overflow:hidden; padding-block:.9rem; }
.marquee-track{ display:flex; align-items:center; gap:1.4rem; width:max-content; animation:marq 38s linear infinite; }
.marquee span{ font-weight:700; font-size:1rem; letter-spacing:.02em; text-transform:uppercase; }
.marquee i{ color:rgba(255,255,255,.55); font-style:normal; font-weight:700; }
@keyframes marq{ to{ transform:translateX(-50%); } }

/* ----------------------------- INGREDIENT / TECH ------------------------ */
.ingredient{ background:var(--paper); }
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.step{
  position:relative; background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius);
  padding:2rem 1.8rem 1.9rem; overflow:hidden; transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.step::before{ content:""; position:absolute; left:0; top:0; width:100%; height:3px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.step:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.step:hover::before{ transform:scaleX(1); }
.step-no{ font-family:var(--mono); font-size:.8rem; color:var(--text-muted); letter-spacing:.1em; }
.step-icon{ width:54px; height:54px; border-radius:14px; display:grid; place-items:center; background:#fff; border:1px solid var(--line); color:var(--red); margin:1.1rem 0 1.2rem; }
.step-icon svg{ width:26px; height:26px; }
.step h3{ font-size:1.4rem; margin-bottom:.5rem; }
.step p{ color:var(--text-soft); }

.pullquote{ margin:clamp(3rem,6vw,5rem) 0 0; max-width:60ch; }
.pullquote.center{ margin-inline:auto; text-align:center; }
.pullquote blockquote{ margin:0; font-size:clamp(1.4rem,1rem + 1.8vw,2.1rem); font-weight:700; letter-spacing:-.02em; line-height:1.2; }
.pullquote.center blockquote{ max-width:24ch; margin-inline:auto; }
.section-dark .pullquote blockquote{ color:#fff; }
.pullquote figcaption{ margin-top:.9rem; font-family:var(--mono); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); }

/* ----------------------------- SCIENCE (dark) --------------------------- */
.dotfield{ position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px); background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 70%); mask-image:linear-gradient(180deg,#000,transparent 70%); }
.science-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.science-copy p{ color:var(--on-dark-soft); margin-top:1rem; max-width:52ch; }
.science-copy strong{ color:#fff; }
.science-kick{ font-size:1.3rem; font-weight:700; color:#fff !important; margin-top:1.4rem !important; }
.fir-points{ margin-top:1.8rem; display:grid; gap:.8rem; }
.fir-points li{ display:flex; align-items:flex-start; gap:.7rem; color:var(--on-dark); font-weight:500; }
.fir-points svg{ width:20px; height:20px; margin-top:3px; flex:none; fill:none; stroke:var(--red-300); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

.virtuous{ background:linear-gradient(180deg,#15151a,#101015); border:1px solid var(--line-dark); border-radius:var(--radius); padding:1.6rem 1.6rem 1.3rem; box-shadow:var(--shadow-lg); }
.virtuous-head .tag-red{ display:inline-block; font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#fff; background:var(--red); padding:.32rem .6rem; border-radius:6px; }
.virtuous-head p{ color:var(--on-dark-soft); font-size:.95rem; margin-top:.7rem; }
.vc-chart{ width:100%; height:auto; margin-top:.4rem; overflow:visible; }
.vc-axis{ stroke:rgba(255,255,255,.28); stroke-width:1.4; }
.vc-base{ stroke:rgba(255,255,255,.3); stroke-width:1.2; }
.vc-axislab,.vc-labels text{ font-family:var(--mono); fill:var(--on-dark-soft); font-size:9px; letter-spacing:.06em; }
.vc-labels text{ fill:rgba(255,255,255,.7); }
.vc-up{ fill:var(--red-300) !important; font-weight:600; }
.vc-down{ fill:var(--grey) !important; }
.vc-curve{ fill:none; stroke:#fff; stroke-width:2.4; stroke-linecap:round; }
.vc-improve{ fill:none; stroke:var(--red); stroke-width:3; stroke-linecap:round; }
.vc-deter{ fill:none; stroke:var(--grey); stroke-width:2.2; stroke-linecap:round; stroke-dasharray:3 4; }
.vc-dot{ fill:var(--red); }
.vc-foot{ font-size:.82rem; color:var(--on-dark-soft); margin-top:.6rem; text-align:center; }
/* draw animation */
.vc-curve,.vc-improve,.vc-deter{ stroke-dasharray:600; stroke-dashoffset:600; }
.is-visible .vc-curve{ animation:draw 1.1s var(--ease) .2s forwards; }
.is-visible .vc-improve{ animation:draw 1s var(--ease) 1.1s forwards; }
.is-visible .vc-deter{ animation:drawDeter 1s var(--ease) 1.2s forwards; }
.vc-dot{ opacity:0; } .is-visible .vc-dot{ animation:pop .5s var(--ease) 1.9s forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
@keyframes drawDeter{ to{ stroke-dashoffset:0; opacity:.85; } }
@keyframes pop{ 0%{ opacity:0; transform:scale(0); } 60%{ transform:scale(1.5); } to{ opacity:1; transform:scale(1); } }

/* benefits */
.benefits{ margin-top:clamp(3rem,6vw,5.5rem); }
.benefits-title{ font-size:clamp(1.3rem,1rem + 1.2vw,1.8rem); margin-bottom:1.6rem; color:#fff; }
.benefit-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); border-radius:var(--radius); overflow:hidden; }
.benefit{ background:var(--ink-2); padding:1.7rem 1.5rem; transition:background .3s var(--ease); }
.benefit:hover{ background:var(--ink-3); }
.b-ico{ display:grid; place-items:center; width:46px; height:46px; border-radius:12px; background:rgba(210,50,55,.12); color:var(--red-300); margin-bottom:1rem; }
.b-ico svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.benefit h4{ font-size:1.12rem; color:#fff; margin-bottom:.35rem; }
.benefit p{ color:var(--on-dark-soft); font-size:.95rem; }

/* ----------------------------- APPLICATIONS ----------------------------- */
.applications{ background:var(--paper); }
.app-tablist{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.8rem; border-bottom:1px solid var(--line); padding-bottom:1.2rem; }
.app-tab{
  border:1px solid var(--line); background:#fff; color:var(--text-soft);
  padding:.7rem 1.2rem; border-radius:100px; font-weight:600; font-size:.95rem;
  transition:.25s var(--ease);
}
.app-tab:hover{ border-color:var(--red); color:var(--red); }
.app-tab.is-active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.app-panel{ display:none; }
.app-panel.is-active{ display:block; animation:fadeUp .5s var(--ease); }
.app-panel-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(1.6rem,4vw,3.5rem); align-items:center;
  background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.8rem,4vw,3rem); }
.app-panel-copy h3{ font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem); margin-bottom:.8rem; }
.app-panel-copy p{ color:var(--text-soft); max-width:46ch; }
.chips{ display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.4rem; }
.chips li{ background:#fff; border:1px solid var(--line); border-radius:100px; padding:.45rem .95rem; font-size:.86rem; font-weight:600; color:var(--text); }
.app-stats{ display:grid; gap:.8rem; }
.app-stats li{ background:#fff; border:1px solid var(--line); border-left:3px solid var(--red); border-radius:var(--radius-sm); padding:1rem 1.2rem; }
.app-stats strong{ display:block; font-size:1.5rem; letter-spacing:-.02em; }
.app-stats span{ color:var(--text-soft); font-size:.9rem; }

/* ----------------------------- EDGE (dark) ------------------------------ */
.loopfield{ position:absolute; inset:0; pointer-events:none; opacity:.05;
  background-image:url("assets/logos/redwave-mark.svg"); background-size:118px; background-repeat:repeat;
  -webkit-mask-image:radial-gradient(80% 80% at 80% 20%,#000,transparent 75%); mask-image:radial-gradient(80% 80% at 80% 20%,#000,transparent 75%); }
.edge-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.patents{ background:var(--ink-2); border:1px solid var(--line-dark); border-radius:var(--radius); padding:1.8rem; }
.patents-cap{ font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--on-dark-soft); margin-bottom:1.5rem; }
.patents-cap span{ color:#fff; }
.bars{ display:grid; gap:1rem; }
.bar{ display:grid; grid-template-columns:96px 1fr; align-items:center; gap:.9rem; }
.bar-name{ font-size:.86rem; color:var(--on-dark-soft); text-align:right; }
.bar-lead .bar-name{ color:#fff; font-weight:700; }
.bar-track{ height:14px; background:rgba(255,255,255,.07); border-radius:100px; overflow:hidden; }
.bar-fill{ display:block; height:100%; width:0; border-radius:100px; background:var(--grey);
  transition:width 1.2s var(--ease-out); }
.bar-lead .bar-fill{ background:linear-gradient(90deg,var(--red-600),var(--red)); }
.is-visible .bar-fill{ width:calc(var(--v) * 1%); }
.bar-val{ font-family:var(--mono); font-weight:600; font-size:1rem; color:#fff; min-width:2.2ch; text-align:right; }
.bar-lead .bar-val{ color:var(--red-300); }
.patents-src{ margin-top:1.4rem; font-size:.78rem; color:var(--text-faint); }

.edge-points{ display:grid; gap:1.1rem; margin-bottom:2rem; }
.edge-points li{ display:flex; gap:1rem; align-items:flex-start; }
.ep-no{ font-family:var(--mono); font-weight:600; font-size:1.5rem; color:var(--red-300); min-width:48px; }
.ep-ico{ display:grid; place-items:center; width:48px; min-width:48px; height:48px; border-radius:12px; background:rgba(255,255,255,.06); color:var(--red-300); }
.ep-ico svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.edge-points h3{ font-size:1.1rem; color:#fff; margin-bottom:.2rem; }
.edge-points p{ color:var(--on-dark-soft); font-size:.94rem; }
.durability{ background:linear-gradient(135deg,rgba(210,50,55,.16),rgba(210,50,55,.03)); border:1px solid rgba(210,50,55,.3); border-radius:var(--radius); padding:1.6rem 1.8rem; }
.durability h3{ font-size:1.15rem; color:#fff; margin-bottom:1rem; }
.dura-list{ display:grid; gap:.6rem; }
.dura-list li{ position:relative; padding-left:1.6rem; color:var(--on-dark); font-size:.96rem; }
.dura-list li::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%; background:var(--red); }

/* ----------------------------- MARKET ----------------------------------- */
.market{ background:var(--paper-2); }
.stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.stat{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:2rem 1.6rem; text-align:center; transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.stat:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.stat-num{ display:block; font-size:clamp(2.4rem,1.6rem + 2.6vw,3.4rem); font-weight:900; letter-spacing:-.04em; color:var(--red); line-height:1; }
.stat-lab{ display:block; margin-top:.8rem; color:var(--text-soft); font-size:.92rem; }

/* ----------------------------- PARTNER (dark) --------------------------- */
.timeline{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line-dark);
  border:1px solid var(--line-dark); border-radius:var(--radius); overflow:hidden; }
.timeline li{ position:relative; background:var(--ink-2); padding:1.6rem 1.3rem 1.5rem; transition:background .3s var(--ease); }
.timeline li:hover{ background:var(--ink-3); }
.tl-no{ display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--red); color:#fff; font-weight:800; font-size:1rem; margin-bottom:1rem; }
.timeline h3{ font-size:1rem; color:#fff; font-weight:700; line-height:1.25; }

.value-card{ margin-top:1.6rem; background:linear-gradient(120deg,#16161b,#121217); border:1px solid var(--line-dark);
  border-radius:var(--radius); padding:clamp(1.8rem,4vw,2.8rem); }
.value-kick{ font-family:var(--mono); font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:var(--red-300); margin-bottom:1.4rem; }
.value-eq{ display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem; }
.value-term{ flex:1 1 180px; }
.value-term strong{ display:block; font-size:clamp(1.3rem,1rem + 1vw,1.7rem); color:#fff; letter-spacing:-.02em; }
.value-term span{ color:var(--on-dark-soft); font-size:.92rem; }
.value-out strong{ color:var(--red-300); }
.value-op{ font-size:1.8rem; font-weight:300; color:var(--grey); }
.value-note{ margin-top:1.6rem; font-size:.8rem; color:var(--text-faint); }

/* ----------------------------- COMPANY ---------------------------------- */
.company{ background:var(--paper); }
.team{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.member{ background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem 1.3rem; transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.member:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.m-badge{ display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:var(--ink); color:#fff; font-weight:800; letter-spacing:.02em; margin-bottom:1.1rem; font-size:1.05rem; }
.member h3{ font-size:1.08rem; margin-bottom:.3rem; }
.member p{ color:var(--text-soft); font-size:.88rem; }
.advisory{ margin-top:2.4rem; display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem 2.2rem; padding-top:1.8rem; border-top:1px solid var(--line); }
.advisory-lab{ font-family:var(--mono); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted); }
.advisory ul{ display:flex; flex-wrap:wrap; gap:.8rem 2rem; }
.advisory li{ font-weight:700; }
.advisory em{ color:var(--text-soft); font-weight:400; font-style:normal; }

/* ----------------------------- CTA -------------------------------------- */
.cta{ background:radial-gradient(120% 120% at 20% 0%, #1c1c22, var(--ink) 55%, #060607); color:#fff; overflow:hidden; }
.cta .hero-grid{ z-index:0; opacity:.6; }
.cta-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.cta-mark{ width:64px; height:64px; margin-bottom:1.4rem; }
.cta-copy h2{ font-size:clamp(2rem,1.4rem + 2.4vw,3.2rem); color:#fff; letter-spacing:-.03em; }
.cta-copy p{ margin-top:1.1rem; color:var(--on-dark-soft); max-width:42ch; font-size:1.1rem; }
.cta-actions{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem; }
.cta-details dl{ display:grid; gap:1.3rem; background:rgba(255,255,255,.04); border:1px solid var(--line-dark); border-radius:var(--radius); padding:1.8rem; }
.cta-details dt{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red-300); margin-bottom:.35rem; }
.cta-details dd{ margin:0; color:var(--on-dark); line-height:1.55; }
.cta-details a{ color:#fff; border-bottom:1px solid rgba(255,255,255,.3); }
.cta-details a:hover{ border-color:var(--red-300); color:var(--red-300); }

/* ----------------------------- FOOTER ----------------------------------- */
.site-footer{ background:#070708; color:var(--on-dark-soft); padding-top:clamp(3rem,6vw,5rem); }
.footer-inner{ display:grid; grid-template-columns:1.2fr 1.8fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid var(--line-dark); }
.footer-word{ height:21px; width:auto; filter:brightness(0) invert(1); }
.footer-tag{ margin-top:1rem; color:#fff; font-weight:700; letter-spacing:.02em; }
.footer-by{ margin-top:.3rem; font-size:.86rem; }
.footer-nav{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.footer-nav div{ display:grid; gap:.7rem; align-content:start; }
.footer-nav span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-faint); }
.footer-nav a{ color:var(--on-dark-soft); font-size:.95rem; transition:color .2s var(--ease); }
.footer-nav a:hover{ color:#fff; }
.footer-base{ display:flex; flex-wrap:wrap; gap:.6rem 2rem; justify-content:space-between; padding-block:1.6rem 2.2rem; font-size:.82rem; color:var(--text-faint); }
.footer-disc{ max-width:48ch; }

/* ----------------------------- TO TOP ----------------------------------- */
.to-top{ position:fixed; right:22px; bottom:22px; z-index:90; width:48px; height:48px; border-radius:50%;
  background:#fff; box-shadow:var(--shadow); display:grid; place-items:center; opacity:0; transform:translateY(14px) scale(.9);
  pointer-events:none; transition:.35s var(--ease); border:1px solid var(--line); }
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ transform:translateY(-3px); }

/* ----------------------------- REVEAL ----------------------------------- */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
[data-reveal].is-visible{ opacity:1; transform:none; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }

/* stagger children */
.steps .step:nth-child(2),.benefit:nth-child(2),.stat:nth-child(2),.member:nth-child(2){ transition-delay:.07s; }
.steps .step:nth-child(3),.benefit:nth-child(3),.stat:nth-child(3),.member:nth-child(3){ transition-delay:.14s; }
.benefit:nth-child(4),.stat:nth-child(4),.member:nth-child(4){ transition-delay:.21s; }
.benefit:nth-child(5),.member:nth-child(5){ transition-delay:.28s; }
.benefit:nth-child(6){ transition-delay:.35s; }

/* ----------------------------- RESPONSIVE ------------------------------- */
@media (max-width:1000px){
  .science-grid,.edge-grid,.cta-inner{ grid-template-columns:1fr; }
  .virtuous{ max-width:560px; }
  .timeline{ grid-template-columns:repeat(3,1fr); }
  .team{ grid-template-columns:repeat(3,1fr); }
  .stat-grid{ grid-template-columns:repeat(2,1fr); }
  .app-panel-grid{ grid-template-columns:1fr; }
}
@media (max-width:760px){
  .main-nav,.header-cta{ display:none; }
  .nav-toggle{ display:block; }
  .main-nav.open{
    display:flex; flex-direction:column; gap:0; position:fixed; inset:64px 0 auto; z-index:99;
    background:rgba(255,255,255,.97); backdrop-filter:blur(14px); padding:1rem clamp(1.25rem,4vw,2.5rem) 1.6rem;
    box-shadow:0 20px 40px -20px rgba(0,0,0,.3); border-top:1px solid var(--line);
  }
  .main-nav.open a{ color:var(--text) !important; padding:1rem 0; border-bottom:1px solid var(--line); font-size:1.1rem; }
  .main-nav.open a::after{ display:none; }
  .steps{ grid-template-columns:1fr; }
  .benefit-grid{ grid-template-columns:1fr 1fr; }
  .stat-grid{ grid-template-columns:1fr 1fr; }
  .timeline{ grid-template-columns:1fr 1fr; }
  .team{ grid-template-columns:1fr 1fr; }
  .footer-inner{ grid-template-columns:1fr; gap:2rem; }
  .footer-nav{ grid-template-columns:1fr 1fr; }
  .value-op{ width:100%; text-align:center; }
  .hero-byline{ display:none; }
}
@media (max-width:440px){
  .benefit-grid,.stat-grid,.team,.timeline{ grid-template-columns:1fr; }
  .hero-trust{ gap:1.1rem; }
  .chips li{ font-size:.8rem; }
}

/* ----------------------------- REDUCED MOTION --------------------------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  .marquee-track{ animation:none; }
  .vc-curve,.vc-improve,.vc-deter{ stroke-dashoffset:0 !important; }
  .vc-dot{ opacity:1 !important; }
  .bar-fill{ width:calc(var(--v) * 1%) !important; }
  .scroll-cue span{ animation:none; }
}
