/* ==========================================================================
   Arcadi — feuille de style unique, partagée par les 4 pages.
   Aucune étape de build : le fichier est servi tel quel par Cloudflare Pages.
   ========================================================================== */

:root{
  /* Surfaces */
  --bg:#FFFFFF;
  --bg-soft:#F7F8F7;
  --bg-tint:#EDF2F0;

  /* Vert de marque — repris du logo (#023530) */
  --brand:#023530;
  --brand-700:#04443B;
  --brand-500:#0B6355;
  --brand-300:#8FB0A8;
  --brand-100:#D6E3DF;

  /* Encre */
  --ink:#0B1614;
  --ink-2:#3B4744;
  --ink-3:#6E7C78;
  --ink-inv:#F3F6F4;
  --ink-inv-2:#A9C0BA;

  /* Traits */
  --line:#E5E8E6;
  --line-2:#D2D8D5;
  --line-inv:rgba(255,255,255,.14);

  --r:12px;
  --r-sm:8px;
  --r-lg:20px;

  --max:1120px;
  --pad:24px;

  --shadow-sm:0 1px 2px rgba(11,22,20,.04);
  --shadow:0 1px 3px rgba(11,22,20,.05), 0 12px 32px -12px rgba(11,22,20,.10);
}

*,*::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;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16.5px;
  line-height:1.62;
  font-feature-settings:'cv05' 1,'ss01' 1;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

h1,h2,h3,h4{
  font-family:'Geist','Inter',-apple-system,sans-serif;
  color:var(--ink);
  font-weight:600;
  letter-spacing:-0.032em;
  line-height:1.06;
  margin:0 0 .48em;
  text-wrap:balance;
}
h1{font-size:clamp(37px,4.6vw,55px)}
h2{font-size:clamp(28px,3.5vw,42px)}
h3{font-size:clamp(19px,1.5vw,21px); letter-spacing:-0.022em; line-height:1.3}
h4{font-size:16.5px; letter-spacing:-0.015em; line-height:1.4}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
a{color:inherit}
strong{font-weight:600}
img,svg{max-width:100%}
ul,ol{margin:0 0 1em; padding-left:1.15em}
li{margin-bottom:.4em}
hr{border:0; border-top:1px solid var(--line); margin:0}

::selection{background:var(--brand); color:#fff}
:focus-visible{outline:2px solid var(--brand-500); outline-offset:3px; border-radius:4px}

/* --------------------------------------------------------------- Utilities */
.wrap{width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--pad)}
.narrow{max-width:760px}
.lede{font-size:clamp(17px,1.5vw,19px); color:var(--ink-3); line-height:1.6}
.muted{color:var(--ink-3)}
.small{font-size:14.5px}
.center{text-align:center}
.mono{font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace}

.eyebrow{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11.5px; font-weight:500;
  letter-spacing:.11em; text-transform:uppercase;
  color:var(--brand-500);
  display:flex; align-items:center; gap:9px;
  margin:0 0 18px;
}
.eyebrow::before{content:""; width:18px; height:1px; background:currentColor; flex:none; opacity:.6}
.eyebrow--inv{color:var(--brand-300)}

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--brand); color:#fff; padding:12px 18px; border-radius:0 0 8px 0;
  font-size:14px; text-decoration:none;
}
.skip:focus{left:0}

/* ---------------------------------------------------------------- Sections */
.section{padding:clamp(72px,8.5vw,116px) 0}
.section--tight{padding:clamp(56px,6vw,80px) 0}
.section--soft{background:var(--bg-soft); border-block:1px solid var(--line)}
.section--dark{background:var(--brand); color:var(--ink-inv)}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4{color:#fff}
.section--dark .lede,.section--dark .muted{color:var(--ink-inv-2)}

.section-head{max-width:660px; margin-bottom:clamp(40px,4.5vw,60px)}
.section-head.center{margin-inline:auto}
.section-head h2{margin-bottom:.4em}

/* ----------------------------------------------------------------- Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Inter',sans-serif; font-size:15px; font-weight:500;
  letter-spacing:-.005em;
  padding:12px 20px; border-radius:var(--r-sm);
  border:1px solid transparent; text-decoration:none; cursor:pointer;
  transition:background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn svg{width:15px; height:15px; flex:none}
.btn-primary{background:var(--brand); color:#fff}
.btn-primary:hover{background:var(--brand-700)}
.btn-secondary{background:#fff; color:var(--ink); border-color:var(--line-2)}
.btn-secondary:hover{border-color:var(--brand-300); background:var(--bg-soft)}
.btn-light{background:#fff; color:var(--brand)}
.btn-light:hover{background:var(--brand-100)}
.btn-ghost-inv{background:transparent; color:#fff; border-color:var(--line-inv)}
.btn-ghost-inv:hover{border-color:rgba(255,255,255,.4); background:rgba(255,255,255,.06)}
.btn-lg{padding:14px 24px; font-size:15.5px}
.btn-row{display:flex; gap:12px; flex-wrap:wrap}

.arrow-link{
  display:inline-flex; align-items:center; gap:7px;
  font-size:15px; font-weight:500; color:var(--brand-500);
  text-decoration:none; border-bottom:1px solid transparent; padding-bottom:1px;
}
.arrow-link:hover{border-bottom-color:currentColor}
.arrow-link svg{width:14px; height:14px; transition:transform .16s ease}
.arrow-link:hover svg{transform:translateX(3px)}

/* ------------------------------------------------------------------ Header */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{
  max-width:var(--max); margin-inline:auto; padding:0 var(--pad);
  height:64px; display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{display:inline-flex; align-items:center; gap:9px; text-decoration:none; color:var(--brand)}
.brand .mark{width:26px; height:26px; color:var(--brand); flex:none}
.brand__word{
  font-family:'Geist','Inter',sans-serif; font-weight:600; font-size:19px;
  letter-spacing:-.03em; color:var(--ink);
}
.brand__word i{font-style:normal; color:var(--brand-500); font-weight:500}

.nav{display:flex; align-items:center; gap:4px}
.nav a{
  text-decoration:none; font-size:14.5px; font-weight:450; color:var(--ink-2);
  padding:8px 12px; border-radius:var(--r-sm);
  transition:color .15s ease, background .15s ease;
}
.nav a:hover{color:var(--ink); background:var(--bg-soft)}
.nav a[aria-current="page"]{color:var(--ink); font-weight:500}
.header-actions{display:flex; align-items:center; gap:10px}

.nav-toggle{
  display:none; width:38px; height:38px; align-items:center; justify-content:center;
  background:none; border:1px solid var(--line-2); border-radius:var(--r-sm); cursor:pointer;
}
.nav-toggle span{display:block; width:16px; height:1.5px; background:var(--ink); position:relative; transition:background .15s}
.nav-toggle span::before,.nav-toggle span::after{
  content:""; position:absolute; left:0; width:16px; height:1.5px; background:var(--ink);
  transition:transform .18s ease, top .18s ease;
}
.nav-toggle span::before{top:-5px}
.nav-toggle span::after{top:5px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{top:0; transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{top:0; transform:rotate(-45deg)}

.mobile-nav{display:none; border-top:1px solid var(--line); background:#fff; padding:12px var(--pad) 20px}
.mobile-nav.is-open{display:block}
.mobile-nav a:not(.btn){display:block; padding:11px 0; text-decoration:none; font-size:16px; color:var(--ink); border-bottom:1px solid var(--line)}
.mobile-nav .btn{display:flex; width:100%; margin-top:16px}

/* -------------------------------------------------------------------- Hero */
.hero{padding:clamp(56px,7vw,96px) 0 clamp(56px,6vw,84px)}
.hero__grid{display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:clamp(40px,5vw,68px); align-items:center}
.hero h1{margin-bottom:.32em}
.hero__sub{font-size:clamp(17px,1.6vw,19.5px); color:var(--ink-3); max-width:50ch; margin-bottom:30px; line-height:1.58}
.hero__note{margin-top:22px; font-size:13.5px; color:var(--ink-3)}

/* Bandeau de faits (sous le hero) */
.factbar{border-block:1px solid var(--line); background:var(--bg-soft)}
.factbar ul{
  display:flex; flex-wrap:wrap; gap:10px 0; list-style:none; margin:0; padding:18px 0;
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--ink-3);
}
.factbar li{display:flex; align-items:center; margin:0; padding-inline:clamp(14px,2.4vw,28px)}
.factbar li:first-child{padding-left:0}
.factbar li + li{border-left:1px solid var(--line-2)}

/* ------------------------------------------------------- Carte « pipeline » */
.pipe{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow); padding:20px; display:grid; gap:14px;
}
.pipe__sources{display:flex; gap:8px; flex-wrap:wrap}
.src{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-3); background:var(--bg-soft); border:1px solid var(--line);
  border-radius:100px; padding:5px 11px;
}
.src svg{width:12px; height:12px; color:var(--brand-500)}
.src--on{color:var(--brand); border-color:var(--brand-100); background:var(--bg-tint)}

.bubble{
  display:flex; align-items:center; gap:12px;
  background:var(--bg-tint); border:1px solid var(--brand-100);
  border-radius:14px 14px 14px 4px; padding:12px 14px; width:fit-content; max-width:100%;
}
.wave{display:flex; align-items:center; gap:3px; height:22px; flex:none}
.wave span{width:2.5px; border-radius:2px; background:var(--brand-500); display:block; animation:wave 1.5s ease-in-out infinite}
.wave span:nth-child(1){height:7px;  animation-delay:0s}
.wave span:nth-child(2){height:14px; animation-delay:.08s}
.wave span:nth-child(3){height:20px; animation-delay:.16s}
.wave span:nth-child(4){height:11px; animation-delay:.24s}
.wave span:nth-child(5){height:17px; animation-delay:.32s}
.wave span:nth-child(6){height:8px;  animation-delay:.40s}
.wave span:nth-child(7){height:13px; animation-delay:.48s}
.wave span:nth-child(8){height:19px; animation-delay:.56s}
@keyframes wave{0%,100%{transform:scaleY(.55); opacity:.5} 50%{transform:scaleY(1); opacity:1}}
.bubble__meta{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-2); letter-spacing:.02em}

.pipe__arrow{display:flex; align-items:center; gap:10px; color:var(--ink-3); font-size:12px; padding-left:4px}
.pipe__arrow::before{content:""; width:1px; height:22px; background:var(--line-2); margin-left:8px}
.pipe__arrow span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase}

.insight{border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.insight__top{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 14px; background:var(--brand); color:#fff;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.07em; text-transform:uppercase;
}
.insight__body{padding:14px; display:grid; gap:11px; background:#fff}
.irow{display:grid; grid-template-columns:112px 1fr; gap:12px; align-items:center; font-size:13.5px}
.irow dt{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-3); margin:0;
}
.irow dd{margin:0; color:var(--ink); font-weight:450}
.dots{display:inline-flex; gap:4px; align-items:center; vertical-align:middle}
.dots i{width:7px; height:7px; border-radius:50%; background:var(--line-2); display:block}
.dots i.on{background:var(--brand-500)}
.chips{display:flex; flex-wrap:wrap; gap:5px}
.chip{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px;
  border:1px solid var(--line); background:var(--bg-soft); color:var(--ink-2);
  border-radius:5px; padding:3px 7px; white-space:nowrap;
}
.chip--on{background:var(--bg-tint); border-color:var(--brand-100); color:var(--brand)}
.badge{
  display:inline-flex; align-items:center; gap:5px;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.04em;
  padding:3px 8px; border-radius:5px; background:var(--bg-tint); color:var(--brand); border:1px solid var(--brand-100);
}
.badge--off{background:var(--bg-soft); color:var(--ink-3); border-color:var(--line)}
.pipe__foot{
  font-size:11.5px; color:var(--ink-3); border-top:1px dashed var(--line-2);
  padding-top:12px; line-height:1.5;
}

/* ------------------------------------------------------------------- Grids */
.grid{display:grid; gap:clamp(20px,2.4vw,28px)}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px,5vw,72px); align-items:start}
.split--center{align-items:center}

/* ------------------------------------------------------------------- Cards */
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:clamp(22px,2.4vw,28px); box-shadow:var(--shadow-sm);
}
.card h3{margin-bottom:.5em}
.card p{color:var(--ink-3); font-size:15px; margin-bottom:0}
.card--flat{box-shadow:none; background:var(--bg-soft)}
.card--inv{background:rgba(255,255,255,.045); border-color:var(--line-inv); box-shadow:none}
.card--inv p{color:var(--ink-inv-2)}
.card__icon{
  width:34px; height:34px; border-radius:9px; background:var(--bg-tint); color:var(--brand);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.card__icon svg{width:17px; height:17px}

/* ------------------------------------------------------------------- Steps */
.steps{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:#fff}
.step{padding:clamp(24px,2.6vw,32px)}
.step + .step{border-left:1px solid var(--line)}
.step__num{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--brand-500); display:flex; align-items:center; gap:8px; margin-bottom:16px;
}
.step__num b{
  font-weight:500; width:20px; height:20px; border-radius:50%; background:var(--bg-tint);
  display:inline-flex; align-items:center; justify-content:center; font-size:10.5px; color:var(--brand);
}
.step h3{margin-bottom:.55em}
.step p{color:var(--ink-3); font-size:15px}

/* ------------------------------------------------------------- Taxonomie */
.poles{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.pole{border:1px solid var(--line); border-radius:var(--r); background:#fff; overflow:hidden}
.pole__head{padding:16px 18px; border-bottom:1px solid var(--line); background:var(--bg-soft)}
.pole__head h3{font-size:17px; margin:0 0 4px}
.pole__head .mono{font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-3)}
.pole__body{padding:16px 18px; display:flex; flex-direction:column; gap:9px}
.subcat{display:flex; align-items:baseline; gap:9px; font-size:14.5px; color:var(--ink-2)}
.subcat::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--brand-300); flex:none; transform:translateY(-2px)}

/* -------------------------------------------------------- Deux niveaux */
.level{border:1px solid var(--line); border-radius:var(--r); background:#fff; overflow:hidden; display:flex; flex-direction:column}
.level__head{padding:18px 20px; border-bottom:1px solid var(--line)}
.level__head .mono{font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-500); display:block; margin-bottom:7px}
.level__head h3{margin:0 0 6px}
.level__head p{margin:0; color:var(--ink-3); font-size:14.5px}
.level__body{padding:18px 20px; background:var(--bg-soft); flex:1; display:flex; flex-direction:column; gap:10px}
.mini{background:#fff; border:1px solid var(--line); border-radius:9px; padding:11px 13px; font-size:13.5px}
.mini__label{
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ink-3); display:block; margin-bottom:5px;
}
.mini strong{font-weight:550; letter-spacing:-.01em}
.bar{height:5px; border-radius:3px; background:var(--line); overflow:hidden; margin-top:8px}
.bar i{display:block; height:100%; background:var(--brand-500); border-radius:3px}
.trend{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-3)}
.trend.up{color:#8A5A2B}
.spark{display:flex; align-items:flex-end; gap:4px; height:46px; margin-top:9px}
.spark i{flex:1; background:var(--brand-100); border-radius:2px 2px 0 0; display:block}
.spark i.hi{background:var(--brand-500)}

/* --------------------------------------------------------------- Facts */
.facts{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 44px}
.facts li{display:flex; gap:13px; margin:0; font-size:15px; color:var(--ink-3); line-height:1.55}
.facts svg{width:18px; height:18px; flex:none; margin-top:3px; color:var(--brand-500)}
.facts strong{display:block; color:var(--ink); font-weight:550; font-size:15.5px; margin-bottom:2px; letter-spacing:-.012em}
.facts--inv li{color:var(--ink-inv-2)}
.facts--inv strong{color:#fff}
.facts--inv svg{color:var(--brand-300)}

/* --------------------------------------------------------------- Callout */
.callout{
  border:1px solid var(--line); border-left:3px solid var(--brand); border-radius:var(--r);
  background:#fff; padding:clamp(24px,2.6vw,32px); max-width:780px;
}
.callout h3{margin-bottom:.5em}
.callout p{color:var(--ink-3); margin-bottom:0}

/* ------------------------------------------------------------------ Table */
.table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--r); background:#fff}
table{border-collapse:collapse; width:100%; font-size:14.5px}
/* Les tableaux larges (grille de classification) défilent horizontalement
   sur petit écran plutôt que d'écraser leurs colonnes. */
.table-wrap--wide table{min-width:660px}
th,td{text-align:left; padding:13px 18px; border-bottom:1px solid var(--line); vertical-align:top}
th{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); font-weight:500; background:var(--bg-soft);
}
tr:last-child td{border-bottom:0}
td strong{font-weight:550; letter-spacing:-.01em}

/* ------------------------------------------------------------------ Statut */
.status{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px}
.status li{
  display:flex; gap:14px; align-items:flex-start; margin:0; padding:15px 0;
  border-bottom:1px solid var(--line); font-size:15px; color:var(--ink-3);
}
.status li:last-child{border-bottom:0}
.status .tag{
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase;
  padding:3px 8px; border-radius:5px; flex:none; margin-top:2px; min-width:88px; text-align:center;
}
.tag--ok{background:var(--bg-tint); color:var(--brand); border:1px solid var(--brand-100)}
.tag--wip{background:#FBF6EA; color:#8A5A2B; border:1px solid #EBDCBD}
.status strong{display:block; color:var(--ink); font-weight:550; margin-bottom:2px; letter-spacing:-.012em}

/* -------------------------------------------------------------- Fondateurs */
.founder{display:flex; gap:20px; align-items:flex-start}
.founder__avatar{
  width:56px; height:56px; border-radius:14px; flex:none;
  background:var(--brand); color:var(--brand-300);
  display:flex; align-items:center; justify-content:center;
  font-family:'Geist',sans-serif; font-size:20px; font-weight:600; letter-spacing:-.02em;
}
.founder h3{margin-bottom:2px}
.founder .role{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--brand-500); margin-bottom:12px;
}
.founder p{color:var(--ink-3); font-size:15px}

/* ----------------------------------------------------------------- Form */
.form{display:grid; gap:18px}
.field{display:grid; gap:7px}
.field label{font-size:13.5px; font-weight:500; color:var(--ink-2); letter-spacing:-.005em}
.field .hint{font-size:12.5px; color:var(--ink-3)}
input,textarea,select{
  font-family:inherit; font-size:15.5px; color:var(--ink); background:#fff;
  border:1px solid var(--line-2); border-radius:var(--r-sm); padding:11px 13px; width:100%;
  transition:border-color .15s ease, box-shadow .15s ease;
}
input:focus,textarea:focus,select:focus{
  outline:none; border-color:var(--brand-500); box-shadow:0 0 0 3px rgba(11,99,85,.11);
}
input::placeholder,textarea::placeholder{color:#9BA6A2}
textarea{resize:vertical; min-height:130px; line-height:1.55}
select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%236E7C78' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:12px; padding-right:34px}
.form .consent{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--ink-3); line-height:1.5}
.form .consent input{width:16px; height:16px; margin-top:2px; flex:none; accent-color:var(--brand)}

/* ------------------------------------------------------------------ CTA */
.cta-band{
  background:var(--brand); color:#fff; border-radius:var(--r-lg);
  padding:clamp(48px,6vw,76px) clamp(24px,4vw,48px); text-align:center;
  position:relative; overflow:hidden;
}
.cta-band h2{color:#fff; margin-bottom:.4em}
.cta-band p{color:var(--ink-inv-2); max-width:52ch; margin:0 auto 28px}
.cta-band .btn-row{justify-content:center}
.cta-band__mark{
  position:absolute; right:-70px; top:50%; transform:translateY(-50%);
  width:300px; height:300px; color:#fff; opacity:.055; pointer-events:none;
}

/* ------------------------------------------------------------------ Footer */
.site-footer{border-top:1px solid var(--line); padding:56px 0 40px; background:var(--bg-soft)}
.footer__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px}
.footer__about{max-width:34ch; color:var(--ink-3); font-size:14px; margin-top:14px}
.footer h4{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink-3); font-weight:500; margin-bottom:14px;
}
.footer__links{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px}
.footer__links a{text-decoration:none; font-size:14.5px; color:var(--ink-2)}
.footer__links a:hover{color:var(--brand)}
.footer__bottom{
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
  margin-top:44px; padding-top:22px; border-top:1px solid var(--line);
  font-size:13px; color:var(--ink-3);
}

/* ----------------------------------------------------------------- Reveal */
[data-reveal]{opacity:0; transform:translateY(14px); transition:opacity .55s cubic-bezier(.2,.6,.2,1), transform .55s cubic-bezier(.2,.6,.2,1)}
[data-reveal].is-in{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1; transform:none; transition:none}
  .wave span{animation:none}
}

/* ------------------------------------------------------------- Responsive */
@media (max-width:960px){
  .hero__grid{grid-template-columns:1fr; gap:40px}
  .split{grid-template-columns:1fr; gap:32px}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:1fr}
  .step + .step{border-left:0; border-top:1px solid var(--line)}
  .poles{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr 1fr; gap:32px}
  .footer__brand{grid-column:1/-1}
}
@media (max-width:860px){
  .nav,.header-actions .btn{display:none}
  .nav-toggle{display:inline-flex}
  .facts{grid-template-columns:1fr; gap:18px}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
}
@media (max-width:560px){
  :root{--pad:20px}
  body{font-size:16px}
  .btn-row .btn{flex:1 1 100%}
  .grid-4{grid-template-columns:1fr}
  .factbar ul{flex-direction:column; gap:8px; align-items:flex-start}
  .factbar li{padding-inline:0}
  .factbar li + li{border-left:0}
  .irow{grid-template-columns:1fr; gap:4px}
  .founder{flex-direction:column; gap:14px}
  .footer__grid{grid-template-columns:1fr}
  .cta-band__mark{display:none}
}
