@font-face{font-family:"Manrope";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/manrope-400.woff2) format("woff2")}@font-face{font-family:"Manrope";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/manrope-500.woff2) format("woff2")}@font-face{font-family:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/manrope-600.woff2) format("woff2")}@font-face{font-family:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/manrope-700.woff2) format("woff2")}@font-face{font-family:"Manrope";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/manrope-800.woff2) format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400.woff2) format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500.woff2) format("woff2")}

:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bordeaux:#8A2432;--bordeaux-light:#B8515D;
  --ink:#0E0E10;--ink-2:#17181B;--ink-3:#22242A;
  --paper:#F6F5F1;--paper-2:#EBEAE4;
  --texte:#0E0E10;--texte-2:#5D6068;
  --texte-inv:#F4F3EF;--texte-inv-2:#A3A6AE;
  --trait:rgba(14,14,16,.12);--trait-inv:rgba(244,243,239,.14);
  --fond:#F6F5F1;--glass:rgba(246,245,241,.86);--logo-filter:none;
  --stage-a:#FFFFFF;--stage-b:#E3E2DD;--veil:rgba(227,226,221,.94);
  --r:14px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--paper:#121316;--paper-2:#1A1B1F;--texte:#F4F3EF;--texte-2:#A3A6AE;--trait:rgba(244,243,239,.12);--fond:#121316;--glass:rgba(18,19,22,.8);--logo-filter:brightness(0) invert(1);--stage-a:#2B2D32;--stage-b:#141518;--veil:rgba(20,21,24,.94);--bordeaux:#C24E5E}
}
:root[data-theme="dark"]{--paper:#121316;--paper-2:#1A1B1F;--texte:#F4F3EF;--texte-2:#A3A6AE;--trait:rgba(244,243,239,.12);--fond:#121316;--glass:rgba(18,19,22,.8);--logo-filter:brightness(0) invert(1);--stage-a:#2B2D32;--stage-b:#141518;--veil:rgba(20,21,24,.94);--bordeaux:#C24E5E}
html{scroll-padding-top:calc(90px + env(safe-area-inset-top,0px))}
*{box-sizing:inherit;margin:0}
body{font-family:"Manrope","Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.6;color:var(--texte);background:var(--fond);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-weight:700;letter-spacing:-.03em;line-height:1.02}
h2{font-size:clamp(34px,4.8vw,64px)}
h3{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.02em;line-height:1.15}
p{max-width:60ch}
a{color:inherit}
img{max-width:100%;display:block}
.mono{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.wrap{width:min(1280px,100% - 48px);margin-inline:auto}
@media (max-width:640px){.wrap{width:min(1280px,100% - 28px)}}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;text-decoration:none;font-weight:600;font-size:15px;border:1px solid transparent;transition:transform .2s,background .2s,border-color .2s}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--bordeaux);color:#fff}
.btn.primary:hover{background:#9C2B3A}
.btn.inv{border-color:var(--trait-inv);color:var(--texte-inv)}
.btn.inv:hover{background:rgba(244,243,239,.1)}
.btn .arr{display:inline-block;transition:transform .2s}
.btn:hover .arr{transform:translateX(3px)}
:focus-visible{outline:2px solid var(--bordeaux);outline-offset:3px}

/* Apparitions */
.fx .rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.fx .rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}
.fx .split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.fx .split .w>span{display:inline-block;transform:translateY(112%);transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
.fx .split.in .w>span{transform:none}

/* En-tête */
.header{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:30;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.header.solid{background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--trait)}
.header.solid.dark-mode{background:rgba(14,14,16,.72);border-bottom-color:var(--trait-inv)}
.brand img{height:40px;width:auto;transition:filter .3s;filter:var(--logo-filter)}
.header:not(.solid) .brand img,.header.dark-mode .brand img{filter:brightness(0) invert(1)}
.nav{display:flex;gap:6px}
.nav a{text-decoration:none;font-weight:500;font-size:15px;padding:9px 14px;border-radius:999px;color:var(--texte);transition:background .2s}
.header:not(.solid) .nav a,.header.dark-mode .nav a{color:var(--texte-inv)}
.nav a:hover{background:rgba(127,127,127,.15)}
.header .btn{padding:11px 18px}
.menu-toggle{display:none;background:none;border:1px solid var(--trait-inv);color:var(--texte-inv);padding:9px 14px;font:inherit;font-weight:600;cursor:pointer;border-radius:999px}
.header.solid:not(.dark-mode) .menu-toggle{color:var(--texte);border-color:var(--trait)}
@media (max-width:960px){
  .nav,.header .btn{display:none}
  .menu-toggle{display:block}
  .header.open .nav{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:84px;background:var(--ink);padding:16px 20px 22px;gap:4px;border-bottom:1px solid var(--trait-inv)}
  .header.open .nav a{color:var(--texte-inv)}
}

/* Bannière */
.hero{position:relative;min-height:calc(100vh - 58px);min-height:calc(100svh - 58px);display:grid;align-items:end;background:#3A3D44;color:var(--texte-inv);overflow:hidden}
.hero .media{position:absolute;left:0;right:0;top:-6%;bottom:-6%;will-change:transform}
.hero .media img{width:100%;height:100%;object-fit:cover;object-position:center 35%;animation:kb 38s ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.1)}}
.hero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,14,16,.55) 0%,rgba(14,14,16,.12) 32%,rgba(14,14,16,.45) 64%,rgba(14,14,16,.9) 100%)}
.clouds{position:absolute;left:0;right:0;top:0;height:48%;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%)}
.clouds i{position:absolute;top:0;bottom:0;left:0;width:200%;opacity:.55;mix-blend-mode:screen;filter:blur(18px);background-repeat:repeat-x;background-size:50% 100%;will-change:transform}
.clouds i.a{background-image:radial-gradient(ellipse 14% 26% at 8% 30%,rgba(255,255,255,.9),transparent 70%),radial-gradient(ellipse 20% 22% at 30% 45%,rgba(255,255,255,.75),transparent 70%),radial-gradient(ellipse 12% 30% at 52% 22%,rgba(255,255,255,.8),transparent 70%),radial-gradient(ellipse 22% 24% at 75% 50%,rgba(255,255,255,.7),transparent 70%),radial-gradient(ellipse 10% 20% at 92% 30%,rgba(255,255,255,.85),transparent 70%);animation:drift 90s linear infinite}
.clouds i.b{opacity:.35;filter:blur(26px);background-image:radial-gradient(ellipse 26% 30% at 18% 60%,rgba(255,255,255,.7),transparent 70%),radial-gradient(ellipse 18% 22% at 45% 35%,rgba(255,255,255,.6),transparent 70%),radial-gradient(ellipse 28% 26% at 70% 62%,rgba(255,255,255,.65),transparent 70%),radial-gradient(ellipse 14% 18% at 90% 40%,rgba(255,255,255,.6),transparent 70%);animation:drift 150s linear infinite}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.hero .grain{position:absolute;inset:-60px;z-index:0;pointer-events:none;opacity:.17;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px 220px;animation:grain .9s steps(5) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-18px,12px)}40%{transform:translate(14px,-20px)}60%{transform:translate(-10px,22px)}80%{transform:translate(20px,-8px)}100%{transform:translate(0,0)}}
.hero .wrap{position:relative;z-index:1;padding:160px 0 56px}
.hero .tag{display:inline-flex;align-items:center;gap:10px;color:#D6D6D1}
.hero .tag i{width:8px;height:8px;border-radius:50%;background:var(--bordeaux-light);box-shadow:0 0 0 4px rgba(184,81,93,.25)}
.hero h1{font-size:clamp(44px,8.2vw,124px);letter-spacing:-.04em;margin-top:22px;font-weight:800}
.hero h1 span.g{color:#C9C9C4;font-weight:500}
.hero .row{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end;margin-top:36px}
.hero .row p{font-size:clamp(17px,1.4vw,20px);color:#E2E2DD;max-width:50ch}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.hero .strip{margin-top:56px;padding-top:22px;border-top:1px solid var(--trait-inv);display:flex;flex-wrap:wrap;gap:14px 40px;color:#BDBDB8}
.hero .strip b{color:var(--texte-inv);font-weight:600}
@media (max-width:900px){.hero .row{grid-template-columns:1fr;gap:24px}.hero .actions{justify-content:flex-start}.hero .wrap{padding-top:130px}}

/* Bandeau défilant */
.marquee{background:var(--bordeaux);color:rgba(255,255,255,.92);overflow:hidden;padding:20px 0}
.marquee .track{display:flex;gap:64px;width:max-content;animation:scroll 40s linear infinite;white-space:nowrap}
.marquee .track span{font-weight:600;font-size:15px;letter-spacing:.02em}
.marquee .track span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);margin-right:22px;vertical-align:middle}
@keyframes scroll{to{transform:translateX(-50%)}}

/* Procédé 3D */
.procede{position:relative;background:var(--stage-b)}
.fx .procede{height:860vh}
.p-sticky{position:relative;height:100vh;height:100svh;overflow:hidden;background:radial-gradient(85% 75% at 62% 45%,var(--stage-a) 0%,var(--stage-b) 72%)}
.fx .p-sticky{position:sticky;top:0}
.p-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.p-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--veil) 0%,var(--veil) 22%,transparent 52%);opacity:.4}
.p-dim{position:absolute;inset:0;background:radial-gradient(75% 65% at 62% 48%,rgba(12,12,16,.28),rgba(12,12,16,.72));opacity:0;pointer-events:none}
.p-sticky::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 95% at 62% 45%,transparent 58%,rgba(0,0,0,.07))}
.p-hud{position:absolute;right:0;bottom:104px;display:grid;gap:9px;min-width:240px;padding:16px 18px;border:1px solid var(--trait);border-radius:12px;background:var(--paper);opacity:0;pointer-events:none;box-shadow:0 14px 30px -18px rgba(14,14,16,.35)}
.p-hud div{display:flex;justify-content:space-between;gap:24px}
.p-hud span{color:var(--texte-2)}
.p-hud b{font-weight:500;color:var(--texte)}
.p-hud .h-s{color:var(--bordeaux)}
.p-hud .h-bar{display:block;height:3px;border-radius:2px;background:var(--trait);overflow:hidden;margin-top:2px}
.p-hud .h-bar i{display:block;height:100%;background:var(--bordeaux);transform:scaleX(0);transform-origin:left}
.p-sub{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:12px}
.p-sub li{display:flex;align-items:center;gap:12px;color:var(--texte-2);transition:color .3s}
.p-sub li::before{content:"";flex:none;width:12px;height:12px;border-radius:50%;border:1px solid var(--texte-2);transition:background .3s,border-color .3s,box-shadow .3s}
.p-sub li.now{color:var(--texte)}
.p-sub li.now::before{border-color:var(--bordeaux);box-shadow:0 0 0 4px rgba(138,36,50,.16)}
.p-sub li.done{color:var(--texte)}
.p-sub li.done::before{background:var(--bordeaux);border-color:var(--bordeaux)}
.p-fallback{display:none}
.p-ui{position:relative;z-index:2;height:100%;pointer-events:none}
.p-top{position:absolute;top:112px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;color:var(--texte-2)}
.p-top b{color:var(--bordeaux);font-weight:500}
.p-step{position:absolute;left:0;top:50%;width:min(460px,40%);transform:translateY(-50%);opacity:0}
.p-step .in{will-change:transform}
.p-step.on{pointer-events:auto}
.p-step .p-n{color:var(--bordeaux);display:flex;align-items:center;gap:12px}
.p-step .p-n::after{content:"";width:40px;height:1px;background:var(--bordeaux)}
.p-step h2{font-size:clamp(34px,min(4.8vw,7vh),76px);margin-top:18px}
.p-step p{margin-top:clamp(10px,2vh,20px);color:var(--texte-2);font-size:clamp(15px,min(1.3vw,2.4vh),19px)}
.p-step .spec{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px}
.p-step .spec span{padding:8px 12px;border:1px solid var(--trait);border-radius:999px;background:var(--glass);color:var(--texte)}
.p-step .btn{margin-top:28px}
.p-step.intro h2{font-size:clamp(38px,min(6vw,8.4vh),96px)}
.p-hint{display:inline-flex;align-items:center;gap:10px;margin-top:30px;color:var(--texte-2)}
.p-hint i{width:1px;height:38px;background:linear-gradient(var(--bordeaux),transparent);animation:hint 1.8s ease-in-out infinite;transform-origin:top}
@keyframes hint{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.p-foot{position:absolute;left:0;right:0;bottom:40px}
.p-labels{position:relative;height:22px;color:var(--texte-2)}
.p-labels span{position:absolute;top:0;transition:color .3s}
.p-labels span.on{color:var(--bordeaux)}
.p-bar{position:relative;height:2px;background:var(--trait);margin-top:10px}
.p-bar i{position:absolute;inset:0;background:var(--bordeaux);transform:scaleX(0);transform-origin:left}
@media (max-width:760px){
  .p-top{top:100px}
  .p-step{top:auto;bottom:96px;width:100%;transform:none}
  .p-step h2{font-size:clamp(32px,9vw,44px);margin-top:12px}
  .p-step.intro h2{font-size:clamp(36px,10vw,52px)}
  .p-step p{margin-top:12px;font-size:15px}
  .p-step .spec{margin-top:14px}
  .p-hint{display:none}
  .p-sub{display:none}
  .p-veil{display:none}
  .p-hud{top:132px;bottom:auto;min-width:0;padding:10px 12px;gap:5px;font-size:10px}
  .p-labels{display:none}
  .p-foot{bottom:36px}
  .p-ui::before{content:"";position:absolute;left:-14px;right:-14px;bottom:0;height:58%;background:linear-gradient(180deg,transparent,var(--stage-b) 42%);pointer-events:none}
}
/* Mode statique (animations réduites ou 3D indisponible) */
.procede.static{height:auto}
.procede.static .p-sticky{position:relative;height:auto;padding:130px 0 90px;background:radial-gradient(85% 75% at 75% 45%,var(--stage-a) 0%,var(--stage-b) 72%)}
.procede.static .p-canvas{left:48%;width:52%;top:110px;bottom:auto;height:min(620px,78vh)}
.procede.static .p-ui{height:auto}
.procede.static .p-top{position:static;margin-bottom:40px}
.procede.static .p-veil,.procede.static .p-top .p-count,.procede.static .p-foot,.procede.static .p-hint,.procede.static .p-hud{display:none}
.procede.static .p-steps{width:46%}
.procede.static .p-step{position:static;opacity:1;transform:none;width:auto;margin-bottom:44px}
.procede.static .p-step h2{font-size:clamp(28px,3vw,40px)}
.procede.no3d .p-canvas{display:none}
.procede.no3d .p-fallback{display:block;position:absolute;right:4%;top:50%;transform:translateY(-50%);width:40%;max-height:80%;object-fit:contain}
@media (max-width:760px){.procede.static .p-canvas{position:relative;left:0;top:0;width:100%;height:70vw}.procede.static .p-steps{width:100%}.procede.no3d .p-fallback{position:static;transform:none;width:70%;margin:0 auto 30px}.procede.static .p-ui::before{display:none}}

/* Sections */
.section{padding:120px 0}
.section.tight{padding:96px 0}
.head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:64px}
.head .mono{color:var(--bordeaux);display:block;margin-bottom:18px}
.head p{color:var(--texte-2);font-size:clamp(17px,1.4vw,20px)}
@media (max-width:860px){.head{grid-template-columns:1fr;gap:20px;margin-bottom:44px}.section{padding:88px 0}}

/* Chiffres */
.numbers{background:var(--paper-2)}
.grid-n{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--trait);border:1px solid var(--trait);border-radius:var(--r);overflow:hidden}
.n{background:var(--paper);padding:34px 28px 30px}
.n .mono{color:var(--texte-2);display:block;margin-bottom:18px}
.n b{display:block;font-size:clamp(40px,4.4vw,60px);font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.n b small{font-size:.45em;font-weight:600;color:var(--bordeaux);margin-left:4px;letter-spacing:0}
.n span{display:block;margin-top:10px;color:var(--texte-2);font-size:15px}
@media (max-width:900px){.grid-n{grid-template-columns:repeat(2,1fr)}}

/* Technologies */
.services .item{display:grid;grid-template-columns:120px 1fr 1fr;gap:40px;padding:48px 0;border-top:1px solid var(--trait);align-items:start}
.services .item:last-child{border-bottom:1px solid var(--trait)}
.services .num{color:var(--bordeaux)}
.services .num small{display:block;color:var(--texte-2);margin-top:6px;letter-spacing:.12em}
.services .body p{color:var(--texte-2);margin-top:12px}
.services .parc{margin-top:22px;display:grid;gap:8px}
.services .parc div{display:flex;gap:12px;font-size:15px}
.services .parc div::before{content:"";flex:none;width:18px;height:1px;background:var(--bordeaux);margin-top:12px}
.services .media{position:relative;aspect-ratio:4/3;display:grid;place-items:center;padding:8px 18px 26px}
.services .media::after{content:"";position:absolute;left:20%;right:20%;bottom:3%;height:9%;border-radius:50%;background:radial-gradient(closest-side,rgba(14,14,16,.2),transparent);filter:blur(5px);transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .6s}
.services .media img{position:relative;z-index:1;max-height:100%;max-width:100%;width:auto;object-fit:contain;filter:drop-shadow(0 22px 24px rgba(14,14,16,.16));transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.services .item:hover .media img{transform:translateY(-10px) rotate(-1.5deg) scale(1.03)}
.services .item:hover .media::after{transform:scale(.88);opacity:.7}
.services .new{margin-left:8px;padding:3px 8px;border-radius:999px;background:var(--bordeaux);color:#fff;font-size:10px;letter-spacing:.1em;vertical-align:1px}
.services .link{display:inline-flex;align-items:center;gap:10px;margin-top:24px;padding:13px 22px;border-radius:999px;background:var(--bordeaux);color:#fff;font-weight:600;text-decoration:none;box-shadow:0 12px 26px -14px rgba(138,36,50,.7);transition:transform .2s,filter .2s,box-shadow .2s}
.services .link:hover{color:#fff;filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(138,36,50,.8)}
.services .link .arr{transition:transform .2s}
.services .link:hover .arr{transform:translateX(4px)}
@media (max-width:960px){.services .item{grid-template-columns:1fr;gap:22px;padding:40px 0}.services .num{display:flex;gap:16px;align-items:baseline}.services .num small{margin:0}.services .media{max-width:560px}}

/* Atelier */
.gal{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:16px;height:min(76vh,700px)}
.gal figure{position:relative;margin:0;overflow:hidden;border-radius:var(--r);background:var(--ink-2)}
.gal .g1{grid-row:1/3}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.gal figure:hover img{transform:scale(1.045)}
.gal figcaption{position:absolute;left:16px;bottom:16px;padding:9px 14px;border-radius:999px;background:rgba(14,14,16,.62);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
@media (max-width:800px){.gal{grid-template-columns:1fr;grid-template-rows:none;height:auto}.gal .g1{grid-row:auto}.gal figure{aspect-ratio:4/3}}

/* Matières */
.matieres{background:var(--paper-2);color:var(--texte);overflow:hidden}
.matieres .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:120px 0}
.matieres .mono{color:var(--bordeaux);display:block;margin-bottom:18px}
.matieres p{color:var(--texte-2);margin-top:20px;font-size:18px}
.gauge{position:relative;padding:40px 0 0}
.gauge .scale{position:relative;height:120px;border-bottom:1px solid var(--trait)}
.gauge .scale i{position:absolute;bottom:0;width:1px;background:var(--trait);height:24px}
.gauge .scale i.big{height:60px;background:var(--texte-2)}
.gauge .scale i.big::after{content:attr(data-v);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:10px;font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--texte);white-space:nowrap}
.gauge .fill{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:linear-gradient(90deg,var(--bordeaux),#E0603A);transform-origin:left}
.fx .gauge .fill{transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.fx .gauge.in .fill{transform:scaleX(1)}
.gauge .legend{display:flex;justify-content:space-between;margin-top:14px;color:var(--texte-2)}
.mat{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}
.mat span{padding:10px 16px;border:1px solid var(--trait);border-radius:999px;font-size:14px;font-weight:500;background:var(--paper)}
@media (max-width:900px){.matieres .wrap{grid-template-columns:1fr;gap:44px;padding:88px 0}}

/* Jauge d'épaisseurs (presse et tôlerie) */
.gauge2{display:grid;gap:30px;padding-top:34px}
.g-scale{position:relative;height:18px;margin-left:190px;margin-right:120px;border-bottom:1px solid var(--trait);color:var(--texte-2)}
.g-scale span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.g-scale span:last-child{transform:translateX(-80%)}
.g-row{display:grid;grid-template-columns:190px 1fr 120px;align-items:center}
.g-lab b{display:block;font-size:17px}
.g-lab .mono{color:var(--texte-2)}
.g-track{position:relative;height:14px;border-radius:999px;background:var(--trait)}
.g-fill{position:absolute;top:0;bottom:0;border-radius:999px;transform-origin:left}
.g-fill.a{background:linear-gradient(90deg,var(--bordeaux),#E0603A)}
.g-fill.b{background:linear-gradient(90deg,transparent,var(--texte-2) 18%,var(--texte))}
.fx .gauge2 .g-fill{transform:scaleX(0);transition:transform 1.5s cubic-bezier(.2,.7,.2,1)}
.fx .gauge2.in .g-fill{transform:none}
.fx .gauge2 .g-fill.b{transition-delay:.25s}
.g-mark{position:absolute;top:-26px;transform:translateX(-50%);font-style:normal;color:var(--bordeaux);white-space:nowrap}
.g-mark::after{content:"";position:absolute;left:50%;top:20px;width:2px;height:22px;background:var(--bordeaux)}
.g-val{text-align:right;color:var(--texte)}
@media (max-width:640px){.g-scale{margin-left:0;margin-right:0}.g-row{grid-template-columns:1fr;gap:10px}.g-val{text-align:left}}

/* Qualité */
.qualite .grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.qualite .mono{color:var(--bordeaux);display:block;margin-bottom:18px}
.qualite p{color:var(--texte-2);margin-top:18px;font-size:18px}
.qualite ul{list-style:none;padding:0;margin-top:30px;border-top:1px solid var(--trait)}
.qualite li{padding:16px 0;border-bottom:1px solid var(--trait);display:flex;justify-content:space-between;gap:20px;font-weight:500}
.qualite li .mono{color:var(--texte-2);margin:0;flex:none}
.qcard{position:relative;aspect-ratio:4/5;display:grid;place-items:center;padding:30px 30px 70px}
.qcard::before{content:"";position:absolute;left:22%;right:22%;bottom:14%;height:7%;border-radius:50%;background:radial-gradient(closest-side,rgba(14,14,16,.22),transparent);filter:blur(6px)}
.qcard img.piece{position:relative;max-height:100%;max-width:100%;width:auto;object-fit:contain;filter:drop-shadow(0 26px 26px rgba(14,14,16,.18))}
.qcard .badge{position:absolute;left:20px;bottom:20px;display:flex;align-items:center;gap:14px;background:var(--ink);color:var(--texte-inv);padding:12px 16px 12px 12px;border-radius:10px}
.qcard .badge img{width:56px;height:auto;border-radius:6px;background:#fff;padding:3px}
.qcard .badge b{display:block;font-size:15px}
.qcard .badge small{color:var(--texte-inv-2);font-size:12px}
@media (max-width:900px){.qualite .grid{grid-template-columns:1fr;gap:36px}.qcard{aspect-ratio:4/3}}

/* Bloc certificat */
.certif{display:flex;align-items:center;gap:22px;width:100%;margin-top:30px;padding:18px 22px 18px 18px;border-radius:var(--r);background:var(--paper);border:1px solid var(--trait);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .25s,box-shadow .25s,transform .25s}
.certif:hover{border-color:var(--bordeaux);box-shadow:0 20px 40px -26px rgba(14,14,16,.4);transform:translateY(-2px)}
.cert-thumb{flex:none;width:92px;aspect-ratio:1/1.414;overflow:hidden;border-radius:4px;background:#fff;box-shadow:0 10px 22px -8px rgba(14,14,16,.35),0 0 0 1px rgba(14,14,16,.08);transform:rotate(-3deg);transition:transform .35s}
.certif:hover .cert-thumb{transform:rotate(0) scale(1.04)}
.cert-thumb img{width:100%;height:100%;object-fit:cover}
.cert-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.cert-txt .afaq{display:inline-flex;align-self:flex-start;margin-bottom:6px;padding:4px 6px;border-radius:6px;background:#fff;border:1px solid rgba(14,14,16,.08)}
.cert-txt .afaq img{height:34px;width:auto}
.cert-txt b{font-size:17px}
.cert-txt small{color:var(--texte-2);font-size:13px;line-height:1.5}
.cert-link{margin-top:6px;color:var(--bordeaux)}
.link-metro{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-weight:600;color:var(--texte);text-decoration:none}
.link-metro:hover{color:var(--bordeaux)}
.pfoot{margin-top:auto;padding-top:22px}
.pfoot p{color:var(--texte-2);font-size:14px}
.pbtn{margin-top:14px;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--bordeaux);background:none;color:var(--bordeaux);font:inherit;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s,color .2s}
.pbtn:hover{background:var(--bordeaux);color:#fff}
.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:4vh 4vw;background:rgba(10,10,12,.84);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:lbin .25s ease}
.lightbox[hidden]{display:none}
.lightbox img{max-height:92vh;max-width:100%;width:auto;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.5);background:#fff}
.lb-close{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:18px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font-size:26px;line-height:1;cursor:pointer}
@keyframes lbin{from{opacity:0}to{opacity:1}}

/* Secteurs */
.secteurs{background:var(--paper-2)}
.grid-s{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--trait);border:1px solid var(--trait);border-radius:var(--r);overflow:hidden}
.s{background:var(--paper);padding:34px 30px;min-height:190px;display:flex;flex-direction:column;justify-content:space-between;transition:background .25s,color .25s}
.s:hover{background:var(--bordeaux);color:#fff}
.s .mono{color:var(--texte-2)}
.s:hover .mono{color:rgba(255,255,255,.7)}
.s b{font-size:clamp(20px,2vw,26px);font-weight:700;letter-spacing:-.02em}
.s p{font-size:14px;color:var(--texte-2);margin-top:6px}
.s:hover p{color:rgba(255,255,255,.78)}
@media (max-width:800px){.grid-s{grid-template-columns:repeat(2,1fr)}.s{min-height:150px;padding:26px 22px}}

/* Répartition par marché */
.mix{margin:0 0 30px}
.mix-bar{display:flex;gap:3px;height:16px;border-radius:999px;overflow:hidden}
.mix-bar span{flex:var(--w);transform-origin:left}
.s-auto{background:var(--bordeaux)}.s-fer{background:var(--bordeaux-light)}.s-hab{background:#7A746B}.s-bat{background:#B3AC9F}.s-ind{background:var(--texte)}
.fx .mix .mix-bar span{transform:scaleX(0);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.fx .mix.in .mix-bar span{transform:none}
.markets{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mk{padding:26px 26px 8px;border-radius:var(--r);background:var(--paper);border:1px solid var(--trait)}
.mk-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--trait)}
.mk-head .mono{display:flex;align-items:center;gap:8px;color:var(--texte-2)}
.mk-head .mono::before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--c)}
.mk-head b{font-size:clamp(34px,3.6vw,48px);font-weight:800;letter-spacing:-.04em;line-height:1}
.sec{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--trait)}
.sec:last-child{border-bottom:0}
.sec b{font-size:18px}
.sec p{margin-top:4px;font-size:14px;color:var(--texte-2)}
.sec>span{flex:none;padding-top:4px;color:var(--texte);white-space:nowrap}
.mix-note{margin-top:16px;color:var(--texte-2)}
@media (max-width:900px){.markets{grid-template-columns:1fr}}

/* Bandeau photo */
.band{position:relative;color:var(--texte-inv);overflow:hidden;background:var(--ink)}
.band .bgw{position:absolute;left:0;right:0;top:-12%;bottom:-12%;will-change:transform}
.band .bgw img{width:100%;height:100%;object-fit:cover;filter:saturate(.6)}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,14,16,.88),rgba(14,14,16,.45))}
.band .wrap{position:relative;z-index:1;padding:120px 0;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.band .mono{color:#E8C7CC;display:block;margin-bottom:18px}
.band p{color:#D8D8D3;font-size:18px;margin-top:18px}
.trio{display:grid;gap:1px;background:var(--trait-inv);border:1px solid var(--trait-inv);border-radius:var(--r);overflow:hidden}
.trio>div{background:rgba(14,14,16,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:24px 26px;display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start}
.trio>div>.mono{margin:0;color:var(--texte-inv-2);padding-top:6px}
.trio b{display:block;font-size:20px;margin-bottom:4px}
.trio p{font-size:15px;margin:0;color:var(--texte-inv-2)}
@media (max-width:900px){.band .wrap{grid-template-columns:1fr;padding:88px 0}}

/* Réseau */
.reseau .two{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.reseau h3{margin-bottom:12px}
.reseau p{color:var(--texte-2)}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.tags a{text-decoration:none;font-weight:500;font-size:15px;padding:10px 16px;border:1px solid var(--trait);border-radius:999px;transition:border-color .2s,color .2s}
.tags a:hover{border-color:var(--bordeaux);color:var(--bordeaux)}
.logo-card{display:inline-flex;margin-top:26px;padding:14px 20px;border-radius:12px;background:#fff;border:1px solid var(--trait);transition:transform .3s}
.logo-card:hover{transform:translateY(-2px)}
.logo-card img{height:44px;width:auto}
@media (max-width:800px){.reseau .two{grid-template-columns:1fr;gap:40px}}

/* Partenaires */
.pgroup{margin-top:56px}
.pg-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--trait)}
.pg-head .mono{color:var(--texte-2)}
.plogos{display:grid;gap:14px}
.plogos.ind{grid-template-columns:repeat(2,1fr)}
.plogos.inst{grid-template-columns:repeat(7,1fr)}
.ptile{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:132px;padding:20px;border-radius:var(--r);background:#fff;border:1px solid var(--trait);color:#0E0E10;text-decoration:none;transition:transform .3s,box-shadow .3s}
a.ptile:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(14,14,16,.35)}
.ptile img{max-height:66px;max-width:80%;width:auto;height:auto;object-fit:contain}
.ptile img.wide{max-width:88%;max-height:54px}
.plogos.ind .ptile{min-height:210px;align-items:stretch;justify-content:space-between;padding:24px 26px}
.plogo{flex:1;display:grid;place-items:center;min-height:100px}
.plogo img{max-height:62px;max-width:78%}
.plogo img.round{max-height:104px;max-width:60%}
.wm{font-weight:800;font-size:clamp(18px,1.9vw,24px);letter-spacing:.06em;color:#1B1C20;text-align:center}
.pcap{display:flex;flex-direction:column;gap:3px;padding-top:16px;border-top:1px solid rgba(14,14,16,.1)}
.pcap b{font-size:15px}
.pcap span{font-size:13px;color:#5D6068}
@media (max-width:1000px){.plogos.inst{grid-template-columns:repeat(4,1fr)}}
@media (max-width:700px){.plogos.ind{grid-template-columns:1fr}.plogos.ind .ptile{min-height:170px}.plogos.inst{grid-template-columns:repeat(2,1fr)}.ptile{min-height:112px}}

/* Menu déroulant « Nos métiers » */
.dd{position:relative}
.dd-btn{display:inline-flex;align-items:center;gap:7px;font:inherit;font-weight:500;font-size:15px;padding:9px 14px;border-radius:999px;border:0;background:none;color:var(--texte);cursor:pointer;transition:background .2s}
.header:not(.solid) .dd-btn,.header.dark-mode .dd-btn{color:var(--texte-inv)}
.dd-btn:hover{background:rgba(127,127,127,.15)}
.dd-btn svg{transition:transform .25s}
.dd.open .dd-btn svg{transform:rotate(180deg)}
.dd-panel{position:absolute;top:calc(100% + 10px);left:50%;width:720px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px;border-radius:16px;background:var(--paper);border:1px solid var(--trait);box-shadow:0 30px 60px -24px rgba(14,14,16,.35);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .2s,transform .2s,visibility .2s}
.dd-panel::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.dd.open .dd-panel{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media (hover:hover) and (min-width:961px){.dd:hover .dd-panel{opacity:1;visibility:visible;transform:translate(-50%,0)}.dd:hover .dd-btn svg{transform:rotate(180deg)}}
.header .nav a.dd-item{display:flex;flex-direction:column;gap:4px;padding:12px 12px 14px;border-radius:12px;text-decoration:none;color:var(--texte);font-size:15px;transition:background .2s}
.header .nav a.dd-item:hover{background:var(--paper-2)}
.dd-img{display:grid;place-items:center;height:96px;margin-bottom:6px}
.dd-img img{max-height:96px;max-width:100%;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(14,14,16,.18));transition:transform .4s}
.dd-item:hover .dd-img img{transform:translateY(-4px) scale(1.04)}
.dd-item .mono{color:var(--bordeaux)}
.dd-item b{font-size:15px;line-height:1.25}
@media (max-width:960px){
  .header.open .dd{display:block}
  .header.open .dd-btn{color:var(--texte-inv);padding:9px 14px;pointer-events:none}
  .header.open .dd-btn svg{display:none}
  .dd-panel{position:static;width:auto;display:grid;grid-template-columns:1fr;gap:0;padding:0 0 0 14px;background:none;border:0;box-shadow:none;opacity:1;visibility:visible;transform:none}
  .header .nav a.dd-item{flex-direction:row;align-items:center;gap:10px;padding:7px 14px;color:var(--texte-inv)}
  .header .nav a.dd-item:hover{background:rgba(255,255,255,.06)}
  .dd-img{display:none}
}

/* Pages métiers */
.view[hidden]{display:none}
.m-hero{position:relative;overflow:hidden;background:var(--ink);color:var(--texte-inv);padding:150px 0 72px}
.m-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 70% at 74% 48%,rgba(138,36,50,.42),transparent 70%),radial-gradient(35% 45% at 72% 52%,rgba(255,255,255,.09),transparent 70%)}
.m-hero .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.m-crumb{display:flex;flex-wrap:wrap;gap:10px;color:var(--texte-inv-2)}
.m-crumb a{text-decoration:none}
.m-crumb a:hover{color:var(--texte-inv)}
.m-crumb b{color:var(--texte-inv);font-weight:500}
.m-kicker{display:block;margin-top:40px;color:var(--bordeaux-light)}
.m-hero h1{font-size:clamp(42px,6vw,92px);font-weight:800;letter-spacing:-.04em;margin-top:14px}
.m-lead{margin-top:22px;font-size:clamp(17px,1.4vw,20px);color:#D8D8D3;max-width:54ch}
.m-figs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:44px;border:1px solid var(--trait-inv);border-radius:var(--r);overflow:hidden;background:var(--trait-inv)}
.m-figs div{padding:18px;background:rgba(14,14,16,.6)}
.m-figs b{display:block;font-size:clamp(20px,2.1vw,30px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.m-figs span{display:block;margin-top:6px;font-size:13px;color:var(--texte-inv-2)}
.m-part{position:relative;display:grid;place-items:center;min-height:440px}
.m-part::after{content:"";position:absolute;left:24%;right:24%;bottom:8%;height:8%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent);filter:blur(8px)}
.m-part img{position:relative;z-index:1;max-height:440px;max-width:100%;object-fit:contain;filter:drop-shadow(0 40px 40px rgba(0,0,0,.45));animation:mfloat 7s ease-in-out infinite}
@keyframes mfloat{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-14px) rotate(1deg)}}
.m-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:64px;align-items:start}
.m-label{color:var(--bordeaux);display:block;margin-bottom:18px}
.m-body h2{margin-bottom:22px}
.m-body p{color:var(--texte-2);font-size:18px;margin-top:14px}
.m-h3{margin-top:38px}
.m-aside{position:sticky;top:110px;padding:28px;border-radius:var(--r);background:var(--paper-2);border:1px solid var(--trait)}
.m-aside .mono{color:var(--bordeaux)}
.m-aside .mat{margin-top:16px}
.m-note{margin-top:16px;color:var(--texte-2);font-size:15px}
.m-aside .btn{margin-top:24px;width:100%;justify-content:center}
.m-parc{background:var(--paper-2)}
.m-parc .head{margin-bottom:40px}
.parc-bars{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:28px}
.parc-bars:has(.bars-block:only-child){grid-template-columns:1fr}
.bars-block{padding:26px 26px 44px;border-radius:var(--r);background:var(--paper);border:1px solid var(--trait)}
.bars-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:26px}
.bars-head h3{font-size:20px}
.bars-head .mono{color:var(--texte-2)}
.bars{display:flex;align-items:flex-end;gap:8px;height:200px;border-bottom:1px solid var(--trait)}
.bar{position:relative;flex:1;height:calc(var(--v) * 1%);border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--bordeaux),#5e1520);transform-origin:bottom}
.bars-block.alt .bar{background:linear-gradient(180deg,#8d9097,#55585f)}
.bar em{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);font-style:normal;font-size:10px;letter-spacing:.04em;color:var(--texte-2);white-space:nowrap}
.fx .rv .bar{transform:scaleY(0);transition:transform 1s cubic-bezier(.2,.7,.2,1) var(--d)}
.fx .rv.in .bar{transform:none}
.machines{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:10px}
.machines.three{grid-template-columns:repeat(3,1fr)}
.mach{overflow:hidden;border-radius:var(--r);background:var(--paper);border:1px solid var(--trait)}
.mach figure{margin:0;aspect-ratio:16/10;overflow:hidden;background:var(--ink-2)}
.mach figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.mach:hover figure img{transform:scale(1.04)}
.mach.noimg{border-left:3px solid var(--bordeaux)}
.mach.noimg .mb{padding:24px 24px 26px}
.mach.noimg .mono{display:block;margin-bottom:10px;color:var(--bordeaux)}
.mach .mb{padding:20px 22px 22px}
.mach h3{font-size:20px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.mach p{margin-top:8px;color:var(--texte-2);font-size:15px}
.mach .new,.services .new{padding:3px 8px;border-radius:999px;background:var(--bordeaux);color:#fff;font-size:10px;letter-spacing:.1em}
.m-chips{margin-top:28px;padding:26px;border-radius:var(--r);background:var(--paper);border:1px solid var(--trait)}
.m-chips h3{font-size:18px}
.m-chips .mat{margin:12px 0 22px}
.m-chips .mat:last-child{margin-bottom:0}
.m-photo{position:relative;margin:28px 0 0;overflow:hidden;border-radius:var(--r);aspect-ratio:21/9;background:var(--ink-2)}
.m-photo img{width:100%;height:100%;object-fit:cover}
.m-photo figcaption{position:absolute;left:16px;bottom:16px;padding:9px 14px;border-radius:999px;background:rgba(14,14,16,.62);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.m-next{border-top:1px solid var(--trait)}
.m-next .wrap{display:grid;grid-template-columns:1fr 1fr}
.m-nav{display:flex;flex-direction:column;gap:6px;padding:38px 0;text-decoration:none;color:var(--texte)}
.m-nav.next{align-items:flex-end;text-align:right;border-left:1px solid var(--trait)}
.m-nav .mono{color:var(--bordeaux)}
.m-nav b{font-size:clamp(20px,2.2vw,28px);letter-spacing:-.02em;transition:color .2s}
.m-nav:hover b{color:var(--bordeaux)}
@media (max-width:960px){
  .m-hero{padding:120px 0 56px}
  .m-hero .wrap,.m-grid,.parc-bars{grid-template-columns:1fr}
  .m-part{min-height:260px;order:-1}
  .m-part img{max-height:260px}
  .m-figs{grid-template-columns:repeat(2,1fr)}
  .m-aside{position:static}
  .machines,.machines.three{grid-template-columns:1fr}
  .m-kicker{margin-top:20px}
}

.m-sub{display:flex;align-items:center;gap:12px;margin:34px 0 14px;color:var(--texte-2)}
.m-sub::after{content:"";flex:1;height:1px;background:var(--trait)}
.m-parc .head+.m-sub{margin-top:0}
.mach-spec{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;aspect-ratio:16/10;padding:26px;background:radial-gradient(70% 90% at 80% 20%,rgba(138,36,50,.38),transparent 70%),linear-gradient(135deg,var(--ink-2),var(--ink-3));color:var(--texte-inv)}
.mach-spec b{font-size:clamp(56px,7vw,96px);font-weight:800;letter-spacing:-.05em;line-height:.9}
.mach-spec .mono{color:var(--texte-inv-2)}
.machines.tall{margin-top:28px}
.machines.tall figure{aspect-ratio:1/1.08}

.presses{border-top:1px solid var(--trait)}
.press-fam{display:grid;grid-template-columns:210px 1fr;gap:36px;align-items:end;padding:40px 0 54px;border-bottom:1px solid var(--trait)}
.pf-head .mono{display:block;color:var(--bordeaux)}
.press-fam.reprise .pf-head .mono{color:var(--texte-2)}
.pf-head b{display:block;margin-top:10px;font-size:clamp(56px,6vw,84px);font-weight:800;letter-spacing:-.05em;line-height:.9}
.pf-head small{display:block;margin-top:8px;font-size:15px;color:var(--texte-2)}
.press-row{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:6px;border-bottom:2px solid var(--texte)}
.press-row::after{content:"";position:absolute;left:0;right:0;top:100%;height:18px;background:linear-gradient(180deg,rgba(14,14,16,.08),transparent)}
.pr{position:relative;display:flex;justify-content:center;flex:1}
.pr svg{display:block;height:var(--h);width:auto;overflow:visible}
.pr span i{font-style:normal}
.pr span{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;color:var(--texte-2)}
.press-fam.auto .pr{color:var(--bordeaux)}
.press-fam.reprise .pr{color:#4B4E55}
.pr-crown,.pr-col,.pr-base{fill:currentColor}
.pr-ram rect:first-child{fill:currentColor;opacity:.72}
.pr-stripe{fill:#F2C230}
.pr-bed{fill:#A7ACB3}
.pr-ram{transform-box:view-box}
.pr:hover .pr-ram{animation:stamp .65s cubic-bezier(.5,0,.5,1)}
@keyframes stamp{0%{transform:none}42%{transform:translateY(62px)}58%{transform:translateY(62px)}100%{transform:none}}
.fx .press-fam .pr svg{opacity:0;transform:translateY(40px);transition:transform 1s cubic-bezier(.2,.7,.2,1) var(--d),opacity .6s var(--d)}
.fx .press-fam.in .pr svg{opacity:1;transform:none}
.fx .press-fam.in .pr-ram{animation:stamp .7s cubic-bezier(.5,0,.5,1) calc(var(--d) + .9s) 1 both}
.bento{display:grid;grid-template-columns:1.05fr 1fr 1fr;grid-template-rows:300px 260px;gap:16px;margin-top:56px}
.bento .b-a{grid-row:1/3}
.bento .b-b{grid-column:2/4}
.bento figure{position:relative;margin:0;overflow:hidden;border-radius:22px;background:var(--ink-2)}
.bento figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.bento figure:hover img{transform:scale(1.045)}
.bento figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(10,10,12,.72));pointer-events:none}
.bento figcaption{position:absolute;z-index:1;left:22px;right:22px;bottom:20px;display:flex;justify-content:space-between;align-items:flex-end;gap:14px;color:#fff}
.bento figcaption b{font-size:clamp(18px,1.6vw,22px);letter-spacing:-.02em}
.bento figcaption .mono{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap}
.stat{display:flex;flex-direction:column;justify-content:space-between;padding:26px 26px 28px;border-radius:22px;overflow:hidden;position:relative}
.stat .mono{opacity:.75}
.stat b{display:block;font-size:clamp(52px,5.4vw,80px);font-weight:800;letter-spacing:-.05em;line-height:.9}
.stat p{margin-top:12px;font-size:15px;line-height:1.45;opacity:.85;max-width:28ch}
.stat.dark{background:var(--ink);color:var(--texte-inv);border:1px solid var(--trait-inv)}
.stat.bord{background:var(--bordeaux);color:#fff}
.stat.bord::before{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.18),transparent)}
@media (max-width:900px){
  .press-fam{grid-template-columns:1fr;gap:22px;padding:30px 0 50px}
  .press-row{gap:2px}
  .pr svg{height:calc(var(--h) * .5)}
  .pr span{font-size:9px;letter-spacing:0;top:calc(100% + 8px)}
  .pr span i{display:none}
  .bento{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .bento .b-a{grid-row:auto;grid-column:1/3;aspect-ratio:4/5}
  .bento .b-b{grid-column:1/3;aspect-ratio:16/10}
  .stat{min-height:200px}
}

/* Métrologie */
.mt-visual{position:relative}
.mt-frame{position:relative;margin:0;overflow:hidden;border-radius:24px;aspect-ratio:4/3.1;background:var(--ink-2);box-shadow:0 50px 90px -40px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.08)}
.mt-frame img{width:100%;height:100%;object-fit:cover;object-position:42% 50%}
.scan{position:absolute;left:0;right:0;top:-40%;height:40%;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(90,175,255,0) 0 12px,rgba(90,175,255,.22) 12px 14px);mix-blend-mode:screen;-webkit-mask-image:linear-gradient(180deg,transparent,#000 45%,#000 55%,transparent);mask-image:linear-gradient(180deg,transparent,#000 45%,#000 55%,transparent);animation:mtscan 5s cubic-bezier(.45,0,.55,1) infinite}
.scan::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:linear-gradient(90deg,transparent,rgba(150,210,255,.95),transparent);box-shadow:0 0 18px rgba(120,190,255,.9)}
@keyframes mtscan{0%{transform:translateY(0)}100%{transform:translateY(350%)}}
.mt-chip{position:absolute;left:-18px;bottom:28px;display:inline-flex;align-items:center;gap:10px;padding:11px 16px;border-radius:999px;background:rgba(14,14,16,.78);color:#fff;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.mt-chip i{width:8px;height:8px;border-radius:50%;background:#5BB8FF;box-shadow:0 0 0 0 rgba(91,184,255,.6);animation:mtpulse 1.8s ease-out infinite}
@keyframes mtpulse{0%{box-shadow:0 0 0 0 rgba(91,184,255,.6)}100%{box-shadow:0 0 0 12px rgba(91,184,255,0)}}
.mt-tech{display:grid;gap:84px}
.mt-row{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
.mt-row.rev{grid-template-columns:.9fr 1.1fr}
.mt-row.rev .mt-photo{order:2}
.mt-photo{position:relative;margin:0;overflow:hidden;border-radius:24px;aspect-ratio:4/3;background:var(--ink-2);box-shadow:0 40px 70px -40px rgba(14,14,16,.5)}
.mt-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.mt-photo:hover img{transform:scale(1.04)}
.mt-tag{position:absolute;left:18px;top:18px;padding:8px 12px;border-radius:999px;background:rgba(14,14,16,.6);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.mt-txt>.mono{color:var(--bordeaux)}
.mt-txt h3{margin-top:12px;font-size:clamp(30px,3.2vw,46px);letter-spacing:-.03em}
.mt-txt p{margin-top:16px;font-size:18px;color:var(--texte-2)}
.mt-txt ul{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:13px}
.mt-txt li{position:relative;padding-left:30px}
.mt-txt li::before{content:"";position:absolute;left:0;top:4px;width:18px;height:18px;border-radius:50%;background:var(--bordeaux) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='1.8'/%3E%3C/svg%3E") center/100% no-repeat}
.mt-inst-sec{background:var(--paper-2)}
.instr{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ins{padding:28px 26px;border-radius:var(--r);background:var(--paper);border:1px solid var(--trait);transition:transform .3s,box-shadow .3s,border-color .3s}
.ins:hover{transform:translateY(-4px);border-color:rgba(138,36,50,.35);box-shadow:0 24px 44px -26px rgba(14,14,16,.35)}
.ins .ic{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:rgba(138,36,50,.08);color:var(--bordeaux);transition:background .3s,color .3s}
.ins:hover .ic{background:var(--bordeaux);color:#fff}
.ins .ic svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ins h3{margin-top:22px;font-size:19px}
.ins p{margin-top:8px;font-size:14.5px;line-height:1.55;color:var(--texte-2)}
.mt-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:st}
.mt-steps li{position:relative;overflow:hidden;padding:30px 30px 34px;border-radius:var(--r);background:var(--ink);color:var(--texte-inv);border:1px solid var(--trait-inv)}
.mt-steps li::before{counter-increment:st;content:"0" counter(st);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:13px;letter-spacing:.12em;color:var(--bordeaux-light)}
.mt-steps li::after{content:"";position:absolute;right:-50px;top:-50px;width:160px;height:160px;border-radius:50%;background:radial-gradient(closest-side,rgba(138,36,50,.35),transparent)}
.mt-steps b{display:block;margin-top:16px;font-size:23px;letter-spacing:-.02em}
.mt-steps p{margin-top:10px;font-size:15px;color:var(--texte-inv-2)}
.mt-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:56px;padding:40px 44px;border-radius:24px;background:radial-gradient(60% 120% at 90% 10%,rgba(138,36,50,.55),transparent 70%),var(--ink);color:var(--texte-inv)}
.mt-cta h2{font-size:clamp(28px,3vw,42px)}
.mt-cta p{margin-top:10px;color:var(--texte-inv-2)}
.mt-cta .btn{flex:none}
@media (max-width:1000px){.instr{grid-template-columns:repeat(2,1fr)}}
@media (max-width:960px){.mt-row,.mt-row.rev{grid-template-columns:1fr;gap:28px}.mt-row.rev .mt-photo{order:0}.mt-steps{grid-template-columns:1fr}.mt-cta{flex-direction:column;align-items:flex-start;padding:30px}.mt-chip{left:12px;bottom:12px}.mt-visual{order:-1}}
@media (max-width:560px){.instr{grid-template-columns:1fr}}
@media (prefers-reduced-motion: reduce){.scan,.mt-chip i{animation:none}.scan{display:none}}

/* Métrologie : mise en scène des photos */
.mt-collage{position:relative;aspect-ratio:1.16/1}
.mt-collage figure{position:absolute;margin:0;overflow:hidden;background:var(--ink-2)}
.mt-collage img,.mt-feat img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.07) brightness(.95)}
.mt-collage figure::after,.mt-feat figure::after{content:"";position:absolute;inset:0;pointer-events:none}
.mc-main{right:0;top:0;width:84%;height:80%;border-radius:26px;box-shadow:0 50px 90px -40px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.08)}
.mc-main::after{background:linear-gradient(150deg,rgba(138,36,50,.22),transparent 45%),linear-gradient(0deg,rgba(14,14,16,.45),transparent 40%)}
.mc-main img{object-position:56% 45%}
.mc-sub{left:0;bottom:0;width:50%;height:50%;border-radius:20px;border:6px solid var(--ink);box-shadow:0 40px 70px -30px rgba(0,0,0,.8)}
.mc-sub img{object-position:36% 48%}
.mc-sub::after{background:linear-gradient(0deg,rgba(14,14,16,.35),transparent 50%)}
.mc-sub .scan{top:-40%;height:40%}
.mt-collage .mt-chip{left:auto;right:18px;bottom:calc(20% + 18px)}
.corners{position:absolute;inset:18px;z-index:1;pointer-events:none;opacity:.9;background:
 linear-gradient(#fff,#fff) left top/24px 2px no-repeat,linear-gradient(#fff,#fff) left top/2px 24px no-repeat,
 linear-gradient(#fff,#fff) right top/24px 2px no-repeat,linear-gradient(#fff,#fff) right top/2px 24px no-repeat,
 linear-gradient(#fff,#fff) left bottom/24px 2px no-repeat,linear-gradient(#fff,#fff) left bottom/2px 24px no-repeat,
 linear-gradient(#fff,#fff) right bottom/24px 2px no-repeat,linear-gradient(#fff,#fff) right bottom/2px 24px no-repeat}
.mt-feats{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mt-feat{display:flex;flex-direction:column;overflow:hidden;border-radius:28px;background:var(--ink);color:var(--texte-inv);border:1px solid var(--trait-inv);box-shadow:0 40px 80px -50px rgba(14,14,16,.55);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.mt-feat:hover{transform:translateY(-6px);box-shadow:0 50px 90px -48px rgba(14,14,16,.65)}
.mt-feat figure{position:relative;margin:0;aspect-ratio:16/10.5;overflow:hidden}
.mt-feat figure img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.mt-feat:hover figure img{transform:scale(1.05)}
.mt-feat figure::after{background:linear-gradient(150deg,rgba(138,36,50,.2),transparent 45%),linear-gradient(0deg,var(--ink) 0%,rgba(14,14,16,.55) 22%,transparent 55%)}
.mt-feat .mt-tag{z-index:2;left:22px;top:22px}
.mt-feat .corners{inset:22px 22px 30% 22px}
.mf-body{position:relative;margin-top:-56px;padding:0 32px 34px}
.mf-body>.mono{color:var(--bordeaux-light)}
.mf-body h3{margin-top:10px;font-size:clamp(30px,3vw,44px);letter-spacing:-.03em}
.mf-body p{margin-top:14px;color:var(--texte-inv-2);font-size:16.5px;line-height:1.6}
.mf-chips{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.mf-chips li{padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);font-size:13.5px}
@media (max-width:960px){.mt-feats{grid-template-columns:1fr}.mt-collage{order:-1;margin-bottom:10px}}

.spot{display:grid;grid-template-columns:210px 1fr;gap:36px;align-items:center;padding:40px 0 44px;border-top:1px solid var(--trait);border-bottom:1px solid var(--trait)}
.rings{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.ring{position:relative;aspect-ratio:1;max-width:170px;width:100%;justify-self:center}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.rg-bg{fill:none;stroke:var(--trait);stroke-width:7}
.rg-fg{fill:none;stroke:var(--bordeaux);stroke-width:7;stroke-linecap:round;stroke-dasharray:var(--dash) 100}
.fx .spot .rg-fg{stroke-dasharray:0 100;transition:stroke-dasharray 1.4s cubic-bezier(.2,.7,.2,1) var(--d)}
.fx .spot.in .rg-fg{stroke-dasharray:var(--dash) 100}
.rg-v{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.rg-v b{font-size:clamp(22px,2.4vw,34px);font-weight:800;letter-spacing:-.04em;line-height:1}
.rg-v .mono{margin-top:4px;color:var(--texte-2)}
.bento.sb .b-wide{grid-column:2/4}
.bento.sb .stat b{font-size:clamp(40px,4.2vw,62px)}
.stat.light{background:var(--paper);color:var(--texte);border:1px solid var(--trait)}
.stat.light .mono{color:var(--bordeaux);opacity:1}
.stat .st-lead{margin:0 0 16px;font-size:clamp(20px,2vw,26px);font-weight:700;letter-spacing:-.02em;opacity:1;max-width:none}
.stat.light .mat{margin-top:0}
@media (max-width:900px){.spot{grid-template-columns:1fr;gap:22px}.rings{gap:8px}.rg-v b{font-size:17px}.rg-v .mono{font-size:9px}.bento.sb .b-wide{grid-column:1/3}}

.bento.sb .stat .st-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:9px}
.bento.sb .stat .st-list li{font-size:13.5px;line-height:1.4;opacity:.9}
.bento.sb .stat .st-list b{display:inline;margin-right:6px;font-size:14px;letter-spacing:0;line-height:1.4;font-weight:700}
.bento.sb .stat>div>b{line-height:.9}

/* En-tête photo (page Emboutissage) */
.m-hero-photo{display:flex;align-items:flex-end;min-height:min(94vh,880px);padding:150px 0 64px}
.m-hero-photo::before{display:none}
.m-bg{position:absolute;inset:0;overflow:hidden}
.m-bg img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;transform-origin:70% 50%;animation:mbz 26s ease-in-out infinite alternate}
@keyframes mbz{from{transform:scale(1.02)}to{transform:scale(1.09)}}
.m-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,12,14,.94) 0%,rgba(12,12,14,.78) 30%,rgba(12,12,14,.2) 60%,rgba(12,12,14,0) 78%),linear-gradient(0deg,rgba(12,12,14,.9) 0%,rgba(12,12,14,0) 42%),linear-gradient(180deg,rgba(12,12,14,.65) 0%,rgba(12,12,14,0) 24%)}
.m-hero-photo .wrap{grid-template-columns:minmax(0,660px) 1fr;width:min(1280px,100% - 48px)}
.m-hero-photo .m-txt{position:relative;z-index:1}
@media (max-width:960px){
  .m-hero-photo{display:block;min-height:0;padding:0 0 56px}
  .m-bg{position:relative;inset:auto;aspect-ratio:16/11}
  .m-bg img{object-position:72% 50%}
  .m-bg::after{background:linear-gradient(0deg,var(--ink) 0%,rgba(12,12,14,0) 45%),linear-gradient(180deg,rgba(12,12,14,.75) 0%,rgba(12,12,14,0) 32%)}
  .m-hero-photo .wrap{margin-top:-30px;width:min(1280px,100% - 28px)}
}
@media (prefers-reduced-motion: reduce){.m-bg img{animation:none}}

/* Chiffres clés : mosaïque sombre */
.numbers2{background:var(--paper-2);color:var(--texte)}
.numbers2 .head p{color:var(--texte-2)}
.numbers2 .head .mono{color:var(--bordeaux)}
.nb{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(232px,auto);gap:14px}
.nb-t{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:26px;border-radius:22px;background:var(--paper);border:1px solid var(--trait);transition:border-color .3s,box-shadow .3s,transform .3s}
.nb-t:hover{border-color:rgba(138,36,50,.35);box-shadow:0 24px 44px -28px rgba(14,14,16,.3);transform:translateY(-3px)}
.nb-t .mono{color:var(--texte-2)}
.nb-t b{display:block;margin-top:16px;font-size:clamp(46px,4.6vw,68px);font-weight:800;letter-spacing:-.05em;line-height:.95;font-variant-numeric:tabular-nums}
.nb-t b small{margin-left:6px;font-size:.42em;font-weight:600;letter-spacing:0;color:var(--bordeaux)}
.nb-t p{margin-top:10px;font-size:15px;line-height:1.5;color:var(--texte-2)}
.t-hist{grid-column:1/3;grid-row:1/3;padding:14px 14px 30px}
.t-hist img{display:block;flex:1;min-height:0;width:100%;object-fit:cover;object-position:68% 50%;border-radius:14px;transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.t-hist:hover img{transform:scale(1.04)}
.t-hist::after{display:none}
.t-hist .nb-c{position:relative;padding:22px 14px 0}
.t-hist b{font-size:clamp(72px,8vw,120px);line-height:.85}
.t-hist p{max-width:46ch;font-size:16px;color:var(--texte-2)}
.dots{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;width:100%;max-width:260px;margin-top:auto;padding-top:18px}
.dots i{aspect-ratio:1;border-radius:50%;background:var(--bordeaux)}
.fx .dots i{background:var(--trait);transition:background .35s calc(var(--i) * 22ms)}
.fx .nb-t.in .dots i{background:var(--bordeaux)}
.plan{width:100%;height:auto;margin-top:auto;padding-top:14px;fill:rgba(138,36,50,.05);stroke:var(--bordeaux);stroke-width:1.6;stroke-linecap:round}
.plan path{stroke:var(--texte-2);opacity:.45}
.fx .plan rect,.fx .plan path{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.6s cubic-bezier(.2,.7,.2,1) .2s}
.fx .nb-t.in .plan rect,.fx .nb-t.in .plan path{stroke-dashoffset:0}
.ring99{position:relative;width:132px;height:132px;margin-top:14px}
.ring99 svg{width:100%;height:100%;transform:rotate(-90deg)}
.t-qual .rg-bg{stroke:var(--trait)}
.t-qual .rg-fg{stroke:var(--bordeaux)}
.fx .t-qual .rg-fg{stroke-dasharray:0 100;transition:stroke-dasharray 1.6s cubic-bezier(.2,.7,.2,1) .2s}
.fx .t-qual.in .rg-fg{stroke-dasharray:var(--dash) 100}
.ring99 b{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);margin:0;text-align:center;font-size:36px;white-space:nowrap}
.streak{display:flex;gap:3px;height:28px;margin-top:auto;padding-top:16px}
.streak i{flex:1;border-radius:2px;background:var(--bordeaux);opacity:var(--o);transform-origin:bottom}
.fx .streak i{transform:scaleY(.12);transition:transform .5s cubic-bezier(.2,.7,.2,1) calc(var(--i) * 16ms)}
.fx .nb-t.in .streak i{transform:none}
.nb-ic{position:absolute;top:22px;right:22px;width:36px;height:36px;fill:none;stroke:var(--texte-2);opacity:.45;stroke-width:1.6;stroke-linecap:round}
.t-press{grid-column:auto}
.trend{width:100%;height:auto;margin-top:auto;padding-top:14px;fill:none;stroke:var(--bordeaux);stroke-width:2.4;stroke-linecap:round}
.trend circle{fill:var(--bordeaux);stroke:none}
.fx .trend path{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.6s cubic-bezier(.2,.7,.2,1) .2s}
.fx .nb-t.in .trend path{stroke-dashoffset:0}
.fx .trend circle{opacity:0;transition:opacity .4s 1.5s}
.fx .nb-t.in .trend circle{opacity:1}
.tp-row{display:flex;flex-direction:column;justify-content:space-between;gap:14px;height:100%}
.eq{display:flex;align-items:flex-end;gap:4px;width:100%;height:64px}
.eq i{flex:1;height:var(--h);border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--bordeaux-light),var(--bordeaux));transform-origin:bottom}
.fx .eq i{transform:scaleY(0);transition:transform .7s cubic-bezier(.2,.7,.2,1) calc(var(--i) * 40ms)}
.fx .nb-t.in .eq i{transform:none}
@media (max-width:1000px){.nb{grid-template-columns:repeat(2,minmax(0,1fr))}.t-hist{grid-column:1/3;grid-row:auto;min-height:400px}}
@media (max-width:560px){.nb{grid-template-columns:1fr}.t-hist,.t-press{grid-column:auto}.t-hist{min-height:360px}.tp-row{flex-direction:column;align-items:flex-start}.eq{max-width:none;width:100%}}

/* Pages légales */
.lg-hero{padding:150px 0 56px;background:var(--ink);color:var(--texte-inv)}
.lg-hero h1{margin-top:22px;font-size:clamp(40px,5vw,66px);letter-spacing:-.04em;line-height:1}
.lg-hero .upd{margin-top:16px;color:var(--texte-inv-2)}
.lg-body .wrap{display:grid;grid-template-columns:220px minmax(0,780px);gap:64px}
.lg-nav{position:sticky;top:110px;align-self:start;display:grid;gap:4px}
.lg-nav a{padding:11px 14px;border-radius:12px;color:var(--texte-2);font-weight:600;text-decoration:none;transition:background .2s,color .2s}
.lg-nav a:hover{color:var(--texte)}
.lg-nav a.on{background:var(--paper-2);color:var(--texte);box-shadow:inset 3px 0 0 var(--bordeaux)}
.lg-txt h2{margin:40px 0 12px;font-size:22px;letter-spacing:-.02em}
.lg-txt h2:first-child{margin-top:0}
.lg-txt p,.lg-txt li{font-size:16px;line-height:1.75;color:var(--texte-2)}
.lg-txt ul{margin:8px 0 0;padding-left:20px}
.lg-txt li+li{margin-top:6px}
.lg-txt a{color:var(--bordeaux)}
.lg-txt .lg-intro{margin-bottom:34px;padding:22px 24px;border-radius:var(--r);background:var(--paper-2);color:var(--texte);font-size:17px}
.lg-txt dl{display:grid;grid-template-columns:200px 1fr;margin:0;border-top:1px solid var(--trait)}
.lg-txt dt,.lg-txt dd{margin:0;padding:12px 0;border-bottom:1px solid var(--trait)}
.lg-txt dt{font-weight:600;color:var(--texte)}
.lg-txt dd{color:var(--texte-2)}
.form .rgpd{display:block;margin-top:8px;color:rgba(255,255,255,.58)}
.form .rgpd a{color:#E8A0AA}
@media (max-width:860px){.lg-body .wrap{grid-template-columns:1fr;gap:30px}.lg-nav{position:static;display:flex;flex-wrap:wrap}.lg-txt dl{grid-template-columns:1fr}.lg-txt dt{padding-bottom:0;border-bottom:0}}

.tscale{padding:34px 0 10px;border-top:1px solid var(--trait)}
.ts-head{display:flex;flex-wrap:wrap;gap:18px 56px;padding-bottom:18px}
.ts-fam{display:flex;align-items:center;gap:14px}
.ts-fam b{font-size:clamp(48px,5vw,64px);font-weight:800;letter-spacing:-.05em;line-height:.9}
.ts-fam.auto b{color:var(--bordeaux)}
.ts-fam.rep b{color:#4B4E55}
.ts-fam span{display:block;font-size:17px;font-weight:600;line-height:1.2}
.ts-fam small{display:block;margin-top:4px;color:var(--texte-2)}
.ts-plot svg{display:block;width:100%;height:auto;overflow:visible}
.ts-svg .ax{stroke:var(--texte);stroke-width:2}
.ts-svg .tk{stroke:var(--texte);stroke-width:1.5;opacity:.5}
.ts-svg .tl{fill:var(--texte-2);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.06em}
.ts-svg .mk{stroke-width:3;stroke-linecap:round}
.ts-svg .ma{stroke:var(--bordeaux)}
.ts-svg .mr{stroke:#4B4E55}
.ts-svg .pill text{fill:#fff;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;font-weight:500;letter-spacing:.04em}
.ts-svg .pa rect{fill:var(--bordeaux)}
.ts-svg .pr rect{fill:#3E4148}
.ts-svg .pill{transform-box:fill-box;transform-origin:center;transition:transform .25s}
.ts-svg .pill:hover{transform:scale(1.08)}
.fx .tscale .pill{opacity:0;transform:translateY(var(--dy));transition:opacity .5s var(--d),transform .7s cubic-bezier(.2,.7,.2,1) var(--d)}
.fx .tscale.in .pill{opacity:1;transform:none}
.fx .tscale.in .pill:hover{transform:scale(1.08)}
.ts-list{display:none}
.ts-row{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:start;padding:14px 0;border-top:1px solid var(--trait)}
.ts-row .mono{color:var(--texte-2);padding-top:6px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills i{font-style:normal;padding:7px 12px;border-radius:999px;color:#fff;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.04em}
.ts-row.auto .pills i{background:var(--bordeaux)}
.ts-row.rep .pills i{background:#3E4148}
@media (max-width:700px){.ts-plot{display:none}.ts-list{display:block;margin-top:6px}}

.pk{display:grid;gap:22px;padding-top:6px}
.pk-fam{padding:28px;border-radius:22px;background:var(--paper);border:1px solid var(--trait)}
.pk-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:18px}
.pk-head .mono{color:var(--bordeaux)}
.pk-fam.rep .pk-head .mono{color:var(--texte-2)}
.pk-head b{font-size:clamp(20px,2vw,26px);letter-spacing:-.02em}
.pk-head p{flex-basis:100%;margin:0;color:var(--texte-2);font-size:15px}
.pk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}
.pk-card{--tint:var(--bordeaux);position:relative;min-height:122px;padding:16px 16px 14px;border-radius:16px;background:var(--paper-2);background:color-mix(in srgb,var(--tint) calc(var(--k) * 100%),var(--paper-2));color:var(--texte);transition:transform .25s,box-shadow .25s}
.pk-fam.rep .pk-card{--tint:#3E4148}
.pk-card.hi{color:#fff}
.pk-card:hover{transform:translateY(-3px);box-shadow:0 18px 30px -20px rgba(14,14,16,.45)}
.pk-card .mono{display:block;font-size:10px;opacity:.75}
.pk-card b{display:block;margin-top:22px;font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.pk-card b small{margin-left:3px;font-size:14px;font-weight:600;letter-spacing:0;opacity:.8}
.pk-card i{position:absolute;top:12px;right:12px;padding:4px 8px;border-radius:999px;font-style:normal;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;background:rgba(14,14,16,.08)}
.pk-card.hi i{background:rgba(255,255,255,.2)}
@media (max-width:560px){.pk-fam{padding:20px}.pk-grid{grid-template-columns:repeat(3,1fr)}.pk-card{min-height:92px;padding:12px}.pk-card .mono{display:none}.pk-card b{margin-top:26px;font-size:26px}}

/* Procédé 3D : fenêtres peu hautes */
@media (max-width:760px) and (max-height:640px){
  .p-top,.p-hud{display:none}
  .p-step{bottom:64px}
  .p-step h2{font-size:clamp(24px,6.5vw,32px);margin-top:8px}
  .p-step.intro h2{font-size:clamp(26px,7vw,36px)}
  .p-step p{margin-top:8px;font-size:14px;line-height:1.4}
  .p-step .spec{margin-top:10px}
  .p-foot{bottom:18px}
}
@media (min-width:761px) and (max-height:640px){
  .p-top{top:78px}
  .p-step h2{font-size:clamp(26px,3.6vw,38px);margin-top:8px}
  .p-step.intro h2{font-size:clamp(28px,4vw,42px)}
  .p-step p{margin-top:10px;font-size:15px;line-height:1.45}
  .p-hud{display:none}
  .p-foot{bottom:16px}
}

/* En-tête : largeurs intermédiaires */
@media (min-width:961px) and (max-width:1180px){
  .nav{gap:0}
  .nav a,.nav .dd-btn{font-size:14px;padding:8px 9px}
  .header .btn{padding:10px 14px;font-size:14px;white-space:nowrap}
}

/* Procédé 3D : commandes pour lancer l'animation */
.p-start{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:30px}
.p-start .btn{margin-top:0}
.p-start .btn .ico,.p-ctrl .ico,.ico-play{display:inline-block;width:0;height:0;margin-right:10px;border-left:10px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}
.ico-play{margin-right:9px;border-left-width:9px;border-top-width:5px;border-bottom-width:5px}
.p-wheel{display:inline-flex;align-items:center;gap:10px;color:var(--texte-2)}
.mouse{position:relative;display:inline-block;width:18px;height:28px;border:2px solid currentColor;border-radius:11px;opacity:.75}
.mouse b{position:absolute;left:50%;top:5px;width:3px;height:6px;margin-left:-1.5px;border-radius:2px;background:var(--bordeaux);animation:wheel 1.6s ease-in-out infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}70%{transform:translateY(9px);opacity:0}100%{opacity:0}}
.p-ctrl{position:absolute;right:0;bottom:92px;display:flex;gap:8px;pointer-events:auto}
.p-ctrl{transition:opacity .35s}
.procede.at-intro .p-ctrl{opacity:0;pointer-events:none}
.p-ctrl button{display:inline-flex;align-items:center;padding:12px 18px;border-radius:999px;border:1px solid var(--trait);background:var(--paper);color:var(--texte);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:filter .2s,background .2s,color .2s}
.p-ctrl .p-next span{margin-left:8px}
.p-ctrl .p-play{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}
.p-ctrl button:hover{filter:brightness(1.08)}
.procede.autoplay .p-ctrl .ico{width:11px;height:12px;border:0;border-left:3px solid currentColor;border-right:3px solid currentColor;margin-right:10px}
.p-ctrl .p-play.nudge{animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{0%,100%{box-shadow:0 0 0 0 rgba(138,36,50,.5)}50%{box-shadow:0 0 0 12px rgba(138,36,50,0)}}
.p-hud{bottom:150px}
.p-labels span{cursor:pointer;pointer-events:auto}
.p-labels span:hover,.p-labels span:focus-visible{color:var(--bordeaux)}
.procede.static .p-ctrl,.procede.static .p-start{display:none}
@media (max-width:760px){.p-ctrl{top:136px;bottom:auto;right:auto;left:0}.p-ctrl .p-next{display:none}.p-ctrl button{padding:9px 14px;font-size:13px}.p-wheel{display:none}.p-start{margin-top:18px}}
@media (prefers-reduced-motion: reduce){.mouse b,.p-ctrl .p-play.nudge{animation:none}}

.scroll-cue{display:inline-flex;align-items:center;gap:16px;color:#fff;text-decoration:none}
.scroll-cue .sc-txt{font-size:14px;letter-spacing:.16em;color:#fff}
.scroll-cue .sc-ring{position:relative;display:grid;place-items:center;width:72px;height:72px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:rgba(255,255,255,.08);transition:background .25s,border-color .25s}
.scroll-cue .sc-ring::before{content:"";position:absolute;inset:-1.5px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);animation:scPulse 2.4s ease-out infinite}
.scroll-cue .sc-ring i{position:absolute;left:50%;width:14px;height:14px;margin-left:-7px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);animation:scDown 1.8s ease-in-out infinite}
.scroll-cue .sc-ring i:first-child{top:17px}
.scroll-cue .sc-ring i:last-child{top:27px;animation-delay:.25s;opacity:.6}
.scroll-cue:hover .sc-ring{background:#fff;border-color:#fff}
.scroll-cue:hover .sc-ring i{border-color:var(--bordeaux)}
@keyframes scDown{0%{transform:translateY(-4px) rotate(45deg);opacity:0}40%{opacity:1}100%{transform:translateY(8px) rotate(45deg);opacity:0}}
@keyframes scPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.45);opacity:0}}
@media (prefers-reduced-motion: reduce){.scroll-cue .sc-ring i,.scroll-cue .sc-ring::before{animation:none}.scroll-cue .sc-ring i{opacity:1}}

/* Tribofinition : cartes photo */
.machines+.machines{margin-top:18px}
.mach figure.studio{position:relative;background:#F1F0EB}
.mach figure.studio img{position:absolute;top:16px;left:16px;width:calc(100% - 32px);height:calc(100% - 32px);object-fit:contain;mix-blend-mode:multiply}
.mach:hover figure.studio img{transform:scale(1.03)}
.mach figure img.graded{filter:contrast(1.06) saturate(.85)}

/* Engagements */
.engage{background:var(--paper-2);--vert:#2F7D57}
:root[data-theme="dark"] .engage{--vert:#5FBF8F}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .engage{--vert:#5FBF8F}}
.traj{list-style:none;padding:0;margin:0 0 44px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative}
.traj::before{content:"";position:absolute;left:8px;right:8px;top:8px;height:2px;background:linear-gradient(90deg,var(--bordeaux) 0%,var(--bordeaux) 33%,var(--vert) 50%,var(--trait) 72%)}
.traj li{position:relative;padding-top:34px}
.traj i{position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;background:var(--paper-2);border:2px solid var(--trait)}
.traj .done i{background:var(--bordeaux);border-color:var(--bordeaux)}
.traj .now i{border-color:var(--vert);background:var(--paper-2);box-shadow:0 0 0 0 rgba(47,125,87,.5);animation:pulse 2.2s ease-out infinite}
.traj .now i::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--vert)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(47,125,87,.45)}100%{box-shadow:0 0 0 14px rgba(47,125,87,0)}}
.traj .mono{display:block;color:var(--texte-2)}
.traj b{display:block;margin-top:8px;font-size:20px;letter-spacing:-.02em}
.traj small{display:block;margin-top:6px;color:var(--texte-2);font-size:14px;max-width:34ch}
.pol{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pcard{display:flex;flex-direction:column;padding:30px;border-radius:var(--r);background:var(--paper);border:1px solid var(--trait);border-top:3px solid var(--bordeaux)}
.pcard.e{border-top-color:var(--vert)}
.pcard.r{border-top-color:var(--texte)}
.ptag{align-self:flex-start;padding:6px 10px;border-radius:999px;background:rgba(138,36,50,.1);color:var(--bordeaux)}
.pcard.e .ptag{background:rgba(47,125,87,.12);color:var(--vert)}
.pcard.r .ptag{background:var(--paper-2);color:var(--texte)}
.pcard h3{margin-top:18px}
.pcard>p{margin-top:10px;color:var(--texte-2)}
.pcard ul{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px}
.pcard li{position:relative;padding-left:28px;font-size:15px;line-height:1.55}
.pcard li::before{content:"";position:absolute;left:0;top:4px;width:16px;height:16px;border-radius:50%;background:var(--bordeaux) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='1.8'/%3E%3C/svg%3E") center/100% no-repeat}
.pcard.e li::before{background-color:var(--vert)}
.pcard.r li::before{background-color:var(--texte)}
.pcard details{margin-top:auto;padding-top:22px}
.pcard summary{cursor:pointer;font-weight:600;color:var(--texte);list-style:none;display:flex;align-items:center;gap:8px}
.pcard summary::-webkit-details-marker{display:none}
.pcard summary::after{content:"+";color:var(--bordeaux);font-size:20px;line-height:1;transition:transform .2s}
.pcard.e summary::after{color:var(--vert)}
.pcard details[open] summary::after{transform:rotate(45deg)}
.pcard details p,.pcard details ol{margin-top:14px;color:var(--texte-2);font-size:14px}
.pcard details ol{padding-left:18px;display:grid;gap:8px}
.pcard details ol b{color:var(--texte)}
@media (max-width:960px){.traj,.pol{grid-template-columns:1fr}.traj::before{display:none}}

/* Questions */
.faq details{border-top:1px solid var(--trait)}
.faq details:last-child{border-bottom:1px solid var(--trait)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-weight:600;font-size:clamp(17px,1.5vw,21px)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:26px;line-height:1;color:var(--bordeaux);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--texte-2);padding-bottom:26px;margin-top:-6px}

/* Contact */
.contact{background:var(--ink);color:var(--texte-inv)}
.contact .wrap{padding:120px 0;display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
.contact .mono{color:var(--bordeaux-light)}
.contact h2{font-size:clamp(38px,5.6vw,80px);letter-spacing:-.04em;margin-top:18px}
.contact h2 span.g{color:var(--texte-inv-2);font-weight:500}
.contact address{font-style:normal;margin-top:36px;color:var(--texte-inv-2);line-height:1.8;font-size:17px}
.contact address a{color:var(--texte-inv);text-decoration:none;border-bottom:1px solid var(--trait-inv)}
.form{background:var(--ink-2);border:1px solid var(--trait-inv);border-radius:var(--r);padding:32px}
.form .mono{display:block;margin-bottom:8px}
.form h3{margin-bottom:22px}
.form label{display:block;font-size:13px;color:var(--texte-inv-2);margin-bottom:6px;margin-top:16px}
.form input,.form textarea,.form select{width:100%;background:var(--ink-3);border:1px solid var(--trait-inv);color:var(--texte-inv);border-radius:8px;padding:12px 14px;font:inherit;font-size:15px}
.form textarea{min-height:110px;resize:vertical}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .btn{margin-top:22px;width:100%;justify-content:center}
.form small{display:block;color:var(--texte-inv-2);margin-top:12px;font-size:12px}
@media (max-width:900px){.contact .wrap{grid-template-columns:1fr;padding:88px 0}}
@media (max-width:520px){.form .two{grid-template-columns:1fr}}

/* Pied de page */
.footer{background:var(--ink);color:var(--texte-inv-2);border-top:1px solid var(--trait-inv);font-size:14px}
.footer .top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding:56px 0 44px}
.footer .top img{height:36px;width:auto;filter:brightness(0) invert(1);margin-bottom:16px}
.footer h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-inv);margin-bottom:16px;font-family:"JetBrains Mono",monospace;font-weight:500}
.footer nav{display:grid;gap:9px}
.footer a{text-decoration:none}
.footer a:hover{color:var(--texte-inv)}
.footer .bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 30px;padding:20px 0;border-top:1px solid var(--trait-inv)}
@media (max-width:860px){.footer .top{grid-template-columns:1fr 1fr;gap:28px}}
@media (max-width:520px){.footer .top{grid-template-columns:1fr}}

@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.hero .media img,.clouds i,.marquee .track,.p-hint i,.hero .grain{animation:none}}

/* Version multipage */
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:999px;background:var(--bordeaux);color:#fff;font-weight:600;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
.procede:not(.ready) .p-step.intro{opacity:1;pointer-events:auto}
.form .opt{font-weight:400;opacity:.65}
.form input.file{padding:12px;border:1px dashed rgba(255,255,255,.28);border-radius:12px;background:rgba(255,255,255,.04);color:inherit;font:inherit;font-size:14px;width:100%;cursor:pointer}
.form input.file::file-selector-button{margin-right:14px;padding:8px 14px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:inherit;font:inherit;font-weight:600;cursor:pointer}
.form .hint{display:block;margin:6px 0 4px;color:rgba(255,255,255,.58)}
.form .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status{margin:14px 0 0;font-weight:600;min-height:1em}
.form-status.ok{color:#7ED6A4}
.form-status.err{color:#FF9AA5}
.form button[disabled]{opacity:.6;cursor:progress}
.e404{min-height:72vh;display:grid;align-items:center;padding:150px 0 80px;background:var(--ink);color:var(--texte-inv)}
.e404 h1{font-size:clamp(40px,6vw,72px);letter-spacing:-.04em;line-height:1;margin-top:16px}
.e404 p{margin-top:18px;max-width:52ch;color:var(--texte-inv-2);font-size:18px}
.e404 .links{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.e404 .links a{padding:11px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.2);color:#fff;text-decoration:none;font-weight:600}
.e404 .links a.primary{background:var(--bordeaux);border-color:var(--bordeaux)}
