/* ══ Polices SERVIES PAR CE SERVEUR ═══════════════════════════════
   L'`@import` vers fonts.googleapis.com a été retiré. Il ne posait pas de
   cookie, mais il envoyait l'ADRESSE IP de chaque visiteur à Google à chaque
   chargement de page — difficile à tenir sous un bandeau qui promet que rien
   ne part. Le site n'appelle désormais AUCUN domaine tiers tant que la mesure
   d'audience n'est pas acceptée.
   ⚠️ Seuls les sous-ensembles `latin` et `latin-ext` sont embarqués (274 Ko,
   14 fichiers) : les alphabets cyrillique, grec et vietnamien pesaient sans
   servir. Si le site est un jour traduit dans une langue qui en a besoin,
   c'est ici qu'il faudra les rajouter.
   ⚠️ `font-display: swap` est conservé tel que Google le fournissait : sans
   lui, le texte reste invisible le temps du téléchargement. */
@font-face{
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/DMMono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/DMMono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/DMMono-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/DMMono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/PlusJakartaSans-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--ink:#f2f1ed;--muted:#999b98;--bg:#0c0d0f;--panel:#151719;--line:rgba(242,241,237,.14);--acid:#20c7b5;--aqua:#61e2c1;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Plus Jakarta Sans',Arial,sans-serif;overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");z-index:10}.section-wrap{width:min(calc(100% - 64px),var(--max));margin:auto}.site-header{height:82px;width:min(calc(100% - 64px),var(--max));margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.brand-mark{font-size:29px;line-height:1;font-weight:800;letter-spacing:-.12em}.brand-dot,.accent-dot{color:var(--acid)}.brand-name{font:500 12px 'DM Mono',monospace;color:var(--muted);letter-spacing:.03em}.desktop-nav{display:flex;gap:35px;margin-left:100px}.desktop-nav a,.site-footer a{color:var(--muted);text-decoration:none;font-size:12px;transition:color .2s}.desktop-nav a:hover,.site-footer a:hover{color:var(--ink)}.header-cta{font:500 11px 'DM Mono',monospace;color:var(--ink);text-decoration:none;border:1px solid var(--line);padding:11px 15px;border-radius:99px}.header-cta span,.button span{color:var(--acid);margin-left:8px}.hero{min-height:650px;display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:35px;padding:65px 0 85px}.eyebrow{font:500 10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin:0 0 24px}.status-dot{display:inline-block;width:7px;height:7px;background:var(--acid);border-radius:50%;margin-right:9px;box-shadow:0 0 14px var(--acid)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(3.6rem,7.7vw,6.8rem);line-height:.92;letter-spacing:-.085em;margin-bottom:30px;font-weight:700}h1 em,h2 em{font-style:normal;color:var(--muted)}.hero-lead{max-width:450px;color:var(--muted);font-size:16px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:38px}.button{display:inline-flex;align-items:center;text-decoration:none;font:600 11px 'DM Mono',monospace;padding:15px 18px;border-radius:3px}.button-primary{background:var(--acid);color:#111}.button-primary span{color:#111}.button-light{background:var(--ink);color:#111}.text-link{font:500 11px 'DM Mono',monospace;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:5px}.text-link span{color:var(--acid);margin-left:7px}.hero-visual{height:430px;position:relative;display:grid;place-items:center}.c-mark{position:relative;z-index:2;width:220px;height:256px;color:var(--ink);overflow:visible;filter:drop-shadow(0 0 35px rgba(32,199,181,.13))}.hero-c-letter{fill:currentColor}.hero-dot{fill:var(--acid);filter:drop-shadow(0 0 12px rgba(32,199,181,.28))}.orbital{position:absolute;border:1px solid rgba(32,199,181,.28);border-radius:50%;transform:rotate(-32deg)}.orbital-one{width:360px;height:180px}.orbital-two{width:300px;height:360px;transform:rotate(46deg);border-color:rgba(97,226,193,.23)}.float-card{position:absolute;background:rgba(21,23,25,.94);border:1px solid var(--line);padding:13px 15px;display:flex;align-items:center;gap:10px;min-width:185px;box-shadow:0 15px 40px #0006}.float-card b{font-size:10px;display:block;font-weight:600}.float-card small{display:block;color:var(--muted);font:9px 'DM Mono',monospace;margin-top:4px}.float-top{top:43px;right:4px}.float-bottom{bottom:47px;left:2px}.mini-dot{width:7px;height:7px;background:var(--acid);border-radius:50%}.check{color:var(--acid);margin-left:auto}.arrow{color:var(--aqua);margin-left:auto}.pulse-line{width:20px;height:20px;border:1px solid var(--aqua);border-radius:50%;position:relative}.pulse-line:after{content:'';position:absolute;inset:5px;background:var(--aqua);border-radius:50%}.signal-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.signal-inner{height:66px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font:10px 'DM Mono',monospace;letter-spacing:.13em}.signal-inner i{height:1px;flex:1;background:var(--line);margin:0 25px}.capabilities-section{padding:145px 0}.section-intro{max-width:560px;margin-bottom:65px}.section-intro h2,.open-copy h2{font-size:clamp(2.7rem,5vw,4.7rem);line-height:.98;letter-spacing:-.075em;margin-bottom:25px}.section-intro>p:last-child,.open-copy>p:last-of-type{color:var(--muted);line-height:1.7;max-width:450px;font-size:14px}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.capability-card{background:var(--bg);min-height:280px;padding:28px 25px;position:relative;transition:background .25s}.capability-card:hover{background:var(--panel)}.capability-card.featured{background:linear-gradient(140deg,#1a201b,var(--bg))}.card-index{font:10px 'DM Mono',monospace;color:var(--muted)}.card-icon{font-size:28px;color:var(--acid);margin:35px 0 22px}.capability-card h3{font-size:17px;letter-spacing:-.03em;margin-bottom:12px}.capability-card p{font-size:12px;color:var(--muted);line-height:1.65;max-width:290px}.card-tag{position:absolute;bottom:25px;color:var(--aqua);font:9px 'DM Mono',monospace}.how-section{background:#141618;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:130px 0}.how-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.steps{border-top:1px solid var(--line)}.step{display:grid;grid-template-columns:45px 1fr;column-gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.step span{font:10px 'DM Mono',monospace;color:var(--acid)}.step h3{font-size:18px;margin:0 0 10px}.step p{grid-column:2;color:var(--muted);font-size:13px;line-height:1.6;margin:0}.open-section{padding:145px 0;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.open-copy .button{margin-top:24px}.open-code{border:1px solid var(--line);background:#101214;transform:rotate(2deg);box-shadow:20px 25px 70px #0008}.code-top{height:38px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 15px;gap:6px}.code-top>span{width:7px;height:7px;border-radius:50%;background:#454a4b}.code-top>span:first-child{background:#f08b69}.code-top small{font:9px 'DM Mono',monospace;color:var(--muted);margin-left:auto}.open-code pre{padding:28px;margin:0;overflow:auto;font:13px/2 'DM Mono',monospace;color:#c9ced0}.open-code code b{color:var(--aqua);font-weight:400}.open-code code em{color:var(--acid);font-style:normal}.open-code code span{color:#e9a7d3}.open-code code i{color:#f3b36b;font-style:normal}.site-footer{border-top:1px solid var(--line);min-height:110px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}.site-footer p{color:var(--muted);font-size:11px;margin:0;text-align:center}.site-footer>div{display:flex;justify-content:flex-end;gap:20px;align-items:center}.site-footer>div span{color:#555;font:10px 'DM Mono',monospace}
@media(max-width:768px){.section-wrap,.site-header{width:calc(100% - 40px)}.site-header{height:72px}.desktop-nav{display:none}.header-cta{padding:10px 11px;font-size:10px}.hero{display:block;padding:70px 0 45px;min-height:0}.hero-lead{font-size:14px}.hero-visual{height:330px;margin-top:42px}.c-mark{width:180px;height:auto}.orbital-one{width:280px;height:140px}.orbital-two{width:230px;height:280px}.float-top{top:16px;right:0}.float-bottom{bottom:13px;left:0}.signal-inner{height:auto;min-height:60px;gap:12px;justify-content:flex-start;flex-wrap:wrap;padding:14px 0}.signal-inner i{flex:0 0 15px;margin:0}.signal-inner span{font-size:8px}.capabilities-section,.open-section{padding:90px 0}.capability-grid{grid-template-columns:1fr}.capability-card{min-height:245px}.how-section{padding:90px 0}.how-inner,.open-section{display:block}.steps{margin-top:55px}.open-code{margin-top:55px}.site-footer{display:flex;flex-wrap:wrap;gap:25px;padding:30px 0}.site-footer p{text-align:left;width:100%;order:3}.site-footer>div{margin-left:auto}.site-footer>div span{display:none}}
@media(max-width:420px){.section-wrap,.site-header{width:calc(100% - 32px)}h1{font-size:3.4rem}.hero-actions{gap:18px}.text-link{font-size:10px}.float-card{min-width:165px;padding:11px}.float-card b{font-size:9px}.hero-visual{height:290px}.c-mark{width:150px;height:auto}.section-intro h2,.open-copy h2{font-size:2.7rem}.site-footer>div{gap:11px}}

/* Official animated brandmark */
.brand-logo{display:block;width:142px;height:auto;max-width:100%}.brand{min-height:44px}
@media(max-width:420px){.brand-logo{width:124px}}

/* Features page */
.desktop-nav a.active{color:var(--ink)}.features-hero{padding:110px 0 92px;max-width:850px;margin-left:max(32px,calc((100% - var(--max))/2))}.features-hero h1{font-size:clamp(3.5rem,8vw,7.5rem);line-height:.94;letter-spacing:-.085em;margin:0 0 34px}.features-hero h1 em,.feature-close h2 em{color:var(--acid);font-style:normal}.features-hero .hero-lead{max-width:610px}.feature-list{border-top:1px solid var(--line)}.feature-row{display:grid;grid-template-columns:55px 64px minmax(0,700px);gap:22px;padding:56px 0;border-bottom:1px solid var(--line)}.feature-number,.feature-kicker{font:500 11px 'DM Mono',monospace;color:var(--muted);letter-spacing:.1em}.feature-icon{font-size:28px;color:var(--acid);line-height:1}.feature-kicker{text-transform:uppercase;margin:0 0 14px}.feature-row h2{font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.06em;line-height:1;margin:0 0 18px}.feature-row p:not(.feature-kicker){color:var(--muted);line-height:1.8;font-size:15px;margin:0}.feature-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.feature-pills span{font:500 10px 'DM Mono',monospace;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:8px 11px}.feature-close{display:grid;grid-template-columns:1fr .8fr;gap:40px;align-items:center;padding:130px 0}.feature-close h2{font-size:clamp(3rem,6vw,6rem);line-height:.95;letter-spacing:-.08em;margin:0 0 25px}.feature-close p:not(.eyebrow){max-width:490px;color:var(--muted);line-height:1.8;margin:0 0 28px}.close-mark{display:flex;align-items:center;justify-content:center;min-height:220px;border:1px solid var(--line);background:radial-gradient(circle at center,rgba(32,199,181,.12),transparent 58%)}.close-mark img{width:min(80%,280px)}
@media(max-width:768px){.features-hero{padding:76px 0 64px}.feature-row{grid-template-columns:36px 38px 1fr;gap:12px;padding:40px 0}.feature-icon{font-size:22px}.feature-row p:not(.feature-kicker){font-size:14px;line-height:1.7}.feature-close{display:block;padding:90px 0}.close-mark{margin-top:55px}.close-mark img{width:240px}}
@media(max-width:480px){.features-hero h1{font-size:3.5rem}.feature-row{grid-template-columns:28px 1fr}.feature-icon{grid-column:2;grid-row:1}.feature-row>div:last-child{grid-column:2}.feature-number{grid-column:1;grid-row:1 / span 2}.feature-close h2{font-size:3.3rem}}

/* Everywhere / VPS / PWA */
.everywhere-section{display:grid;grid-template-columns:1fr .9fr;gap:80px;align-items:center;padding:125px 0;border-top:1px solid var(--line)}
.everywhere-copy h2{font-size:clamp(3rem,6vw,6rem);line-height:.95;letter-spacing:-.08em;margin:0 0 28px}.everywhere-copy h2 em{color:var(--acid);font-style:normal}.everywhere-copy p:not(.eyebrow){max-width:570px;color:var(--muted);line-height:1.8;font-size:15px;margin:0 0 18px}.device-stack{position:relative;min-height:360px;padding:45px 0 0 40px}.server-card{border:1px solid rgba(97,226,193,.35);background:linear-gradient(145deg,rgba(97,226,193,.14),rgba(21,23,25,.8));padding:28px;min-height:170px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.device-label{display:block;color:var(--aqua);font:500 10px 'DM Mono',monospace;letter-spacing:.12em;margin-bottom:28px}.server-card strong{display:block;font-size:28px;letter-spacing:-.06em}.server-card small{display:block;color:var(--muted);margin-top:10px}.phone-card{position:absolute;right:0;bottom:0;width:190px;min-height:255px;border:6px solid #272a2c;border-radius:27px;background:#101214;padding:28px 16px 16px;box-shadow:0 25px 65px rgba(0,0,0,.45)}.phone-notch{position:absolute;top:7px;left:50%;width:58px;height:5px;transform:translateX(-50%);border-radius:99px;background:#303437}.phone-card .device-label{font-size:8px;margin-bottom:25px}.phone-code{display:grid;gap:12px;font:10px 'DM Mono',monospace;color:var(--muted)}.phone-code b{color:var(--acid);font-size:30px}.phone-code span{white-space:nowrap}
@media(max-width:768px){.everywhere-section{display:block;padding:90px 0}.device-stack{margin-top:55px;min-height:340px;padding-left:0}.phone-card{right:4%;}.server-card{margin-right:40px}}
@media(max-width:480px){.device-stack{min-height:310px}.server-card{padding:22px;min-height:150px}.server-card strong{font-size:22px}.phone-card{width:170px;min-height:235px}}

/* Intelligence providers */
.intelligence-section{padding:125px 0;border-top:1px solid var(--line)}
.intelligence-section .section-intro{max-width:650px;margin-bottom:54px}.intelligence-section .section-intro>p:last-child{max-width:590px;color:var(--muted);line-height:1.8;font-size:15px}.intelligence-section h2{font-size:clamp(3rem,6vw,6rem);line-height:.95;letter-spacing:-.08em;margin:0 0 28px}.intelligence-section h2 em{color:var(--acid);font-style:normal}.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.provider-card{min-height:355px;padding:34px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(21,23,25,.7));display:flex;flex-direction:column}.provider-local{border-color:rgba(32,199,181,.28)}.provider-router{border-color:rgba(97,226,193,.35);background:linear-gradient(145deg,rgba(97,226,193,.09),rgba(21,23,25,.78))}.provider-kicker{font:500 10px 'DM Mono',monospace;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.provider-symbol{color:var(--acid);font-size:42px;line-height:1;margin:30px 0 20px}.provider-card h3{font-size:clamp(1.7rem,3vw,2.6rem);letter-spacing:-.06em;line-height:1;margin:0 0 18px}.provider-card p{color:var(--muted);font-size:14px;line-height:1.75;margin:0;max-width:520px}.provider-card .feature-pills{margin-top:auto}.provider-brand{display:flex;align-items:center;gap:12px;margin:27px 0 21px;font-size:18px;letter-spacing:-.03em}.provider-brand img{width:34px;height:34px;object-fit:contain;border-radius:8px;background:#fff;padding:5px}.provider-inline{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.local-badge,.router-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:99px;padding:8px 11px;color:var(--muted);font:500 10px 'DM Mono',monospace}.local-badge:first-letter{color:var(--acid)}.router-badge img{width:18px;height:18px;object-fit:contain;border-radius:4px;background:#fff;padding:2px}.feature-provider-row .feature-pills{margin-top:18px}
@media(max-width:768px){.intelligence-section{padding:90px 0}.provider-grid{grid-template-columns:1fr}.provider-card{min-height:320px;padding:28px}.provider-card .feature-pills{margin-top:28px}.feature-provider-row .provider-inline{margin-top:20px}}
@media(max-width:480px){.provider-card{padding:24px}.provider-brand{font-size:16px}}

/* Marque OpenRouter actuelle : l’asset est identique à celui utilisé dans l’application. */
.provider-brand img,.router-badge img{background:transparent;padding:0;border-radius:0;object-fit:contain}
.provider-brand img{width:36px;height:36px}.router-badge img{width:20px;height:20px}


/* Mobile navigation */
.menu-toggle{display:none;position:relative;z-index:31;align-items:center;justify-content:center;flex-direction:column;gap:6px;width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}
.menu-toggle span{display:block;width:18px;height:1px;background:currentColor;transition:transform .25s ease,opacity .2s ease}
.mobile-menu{display:none}
@media(max-width:768px){
  .site-header{position:relative;z-index:30}
  .desktop-cta{display:none}
  .menu-toggle{display:flex}
  .mobile-menu{position:fixed;inset:72px 0 0;z-index:20;display:flex;flex-direction:column;gap:0;padding:28px 20px 32px;background:rgba(12,13,15,.98);border-top:1px solid var(--line);visibility:hidden;opacity:0;transform:translateY(-12px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility .25s ease}
  .mobile-menu a:not(.header-cta){display:flex;align-items:center;min-height:52px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:1.15rem;letter-spacing:-.03em}
  .mobile-menu a:not(.header-cta):first-child{border-top:1px solid var(--line)}
  .mobile-menu a.active{color:var(--acid)}
  .mobile-menu .header-cta{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:28px;padding:12px 16px;font-size:11px}
  .site-header.menu-open .mobile-menu{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto}
  .site-header.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .site-header.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  body.menu-is-open{overflow:hidden}
}
@media(min-width:769px){.mobile-menu{display:none!important}}
@media(prefers-reduced-motion:reduce){.mobile-menu,.menu-toggle span{transition:none}}

/* ══ Bandeau de consentement ═══════════════════════════════════════
   Posé en bas, sur toute la largeur : il informe, il ne prend pas l'écran en
   otage. Pas de voile plein écran — le site n'a aucun cookie à faire accepter
   pour fonctionner, tenir la page en hostage serait disproportionné.
   ⚠️ « Refuser » et « Accepter » ont le MÊME gabarit et le même nombre de
   clics. Seule la couleur les distingue ; un refus qu'il faut chercher ne vaut
   pas refus. */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:20px max(24px,calc((100% - var(--max))/2));background:rgba(12,13,15,.97);border-top:1px solid var(--line);box-shadow:0 -20px 60px rgba(0,0,0,.45);opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease}
.cookie-banner.is-visible{opacity:1;transform:translateY(0)}
.cookie-copy{flex:1 1 420px;min-width:0}
.cookie-copy p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.7}
.cookie-copy p:first-child{color:var(--ink);font-size:13px;margin-bottom:5px}
.cookie-copy b{color:var(--ink);font-weight:600}
.cookie-actions{display:flex;gap:11px;flex:0 0 auto;margin-left:auto}
/* 44 px de haut : le bandeau se touche au doigt aussi. */
.cookie-btn{min-height:44px;padding:12px 22px;border-radius:3px;border:1px solid var(--line);background:transparent;color:var(--ink);font:600 11px 'DM Mono',monospace;cursor:pointer;transition:background .2s,border-color .2s}
.cookie-btn:hover{background:var(--panel);border-color:var(--ink)}
.cookie-accept{background:var(--acid);border-color:var(--acid);color:#111}
.cookie-accept:hover{background:var(--aqua);border-color:var(--aqua)}
/* Le lien « Cookies » du pied de page rouvre le choix : un consentement qu'on
   ne peut pas reprendre n'en est pas un. C'est un `button` et non un `a` — il
   ne mène nulle part — mais il doit se lire comme ses voisins. */
.footer-link{padding:0;border:0;background:none;color:var(--muted);font-family:inherit;font-size:12px;cursor:pointer;transition:color .2s}
.footer-link:hover{color:var(--ink)}
@media(max-width:768px){
  .cookie-banner{gap:16px;padding:18px 20px calc(18px + env(safe-area-inset-bottom))}
  .cookie-copy{flex:1 1 100%}
  .cookie-actions{margin-left:0;width:100%}
  .cookie-btn{flex:1}
}
@media(prefers-reduced-motion:reduce){.cookie-banner{transition:none}}

/* ⚠️ Les libellés français sont plus longs que les anglais : « Comment ça
   marche » et « Suivre le projet » passaient à la ligne entre 769 px (la
   bascule mobile) et ~1000 px, soit toute la plage des petits portables. On
   resserre l'écart au lieu de raccourcir les mots, et on interdit le retour à
   la ligne — un menu sur deux rangées n'a plus l'air d'un menu. */
.desktop-nav{gap:clamp(16px,2.4vw,35px);margin-left:clamp(20px,5vw,100px)}
.desktop-nav a,.header-cta{white-space:nowrap}
