/* Fovea Sécurité Privée : carte de la Creuse en relief, nuit bleue, iris du logo comme couleur d'action */
@font-face{font-family:"Archivo";src:url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2-variations"),url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url("../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url("../fonts/atkinson-hyperlegible-next-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible Next";src:url("../fonts/atkinson-hyperlegible-next-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  --paper:#f4f6fc; --paper-2:#e8ecf8; --ink:#0c1230; --ink-2:#464e6e; --ink-3:#656d8e;
  --rule:#d3d9ec; --frame:#0c1230;
  --acc:#4354c9; --acc-ink:#ffffff; --acc-deep:#2f3da8; --acc-soft:#e1e5fb; --iris:#6173d7;
  --night:#060a1c; --night-2:#0d1434; --night-ink:#e9ecfa; --night-ink-2:#a8b0d4; --night-rule:#26305e; --glow:#8fa0ff;
  --contour:#9aa6d8; --card:#fcfdff; --card-line:#dce2f3;
  --f-display:"Archivo","Arial Black","Helvetica Neue",sans-serif;
  --f-text:"Atkinson Hyperlegible Next","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-data:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --step-0:clamp(1rem,.97rem + .15vw,1.08rem); --step-1:clamp(1.18rem,1.1rem + .4vw,1.4rem);
  --step-2:clamp(1.5rem,1.3rem + .9vw,2rem); --step-3:clamp(1.75rem,1.45rem + 1.3vw,2.55rem); --step-4:clamp(2.1rem,1.6rem + 2.2vw,3.3rem);
  --gutter:clamp(16px,4vw,40px); --space:clamp(64px,9vw,128px);
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#070b1e; --paper-2:#0d1330; --ink:#e7eaf8; --ink-2:#a9b0cf; --ink-3:#8790b3; --rule:#1e2750; --frame:#b8c0e6;
  --acc:#8f9cff; --acc-ink:#0a0f2a; --acc-deep:#b4bdff; --acc-soft:#18205a; --contour:#2c3770; --card:#0f1639; --card-line:#243063; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#070b1e; --paper-2:#0d1330; --ink:#e7eaf8; --ink-2:#a9b0cf; --ink-3:#8790b3; --rule:#1e2750; --frame:#b8c0e6;
  --acc:#8f9cff; --acc-ink:#0a0f2a; --acc-deep:#b4bdff; --acc-soft:#18205a; --contour:#2c3770; --card:#0f1639; --card-line:#243063; color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-text);font-size:var(--step-0);line-height:1.6;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
a:hover{color:var(--acc)}
::selection{background:var(--acc);color:var(--acc-ink)}
:focus-visible{outline:3px solid var(--acc);outline-offset:3px;border-radius:3px}
h1,h2,h3{font-family:var(--f-display);font-weight:800;font-stretch:102%;line-height:1.06;letter-spacing:-.015em;text-wrap:balance;margin:0}
h1{font-size:var(--step-4)} h2{font-size:var(--step-3)} h3{font-size:var(--step-1);line-height:1.2;font-stretch:100%}
p{margin:0}
.wrap{width:100%;max-width:76rem;margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:40}
.skip:focus{left:12px;top:12px} .skip:hover{color:var(--paper)}
.mono{font-family:var(--f-data);font-variant-numeric:tabular-nums}
.todo{background:var(--acc-soft);outline:1px dashed var(--acc);padding:0 .25em;border-radius:2px}
::-webkit-scrollbar{width:12px;height:12px} ::-webkit-scrollbar-track{background:var(--paper-2)} ::-webkit-scrollbar-thumb{background:var(--rule);border:3px solid var(--paper-2);border-radius:6px}

/* Logos clair / sombre */
.logo-d{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-l{display:none}:root:not([data-theme="light"]) .logo-d{display:block}}
:root[data-theme="dark"] .logo-l{display:none} :root[data-theme="dark"] .logo-d{display:block}

/* En-tête */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:saturate(1.3) blur(10px);-webkit-backdrop-filter:saturate(1.3) blur(10px);border-bottom:1px solid var(--rule)}
.top .wrap{display:flex;align-items:center;gap:20px;height:70px}
.brand{display:flex;align-items:center;margin-right:auto}
.brand img{height:46px;width:auto}
.nav{display:flex;align-items:center;gap:24px}
.nav a{font-family:var(--f-display);font-weight:600;font-stretch:100%;font-size:1rem;text-decoration:none;color:var(--ink-2);padding:6px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--acc)}
.tel{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-data);font-weight:500;font-size:.92rem;text-decoration:none;white-space:nowrap;padding:10px 16px;border-radius:999px;background:var(--acc);color:var(--acc-ink)}
.tel:hover{background:var(--acc-deep);color:var(--acc-ink)}
.tel svg{width:16px;height:16px}
.menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer}
.menu-btn svg{width:20px;height:20px}
@media (max-width:1060px){
  .menu-btn{display:inline-flex}
  .top .tel span{display:none} .top .tel{padding:0;width:44px;height:44px;justify-content:center}
  .nav{position:absolute;left:0;right:0;top:70px;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--rule);padding:8px var(--gutter) 18px;display:none}
  .nav.open{display:flex}
  .nav a{padding:13px 0;border-bottom:1px solid var(--rule);font-size:1.15rem}
}
@media (max-width:420px){.brand img{height:34px}}

/* Boutons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 24px;border-radius:999px;border:1.5px solid currentColor;font-family:var(--f-display);font-weight:700;font-stretch:105%;font-size:1.02rem;text-decoration:none;white-space:nowrap;cursor:pointer;background:transparent;color:inherit;transition:background-color .2s,color .2s,border-color .2s,box-shadow .3s;will-change:transform}
.btn svg{width:18px;height:18px;flex:none;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn:active{transform:translateY(1px)}
.btn-acc{background:var(--acc);border-color:var(--acc);color:var(--acc-ink);box-shadow:0 10px 30px -12px color-mix(in srgb,var(--acc) 70%,transparent)}
.btn-acc:hover{background:var(--acc-deep);border-color:var(--acc-deep);color:var(--acc-ink)}
.btn-line{color:var(--ink)} .btn-line:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn[disabled]{opacity:.55;cursor:progress}
.actions{display:flex;flex-wrap:wrap;gap:12px}

/* ===== Accueil 3D (scène de nuit dans les deux thèmes) ===== */
.hero3d{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:#050816;color:#e9ecfa;isolation:isolate}
.hero3d canvas.gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero3d #map{display:none;position:absolute;inset:0;width:100%;height:100%}
.hero3d.no-webgl #map{display:block} .hero3d.no-webgl canvas.gl{display:none}
.hero3d::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,8,22,.85) 0%,rgba(5,8,22,.45) 38%,rgba(5,8,22,0) 62%)}
.labels{position:absolute;inset:0;pointer-events:none;z-index:2}
.pin{position:absolute;left:0;top:0;pointer-events:auto;opacity:0;transform:translate3d(-999px,-999px,0);display:flex;align-items:center;gap:7px;padding:4px 9px 4px 4px;border:0;border-radius:999px;background:transparent;color:#e9ecfa;font-family:var(--f-display);font-weight:600;font-stretch:92%;font-size:.92rem;cursor:pointer;white-space:nowrap;text-shadow:0 1px 3px rgba(4,6,20,1),0 0 10px rgba(4,6,20,.95)}
.pin::before{content:"";width:8px;height:8px;border-radius:50%;background:#e9ecfa;box-shadow:0 0 0 3px rgba(143,160,255,.3),0 0 14px rgba(143,160,255,.9)}
.pin.flip{flex-direction:row-reverse;padding:4px 4px 4px 9px}
@media (max-width:820px){.pin.minor:not(.on):not(:hover) span{display:none}.pin.minor{padding-right:4px}}
.pin:hover,.pin.on{color:#fff;background:rgba(67,84,201,.9);text-shadow:none}
.pin.pref{font-weight:800;font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;background:#4354c9;color:#fff;padding:6px 14px 6px 8px;text-shadow:none;box-shadow:0 0 0 4px rgba(143,160,255,.25),0 10px 30px -6px rgba(67,84,201,.9)}
.pin.pref::before{background:#fff}
.pin.base{color:#c9d0ff;font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:.76rem;pointer-events:none}
.pin.base::before{display:none}
.hero3d:not(.pins-on) .pin{pointer-events:none}

.pill{position:absolute;left:0;top:0;z-index:2;opacity:0;transform:translate3d(-999px,-999px,0);font-family:var(--f-data);font-size:.8rem;background:#fff;color:#0c1230;padding:6px 12px;border-radius:999px;white-space:nowrap;box-shadow:0 10px 30px -10px rgba(0,0,0,.7);pointer-events:none}
.acts{position:absolute;inset:0;z-index:3;pointer-events:none;display:grid;align-items:center}
.act{grid-area:1/1;max-width:min(36rem,46vw);pointer-events:auto}
@media (max-width:900px){.act{max-width:none}}
@media (min-width:901px){.hero3d:not(.static):not(.no-webgl) .act.a3{align-self:start;margin-top:clamp(96px,14vh,140px);max-width:24rem}.hero3d .act.a3 .big{font-size:clamp(1.5rem,1rem + 1.3vw,2.1rem)}.hero3d .act.a3 .lead{font-size:1rem;margin-bottom:16px}}
.act.a2,.act.a3{opacity:0;visibility:hidden}
.act h1{font-size:clamp(2.1rem,1.4rem + 2.4vw,3.5rem);color:#fff;margin-bottom:20px;text-shadow:0 2px 30px rgba(5,8,22,.8)}
.act h1 em{font-style:normal;color:#9aa8ff}
.act .big{font-family:var(--f-display);font-weight:800;font-stretch:102%;font-size:clamp(1.75rem,1.2rem + 2vw,2.9rem);line-height:1.08;letter-spacing:-.015em;color:#fff;text-wrap:balance;margin-bottom:18px}
.act .lead{color:#b4bcdf;font-size:var(--step-1);line-height:1.45;margin-bottom:26px;max-width:40ch}
.act .btn-line{color:#fff} .act .btn-line:hover{background:#fff;color:#0c1230;border-color:#fff}
.act .btn-acc{background:#4354c9;border-color:#4354c9;color:#fff} .act .btn-acc:hover{background:#5a6bdc;border-color:#5a6bdc}
.act .sheet{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;font-family:var(--f-data);font-size:.78rem;color:#a8b0d4}
.live{display:inline-flex;align-items:center;gap:8px}
.live i{width:8px;height:8px;border-radius:50%;background:#7dffb0;animation:ping 2.4s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(125,255,176,.55)}70%{box-shadow:0 0 0 10px rgba(125,255,176,0)}100%{box-shadow:0 0 0 0 rgba(125,255,176,0)}}
.progress{position:absolute;left:var(--gutter);right:var(--gutter);bottom:22px;height:2px;background:rgba(143,160,255,.18);z-index:3;border-radius:2px;overflow:hidden}
.progress i{display:block;height:100%;background:#8fa0ff;transform-origin:left;transform:scaleX(0)}
/* sans animation : les trois textes s'empilent, scène fixe */
.hero3d.static,.hero3d.no-webgl{height:auto;min-height:100svh}
.hero3d.static .acts,.hero3d.no-webgl .acts{position:relative;display:flex;flex-direction:column;justify-content:center;gap:40px;padding-block:120px 80px;min-height:100svh}
.hero3d.static .act,.hero3d.no-webgl .act{opacity:1;visibility:visible}
.hero3d.static .progress,.hero3d.no-webgl .progress{display:none}
@media (max-width:820px){
  .hero3d::after{background:linear-gradient(0deg,rgba(5,8,22,.95) 0%,rgba(5,8,22,.6) 42%,rgba(5,8,22,0) 66%)}
  .acts{align-items:end;padding-bottom:56px}
  .act h1{font-size:clamp(2rem,8.4vw,2.8rem);margin-bottom:12px}
  .act .big{font-size:clamp(1.7rem,7.4vw,2.4rem)}
  .act .lead{font-size:1.05rem;margin-bottom:18px}
  .act .sheet{margin-top:16px}
}
@media (prefers-reduced-motion:reduce){.live i{animation:none}}

/* Sections */
.section{padding-block:var(--space);position:relative}
.section + .section{border-top:1px solid var(--rule)}
.head{display:grid;gap:14px;margin-bottom:clamp(32px,5vw,60px);max-width:46rem}
.head p{color:var(--ink-2);font-size:var(--step-1);line-height:1.45}

/* Services : cartes 3D */
.services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;perspective:1200px}
.svc{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:start;padding:30px;border-radius:22px;background:var(--paper);border:1px solid var(--rule);text-decoration:none;color:var(--ink);transform-style:preserve-3d;transition:border-color .3s,box-shadow .3s;box-shadow:0 1px 0 rgba(12,18,48,.04)}
.svc:hover{color:var(--ink);border-color:color-mix(in srgb,var(--acc) 45%,var(--rule));box-shadow:0 30px 60px -30px color-mix(in srgb,var(--acc) 45%,transparent)}
.svc::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--acc) 14%,transparent),transparent 45%);opacity:0;transition:opacity .3s}
.svc:hover::after{opacity:1}
.svc > div{display:flex;flex-direction:column;height:100%}
.svc .more{margin-top:auto}
.svc .sym{transition:color .35s,background-color .35s,box-shadow .35s}
.svc h3{font-size:clamp(1.3rem,1.15rem + .5vw,1.6rem);margin-bottom:8px}
.svc p{color:var(--ink-2);margin-bottom:14px}
.svc .more{font-family:var(--f-display);font-weight:700;color:var(--acc);display:inline-flex;align-items:center;gap:6px}
.svc .more svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.svc:hover .more svg{transform:translateX(4px)}
.sym{width:72px;height:72px;color:var(--acc);display:grid;place-items:center;border-radius:18px;background:var(--acc-soft)}
.sym svg{width:46px;height:46px}
@media (max-width:820px){.services{grid-template-columns:1fr}.svc{grid-template-columns:56px minmax(0,1fr);padding:22px}.sym{width:56px;height:56px;border-radius:14px}.sym svg{width:36px;height:36px}}

/* Section œil (scène de nuit) */
.eye-sec{background:var(--night);color:var(--night-ink);overflow:hidden;border-top:0!important}
.eye-sec .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.eye-stage{position:relative;aspect-ratio:1;max-width:520px;width:100%;justify-self:center}
.eye-stage canvas{width:100%;height:100%}
.eye-stage img{position:absolute;inset:12%;width:76%;height:76%}
.eye-stage.ready img{display:none}
.eye-sec h2{color:#fff}
.eye-sec p{color:var(--night-ink-2);font-size:var(--step-1);line-height:1.5;margin-top:18px;max-width:40ch}
.eye-sec .def{margin-top:26px;padding:18px 20px;border-radius:16px;border:1px solid var(--night-rule);font-size:.98rem;color:var(--night-ink-2);max-width:44ch}
.eye-sec .def b{color:#fff;font-family:var(--f-display);font-stretch:105%}
@media (max-width:820px){.eye-sec .wrap{grid-template-columns:1fr}.eye-stage{max-width:340px}}

/* Mission : étapes + main courante */
.mission{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:start}
.steps-wrap{position:relative}
.steps{list-style:none;margin:0;padding:0 0 0 34px;display:grid;position:relative;counter-reset:s}
.steps-wrap::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:var(--rule)}
.steps-wrap .track{position:absolute;left:11px;top:8px;width:2px;height:calc(100% - 16px);background:var(--acc);transform-origin:top;transform:scaleY(1)}
.steps li{position:relative;padding:0 0 30px;counter-increment:s}
.steps li::before{content:counter(s);position:absolute;left:-34px;top:0;width:24px;height:24px;border-radius:50%;background:var(--paper);border:2px solid var(--acc);color:var(--acc);font-family:var(--f-display);font-weight:800;font-size:.8rem;display:grid;place-items:center}
.steps h3{margin-bottom:6px}
.steps p{color:var(--ink-2)}
.logbook{border-radius:22px;background:var(--night);color:var(--night-ink);padding:26px 26px 20px;box-shadow:0 40px 80px -50px rgba(6,10,28,.9);position:sticky;top:100px}
.logbook h3{font-size:var(--step-1);margin-bottom:16px;display:flex;justify-content:space-between;gap:12px;align-items:center;color:#fff}
.logbook ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.logbook li{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px dashed var(--night-rule)}
.logbook time{font-family:var(--f-data);font-size:.88rem;color:var(--glow);font-variant-numeric:tabular-nums}
.logbook .ok{font-family:var(--f-data);font-size:.75rem;color:#7dffb0;margin-left:8px}
.logbook small{display:block;margin-top:14px;color:var(--night-ink-2);font-size:.84rem;line-height:1.45}
@media (max-width:900px){.mission{grid-template-columns:1fr}.logbook{position:relative;top:0}}

/* Zone */
.index{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(28px,5vw,64px)}
.index-list{columns:2;column-gap:32px;margin:0;padding:0;list-style:none}
.index-list li{break-inside:avoid}
.index-list button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:11px 6px;background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:6px;transition:background-color .2s,color .2s}
.index-list button:hover{color:var(--acc);background:var(--acc-soft)}
.index-list .n{font-family:var(--f-display);font-weight:600;font-stretch:96%;font-size:1.1rem}
.index-list .g,.index-list .d{font-family:var(--f-data);font-size:.8rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
.depts{border-radius:22px;background:var(--paper-2);padding:26px}
.depts h3{margin-bottom:14px}
.depts ul{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:8px;font-family:var(--f-display);font-weight:700;font-stretch:100%;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase}
.depts p{color:var(--ink-2);font-size:.95rem}
@media (max-width:820px){.index{grid-template-columns:1fr}.index-list{columns:1}}

/* Bande d appel à l action */
.band{background:linear-gradient(120deg,#2f3da8,#4354c9 55%,#6173d7);color:#fff;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;inset:-40% -10% auto auto;width:60vw;height:60vw;border-radius:50%;border:1px solid rgba(255,255,255,.18);box-shadow:0 0 0 60px rgba(255,255,255,.03),0 0 0 120px rgba(255,255,255,.03)}
.band .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:28px;align-items:center;padding-block:clamp(56px,8vw,96px)}
.band h2{font-size:var(--step-3)}
.band p{margin-top:12px;font-size:var(--step-1);line-height:1.45;max-width:46ch;color:#e6e9ff}
.band .btn{color:#fff}
.band .btn:hover{background:#fff;color:#2f3da8;border-color:#fff}
@media (max-width:820px){.band .wrap{grid-template-columns:1fr}}

/* Cadre légal */
.notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.notes > div{padding:26px;border-radius:22px;border:1px solid var(--rule)}
.notes h3{margin-bottom:10px}
.notes p{color:var(--ink-2)}
@media (max-width:820px){.notes{grid-template-columns:1fr}}

/* Split / appel final */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,80px);align-items:end}
.split p{color:var(--ink-2);font-size:var(--step-1);line-height:1.45;margin-top:14px}
.call{display:grid;gap:16px;justify-items:start}
.call .num{font-family:var(--f-display);font-weight:800;font-stretch:100%;font-size:clamp(1.9rem,1.3rem + 2.4vw,3rem);white-space:nowrap;line-height:1;text-decoration:none;letter-spacing:-.01em}
.call .num:hover{color:var(--acc)}
.call .mail{font-family:var(--f-data);font-size:1rem;word-break:break-all}
.copy{font:inherit;font-family:var(--f-display);font-weight:600;font-size:.9rem;background:none;border:1px solid var(--rule);border-radius:999px;padding:4px 12px;color:var(--ink-2);cursor:pointer;margin-left:8px}
.copy:hover{border-color:var(--acc);color:var(--acc)}
@media (max-width:820px){.split{grid-template-columns:1fr;align-items:start}}

/* Pages intérieures */
.page-head{background:var(--night);color:var(--night-ink);position:relative;overflow:hidden}
.page-head .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;padding-block:clamp(52px,7vw,96px) clamp(40px,5vw,64px)}
.page-head h1{color:#fff}
.page-head .lead{color:var(--night-ink-2);font-size:var(--step-1);line-height:1.45;margin-top:16px;max-width:52ch}
.page-head .crumbs{font-family:var(--f-data);font-size:.8rem;color:var(--night-ink-2);margin-bottom:18px}
.page-head .crumbs a{color:var(--night-ink-2)}
.page-head .sym{width:120px;height:120px;border-radius:30px;background:rgba(143,160,255,.12);color:var(--glow)}
.page-head .sym svg{width:74px;height:74px}
.contours{position:absolute;inset:0;width:100%;height:100%;opacity:.9;pointer-events:none}
@media (max-width:700px){.page-head .wrap{grid-template-columns:1fr}.page-head .sym{display:none}}
.cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(32px,6vw,80px)}
.ticks{list-style:none;margin:0;padding:0;display:grid}
.ticks li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;padding:15px 0;border-bottom:1px solid var(--rule)}
.ticks li::before{content:"";width:14px;height:14px;margin-top:.4em;border-radius:50%;background:radial-gradient(circle,var(--acc) 35%,transparent 38%);border:2px solid var(--acc)}
.ticks b{font-weight:600}
.for{border-radius:22px;background:var(--paper-2);padding:26px;align-self:start}
.for h3{margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips li{background:var(--paper);border:1px solid var(--rule);border-radius:999px;padding:5px 14px;font-family:var(--f-display);font-weight:600;font-stretch:96%;font-size:.95rem}
.for p{margin-top:16px;color:var(--ink-2);font-size:.95rem}
@media (max-width:820px){.cols{grid-template-columns:1fr}}
.faq{max-width:52rem}
.faq details{border-bottom:1px solid var(--rule)}
.faq details:first-child{border-top:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:22px 0;font-family:var(--f-display);font-weight:700;font-stretch:104%;font-size:var(--step-1)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;border-right:2px solid var(--acc);border-bottom:2px solid var(--acc);transform:rotate(45deg) translateY(-3px);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(225deg)}
.faq details p{padding:0 0 22px;color:var(--ink-2);max-width:62ch}
.prose{max-width:46rem}
.prose h2{font-size:var(--step-2);margin:44px 0 12px}
.prose h2:first-child{margin-top:0}
.prose p,.prose ul{margin:0 0 14px;color:var(--ink-2)}
.prose ul{padding-left:1.2em} .prose li{margin-bottom:6px}
.prose strong{color:var(--ink);font-weight:600}
.legal-table{border-collapse:collapse;width:100%;margin:8px 0 18px;font-size:.95rem}
.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-bottom:1px solid var(--rule)}
.legal-table th{font-weight:600;color:var(--ink);width:38%}
.table-scroll{overflow-x:auto}

/* Formulaires */
.form-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,6vw,72px);align-items:start}
.form{display:grid;gap:20px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:end}
.field{display:grid;gap:7px}
.field label{font-weight:600;font-size:.98rem}
.field .opt{font-weight:400;color:var(--ink-3)}
.field input,.field select,.field textarea{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--rule);border-radius:12px;padding:12px 14px;min-height:52px;transition:border-color .2s,box-shadow .2s}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-3)}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 4px color-mix(in srgb,var(--acc) 22%,transparent)}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}
.field[data-invalid] input,.field[data-invalid] textarea,.field[data-invalid] select{border-color:#c2361d}
.field .err{color:#c2361d;font-size:.9rem}
:root[data-theme="dark"] .field .err{color:#ff8a73}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .field .err{color:#ff8a73}}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.fine{font-size:.88rem;color:var(--ink-3);line-height:1.5}
.status{border:1.5px solid var(--frame);padding:16px 18px;border-radius:12px;font-size:.98rem}
.status.ok{border-color:#2f7d4f;background:color-mix(in srgb,#2f7d4f 10%,var(--paper))}
.status.ko{border-color:#c2361d;background:color-mix(in srgb,#c2361d 9%,var(--paper))}
.aside-card{border-radius:22px;background:var(--night);color:var(--night-ink);padding:28px;display:grid;gap:18px}
.aside-card dt{font-family:var(--f-data);font-size:.76rem;color:var(--night-ink-2);text-transform:uppercase;letter-spacing:.06em}
.aside-card dd{margin:2px 0 0;font-family:var(--f-display);font-weight:800;font-stretch:100%;font-size:1.45rem;line-height:1.25;word-break:break-word;color:#fff}
.aside-card dd a{white-space:nowrap}
.aside-card dd a{color:#fff}
.aside-card dd.small{font-family:var(--f-text);font-weight:400;font-size:1rem;color:var(--night-ink-2)}
.aside-card dl{margin:0;display:grid;gap:18px}
.aside-card .copy{color:var(--night-ink-2);border-color:var(--night-rule)}
@media (max-width:860px){.form-layout{grid-template-columns:1fr}.row{grid-template-columns:1fr}}

/* Pied de page */
.foot{background:var(--night);color:var(--night-ink-2);padding-block:56px 32px;font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:32px}
.foot img{height:44px;width:auto}
.foot h2{font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;color:#fff}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.foot a{color:var(--night-ink-2);text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot .legal{margin-top:40px;padding-top:20px;border-top:1px solid var(--night-rule);display:grid;gap:8px;font-family:var(--f-data);font-size:.76rem;line-height:1.7}
.foot .legal strong{font-family:var(--f-text);font-size:.88rem;font-weight:600;color:var(--night-ink)}
.foot .todo{color:var(--ink)}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

/* Animations : le contenu reste visible sans JavaScript ; GSAP ajoute les entrées */
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Grand bouton */
.btn-xl{min-height:64px;padding:16px 34px;font-size:1.2rem}
.btn-xl svg{width:22px;height:22px}


/* Contact final */
.contact-end{background:var(--paper-2)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.contact-grid h2{max-width:16ch}
.contact-grid > div > p{color:var(--ink-2);font-size:var(--step-1);line-height:1.5;margin-top:16px;max-width:42ch}
.contact-card{background:var(--paper);border:1px solid var(--rule);border-radius:22px;padding:28px;display:grid;gap:18px;box-shadow:0 30px 60px -40px rgba(12,18,48,.35)}
.call-big{display:flex;align-items:center;gap:18px;text-decoration:none;padding:18px 20px;border-radius:16px;background:var(--night);color:#fff;transition:background-color .2s}
.call-big:hover{background:#4354c9;color:#fff}
.call-big svg{width:30px;height:30px;flex:none;color:#9aa8ff}
.call-big span{display:grid;line-height:1.1;font-family:var(--f-display);font-weight:800;font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem);white-space:nowrap}
.call-big small{font-family:var(--f-text);font-weight:400;font-size:.9rem;color:#b4bcdf;margin-bottom:4px}
.mail-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mail-row .mail{font-family:var(--f-data);font-size:1rem;word-break:break-all}
.mail-row .copy{margin-left:0}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}

/* ===== Mission : fond 3D animé + main courante vivante ===== */
.mission-sec{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(90% 70% at 75% 30%,#141d52 0%,var(--night) 70%);color:var(--night-ink);padding-block:var(--space)}
.mission-sec h2,.mission-sec h3{color:#fff}
.mission-sec .steps p{color:var(--night-ink-2)}
.mission-sec .steps-wrap::before{background:var(--night-rule)}
.mission-sec .steps-wrap .track{background:linear-gradient(#8f9cff,#4354c9);box-shadow:0 0 12px #6173d7}
.mission-sec .steps li::before{background:var(--night);border-color:var(--night-rule);color:var(--night-ink-2);transition:all .4s var(--ease)}
.mission-sec .steps li.on::before{background:#4354c9;border-color:#8f9cff;color:#fff;box-shadow:0 0 0 6px rgba(97,115,215,.18),0 0 18px #6173d7}
.m-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.m-floor{position:absolute;left:-40%;right:-40%;bottom:0;height:62%;perspective:380px;perspective-origin:50% 0%;
  -webkit-mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.6) 45%,transparent 100%);mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.6) 45%,transparent 100%)}
.m-floor i{position:absolute;inset:-60% 0 0;transform:rotateX(64deg);transform-origin:50% 100%;
  background-image:linear-gradient(rgba(143,160,255,.38) 1px,transparent 1px),linear-gradient(90deg,rgba(143,160,255,.38) 1px,transparent 1px);background-size:64px 64px;animation:floor 2.6s linear infinite}
@keyframes floor{to{background-position:0 64px}}
.m-glow{position:absolute;width:60vmax;height:60vmax;left:50%;top:40%;border-radius:50%;background:radial-gradient(closest-side,rgba(67,84,201,.38),transparent);animation:drift 14s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate(-30%,-50%)}to{transform:translate(-75%,-40%)}}
.m-scan{position:absolute;left:0;right:0;height:140px;top:-140px;background:linear-gradient(transparent,rgba(143,160,255,.10),transparent);animation:scan 7s linear infinite}
@keyframes scan{to{top:100%}}
.lb-stage{position:relative;perspective:1300px;padding:20px 0 50px}
.mission-sec .logbook{position:relative;top:0;transform-style:preserve-3d;transform:rotateY(-16deg) rotateX(9deg) rotateZ(1deg);
  background:linear-gradient(160deg,rgba(32,44,110,.92),rgba(10,15,42,.96));border:1px solid rgba(143,160,255,.35);border-radius:22px;padding:24px 24px 18px;
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset,-2px 2px 0 #1b2560,-4px 4px 0 #161f52,-6px 6px 0 #111944,-8px 8px 0 #0c1338,0 60px 90px -40px rgba(0,0,0,.9),0 0 60px -10px rgba(97,115,215,.45);will-change:transform}
.mission-sec .logbook::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.09) 45%,transparent 60%);background-size:250% 100%;animation:sheen 6s ease-in-out infinite}
@keyframes sheen{0%,100%{background-position:120% 0}50%{background-position:-20% 0}}
.lb-shadow{position:absolute;left:12%;right:12%;bottom:6px;height:30px;border-radius:50%;background:radial-gradient(closest-side,rgba(97,115,215,.45),transparent);filter:blur(6px)}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.lb-top h3{font-size:var(--step-1);margin:0}
.lb-rec{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-data);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#7dffb0;background:rgba(125,255,176,.08);border:1px solid rgba(125,255,176,.3);padding:5px 10px;border-radius:99px;white-space:nowrap}
.lb-rec i{width:7px;height:7px;border-radius:50%;background:#7dffb0;animation:ping 1.6s infinite}
.lb-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.84rem;color:var(--night-ink-2)}
.lb-clock{font-family:var(--f-data);font-size:1.9rem;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(143,160,255,.8)}
.lb-bar{height:3px;border-radius:3px;background:var(--night-rule);margin:10px 0 8px;overflow:hidden}
.lb-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#4354c9,#8f9cff);transform-origin:left;transform:scaleX(1)}
.lb-lines{list-style:none;margin:0;padding:0;display:grid;min-height:17.5rem;align-content:start}
.lb-lines li{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px dashed var(--night-rule);font-size:.95rem}
.lb-lines time{font-family:var(--f-data);font-size:.86rem;color:var(--glow);font-variant-numeric:tabular-nums}
.lb-lines .ok{font-family:var(--f-data);font-size:.72rem;color:#7dffb0;border:1px solid rgba(125,255,176,.35);border-radius:6px;padding:1px 6px}
.lb-lines .alert .ok{color:#ffc56b;border-color:rgba(255,197,107,.45)}
.lb-lines li.new{animation:flash 1.2s ease-out}
@keyframes flash{from{background:rgba(143,160,255,.18)}to{background:transparent}}
.lb-lines .tx.typing::after{content:"";display:inline-block;width:.5em;height:1em;margin-left:2px;vertical-align:-2px;background:#8f9cff;animation:blink .8s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.mission-sec .logbook small{display:block;margin-top:12px;color:var(--night-ink-2);font-size:.8rem}
@media (max-width:900px){.mission-sec .logbook{transform:rotateX(6deg)}.lb-lines li{font-size:.9rem}}
@media (prefers-reduced-motion:reduce){.m-floor i,.m-glow,.m-scan,.mission-sec .logbook::after,.lb-rec i{animation:none}}

/* ===== Recrutement ===== */
.recruit{position:relative;overflow:hidden;isolation:isolate;background:var(--night);color:#fff}
.rc-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.rc-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.75;mix-blend-mode:screen}
.rc-blob.b1{width:46vmax;height:46vmax;left:-10%;top:-40%;background:#2f3da8;animation:blobA 16s ease-in-out infinite alternate}
.rc-blob.b2{width:38vmax;height:38vmax;right:-8%;bottom:-50%;background:#4354c9;animation:blobB 13s ease-in-out infinite alternate}
.rc-blob.b3{width:26vmax;height:26vmax;left:45%;top:10%;background:#6b4fd6;opacity:.45;animation:blobA 19s ease-in-out infinite alternate-reverse}
@keyframes blobA{to{transform:translate(30%,25%) scale(1.15)}}
@keyframes blobB{to{transform:translate(-35%,-20%) scale(.9)}}

.recruit-in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(80px,10vw,140px)}
.recruit-in > div:first-child{max-width:40rem}.rc-cta{margin-top:34px}
.rc-kick{font-family:var(--f-data);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#9aa8ff;margin:0 0 14px}
.rc-title{color:#fff;font-size:var(--step-4);line-height:1.05;margin:0}
.rc-title .ln{display:block;overflow:hidden;padding-bottom:.06em}
.rc-title .ln > span{display:block}
.rc-title em{font-style:normal;background:linear-gradient(90deg,#9aa8ff,#e3e7ff,#9aa8ff);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 5s linear infinite}
@keyframes shine{to{background-position:-200% 0}}
.rc-sub{color:#c3c9e8;font-size:var(--step-1);line-height:1.5;margin-top:18px;max-width:42ch}
.btn-shine{position:relative;overflow:hidden;box-shadow:0 0 0 0 rgba(97,115,215,.6);animation:halo 2.8s ease-out infinite}
.btn-shine::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:glint 3.6s ease-in-out infinite}
@keyframes glint{0%,55%{left:-60%}85%,100%{left:130%}}
@keyframes halo{0%{box-shadow:0 0 0 0 rgba(97,115,215,.55)}70%,100%{box-shadow:0 0 0 18px rgba(97,115,215,0)}}
.recruit .btn-xl{min-height:72px;padding:18px 44px;font-size:1.3rem}
@media (max-width:820px){.recruit-in{grid-template-columns:1fr}.rc-cta{justify-self:stretch}.rc-cta .btn{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){.rc-blob,.rc-title em,.btn-shine,.btn-shine::after{animation:none}}

/* ===== Contact ===== */
.contact-end{overflow:hidden;isolation:isolate}
.ce-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.ce-bg span{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;background:#b9c2f5;width:40vmax;height:40vmax;left:-12%;top:-30%;animation:blobA 18s ease-in-out infinite alternate}
.ce-bg span+span{background:#cfd5fb;left:auto;right:-14%;top:auto;bottom:-40%;animation:blobB 15s ease-in-out infinite alternate}
.contact-grid h2 em{font-style:normal;color:var(--acc)}
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
.contact-card{position:relative;border:0;background:linear-gradient(var(--paper),var(--paper)) padding-box,conic-gradient(from var(--ang),#4354c9,#c9d0ff,#8f9cff,#4354c9) border-box;border:2px solid transparent;animation:spin 6s linear infinite;gap:16px}
@keyframes spin{to{--ang:360deg}}
.contact-card .avail{margin:0;display:flex;justify-content:center;align-items:center;text-align:center;padding:14px 16px;border-radius:14px;background:var(--acc-soft);color:var(--acc-deep)}
.contact-card .avail .live{font-family:var(--f-display);font-weight:800;font-stretch:105%;font-size:1.05rem;letter-spacing:.1em;text-transform:uppercase;gap:12px}
.contact-card .avail .live i{width:10px;height:10px;background:#1fbf6b}
.ring{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:50%;background:rgba(143,160,255,.16);animation:ringbg 3s ease-out infinite}
.ring svg{animation:ring 3s ease-in-out infinite;transform-origin:50% 50%}
@keyframes ring{0%,60%,100%{transform:rotate(0)}64%,72%,80%{transform:rotate(-14deg)}68%,76%{transform:rotate(14deg)}}
@keyframes ringbg{0%,60%{box-shadow:0 0 0 0 rgba(143,160,255,.5)}90%,100%{box-shadow:0 0 0 14px rgba(143,160,255,0)}}
.call-big{position:relative;overflow:hidden}
.call-big::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.12) 50%,transparent 65%);background-size:250% 100%;animation:sheen 5s ease-in-out infinite}
.mail-row{justify-content:center}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ce-bg span{background:#1b2464}:root:not([data-theme="light"]) .contact-card .avail{color:#c9d0ff}}
:root[data-theme="dark"] .ce-bg span{background:#1b2464}:root[data-theme="dark"] .contact-card .avail{color:#c9d0ff}
@media (prefers-reduced-motion:reduce){.ce-bg span,.contact-card,.ring,.ring svg,.call-big::after{animation:none}}
@media (max-width:460px){.contact-card{padding:20px}.contact-card .avail .live{font-size:.86rem;letter-spacing:.05em;white-space:nowrap}.call-big{padding:16px}.ring{width:44px;height:44px}}
@media (min-width:1000px){.services{grid-template-columns:repeat(3,minmax(0,1fr))}.services .svc{grid-template-columns:1fr;gap:18px}}
@media (min-width:821px) and (max-width:999px){.services{grid-template-columns:1fr}}

/* Recrutement : badge d'équipe en 3D */
.rc-ray{position:absolute;top:-20%;width:38vmax;height:140%;background:linear-gradient(90deg,transparent,rgba(143,160,255,.10),transparent);transform:rotate(18deg);filter:blur(6px);animation:ray 9s ease-in-out infinite alternate}
.rc-ray.r1{left:45%}.rc-ray.r2{left:68%;width:20vmax;animation-duration:12s;animation-direction:alternate-reverse}
@keyframes ray{from{transform:rotate(18deg) translateX(-12vw)}to{transform:rotate(24deg) translateX(10vw)}}
.bd-stage{position:relative;justify-self:center;perspective:1200px;padding-top:120px;width:min(100%,360px)}
.bd-strap{position:absolute;left:50%;top:-140px;width:34px;height:262px;transform:translateX(-50%);background:repeating-linear-gradient(90deg,#3443b8 0 6px,#4354c9 6px 28px,#3443b8 28px 34px);border-radius:0 0 4px 4px;box-shadow:0 0 30px rgba(67,84,201,.4)}
.bd-strap::after{content:"FOVEA · FOVEA · FOVEA";position:absolute;left:50%;top:20px;writing-mode:vertical-rl;transform:translateX(-50%);font-family:var(--f-display);font-weight:800;font-size:.6rem;letter-spacing:.3em;color:rgba(255,255,255,.55)}
.bd-clip{position:absolute;left:50%;top:112px;width:44px;height:22px;transform:translateX(-50%);border-radius:6px;background:linear-gradient(#d9deeb,#8d94a8);box-shadow:0 2px 6px rgba(0,0,0,.4);z-index:2}
.bd{position:relative;transform-origin:50% -60px;transform-style:preserve-3d;aspect-ratio:.68;border-radius:22px;padding:22px;display:grid;grid-template-rows:auto 1fr auto;gap:16px;overflow:hidden;
  background:linear-gradient(155deg,#1c2766 0%,#0d1440 55%,#0a0f30 100%);border:1px solid rgba(143,160,255,.4);
  box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 50px 80px -30px rgba(0,0,0,.8),0 0 70px -10px rgba(97,115,215,.55);--hx:50%;--hy:50%;will-change:transform}
.bd::before{content:"";position:absolute;left:50%;top:12px;width:56px;height:10px;transform:translateX(-50%);border-radius:6px;background:#060a1c;box-shadow:0 1px 0 rgba(255,255,255,.12)}
.bd-top{display:flex;align-items:center;justify-content:space-between;padding-top:12px}
.bd-top img{height:30px;width:auto}
.bd-top span{font-family:var(--f-data);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#9aa8ff;border:1px solid rgba(143,160,255,.4);border-radius:99px;padding:4px 10px}
.bd-mid{display:grid;justify-items:center;align-content:center;gap:16px;text-align:center}
.bd-photo{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#2a3890,#121a52);border:2px dashed rgba(143,160,255,.6);color:rgba(143,160,255,.55);overflow:hidden}
.bd-photo svg{width:76px;height:76px;margin-top:14px}
.bd-name{display:grid;gap:4px}
.bd-name small{font-family:var(--f-data);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#9aa8ff}
.bd-name b{font-family:var(--f-display);font-weight:800;font-size:1.55rem;color:#fff;line-height:1.1}
.bd-tag{justify-self:center;margin-top:8px;font-size:.78rem;color:#7dffb0;background:rgba(125,255,176,.1);border:1px solid rgba(125,255,176,.35);border-radius:99px;padding:3px 10px}
.bd-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.72rem;color:#a8b0d4;border-top:1px dashed rgba(143,160,255,.3);padding-top:12px}
.bd-chip{width:38px;height:28px;border-radius:6px;flex:none;background:linear-gradient(135deg,#f3d58a,#b8913a);box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.bd-holo{position:absolute;inset:0;pointer-events:none;mix-blend-mode:color-dodge;opacity:.35;
  background:linear-gradient(115deg,transparent 20%,rgba(255,80,200,.5) 35%,rgba(80,200,255,.55) 45%,rgba(120,255,170,.5) 55%,transparent 70%);background-size:220% 220%;background-position:var(--hx) var(--hy)}
.bd-glare{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--hx) var(--hy),rgba(255,255,255,.28),transparent 45%)}
@media (max-width:820px){.recruit-in{grid-template-columns:1fr}.bd-stage{width:min(78%,290px);padding-top:76px;margin-top:8px}.bd-strap{top:0;height:96px}.bd-clip{top:66px}}
@media (prefers-reduced-motion:reduce){.rc-ray{animation:none}}
.bd-strap{overflow:hidden}.bd-strap::after{white-space:nowrap}

/* Contact : fond qui respire et carte qui flotte */
.ce-bg span{animation-duration:9s!important}.ce-bg span+span{animation-duration:11s!important}
.ce-dots{position:absolute;inset:-60px;background-image:radial-gradient(color-mix(in srgb,var(--acc) 22%,transparent) 1.2px,transparent 1.6px);background-size:28px 28px;
  -webkit-mask-image:radial-gradient(70% 80% at 70% 50%,#000,transparent);mask-image:radial-gradient(70% 80% at 70% 50%,#000,transparent);animation:dots 14s linear infinite}
@keyframes dots{to{transform:translate(28px,28px)}}
@media (prefers-reduced-motion:reduce){.ce-dots{animation:none}}

/* Recrutement : carrousel 3D d'annonces */
.rc-wrap{padding-block:clamp(80px,10vw,130px);display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}
.rc-head{max-width:46rem}
.rc-head .rc-sub{margin-inline:auto}
.jobs{width:100%;height:430px;overflow:hidden;perspective:1700px;perspective-origin:50% 40%;margin-top:28px;position:relative;touch-action:pan-y;cursor:grab}
.jobs:active{cursor:grabbing}
.jobs-ring{list-style:none;margin:0;padding:0;position:absolute;left:50%;top:30px;width:280px;height:350px;margin-left:-140px;transform-style:preserve-3d}
.jobs-ring li{position:absolute;inset:0}
.job{display:flex;flex-direction:column;height:100%;padding:24px;border-radius:22px;text-align:left;text-decoration:none;color:#fff;
  background:linear-gradient(160deg,#28368c,#0c1234);border:1px solid rgba(143,160,255,.4);
  box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 40px 70px -30px rgba(0,0,0,.85),0 0 50px -12px rgba(97,115,215,.6);transition:border-color .3s,box-shadow .3s}
.job:hover{color:#fff;border-color:#c9d0ff;box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 40px 70px -30px rgba(0,0,0,.85),0 0 70px -6px rgba(143,160,255,.9)}
.job-k{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-family:var(--f-data);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#7dffb0;background:rgba(125,255,176,.1);border:1px solid rgba(125,255,176,.35);border-radius:99px;padding:4px 10px}
.job-k::before{content:"";width:7px;height:7px;border-radius:50%;background:#7dffb0;animation:ping 1.8s infinite}
.job b{font-family:var(--f-display);font-weight:800;font-size:1.6rem;line-height:1.1;margin:22px 0 12px}
.job-d{color:#c3c9e8;font-size:.98rem;line-height:1.5}
.job-f{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:16px;border-top:1px dashed rgba(143,160,255,.35)}
.job-c{font-family:var(--f-data);font-size:.74rem;color:#9aa8ff}
.job-go{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-display);font-weight:700;font-size:.95rem;color:#fff}
.job-go svg{width:16px;height:16px;transition:transform .3s var(--ease)}.job:hover .job-go svg{transform:translateX(4px)}
.recruit .rc-cta{margin-top:10px}
@media (max-width:820px){
  .jobs{height:auto;perspective:none;margin-inline:calc(var(--gutter)*-1);width:calc(100% + var(--gutter)*2);cursor:auto}
  .jobs-ring{position:static;margin:0;width:auto;height:auto;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px var(--gutter) 24px;transform:none!important;scrollbar-width:none}
  .jobs-ring::-webkit-scrollbar{display:none}
  .jobs-ring li{position:relative;flex:0 0 78%;max-width:300px;height:320px;scroll-snap-align:center;transform:none!important;opacity:1!important}
  .rc-wrap{text-align:left;justify-items:stretch}.rc-head{max-width:none}
}

/* Cartes un peu plus claires que le fond, qui bougent, avec lumière au survol */
.svc,.notes > div,.index-list button{background:var(--card);border:1px solid var(--card-line);box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 18px 40px -28px rgba(12,18,48,.35)}
.notes > div,.index-list button{position:relative;overflow:hidden;transform-style:preserve-3d;transition:border-color .3s,box-shadow .3s}
.notes > div::after,.index-list button::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--acc) 16%,transparent),transparent 45%);opacity:0;transition:opacity .3s}
.notes > div:hover::after,.index-list button:hover::after{opacity:1}
.notes > div:hover,.index-list button:hover{border-color:color-mix(in srgb,var(--acc) 45%,var(--card-line));box-shadow:0 30px 60px -30px color-mix(in srgb,var(--acc) 45%,transparent)}
.notes{perspective:1200px}
.index-list{columns:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;perspective:1000px}
.index-list button{border-radius:14px;padding:12px 16px;border-bottom:1px solid var(--card-line)}
.index-list button:hover{background:var(--card);color:var(--acc)}
@media (max-width:520px){.index-list{grid-template-columns:1fr}}
/* Départements voisins : panneau en 3D */
.depts-stage{perspective:1100px;align-self:start}
.depts{position:relative;transform-style:preserve-3d;transform:rotateY(-14deg) rotateX(8deg);background:linear-gradient(160deg,#2a3aa8,#151f66 60%,#0c1240);color:#fff;border:1px solid rgba(143,160,255,.45);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,-2px 2px 0 #1b2560,-4px 4px 0 #161f52,-6px 6px 0 #111944,-8px 8px 0 #0c1338,0 50px 80px -40px rgba(6,10,28,.75),0 0 60px -14px rgba(97,115,215,.6);overflow:hidden;will-change:transform}
.depts::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(300px circle at var(--mx,30%) var(--my,20%),rgba(255,255,255,.18),transparent 50%)}
.depts h3{color:#fff;transform:translateZ(30px)}
.depts ul{transform:translateZ(22px)}
.depts li{display:flex;align-items:center;gap:10px}
.depts li::before{content:"";width:8px;height:8px;border-radius:50%;background:#8f9cff;box-shadow:0 0 10px #8f9cff}
.depts p{color:#c3c9e8;transform:translateZ(14px)}
@media (max-width:820px){.depts{transform:rotateX(6deg)}}

/* ===== Services : couleur par pictogramme + lumière derrière ===== */
.services .svc:nth-child(1){--c:#22c55e}.services .svc:nth-child(2){--c:#ef4444}.services .svc:nth-child(3){--c:#f5b301}
.svc{transition:border-color .35s,box-shadow .45s}
.svc::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--c,var(--acc)) 18%,transparent),transparent 45%)!important}
.svc:hover{border-color:color-mix(in srgb,var(--c,var(--acc)) 60%,var(--card-line));box-shadow:0 0 0 1px color-mix(in srgb,var(--c,var(--acc)) 35%,transparent),0 0 70px 6px color-mix(in srgb,var(--c,var(--acc)) 30%,transparent),0 40px 80px -30px color-mix(in srgb,var(--c,var(--acc)) 55%,transparent)}
.svc:hover .sym{color:var(--c,var(--acc));background:color-mix(in srgb,var(--c,var(--acc)) 16%,transparent);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--c,var(--acc)) 75%,transparent),0 0 26px color-mix(in srgb,var(--c,var(--acc)) 60%,transparent)}
.svc:hover .sym svg{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--c,var(--acc)) 80%,transparent))}
.svc:hover .more{color:var(--c,var(--acc))}

/* ===== Communes : lumière derrière + couleur plus intense ===== */
.index-list button{transition:background-color .3s,border-color .3s,box-shadow .35s,color .3s}
.index-list button:hover,.index-list button:focus-visible{background:color-mix(in srgb,var(--acc) 22%,var(--card));border-color:color-mix(in srgb,var(--acc) 70%,var(--card-line));color:var(--ink);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 36px 4px color-mix(in srgb,var(--acc) 40%,transparent)}
.index-list button:hover .d{color:var(--acc)}
.index-list li{position:relative;z-index:0}.index-list li:hover{z-index:2}

/* ===== Engagements : dégradé animé + cartes en relief ===== */
.eng-sec{overflow:hidden;isolation:isolate}
.eng-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.eng-bg span{position:absolute;width:46vmax;height:46vmax;border-radius:50%;filter:blur(80px);opacity:.55}
.eng-bg span:nth-child(1){background:#2f3da8;left:-15%;top:-40%;animation:blobA 12s ease-in-out infinite alternate}
.eng-bg span:nth-child(2){background:#6b4fd6;right:-15%;top:10%;opacity:.35;animation:blobB 14s ease-in-out infinite alternate}
.eng-bg span:nth-child(3){background:#1f8fd6;left:30%;bottom:-55%;opacity:.3;animation:blobA 16s ease-in-out infinite alternate-reverse}
:root:not([data-theme="dark"]) .eng-bg span{opacity:.18}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .eng-bg span:nth-child(1){opacity:.55}}
.notes > div{box-shadow:0 1px 0 rgba(255,255,255,.08) inset,-2px 3px 0 color-mix(in srgb,var(--acc) 22%,var(--card)),-4px 6px 0 color-mix(in srgb,var(--acc) 14%,var(--card)),-6px 9px 0 color-mix(in srgb,var(--acc) 8%,var(--card)),0 40px 70px -35px rgba(6,10,28,.7)}
.notes > div h3,.notes > div p{transform:translateZ(26px)}
.notes > div:hover{box-shadow:-2px 3px 0 color-mix(in srgb,var(--acc) 30%,var(--card)),-4px 6px 0 color-mix(in srgb,var(--acc) 20%,var(--card)),-6px 9px 0 color-mix(in srgb,var(--acc) 12%,var(--card)),0 0 60px 4px color-mix(in srgb,var(--acc) 30%,transparent)}
@media (prefers-reduced-motion:reduce){.eng-bg span{animation:none}}

/* ===== Contact : fond plus riche, carte plus en relief ===== */
.ce-c{position:absolute;width:34vmax;height:34vmax;border-radius:50%;filter:blur(70px);background:conic-gradient(from 0deg,#4354c9,#6b4fd6,#1f8fd6,#4354c9);opacity:.35;left:40%;top:-20%;animation:spinc 18s linear infinite}
.ce-c.c2{left:-10%;top:50%;width:28vmax;height:28vmax;opacity:.25;animation-duration:24s;animation-direction:reverse}
@keyframes spinc{to{transform:rotate(360deg)}}
.ce-floor{position:absolute;left:-30%;right:-30%;bottom:-10%;height:55%;background-image:linear-gradient(color-mix(in srgb,var(--acc) 30%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--acc) 30%,transparent) 1px,transparent 1px);background-size:56px 56px;
  transform:perspective(500px) rotateX(62deg);transform-origin:50% 100%;-webkit-mask-image:linear-gradient(to top,#000,transparent 85%);mask-image:linear-gradient(to top,#000,transparent 85%);opacity:.5;animation:floor 3s linear infinite}
.contact-card{box-shadow:-3px 4px 0 color-mix(in srgb,var(--acc) 35%,var(--paper)),-6px 8px 0 color-mix(in srgb,var(--acc) 24%,var(--paper)),-9px 12px 0 color-mix(in srgb,var(--acc) 14%,var(--paper)),0 60px 90px -40px rgba(6,10,28,.8),0 0 80px -10px color-mix(in srgb,var(--acc) 45%,transparent)}
.contact-card > *{transform:translateZ(30px)}
.cc-float{transform-style:preserve-3d}
@media (prefers-reduced-motion:reduce){.ce-c,.ce-floor{animation:none}}

/* Pied de page : dégradé très flou, animé lentement */
.foot{position:relative;overflow:hidden;isolation:isolate}
.foot-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.foot-bg span{position:absolute;border-radius:50%;filter:blur(160px);opacity:.3}
.foot-bg{-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px)}
.foot-bg span:nth-child(1){width:40vmax;height:40vmax;background:#2f3da8;left:-12%;bottom:-70%;animation:blobA 20s ease-in-out infinite alternate}
.foot-bg span:nth-child(2){width:34vmax;height:34vmax;background:#6b4fd6;right:-10%;top:-60%;opacity:.2;animation:blobB 24s ease-in-out infinite alternate}
.foot-bg span:nth-child(3){width:28vmax;height:28vmax;background:#1f8fd6;left:40%;bottom:-80%;opacity:.16;animation:blobA 28s ease-in-out infinite alternate-reverse}
.foot .legal .art{font-weight:400;color:var(--night-ink-2);white-space:nowrap}
@media (prefers-reduced-motion:reduce){.foot-bg span{animation:none}}
/* Recrutement : fond plus flou et 10 % plus sombre */
.rc-blob{filter:blur(130px);opacity:.62}
.rc-blob.b3{opacity:.38}
.rc-bg::after{content:"";position:absolute;inset:0;background:rgba(4,7,20,.1)}
/* Champs fichier (CV, lettre) */
.field input[type=file]{padding:9px 12px;cursor:pointer;font-size:.92rem;color:var(--ink-2)}
.field input[type=file]::file-selector-button{margin-right:12px;border:0;border-radius:99px;padding:8px 16px;background:var(--acc);color:var(--acc-ink);font:600 .9rem var(--f-display);cursor:pointer;transition:filter .2s}
.field input[type=file]::file-selector-button:hover{filter:brightness(1.12)}

/* ===== En-têtes de pages : fond en mouvement ===== */
.page-head{isolation:isolate}
.page-head .contours{animation:phdrift 26s ease-in-out infinite alternate;transform-origin:70% 40%}
.page-head .contours path{transform-box:fill-box;transform-origin:center;animation:phbreathe 7s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -.55s)}
@keyframes phdrift{from{transform:translate3d(-2%,1%,0) scale(1.04) rotate(-1deg)}to{transform:translate3d(2%,-2%,0) scale(1.12) rotate(1.5deg)}}
@keyframes phbreathe{from{transform:scale(.97);stroke:rgba(143,160,255,.16)}to{transform:scale(1.04);stroke:rgba(143,160,255,.4)}}
.ph-glow{position:absolute;z-index:-1;width:46vmax;height:46vmax;border-radius:50%;right:-10%;top:-60%;background:radial-gradient(closest-side,rgba(67,84,201,.5),transparent);filter:blur(30px);animation:blobB 14s ease-in-out infinite alternate;pointer-events:none}
.ph-scan{position:absolute;left:0;right:0;height:120px;top:-120px;background:linear-gradient(transparent,rgba(143,160,255,.10),transparent);animation:scan 8s linear infinite;pointer-events:none}
.page-head .wrap{z-index:1}
@media (prefers-reduced-motion:reduce){.page-head .contours,.page-head .contours path,.ph-glow,.ph-scan{animation:none}}

/* ===== Médaille 3D des en-têtes ===== */
.coin3d{width:170px;height:170px;perspective:900px;animation:coinfloat 4s ease-in-out infinite alternate;align-self:center}
.coin-tilt{width:100%;height:100%;transform-style:preserve-3d;will-change:transform}
.coin{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:coinspin 10s linear infinite}
.coin i{position:absolute;inset:0;border-radius:50%;background:linear-gradient(90deg,#1b2466,#3a4ac0 50%,#1b2466);transform:translateZ(var(--z))}
.coin .face{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;color:#fff;overflow:hidden;
  background:radial-gradient(circle at 35% 28%,#6a7cff 0%,#3445c4 45%,#1a2264 100%);border:3px solid #8f9cff;
  box-shadow:inset 0 0 0 9px rgba(255,255,255,.07),inset 0 0 0 11px rgba(143,160,255,.35),0 0 50px rgba(97,115,215,.55)}
.coin .face::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.28) 48%,transparent 60%);background-size:250% 100%;animation:sheen 4s ease-in-out infinite}
.coin .front{transform:translateZ(10px)}
.coin .back{transform:rotateY(180deg) translateZ(10px)}
.coin .face svg{width:84px;height:84px;filter:drop-shadow(0 0 8px rgba(201,208,255,.8))}
.coin .face img{width:62%;height:auto;filter:drop-shadow(0 0 8px rgba(201,208,255,.6))}
@keyframes coinspin{to{transform:rotateY(360deg)}}
@keyframes coinfloat{from{transform:translateY(6px)}to{transform:translateY(-10px)}}
@media (max-width:700px){.page-head .coin3d{display:none}}
@media (prefers-reduced-motion:reduce){.coin3d,.coin,.coin .face::after{animation:none}}

/* Lumière qui glisse sur les courbes des en-têtes */
.page-head{--lx:70%;--ly:40%}
.page-head .contours.lit{stroke:rgba(201,210,255,.95);filter:drop-shadow(0 0 4px rgba(143,160,255,.9));
  -webkit-mask-image:radial-gradient(240px circle at var(--lx) var(--ly),#000 0%,rgba(0,0,0,.5) 45%,transparent 100%);
  mask-image:radial-gradient(240px circle at var(--lx) var(--ly),#000 0%,rgba(0,0,0,.5) 45%,transparent 100%)}
.page-head .contours.lit path{animation:none}
.page-head::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(420px circle at var(--lx) var(--ly),rgba(97,115,215,.22),transparent 60%)}
.coin3d{width:150px;height:150px}
.coin .face svg{width:72px;height:72px}

/* ===== Œil 3D élégant des en-têtes ===== */
.eye3d{width:230px;height:230px;perspective:900px;position:relative;align-self:center;margin-right:10px}
.e-tilt{position:absolute;inset:0;transform-style:preserve-3d;animation:efloat 5s ease-in-out infinite alternate;will-change:transform}
@keyframes efloat{from{translate:0 6px}to{translate:0 -10px}}
.e-ring{position:absolute;inset:-16%;border-radius:50%;border:1.5px solid rgba(143,160,255,.5);box-shadow:0 0 14px rgba(143,160,255,.25)}
.e-ring.r1{animation:er1 16s linear infinite}.e-ring.r2{inset:-26%;border-color:rgba(143,160,255,.3);border-style:dashed;animation:er2 22s linear infinite}
.e-ring.r3{inset:-6%;border-width:1px;animation:er3 12s linear infinite reverse}
@keyframes er1{from{transform:rotateZ(0) rotateX(72deg)}to{transform:rotateZ(360deg) rotateX(72deg)}}
@keyframes er2{from{transform:rotateZ(40deg) rotateY(68deg) rotateZ(0)}to{transform:rotateZ(40deg) rotateY(68deg) rotateZ(360deg)}}
@keyframes er3{from{transform:rotateZ(-30deg) rotateX(60deg) rotateZ(0)}to{transform:rotateZ(-30deg) rotateX(60deg) rotateZ(360deg)}}
.e-bezel{position:absolute;inset:8%;border-radius:50%;transform:translateZ(20px);
  background:conic-gradient(from 200deg,#2f3da8,#8f9cff,#3a4ac0,#c9d0ff,#2f3da8);padding:7%;
  box-shadow:0 0 0 2px rgba(201,208,255,.5),0 0 60px rgba(97,115,215,.6),0 30px 50px -20px rgba(0,0,0,.8)}
.e-ball{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 38% 30%,#ffffff 0%,#eef1fb 38%,#c9d0ea 72%,#8590c0 100%);
  box-shadow:inset -12px -16px 30px rgba(20,30,90,.45),inset 6px 8px 18px rgba(255,255,255,.7)}
.e-iris{position:absolute;width:54%;height:54%;left:23%;top:23%;border-radius:50%;
  transform:translate(var(--ex,0%),var(--ey,0%)) scale(var(--sx,1),var(--sy,1));
  background:radial-gradient(circle,#b7c3ff 0 22%,#6a7cff 23% 48%,#3445c4 49% 74%,#1a2264 75% 100%);
  box-shadow:0 0 0 2px rgba(20,28,99,.55),inset 0 0 12px rgba(0,0,0,.35)}
.e-iris::before{content:"";position:absolute;inset:6%;border-radius:50%;border:1.5px dashed rgba(201,208,255,.45);animation:spin360 14s linear infinite}
@keyframes spin360{to{transform:rotate(360deg)}}
.e-pupil{position:absolute;inset:32%;border-radius:50%;background:#060a1c;transition:inset .4s var(--ease)}
.eye3d.dilate .e-pupil{inset:27%}
.e-glint{position:absolute;width:20%;height:20%;left:24%;top:17%;border-radius:50%;background:radial-gradient(circle,#fff 0 35%,rgba(255,255,255,0) 70%);pointer-events:none}
.e-glint.g2{width:9%;height:9%;left:62%;top:58%;opacity:.8}
.e-lid{position:absolute;left:-5%;right:-5%;top:-52%;height:52%;background:linear-gradient(#1a2264,#3445c4);border-radius:0 0 50% 50%;transition:top .12s ease-in}
.eye3d.blink .e-lid{top:0;height:100%;border-radius:0}
@media (max-width:700px){.page-head .eye3d{display:none}}
@media (prefers-reduced-motion:reduce){.e-tilt,.e-ring,.e-iris::before{animation:none}}
/* lumière douce qui suit la souris dans les en-têtes */
.ph-light{position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(520px circle at var(--lx,70%) var(--ly,40%),rgba(143,160,255,.16),transparent 60%);transition:background-position .3s}

/* ===== Liste « Ce que nous recherchons » : lumière + zoom au survol ===== */
.glowlist li{position:relative;padding:15px 16px;border-radius:14px;border-bottom:1px solid transparent;transition:transform .35s var(--ease),background-color .35s,box-shadow .35s,border-color .35s}
.glowlist li:hover{transform:scale(1.03);background:color-mix(in srgb,var(--acc) 12%,var(--card));border-color:color-mix(in srgb,var(--acc) 50%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 35%,transparent),0 0 40px 2px color-mix(in srgb,var(--acc) 30%,transparent)}
.glowlist li:hover::before{box-shadow:0 0 12px var(--acc)}

/* ===== Panneau « Postes » en 3D ===== */
.panel3d-stage{perspective:1100px;align-self:start}
.for.panel3d{position:relative;transform-style:preserve-3d;transform:rotateY(-12deg) rotateX(7deg);color:#fff;overflow:hidden;
  background:linear-gradient(160deg,#2a3aa8,#151f66 60%,#0c1240);border:1px solid rgba(143,160,255,.45);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,-2px 2px 0 #1b2560,-4px 4px 0 #161f52,-6px 6px 0 #111944,-8px 8px 0 #0c1338,0 50px 80px -40px rgba(6,10,28,.75),0 0 60px -14px rgba(97,115,215,.6)}
.for.panel3d::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(300px circle at var(--mx,30%) var(--my,20%),rgba(255,255,255,.18),transparent 50%)}
.for.panel3d h3{color:#fff}
.for.panel3d p{color:#c3c9e8}
.for.panel3d .chips li{background:rgba(143,160,255,.14);border-color:rgba(143,160,255,.45);color:#fff;transition:transform .25s,box-shadow .25s,background-color .25s}
.for.panel3d .chips li:hover{transform:translateY(-2px) scale(1.05);background:rgba(143,160,255,.3);box-shadow:0 0 18px rgba(143,160,255,.6)}
.for.panel3d .btn{display:inline-flex}
@media (max-width:820px){.for.panel3d{transform:rotateX(5deg)}}

/* ===== Carte contact sur la page recrutement ===== */
.aside-contact{align-self:start;position:sticky;top:110px;perspective:1000px}
@media (max-width:860px){.aside-contact{position:static}}

/* ===== Performance : pas de flou animé (très coûteux), dégradés doux à la place ===== */
.rc-blob,.eng-bg span,.ce-bg span,.foot-bg span,.ce-c,.ph-glow{filter:none!important;mix-blend-mode:normal!important}
.foot-bg{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.rc-blob.b1{background:radial-gradient(closest-side,rgba(47,61,168,.9),transparent)}
.rc-blob.b2{background:radial-gradient(closest-side,rgba(67,84,201,.85),transparent)}
.rc-blob.b3{background:radial-gradient(closest-side,rgba(107,79,214,.7),transparent)}
.eng-bg span:nth-child(1){background:radial-gradient(closest-side,#2f3da8,transparent)}
.eng-bg span:nth-child(2){background:radial-gradient(closest-side,#6b4fd6,transparent)}
.eng-bg span:nth-child(3){background:radial-gradient(closest-side,#1f8fd6,transparent)}
.ce-bg span{background:radial-gradient(closest-side,#b9c2f5,transparent)}
.ce-bg span+span{background:radial-gradient(closest-side,#cfd5fb,transparent)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ce-bg span{background:radial-gradient(closest-side,#1b2464,transparent)}}
:root[data-theme="dark"] .ce-bg span{background:radial-gradient(closest-side,#1b2464,transparent)}
.ce-c{background:radial-gradient(closest-side,rgba(67,84,201,.8),transparent)}
.foot-bg span:nth-child(1){background:radial-gradient(closest-side,#2f3da8,transparent)}
.foot-bg span:nth-child(2){background:radial-gradient(closest-side,#6b4fd6,transparent)}
.foot-bg span:nth-child(3){background:radial-gradient(closest-side,#1f8fd6,transparent)}
.ph-glow{background:radial-gradient(closest-side,rgba(67,84,201,.45),transparent)}
/* en-têtes : on anime le dessin d'un bloc (rapide), plus chaque courbe une par une */
.page-head .contours path{animation:none!important}
.page-head .contours{will-change:transform}

/* ===== Œil des en-têtes : modelé comme celui de l'accueil ===== */
.e-tilt{will-change:auto}
.e-ring{box-shadow:none;border:1.6px solid rgba(170,185,255,.75)}
.e-ring.r1{inset:-24%}
.e-ring.r3{inset:-20%;border-color:rgba(170,185,255,.55)}
.e-bezel{inset:12%;padding:10%;transform:translateZ(20px);
  background:radial-gradient(circle at 34% 26%,#dfe4ff 0%,#8f9cff 22%,#5a6cf0 48%,#3445c4 75%,#24308f 100%);
  box-shadow:inset 0 3px 6px rgba(255,255,255,.55),inset 0 -6px 10px rgba(12,18,70,.6),0 0 0 1.5px rgba(201,208,255,.55),0 0 30px rgba(97,115,215,.35),0 24px 40px -18px rgba(0,0,0,.8)}
.e-ball{background:radial-gradient(circle at 40% 32%,#ffffff 0%,#f6f7fc 45%,#d9dcea 78%,#aeb3cb 100%);box-shadow:inset 0 -10px 20px rgba(40,50,110,.35),inset 0 0 0 2px rgba(20,30,90,.25)}
.e-iris{width:60%;height:60%;left:20%;top:20%;background:radial-gradient(circle,#0a0d22 0 33%,#7d8cff 34% 46%,#4a5cf0 47% 72%,#2236b8 73% 100%);box-shadow:0 0 0 1px rgba(20,28,99,.5)}
.e-iris::before{display:none}
.e-pupil{display:none}
.e-glint{width:17%;height:17%;left:27%;top:24%;background:radial-gradient(circle,#fff 0 55%,rgba(255,255,255,0) 72%)}
.e-glint.g2{width:8%;height:8%;left:57%;top:57%}
.eye3d.dilate .e-iris{background:radial-gradient(circle,#0a0d22 0 38%,#7d8cff 39% 49%,#4a5cf0 50% 73%,#2236b8 74% 100%)}

/* ===== Pictogramme 3D des en-têtes (contact, services…) ===== */
.tile3d{width:150px;height:150px;perspective:800px;align-self:center}
.t-tilt{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:tilefloat 4.5s ease-in-out infinite alternate}
@keyframes tilefloat{from{transform:translateY(6px) rotateY(-14deg) rotateX(8deg)}to{transform:translateY(-8px) rotateY(10deg) rotateX(-4deg)}}
.t-depth{position:absolute;inset:0;border-radius:32px;background:#151f66;transform:translateZ(-14px);box-shadow:0 30px 40px -18px rgba(0,0,0,.7)}
.t-face{position:absolute;inset:0;border-radius:32px;display:grid;place-items:center;color:#fff;overflow:hidden;
  background:radial-gradient(circle at 30% 22%,#7d8cff 0%,#4354c9 45%,#232e8a 100%);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.35),inset 0 -6px 14px rgba(10,16,60,.5),0 0 0 1.5px rgba(201,208,255,.5),0 0 40px rgba(97,115,215,.45)}
.t-face::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.3) 48%,transparent 60%);background-size:260% 100%;animation:sheen 4.5s ease-in-out infinite}
.t-face svg{width:72px;height:72px;transform:translateZ(0);filter:drop-shadow(0 0 6px rgba(201,208,255,.7));animation:iconpulse 3s ease-in-out infinite}
@keyframes iconpulse{50%{transform:scale(1.08)}}
@media (max-width:700px){.page-head .tile3d{display:none}}
@media (prefers-reduced-motion:reduce){.t-tilt,.t-face::after,.t-face svg{animation:none}}
.eye3d{width:250px;height:250px}
.e-bezel{inset:5%;padding:9%}
.e-lid{background:linear-gradient(#24308f,#5a6cf0)}
.e-lid{top:0!important;height:100%!important;border-radius:0!important;transform:translateY(-102%);transition:transform .11s ease-in}
.eye3d.blink .e-lid{transform:translateY(0)}
/* ===== Recrutement : « Nous avons les missions » plus grand, dégradé plus profond ===== */
.rc-title .ln:last-child{font-size:1.32em;line-height:1.02;margin-top:.04em}
.rc-title em{background:linear-gradient(90deg,#5b6cf5,#9aa8ff 30%,#e9ecff 50%,#9aa8ff 70%,#5b6cf5);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 24px rgba(91,108,245,.45))}

/* ===== Logo : grossit et s'illumine au survol ===== */
.brand{position:relative;isolation:isolate;padding:6px 10px;margin-left:-10px;border-radius:14px;transition:transform .45s var(--ease)}
.brand::before{content:"";position:absolute;inset:-4px -8px;z-index:-1;border-radius:18px;opacity:0;transform:scale(.9);
  background:radial-gradient(60% 90% at 50% 50%,rgba(143,160,255,.35),rgba(67,84,201,.12) 60%,transparent 75%);
  box-shadow:0 0 0 1px rgba(143,160,255,.35),0 0 28px rgba(97,115,215,.45);transition:opacity .4s var(--ease),transform .45s var(--ease)}
.brand::after{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;opacity:0;
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 48%,transparent 62%);background-size:250% 100%;background-position:120% 0;transition:opacity .2s}
.brand img{transition:filter .45s var(--ease)}
.brand:hover,.brand:focus-visible{transform:scale(1.07)}
.brand:hover::before,.brand:focus-visible::before{opacity:1;transform:scale(1)}
.brand:hover::after{opacity:1;animation:brandsheen .9s ease-out}
.brand:hover img{filter:drop-shadow(0 0 10px rgba(143,160,255,.7))}
@keyframes brandsheen{from{background-position:120% 0}to{background-position:-30% 0}}

/* ===== Contact : pictogramme plus grand et plus vivant ===== */
.tile3d{width:190px;height:190px}
.t-face svg{width:96px;height:96px}
.t-tilt{animation:tilefloat 3.4s ease-in-out infinite alternate}
@keyframes tilefloat{from{transform:translateY(8px) rotateY(-22deg) rotateX(12deg)}to{transform:translateY(-12px) rotateY(18deg) rotateX(-8deg)}}
.tile3d{cursor:pointer}
.tile3d .t-face svg{transition:transform .4s var(--ease)}
.tile3d:hover .t-face svg{animation:pinbounce .7s ease-in-out infinite alternate}
@keyframes pinbounce{from{transform:translateY(4px) scale(1.12)}to{transform:translateY(-8px) scale(1.18)}}

/* ===== Mobile : mêmes effets, allégés ===== */
@media (max-width:820px){
  .rc-title .ln:last-child{font-size:1.22em}
  .page-head .tile3d,.page-head .eye3d{display:block;width:130px;height:130px;margin:6px 0 0}
  .page-head .wrap{grid-template-columns:1fr}
}
@media (hover:none){.brand:active{transform:scale(1.05)}}
.rc-title em{filter:none}
.rc-head{max-width:none}
@media (min-width:821px){.rc-title .ln:last-child{white-space:nowrap}}
.rc-title .ln:last-child{position:relative}
.rc-title .ln:last-child::before{content:"";position:absolute;left:10%;right:10%;top:20%;bottom:0;z-index:-1;background:radial-gradient(closest-side,rgba(91,108,245,.35),transparent);pointer-events:none}
.recruit-in,.rc-wrap{isolation:isolate}
/* ===== Fluidité des en-têtes : uniquement des animations « transform/opacity » (gérées par la carte graphique) ===== */
.page-head .contours{animation:phdrift2 30s ease-in-out infinite alternate!important;will-change:transform}
@keyframes phdrift2{from{transform:translate3d(-2%,1%,0) scale(1.1)}to{transform:translate3d(2%,-2%,0) scale(1.1)}}
.ph-scan,.m-scan{top:0!important;height:140px;animation:scanT 8s linear infinite!important;will-change:transform}
@keyframes scanT{from{transform:translate3d(0,-140px,0)}to{transform:translate3d(0,100vh,0)}}
.page-head .ph-scan{animation-name:scanT2!important}
@keyframes scanT2{from{transform:translate3d(0,-140px,0)}to{transform:translate3d(0,520px,0)}}
.ph-light{background:none!important;inset:auto;left:0;top:0;width:900px;height:900px;margin:-450px 0 0 -450px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(143,160,255,.16),transparent)!important;transform:translate3d(var(--lx,70vw),var(--ly,200px),0);will-change:transform}
.ph-glow{will-change:transform}
/* reflets : déplacement d'un calque au lieu de repeindre le fond */
.mission-sec .logbook::after,.call-big::after,.coin .face::after{animation:none!important;background-size:100% 100%!important}
.t-face::after{display:none}
/* ===== Pictogramme Contact : tout grandit, lumière qui apparaît ===== */
.tile3d{position:relative;cursor:pointer}
.t-face svg{animation:none!important;filter:none!important}
.t-icon{display:grid;place-items:center;transition:transform .6s cubic-bezier(.2,1.4,.4,1);filter:drop-shadow(0 0 6px rgba(201,208,255,.6))}
.t-glow{position:absolute;inset:-35%;border-radius:50%;background:radial-gradient(closest-side,rgba(143,160,255,.55),rgba(67,84,201,.2) 55%,transparent);opacity:0;transform:scale(.6);transition:opacity .5s ease,transform .7s cubic-bezier(.2,1,.3,1);pointer-events:none}
.t-sweep{position:absolute;top:0;bottom:0;left:0;width:60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-160%) skewX(-18deg);pointer-events:none}
.t-face{transition:box-shadow .5s ease}
.tile3d:hover .t-glow{opacity:1;transform:scale(1)}
.tile3d:hover .t-icon{transform:scale(1.22) translateY(-4px)}
.tile3d:hover .t-sweep{transition:transform .9s cubic-bezier(.3,.7,.3,1);transform:translateX(260%) skewX(-18deg)}
.tile3d:hover .t-face{box-shadow:inset 0 2px 0 rgba(255,255,255,.45),inset 0 -6px 14px rgba(10,16,60,.4),0 0 0 2px rgba(201,208,255,.8),0 0 60px rgba(143,160,255,.75)}
/* ===== Fluidité : en-tête du haut opaque (le flou d'arrière-plan sur une zone animée coûte très cher) ===== */
.top{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--paper)!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .top{background:#070b1e!important}}
img.contours{object-fit:cover;display:block}
.page-head.paused *,.page-head.paused{animation-play-state:paused!important}

/* ===== Épingle de localisation en vraie 3D ===== */
.pin3d{position:relative;width:210px;height:230px;perspective:900px;align-self:center;cursor:pointer}
.p-tilt{position:absolute;inset:0 0 30px;transform-style:preserve-3d;animation:pinfloat 3.2s ease-in-out infinite alternate}
@keyframes pinfloat{from{transform:translateY(6px)}to{transform:translateY(-12px)}}
.p-spin{position:absolute;inset:0;transform-style:preserve-3d;animation:pinspin 7s linear infinite}
@keyframes pinspin{from{transform:rotateY(0)}to{transform:rotateY(360deg)}}
.p-spin svg{position:absolute;left:50%;top:0;width:150px;height:150px;margin-left:-75px;backface-visibility:visible}
.p-spin svg[style]{transform:translateZ(var(--z));fill:hsl(232,58%,calc(22% + var(--l) * 2.2%))}
.p-front{transform:translateZ(12px)}
.p-back{transform:rotateY(180deg) translateZ(12px)}
.p-base{position:absolute;left:50%;bottom:8px;width:120px;height:120px;margin-left:-60px;border-radius:50%;border:2px solid rgba(143,160,255,.7);transform:rotateX(78deg);box-shadow:0 0 24px rgba(143,160,255,.6),inset 0 0 20px rgba(143,160,255,.4);animation:pinpulse 2.4s ease-out infinite}
.p-base.b2{animation-delay:1.2s}
@keyframes pinpulse{from{transform:rotateX(78deg) scale(.4);opacity:1}to{transform:rotateX(78deg) scale(1.4);opacity:0}}
.p-glow{position:absolute;inset:-20%;border-radius:50%;background:radial-gradient(closest-side,rgba(143,160,255,.45),transparent);opacity:.5;transition:opacity .5s,transform .7s cubic-bezier(.2,1,.3,1);pointer-events:none}
.pin3d{transition:transform .6s cubic-bezier(.2,1.4,.4,1)}
.pin3d:hover{transform:scale(1.15)}
.pin3d:hover .p-glow{opacity:1;transform:scale(1.2)}
.pin3d:hover .p-spin{animation-duration:2.2s}
@media (max-width:820px){.page-head .pin3d{display:block;width:150px;height:170px}.pin3d .p-spin svg{width:110px;height:110px;margin-left:-55px}}
@media (prefers-reduced-motion:reduce){.p-tilt,.p-spin,.p-base{animation:none}}
/* ===== Carré 3D « pâte » (Contact & services) ===== */
.tile3d{width:180px;height:180px}
.t-tilt{animation:tilecalm 5s ease-in-out infinite alternate!important}
@keyframes tilecalm{from{transform:translateY(4px) rotateX(10deg) rotateY(-12deg)}to{transform:translateY(-8px) rotateX(4deg) rotateY(10deg)}}
.t-depth{border-radius:40px;background:linear-gradient(#2a38a6,#18217a);transform:translateZ(-1px) translateY(10px);box-shadow:0 26px 40px -16px rgba(0,0,0,.75)}
.t-face{border-radius:40px;
  background:linear-gradient(160deg,#8796ff 0%,#5b6cf0 45%,#3d4fd6 100%);
  box-shadow:inset 0 10px 16px rgba(255,255,255,.38),inset 0 -14px 20px rgba(18,28,110,.5),inset 8px 0 14px rgba(255,255,255,.12),inset -8px 0 14px rgba(18,28,110,.25),0 0 0 1px rgba(201,208,255,.35)!important}
.tile3d:hover .t-face{box-shadow:inset 0 10px 16px rgba(255,255,255,.45),inset 0 -14px 20px rgba(18,28,110,.45),0 0 0 2px rgba(225,230,255,.8),0 0 60px rgba(143,160,255,.8)!important}
.t-icon svg{width:92px;height:92px}
.pin-relief{filter:drop-shadow(0 6px 4px rgba(16,24,96,.55)) drop-shadow(0 -1px 0 rgba(255,255,255,.6))}
.t-icon{filter:none;transition:transform .7s cubic-bezier(.2,1.3,.35,1)}
.tile3d:hover .t-icon{transform:scale(1.2) translateY(-4px)}
/* animation automatique de temps en temps */
.t-face .t-icon{animation:iconbreath 6s ease-in-out infinite}
@keyframes iconbreath{0%,78%,100%{scale:1}86%{scale:1.14}92%{scale:1.04}}
.t-sweep{animation:autosweep 6s ease-in-out infinite}
@keyframes autosweep{0%,74%{transform:translateX(-160%) skewX(-18deg)}90%,100%{transform:translateX(260%) skewX(-18deg)}}
.tile3d:hover .t-sweep{animation:none}
.t-glow{animation:autoglow 6s ease-in-out infinite}
@keyframes autoglow{0%,74%,100%{opacity:0}86%{opacity:.75}}
.tile3d:hover .t-glow{animation:none;opacity:1;transform:scale(1)}
@media (prefers-reduced-motion:reduce){.t-face .t-icon,.t-sweep,.t-glow{animation:none}}
/* Carré plus grand, qui grandit avec l'épingle (survol et animation automatique bien visible) */
.tile3d{width:220px;height:220px}
.t-icon svg{width:110px;height:110px}
.t-tilt{animation:tilecalm 5s ease-in-out infinite alternate,tilepop 6s cubic-bezier(.3,1.3,.4,1) infinite!important}
@keyframes tilepop{0%,72%,100%{scale:1}82%{scale:1.13}90%{scale:1.05}}
.t-face .t-icon{animation:iconpop 6s cubic-bezier(.3,1.3,.4,1) infinite}
@keyframes iconpop{0%,72%,100%{scale:1}82%{scale:1.32}90%{scale:1.12}}
@keyframes autoglow{0%,72%,100%{opacity:0}82%{opacity:1}}
@keyframes autosweep{0%,72%{transform:translateX(-160%) skewX(-18deg)}88%,100%{transform:translateX(260%) skewX(-18deg)}}
.tile3d:hover .t-tilt{animation:tilecalm 5s ease-in-out infinite alternate!important}
.tile3d:hover .t-face .t-icon{animation:none;transform:scale(1.3) translateY(-4px)}
@media (max-width:820px){.page-head .tile3d{width:150px;height:150px}.page-head .t-icon svg{width:76px;height:76px}}
.t-tilt{transition:scale .6s cubic-bezier(.2,1.3,.35,1)}
.tile3d:hover .t-tilt{scale:1.12}

/* ===================== AVIS GOOGLE ===================== */
.avis-sec{padding-top:0}
.avis-card{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(24px,4vw,56px);align-items:center;
  padding:clamp(28px,4.5vw,56px);border-radius:28px;color:#e9ecfa;
  background:radial-gradient(120% 140% at 85% 30%,#1c2766 0%,#0d1434 45%,#060a1c 100%);
  box-shadow:0 40px 80px -50px rgba(6,10,28,.75),inset 0 1px 0 rgba(255,255,255,.08)}
.avis-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.avis-bg i{position:absolute;border-radius:50%;background:radial-gradient(closest-side,rgba(143,160,255,.22),transparent);width:520px;height:520px;right:-120px;top:-160px;animation:avisFloat 14s ease-in-out infinite alternate}
.avis-bg i+i{background:radial-gradient(closest-side,rgba(246,190,40,.13),transparent);width:420px;height:420px;left:-140px;bottom:-200px;top:auto;right:auto;animation-duration:18s}
@keyframes avisFloat{to{transform:translate3d(-40px,30px,0) scale(1.08)}}
.avis-txt h2{color:#fff;font-size:var(--step-3);margin:.25em 0 .35em}
.avis-txt p{color:#a8b0d4;max-width:46ch;margin:0}
.avis-txt .actions{margin-top:26px}
.avis-kick{margin:0}
.stars{display:inline-flex;gap:6px}
.stars svg{width:26px;height:26px;fill:#f6b81c;stroke:#c98a00;stroke-width:.8;stroke-linejoin:round;transform-origin:50% 55%;animation:starPop 4.8s var(--ease) infinite}
.stars svg:nth-child(2){animation-delay:.12s}.stars svg:nth-child(3){animation-delay:.24s}.stars svg:nth-child(4){animation-delay:.36s}.stars svg:nth-child(5){animation-delay:.48s}
@keyframes starPop{0%,78%,100%{transform:scale(1);opacity:1}84%{transform:scale(1.28) rotate(-8deg);opacity:1}90%{transform:scale(.96)}}
.qr-stage{display:grid;justify-items:center;gap:14px;perspective:900px}
.qr-tilt{position:relative;width:min(240px,100%);aspect-ratio:1;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s var(--ease);animation:qrFloat 6s ease-in-out infinite}
@keyframes qrFloat{50%{translate:0 -10px}}
.qr-depth{position:absolute;inset:0;border-radius:22px;background:linear-gradient(145deg,#4354c9,#1b2464);transform:translateZ(-22px) translate(6px,10px);box-shadow:0 30px 50px -18px rgba(0,0,0,.6)}
.qr-face{position:absolute;inset:0;border-radius:22px;background:#fff;padding:16px;overflow:hidden;transform:translateZ(0);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),inset 0 -3px 0 rgba(12,18,48,.08),0 0 0 3px rgba(143,160,255,.35)}
.qr-face::before{content:"";position:absolute;inset:-2px;border-radius:24px;padding:3px;background:conic-gradient(from var(--ang,0deg),#f6b81c,#8f9cff,#ffffff,#4354c9,#f6b81c);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 6s linear infinite}
.qr-svg{display:block;width:100%;height:100%;position:relative}
.qr-sweep{position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.4) 50%,transparent 58%);transform:translateX(-70%);animation:qrSweep 4.2s ease-in-out infinite;pointer-events:none;mix-blend-mode:screen}
@keyframes qrSweep{0%,55%{transform:translateX(-70%)}85%,100%{transform:translateX(70%)}}
.qr-cap{margin:0;font-family:var(--f-data);font-size:.82rem;letter-spacing:.06em;color:#a8b0d4}
.avis-sec.paused *{animation-play-state:paused!important}
@media (max-width:760px){.avis-card{grid-template-columns:1fr;text-align:center}.avis-txt p{margin-inline:auto}.avis-txt .actions{justify-content:center}.qr-stage{display:none}}
@media (prefers-reduced-motion:reduce){.avis-card *{animation:none!important}}
.foot a[href*="g.page"]{color:#f6c94a}
/* avis : relief 3D animé + reflet périodique */
.avis-sec .wrap{perspective:1200px}
.avis-card{transform-style:preserve-3d;animation:avisTilt 9s ease-in-out infinite}
@keyframes avisTilt{0%,100%{transform:rotateX(2deg) rotateY(-3deg)}50%{transform:rotateX(-2deg) rotateY(3deg)}}
.avis-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.16) 47%,rgba(190,200,255,.28) 50%,rgba(255,255,255,.16) 53%,transparent 65%);
  transform:translateX(-120%);animation:avisShine 6s ease-in-out infinite}
@keyframes avisShine{0%,62%{transform:translateX(-120%)}88%,100%{transform:translateX(120%)}}
.avis-card{box-shadow:0 40px 80px -50px rgba(6,10,28,.75),inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px rgba(143,160,255,.18)}
/* main courante : reflet réel (calque déplacé en transform) + vernis */
.mission-sec .logbook::after{display:none}
.lb-shine{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:2;
  background:linear-gradient(160deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.03) 22%,transparent 40%)}
.lb-shine i{position:absolute;top:-20%;bottom:-20%;left:0;width:60%;
  background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.05) 30%,rgba(205,214,255,.22) 48%,rgba(255,255,255,.32) 50%,rgba(205,214,255,.22) 52%,rgba(255,255,255,.05) 70%,transparent 100%);
  transform:translate3d(-120%,0,0) skewX(-12deg);animation:lbShine 6.5s cubic-bezier(.45,0,.2,1) infinite;will-change:transform}
@keyframes lbShine{0%,58%{transform:translate3d(-120%,0,0) skewX(-12deg)}86%,100%{transform:translate3d(260%,0,0) skewX(-12deg)}}
.mission-sec.paused .lb-shine i{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.lb-shine i{animation:none;display:none}}
.avis-txt .avis-big{font-family:var(--f-display);font-weight:700;font-size:var(--step-2);line-height:1.2;color:#dfe4ff;margin:0 0 .35em}
/* QR : agrandissement fluide + lumière au survol */
.qr-stage{position:relative}
.qr-stage::before{content:"";position:absolute;left:50%;top:44%;width:340px;height:340px;margin:-170px 0 0 -170px;border-radius:50%;pointer-events:none;z-index:-1;
  background:radial-gradient(closest-side,rgba(143,160,255,.55),rgba(246,184,28,.18) 55%,transparent);opacity:0;scale:.7;transition:opacity .6s var(--ease),scale .8s var(--ease)}
.qr-tilt{transition:transform .5s var(--ease),scale .7s cubic-bezier(.34,1.56,.64,1)}
.qr-face{transition:box-shadow .6s var(--ease)}
@media (hover:hover){
  .qr-stage:hover::before{opacity:1;scale:1}
  .qr-stage:hover .qr-tilt{scale:1.14}
  .qr-stage:hover .qr-face{box-shadow:inset 0 0 0 1px #fff,0 0 0 3px rgba(246,184,28,.55),0 0 40px 6px rgba(143,160,255,.55)}
  .qr-stage:hover .qr-sweep{animation-duration:1.6s}
}
.qr-cap{transition:translate .6s var(--ease)}
@media (hover:hover){.qr-stage:hover .qr-cap{translate:0 20px}}
/* ===================== MERCI APRÈS ENVOI ===================== */
.form[hidden]{display:none!important}
.thanks{position:relative;isolation:isolate;overflow:hidden;text-align:center;display:grid;justify-items:center;gap:14px;
  padding:clamp(34px,5vw,56px) clamp(20px,4vw,44px);border-radius:26px;color:#e9ecfa;
  background:radial-gradient(120% 120% at 50% 0%,#24317e 0%,#111a4a 45%,#070b1e 100%);
  box-shadow:0 0 0 1px rgba(143,160,255,.35),0 0 60px -6px rgba(111,128,255,.55),0 40px 80px -40px rgba(6,10,28,.8);
  opacity:0;transform:translateY(18px) scale(.97);transition:opacity .6s var(--ease),transform .7s var(--ease);outline:none}
.thanks.in{opacity:1;transform:none}
.th-halo{position:absolute;left:50%;top:120px;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(125,140,255,.55),rgba(246,184,28,.12) 55%,transparent);animation:thPulse 3.2s ease-in-out infinite}
@keyframes thPulse{50%{transform:scale(1.15);opacity:.75}}
.thanks::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.14) 50%,transparent 62%);transform:translateX(-120%);animation:avisShine 5s ease-in-out 1s infinite}
.th-eye{position:relative;width:132px;height:132px;perspective:600px;margin-bottom:6px}
.th-eye-in{width:100%;height:100%;border-radius:50%;transform-style:preserve-3d;animation:thSpin 1.1s cubic-bezier(.2,.9,.25,1.2) both,thFloat 5s ease-in-out 1.1s infinite;
  box-shadow:0 18px 40px -10px rgba(0,0,0,.6),0 0 40px rgba(143,160,255,.6)}
.th-eye-in svg{width:100%;height:100%;display:block}
@keyframes thSpin{from{transform:rotateY(-200deg) scale(.4);opacity:0}to{transform:rotateY(0) scale(1);opacity:1}}
@keyframes thFloat{0%,100%{transform:rotateY(-12deg) rotateX(6deg) translateY(0)}50%{transform:rotateY(12deg) rotateX(-4deg) translateY(-8px)}}
.th-check{position:absolute;right:-6px;bottom:-2px;width:46px;height:46px;border-radius:50%;background:#1fbf6b;display:grid;place-items:center;
  box-shadow:0 0 0 4px #0e1540,0 0 24px rgba(31,191,107,.7);transform:scale(0);animation:thPop .5s cubic-bezier(.34,1.56,.64,1) .9s forwards}
.th-check svg{width:26px;height:26px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;animation:thDraw .4s ease-out 1.25s forwards}
@keyframes thPop{to{transform:scale(1)}} @keyframes thDraw{to{stroke-dashoffset:0}}
.thanks h3{font-family:var(--f-display);font-weight:800;font-size:clamp(2.2rem,1.6rem + 2.4vw,3.2rem);line-height:1;margin:6px 0 0;color:#fff;
  background:linear-gradient(90deg,#fff,#c9d0ff 45%,#fff 55%,#ffe08a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.th-msg{margin:0;max-width:40ch;color:#c4cbef;font-size:1.08rem;line-height:1.55}
.th-call{display:grid;gap:2px;margin-top:8px;padding:14px 26px;border-radius:16px;text-decoration:none;color:#fff;
  background:linear-gradient(135deg,#4354c9,#2f3da8);box-shadow:0 0 0 1px rgba(255,255,255,.15) inset,0 12px 30px -10px rgba(67,84,201,.8)}
.th-call small{font-size:.85rem;color:#c9d0ff} .th-call b{font-family:var(--f-data);font-size:1.45rem;letter-spacing:.04em}
.th-call:hover{color:#fff;filter:brightness(1.12)}
.th-again{margin-top:6px;background:none;border:0;color:#a8b0d4;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:.92rem;cursor:pointer}
.th-again:hover{color:#fff}
@media (prefers-reduced-motion:reduce){.thanks *,.thanks::after{animation:none!important}.th-check{transform:none}.th-check svg{stroke-dashoffset:0}}
/* message d'état (erreur) plus visible */
.status.ko{border-width:2px;font-weight:600;box-shadow:0 0 24px -6px rgba(194,54,29,.55)}
