/* ==========================================================================
   Anton Anton — v3
   Nuit profonde, orbites, dégradé signature, typographie éditoriale.
   Ordre : tokens → base → typographie → composants → sections → pages → responsive
   ========================================================================== */

@font-face{font-family:"Archivo";src:url(/fonts/archivo.woff2) format("woff2-variations");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Montserrat";src:url(/fonts/montserrat.woff2) format("woff2-variations");font-weight:100 900;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --bg:#07051a; --bg-2:#0c0923; --card:#110c2b; --card-2:#17113a;
  --ink:#f4f2ff; --ink-2:#d9d5f2; --muted:#a7a2c8; --dim:#6f6a92;
  --line:rgba(255,255,255,.1); --line-2:rgba(255,255,255,.2);
  --sun:#f6c35b; --rose:#e8577a; --orchid:#a94fc4; --iris:#6d5ff0; --lagoon:#5fd3ee;
  --grad:linear-gradient(90deg,var(--sun),var(--rose) 30%,var(--orchid) 55%,var(--iris) 78%,var(--lagoon));
  --grad-soft:linear-gradient(135deg,rgba(169,79,196,.18),rgba(95,211,238,.06));

  --display:"Archivo","Arial Black",Arial,sans-serif;
  --body:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;

  /* Espacements (base 8 px) */
  --s1:.5rem; --s2:.75rem; --s3:1rem; --s4:1.5rem; --s5:2rem; --s6:3rem; --s7:4rem; --s8:6rem; --s9:8rem;
  --gutter:clamp(1.25rem,4.5vw,4.5rem);
  --wrap:min(1360px,100% - 2 * var(--gutter));
  --section:clamp(7rem,14vw,13rem);
  --section-tight:clamp(4.5rem,8vw,7.5rem);

  /* Typographie */
  --t-hero:clamp(3rem,10vw,10.5rem);
  --t-h1:clamp(2.6rem,7.4vw,7.5rem);
  --t-h2:clamp(2.3rem,5.6vw,5.6rem);
  --t-h3:clamp(1.3rem,2.1vw,1.9rem);
  --t-serif:clamp(1.9rem,3.8vw,3.6rem);
  --t-lead:clamp(1.12rem,1.45vw,1.35rem);
  --t-body:1.0625rem;
  --t-small:.9375rem;
  --t-label:.75rem;
  --measure:64ch; --measure-lead:50ch;

  --r-lg:32px; --r-md:22px; --r-sm:14px; --pill:999px;
  --btn-h:3.5rem;
  --ease:cubic-bezier(.2,.7,.1,1); --ease-io:cubic-bezier(.7,0,.2,1);
  --head-h:88px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg);scroll-padding-top:calc(var(--head-h) + 1rem)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:var(--t-body);line-height:1.7;font-weight:450;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg,canvas{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
::selection{background:var(--rose);color:#fff}
:focus-visible{outline:2px solid var(--lagoon);outline-offset:4px;border-radius:8px}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:.8rem 1.2rem;z-index:300;border-radius:8px}
.skip:focus{left:1rem;top:1rem}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:var(--wrap);margin-inline:auto}
main,.wrap,.cq,.prose{container-type:inline-size}
.grain{position:fixed;inset:0;pointer-events:none;z-index:150;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.progress{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:var(--grad);z-index:120;pointer-events:none}

/* ---------- Typographie ---------- */
h1,h2,h3,.fitx{font-family:var(--display);font-stretch:125%;font-weight:850;text-transform:uppercase;letter-spacing:-.012em;line-height:.94;margin:0;
  overflow-wrap:normal;word-break:normal;hyphens:manual;-webkit-hyphens:manual;text-wrap:balance;
  font-size:min(var(--fs),calc(100cqi / var(--w,8)))}
h1{--fs:var(--t-h1)}
h2{--fs:var(--t-h2)}
h3{--fs:var(--t-h3);line-height:1.08;letter-spacing:0}
.ln{display:block}
.o{color:transparent;-webkit-text-stroke:max(1px,.014em) var(--ink)}
.g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:0}
.serif-g{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;line-height:1.05;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em}
.label{font-family:var(--body);font-size:var(--t-label);font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);line-height:1.5}
.eyebrow{display:inline-flex;align-items:center;gap:var(--s3);margin:0 0 var(--s5)}
.eyebrow::before{content:"";width:3rem;height:1px;background:var(--grad);flex:none}
p{margin:0 0 1.2em;max-width:var(--measure)}
.lead{font-size:var(--t-lead);line-height:1.6;color:var(--ink-2);max-width:var(--measure-lead)}
.muted{color:var(--muted)}

/* ---------- Boutons et liens ---------- */
.btn{--bh:var(--btn-h);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:var(--bh);padding:0 1.9rem;border-radius:var(--pill);
  font-family:var(--display);font-stretch:115%;font-weight:800;font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;white-space:nowrap;
  border:1px solid var(--line-2);color:var(--ink);background:transparent;cursor:pointer;overflow:hidden;isolation:isolate;
  transition:border-color .4s var(--ease),color .4s var(--ease),transform .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(101%);transition:transform .55s var(--ease)}
.btn:hover{color:#0b0720;border-color:var(--ink)}
.btn:hover::before{transform:none}
.btn:active{transform:scale(.97)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.btn .ic{width:18px;height:18px;flex:none;transition:transform .5s var(--ease)}
.btn:hover .ic{transform:translateX(4px)}
.btn-main{border:0;color:#0b0720;background:var(--grad);background-size:220% 100%;background-position:0 0;transition:background-position .8s var(--ease),transform .5s var(--ease)}
.btn-main::before{display:none}
.btn-main:hover{color:#0b0720;background-position:100% 0}
.btn-sm{--bh:2.75rem;padding:0 1.3rem;font-size:.72rem}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}
.link{display:inline-flex;align-items:center;gap:.6rem;font-weight:650;text-decoration:none;position:relative;padding-bottom:.25rem}
.link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--grad);transform-origin:right;transform:scaleX(0);transition:transform .5s var(--ease)}
.link:hover::after,a:hover .link::after{transform-origin:left;transform:scaleX(1)}
.link .ic{width:16px;height:16px;transition:transform .5s var(--ease)}
.link:hover .ic,a:hover .link .ic{transform:translateX(4px)}
.arrow{flex:none;width:56px;height:56px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;transition:background .45s var(--ease),border-color .45s,transform .6s var(--ease),color .45s}
.arrow svg{width:18px;height:18px}

/* ---------- En-tête ---------- */
.site-head{position:fixed;inset:0 0 auto;z-index:100;height:var(--head-h);transition:transform .6s var(--ease),background .5s,border-color .5s;border-bottom:1px solid transparent}
.site-head.scrolled{background:rgba(7,5,26,.72);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-color:var(--line)}
.site-head.hide{transform:translateY(-100%)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);height:100%}
.logo{display:flex;align-items:center;gap:.9rem;text-decoration:none;flex:none}
.logo-mark{width:44px;height:44px;flex:none;border-radius:50%;transition:transform .9s var(--ease)}
.logo:hover .logo-mark{transform:rotate(-14deg) scale(1.08)}
.logo span{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:1rem;letter-spacing:.16em;white-space:nowrap}
.logo span i{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-inline{display:flex;gap:clamp(1.2rem,2.4vw,2.6rem);list-style:none;margin:0;padding:0}
.nav-inline a{font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--ink-2);white-space:nowrap;position:relative;padding:.6rem 0;transition:color .3s}
.nav-inline a::after{content:"";position:absolute;left:0;right:0;bottom:.2rem;height:1px;background:var(--grad);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav-inline a:hover,.nav-inline a[aria-current]{color:#fff}
.nav-inline a:hover::after,.nav-inline a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.head-right{display:flex;align-items:center;gap:var(--s4)}
.langs{display:flex;gap:.1rem;font-size:.75rem;font-weight:700;letter-spacing:.14em}
.langs a{text-decoration:none;color:var(--dim);padding:.5rem .4rem;transition:color .3s}
.langs a:hover{color:#fff}
.langs a[aria-current]{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.menu-btn{display:none;position:relative;width:60px;height:60px;border:0;background:none;cursor:pointer;padding:0;color:var(--ink)}
.menu-btn .ring{position:absolute;inset:0;animation:spin 18s linear infinite}
.menu-btn .bars{position:absolute;inset:0;margin:auto;width:22px;height:12px}
.menu-btn .bars i{position:absolute;left:0;right:0;height:1.6px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.menu-btn .bars i:first-child{top:0}.menu-btn .bars i:last-child{top:10px}
.menu-btn[aria-expanded="true"] .bars i:first-child{top:5px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars i:last-child{top:5px;transform:rotate(-45deg)}
@keyframes spin{to{transform:rotate(360deg)}}

/* Menu plein écran */
.nav-panel{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;background:var(--bg);padding:calc(var(--head-h) + var(--s5)) 0 var(--s6);overflow-y:auto;
  clip-path:circle(0 at calc(100% - var(--gutter) - 30px) calc(var(--head-h) / 2));transition:clip-path .8s var(--ease-io);visibility:hidden}
.nav-panel.open{clip-path:circle(160% at calc(100% - var(--gutter) - 30px) calc(var(--head-h) / 2));visibility:visible}
.nav-panel::before{content:"";position:absolute;width:90vmax;height:90vmax;right:-40vmax;bottom:-50vmax;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--lagoon),var(--iris) 35%,var(--rose) 60%,transparent 72%);filter:blur(70px);opacity:.35;pointer-events:none}
.nav-panel .wrap{position:relative;display:flex;flex-direction:column;gap:var(--s6);flex:1}
.nav-main{list-style:none;margin:0;padding:0;counter-reset:m}
.nav-main li{counter-increment:m;border-bottom:1px solid var(--line);overflow:hidden}
.nav-main a{display:flex;align-items:baseline;gap:var(--s4);min-width:0;padding:var(--s3) 0;text-decoration:none;transform:translateY(110%);transition:transform .8s var(--ease)}
.nav-main a::before{content:"0" counter(m);font-size:var(--t-label);font-weight:700;letter-spacing:.2em;color:var(--sun);flex:none}
.nav-main .cq{flex:1;min-width:0}
.nav-main .fitx{--fs:clamp(2rem,8vw,4rem);display:block;transition:color .3s}
.nav-main a:hover .fitx{color:transparent;-webkit-text-stroke:1px var(--ink)}
.nav-panel.open .nav-main a{transform:none}
.nav-panel.open .nav-main li:nth-child(2) a{transition-delay:.05s}.nav-panel.open .nav-main li:nth-child(3) a{transition-delay:.1s}
.nav-panel.open .nav-main li:nth-child(4) a{transition-delay:.15s}.nav-panel.open .nav-main li:nth-child(5) a{transition-delay:.2s}.nav-panel.open .nav-main li:nth-child(6) a{transition-delay:.25s}
.nav-foot{display:grid;gap:var(--s4);margin-top:auto}
.lang-pills{display:flex;flex-wrap:wrap;gap:var(--s2)}
.lang-pills a{display:inline-flex;align-items:center;gap:.55rem;min-height:2.75rem;padding:0 1.1rem;border:1px solid var(--line-2);border-radius:var(--pill);text-decoration:none;font-size:.8rem;font-weight:700;letter-spacing:.1em;transition:border-color .3s,background .3s}
.lang-pills a:hover{border-color:var(--ink)}
.lang-pills a[aria-current]{background:rgba(255,255,255,.08);border-color:var(--sun)}
.nav-contact{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);color:var(--ink-2)}
.nav-contact a{text-decoration:none}

/* Curseur */
.cursor,.cursor-glow{position:fixed;left:0;top:0;pointer-events:none;display:none}
.cursor{z-index:200;width:40px;height:40px;margin:-20px 0 0 -20px;border:1px solid rgba(246,195,91,.75);border-radius:50%;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s}
.cursor::after{content:"";position:absolute;inset:0;margin:auto;width:5px;height:5px;border-radius:50%;background:var(--sun)}
.cursor.hover{width:76px;height:76px;margin:-38px 0 0 -38px;background:rgba(246,195,91,.08)}
.cursor-glow{z-index:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;background:radial-gradient(circle,rgba(169,79,196,.14),transparent 62%)}
@media (pointer:fine){.cursor,.cursor-glow{display:block}}

/* ---------- En-tête de section éditorial ---------- */
.sec{padding-block:var(--section);position:relative}
.sec-tight{padding-block:var(--section-tight)}
.sec-flush{padding-top:0}
.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s5);row-gap:var(--s5);align-items:end;margin-bottom:clamp(3.5rem,7vw,7rem)}
.sec-head .sh-title{grid-column:1 / span 8}
.sec-head .sh-aside{grid-column:9 / span 4;display:grid;gap:var(--s4);justify-items:start}
.sec-head .sh-aside p{margin:0;color:var(--muted);max-width:36ch}
.sec-head h2{margin:0}

/* ---------- Héros ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--head-h) + var(--s8)) 0 calc(var(--s8) + var(--s5));overflow:hidden;isolation:isolate}
.aurora{position:absolute;inset:0;z-index:-2;width:100%;height:100%;background:radial-gradient(60% 50% at 72% 38%,rgba(169,79,196,.38),transparent 70%),radial-gradient(50% 45% at 20% 72%,rgba(95,211,238,.16),transparent 70%),radial-gradient(40% 40% at 82% 88%,rgba(246,195,91,.16),transparent 70%),var(--bg)}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:26%;background:linear-gradient(transparent,var(--bg));z-index:-1;pointer-events:none}
.orbits{--o:min(88vw,1120px);position:absolute;right:-12vw;top:44%;width:var(--o);aspect-ratio:1;margin-top:calc(var(--o) / -2);z-index:-1}
.orbits .rg{position:absolute;inset:0;margin:auto;border-radius:50%;border:1px solid rgba(255,255,255,.1);pointer-events:none}
.orbits .r1{width:46%;height:46%}.orbits .r2{width:74%;height:74%;border-color:rgba(255,255,255,.07)}.orbits .r3{width:100%;height:100%;border-color:rgba(255,255,255,.045)}
.orbits .core{position:absolute;inset:0;margin:auto;width:13%;height:13%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--lagoon) 20%,var(--iris) 55%,var(--rose) 85%);box-shadow:0 0 120px 20px rgba(109,95,240,.45);animation:breathe 7s ease-in-out infinite alternate;pointer-events:none}
@keyframes breathe{to{transform:scale(1.12);filter:hue-rotate(-30deg)}}
.planet-track{position:absolute;inset:0;margin:auto;border-radius:50%;animation:spin var(--t) linear infinite;animation-delay:var(--d);pointer-events:none}
.planet-track a{position:absolute;top:0;left:50%;translate:-50% -50%;display:flex;flex-direction:column;align-items:center;gap:.45rem;text-decoration:none;pointer-events:auto;animation:spin var(--t) linear infinite reverse;animation-delay:var(--d)}
.planet-track .flag-img{width:46px;height:46px;border-radius:50%;box-shadow:0 0 34px rgba(255,255,255,.18);transition:transform .6s var(--ease)}
.planet-track span{font-size:.68rem;font-weight:700;letter-spacing:.22em;color:var(--ink-2)}
.planet-track a:hover .flag-img{transform:scale(1.25)}
.hero-meta{position:absolute;top:calc(var(--head-h) + var(--s4));left:0;right:0}
.hero-meta .wrap{display:flex;justify-content:space-between;gap:var(--s5)}
.hero h1{--fs:var(--t-hero);line-height:.9}
.hero h1 .ln + .ln{margin-top:.04em}
.hero-mission{max-width:none;display:flex;justify-content:flex-end;align-items:baseline;flex-wrap:wrap;gap:var(--s1) var(--s3);margin-top:var(--s5);text-align:right}
.hero-mission small{font-size:clamp(1.15rem,1.9vw,1.8rem);font-weight:500;color:var(--ink);letter-spacing:-.005em;white-space:nowrap}
.hero-mission .serif-g{font-size:var(--t-serif)}
.hero-rule{height:1px;background:linear-gradient(90deg,var(--line-2),transparent);margin:clamp(2.5rem,5vw,4rem) 0 clamp(2rem,4vw,3rem)}
.hero-foot{display:grid;grid-template-columns:minmax(0,1.1fr) auto;gap:var(--s5) var(--s7);align-items:end}
.hero-foot .lead{margin:0}
.hero-foot .btn-row{margin:0;justify-content:flex-end}
.hero-langs{display:none}
.scroll-cue{position:absolute;left:50%;bottom:var(--s4);translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:.6rem;text-decoration:none}
.scroll-cue i{width:1px;height:44px;background:linear-gradient(var(--sun),transparent);animation:cue 2.4s var(--ease-io) infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- Bandeaux défilants ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:clamp(1.4rem,2.6vw,2.2rem) 0;display:grid;gap:clamp(.6rem,1.4vw,1.2rem)}
.mq-row{display:flex;width:max-content;gap:clamp(2rem,4vw,3.5rem);animation:marq var(--dur,60s) linear infinite}
.mq-row.rev{animation-direction:reverse;--dur:75s}
.marquee:hover .mq-row{animation-play-state:paused}
.mq-row span{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(1.9rem,4.6vw,4.4rem);line-height:1;text-transform:uppercase;white-space:nowrap}
.mq-row.out span{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.45)}
.mq-row.fill span:nth-child(4n+1){background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.mq-row b{align-self:center;width:.7rem;height:.7rem;border-radius:50%;background:var(--grad);flex:none}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Manifeste ---------- */
.manifesto{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s5)}
.manifesto > .label{grid-column:1 / span 3;align-self:start;margin-top:.9rem}
.manifesto-text{grid-column:4 / span 9;margin:0;max-width:none;font-family:var(--display);font-stretch:112%;font-weight:600;font-size:clamp(1.6rem,3.4vw,3.3rem);line-height:1.2;letter-spacing:-.015em;text-wrap:pretty}
.manifesto-text .w{opacity:.16;transition:opacity .5s linear}
.manifesto-text .w.on{opacity:1}
.manifesto-text em{font-family:var(--serif);font-weight:400;font-style:italic;font-stretch:100%;letter-spacing:0}
.manifesto-text em .w.on{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.signature{grid-column:4 / span 9;display:flex;align-items:center;gap:var(--s3);margin-top:var(--s7)}
.avatar{width:56px;height:56px;border-radius:50%;flex:none;overflow:hidden;background:radial-gradient(circle at 30% 30%,var(--lagoon),var(--iris) 45%,var(--rose) 75%,var(--sun));display:grid;place-items:center;font-family:var(--display);font-stretch:125%;font-weight:850;font-size:.9rem;color:#0b0720}
.avatar img{width:100%;height:100%;object-fit:cover}
.signature b{display:block;font-weight:700;line-height:1.3}
.signature span{font-size:var(--t-small);color:var(--muted)}

/* ---------- Sphères drapeaux ---------- */
.flagdot{width:18px;height:18px;border-radius:50%;flex:none;display:inline-block}
.dot-de{background:linear-gradient(#111 33%,#dd1f26 33% 66%,#f6c21c 66%)}
.dot-fr{background:linear-gradient(90deg,#1f3f93 33%,#f4f4f4 33% 66%,#d8293a 66%)}
.dot-nl{background:linear-gradient(#c8202f 33%,#f4f4f4 33% 66%,#21468b 66%)}
.dot-uk{background:linear-gradient(90deg,transparent 42%,#c8102e 42% 58%,transparent 58%),linear-gradient(transparent 42%,#c8102e 42% 58%,transparent 58%),linear-gradient(90deg,transparent 34%,#f4f4f4 34% 66%,transparent 66%),linear-gradient(transparent 34%,#f4f4f4 34% 66%,transparent 66%),#1f3a8a}

/* ---------- Marchés ---------- */
.markets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem)}
.market{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:clamp(1.5rem,3vw,3rem);row-gap:var(--s3);padding:clamp(1.75rem,3.4vw,3.25rem);border:1px solid var(--line);border-radius:var(--r-lg);text-decoration:none;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0));transition:border-color .5s var(--ease);min-height:300px}
.market::after{content:attr(data-code);position:absolute;right:clamp(1.25rem,2.4vw,2.25rem);top:clamp(1rem,2vw,1.75rem);font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(3rem,6vw,5.5rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.12);transition:-webkit-text-stroke-color .5s}
.market:hover{border-color:var(--line-2)}
.market:hover::after{-webkit-text-stroke-color:rgba(246,195,91,.55)}
.market .flag-img{grid-row:1 / span 3;width:clamp(96px,10vw,150px);height:auto;align-self:start;border-radius:50%;filter:drop-shadow(0 24px 40px rgba(0,0,0,.55));transition:transform .9s var(--ease)}
.market:hover .flag-img{transform:scale(1.08) rotate(-10deg)}
.market h3{font-family:var(--body);font-stretch:100%;text-transform:none;letter-spacing:0;font-weight:700;--fs:clamp(1.2rem,1.6vw,1.5rem);line-height:1.3;padding-right:5.5rem}
.market p{margin:0;color:var(--muted);font-size:var(--t-small);max-width:34ch}
.market .link{align-self:end;justify-self:start;font-size:var(--t-small)}

/* ---------- Deux sens ---------- */
.two-way{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem)}
.way{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(2rem,4vw,3.75rem);background:var(--card);overflow:hidden;display:flex;flex-direction:column;gap:var(--s4)}
.way::before{content:"";position:absolute;width:420px;height:420px;right:-160px;top:-200px;border-radius:50%;background:radial-gradient(var(--orchid),transparent 65%);opacity:.3;pointer-events:none}
.way + .way::before{background:radial-gradient(var(--lagoon),transparent 65%);opacity:.22}
.way h3{--fs:clamp(1.5rem,2.6vw,2.4rem)}
.way p{margin:0;color:var(--muted)}
.route{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.route .grp{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.45rem;border:1px solid var(--line-2);border-radius:var(--pill);padding:.4rem .9rem .4rem .45rem}
.route .dash{position:relative;width:48px;height:1px;background:var(--line-2);overflow:hidden}
.route .dash::after{content:"";position:absolute;top:0;left:0;width:40%;height:1px;background:var(--sun);animation:travel 2.2s var(--ease-io) infinite}
@keyframes travel{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
.chips{list-style:none;padding:0;margin:auto 0 0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.chips a{display:inline-flex;align-items:center;min-height:2.5rem;border:1px solid var(--line-2);border-radius:var(--pill);padding:0 1.1rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:border-color .3s,background .3s}
.chips a:hover{border-color:var(--sun);background:rgba(246,195,91,.06)}

/* ---------- Services (split collant) ---------- */
.split-sticky{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,6vw,7rem);align-items:start}
.split-sticky .sticky{position:sticky;top:calc(var(--head-h) + var(--s6))}
.split-sticky .sticky > p:not(.label){color:var(--muted);margin:var(--s5) 0 0;max-width:38ch}
.rows{display:grid;gap:clamp(.75rem,1.4vw,1.1rem)}
.row{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:clamp(1.25rem,3vw,2.75rem);row-gap:var(--s3);align-items:center;padding:clamp(1.75rem,3vw,2.6rem) clamp(1.5rem,2.8vw,2.5rem);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0)),var(--card);text-decoration:none;isolation:isolate;overflow:hidden;transition:border-color .5s var(--ease),transform .7s var(--ease)}
.row:hover{border-color:var(--line-2);transform:translateY(-4px)}
.row::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--grad-soft);opacity:0;transition:opacity .5s var(--ease);z-index:-1}
.row:hover::before{opacity:1}
.row .num{align-self:start;font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.3);transition:-webkit-text-stroke-color .4s,color .4s;min-width:2.2ch}
.row:hover .num{-webkit-text-stroke-color:transparent;color:var(--sun)}
.row .body{display:grid;gap:var(--s2)}
.row h3{--fs:clamp(1.3rem,2.2vw,2.1rem);transition:transform .6s var(--ease)}
.row:hover h3{transform:translateX(.35rem)}
.row p{margin:0;color:var(--muted);font-size:var(--t-small);max-width:52ch}
.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:var(--s1)}
.tags span{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line);border-radius:var(--pill);padding:.35rem .75rem}
.row:hover .arrow{background:var(--grad);border-color:transparent;color:#0b0720;transform:rotate(-45deg)}

/* ---------- Projets : liste + aperçu flottant ---------- */
.work-list{border-top:1px solid var(--line)}
.work-row{position:relative;display:grid;grid-template-columns:4rem minmax(0,1.5fr) minmax(0,1fr) auto;column-gap:clamp(1rem,2.6vw,2.5rem);align-items:center;padding:clamp(1.9rem,3.2vw,2.8rem) 0;border-bottom:1px solid var(--line);text-decoration:none}
.work-row .idx{font-size:.8rem;font-weight:600;letter-spacing:.14em;color:var(--dim)}
.work-row h3{--fs:clamp(1.5rem,3.4vw,3.2rem);transition:color .4s}
a.work-row:hover h3{color:transparent;-webkit-text-stroke:1px var(--ink)}
.work-row .meta{display:grid;justify-items:end;gap:.4rem;text-align:right}
.work-row .meta b{font-family:var(--display);font-stretch:115%;font-weight:800;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase}
.flag-dots{display:flex;gap:.3rem}
.flag-dots .flagdot{width:14px;height:14px}
a.work-row:hover .arrow{background:var(--grad);border-color:transparent;color:#0b0720;transform:rotate(-45deg)}
.preview{position:fixed;left:0;top:0;width:340px;aspect-ratio:4/3;margin:-128px 0 0 -170px;border-radius:var(--r-md);overflow:hidden;pointer-events:none;z-index:80;opacity:0;scale:.8;rotate:-4deg;transition:opacity .4s var(--ease),scale .55s var(--ease),rotate .7s var(--ease);box-shadow:0 40px 90px -30px rgba(0,0,0,.85)}
.preview.on{opacity:1;scale:1;rotate:0deg}
.preview .art{position:absolute;inset:0}
.preview .pv-logo{position:absolute;inset:0;display:grid;place-items:center;padding:18%}
.preview .pv-logo img{max-width:100%;max-height:70px;width:auto;height:auto}
.preview .pv-logo strong{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:1.5rem;text-transform:uppercase;line-height:1;text-align:center;color:#fff}
.preview em{position:absolute;left:1rem;right:1rem;bottom:.9rem;font-style:normal;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff}

/* Visuels génératifs (projets, blog, études de cas) */
.art{position:relative;overflow:hidden;background:var(--bg-2)}
.art::before,.art::after{content:"";position:absolute;border-radius:50%}
.art-1{background:radial-gradient(circle at 42% 40%,#f08aa0,#a64fd6 28%,transparent 44%),radial-gradient(ellipse at 90% 30%,#6b3cf0,transparent 50%),linear-gradient(160deg,#2a1470,#0d0636)}
.art-1::after{left:-10%;right:-10%;top:58%;height:80%;background:linear-gradient(180deg,#7b3cf5,#23106a);box-shadow:0 -2px 40px rgba(240,138,160,.55)}
.art-2{background:radial-gradient(circle at 62% 55%,#fbd9a8 0 10%,#f08a4b 24%,#e2553d 38%,transparent 55%),linear-gradient(135deg,#0e3a4a,#0a1b33)}
.art-2::after{inset:18% 10% 8% 34%;background:repeating-radial-gradient(circle at 20% 90%,rgba(255,255,255,.28) 0 2px,transparent 2px 22px);mix-blend-mode:soft-light}
.art-3{background:conic-gradient(from 210deg at 60% 60%,var(--lagoon),var(--iris),var(--orchid),var(--rose),var(--sun),var(--lagoon))}
.art-3::after{inset:0;border-radius:0;background:radial-gradient(circle at 60% 60%,rgba(255,255,255,.5),transparent 38%),linear-gradient(transparent 50%,rgba(7,5,26,.6))}
.art-4{background:radial-gradient(ellipse at 28% 34%,#dcdcdc,#6e6e6e 22%,transparent 40%),radial-gradient(ellipse at 85% 72%,#c9463c,transparent 45%),linear-gradient(145deg,#050505,#2b0a08)}
.art-5{background:radial-gradient(circle at 30% 70%,var(--lagoon),transparent 40%),radial-gradient(circle at 75% 30%,var(--iris),transparent 45%),linear-gradient(180deg,#091a3a,#07051a)}
.art-5::after{width:64%;aspect-ratio:1;left:18%;top:10%;border:1px solid rgba(255,255,255,.35);box-shadow:0 0 0 40px rgba(255,255,255,.04),0 0 0 80px rgba(255,255,255,.03)}
.art-6{background:linear-gradient(120deg,#1a0b2e,#3b0f3f 40%,#e8577a 75%,#f6c35b)}
.art-6::after{width:55%;aspect-ratio:1;right:-10%;bottom:-20%;background:radial-gradient(circle at 35% 35%,#fff,rgba(255,255,255,0) 45%),radial-gradient(circle,var(--sun),var(--rose) 60%);opacity:.9}
.art-7{background:radial-gradient(circle at 50% 120%,var(--rose),transparent 55%),radial-gradient(circle at 50% -20%,var(--lagoon),transparent 50%),#0c0923}
.art-7::before{inset:22%;background:conic-gradient(var(--sun),var(--rose),var(--iris),var(--lagoon),var(--sun));filter:blur(18px);opacity:.75}
.art-8{background:repeating-linear-gradient(115deg,rgba(255,255,255,.06) 0 1px,transparent 1px 18px),radial-gradient(circle at 70% 40%,var(--orchid),transparent 50%),linear-gradient(200deg,#10082b,#1d0c3d)}

/* ---------- Chiffres ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line)}
.stat{padding:clamp(2.5rem,5vw,4.5rem) clamp(1.25rem,2.4vw,2.5rem);border-left:1px solid var(--line);display:grid;gap:var(--s3);align-content:start}
.stat:first-child{border-left:0;padding-left:0}
.stat strong{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(2.8rem,6vw,5.6rem);line-height:.95;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);font-size:var(--t-small);max-width:24ch}

/* ---------- Méthode ---------- */
.steps{position:relative;list-style:none;margin:0;padding:var(--s6) 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(1rem,2vw,2rem)}
.steps::before,.steps::after{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:var(--line-2)}
.steps::after{background:var(--grad);transform-origin:0 50%;transform:scaleX(var(--fill,0))}
.steps li{position:relative;display:grid;gap:var(--s3);align-content:start}
.steps li::before{content:"";position:absolute;top:calc(-1 * var(--s6) - 6px);left:0;width:11px;height:11px;border-radius:50%;background:var(--bg);border:1px solid var(--line-2);transition:background .5s,border-color .5s,box-shadow .5s}
.steps li.on::before{background:var(--sun);border-color:var(--sun);box-shadow:0 0 18px var(--sun)}
.steps li > span{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(2.4rem,3.6vw,3.4rem);line-height:1;color:transparent;-webkit-text-stroke:1px var(--sun)}
.steps h3{--fs:clamp(1rem,1.25vw,1.15rem);line-height:1.2;min-height:2.4em}
.steps p{margin:0;font-size:var(--t-small);color:var(--muted)}

/* ---------- Références en orbite ---------- */
.refs{position:relative;min-height:clamp(800px,100vw,1260px);display:grid;place-items:center;overflow:hidden;text-align:center}
.refs .center{position:relative;z-index:2;width:min(640px,72vw);display:grid;justify-items:center;gap:var(--s5)}
.refs .center p{margin:0;color:var(--muted);max-width:36ch}
.ref-ring{position:absolute;left:50%;top:50%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.09);translate:-50% -50%;animation:spin var(--t) linear infinite}
.ref-ring .ref{position:absolute;left:50%;top:50%;width:0;height:0}
.ref-ring .ref > *{position:absolute;left:0;top:0;translate:-50% -50%;animation:spin var(--t) linear infinite reverse}
.ref-ring.rev{animation-direction:reverse}
.ref-ring.rev .ref > *{animation-direction:normal}
.ref-ring .ref img{width:min(calc(var(--lw,120) * 1px),calc(var(--lw,120) * .0694vw));max-width:none;height:auto;object-fit:contain;opacity:.8;transition:opacity .4s}
.ref-ring .ref span{white-space:nowrap;font-family:var(--display);font-stretch:112%;font-weight:800;font-size:clamp(.68rem,.95vw,.88rem);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:.55rem 1rem;border:1px solid var(--line);border-radius:var(--pill);background:rgba(7,5,26,.92)}
.logo-wall{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:row;margin:0;padding:0;list-style:none;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.logo-wall li{display:grid;place-items:center;min-width:0;min-height:128px;padding:var(--s4);border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;font-family:var(--display);font-stretch:112%;font-weight:800;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);transition:background .4s,color .4s}
.logo-wall li:hover{background:rgba(255,255,255,.03);color:var(--ink)}
.logo-wall img{width:min(calc(var(--lw,120) * 1px),100%);height:auto;opacity:.74;transition:opacity .4s}
.logo-wall li:hover img{opacity:1}
.logo-wall .lw-cta{grid-column:auto / -1}
.refs-more{max-width:none;margin:var(--s5) 0 0;text-align:center;color:var(--muted);font-size:var(--t-small);line-height:1.9}
.refs-more .label{margin-right:.6rem;color:var(--sun)}
.logo-wall .lw-cta a{display:grid;place-items:center;width:100%;height:100%;text-decoration:none;font-family:var(--serif);font-style:italic;font-weight:400;font-stretch:100%;text-transform:none;letter-spacing:0;font-size:1.6rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- Témoignages ---------- */
.quotes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem)}
.quotes > .qcard{grid-column:span 2}
.quotes > .qcard:nth-child(-n+2){grid-column:span 3}
.quotes > .qcard:nth-child(-n+2) blockquote{font-size:clamp(1.5rem,2.2vw,2.15rem)}
.qcard{margin:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:clamp(2rem,3.4vw,3rem);display:flex;flex-direction:column;gap:var(--s6);transition:border-color .5s,transform .7s var(--ease)}
.qcard:hover{border-color:var(--line-2);transform:translateY(-6px)}
.qmark{font-family:var(--serif);font-style:italic;font-size:7rem;line-height:.8;height:2.6rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.qcard blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(1.45rem,2.1vw,2rem);line-height:1.25;color:var(--ink)}
.qcard figcaption{margin-top:auto;display:grid;gap:.35rem;font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.qcard figcaption span{color:var(--sun)}

/* ---------- FAQ ---------- */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--s5);padding:var(--s5) 0;font-weight:650;font-size:clamp(1.02rem,1.3vw,1.18rem);transition:color .3s}
.faq summary:hover{color:#fff}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:linear-gradient(currentColor,currentColor) center/13px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 13px no-repeat;transition:transform .5s var(--ease),border-color .4s}
.faq details[open] summary::after{background:linear-gradient(currentColor,currentColor) center/13px 1.5px no-repeat;border-color:var(--sun)}
.faq .ans{padding:0 4rem var(--s5) 0;color:var(--ink-2);animation:fadeUp .6s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(-8px)}}

/* ---------- Blog ---------- */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem)}
.post{display:flex;flex-direction:column;text-decoration:none;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--card);transition:border-color .5s,transform .7s var(--ease)}
.post:hover{border-color:var(--line-2);transform:translateY(-6px)}
.post .art{aspect-ratio:16/10;transition:transform 1.2s var(--ease)}
.post:hover .art{transform:scale(1.05)}
.post .pbody{display:flex;flex-direction:column;gap:var(--s3);padding:clamp(1.5rem,2.6vw,2.25rem);flex:1}
.post time{font-size:var(--t-label);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sun)}
.post h3{font-family:var(--body);font-stretch:100%;text-transform:none;letter-spacing:0;font-weight:700;--fs:clamp(1.1rem,1.4vw,1.3rem);line-height:1.35}
.post .link{margin-top:auto;font-size:var(--t-small);align-self:flex-start}
.post-media{overflow:hidden}

/* ---------- Let's talk ---------- */
.talk{position:relative;overflow:hidden;isolation:isolate;padding-block:clamp(8rem,16vw,15rem);border-top:1px solid var(--line)}
.talk .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s7);align-items:end}
.talk h2{--fs:clamp(3.2rem,13vw,13rem);margin-bottom:var(--s5)}
.talk .serif-g{display:block;font-size:var(--t-serif);margin-bottom:var(--s5)}
.talk .lead{margin:0 0 var(--s5)}
.talk-mail{font-size:var(--t-lead)}
.circle-cta{position:relative;width:clamp(150px,15vw,210px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;text-decoration:none;color:#0b0720;background:var(--grad);background-size:200% 200%;transition:background-position .8s var(--ease);flex:none}
.circle-cta:hover{background-position:100% 100%}
.circle-cta svg.txt{position:absolute;inset:6%;width:88%;height:88%;animation:spin 14s linear infinite}
.circle-cta .ic{width:30px;height:30px;transition:transform .6s var(--ease)}
.circle-cta:hover .ic{transform:rotate(-45deg)}

/* ---------- Pied de page ---------- */
.site-foot{padding:clamp(4.5rem,8vw,7rem) 0 var(--s5);border-top:1px solid var(--line);font-size:var(--t-small);color:var(--ink-2);overflow:hidden}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:var(--s6) var(--s5)}
.foot-grid p{max-width:36ch;margin:var(--s4) 0}
.foot-logo{display:inline-block;border-radius:50%}
.foot-logo img{width:132px;height:132px;transition:transform 1s var(--ease)}
.foot-logo:hover img{transform:rotate(-10deg) scale(1.04)}
.site-foot h2{font-family:var(--body);font-stretch:100%;letter-spacing:.2em;text-transform:uppercase;--fs:.72rem;font-weight:700;color:var(--muted);margin-bottom:var(--s4);line-height:1.5}
.site-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.site-foot a{text-decoration:none;transition:color .3s}
.site-foot a:hover{color:#fff}
.foot-word{max-width:none;margin:clamp(3.5rem,7vw,6rem) 0 var(--s4);text-align:center;user-select:none}
.foot-word .fitx{--fs:18vw;line-height:.82;display:block;font-size:min(var(--fs),calc(96cqi / var(--w,8)))}
.foot-word b{font-weight:inherit}
.foot-word .o{-webkit-text-stroke-color:rgba(255,255,255,.26)}
.foot-legal{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s3);padding-top:var(--s4);border-top:1px solid var(--line);color:var(--dim);font-size:.8rem}
address{font-style:normal}

/* ---------- Pages intérieures ---------- */
.page-hero{position:relative;overflow:hidden;isolation:isolate;padding:calc(var(--head-h) + clamp(4rem,9vw,8rem)) 0 clamp(4rem,8vw,7rem)}
.page-hero .aurora{opacity:.85}
.page-hero::after{content:"";position:absolute;inset:auto 0 0;height:40%;background:linear-gradient(transparent,var(--bg));z-index:-1}
.page-hero h1{--fs:clamp(2.6rem,7vw,7.2rem);margin-bottom:var(--s6)}
.page-hero .lead{max-width:58ch;margin:0}
.page-hero .hero-orb{position:absolute;right:var(--gutter);top:calc(var(--head-h) + var(--s6));width:clamp(110px,15vw,240px);z-index:-1}
.page-hero .hero-orb .flag-img{width:100%;height:auto;border-radius:50%;filter:drop-shadow(0 30px 60px rgba(0,0,0,.6))}
.crumbs{margin-bottom:var(--s6)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem;font-size:var(--t-label);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.crumbs li+li::before{content:"/";margin-right:.5rem}
.crumbs a{text-decoration:none;color:var(--muted);transition:color .3s}.crumbs a:hover{color:#fff}
.byline{margin-top:var(--s5)}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:clamp(3rem,7vw,8rem);align-items:start;padding-bottom:var(--section-tight)}
.prose{font-size:1.0625rem;line-height:1.75}
.prose > section{margin-bottom:clamp(3.5rem,6vw,5.5rem)}
.prose > section:last-child{margin-bottom:0}
.prose h2{--fs:clamp(1.6rem,3.2vw,2.8rem);margin-bottom:var(--s5)}
.prose h3{--fs:clamp(1.1rem,1.6vw,1.4rem);margin:var(--s6) 0 var(--s3)}
.prose ul,.prose ol{padding-left:1.25rem;max-width:var(--measure);margin:0 0 1.4em}
.prose li{margin:.55em 0;padding-left:.25rem}
.prose li::marker{color:var(--sun)}
.prose strong{font-weight:700;color:#fff}
.prose p a,.prose li a,.prose td a{color:#fff;text-decoration-color:var(--rose);text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-color .3s}
.prose p a:hover,.prose li a:hover{text-decoration-color:var(--sun)}
.prose table{border-collapse:collapse;width:100%;font-size:var(--t-small)}
.prose th,.prose td{text-align:left;padding:.9rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
.prose tr:last-child td{border-bottom:0}
.prose th{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.prose pre{background:var(--card);border:1px solid var(--line);padding:var(--s4);border-radius:var(--r-sm);overflow-x:auto;font-size:.85rem;line-height:1.6}
.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s1) var(--s3);margin:var(--s4) 0 var(--s5);background:rgba(255,255,255,.015)}
.summary-box{border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.75rem,3.2vw,2.75rem);margin:0 0 clamp(3.5rem,6vw,5rem);background:var(--grad-soft)}
.summary-box h2{font-family:var(--body);font-stretch:100%;letter-spacing:.2em;text-transform:uppercase;--fs:.75rem;font-weight:700;color:var(--sun);margin-bottom:var(--s4);line-height:1.5}
.summary-box p:last-child,.summary-box ul:last-child{margin-bottom:0}
.aside{position:sticky;top:calc(var(--head-h) + var(--s5));display:grid;gap:var(--s5);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,2.4vw,2.25rem);background:var(--card);font-size:var(--t-small)}
.aside h2{font-family:var(--body);font-stretch:100%;letter-spacing:.2em;text-transform:uppercase;--fs:.72rem;font-weight:700;color:var(--muted);margin-bottom:var(--s3);line-height:1.5}
.aside ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.aside a:not(.btn){text-decoration:none;color:var(--ink-2);transition:color .3s}
.aside a:not(.btn):hover,.aside a[aria-current]{color:#fff}
.aside a[aria-current]{text-decoration:underline;text-decoration-color:var(--sun);text-underline-offset:4px}
.aside .btn{width:100%;white-space:normal;text-align:center;line-height:1.3;padding-block:.8rem}
.case-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin:0 0 var(--s6);padding:0}
.case-facts div{border-top:1px solid var(--line-2);padding-top:var(--s3)}
.case-facts dt{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700}
.case-facts dd{margin:.45rem 0 0;font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(1rem,2vw,1.5rem);margin:0 0 clamp(3.5rem,6vw,5rem)}
.kpi{border:1px solid var(--line);border-radius:var(--r-md);padding:clamp(1.5rem,2.6vw,2.25rem);background:var(--card);display:grid;gap:var(--s3)}
.kpi strong{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(1.9rem,3.4vw,3rem);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.kpi span{font-size:var(--t-small);color:var(--muted)}
.case-visual{aspect-ratio:21/9;border-radius:var(--r-lg);margin:0 0 clamp(3.5rem,6vw,5rem);display:grid;place-items:center}
.case-visual img{position:relative;z-index:1;max-width:46%;max-height:32%;width:auto;height:auto}
.case-visual strong{position:relative;z-index:1;font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(1.6rem,4vw,3.4rem);text-transform:uppercase;color:#fff;text-align:center;padding:0 var(--s4)}
.filters{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0 0 var(--s6)}
.filters button{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:0 1.2rem;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:none;border:1px solid var(--line-2);border-radius:var(--pill);cursor:pointer;transition:border-color .3s,color .3s,background .3s}
.filters button:hover{border-color:var(--ink);color:var(--ink)}
.filters button[aria-pressed="true"]{color:#0b0720;background:var(--grad);border-color:transparent}
.prose .work-row{grid-template-columns:4.5rem minmax(0,1fr) auto;padding:clamp(1.6rem,2.6vw,2.2rem) 0}
.prose .work-row h3{--fs:clamp(1.2rem,2.1vw,1.8rem)}
.prose .work-row .desc{grid-column:2;margin:.6rem 0 0;color:var(--muted);font-size:var(--t-small);max-width:56ch}
.prose .work-row .meta{grid-column:3;grid-row:1 / span 2}
.prose .work-row .arrow{width:44px;height:44px;margin-top:.35rem}

/* Qui sommes-nous */
.founder{overflow-x:clip;display:grid;grid-template-columns:minmax(0,11fr) minmax(0,13fr);gap:clamp(2rem,5vw,5rem);align-items:center;margin-bottom:clamp(4rem,7vw,6rem)}
.portrait-wrap{position:relative;isolation:isolate;max-width:460px}
.p-orb{position:absolute;z-index:-1;width:42%;height:auto;right:-12%;top:-9%;animation:spin 40s linear infinite;filter:drop-shadow(0 20px 60px rgba(169,79,196,.45))}
.p-chip{position:absolute;left:-7%;bottom:9%;display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1.05rem;border-radius:var(--pill);background:rgba(7,5,26,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line-2);font-size:.7rem;font-weight:700;letter-spacing:.14em;white-space:nowrap}
.p-chip .flagdot{width:14px;height:14px}
.p-chip .flagdot:last-of-type{margin-right:.35rem}
.portrait{position:relative;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;background:var(--card)}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait .ph{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(3rem,7vw,6rem);color:#0b0720}
.portrait::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--line)}
.founder h2{--fs:clamp(1.8rem,3.4vw,3rem);margin:var(--s3) 0 var(--s5)}
.prose .timeline{list-style:none;padding:0;margin:0;border-left:1px solid var(--line-2)}
.prose .timeline li{position:relative;padding:0 0 var(--s6) var(--s6);margin:0}
.prose .timeline li:last-child{padding-bottom:0}
.prose .timeline li::before{content:"";position:absolute;left:-6px;top:.55rem;width:11px;height:11px;border-radius:50%;background:var(--grad)}
.timeline b{display:block;font-family:var(--display);font-stretch:125%;font-weight:850;font-size:1.5rem;line-height:1.1;margin-bottom:.4rem}

/* Formulaire */
.prose .form{margin-bottom:clamp(3.5rem,6vw,5rem)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s4);padding:clamp(1.75rem,3.4vw,3rem);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.form label{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:.6rem;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.form .full{grid-column:1 / -1}
.form input,.form select,.form textarea{width:100%;min-width:0;max-width:100%;font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;font-weight:450;min-height:3.5rem;padding:.9rem 1.1rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-2);color:var(--ink);transition:border-color .3s,box-shadow .3s}
.form input:hover,.form select:hover,.form textarea:hover{border-color:rgba(255,255,255,.35)}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--lagoon);box-shadow:0 0 0 4px rgba(95,211,238,.14)}
.form textarea{min-height:190px;resize:vertical}
.form .hp{position:absolute;left:-5000px}
.form .status{margin:var(--s3) 0 0;font-weight:600;min-height:1.5em}
.contact-card dl{margin:0}
.contact-card dt{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:var(--s4)}
.contact-card dt:first-child{margin-top:0}
.contact-card dd{margin:.35rem 0 0}
.contact-card a{color:#fff}

/* ---------- Services en cartes ---------- */
.content-grid.no-aside{grid-template-columns:minmax(0,1fr)}
.prose.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem);counter-reset:svc;align-items:stretch}
.prose.cards > :not(.svc-card){grid-column:1 / -1}
.prose.cards > section.svc-card{margin:0}
.prose.cards > section.svc-card.svc-wide{grid-column:1 / -1}
.prose.cards > section:not(.svc-card){margin-top:clamp(3.5rem,7vw,6rem)}
.svc-card{position:relative;container-type:inline-size;counter-increment:svc;padding:clamp(2rem,3.4vw,3rem);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0)),var(--card);overflow:hidden;isolation:isolate;transition:border-color .5s var(--ease),transform .7s var(--ease)}
.svc-card::before{content:counter(svc,decimal-leading-zero);display:block;font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(246,195,91,.75);margin-bottom:var(--s5)}
.svc-card::after{content:"";position:absolute;z-index:-1;width:380px;height:380px;right:-160px;top:-190px;border-radius:50%;background:radial-gradient(var(--orchid),transparent 65%);opacity:.2;transition:opacity .6s var(--ease),transform .9s var(--ease)}
.svc-card:nth-child(even)::after{background:radial-gradient(var(--lagoon),transparent 65%)}
.svc-card:hover{border-color:var(--line-2);transform:translateY(-6px)}
.svc-card:hover::after{opacity:.4;transform:scale(1.15)}
.svc-card h2{--fs:clamp(1.3rem,2.1vw,1.85rem);margin-bottom:var(--s4)}
.svc-card p:last-child,.svc-card ul:last-child{margin-bottom:0}
.svc-card ul{padding-left:1.1rem}

/* ---------- Articles ---------- */
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin-top:var(--s5)}
.byline-av{width:40px;height:40px;border-radius:50%;object-fit:cover}
.human-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border-radius:var(--pill);border:1px solid rgba(246,195,91,.5);color:var(--sun);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.prose.article{font-size:1.1rem;line-height:1.8}
.prose.article h2{margin-top:var(--s2)}
.prose.article > section p,.prose.article > section li{max-width:68ch}
.toc h2{margin-bottom:var(--s3)}
.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;counter-reset:t}
.toc li{counter-increment:t;display:grid;grid-template-columns:2rem minmax(0,1fr);line-height:1.45}
.toc li::before{content:counter(t,decimal-leading-zero);font-size:.72rem;font-weight:700;color:var(--sun);padding-top:.15rem}
.toc a{text-decoration:none;color:var(--ink-2);transition:color .3s}
.toc a:hover{color:#fff}
.cta-inline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3) var(--s5);margin:var(--s6) 0;padding:var(--s4) var(--s5);border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--grad-soft)}
.cta-inline p{margin:0;font-weight:700;font-size:1.05rem;max-width:none}
.bars{margin:var(--s6) 0;padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.bars-legend{display:flex;flex-wrap:wrap;gap:var(--s4);margin-bottom:var(--s5);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.bars-legend span{display:inline-flex;align-items:center;gap:.5rem}
.bars-legend span::before{content:"";width:14px;height:14px;border-radius:4px;background:var(--c)}
.bar-row{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:var(--s2) var(--s4);align-items:center;padding:.6rem 0;border-top:1px solid var(--line)}
.bar-row:first-of-type{border-top:0}
.bar-label{font-size:var(--t-small);font-weight:600;color:var(--ink-2)}
.bar-track{display:grid;gap:.35rem}
.bar{display:block;height:1.35rem;width:calc(var(--v) * 1%);min-width:2.4rem;border-radius:0 var(--pill) var(--pill) 0;background:var(--c);color:#0b0720;font-size:.72rem;font-weight:800;line-height:1.35rem;text-align:right;padding-right:.55rem;transform-origin:0 50%}
.js .bars .bar{transform:scaleX(0);transition:transform 1.2s var(--ease)}
.js .bars.in .bar{transform:none}
.bars figcaption{margin-top:var(--s4);font-size:.85rem;color:var(--muted)}
.author-box{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s4);align-items:start;margin:clamp(3.5rem,6vw,5rem) 0 0;padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.author-box img{width:88px;height:88px;border-radius:50%;object-fit:cover}
.author-box p{margin:0 0 .6rem}
.author-box .author-name{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:1.3rem;text-transform:uppercase;margin-bottom:.4rem}
.author-links{display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s3)!important}
.quote-by{margin:0;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.quote-by strong{color:var(--ink)}
.prose blockquote{margin:var(--s5) 0;padding:var(--s3) var(--s5);border-left:2px solid var(--sun);font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.4;color:var(--ink)}
.checklist{list-style:none;padding-left:0!important}
.checklist li{position:relative;padding-left:2rem!important}
.checklist li::before{content:"";position:absolute;left:0;top:.45em;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--grad)}

/* ---------- Planètes des services ---------- */
.pl-wrap{--s:64px;position:relative;display:inline-grid;place-items:center;width:var(--s);height:var(--s);flex:none}
.pl-xs{--s:22px}.pl-sm{--s:48px}.pl-md{--s:72px}.pl-lg{--s:clamp(190px,24vw,330px)}
.planet{position:relative;display:block;width:100%;height:100%;border-radius:50%;overflow:hidden;isolation:isolate;background:var(--pl-base);
  box-shadow:inset calc(var(--s) * -.16) calc(var(--s) * -.2) calc(var(--s) * .34) rgba(4,2,20,.78),inset calc(var(--s) * .05) calc(var(--s) * .05) calc(var(--s) * .16) rgba(255,255,255,.22),0 0 calc(var(--s) * .55) calc(var(--s) * -.1) var(--pl-glow);transition:transform .9s var(--ease)}
.planet::before{content:"";position:absolute;inset:0;background:var(--pl-tex);background-size:200% 100%;animation:pl-spin var(--spin,26s) linear infinite;mix-blend-mode:soft-light;opacity:.95}
.planet::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 26%,rgba(255,255,255,.5),transparent 36%),radial-gradient(circle at 78% 82%,transparent 40%,rgba(4,2,20,.55) 78%)}
@keyframes pl-spin{to{background-position:-200% 0}}
.pl-audit{--pl-base:radial-gradient(circle at 38% 34%,#b8f6ff,var(--lagoon) 30%,var(--iris) 72%,#191258);--pl-glow:rgba(95,211,238,.55);--pl-tex:repeating-linear-gradient(0deg,rgba(255,255,255,.28) 0 2.5%,transparent 2.5% 11%)}
.pl-sem{--pl-base:radial-gradient(circle at 38% 34%,#ffe7b0,var(--sun) 28%,var(--rose) 70%,#4a1030);--pl-glow:rgba(246,195,91,.5);--pl-tex:radial-gradient(ellipse 9% 6% at 25% 38%,rgba(255,255,255,.38),transparent 70%),radial-gradient(ellipse 7% 4% at 70% 64%,rgba(74,16,48,.5),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.3) 0 3%,rgba(0,0,0,.12) 3% 6%,transparent 6% 13%);--spin:34s}
.pl-content{--pl-base:radial-gradient(circle at 38% 34%,#ffd6f3,var(--orchid) 34%,var(--iris) 74%,#1b0f45);--pl-glow:rgba(169,79,196,.55);--pl-tex:radial-gradient(ellipse 10% 7% at 35% 55%,rgba(255,214,243,.45),transparent 70%),radial-gradient(ellipse 6% 4% at 78% 30%,rgba(255,255,255,.3),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.26) 0 4%,transparent 4% 9%,rgba(232,87,122,.35) 9% 12%,transparent 12% 18%);--spin:30s}
.pl-sites{--pl-base:radial-gradient(circle at 38% 34%,#d8d4ff,var(--iris) 42%,#231a70 86%);--pl-glow:rgba(109,95,240,.6);--pl-tex:repeating-linear-gradient(90deg,rgba(255,255,255,.45) 0 1px,transparent 1px 8.33%),repeating-linear-gradient(0deg,rgba(255,255,255,.35) 0 1px,transparent 1px 12.5%);--spin:22s}
.pl-sites::before{mix-blend-mode:screen;opacity:.55}
.pl-sea{--pl-base:radial-gradient(circle at 38% 34%,#ffe0b8,var(--sun) 24%,var(--orchid) 68%,#2a0f3f);--pl-glow:rgba(232,87,122,.5);--pl-tex:radial-gradient(ellipse 8% 5% at 60% 45%,rgba(255,255,255,.4),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.25) 0 2%,transparent 2% 7%,rgba(0,0,0,.14) 7% 9%,transparent 9% 15%);--spin:20s}
.pl-geo{--pl-base:radial-gradient(circle at 38% 34%,#effcff,var(--lagoon) 28%,var(--orchid) 72%,#1b0b3a);--pl-glow:rgba(95,211,238,.6);--pl-tex:radial-gradient(circle at 20% 60%,rgba(255,255,255,.5) 0 2%,transparent 3%),radial-gradient(circle at 60% 30%,rgba(255,255,255,.45) 0 1.5%,transparent 2.5%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.4) 0 2%,transparent 3%),repeating-linear-gradient(0deg,rgba(255,255,255,.18) 0 3%,transparent 3% 10%);--spin:28s}
.planet .scan{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 62%,rgba(95,211,238,.08) 74%,rgba(160,240,255,.38) 94%,rgba(230,252,255,.8) 99.6%,transparent 100%);mix-blend-mode:screen;animation:spin 5s linear infinite;z-index:1}
/* satellites, anneaux et étoiles des grands formats */
.pl-lg .orb{position:absolute;inset:-14%;border-radius:50%;border:1px dashed rgba(255,255,255,.14);animation:spin var(--ot,16s) linear infinite}
.pl-lg .orb.o2{inset:-26%;--ot:24s;animation-direction:reverse}
.pl-lg .orb.o3{inset:-36%;--ot:32s}
.pl-lg .orb.o4{inset:-44%;--ot:40s;animation-direction:reverse}
.pl-lg .moon{position:absolute;top:50%;left:-6px;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--sun) 60%,var(--rose));box-shadow:0 0 14px rgba(246,195,91,.8);animation:spin var(--ot,16s) linear infinite reverse}
.pl-lg .moon.sat{background:radial-gradient(circle at 35% 30%,#fff,var(--lagoon) 60%,var(--iris));box-shadow:0 0 14px rgba(95,211,238,.8)}
.pl-lg .moon.flag{width:clamp(26px,3vw,40px);height:auto;margin-top:calc(clamp(26px,3vw,40px) / -2);left:calc(clamp(26px,3vw,40px) / -2);background:none;box-shadow:0 8px 20px rgba(0,0,0,.5)}
.pl-lg .ring{position:absolute;left:-30%;right:-30%;top:50%;height:34%;margin-top:-17%;border-radius:50%;border:2px solid rgba(255,214,168,.55);box-shadow:0 0 30px rgba(246,195,91,.25),inset 0 0 20px rgba(246,195,91,.2);transform:rotate(-18deg);pointer-events:none}
.pl-lg .ring::after{content:"";position:absolute;inset:14%;border-radius:50%;border:1px solid rgba(232,87,122,.45)}
.pl-lg .comet{position:absolute;top:50%;left:-4px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 12px #fff,0 0 24px var(--sun)}
.pl-lg .comet::after{content:"";position:absolute;right:4px;top:3px;width:60px;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8));transform-origin:right center;transform:rotate(-90deg) translateX(0)}
.pl-lg .spark{position:absolute;font-style:normal;color:#fff;text-shadow:0 0 12px var(--lagoon),0 0 24px var(--orchid);animation:twinkle 3.2s ease-in-out infinite;font-size:clamp(14px,1.6vw,22px)}
.pl-lg .s1{top:-8%;left:12%}.pl-lg .s2{top:10%;right:-10%;animation-delay:.8s;font-size:clamp(10px,1.1vw,16px)}.pl-lg .s3{bottom:-6%;right:18%;animation-delay:1.6s}.pl-lg .s4{bottom:18%;left:-12%;animation-delay:2.4s;font-size:clamp(10px,1.1vw,16px)}
@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}

/* ---------- Accueil : tuiles de services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,1.8vw,1.5rem)}
.svc-tile{position:relative;display:flex;flex-direction:column;gap:var(--s3);padding:clamp(1.75rem,2.6vw,2.4rem);border-radius:var(--r-lg);text-decoration:none;isolation:isolate;overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0%,rgba(169,79,196,.14),transparent 55%),var(--card);border:1px solid var(--line);transition:transform .7s var(--ease),border-color .5s}
.svc-tile::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .6s var(--ease);pointer-events:none}
.svc-tile:hover{transform:translateY(-8px);border-color:transparent}
.svc-tile:hover::after{opacity:1}
.svc-tile:hover .planet{transform:scale(1.12) rotate(-10deg)}
.svc-tile:hover .planet::before{animation-duration:6s}
.svc-tile-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--s3)}
.svc-tile-no{font-family:var(--display);font-stretch:125%;font-weight:850;font-size:2rem;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.25);transition:-webkit-text-stroke-color .4s}
.svc-tile:hover .svc-tile-no{-webkit-text-stroke-color:var(--sun)}
.svc-tile h3{--fs:clamp(1.15rem,1.5vw,1.4rem);line-height:1.12}
.svc-tile p{margin:0;color:var(--muted);font-size:var(--t-small)}
.svc-tile .tags{margin-top:auto;padding-top:var(--s2)}
.svc-tile-foot{display:flex;justify-content:flex-end}
.svc-tile .arrow{width:48px;height:48px}
.svc-tile:hover .arrow{background:var(--grad);border-color:transparent;color:#0b0720;transform:rotate(-45deg)}

/* ---------- Page Services ---------- */
.svc-hero{padding-bottom:clamp(3rem,6vw,5rem)}
.svc-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.svc-hero-text .lead{margin-top:var(--s6)}
.svc-chips{display:none}
.solar{position:relative;width:min(100% - 3rem,600px);aspect-ratio:1;justify-self:center}
.solar-sun{position:absolute;inset:0;margin:auto;width:24%;height:auto;border-radius:50%;animation:spin 40s linear infinite;filter:drop-shadow(0 0 40px rgba(169,79,196,.55)) drop-shadow(0 0 80px rgba(95,211,238,.25))}
.solar-ring{position:absolute;inset:0;margin:auto;border-radius:50%;border:1px solid rgba(255,255,255,.1)}
.solar-ring.r1{width:44%;height:44%}.solar-ring.r2{width:68%;height:68%;border-color:rgba(255,255,255,.08)}.solar-ring.r3{width:90%;height:90%;border-color:rgba(255,255,255,.06)}
.solar-track{position:absolute;inset:0;margin:auto;border-radius:50%;animation:spin var(--t) linear infinite;animation-delay:var(--d);pointer-events:none}
.solar-track.k1{width:44%;height:44%}.solar-track.k2{width:68%;height:68%}.solar-track.k3{width:90%;height:90%}
.solar-planet{position:absolute;top:0;left:50%;translate:-50% -50%;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-decoration:none;pointer-events:auto;animation:spin var(--t) linear infinite reverse;animation-delay:var(--d)}
.solar-name{max-width:9.5rem;text-align:center;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.3;color:var(--ink-2);padding:.3rem .6rem;border-radius:var(--pill);background:rgba(7,5,26,.75);border:1px solid var(--line);transition:border-color .3s,color .3s}
.solar-planet:hover .solar-name,.solar-planet:focus-visible .solar-name{border-color:var(--sun);color:#fff}
.solar-planet:hover .planet{transform:scale(1.2)}
.svc-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:start;padding-bottom:var(--section-tight)}
.svc-rail{position:sticky;top:calc(var(--head-h) + var(--s5))}
.svc-rail ol{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;position:relative}
.svc-rail ol::before{content:"";position:absolute;left:10px;top:12px;bottom:12px;width:1px;background:linear-gradient(var(--line-2),transparent)}
.svc-rail a{position:relative;display:grid;grid-template-columns:22px auto minmax(0,1fr);gap:.6rem;align-items:center;padding:.55rem .6rem .55rem 0;text-decoration:none;color:var(--muted);font-size:.85rem;line-height:1.3;border-radius:var(--r-sm);transition:color .3s}
.svc-chips a span:last-child{min-width:0}
.svc-rail .rail-no{font-size:.68rem;font-weight:700;letter-spacing:.12em;color:var(--dim)}
.svc-rail a:hover,.svc-rail a[aria-current="true"]{color:#fff}
.svc-rail a[aria-current="true"] .rail-no{color:var(--sun)}
.svc-rail a[aria-current="true"] .planet{box-shadow:0 0 0 2px rgba(246,195,91,.9),0 0 18px rgba(246,195,91,.6)}
.svc-list{display:grid;gap:clamp(1.25rem,2vw,1.75rem)}
.svc-sec{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,4vw,4rem);align-items:center;padding:clamp(2.5rem,5vw,4.5rem);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;isolation:isolate;scroll-margin-top:calc(var(--head-h) + 1.5rem);
  background:radial-gradient(70% 90% at 20% 50%,rgba(109,95,240,.16),transparent 70%),linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0)),var(--card)}
.svc-sec::before{content:"";position:absolute;z-index:-1;left:-10%;top:50%;width:70%;aspect-ratio:1;translate:0 -50%;border-radius:50%;border:1px solid rgba(255,255,255,.06);box-shadow:0 0 0 60px rgba(255,255,255,.015),0 0 0 120px rgba(255,255,255,.012)}
.svc-sec.flip{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);background:radial-gradient(70% 90% at 80% 50%,rgba(95,211,238,.12),transparent 70%),linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0)),var(--card)}
.svc-sec.flip::before{left:auto;right:-10%}
.svc-sec.flip .svc-visual{order:2}
.svc-visual{position:relative;display:grid;place-items:center;min-height:clamp(260px,30vw,420px)}
.planet-stage{display:grid;place-items:center}
.svc-no{position:absolute;left:0;top:0;font-family:var(--display);font-stretch:125%;font-weight:850;font-size:clamp(3rem,6vw,5.5rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(246,195,91,.45)}
.svc-sec.flip .svc-no{left:auto;right:0}
.svc-body h2{--fs:clamp(1.6rem,3vw,2.7rem);margin-bottom:var(--s4)}
.svc-body .lead{margin:0 0 var(--s5);font-size:clamp(1.05rem,1.3vw,1.2rem)}
.svc-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--s5);margin-bottom:var(--s5)}
.svc-cols h3{font-family:var(--body);font-stretch:100%;text-transform:none;letter-spacing:.18em;--fs:.72rem;font-weight:700;color:var(--sun);text-transform:uppercase;margin-bottom:var(--s3);line-height:1.4}
.svc-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;font-size:var(--t-small)}
.svc-cols .checklist li{position:relative;padding-left:1.6rem}
.svc-cols .checklist li::before{content:"";position:absolute;left:0;top:.45em;width:.8rem;height:.8rem;border-radius:50%;background:var(--grad)}
.out-list li{padding:.55rem .85rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:rgba(255,255,255,.03);color:var(--ink-2)}
.journey-path{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s3)}
.journey-path::before{content:"";position:absolute;left:8%;right:8%;top:36px;height:1px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 6px,transparent 6px 14px)}
.journey-path::after{content:"";position:absolute;top:32px;left:8%;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 12px #fff,0 0 26px var(--sun);animation:voyage 9s var(--ease-io) infinite}
@keyframes voyage{0%{left:8%;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:92%;opacity:0}}
.journey-path a{position:relative;z-index:1;display:grid;justify-items:center;gap:.6rem;text-align:center;text-decoration:none}
.journey-path .jn{font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--sun)}
.journey-path .jt{font-weight:650;font-size:var(--t-small);line-height:1.35;max-width:14ch}
.journey-path a:hover .planet{transform:scale(1.15)}

/* ---------- Apparitions ---------- */
.js .rv{opacity:0;transform:translateY(46px);transition:opacity 1.1s var(--ease),transform 1.2s var(--ease);transition-delay:calc(var(--i,0) * 90ms)}
.js .rv.in{opacity:1;transform:none}
.js .ln-mask .ln{clip-path:inset(0 -5% 100% -5%);transform:translateY(35%);transition:clip-path 1.2s var(--ease),transform 1.2s var(--ease)}
.js .ln-mask.in .ln{clip-path:inset(-15% -5% -15% -5%);transform:none}
.js .ln-mask.in .ln + .ln{transition-delay:.14s}
.js .hero .ln-mask .ln{transition-duration:1.5s}
.swipe-hint{display:none;align-items:center;gap:.6rem;margin-top:var(--s4);color:var(--dim);font-size:var(--t-label);font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.swipe-hint::after{content:"";width:40px;height:1px;background:var(--grad)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv,.js .ln-mask .ln{opacity:1;transform:none;clip-path:none}
  .manifesto-text .w{opacity:1}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1200px){
  .sec-head .sh-title{grid-column:1 / span 12}
  .sec-head .sh-aside{grid-column:1 / span 8}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--s7)}
  .steps h3{min-height:0}
  .steps li::before{display:none}
  .foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-grid > div:first-child{grid-column:1 / -1}
}
@media (max-width:1200px){
  .planets{display:none}
}
@media (max-width:1300px){
  .nav-inline{display:none}
  .menu-btn{display:block}
}
@media (max-width:1100px){
  :root{--head-h:76px}
  .hero{justify-content:center}
  .hero-meta .wrap > :last-child{display:none}
  .hero-foot{grid-template-columns:minmax(0,1fr)}
  .hero-foot .btn-row{justify-content:flex-start}
  .split-sticky{grid-template-columns:minmax(0,1fr)}
  .split-sticky .sticky{position:static}
  .content-grid{grid-template-columns:minmax(0,1fr)}
  .aside{position:static}
  .aside-contact{order:-1}
  .preview{display:none}
  .logo-wall{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:900px){
  .markets,.two-way{grid-template-columns:minmax(0,1fr)}
  .quotes,.posts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quotes > .qcard,.quotes > .qcard:nth-child(-n+2){grid-column:auto}
  .quotes > :last-child:nth-child(odd),.posts > :last-child:nth-child(odd){grid-column:1 / -1}
  .prose.cards{grid-template-columns:minmax(0,1fr)}
  .bar-row{grid-template-columns:minmax(0,1fr)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(3){border-left:0;padding-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .sec-head,.manifesto{grid-template-columns:minmax(0,1fr)}
  .sec-head .sh-title,.sec-head .sh-aside,.manifesto > .label,.manifesto .manifesto-text,.manifesto .signature{grid-column:1 / -1}
  .manifesto > .label{margin-bottom:var(--s5)}
  .founder{grid-template-columns:minmax(0,1fr)}
  .portrait-wrap{max-width:420px}
  .p-orb{right:4%;top:-6%;width:34%}
  .p-chip{left:var(--s3);bottom:var(--s3)}
  .talk .wrap{grid-template-columns:minmax(0,1fr)}
  .logo-wall{grid-template-columns:repeat(3,minmax(0,1fr))}
  .orbits{--o:130vw;right:-40vw;opacity:.7}
  .planets{display:none}
}
@media (max-width:768px){
  .head-right .langs,.head-right .btn{display:none}
  .logo span{display:none}
  .hero{justify-content:center;padding-top:calc(var(--head-h) + var(--s8))}
  .hero-meta .wrap > :last-child{display:none}
  .hero-mission{justify-content:flex-start;text-align:left}
  .hero-foot .btn-row{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
  .hero-foot .btn{width:100%}
  .hero-langs{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
  .scroll-cue{display:none}
  .orbits{--o:150vw;top:30%;right:-62vw}
  .steps{grid-template-columns:minmax(0,1fr);padding:0 0 0 var(--s5);row-gap:var(--s6)}
  .steps::before,.steps::after{width:1px;height:100%}
  .steps::after{transform-origin:50% 0;transform:scaleY(var(--fill,0))}
  .steps li::before{display:block;left:calc(-1 * var(--s5) - 5px);top:.8rem}
  .work-row{grid-template-columns:minmax(0,1fr) auto;row-gap:var(--s3)}
  .work-row .idx{display:none}
  .work-row .meta{grid-column:1;grid-row:2;justify-items:start;text-align:left}
  .work-row .arrow{grid-column:2;grid-row:1 / span 2;width:48px;height:48px}
  .prose .work-row{grid-template-columns:minmax(0,1fr) auto}
  .prose .work-row .idx{display:block;grid-column:1;grid-row:1}
  .prose .work-row .cq{grid-column:1;grid-row:2}
  .prose .work-row .desc{grid-column:1 / -1}
  .prose .work-row .meta{grid-column:1 / -1;grid-row:auto;justify-items:start;text-align:left}
  .prose .work-row .arrow{grid-column:2;grid-row:1 / span 2}
  .row{grid-template-columns:minmax(0,1fr) auto}
  .row .num{grid-column:1;font-size:1.3rem}
  .row .body{grid-column:1 / -1;grid-row:2}
  .row .arrow{grid-column:2;grid-row:1;width:48px;height:48px}
  .quotes,.posts{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--s3);margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) var(--s3);scrollbar-width:none}
  .quotes::-webkit-scrollbar,.posts::-webkit-scrollbar{display:none}
  .quotes > *,.posts > *{flex:0 0 min(84vw,420px);scroll-snap-align:start}
  .swipe-hint{display:flex}
  .market{grid-template-columns:minmax(0,1fr);min-height:0}
  .market .flag-img{grid-row:auto;width:96px}
  .market h3{padding-right:0}
  .case-facts,.form{grid-template-columns:minmax(0,1fr)}
  .author-box{grid-template-columns:minmax(0,1fr)}
  .cta-inline{padding:var(--s4)}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-legal{flex-direction:column;align-items:flex-start}
  .refs{min-height:0;padding-block:var(--section-tight) var(--s7)}
  .ref-ring{display:none}
  .refs .center{width:100%}
  .logo-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logo-wall li{min-height:104px;padding:var(--s3) var(--s2);font-size:.68rem}
  .sec-head .sh-aside{grid-column:1 / -1}
  .page-hero .hero-orb{opacity:.35;top:calc(var(--head-h) + var(--s3))}
}
@media (max-width:600px){
  /* Sur téléphone, la chasse condensée donne plus de corps aux titres sans jamais couper un mot */
  :root{--t-h2:2.75rem;--t-h1:3rem}
  h1,h2,h3,.fitx{font-stretch:80%;font-size:min(var(--fs),calc(100cqi / var(--wc,var(--w,8))))}
  .post h3,.market h3{font-size:var(--fs)}
  .foot-word .fitx{font-size:min(var(--fs),calc(96cqi / var(--wc,8)))}
}
@media (max-width:480px){
  :root{--btn-h:3.25rem}
  .stats{grid-template-columns:minmax(0,1fr)}
  .stat,.stat:nth-child(3){border-left:0;padding:var(--s6) 0;border-top:1px solid var(--line)}
  .stat:first-child{border-top:0}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .btn{white-space:normal;text-align:center;padding-inline:1.4rem}
  .faq .ans{padding-right:0}
  .route .dash{width:28px}
}

/* ---------- Services : responsive ---------- */
@media (max-width:1200px){
  .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svc-layout{grid-template-columns:minmax(0,1fr)}
  .svc-rail{display:none}
  .journey-path{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--s6)}
  .journey-path::before,.journey-path::after{display:none}
}
@media (max-width:900px){
  .svc-hero-grid{grid-template-columns:minmax(0,1fr)}
  .solar{justify-self:center;width:min(100%,520px)}
  .svc-sec,.svc-sec.flip{grid-template-columns:minmax(0,1fr);padding:clamp(1.75rem,5vw,3rem)}
  .svc-sec.flip .svc-visual{order:0}
  .svc-visual{min-height:0;padding:var(--s6) 0 var(--s4)}
  .svc-sec.flip .svc-no{right:auto;left:0}
  .svc-cols{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .svc-grid{grid-template-columns:minmax(0,1fr)}
  .solar{display:none}
  .svc-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:var(--s2);list-style:none;margin:var(--s6) 0 0;padding:0}
  .svc-chips a{display:flex;align-items:center;gap:.6rem;min-height:3.25rem;padding:.5rem .8rem;border:1px solid var(--line-2);border-radius:var(--r-md);text-decoration:none;font-size:.82rem;font-weight:600;line-height:1.25;background:rgba(255,255,255,.03)}
  .journey-path{grid-template-columns:minmax(0,1fr);gap:var(--s2)}
  .journey-path a{grid-template-columns:auto auto minmax(0,1fr);justify-items:start;align-items:center;gap:var(--s3);text-align:left;padding:.4rem 0}
  .journey-path .jt{max-width:none}
  .journey-path .pl-md{--s:52px}
  .pl-lg{--s:min(62vw,240px)}
}
