:root{
  --ink:#0D0D0F;--ink2:#17171A;--paper:#F1EEE8;--paper2:#E6E1D8;--paper3:#D9D3C8;
  --mute:#6A655D;--mute-d:#A39E95;--line:rgba(13,13,15,.14);--line-d:rgba(241,238,232,.16);
  --sig:#EA6110;--sig-d:#C24F08;
  --pad:clamp(20px,4.2vw,64px);--max:1600px;
  --f-d:'Archivo','Helvetica Neue',Arial,sans-serif;--f-s:'Instrument Serif',Georgia,serif;--f-m:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);--ease2:cubic-bezier(.76,0,.24,1);
}
*{box-sizing:border-box}
html{background:var(--paper);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-d);font-stretch:100%;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-loading{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
img,video,canvas{display:block}
::selection{background:var(--sig);color:var(--ink)}
:focus-visible{outline:2px solid var(--sig);outline-offset:3px}
.mono{font-family:var(--f-m);font-weight:400;letter-spacing:.14em;text-transform:uppercase}
.serif{font-family:var(--f-s);font-style:italic;font-weight:400;letter-spacing:-.01em;text-transform:none}
.cond{font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;letter-spacing:-.01em;line-height:.84}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.sec{position:relative}
.dark{background:var(--ink);color:var(--paper)}
.label{font-family:var(--f-m);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.dark .label{color:var(--mute-d)}
.label b{color:var(--sig);font-weight:400}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.grain{position:absolute;inset:-60%;background-image:url(media/grain.png);opacity:.09;mix-blend-mode:overlay;pointer-events:none;animation:grain 1.1s steps(6) infinite;z-index:3}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:0 28px;border-radius:999px;border:0;font-family:var(--f-d);font-weight:700;font-size:15px;letter-spacing:.02em;white-space:nowrap;transition:background .3s,color .3s}
.btn-sig{background:var(--sig);color:var(--ink)}
.btn-sig:hover{background:var(--ink);color:var(--paper)}
.dark .btn-sig:hover{background:var(--paper);color:var(--ink)}
.btn-line{border:1.5px solid currentColor;background:transparent}
.btn-line:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.dark .btn-line:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn .arr{display:inline-block;transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translate(3px,-3px) rotate(0deg)}
.oval{position:relative;display:inline-flex}
.oval svg{position:absolute;left:-14%;top:-34%;width:128%;height:168%;pointer-events:none;overflow:visible}
.oval svg path{fill:none;stroke:var(--sig);stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease)}
.oval.on svg path,.oval:hover svg path{stroke-dashoffset:0}

/* cursor */
.cur,.cur-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:9998;will-change:transform}
.cur{width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid rgba(255,255,255,.75);border-radius:999px;mix-blend-mode:difference;transition:width .4s var(--ease),height .4s var(--ease),margin .4s var(--ease),opacity .3s,border-color .3s}
.cur-dot{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#fff;mix-blend-mode:difference}
.cur span{display:none}
.cur.link{width:56px;height:56px;margin:-28px 0 0 -28px}
.cur.big{opacity:0}
.cur-tag{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;display:flex;align-items:center;gap:9px;padding:9px 14px 9px 12px;border-radius:999px;background:rgba(13,13,15,.46);border:1px solid rgba(241,238,232,.22);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#F4F1EA;font-family:var(--f-m);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;transform-origin:0 0;will-change:transform,opacity;transition:opacity .25s}
.cur-tag::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--sig);box-shadow:0 0 8px rgba(234,97,16,.8)}
.cur-tag.on{opacity:1}
.light-tag .cur-tag{background:rgba(241,238,232,.62);color:var(--ink);border-color:rgba(13,13,15,.12)}
@media (hover:none),(pointer:coarse){.cur,.cur-dot,.cur-tag{display:none}}

/* preloader */
.pre{position:fixed;inset:0;z-index:10000;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:space-between;padding:28px var(--pad)}
.pre-top,.pre-bot{display:flex;justify-content:space-between;font-family:var(--f-m);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute-d)}
.pre-num{font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:clamp(120px,28vw,420px);line-height:.8;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pre-bar{height:2px;background:rgba(241,238,232,.15);position:relative;overflow:hidden}
.pre-bar i{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
.pre .go{color:var(--sig)}

/* curtain */
.curtain{position:fixed;inset:0;z-index:9000;pointer-events:none;display:flex}
.curtain i{flex:1;background:var(--ink);transform:scaleY(0);transform-origin:top}
.curtain-label{position:fixed;inset:0;z-index:9001;display:flex;align-items:center;justify-content:center;pointer-events:none;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;color:var(--paper);font-size:clamp(48px,9vw,140px);opacity:0}
.curtain-label small{display:block;font-family:var(--f-m);font-weight:400;font-size:12px;letter-spacing:.2em;color:var(--sig);text-align:center;margin-bottom:14px}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:500;transition:color .4s,transform .5s var(--ease)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px var(--pad)}
.hdr.hide{transform:translateY(-110%)}
.logo{display:flex;align-items:center;gap:12px;font-weight:800;font-size:14px;letter-spacing:.16em;white-space:nowrap}
.logo em{font-style:normal;font-weight:300}
.logo img{display:block;height:46px;width:auto}
.logo svg{width:32px;height:32px}
.logo .ring{stroke:currentColor}
.hdr nav{display:flex;gap:clamp(14px,2vw,32px);font-family:var(--f-m);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.hdr nav a{position:relative;padding:6px 0}
.hdr nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--sig);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.hdr nav a:hover::after,.hdr nav a.on::after{transform:scaleX(1);transform-origin:left}
.hdr-r{display:flex;align-items:center;gap:10px}
.hdr .btn{min-height:46px;padding:0 22px;font-size:14px}
.burger{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 18px;border-radius:999px;border:1.5px solid currentColor;background:transparent;font-family:var(--f-m);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.burger i{display:inline-block;width:18px;height:8px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}
.hdr[data-theme=dark]{color:var(--paper)}
.hdr[data-theme=light]{color:var(--ink)}
.hdr-bg{position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .4s;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hdr.scrolled .hdr-bg{opacity:1}
.hdr[data-theme=dark] .hdr-bg{background:rgba(10,10,12,.82);-webkit-backdrop-filter:none;backdrop-filter:none}
.hdr[data-theme=light] .hdr-bg{background:rgba(241,238,232,.7)}
@media (max-width:1080px){.hdr nav{display:none}}
@media (max-width:560px){.hdr .btn{display:none}.logo img{height:32px}}

/* menu overlay */
.menu{position:fixed;inset:0;z-index:800;background:var(--ink);color:var(--paper);clip-path:circle(0% at calc(100% - 80px) 40px);transition:clip-path .9s var(--ease2);display:flex;flex-direction:column;justify-content:space-between;padding:100px var(--pad) 32px;overflow:hidden}
.menu.open{clip-path:circle(150% at calc(100% - 80px) 40px)}
.menu-list{list-style:none;margin:0;padding:0;position:relative;z-index:2}
.menu-list a{display:flex;align-items:baseline;gap:18px;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(46px,8.6vw,124px);line-height:.92;transition:color .3s,font-stretch .5s var(--ease),padding .5s var(--ease)}
.menu-list a small{font-family:var(--f-m);font-weight:400;font-size:12px;letter-spacing:.16em;color:var(--sig)}
.menu-list a:hover{color:var(--sig);font-stretch:85%;padding-left:24px}
.menu-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-family:var(--f-m);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-d);position:relative;z-index:2}
.menu-prev{position:absolute;right:8vw;top:50%;width:min(36vw,520px);aspect-ratio:4/5;margin-top:calc(min(36vw,520px)*-.625);border-radius:8px;overflow:hidden;opacity:0;transform:scale(.9) rotate(4deg);transition:opacity .4s,transform .6s var(--ease);z-index:1}
.menu-prev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.menu-prev.on{opacity:1;transform:scale(1) rotate(-2deg)}
@media (max-width:760px){.menu-prev{display:none}}

/* hero */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;background:radial-gradient(120% 90% at 70% 0%,#1d1a2a 0%,var(--ink) 55%)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%}
.hero-in{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--pad) clamp(28px,4vw,48px)}
.hero-title{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(70px,13.4vw,240px);line-height:.8;letter-spacing:-.015em;word-spacing:.08em;color:var(--paper)}
.hero-title .ln{display:block;overflow:hidden;padding-bottom:.02em}
.hero-title .ln>span{display:inline-block}
.hero-title .sig{color:var(--sig)}
.pill{display:inline-block;vertical-align:middle;height:.66em;width:1.55em;margin:0 .06em .1em;border-radius:999px;overflow:hidden;position:relative;transform:translateY(-.04em);background:#222}
.pill video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-meta{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin-top:clamp(24px,3vw,40px);color:var(--paper)}
.hero-meta p{margin:0;max-width:520px;font-size:clamp(15px,1.15vw,18px);line-height:1.55;color:#D6D1C8}
.hero-meta .mono{font-size:11px;color:var(--mute-d)}
.scroll-hint{position:absolute;right:var(--pad);top:50%;z-index:5;writing-mode:vertical-rl;font-family:var(--f-m);font-size:11px;letter-spacing:.24em;color:var(--mute-d);text-transform:uppercase;display:flex;align-items:center;gap:14px}
.scroll-hint i{display:block;width:1px;height:64px;background:linear-gradient(var(--sig),transparent);animation:drip 1.8s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.tc{font-family:var(--f-m);font-size:12px;letter-spacing:.1em;color:var(--paper);font-variant-numeric:tabular-nums}
.tally{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--sig);animation:blink 1.4s steps(1) infinite;margin-right:8px;vertical-align:1px}
@keyframes blink{0%,60%{opacity:1}61%,100%{opacity:.2}}
@media (max-width:760px){.scroll-hint{display:none}}

/* reel expand */
.reel{position:relative;height:260vh;background:var(--ink)}
.reel-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
.reel-frame{position:absolute;inset:0;clip-path:inset(28% 30% 28% 30% round 28px);will-change:clip-path}
.reel-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.25)}
.reel-word{position:absolute;top:50%;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(80px,15vw,260px);line-height:.8;color:var(--paper);transform:translateY(-50%);z-index:2;pointer-events:none;white-space:nowrap}
.reel-word.l{right:71%}.reel-word.r{left:71%}
.reel-cap{position:absolute;left:var(--pad);right:var(--pad);bottom:28px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--paper);opacity:0}
.reel-cap .btn{background:rgba(241,238,232,.12);color:var(--paper);border:1.5px solid rgba(241,238,232,.4);backdrop-filter:blur(10px)}

/* manifesto */
.mani{padding:clamp(110px,14vw,220px) 0 clamp(80px,9vw,140px)}
.fill{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(46px,7.6vw,132px);line-height:.9;letter-spacing:-.01em}
.fill .w{color:rgba(13,13,15,0);-webkit-text-stroke:1.3px #0D0D0F;transition:none}
.fill .sx .w{-webkit-text-stroke:0;color:rgba(13,13,15,.18)}
.fill .ip{display:inline-block;vertical-align:middle;height:.72em;width:1.4em;border-radius:999px;overflow:hidden;margin:0 .08em .08em;position:relative}
.fill .ip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fill .sx{font-family:var(--f-s);font-style:italic;font-weight:400;font-stretch:100%;text-transform:none;letter-spacing:-.02em}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));margin-top:clamp(64px,7vw,110px);border-top:1.5px solid var(--ink)}
.stat{padding:26px 24px 0 0;display:flex;flex-direction:column;gap:10px}
.stat b{font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:clamp(64px,7vw,120px);line-height:.85;font-variant-numeric:tabular-nums}
.stat b sup{color:var(--sig);font-size:.5em;vertical-align:.6em;margin-left:2px}
.stat>span{font-family:var(--f-m);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}

/* métiers pinned */
.met{position:relative;height:420vh;background:var(--ink);color:var(--paper)}
.met-st{position:sticky;top:0;height:100vh;overflow:hidden}
.sphere{position:absolute;left:50%;top:52%;width:min(62vh,46vw);aspect-ratio:1;margin:calc(min(62vh,46vw)*-.5) 0 0 calc(min(62vh,46vw)*-.5);border-radius:50%;background:radial-gradient(circle at 34% 30%,#FF8A4F 0%,var(--sig) 38%,#9E2600 78%,#3A0D00 100%);box-shadow:0 0 140px rgba(234,97,16,.35);overflow:hidden}
.sphere::after{content:'';position:absolute;inset:0;background-image:url(media/grain.png);opacity:.35;mix-blend-mode:overlay}
.sphere canvas{position:absolute;inset:0;width:100%;height:100%;mix-blend-mode:multiply}
.met-words{position:absolute;left:0;right:0;top:50%;height:.9em;transform:translateY(-46%);font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(90px,19vw,330px);line-height:.82;text-align:center;z-index:3;overflow:hidden;pointer-events:none}
.met-words span{position:absolute;left:0;right:0;top:.04em;line-height:.82;transform:translateY(140%);mix-blend-mode:difference;color:#fff}
.met-img{position:absolute;left:var(--pad);top:22%;width:min(22vw,320px);aspect-ratio:3/4;border-radius:8px;overflow:hidden;z-index:4}
.met-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(100% 0 0 0)}
.met-txt{position:absolute;right:var(--pad);bottom:12%;width:min(30vw,400px);z-index:4}
.met-txt div{position:absolute;bottom:0;left:0;right:0;opacity:0;transform:translateY(20px)}
.met-txt p{margin:12px 0 0;font-size:16px;line-height:1.55;color:#D6D1C8}
.met-idx{position:absolute;left:var(--pad);bottom:28px;z-index:4;display:flex;gap:10px;align-items:center}
.met-idx i{display:block;width:44px;height:3px;border-radius:2px;background:rgba(241,238,232,.18);overflow:hidden;position:relative}
.met-idx i b{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
.met-top{position:absolute;left:var(--pad);right:var(--pad);top:96px;z-index:4;display:flex;justify-content:space-between}
@media (max-width:760px){.met-img{top:16%;width:34vw}.met-txt{width:auto;left:var(--pad);bottom:14%}}

/* builder */
.bld{padding:clamp(100px,11vw,170px) 0}
.bld-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:40px}
.h2{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(54px,8vw,140px);line-height:.86;letter-spacing:-.01em}
.h2 .serif{font-size:.82em;letter-spacing:-.02em}
.h2 .sig{color:var(--sig)}
.lead{margin:0;max-width:480px;font-size:17px;line-height:1.6;color:var(--mute)}
.dark .lead{color:#C9C4BB}
.stage{position:relative;border-radius:14px;overflow:hidden;background:#07070A;aspect-ratio:16/8.2;min-height:380px}
.stage canvas{position:absolute;inset:0;width:100%;height:100%}
.stage-hud{position:absolute;left:18px;top:16px;right:18px;display:flex;justify-content:space-between;gap:12px;z-index:2;font-family:var(--f-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,238,232,.75);pointer-events:none}
.bld-ui{display:grid;grid-template-columns:1.3fr 1fr auto;gap:18px;margin-top:18px;align-items:stretch}
.seg{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border-radius:14px;background:var(--paper2)}
.seg button{flex:1 1 100px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border:0;border-radius:10px;background:transparent;text-align:left;transition:background .3s,color .3s}
.seg button b{font-weight:800;font-size:15px}
.seg button span{font-family:var(--f-m);font-size:10px;letter-spacing:.12em;color:var(--mute)}
.seg button.on{background:var(--ink);color:var(--paper)}
.seg button.on span{color:var(--sig)}
.tog{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border-radius:14px;background:var(--paper2)}
.tog button{flex:1 1 90px;display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:10px;border:0;background:transparent;font-family:var(--f-m);font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:background .3s,color .3s}
.tog button i{width:10px;height:10px;border-radius:50%;border:1.5px solid currentColor}
.tog button.on{background:var(--sig);color:var(--ink)}
.tog button.on i{background:var(--ink);border-color:var(--ink)}
.bld-ui .btn{height:100%;min-height:64px;border-radius:14px}
@media (max-width:1000px){.bld-ui{grid-template-columns:1fr}.stage{aspect-ratio:4/3}}

/* horizontal work */
.hwork{position:relative;background:var(--paper)}
.hwork-st{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.hwork-bg{position:absolute;left:0;bottom:-3vw;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:34vw;line-height:.8;color:transparent;-webkit-text-stroke:1.5px rgba(13,13,15,.12);white-space:nowrap;pointer-events:none}
.track{display:flex;gap:28px;padding:0 var(--pad);will-change:transform;position:relative;z-index:2}
.wcard{flex:0 0 auto;width:min(36vw,520px);perspective:900px}
.wcard-in{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/5;transform-style:preserve-3d;transition:transform .5s var(--ease);background:var(--ink)}
.wcard-in img{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;transition:transform 1.2s var(--ease)}
.wcard:hover .wcard-in img{transform:scale(1.06)}
.wcard-in::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,15,.85),rgba(13,13,15,0) 55%)}
.wcard-txt{position:absolute;left:22px;right:22px;bottom:20px;z-index:2;color:var(--paper)}
.wcard-txt h3{margin:8px 0 6px;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(30px,2.8vw,46px);line-height:.9}
.wcard-txt p{margin:0;font-family:var(--f-s);font-style:italic;font-size:19px;color:#D6D1C8}
.hwork-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:0 var(--pad);margin-bottom:34px;position:relative;z-index:2}
@media (max-width:760px){.wcard{width:78vw}}

/* marquee tags */
.tags{padding:clamp(60px,7vw,110px) 0;overflow:hidden;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);background:var(--paper)}
.tags-row{display:flex;width:max-content;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(56px,9vw,150px);line-height:1;will-change:transform}
.tags-row span{display:inline-flex;align-items:center;gap:.25em;padding-right:.25em;white-space:nowrap}
.tags-row span i{display:inline-block;width:.32em;height:.32em;border-radius:50%;background:var(--sig)}
.tags-row.o span{color:transparent;-webkit-text-stroke:1.5px var(--ink)}

/* logos spotlight */
.logos{padding:clamp(100px,10vw,160px) 0}
.lwall{position:relative;margin-top:48px}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:34px 26px;align-items:center}
.lgrid img{width:100%;height:46px;object-fit:contain;filter:brightness(0);opacity:.85}
.lwall .base{opacity:.16}
.lwall .lit{position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle 220px at var(--lx,50%) var(--ly,50%),#000 0%,#000 35%,transparent 100%);mask-image:radial-gradient(circle 220px at var(--lx,50%) var(--ly,50%),#000 0%,#000 35%,transparent 100%)}
.lwall .lit img{opacity:1}
.lwall .beamc{position:absolute;left:var(--lx,50%);top:var(--ly,50%);width:440px;height:440px;margin:-220px 0 0 -220px;border-radius:50%;background:radial-gradient(circle,rgba(234,97,16,.14),rgba(234,97,16,0) 65%);pointer-events:none}

/* compare */
.cmp{position:relative;height:clamp(320px,40vw,620px);border-radius:14px;overflow:hidden;background:var(--ink2);cursor:ew-resize;touch-action:pan-y}
.cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.cmp .top{clip-path:inset(0 50% 0 0)}
.cmp .bar{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--paper);box-shadow:0 0 30px rgba(241,238,232,.7)}
.cmp .knob{position:absolute;top:50%;left:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:var(--sig);color:var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--f-m);font-size:12px;letter-spacing:.1em}
.cmp .tag{position:absolute;top:18px;padding:8px 14px;border-radius:999px;font-family:var(--f-m);font-size:11px;letter-spacing:.16em;z-index:2}
.cmp .tag.l{left:18px;background:rgba(13,13,15,.7);color:var(--paper)}
.cmp .tag.r{right:18px;background:var(--sig);color:var(--ink)}

/* why list */
.why{padding:clamp(100px,10vw,160px) 0}
.why-row{position:relative;display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:24px;padding:28px 0;border-top:1.5px solid var(--line-d);cursor:default;overflow:hidden}
.why-row:last-child{border-bottom:1.5px solid var(--line-d)}
.why-row h3{margin:0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(34px,4.4vw,72px);line-height:.9;transition:font-stretch .6s var(--ease),color .3s}
.why-row p{margin:0;max-width:380px;color:#C9C4BB;font-size:15px;line-height:1.55;opacity:.0;transform:translateX(20px);transition:opacity .4s,transform .5s var(--ease)}
.why-row:hover h3{font-stretch:90%;color:var(--sig)}
.why-row:hover p{opacity:1;transform:none}
.why-row .n{font-family:var(--f-m);font-size:12px;color:var(--sig)}
@media (max-width:760px){.why-row{grid-template-columns:40px 1fr}.why-row p{grid-column:1/-1;opacity:1;transform:none}}

/* final cta + footer */
.final{padding:clamp(110px,12vw,190px) 0 0;overflow:hidden}
.final h2{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(70px,15vw,260px);line-height:.8;letter-spacing:-.015em}
.final h2 span{display:block}
.final h2 .o{color:transparent;-webkit-text-stroke:2px var(--ink)}
.final h2 .sig{color:var(--sig)}
.ftr{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding:80px 0 40px;margin-top:clamp(70px,8vw,120px);border-top:1.5px solid var(--ink)}
.ftr h4{margin:0 0 16px;font-family:var(--f-m);font-weight:400;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.ftr a,.ftr p{display:block;margin:0 0 8px;font-size:15px;line-height:1.5}
.ftr a:hover{color:var(--sig)}
.ftr .big a{font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:34px;line-height:1.05;margin:0}
.ftr-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:22px 0 30px;border-top:1px solid var(--line);font-family:var(--f-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
@media (max-width:900px){.ftr{grid-template-columns:1fr 1fr}}

/* page heads */
.phead{padding:clamp(150px,16vw,240px) 0 clamp(40px,5vw,70px)}
.phead h1{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(80px,17vw,300px);line-height:.8;letter-spacing:-.015em}
.phead h1 .serif{display:block;font-size:.34em;line-height:1;margin-top:.12em;letter-spacing:-.02em}
.phead .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-top:36px}
.chars .c{display:inline-block;will-change:transform}

/* planche contact */
.planche{display:grid;grid-template-columns:260px 1fr;gap:clamp(24px,3vw,48px);padding-bottom:clamp(90px,9vw,140px);align-items:start}
.pidx{position:sticky;top:110px}
.pidx button{display:flex;width:100%;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 0;border:0;border-top:1.5px solid var(--line);background:none;text-align:left;transition:color .3s,padding .4s var(--ease)}
.pidx button b{font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:30px;line-height:1}
.pidx button span{font-family:var(--f-m);font-size:11px;color:var(--mute)}
.pidx button:hover{padding-left:10px}
.pidx button.on{color:var(--sig)}
.pidx button.on span{color:var(--sig)}
.sheet{position:relative;background:#141416;border-radius:6px;padding:26px 0 30px;box-shadow:0 30px 80px rgba(13,13,15,.18)}
.sheet-head{display:flex;justify-content:space-between;padding:0 22px 14px;font-family:var(--f-m);font-size:11px;letter-spacing:.16em;color:#E9C46A;text-transform:uppercase}
.strip{position:relative;padding:22px 22px;background:#0B0B0C}
.strip::before,.strip::after{content:'';position:absolute;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,transparent 0 10px,#2A2A2E 10px 22px,transparent 22px 32px);opacity:.9}
.strip::before{top:5px}.strip::after{bottom:5px}
.strip+.strip{margin-top:10px}
.frames{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.frame{position:relative;display:block;border:0;padding:0;background:#000;cursor:pointer;text-align:left;transition:opacity .4s,filter .4s}
.frame .ph{position:relative;aspect-ratio:3/2;overflow:hidden}
.frame .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.frame:hover .ph img{transform:scale(1.08)}
.frame .fn{display:flex;justify-content:space-between;padding:7px 2px 0;font-family:var(--f-m);font-size:10px;letter-spacing:.14em;color:#E9C46A}
.frame .fn em{font-style:normal;color:#8E8A82}
.frame .cap{position:absolute;left:10px;right:10px;bottom:34px;z-index:2;color:#fff;font-weight:800;font-size:14px;line-height:1.15;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .4s var(--ease);text-shadow:0 2px 10px rgba(0,0,0,.6)}
.frame:hover .cap{opacity:1;transform:none}
.frame svg.circ{position:absolute;left:-5%;top:-9%;width:110%;height:112%;pointer-events:none;overflow:visible;z-index:3}
.frame svg.circ path{fill:none;stroke:var(--sig);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .8s var(--ease)}
.frame.marked svg.circ path{stroke-dashoffset:0;stroke:#E9C46A;opacity:.85}
.frame:hover svg.circ path{stroke-dashoffset:0;stroke:var(--sig);opacity:1}
.frame .star{position:absolute;right:-6px;top:-10px;z-index:4;font-family:var(--f-s);font-size:30px;color:#E9C46A;transform:rotate(12deg)}
.sheet.filtering .frame.dim{opacity:.18;filter:grayscale(1)}
.loupe{position:fixed;width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;pointer-events:none;z-index:600;border:3px solid #fff;box-shadow:0 20px 60px rgba(0,0,0,.5);background-repeat:no-repeat;opacity:0;transform:scale(.6);transition:opacity .25s,transform .35s var(--ease)}
.loupe.on{opacity:1;transform:scale(1)}
@media (max-width:900px){.planche{grid-template-columns:1fr}.pidx{position:relative;top:0;display:flex;flex-wrap:wrap;gap:6px}.pidx button{width:auto;border:1.5px solid var(--line);border-radius:999px;padding:8px 14px}.pidx button b{font-size:18px}.frames{grid-template-columns:repeat(2,minmax(0,1fr))}.loupe{display:none}}

/* lightbox */
.lb{position:fixed;inset:0;z-index:700;background:rgba(8,8,10,.96);color:var(--paper);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .4s}
.lb.open{opacity:1;pointer-events:auto}
.lb-top{display:flex;justify-content:space-between;align-items:center;padding:18px var(--pad)}
.lb-mid{flex:1;min-height:0;display:flex;align-items:center;gap:16px;padding:0 var(--pad)}
.lb-mid figure{flex:1;height:100%;margin:0;position:relative}
.lb-mid img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.lb-bot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 40px;padding:20px var(--pad) 28px}
.lb-bot h3{margin:0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(36px,4vw,64px);line-height:.9}
.rnd{width:56px;height:56px;border-radius:50%;border:1.5px solid rgba(241,238,232,.35);background:transparent;color:var(--paper);font-size:20px;flex:0 0 auto;transition:background .3s,color .3s}
.rnd:hover{background:var(--paper);color:var(--ink)}

/* solutions list */
.sol-list{border-top:1.5px solid var(--ink);margin-bottom:clamp(90px,9vw,140px)}
.sol-row{position:relative;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:20px;padding:6px 0;border-bottom:1.5px solid var(--ink);cursor:pointer;overflow:hidden;width:100%;background:none;border-left:0;border-right:0;border-top:0;text-align:left}
.sol-row .bg{position:absolute;inset:0;z-index:0;clip-path:inset(50% 0 50% 0);transition:clip-path .7s var(--ease2)}
.sol-row .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55)}
.sol-row:hover .bg{clip-path:inset(0 0 0 0)}
.sol-row>*:not(.bg){position:relative;z-index:1;transition:color .4s}
.sol-row:hover>*:not(.bg){color:var(--paper)}
.sol-row .n{font-family:var(--f-m);font-size:12px;color:var(--sig);padding-left:6px}
.sol-row h3{margin:0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(54px,9.4vw,170px);line-height:.92;transition:font-stretch .7s var(--ease)!important}
.sol-row:hover h3{font-stretch:96%}
.sol-row .r{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding-right:6px;text-align:right}
.sol-row .r em{font-family:var(--f-s);font-size:22px}
.sol-row .r span{font-family:var(--f-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
@media (max-width:760px){.sol-row{grid-template-columns:40px 1fr}.sol-row .r{display:none}}

/* panel */
.panel{position:fixed;inset:0;z-index:650;background:var(--paper);overflow-y:auto;transform:translateY(100%);transition:transform .9s var(--ease2);overscroll-behavior:contain}
.panel.open{transform:none}
.panel-hero{position:relative;height:72vh;min-height:460px;overflow:hidden;color:var(--paper)}
.panel-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6)}
.panel-hero .in{position:absolute;left:0;right:0;bottom:0;padding:0 var(--pad) 40px}
.panel-hero h2{margin:0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(72px,14vw,240px);line-height:.8}
.panel-close{position:fixed;right:var(--pad);top:20px;z-index:3}
.p-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;padding:70px 0}
.p-items{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink)}
.p-items li{display:flex;gap:20px;align-items:baseline;padding:20px 0;border-bottom:1.5px solid var(--line)}
.p-items li b{font-family:var(--f-m);font-weight:400;font-size:12px;color:var(--sig)}
.p-items li span{font-weight:900;font-stretch:70%;text-transform:uppercase;font-size:clamp(24px,2.4vw,36px);line-height:1}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);font-family:var(--f-m);font-size:11px;letter-spacing:.08em;transition:border-color .3s,background .3s}
.chip:hover{border-color:var(--ink)}
.p-pics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-bottom:90px}
.p-pics figure{margin:0;position:relative;aspect-ratio:4/3;border-radius:8px;overflow:hidden}
.p-pics img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.p-pics figure:hover img{transform:scale(1.06)}
.p-pics figcaption{position:absolute;left:12px;bottom:12px;padding:7px 12px;border-radius:999px;background:rgba(13,13,15,.75);color:var(--paper);font-family:var(--f-m);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
@media (max-width:900px){.p-grid{grid-template-columns:1fr}.p-pics{grid-template-columns:1fr}}

/* location */
.packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px;margin-bottom:56px}
.pack{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:12px;border:1.5px solid var(--line);background:#fff;text-align:left;transition:border-color .3s,box-shadow .4s}
.pack:hover{border-color:var(--ink);box-shadow:0 18px 40px rgba(13,13,15,.08)}
.pack.on{border-color:var(--sig)}
.pack h3{margin:0;font-weight:900;font-stretch:70%;text-transform:uppercase;font-size:28px;line-height:.95}
.pack p{margin:0;font-size:14px;line-height:1.5;color:var(--mute)}
.pack .mono{font-size:10px;color:var(--mute);line-height:1.7}
.pack .st{font-family:var(--f-m);font-size:11px;letter-spacing:.12em;color:var(--sig)}
.fbar{position:sticky;top:76px;z-index:40;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:12px 0;background:rgba(241,238,232,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--line);margin-bottom:28px}
.fbar .search{flex:1 1 240px;max-width:340px;position:relative}
.fbar input{width:100%;min-height:46px;padding:0 16px 0 42px;border-radius:999px;border:1.5px solid var(--line);background:#fff}
.fbar .search svg{position:absolute;left:14px;top:13px}
.fbar .cats{display:flex;flex-wrap:wrap;gap:6px}
.fbar .cats button{min-height:42px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:transparent;font-family:var(--f-m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;transition:all .25s}
.fbar .cats button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.fbar .cats button span{opacity:.55;margin-left:6px}
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:14px;padding-bottom:120px}
.gcard{position:relative;display:flex;flex-direction:column;border-radius:12px;background:#fff;border:1.5px solid transparent;overflow:hidden;transition:border-color .3s,box-shadow .4s}
.gcard:hover{box-shadow:0 24px 60px rgba(13,13,15,.12);border-color:var(--line)}
.gcard.in{border-color:var(--sig)}
.gimg{position:relative;aspect-ratio:4/3;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}
.gimg img{width:84%;height:84%;object-fit:contain;transition:transform .8s var(--ease)}
.gcard:hover .gimg img{transform:scale(1.07)}
.gimg.cover img{width:100%;height:100%;object-fit:cover}
.gimg::before{content:'';position:absolute;left:50%;top:55%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(234,97,16,.22),rgba(234,97,16,0) 65%);transform:translate(-50%,-50%) scale(.4);opacity:0;transition:opacity .5s,transform .8s var(--ease);pointer-events:none}
.gcard:hover .gimg::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.gimg img{position:relative;mix-blend-mode:multiply}
.gimg.cover img{mix-blend-mode:normal}
.fly{position:fixed;z-index:900;pointer-events:none;object-fit:contain;background:#fff;border-radius:10px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.gimg .ph{font-family:var(--f-m);font-size:10px;color:var(--mute)}
.gbody{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px;border-top:1px solid var(--line);flex:1}
.gbody .top{display:flex;justify-content:space-between;font-family:var(--f-m);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.gbody .top span:first-child{color:var(--sig-d)}
.gbody h3{margin:4px 0 0;font-weight:800;font-size:17px;line-height:1.2}
.gbody p{margin:0;font-family:var(--f-m);font-size:11px;color:var(--mute)}
.gact{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px}
.add{min-height:40px;padding:0 16px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;font-family:var(--f-m);font-size:11px;letter-spacing:.12em;transition:all .25s}
.add:hover{background:var(--ink);color:var(--paper)}
.qty{display:flex;align-items:center;gap:6px}
.qty button{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;font-size:17px}
.qty button.p{background:var(--sig);border-color:var(--sig)}
.qty b{min-width:24px;text-align:center;font-family:var(--f-m)}
.cartbar{position:fixed;left:50%;bottom:18px;z-index:450;transform:translate(-50%,160%);display:flex;align-items:center;gap:18px;padding:10px 10px 10px 24px;border-radius:999px;background:var(--ink);color:var(--paper);box-shadow:0 20px 60px rgba(0,0,0,.35);transition:transform .6s var(--ease)}
.cartbar.on{transform:translate(-50%,0)}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:720;width:min(480px,100%);background:var(--paper);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .7s var(--ease2),box-shadow .7s;box-shadow:none}
.drawer.open{transform:none;box-shadow:-30px 0 80px rgba(0,0,0,.2)}
.dr-scrim{position:fixed;inset:0;z-index:710;background:rgba(13,13,15,.5);opacity:0;pointer-events:none;transition:opacity .5s}
.dr-scrim.open{opacity:1;pointer-events:auto}
.dr-h{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1.5px solid var(--line)}
.dr-h h3{margin:0;font-weight:900;font-stretch:70%;text-transform:uppercase;font-size:30px}
.dr-list{flex:1;overflow-y:auto;padding:6px 24px}
.dr-it{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.dr-it .im{width:56px;height:56px;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.dr-it .im img{width:88%;height:88%;object-fit:contain}
.dr-it .im img.cover{width:100%;height:100%;object-fit:cover}
.dr-it b{display:block;font-size:14px}
.dr-it span{font-family:var(--f-m);font-size:10px;letter-spacing:.1em;color:var(--mute)}
.dr-f{padding:18px 24px 24px;border-top:1.5px solid var(--line);display:flex;flex-direction:column;gap:10px}
.field{width:100%;min-height:50px;padding:0 16px;border-radius:10px;border:1.5px solid var(--line);background:#fff;transition:border-color .2s}
.field:focus{border-color:var(--ink);outline:none}
textarea.field{min-height:120px;padding:14px 16px;resize:vertical}
.lbl{display:flex;flex-direction:column;gap:8px;font-family:var(--f-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}

/* contact */
.ct{display:grid;grid-template-columns:1fr 460px;gap:56px;align-items:start;padding-bottom:clamp(90px,9vw,140px)}
.q{margin:0 0 44px;padding:0;border:0}
.q legend{padding:0;margin-bottom:16px;font-family:var(--f-m);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.q legend b{color:var(--sig);font-weight:400}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{min-height:48px;padding:0 18px;border-radius:999px;border:1.5px solid var(--line);background:transparent;font-weight:600;transition:all .25s}
.opt:hover{border-color:var(--ink)}
.opt.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr));gap:8px}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:84px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:#fff;text-align:left;transition:all .25s}
.tile span{font-family:var(--f-m);font-size:10px;letter-spacing:.12em;color:var(--mute)}
.tile b{font-weight:900;font-stretch:70%;text-transform:uppercase;font-size:22px;line-height:1}
.tile:hover{border-color:var(--ink)}
.tile.on{background:var(--sig);border-color:var(--sig)}
.tile.on span{color:var(--ink)}
.jauge b{font-weight:900;font-stretch:62%;font-size:clamp(64px,7vw,110px);line-height:.85}
.range{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--paper3);margin:22px 0 10px}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:var(--sig);border:5px solid var(--paper);box-shadow:0 0 0 1.5px var(--ink);cursor:pointer}
.range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--sig);border:5px solid var(--paper);cursor:pointer}
.ffs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px}
.fiche{position:sticky;top:100px;border-radius:14px;background:var(--ink);color:var(--paper);overflow:hidden}
.fiche-h{display:flex;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line-d);font-family:var(--f-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-d)}
.fiche dl{margin:0;padding:8px 22px}
.fiche dl div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid rgba(241,238,232,.08)}
.fiche dt{font-family:var(--f-m);font-size:10px;letter-spacing:.16em;color:var(--mute-d)}
.fiche dd{margin:0;text-align:right;font-size:13px;line-height:1.5}
.fiche dd.e{color:#77736C}
.fiche-f{padding:18px 22px 22px;display:flex;flex-direction:column;gap:12px}
.prog{height:4px;border-radius:2px;background:rgba(241,238,232,.12);overflow:hidden}
.prog i{display:block;height:100%;background:var(--sig);transition:width .6s var(--ease)}
@media (max-width:1000px){.ct{grid-template-columns:1fr}.fiche{position:relative;top:0}}

/* about */
.ab-hero{position:relative;height:100svh;min-height:620px;overflow:hidden;color:var(--paper)}
.ab-hero img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;filter:brightness(.7)}
.ab-hero .in{position:absolute;left:0;right:0;bottom:0;padding:0 var(--pad) 48px;z-index:2}
.ab-hero h1{margin:0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(76px,15vw,270px);line-height:.8}
.pres{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:stretch}
.pres-l button{display:flex;width:100%;align-items:baseline;gap:18px;padding:22px 0;border:0;border-top:1.5px solid var(--line-d);background:none;color:var(--paper);text-align:left}
.pres-l button b{font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(52px,6vw,100px);line-height:.85;transition:font-stretch .6s var(--ease),color .3s;opacity:.4}
.pres-l button.on b{opacity:1;color:var(--sig);font-stretch:90%}
.pres-l button span{font-family:var(--f-m);font-size:11px;letter-spacing:.14em;color:var(--mute-d)}
.pres-r{position:relative;border-radius:12px;overflow:hidden;min-height:420px}
.pres-r img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .9s,transform 2s var(--ease)}
.pres-r img.on{opacity:1;transform:scale(1)}
.pres-r p{position:absolute;left:24px;right:24px;bottom:22px;margin:0;z-index:2;font-size:17px;line-height:1.55;color:#EDE9E2;text-shadow:0 2px 20px rgba(0,0,0,.6)}
.vals{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px}
.val .im{position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden}
.val .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:transform 1.2s var(--ease),filter .6s}
.val:hover .im img{transform:scale(1.06);filter:grayscale(.2)}
.val h3{margin:18px 0 8px;font-weight:900;font-stretch:70%;text-transform:uppercase;font-size:26px;line-height:.95}
.val p{margin:0;font-size:15px;line-height:1.6;color:var(--mute)}
@media (max-width:900px){.pres{grid-template-columns:1fr}}

/* case */
.cs-hero{position:relative;height:100svh;min-height:620px;overflow:hidden;color:var(--paper)}
.cs-hero img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;filter:brightness(.6)}
.cs-hero .in{position:absolute;left:0;right:0;bottom:0;padding:0 var(--pad) 48px;z-index:2}
.cs-hero h1{margin:0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(70px,13vw,230px);line-height:.8}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.facts div{padding:22px 20px 22px 0}
.facts dt{font-family:var(--f-m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.facts dd{margin:0;font-weight:700;font-size:16px}
.scope{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:10px}
.scope div{display:flex;justify-content:space-between;align-items:center;padding:22px;border-radius:12px;border:1.5px solid var(--line-d);font-weight:900;font-stretch:70%;text-transform:uppercase;font-size:22px}
.scope div i{width:12px;height:12px;border-radius:50%;background:var(--sig)}
.gal{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:min(80vh,760px)}
.gal figure{margin:0;position:relative;border-radius:10px;overflow:hidden}
.gal figure:first-child{grid-row:1/3}
.gal img{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover}
.next-p{display:block;position:relative;overflow:hidden;padding:clamp(90px,9vw,150px) 0;color:var(--paper);background:var(--ink)}
.next-p img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.25;transition:opacity .6s,transform 1.4s var(--ease)}
.next-p:hover img{opacity:.5;transform:scale(1.04)}
.next-p .wrap{position:relative;z-index:2}
.next-p h2{margin:12px 0 0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(60px,9vw,160px);line-height:.85}

/* modal video */
.vmodal{position:fixed;inset:0;z-index:950;background:rgba(5,5,6,.96);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .4s}
.vmodal.open{opacity:1;pointer-events:auto}
.vmodal .bar{display:flex;justify-content:space-between;align-items:center;padding:18px var(--pad);color:var(--paper)}
.vmodal .vid{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 var(--pad) 32px}
.vmodal video{width:100%;max-height:100%;aspect-ratio:12/5;background:#000;border-radius:10px}

/* reveal utilities */
.rv{opacity:0;transform:translateY(60px)}
.mask{display:block;overflow:hidden;padding-top:.16em;margin-top:-.16em}
.mask>span{display:block}
.img-rv{clip-path:inset(100% 0 0 0)}

/* image trail on page heads */
.phead{position:relative;overflow:hidden}
.phead .wrap{position:relative;z-index:2;pointer-events:none}
.phead .wrap a,.phead .wrap button{pointer-events:auto}
.trail-img{position:absolute;z-index:1;width:clamp(150px,15vw,240px);aspect-ratio:4/5;object-fit:cover;border-radius:6px;pointer-events:none;box-shadow:0 30px 60px -20px rgba(0,0,0,.45);will-change:transform,opacity}
.phead .trail-hint{position:absolute;right:var(--pad);top:clamp(130px,14vw,200px);z-index:2;font-family:var(--f-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);display:flex;align-items:center;gap:10px}
.phead .trail-hint i{width:8px;height:8px;border-radius:50%;background:var(--sig);animation:blink 1.4s infinite}
@media (hover:none){.phead .trail-hint{display:none}}

.pack .st{white-space:nowrap}
.pk-ims{display:flex;gap:6px;flex-wrap:wrap}
.pk-ims i{width:44px;height:44px;border-radius:8px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .4s var(--ease)}
.pk-ims img{width:86%;height:86%;object-fit:contain;mix-blend-mode:multiply}
.pk-ims img.cover{width:100%;height:100%;object-fit:cover;mix-blend-mode:normal}
.pack:hover .pk-ims i{transform:translateY(-4px)}
.pack:hover .pk-ims i:nth-child(2){transition-delay:.04s}.pack:hover .pk-ims i:nth-child(3){transition-delay:.08s}.pack:hover .pk-ims i:nth-child(4){transition-delay:.12s}.pack:hover .pk-ims i:nth-child(5){transition-delay:.16s}.pack:hover .pk-ims i:nth-child(6){transition-delay:.2s}

.chip.has{display:inline-flex;align-items:center;gap:10px;padding-left:5px}
.chip i{width:34px;height:34px;border-radius:999px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.chip i img{width:80%;height:80%;object-fit:contain;mix-blend-mode:multiply}
.chip i img.cover{width:100%;height:100%;object-fit:cover;mix-blend-mode:normal}

.hero-title .ln{padding-top:.14em;margin-top:-.14em}
@media (max-width:760px){
  .fbar{top:0;gap:8px;padding:10px 0}
  .fbar .search{flex:1 1 100%;max-width:none}
  .fbar .cats{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--pad)*-1);padding:0 var(--pad);-webkit-overflow-scrolling:touch}
  .fbar .cats::-webkit-scrollbar{display:none}
  .fbar .cats button{flex:none}
  .ggrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .gbody{padding:12px}
  .gbody h3{font-size:14px}
  .gbody p{font-size:11px}
  .gbody .top{font-size:9px}
  .gact .add{padding:0 10px}
}

/* =========================================================
   V2.1 — HERO "LE SHOW" (3D temps réel)
   ========================================================= */
.show{position:relative;height:290vh;background:#000;color:var(--paper)}
.show-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#000}
.show-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 45%}
.show-gl{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}
.show-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 46%,rgba(0,0,0,.82) 100%)}
.show.nogl .show-shade{background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.05) 30%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.85) 100%)}
.cm{position:absolute;z-index:3;width:28px;height:28px;border:0 solid rgba(241,238,232,.7);pointer-events:none}
.cm.tl{top:104px;left:calc(var(--pad) - 20px);border-top-width:1px;border-left-width:1px}
.cm.tr{top:104px;right:calc(var(--pad) - 20px);border-top-width:1px;border-right-width:1px}
.cm.bl{bottom:22px;left:calc(var(--pad) - 20px);border-bottom-width:1px;border-left-width:1px}
.cm.br{bottom:22px;right:calc(var(--pad) - 20px);border-bottom-width:1px;border-right-width:1px}
.show-c{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(84px,11vh,130px);z-index:3;pointer-events:none}
.show-k{margin:0 0 20px;font-size:12px;letter-spacing:.2em;color:#E4E0D8}
.show-title{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(52px,8.8vw,172px);line-height:.84;letter-spacing:-.008em;color:var(--paper);text-shadow:0 10px 60px rgba(0,0,0,.45)}
.show-title .ln{display:block;overflow:hidden;padding-top:.14em;margin-top:-.14em;padding-bottom:.02em}
.show-title .ln>span{display:inline-block}
.show-title em{font-style:normal;color:var(--sig)}
.show-row{display:flex;justify-content:space-between;align-items:flex-end;gap:22px 48px;flex-wrap:wrap;margin-top:26px}
.show-row p{max-width:520px;margin:0;color:#D9D4CB;font-size:17px;line-height:1.6}
.show-btns{display:flex;gap:12px;flex-wrap:wrap;pointer-events:auto}
.btn-ghost{background:rgba(10,10,12,.45);color:var(--paper);border:1px solid rgba(241,238,232,.42)}
.btn-ghost:hover{background:var(--paper);color:var(--ink)}
.tri{display:inline-block;width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent currentColor}
.show-hint{position:absolute;right:var(--pad);top:50%;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:12px;font-size:11px;letter-spacing:.16em;color:#E4E0D8;pointer-events:none;transition:opacity .8s,transform .8s var(--ease)}
.show-hint span{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:999px;background:rgba(10,10,12,.72);border:1px solid rgba(241,238,232,.16)}
.show-hint b{color:var(--sig)}
.show-hint.done{opacity:0 !important;transform:translateX(20px)}
.ic-m{width:12px;height:18px;border:1.5px solid currentColor;border-radius:7px;position:relative}
.ic-m::after{content:'';position:absolute;left:50%;top:3px;width:2px;height:4px;margin-left:-1px;background:currentColor;border-radius:1px;animation:wheel 1.6s infinite}
.ic-c{width:10px;height:10px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 4px rgba(234,97,16,.25);animation:blink 1.4s steps(1) infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}100%{transform:translateY(7px);opacity:0}}
.show-hud{position:absolute;left:var(--pad);right:var(--pad);bottom:34px;z-index:3;display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.18em;color:#C9C5BE;pointer-events:none}
.show-hud b{font-weight:500;color:var(--paper)}
.rec{display:inline-flex;align-items:center;gap:10px}
.rec i{display:block;width:8px;height:8px;border-radius:50%;background:#E3120B;box-shadow:0 0 10px rgba(227,18,11,.8);animation:blink 1.2s steps(1) infinite}
.show-go{position:absolute;left:50%;top:42%;z-index:2;transform:translate(-50%,-50%);font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:30vw;line-height:.8;color:#fff;opacity:0;pointer-events:none;mix-blend-mode:overlay}
.show-end{position:absolute;left:var(--pad);bottom:clamp(84px,11vh,130px);z-index:3;display:flex;align-items:center;flex-wrap:wrap;gap:18px;opacity:0;pointer-events:none}
.show-end .mono{font-size:12px;letter-spacing:.18em;color:#E4E0D8}
.show-end.on{pointer-events:auto}
@media (max-width:760px){
  .show{height:230vh}
  .show-hint{top:auto;bottom:auto;top:96px;right:var(--pad);left:var(--pad);align-items:flex-start}
  .show-hint span:first-child{display:none}
  .show-row p{font-size:15px}
  .cm{display:none}
  .show-hud{bottom:18px;font-size:9px}
}

/* =========================================================
   V2.1 — MÉTIERS (iris, contour → plein)
   ========================================================= */
.met2{position:relative;height:440vh;background:#000;color:var(--paper)}
.met2-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.met2-imgs .mi{position:absolute;inset:0;margin:0;overflow:hidden}
.met2-imgs .mi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 50%}
.met2-spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--sx,50%) var(--sy,45%),rgba(0,0,0,0) 0,rgba(0,0,0,.12) 14vmax,rgba(0,0,0,.72) 46vmax,rgba(0,0,0,.86) 80vmax)}
.met2-top{position:absolute;top:110px;left:var(--pad);right:var(--pad);z-index:3;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.18em;color:#D6D1C8}
.met2-top b{color:var(--sig);font-weight:500}
.met2-words{position:absolute;left:0;right:0;top:48%;z-index:2;height:.9em;transform:translateY(-50%);overflow:hidden;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(96px,23vw,420px);line-height:.82;text-align:center;pointer-events:none}
.mw{position:absolute;left:0;right:0;top:.04em}
.mw .in{position:relative;display:inline-block}
.mw .o{color:transparent;-webkit-text-stroke:2px rgba(241,238,232,.95)}
.mw .f{position:absolute;inset:0;color:var(--paper);clip-path:inset(0 100% 0 0)}
.met2-txt{position:absolute;right:var(--pad);bottom:12vh;z-index:3;width:min(30vw,420px);height:200px}
.met2-txt>div{position:absolute;left:0;right:0;bottom:0}
.met2-txt .k{margin:0 0 12px;font-size:11px;letter-spacing:.18em;color:#D6D1C8}
.met2-txt .k b{color:var(--sig);font-weight:500}
.met2-txt .d{margin:0 0 14px;font-size:17px;line-height:1.55;color:#EDE9E2}
.met2-txt .it{margin:0;font-size:10.5px;letter-spacing:.14em;line-height:1.8;color:#A9A49B}
.met2-idx{position:absolute;left:var(--pad);bottom:12vh;z-index:3;display:flex;flex-direction:column;gap:12px}
.met2-idx button{display:flex;align-items:center;gap:14px;padding:0;border:0;background:none;color:#A9A49B;font-family:var(--f-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:color .3s}
.met2-idx button.on,.met2-idx button:hover{color:var(--paper)}
.met2-idx i{position:relative;display:block;width:56px;height:2px;background:rgba(241,238,232,.2);overflow:hidden}
.met2-idx b{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
@media (max-width:760px){.met2{height:380vh}.met2-txt{left:var(--pad);right:var(--pad);width:auto;bottom:16vh}.met2-idx{bottom:auto;top:150px;flex-direction:row;gap:10px}.met2-idx span{display:none}.met2-idx i{width:40px}}

/* =========================================================
   V2.1 — COMPARATEUR : previz 3D temps réel
   ========================================================= */
.cmp .top{position:absolute;inset:0;z-index:1}
.cmp .top canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.cmp .top img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cmp .tag,.cmp .bar,.cmp .knob{z-index:3}
.pvz-hud{position:absolute;left:18px;bottom:18px;z-index:3;font-size:10px;letter-spacing:.16em;color:rgba(241,238,232,.75);pointer-events:none}
.pvz-hud b{color:var(--sig);font-weight:500}
.pvz-x{position:absolute;right:18px;bottom:18px;z-index:4;padding:10px 16px;border-radius:999px;border:1px solid rgba(241,238,232,.4);background:rgba(10,10,12,.75);color:var(--paper);font-size:11px;letter-spacing:.14em;cursor:pointer;transition:background .3s,color .3s}
.pvz-x:hover{background:var(--paper);color:var(--ink)}
.cmp.explore{cursor:grab}
.cmp.explore:active{cursor:grabbing}
.cmp.explore .top{clip-path:none !important}
.cmp.explore .bar,.cmp.explore .knob,.cmp.explore .tag.r{opacity:0;pointer-events:none}
.cmp.explore{touch-action:none}
@media (max-width:760px){.show-hud span:last-child{display:none}.show-hud{justify-content:flex-start}.show-hint{top:auto;bottom:auto;top:92px}}

/* =========================================================
   V2.2 — SIMULATEUR 3D + CONSOLE
   ========================================================= */
.sim{border-radius:18px;overflow:hidden;background:#0B0B0E;box-shadow:0 40px 120px -40px rgba(13,13,15,.55)}
.sim-view{position:relative;aspect-ratio:21/9;min-height:340px;background:#050507 center/cover no-repeat;cursor:grab}
.sim-view:active{cursor:grabbing}
.sim-view canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}
.sim-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.01}
.sim-view.nogl .sim-vid{display:none}
.sim-hud{position:absolute;left:22px;right:22px;top:20px;z-index:2;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.18em;color:#E4E0D8;pointer-events:none}
.sim-hint{position:absolute;left:50%;bottom:20px;z-index:2;transform:translateX(-50%);padding:8px 14px;border-radius:999px;background:rgba(10,10,12,.7);border:1px solid rgba(241,238,232,.15);font-size:10.5px;letter-spacing:.16em;color:#D6D1C8;pointer-events:none;transition:opacity .6s}
.sim-view.used .sim-hint{opacity:0}
.sim-desk{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:1px;background:#1C1D22;border-top:1px solid #24252B}
.sim-blk{background:#0E0F12;padding:22px 24px 24px;color:var(--paper)}
.sim-blk .k{margin:0 0 16px;font-size:10.5px;letter-spacing:.2em;color:#8E8A82}
.sim-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.sim-steps button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 10px;border-radius:10px;border:1px solid #2A2B31;background:#15161A;color:#C9C4BB;text-align:left;cursor:pointer;transition:border-color .3s,background .3s,color .3s}
.sim-steps button b{font-weight:700;font-size:13.5px;letter-spacing:.01em;color:var(--paper)}
.sim-steps button span{font-family:var(--f-m);font-size:10px;letter-spacing:.12em;color:#8E8A82}
.sim-steps button:hover{border-color:#4A4B52}
.sim-steps button.on{border-color:var(--sig);background:linear-gradient(180deg,rgba(234,97,16,.16),rgba(234,97,16,.04))}
.sim-steps button.on span{color:var(--sig)}
.sim-rail{position:relative;height:2px;margin-top:16px;background:#24252B;border-radius:2px}
.sim-rail i{position:absolute;left:0;top:0;bottom:0;width:50%;background:var(--sig);border-radius:2px;transition:width .6s var(--ease)}
.sim-rail i::after{content:'';position:absolute;right:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--sig);box-shadow:0 0 12px rgba(234,97,16,.8)}
.sim-chs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ch{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 6px 10px;border-radius:10px;border:1px solid #2A2B31;background:linear-gradient(180deg,#17181C,#111215);color:#C9C4BB;cursor:pointer;transition:border-color .3s}
.ch:hover{border-color:#4A4B52}
.ch .led{width:8px;height:8px;border-radius:50%;background:#2E2F35;transition:background .3s,box-shadow .3s}
.ch.on .led{background:var(--sig);box-shadow:0 0 10px rgba(234,97,16,.9)}
.ch .fd{position:relative;width:6px;height:58px;border-radius:3px;background:#07070A;box-shadow:inset 0 0 0 1px #24252B}
.ch .fd i{position:absolute;left:50%;width:22px;height:12px;margin-left:-11px;border-radius:3px;background:linear-gradient(180deg,#5A5B62,#2E2F35);box-shadow:0 2px 6px rgba(0,0,0,.6);bottom:2px;transition:bottom .55s var(--ease)}
.ch.on .fd i{bottom:40px;background:linear-gradient(180deg,#F4F1EA,#B8B3AA)}
.ch b{font-size:12.5px;font-weight:700;color:var(--paper)}
.ch em{font-style:normal;font-family:var(--f-m);font-size:9.5px;letter-spacing:.14em;color:#6E6A63}
.sim-out dl{margin:0 0 18px;display:grid;gap:9px}
.sim-out dl div{display:flex;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid #1E1F24}
.sim-out dt{font-family:var(--f-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#8E8A82}
.sim-out dd{margin:0;font-weight:700;font-size:14px;color:var(--paper)}
.sim-out dd.e{color:#4A4B52}
.sim-out .btn{width:100%;justify-content:center}
.sim-out .note{margin:12px 0 0;font-size:9.5px;letter-spacing:.1em;color:#6E6A63;line-height:1.6}
@media (max-width:1100px){.sim-desk{grid-template-columns:1fr 1fr}.sim-out{grid-column:1/-1}}
@media (max-width:700px){.sim-view{aspect-ratio:4/5}.sim-desk{grid-template-columns:1fr}.sim-steps{grid-template-columns:repeat(3,1fr)}.sim-hud{flex-direction:column;gap:6px}}

.menu-prev video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .6s var(--ease),transform 1.4s var(--ease)}
.menu-prev video.on{opacity:1;transform:scale(1)}

/* =========================================================
   V2.4 — PLANCHE réorganisée
   ========================================================= */
.sheet{padding:0 0 18px}
.sheet-head{align-items:center;gap:20px;padding:20px 26px 16px;border-bottom:1px solid #222226}
.sheet-head .lg{color:#A39E95;letter-spacing:.14em}
.sheet-head .lg i{font-style:normal;color:#E9C46A}
.sheet-head .lg em{font-style:normal;margin:0 8px;color:#55524C}
.sheet-head #sheet-n{color:#E9C46A}
.sheet-body{padding-top:14px}
.strip{padding:24px 26px}
.strip+.strip{margin-top:12px}
.frames{gap:18px}
.frame{background:transparent}
.frame .ph{border-radius:2px}
.frame .ph img{filter:saturate(.92)}
.frame:hover .ph img{transform:scale(1.05);filter:saturate(1.05)}
.frame .fn{display:flex;align-items:baseline;justify-content:flex-start;gap:10px;padding:9px 1px 0;min-width:0}
.frame .fn b{flex:none;font-family:var(--f-m);font-weight:500;font-size:10px;letter-spacing:.14em;color:#E9C46A}
.frame .fn .t{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:var(--f-d);font-size:12.5px;font-weight:600;letter-spacing:0;color:#CFCAC1;transition:color .3s}
.frame:hover .fn .t{color:#fff}
.frame .cap,.frame .star{display:none}
.frame svg.circ{left:5%;top:7%;width:90%;height:86%;z-index:2}
.frame svg.circ path{stroke-width:2.4;opacity:0;transition:stroke-dashoffset .8s var(--ease),opacity .3s}
.frame.marked svg.circ path{opacity:.9;stroke:#E9C46A}
.frame:hover svg.circ path{opacity:1;stroke:var(--sig)}
.frame .sel{position:absolute;left:8px;top:8px;z-index:3;padding:4px 8px;border-radius:999px;background:rgba(10,10,12,.72);color:#E9C46A;font-family:var(--f-m);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.loupe{width:170px;height:170px;margin:-85px 0 0 -85px;border-width:2px}
@media (max-width:900px){.sheet-head .lg{display:none}.strip{padding:18px 14px}.frames{gap:12px}}

.pre-top{align-items:center}
.pre-logo{height:34px;width:auto;display:block}
.ftr-bot{align-items:center}
.ftr-logo{height:30px;width:auto;display:block}

/* V2.7 — bandeau du haut éclairci (logo lisible partout) */
.hdr,.hdr[data-theme=dark],.hdr[data-theme=light]{color:var(--ink)}
.hdr .hdr-bg,.hdr[data-theme=dark] .hdr-bg,.hdr[data-theme=light] .hdr-bg{opacity:1;background:rgba(241,238,232,.8);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid rgba(13,13,15,.07);box-shadow:0 8px 30px -18px rgba(13,13,15,.35)}
.hdr-in{padding:12px var(--pad)}
.hdr .burger:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.show-shade{background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 46%,rgba(0,0,0,.82) 100%)}
.cm.tl,.cm.tr{top:96px}
.met2-top{top:100px}

/* V2.8 — deuxième temps du hero : la méthode sur le showreel */
.show{height:470vh}
.show-veil{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.25) 0%,rgba(0,0,0,.55) 70%,rgba(0,0,0,.7) 100%)}
.show-steps{position:absolute;inset:0;z-index:3;pointer-events:none}
.ss{position:absolute;left:var(--pad);right:var(--pad);top:50%;text-align:center;opacity:0}
.ss .k{margin:0 0 22px;font-size:11px;letter-spacing:.22em;color:#E4E0D8}
.ss .k b{font-weight:500;color:var(--sig)}
.ss .w{position:relative;display:inline-block;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(92px,19vw,360px);line-height:.82;letter-spacing:-.01em}
.ss .o{color:transparent;-webkit-text-stroke:2px rgba(241,238,232,.92)}
.ss .f{position:absolute;inset:0;color:var(--paper);clip-path:inset(0 100% 0 0)}
.ss .d{max-width:520px;margin:26px auto 0;font-size:18px;line-height:1.55;color:#EDE9E2;text-shadow:0 4px 30px rgba(0,0,0,.5)}
.show-prog{position:absolute;right:var(--pad);top:50%;z-index:3;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#C9C5BE;pointer-events:none;opacity:0}
.show-prog span{display:flex;align-items:center;gap:12px}
.show-prog i{position:relative;display:block;width:44px;height:2px;background:rgba(241,238,232,.22);overflow:hidden}
.show-prog b{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
@media (max-width:760px){.show{height:400vh}.show-prog{display:none}.ss .d{font-size:15px}}

/* V2.8 — pictogrammes 3D des chiffres clés */
.stats{position:relative}
.pictos-gl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.stat{position:relative;z-index:1}
.stat .pic{width:100%;aspect-ratio:1/1;max-height:260px;margin:0 0 10px;cursor:pointer}
.stats.nogl .stat .pic{display:none}
.stat{padding-top:30px}
@media (max-width:760px){.stat .pic{max-height:200px;max-width:260px}}

/* V2.8 — place pour les accents des capitales */
.mask{padding-top:.24em;margin-top:-.24em}
.final h2{line-height:.92}
.h2{line-height:.95}
.met2-words{height:1.12em;top:46%}
.mw{top:.22em}
.ss .w{line-height:.92;padding-top:.12em}
.ab-hero h1,.cs-hero h1{line-height:.88}
.phead h1{line-height:.86}
.menu-list a{line-height:1}
.show-title .ln{padding-top:.2em;margin-top:-.2em}

/* =========================================================
   V2.9 — RÉALISATIONS : salle de projection
   ========================================================= */
.rx{background:#0A0A0C;color:var(--paper);padding:clamp(60px,6vw,90px) 0 clamp(110px,10vw,160px)}
.rx-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-bottom:26px;margin-bottom:clamp(30px,4vw,56px);border-bottom:1px solid #222227}
.rx-filters{display:flex;flex-wrap:wrap;gap:8px}
.rx-filters button{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid #2C2C32;background:transparent;color:#C9C4BB;font-family:var(--f-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:border-color .3s,background .3s,color .3s}
.rx-filters button span{color:#6E6A63;font-size:10px}
.rx-filters button:hover{border-color:#55545B;color:var(--paper)}
.rx-filters button.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.rx-filters button.on span{color:var(--sig)}
.rx-count{font-size:11px;letter-spacing:.18em;color:#8E8A82}
.rx-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(30px,4vw,70px);align-items:start}
.rx-list{display:flex;flex-direction:column;padding-bottom:30vh}
.rx-it{display:grid;grid-template-columns:44px 1fr;column-gap:14px;row-gap:6px;padding:16px 0 18px;border-top:1px solid #1C1C21;color:inherit;text-decoration:none;cursor:pointer}
.rx-it .n{grid-row:1;padding-top:.9em;font-size:10.5px;letter-spacing:.14em;color:#6E6A63;transition:color .3s}
.rx-it .nm{position:relative;display:block;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(34px,3.6vw,64px);line-height:.95;letter-spacing:-.005em;padding-top:.12em}
.rx-it .nm .o{color:transparent;-webkit-text-stroke:1.2px rgba(241,238,232,.55);transition:-webkit-text-stroke-color .3s}
.rx-it .nm .f{position:absolute;inset:0;padding-top:.12em;color:var(--paper);clip-path:inset(0 100% 0 0);transition:clip-path .9s var(--ease2)}
.rx-it .mt{grid-column:2;font-size:10.5px;letter-spacing:.14em;color:#8E8A82;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s}
.rx-it .mt b{color:#E9C46A;font-weight:500}
.rx-it:hover .nm .o{-webkit-text-stroke-color:rgba(241,238,232,.9)}
.rx-it.on .n{color:var(--sig)}
.rx-it.on .nm .f{clip-path:inset(0 0% 0 0)}
.rx-it.on .mt{max-height:40px;opacity:1}
.rx-stage-w{position:sticky;top:96px;perspective:1400px}
.rx-stage{position:relative;transform-style:preserve-3d;cursor:pointer;will-change:transform}
.rx-screen{position:relative;aspect-ratio:16/10;border-radius:6px;overflow:hidden;background:#000;box-shadow:0 0 0 1px #222227,0 40px 120px -30px rgba(234,97,16,.25),0 50px 100px -40px rgba(0,0,0,.9)}
.rx-img{position:absolute;inset:0;overflow:hidden}
.rx-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rx-beam{position:absolute;top:-10%;bottom:-10%;left:-12%;width:9%;z-index:3;pointer-events:none;opacity:0;transform:skewX(-12deg);background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,236,210,.55) 40%,#fff 50%,rgba(234,97,16,.65) 62%,rgba(255,255,255,0) 100%);filter:blur(6px);mix-blend-mode:screen}
.rx-spot{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;transition:opacity .5s;background:radial-gradient(circle at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.14) 0,rgba(255,255,255,0) 22%,rgba(0,0,0,.28) 60%)}
.rx-stage.lit .rx-spot{opacity:1}
.rx-tc{position:absolute;left:16px;top:14px;z-index:5;padding:7px 12px;border-radius:999px;background:rgba(10,10,12,.7);font-size:10px;letter-spacing:.16em;color:#D6D1C8}
.rx-tc b{color:var(--paper);font-weight:500}
.rx-cap{display:grid;grid-template-columns:1fr auto;gap:18px 30px;align-items:end;padding:22px 2px 0}
.rx-cat{margin:0 0 10px;font-size:10.5px;letter-spacing:.16em;color:var(--sig)}
.rx-cat b{margin-left:10px;color:#E9C46A;font-weight:500}
.rx-cap h3{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(30px,2.6vw,46px);line-height:.98;padding-top:.1em}
.rx-pl{margin:6px 0 0;font-size:22px;color:#D6D1C8}
.rx-side{display:flex;flex-direction:column;align-items:flex-end;gap:14px;max-width:340px}
.rx-tags{margin:0;font-size:10px;letter-spacing:.12em;line-height:1.8;color:#8E8A82;text-align:right}
.rx-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.rx-btns .btn{min-height:46px;padding:0 20px;font-size:14px}
@media (max-width:900px){
  .rx-grid{grid-template-columns:1fr}
  .rx-stage-w{position:sticky;top:64px;z-index:5;order:-1;padding:10px 0;background:#0A0A0C}
  .rx-cap{grid-template-columns:1fr;padding-top:12px}
  .rx-side{align-items:flex-start}.rx-tags,.rx-btns{display:none}
  .rx-cap h3{font-size:24px}.rx-pl{font-size:16px}
  .rx-list{padding-bottom:20vh}
  .rx-it{grid-template-columns:32px 1fr}
  .rx-it .nm{font-size:32px}
}

/* =========================================================
   V3 — Simulateur : pupitre (faders, conduite, couleurs, caméras)
   ========================================================= */
.sim-out{grid-row:span 2}
.sim-blk .k{display:flex;justify-content:space-between;gap:10px}
.sim-blk .k span{color:#55524C}
.sim-hud b{margin-left:12px;padding:4px 9px;border-radius:999px;background:rgba(234,97,16,.2);color:#FFB27F;font-weight:500;letter-spacing:.14em}
.sim-hud>span:last-child{display:flex;gap:18px;align-items:center}
.bpm{display:inline-flex;align-items:center;gap:7px;opacity:.3;transition:opacity .4s}
.bpm i{width:7px;height:7px;border-radius:50%;background:var(--sig)}
.bpm.on{opacity:1}
.bpm.on i{animation:bpm .4839s infinite}
@keyframes bpm{0%{transform:scale(1.6);box-shadow:0 0 12px var(--sig)}35%{transform:scale(1);box-shadow:none}100%{transform:scale(1)}}
.ch{cursor:default;gap:8px;padding:10px 6px 12px}
.ch-led{display:flex;align-items:center;justify-content:center;width:30px;height:26px;margin:-4px 0;border:0;background:none;cursor:pointer;border-radius:8px}
.ch-led:hover{background:rgba(241,238,232,.06)}
.ch .fd{width:34px;height:104px;background:none;box-shadow:none;cursor:ns-resize;touch-action:none;outline:none}
.ch .fd::before{content:'';position:absolute;left:50%;top:6px;bottom:6px;width:6px;margin-left:-3px;border-radius:3px;background:#07070A;box-shadow:inset 0 0 0 1px #24252B}
.ch .fd u{position:absolute;left:50%;bottom:6px;width:2px;margin-left:-1px;height:calc(var(--v) * (100% - 12px));border-radius:2px;background:var(--sig);box-shadow:0 0 10px rgba(234,97,16,.8);transition:height .25s var(--ease)}
.ch.mute .fd u{background:#34353B;box-shadow:none}
.ch .fd i,.ch.on .fd i{width:28px;height:12px;margin-left:-14px;bottom:calc(var(--v) * (100% - 12px));transition:bottom .25s var(--ease)}
.ch .fd i::after{content:'';position:absolute;left:4px;right:4px;top:50%;height:1px;background:rgba(13,13,15,.55)}
.ch.drag .fd i,.ch.drag .fd u{transition:none}
.ch .fd:focus-visible{box-shadow:0 0 0 2px var(--sig);border-radius:8px}
.ch em .pv{color:#8E8A82}
.ch.on em .pv{color:var(--sig)}
.sim-cues{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.sim-cues button{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:11px 10px 13px;border-radius:10px;border:1px solid #2A2B31;background:#15161A;color:#C9C4BB;text-align:left;cursor:pointer;transition:border-color .3s,background .3s}
.sim-cues button:hover{border-color:#4A4B52}
.sim-cues em{font-style:normal;font-family:var(--f-m);font-size:9.5px;letter-spacing:.14em;color:#6E6A63}
.sim-cues b{font-size:13.5px;font-weight:700;color:var(--paper)}
.sim-cues span{font-size:11px;line-height:1.3;color:#8E8A82}
.sim-cues i{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--sig);transform:scaleX(0);transform-origin:left}
.sim-cues button.on{border-color:var(--sig);background:linear-gradient(180deg,rgba(234,97,16,.16),rgba(234,97,16,.04))}
.sim-cues button.on em{color:var(--sig)}
.sim-cues button:not(.on) i{opacity:0}
.sim-go{display:flex;align-items:center;justify-content:space-between;width:100%;height:60px;margin-top:12px;padding:0 9px 0 22px;border:0;border-radius:12px;background:linear-gradient(180deg,#F07A2E,#C24F08);color:#fff;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 14px 34px -14px rgba(234,97,16,.85)}
.sim-go .g{font-weight:900;font-size:26px;letter-spacing:.06em}
.sim-go .n{padding:9px 12px;border-radius:8px;background:rgba(13,13,15,.28);font-size:10.5px;letter-spacing:.14em}
.sim-go:hover{filter:brightness(1.08)}
.sim-go.hit{animation:gohit .55s var(--ease)}
@keyframes gohit{0%{transform:scale(.97);filter:brightness(1.7)}100%{transform:none;filter:none}}
.sim-pal{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.sim-pal button{display:flex;flex-direction:column;align-items:center;gap:7px;padding:9px 2px 8px;border-radius:10px;border:1px solid transparent;background:none;color:#8E8A82;cursor:pointer;transition:background .3s,border-color .3s,color .3s}
.sim-pal i{width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.12);transition:box-shadow .3s}
.sim-pal span{font-family:var(--f-m);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase}
.sim-pal button:hover{color:var(--paper)}
.sim-pal button.on{border-color:#2E2F35;background:#15161A;color:var(--paper)}
.sim-pal button.on i{box-shadow:0 0 0 2px #0E0F12,0 0 0 3.5px var(--sig),0 0 20px rgba(234,97,16,.45)}
.sim-cams{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.sim-cams button{height:38px;border-radius:999px;border:1px solid #2A2B31;background:#15161A;color:#C9C4BB;font-family:var(--f-m);font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .3s}
.sim-cams button:hover{border-color:#4A4B52}
.sim-cams button.on{border-color:var(--paper);background:var(--paper);color:var(--ink)}
.sim-view.flash::after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:#fff;animation:simfl 1.3s ease-out forwards}
@keyframes simfl{0%{opacity:.5}8%{opacity:0}16%{opacity:.32}24%{opacity:0}32%{opacity:.2}44%{opacity:0}100%{opacity:0}}
@media (max-width:1100px){.sim-out{grid-row:auto}}
@media (max-width:700px){.sim-cues{grid-template-columns:repeat(2,1fr)}.sim-pal span{display:none}.sim-hud b{display:none}.ch .fd{height:88px}}

/* =========================================================
   V3 — Plateau des références (5 lyres virtuelles)
   ========================================================= */
.rf{position:relative;margin-top:48px;border-radius:18px;overflow:hidden;background:radial-gradient(120% 70% at 50% 0%,#17171C 0%,#09090B 60%);color:var(--paper);box-shadow:0 40px 120px -40px rgba(13,13,15,.55);padding:118px clamp(18px,3vw,44px) 0}
.rf-top{position:absolute;left:22px;right:22px;top:18px;z-index:4;display:flex;justify-content:space-between;gap:20px;font-size:10.5px;letter-spacing:.18em;color:#C9C4BB;pointer-events:none}
.rf-top #rf-mode{color:var(--sig)}
.rf-truss{position:absolute;left:4%;right:4%;top:46px;height:30px;z-index:3;pointer-events:none}
.rf-truss s{position:absolute;left:0;right:0;top:0;height:12px;border-top:1.5px solid #3C3E46;border-bottom:1.5px solid #3C3E46;background:repeating-linear-gradient(60deg,transparent 0 9px,#2E3038 9px 10.5px,transparent 10.5px 18px),repeating-linear-gradient(-60deg,transparent 0 9px,#2E3038 9px 10.5px,transparent 10.5px 18px)}
.rf-fx{position:absolute;top:10px;width:30px;height:30px;transform:translateX(-50%);transform-origin:50% 0}
.rf-fx::before{content:'';position:absolute;left:50%;top:0;width:24px;height:8px;margin-left:-12px;border-radius:3px 3px 0 0;background:#24252B}
.rf-fx i{position:absolute;left:50%;top:6px;width:26px;height:22px;margin-left:-13px;border-radius:6px 6px 12px 12px;background:linear-gradient(180deg,#2A2B31,#141519);box-shadow:inset 0 -4px 0 #0A0A0C}
.rf-fx i::after{content:'';position:absolute;left:50%;bottom:-3px;width:14px;height:6px;margin-left:-7px;border-radius:50%;background:#FFF4E6;box-shadow:0 0 14px 4px rgba(255,236,210,.85)}
.rf-cv{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;mix-blend-mode:screen}
.rf-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:30px 26px;align-items:center;padding-bottom:40px}
.rf-l{--l:0;margin:0;height:62px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .5s var(--ease)}
.rf-l img{max-width:100%;max-height:46px;width:auto;height:auto;object-fit:contain;filter:brightness(0) invert(1);opacity:calc(.13 + var(--l) * .87)}
.rf-l.hot img{filter:brightness(0) invert(1) drop-shadow(0 0 10px rgba(255,236,210,.55))}
.rf-l.hot{transform:scale(1.04)}
.rf-grid.filtered .rf-l img{opacity:calc(.05 + var(--l) * .95)}
.rf-grid.filtered .rf-l.sec img{opacity:calc(.42 + var(--l) * .58)}
.rf-l.lk{transform:scale(1.12)}
.rf-l.lk img{filter:brightness(0) invert(1) drop-shadow(0 0 16px rgba(234,97,16,.75));opacity:1}
.rf.pulse .rf-cv{animation:rfp .7s ease-out}
@keyframes rfp{0%{filter:brightness(2.2)}100%{filter:none}}
.rf-card{position:absolute;z-index:5;transform:translate(-50%,0) translateY(10px);min-width:220px;padding:14px 18px 15px;border-radius:12px;background:rgba(14,15,18,.92);border:1px solid rgba(234,97,16,.55);box-shadow:0 20px 50px rgba(0,0,0,.55),0 0 0 4px rgba(234,97,16,.08);text-align:center;opacity:0;pointer-events:none;transition:opacity .35s,transform .45s var(--ease)}
.rf-card.up{transform:translate(-50%,-100%) translateY(-10px)}
.rf-card.on{opacity:1;transform:translate(-50%,0)}
.rf-card.up.on{transform:translate(-50%,-100%)}
.rf-card span{display:block;font-size:9.5px;letter-spacing:.18em;color:var(--sig)}
.rf-card b{display:block;margin-top:7px;font-size:19px;font-weight:800;letter-spacing:-.005em}
.rf-card em{display:block;margin-top:4px;font-family:var(--f-s);font-style:normal;font-size:17px;color:#C9C4BB}
.rf-desk{position:relative;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:22px;margin:0 calc(-1 * clamp(18px,3vw,44px));padding:16px clamp(18px,3vw,44px) 18px;border-top:1px solid #1E1F24;background:rgba(10,10,12,.85)}
.rf-secs{display:flex;flex-wrap:wrap;gap:6px}
.rf-secs button{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;border:1px solid #2A2B31;background:#121317;color:#C9C4BB;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .3s}
.rf-secs button span{font-family:var(--f-m);font-size:9.5px;letter-spacing:.1em;color:#6E6A63}
.rf-secs button:hover{border-color:#4A4B52;color:var(--paper)}
.rf-secs button.on{border-color:var(--sig);background:rgba(234,97,16,.14);color:var(--paper)}
.rf-secs button.on span{color:var(--sig)}
.rf-dmx{display:grid;grid-template-columns:repeat(5,auto);gap:4px 16px;font-size:9.5px;letter-spacing:.08em;color:#6E6A63;white-space:nowrap}
.rf-dmx span{display:flex;flex-direction:column;gap:2px}
.rf-dmx b{color:var(--sig);font-weight:500}
.rf-dmx em{font-style:normal;color:#A39E96;font-variant-numeric:tabular-nums}
@media (max-width:1100px){.rf-desk{flex-direction:column;align-items:flex-start}.rf-dmx{display:none}}
@media (max-width:700px){.rf{padding-top:104px}.rf-top{flex-direction:column;gap:4px}.rf-grid{grid-template-columns:repeat(3,1fr);gap:22px 14px}.rf-l{height:48px}.rf-l img{max-height:34px}.rf-secs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:4px}.rf-secs button{flex:none}}

/* =========================================================
   V3 — Réalisations : Le Cyclo
   ========================================================= */
.cy{position:relative;background:#050507;color:var(--paper)}
.cy-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.cy-gl{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}
.cy.grab .cy-gl{cursor:grabbing}
.cy-vig{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,5,7,.82) 0%,rgba(5,5,7,.35) 30%,rgba(5,5,7,0) 48%),radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(5,5,7,.75) 100%),linear-gradient(0deg,rgba(5,5,7,.92) 0%,rgba(5,5,7,0) 38%),linear-gradient(180deg,rgba(5,5,7,.7) 0%,rgba(5,5,7,0) 22%)}
.cy-top{position:absolute;left:var(--pad);right:var(--pad);top:104px;z-index:3;display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.cy-k{margin:0;font-size:11px;letter-spacing:.18em;color:#D6D1C8}
.cy-k b{color:var(--sig);font-weight:500}
.cy-f{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:62%}
.cy-f button{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 13px;border-radius:999px;border:1px solid rgba(241,238,232,.18);background:rgba(10,10,12,.55);color:#D6D1C8;font-size:12.5px;font-weight:600;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:all .3s}
.cy-f button span{font-family:var(--f-m);font-size:9.5px;color:#8E8A82}
.cy-f button:hover{border-color:rgba(241,238,232,.45);color:var(--paper)}
.cy-f button.on{border-color:var(--sig);background:rgba(234,97,16,.18);color:var(--paper)}
.cy-f button.on span{color:var(--sig)}
.cy-cap{position:absolute;left:var(--pad);bottom:clamp(86px,12vh,130px);z-index:3;max-width:min(640px,44vw);pointer-events:none}
.cy-cap .cy-b{pointer-events:auto}
.cy-n{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;font-size:12px;letter-spacing:.14em;color:#8E8A82}
.cy-n b{font-family:var(--f-d);font-weight:900;font-size:clamp(46px,5vw,76px);letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.2px var(--sig);line-height:.9}
.cy-cat{margin:0 0 12px;font-size:11px;letter-spacing:.16em;color:var(--sig)}
.cy-cat b{margin-left:8px;color:var(--paper);font-weight:500}
.cy-t{position:relative;margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(38px,4.9vw,88px);line-height:.92;letter-spacing:-.01em;padding-top:.12em}
.cy-t .o{display:block;color:transparent;-webkit-text-stroke:1.2px rgba(241,238,232,.55)}
.cy-t .f{position:absolute;left:0;right:0;top:0;padding-top:.12em;color:var(--paper)}
.cy-pl{margin:12px 0 0;font-size:clamp(20px,2vw,28px);color:#D6D1C8}
.cy-tags{margin:10px 0 0;font-size:10.5px;letter-spacing:.12em;line-height:1.7;color:#8E8A82;max-width:520px}
.cy-b{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.cy-rail{position:absolute;left:max(var(--pad),96px);right:var(--pad);bottom:28px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px}
.cy-ticks{display:flex;gap:3px;flex:1;max-width:760px}
.cy-ticks button{flex:1;height:26px;padding:0;border:0;background:none;cursor:pointer;position:relative}
.cy-ticks i{position:absolute;left:0;right:0;top:12px;height:2px;background:rgba(241,238,232,.22);transition:all .35s var(--ease)}
.cy-ticks button:hover i{background:rgba(241,238,232,.6)}
.cy-ticks button.on i{top:10px;height:6px;background:var(--sig);box-shadow:0 0 12px rgba(234,97,16,.7)}
.cy-hint{margin:0;font-size:10.5px;letter-spacing:.16em;color:#A39E96;transition:opacity .6s}
.cy-hint.off{opacity:.35}
.cy-hud{position:absolute;right:var(--pad);bottom:clamp(86px,12vh,130px);z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-size:11px;letter-spacing:.16em;color:#D6D1C8;pointer-events:none}
.cy-hud span:first-child{color:#E5484D}
.cy-hud span:first-child::before{content:'';display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#E5484D;animation:blink 1.2s steps(2,start) infinite;vertical-align:1px}
.cy.diving .cy-cap,.cy.diving .cy-top,.cy.diving .cy-rail,.cy.diving .cy-hud{opacity:0;transition:opacity .4s}
.cy.nogl .cy-st{background:#0B0B0E url(media/h-show.jpg) center/cover}
.cy-idx{padding-top:clamp(90px,10vw,150px)}
.cy-list{margin-top:44px;border-top:1.5px solid var(--ink)}
.cy-list a{position:relative;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid rgba(13,13,15,.14);color:var(--ink);text-decoration:none}
.cy-list .n{font-size:11px;color:var(--mute)}
.cy-list .t{font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(24px,2.6vw,40px);line-height:1;padding-top:.1em;transition:color .3s,transform .5s var(--ease)}
.cy-list .p{font-size:10.5px;letter-spacing:.12em;color:var(--mute);text-align:right}
.cy-list img{position:absolute;right:30%;top:50%;width:220px;aspect-ratio:16/10;object-fit:cover;border-radius:8px;transform:translateY(-50%) scale(.85) rotate(-2deg);opacity:0;pointer-events:none;transition:opacity .35s,transform .5s var(--ease);box-shadow:0 20px 50px -15px rgba(13,13,15,.5);z-index:2}
.cy-list a:hover .t,.cy-list a.on .t{color:var(--sig);transform:translateX(10px)}
.cy-list a:hover img{opacity:1;transform:translateY(-50%) scale(1) rotate(-2deg)}
@media (max-width:900px){.cy-hint{display:none}.cy-vig{background:linear-gradient(0deg,rgba(5,5,7,.94) 0%,rgba(5,5,7,0) 55%),linear-gradient(180deg,rgba(5,5,7,.7) 0%,rgba(5,5,7,0) 25%)}.cy-top{flex-direction:column}.cy-f{max-width:100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.cy-f button{flex:none}.cy-cap{max-width:calc(100vw - 2 * var(--pad));bottom:84px}.cy-t{font-size:clamp(34px,10vw,56px)}.cy-hud{display:none}.cy-list a{grid-template-columns:44px 1fr}.cy-list .p{grid-column:2;text-align:left}.cy-list img{display:none}}

/* =========================================================
   V3 — Visite guidée (mise au point AF)
   ========================================================= */
.gl{position:fixed;z-index:7000;left:22px;bottom:22px;display:flex;align-items:center;height:52px;padding:0;border:1px solid rgba(241,238,232,.24);border-radius:999px;background:rgba(13,13,15,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--paper);cursor:pointer;overflow:hidden;box-shadow:0 14px 40px -12px rgba(0,0,0,.5);transition:border-color .3s,opacity .4s,transform .5s var(--ease);animation:gvin .7s var(--ease)}
.gl:hover,.gl:focus-visible{border-color:rgba(234,97,16,.8)}
.gl-i{position:relative;display:block;flex:none;width:50px;height:50px}
.gl-c{position:absolute;inset:14px;animation:glbr 4.5s ease-in-out infinite}
.gl-c i{position:absolute;width:7px;height:7px;border:0 solid var(--paper)}
.gl-c i:nth-child(1){left:0;top:0;border-left-width:1.5px;border-top-width:1.5px}
.gl-c i:nth-child(2){right:0;top:0;border-right-width:1.5px;border-top-width:1.5px}
.gl-c i:nth-child(3){left:0;bottom:0;border-left-width:1.5px;border-bottom-width:1.5px}
.gl-c i:nth-child(4){right:0;bottom:0;border-right-width:1.5px;border-bottom-width:1.5px}
.gl-i b{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--sig);box-shadow:0 0 10px rgba(234,97,16,.9)}
@keyframes glbr{0%,72%,100%{transform:scale(1)}80%{transform:scale(.7)}88%{transform:scale(.92)}}
.gl-t{display:block;max-width:0;overflow:hidden;white-space:nowrap;opacity:0;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;transition:max-width .45s var(--ease),opacity .3s,padding .45s}
.gl:hover .gl-t,.gl:focus-visible .gl-t{max-width:190px;padding-right:20px;opacity:1}
body.is-loading .gl,body.menu-open .gl,body.guiding .gl{opacity:0;pointer-events:none;transform:translateY(20px)}
.gv{position:fixed;z-index:7001;left:22px;bottom:90px;width:340px;padding:20px 20px 18px;border:1px solid rgba(241,238,232,.18);border-radius:14px;background:rgba(13,13,15,.96);color:var(--paper);box-shadow:0 26px 70px rgba(0,0,0,.5);opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .5s,transform .6s var(--ease)}
.gv.on{opacity:1;pointer-events:auto;transform:none}
.gv::after{content:'';position:absolute;left:26px;bottom:-16px;width:1px;height:15px;background:rgba(234,97,16,.7)}
@keyframes gvin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.gv-k{margin:0;font-size:10.5px;letter-spacing:.16em;color:var(--sig)}
.gv-h{margin:12px 0 0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:30px;line-height:1;padding-top:.08em}
.gv-p{margin:9px 0 0;color:#C9C4BB;font-size:14px;line-height:1.6}
.gv-b{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.gd{position:fixed;inset:0;z-index:8500;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
.gd.on{opacity:1;visibility:visible;transition:opacity .4s}
.gd-box{position:fixed;border-radius:12px;box-shadow:0 0 0 4000px rgba(5,5,7,.58);transition:left .65s var(--ease),top .65s var(--ease),width .65s var(--ease),height .65s var(--ease)}
.gd-c{position:absolute;inset:0}
.gd-box.hunt .gd-c{animation:hunt .7s ease-in-out}
@keyframes hunt{0%{transform:scale(1.16);opacity:.35}45%{transform:scale(.95);opacity:1}75%{transform:scale(1.03)}100%{transform:scale(1)}}
.gd-c i{position:absolute;width:26px;height:26px;border:0 solid var(--paper)}
.gd-c i:nth-child(1){left:-6px;top:-6px;border-left-width:2px;border-top-width:2px}
.gd-c i:nth-child(2){right:-6px;top:-6px;border-right-width:2px;border-top-width:2px}
.gd-c i:nth-child(3){left:-6px;bottom:-6px;border-left-width:2px;border-bottom-width:2px}
.gd-c i:nth-child(4){right:-6px;bottom:-6px;border-right-width:2px;border-bottom-width:2px}
.gd-box.lk .gd-c i{animation:lock 1s ease-out}
@keyframes lock{0%,55%{border-color:var(--sig)}100%{border-color:var(--paper)}}
.gd-af{position:absolute;left:-6px;top:-30px;display:flex;align-items:center;gap:8px;color:var(--paper);font-size:10px;letter-spacing:.16em;white-space:nowrap}
.gd-af em{font-style:normal}
.gd-af i{display:block;width:8px;height:8px;border:1.5px solid currentColor}
.gd-box.lk .gd-af i{border-color:var(--sig);background:var(--sig)}
.gd-box.none .gd-c,.gd-box.none .gd-af{opacity:0}
.gd-line{position:fixed;background:rgba(234,97,16,.75)}
.gd-card{position:fixed;width:370px;padding:18px 20px 16px;border:1px solid rgba(241,238,232,.2);border-radius:14px;background:#0F1013;color:var(--paper);box-shadow:0 30px 80px rgba(0,0,0,.6);pointer-events:auto}
.gd-card.mv{transition:left .65s var(--ease),top .65s var(--ease),bottom .65s var(--ease),right .65s var(--ease)}
.gd-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;font-size:10.5px;letter-spacing:.16em;color:#A39E96}
.gd-hd b{color:var(--paper);font-weight:500}
.gd-q{min-height:40px;margin:-10px -8px -10px 0;padding:0 8px;border:0;background:none;color:#A39E96;font-family:var(--f-m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.gd-q:hover{color:var(--paper)}
.gd-ti{margin:10px 0 0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:30px;line-height:.98;padding-top:.08em}
.gd-card.end .gd-ti{font-size:40px}
.gd-tx{margin:8px 0 0;color:#C9C4BB;font-size:14.5px;line-height:1.6}
.gd-do{margin-top:14px;padding:12px 14px;border:1px solid rgba(241,238,232,.12);border-radius:10px;background:rgba(241,238,232,.03);transition:border-color .3s}
.gd-do.ok{border-color:rgba(234,97,16,.6)}
.gd-do-k{margin:0;font-size:10px;letter-spacing:.16em;color:var(--sig)}
.gd-do-t{margin:6px 0 0;font-size:14px;line-height:1.45;font-weight:600}
.gd-bar{position:relative;display:block;height:2px;margin-top:10px;overflow:hidden;background:rgba(241,238,232,.14)}
.gd-bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--paper);transition:width .3s}
.gd-do.ok .gd-bar i{background:var(--sig)}
.gd-ft{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.gd-end{display:none;justify-content:flex-start;flex-wrap:wrap}
.gd-card.end .gd-ft{display:none}
.gd-card.end .gd-end{display:flex}
.gd-card.end{width:420px}
.gd-dots{display:flex;gap:6px}
.gd-dots i{display:block;width:6px;height:6px;border-radius:50%;background:rgba(241,238,232,.2);transition:background .3s}
.gd-dots i.past{background:rgba(241,238,232,.7)}
.gd-dots i.on{background:var(--sig)}
.gd-btns{display:flex;gap:8px}
.gd-b{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:1px solid rgba(241,238,232,.3);border-radius:999px;background:none;color:var(--paper);font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:all .25s}
.gd-b:hover{border-color:var(--paper)}
.gd-b.pri{border-color:var(--sig);background:var(--sig);color:#fff}
.gd-b.pri:hover{background:var(--sig-d);border-color:var(--sig-d)}
@media (prefers-reduced-motion:reduce){.gd-box,.gd-card.mv{transition:none}.gd-box.hunt .gd-c,.gd-box.lk .gd-c i,.gl-c{animation:none}}
@media (max-width:760px){.gl{left:14px;bottom:14px;height:48px}.gl-i{width:46px;height:46px}.gl-c{inset:13px}.gv{left:12px;right:12px;bottom:74px;width:auto}.gd-card,.gd-card.end{width:auto}.gd-ti{font-size:25px}.gd-card.end .gd-ti{font-size:32px}.gd-tx{font-size:13.5px}}
/* V3 — lisibilité métiers sur photos nettes */
.met2-txt::before{content:'';position:absolute;left:-90px;right:-70px;top:-10px;bottom:-70px;z-index:-1;background:radial-gradient(closest-side,rgba(5,5,7,.78),rgba(5,5,7,.45) 60%,rgba(5,5,7,0));pointer-events:none}
.met2-txt .d,.met2-txt .k,.met2-txt .it{text-shadow:0 1px 14px rgba(0,0,0,.55)}
.ch em{display:block}
.ch .pv{display:block;margin-top:-4px;font-family:var(--f-m);font-size:10px;letter-spacing:.12em;color:#6E6A63}
.ch.on .pv{color:var(--sig)}
.rf-l img{opacity:calc(.1 + var(--l) * .9)}

/* =========================================================
   V3.1 — Méthode : pile typographique (DA « Imaginer. Créer. Produire. »)
   ========================================================= */
.show-veil{background:linear-gradient(90deg,rgba(5,5,7,.86) 0%,rgba(5,5,7,.62) 52%,rgba(5,5,7,.74) 100%)}
.mth{position:absolute;inset:0;z-index:3;display:flex;align-items:center;opacity:0;pointer-events:none}
.mth.on{pointer-events:auto}
.mth-in{width:100%;padding:calc(var(--pad) * .6 + 40px) var(--pad) 0}
.mth-k{display:flex;align-items:center;gap:14px;margin:0 0 3.4vh;font-size:11px;letter-spacing:.22em;color:#E4E0D8}
.mth-c{color:#8E8A82}
.mth-c b{color:var(--sig);font-weight:500}
.mth-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,380px);gap:5vw;align-items:end}
.mth-list{position:relative;margin:0;padding:0 0 0 64px;list-style:none}
.mth-ph{position:absolute;left:18px;top:.6vh;bottom:.6vh;width:1px;background:rgba(241,238,232,.16)}
.mth-ph i{position:absolute;left:-4px;top:0;width:9px;height:9px;border-radius:50%;background:var(--sig);box-shadow:0 0 16px rgba(234,97,16,.9)}
.mth-list li{position:relative}
.mth-w{position:relative;display:block;margin:0;padding:.1em 0 0;border:0;background:none;color:inherit;cursor:pointer;text-align:left;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:min(8.4vw,14.6vh);line-height:.9;letter-spacing:-.015em}
.mth-w em{position:absolute;left:-64px;top:calc(50% + .05em);transform:translateY(-50%);font-style:normal;font-size:10px;letter-spacing:.16em;color:#6E6A63;transition:color .4s}
.mth-w .o{display:block;color:transparent;-webkit-text-stroke:1.5px rgba(241,238,232,.42);transition:-webkit-text-stroke-color .4s}
.mth-w .f,.mth-w .l{position:absolute;left:0;top:0;padding-top:.1em;white-space:nowrap;pointer-events:none}
.mth-w .f{color:var(--paper);clip-path:inset(-.2em calc((1 - var(--p)) * 100%) -.1em 0);transition:color .5s}
.mth-list .is-cur .f{color:var(--sig)}
.mth-list .is-cur em{color:var(--sig)}
.mth-list .is-done em{color:#C9C4BB}
.mth-w .l{color:#FFF6EC;opacity:0;-webkit-mask-image:radial-gradient(circle 170px at var(--mx,-999px) var(--my,-999px),#000 0%,rgba(0,0,0,.35) 50%,transparent 100%);mask-image:radial-gradient(circle 170px at var(--mx,-999px) var(--my,-999px),#000 0%,rgba(0,0,0,.35) 50%,transparent 100%);transition:opacity .45s;text-shadow:0 0 40px rgba(255,214,170,.35)}
.mth-list.lit .mth-w .l{opacity:.95}
.mth-w.hov .o{-webkit-text-stroke-color:rgba(241,238,232,.85)}
.mth-side{padding-bottom:.8vh}
.mth-d{position:relative;min-height:200px}
.mth-it{position:absolute;left:0;right:0;bottom:0;opacity:0;transform:translateY(16px);transition:opacity .45s,transform .7s var(--ease);pointer-events:none}
.mth-it.on{opacity:1;transform:none}
.mth-it>p.mono{margin:0 0 14px;font-size:11px;letter-spacing:.18em;color:var(--sig)}
.mth-it .t{margin:0 0 18px;font-size:18px;line-height:1.55;color:#EDE9E2}
.mth-it ul{display:flex;flex-direction:column;gap:8px;margin:0;padding:14px 0 0;border-top:1px solid rgba(241,238,232,.14);list-style:none;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#A39E96}
.mth-it ul li::before{content:'';display:inline-block;width:14px;height:1px;margin:0 12px 3px 0;background:var(--sig);vertical-align:middle}
.mth-bar{height:2px;margin-top:24px;background:rgba(241,238,232,.14)}
.mth-bar i{display:block;height:100%;background:var(--sig);transform-origin:left;transform:scaleX(0)}
@media (max-width:900px){.mth{align-items:flex-start}.mth-in{padding-top:110px}.mth-grid{grid-template-columns:1fr;gap:26px}.mth-list{padding-left:0}.mth-ph,.mth-w em{display:none}.mth-w{font-size:min(15.5vw,9.6vh)}.mth-d{min-height:170px}.mth-it .t{font-size:15px}}

/* =========================================================
   V3.1 — Chiffres : index éditorial, photo dans la typo
   ========================================================= */
.kxs{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(64px,7vw,110px);border-top:1.5px solid var(--ink)}
.kx{position:relative;padding:22px clamp(14px,1.8vw,30px) 34px;cursor:default;transition:opacity .5s var(--ease)}
.kx:first-child{padding-left:0}
.kx-b{position:absolute;left:0;top:0;bottom:0;width:1px;background:rgba(13,13,15,.16);transform-origin:top}
.kx:first-child .kx-b{display:none}
.kx-i{margin:0 0 clamp(26px,3vw,46px);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.kx-i b{color:var(--sig);font-weight:500}
.kx-n{position:relative;display:inline-block;font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:clamp(96px,11.5vw,210px);line-height:.8;letter-spacing:-.02em;padding-top:.06em;color:var(--ink);background:var(--img) var(--bx,50%) var(--by,50%)/240% auto no-repeat;-webkit-background-clip:text;background-clip:text;font-variant-numeric:tabular-nums;transition:color .7s var(--ease),background-size 1.6s var(--ease),background-position .9s var(--ease)}
.kx-n sup{position:absolute;top:.04em;left:100%;margin-left:.04em;font-size:.42em;line-height:1;color:var(--sig);-webkit-text-fill-color:var(--sig)}
.kx-l{margin:22px 0 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kx-c{margin:8px 0 0;font-size:clamp(19px,1.5vw,24px);color:var(--mute);opacity:0;transform:translateY(10px);transition:opacity .5s,transform .7s var(--ease)}
.kx::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--sig);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.kx:first-child::after{left:0}
@media (hover:hover){
.kx:hover .kx-n{color:transparent;background-size:170% auto}
.kx:hover .kx-c{opacity:1;transform:none}
.kx:hover::after{transform:scaleX(1)}
.kxs:hover .kx:not(:hover){opacity:.32}
}
.kx.act .kx-n{color:transparent;background-size:170% auto}
.kx.act .kx-c{opacity:1;transform:none}
.kx.act::after{transform:scaleX(1)}
@media (max-width:900px){.kxs{grid-template-columns:1fr 1fr}.kx:nth-child(3){padding-left:0}.kx:nth-child(3) .kx-b{display:none}.kx:nth-child(n+3){border-top:1px solid rgba(13,13,15,.16)}}
@media (max-width:560px){.kxs{grid-template-columns:1fr}.kx{padding-left:0}.kx .kx-b{display:none}.kx+.kx{border-top:1px solid rgba(13,13,15,.16)}.kx-n{font-size:clamp(110px,34vw,170px)}.kx-c{opacity:1;transform:none}}
/* V3.1 — plateau des références en 3D */
.rf.gl3{padding-top:62px}
.rf.gl3 .rf-truss,.rf.gl3 .rf-cv,.rf.gl3 .rf-grid{display:none}
.rf-gl{display:block;width:calc(100% + 2 * clamp(18px,3vw,44px));margin:0 calc(-1 * clamp(18px,3vw,44px));height:560px}
.rf.gl3 .rf-desk{margin-top:0}
.rf.gl3.pulse .rf-gl{animation:rfp .7s ease-out}
/* V3.2 — icônes vectorielles (fini les flèches emoji) */
.arr{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;margin-left:.45em;vertical-align:-.18em;border-radius:50%}
.ico-ar{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.ico-pl{width:.8em;height:.8em;fill:currentColor}
.btn .arr{width:26px;height:26px;margin:0 -8px 0 12px;border-radius:50%;border:1px solid currentColor;transition:transform .45s var(--ease),background .3s,color .3s}
.btn .arr .ico-ar{width:13px;height:13px}
.btn .arr .ico-pl{width:11px;height:11px;margin-left:2px}
.btn:hover .arr{transform:rotate(45deg)}
.btn-sig .arr{border-color:rgba(13,13,15,.45)}
.btn-sig:hover .arr{background:var(--sig);color:var(--ink);border-color:var(--sig)}
.btn:hover .arr .ico-pl{transform:none}
.btn:hover .arr:has(.ico-pl){transform:scale(1.08)}

/* =========================================================
   V3.2 — Références : index par secteur + bandeau
   ========================================================= */
.tx{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,90px);margin-top:clamp(50px,6vw,90px);padding-top:28px;border-top:1.5px solid var(--ink)}
.tx-k{margin:0 0 26px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.tx-secs{list-style:none;margin:0;padding:0;counter-reset:tx}
.tx-secs li{counter-increment:tx}
.tx-secs button{position:relative;display:flex;align-items:flex-start;gap:12px;width:100%;margin:0;padding:.16em 0 .2em;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(30px,3.4vw,58px);line-height:.92;letter-spacing:-.01em}
.tx-secs .w{color:transparent;-webkit-text-stroke:1.2px rgba(13,13,15,.55);transition:color .45s var(--ease),-webkit-text-stroke-color .45s}
.tx-secs sup{margin-top:.25em;font-size:10px;font-weight:500;letter-spacing:.12em;color:var(--mute);transition:color .3s}
.tx-secs button:hover .w{-webkit-text-stroke-color:var(--ink)}
.tx-secs button.on .w{color:var(--ink);-webkit-text-stroke-color:var(--ink)}
.tx-secs button.on sup{color:var(--sig)}
.tx-bar{position:absolute;left:0;right:0;bottom:0;height:1.5px;background:transparent;pointer-events:none}
.tx-bar b{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
.tx-r{display:flex;flex-direction:column}
.tx-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(13,13,15,.14);border-left:1px solid rgba(13,13,15,.14)}
.tx-c{position:relative;margin:0;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;padding:14% 12%;border-right:1px solid rgba(13,13,15,.14);border-bottom:1px solid rgba(13,13,15,.14);transition:background .4s}
.tx-c img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:brightness(0);opacity:.86;transition:opacity .4s,transform .6s var(--ease)}
.tx-c:not(.e):hover{background:#fff}
.tx-c:not(.e):hover img{opacity:1;transform:scale(1.06)}
@media (hover:hover){.tx-grid:hover .tx-c:not(:hover) img{opacity:.28}}
.tx-cap{display:flex;justify-content:space-between;gap:20px;margin:16px 0 0;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.tx-cap #tx-n{color:var(--mute)}
.tx-band{margin-top:clamp(70px,8vw,120px);display:flex;flex-direction:column;gap:30px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.tx-row{overflow:hidden}
.tx-track{display:flex;align-items:center;width:max-content;animation:txband 80s linear infinite}
.tx-row.rev .tx-track{animation-direction:reverse;animation-duration:95s}
.tx-row:hover .tx-track{animation-play-state:paused}
.tx-track img{height:34px;max-width:140px;width:auto;margin-right:76px;object-fit:contain;filter:brightness(0);opacity:.38;transition:opacity .3s}
.tx-track img:hover{opacity:.95}
@keyframes txband{to{transform:translateX(-50%)}}
@media (max-width:900px){.tx{grid-template-columns:1fr;gap:26px}.tx-secs{display:flex;gap:18px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.tx-secs::-webkit-scrollbar{display:none}.tx-secs li{flex:none}.tx-secs button{font-size:30px;white-space:nowrap}.tx-grid{grid-template-columns:repeat(3,1fr)}.tx-track img{height:26px;margin-right:48px}}

/* =========================================================
   V3.2 — À PROPOS
   ========================================================= */
/* hero : poursuite */
.ah{position:relative;height:230vh;background:#050507;color:var(--paper)}
.ah-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;--o:0}
.ah-img{position:absolute;inset:0;background-size:cover;background-position:58% 50%}
.ah-dim{filter:brightness(.16) saturate(.35) contrast(1.05);transform:scale(1.04)}
.ah-lit{-webkit-mask-image:radial-gradient(circle var(--r,210px) at var(--x,60%) var(--y,45%),#000 0%,#000 62%,rgba(0,0,0,.35) 82%,transparent 100%);mask-image:radial-gradient(circle var(--r,210px) at var(--x,60%) var(--y,45%),#000 0%,#000 62%,rgba(0,0,0,.35) 82%,transparent 100%);will-change:mask-image}
.ah-ring{position:absolute;left:0;top:0;z-index:2;border-radius:50%;border:1px solid rgba(255,236,214,.38);box-shadow:0 0 60px rgba(255,214,170,.12),inset 0 0 60px rgba(255,214,170,.1);pointer-events:none}
.ah-st::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(0deg,rgba(5,5,7,.88) 0%,rgba(5,5,7,0) 48%),linear-gradient(90deg,rgba(5,5,7,.55) 0%,rgba(5,5,7,0) 50%);opacity:calc(1 - var(--o) * .4)}
.ah-in{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(70px,11vh,120px);z-index:4;transform:translateY(calc(var(--o) * -60px));opacity:calc(1 - var(--o) * 1.1)}
.ah-k{margin:0 0 26px;font-size:11px;letter-spacing:.2em;color:#E4E0D8}
.ah-k b{color:var(--sig);font-weight:500}
.ah-t{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(58px,9.4vw,168px);line-height:.88;letter-spacing:-.015em}
.ah-t>span{display:block;padding-top:.08em}
.ah-t .s{color:var(--paper)}
.ah-t .o{color:transparent;-webkit-text-stroke:1.5px rgba(241,238,232,.8)}
.ah-t .g{color:var(--sig)}
.ah-sub{margin:22px 0 0;font-size:clamp(20px,2vw,30px);color:#D6D1C8;max-width:640px}
.ah-hud{position:absolute;left:var(--pad);right:var(--pad);top:104px;z-index:4;display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.18em;color:#A39E96;pointer-events:none}
.ah-hud b{color:var(--paper);font-weight:500;font-variant-numeric:tabular-nums}
.ah-hint{color:var(--sig)}
/* manifeste */
.ab-mani .fill{font-size:clamp(40px,5.6vw,98px)}
.ab-facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(60px,6vw,100px);border-top:1.5px solid var(--ink)}
.ab-facts div{padding:22px 24px 0 0;display:flex;flex-direction:column;gap:12px}
.ab-facts div+div{padding-left:24px;border-left:1px solid rgba(13,13,15,.14)}
.ab-facts b{font-weight:900;font-stretch:62%;font-size:clamp(70px,7vw,120px);line-height:.82}
.ab-facts sup{font-size:.45em;color:var(--sig);vertical-align:.7em}
.ab-facts .mono{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.ab-trades{margin:44px 0 0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
/* journée J */
.jj{position:relative;height:520vh;background:#08080A;color:var(--paper)}
.jj-st{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;padding:96px var(--pad) 26px;box-sizing:border-box}
.jj-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.jj-head .label{margin:0;color:#D6D1C8}
.jj-hint{margin:0;font-size:10.5px;letter-spacing:.16em;color:var(--sig)}
.jj-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,4vw,70px);align-items:center;padding:3vh 0}
.jj-clock{margin:0;display:flex;align-items:baseline;font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:clamp(92px,12vw,210px);line-height:.8;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.jj-clock i{font-style:normal;color:var(--sig);margin:0 .02em;animation:blink 1s steps(2,start) infinite}
.jj-txt{position:relative;min-height:230px;margin-top:4vh}
.jj-it{position:absolute;inset:0 0 auto;opacity:0;transform:translateY(18px);transition:opacity .5s,transform .8s var(--ease);pointer-events:none}
.jj-it.on{opacity:1;transform:none}
.jj-ph{margin:0 0 14px;font-size:11px;letter-spacing:.18em;color:#A39E96}
.jj-ph b{color:var(--sig);font-weight:500}
.jj-it h3{margin:0;font-family:var(--f-s);font-style:italic;font-weight:400;font-size:clamp(30px,3vw,48px);line-height:1.05;letter-spacing:-.01em}
.jj-it .d{margin:14px 0 0;max-width:480px;font-size:16.5px;line-height:1.6;color:#C9C4BB}
.jj-it .who{margin:16px 0 0;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#E4E0D8}
.jj-frame{position:relative;aspect-ratio:16/10;max-height:58vh;margin-left:auto;width:100%;overflow:hidden;border-radius:6px;background:#000}
.jj-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .9s var(--ease),transform 2.4s var(--ease)}
.jj-frame img.on{opacity:1;transform:scale(1)}
.jj-frame .cm{z-index:2;width:22px;height:22px}
.jj-frame .cm.tl{top:14px;left:14px}.jj-frame .cm.tr{top:14px;right:14px}.jj-frame .cm.bl{bottom:14px;left:14px}.jj-frame .cm.br{bottom:14px;right:14px}
.jj-rec,.jj-tc{position:absolute;z-index:2;top:20px;font-size:10.5px;letter-spacing:.16em;color:#F1EEE8;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.jj-rec{left:46px}.jj-tc{right:46px;font-variant-numeric:tabular-nums}
.jj-tl{position:relative;height:74px;margin-top:auto;cursor:ew-resize;touch-action:pan-y;user-select:none}
.jj-ruler{position:absolute;left:0;right:0;top:30px;height:1px;background:rgba(241,238,232,.2)}
.jj-ruler span{position:absolute;top:0}
.jj-ruler i{position:absolute;left:0;top:-4px;width:1px;height:9px;background:rgba(241,238,232,.35)}
.jj-ruler em{position:absolute;left:0;top:14px;transform:translateX(-50%);font-style:normal;font-family:var(--f-m);font-size:9.5px;letter-spacing:.1em;color:#6E6A63}
.jj-fill{position:absolute;left:0;top:29px;height:3px;width:0;background:var(--sig)}
.jj-ph-m button{position:absolute;top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:0;background:none;color:#8E8A82;cursor:pointer}
.jj-ph-m i{order:2;width:9px;height:9px;margin-top:20px;border-radius:50%;background:#08080A;border:1.5px solid rgba(241,238,232,.45);transition:all .3s}
.jj-ph-m span{order:1;position:absolute;bottom:calc(100% - 18px);white-space:nowrap;font-family:var(--f-m);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;transition:color .3s}
.jj-ph-m button.on i{background:var(--sig);border-color:var(--sig)}
.jj-ph-m button.on span{color:var(--paper)}
.jj-head-p{position:absolute;top:18px;width:2px;height:26px;margin-left:-1px;background:var(--paper);box-shadow:0 0 12px rgba(241,238,232,.5);pointer-events:none}
.jj-head-p span{position:absolute;left:50%;top:32px;transform:translateX(-50%);padding:4px 8px;border-radius:999px;background:var(--paper);color:var(--ink);font-size:10px;letter-spacing:.08em;white-space:nowrap}
/* approche */
.ox{position:relative;height:260vh;background:var(--paper)}
.ox-st{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center}
.ox-in{width:100%;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,80px);align-items:center}
.ox-p{margin:28px 0 0;max-width:460px;font-size:18px;line-height:1.6;color:#3A3732}
.ox-svg{display:block;width:100%;height:auto;overflow:visible}
.ox-c{fill:none;stroke:var(--ink);stroke-width:1.3}
.ox-lens{fill:var(--sig);opacity:.15}
.ox-one{fill:var(--sig)}
.ox-t{font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:44px;text-transform:uppercase;text-anchor:middle;fill:var(--ink);letter-spacing:-.01em}
.ox-t2{fill:var(--ink);font-size:54px;opacity:0}
.ox-cap{margin:18px 0 0;text-align:center;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
/* charte */
.cv .wrap{position:relative}
.cv-list{list-style:none;margin:clamp(40px,5vw,70px) 0 0;padding:0;border-top:1.5px solid var(--ink)}
.cv-list li{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr) minmax(0,.62fr);align-items:center;gap:20px;padding:12px 0 10px;border-bottom:1px solid rgba(13,13,15,.14);cursor:default}
.cv-list .n{font-size:11px;color:var(--mute);letter-spacing:.14em}
.cv-list .w{position:relative;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(58px,8.6vw,150px);line-height:.9;letter-spacing:-.015em;padding-top:.08em}
.cv-list .w .o{display:block;color:transparent;-webkit-text-stroke:1.3px rgba(13,13,15,.5)}
.cv-list .w .f{position:absolute;left:0;top:0;padding-top:.08em;color:var(--ink);clip-path:inset(0 100% 0 0);transition:clip-path .9s var(--ease)}
.cv-list li.on .w .f{clip-path:inset(-.2em 0 -.1em 0)}
.cv-list li.on .n{color:var(--sig)}
.cv-list .tx{display:flex;flex-direction:column;gap:10px;opacity:.0;transform:translateX(16px);transition:opacity .5s,transform .7s var(--ease)}
.cv-list li.on .tx{opacity:1;transform:none}
.cv-list .tx b{font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--sig)}
.cv-list .tx span{font-size:15.5px;line-height:1.55;color:#3A3732}
.cv-fig{position:absolute;left:0;top:0;z-index:5;width:260px;height:340px;margin:0;border-radius:6px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .35s;box-shadow:0 30px 70px -20px rgba(13,13,15,.5)}
.cv-fig.on{opacity:1}
.cv-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);opacity:0;transform:scale(1.08);transition:opacity .45s,transform 1.2s var(--ease)}
.cv-fig img.on{opacity:1;transform:none}
/* présence */
.pz{position:relative;height:340vh;background:#08080A;color:var(--paper)}
.pz-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.pz-track{display:flex;width:300vw;height:100%;will-change:transform}
.pz-p{width:100vw;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:4vw;align-items:center;padding:100px var(--pad) 60px;box-sizing:border-box}
.pz-k{margin:0 0 18px;font-size:11px;letter-spacing:.18em;color:#A39E96}
.pz-k b{color:var(--sig);font-weight:500}
.pz-t{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(80px,13vw,240px);line-height:.82;letter-spacing:-.02em;padding-top:.08em}
.pz-t span{color:var(--sig)}
.pz-r{margin:18px 0 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#E4E0D8}
.pz-d{margin:16px 0 0;max-width:460px;font-size:17px;line-height:1.6;color:#C9C4BB}
.pz-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:30px;padding-top:16px;border-top:1px solid rgba(241,238,232,.16);font-size:10.5px;letter-spacing:.14em;color:#A39E96}
.pz-clock{color:var(--sig);font-variant-numeric:tabular-nums}
.pz-im{position:relative;height:min(74vh,760px);overflow:hidden;border-radius:6px}
.pz-im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.18);will-change:transform}
.pz-im .cm{z-index:2;width:22px;height:22px}
.pz-im .cm.tl{top:14px;left:14px}.pz-im .cm.br{bottom:14px;right:14px}
.pz-prog{position:absolute;left:var(--pad);right:var(--pad);bottom:26px;height:1px;background:rgba(241,238,232,.16)}
.pz-prog i{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
.pz.stack{height:auto}
.pz.stack .pz-st{position:relative;height:auto}
.pz.stack .pz-track{width:100%;flex-direction:column}
.pz.stack .pz-p{width:100%;height:auto;grid-template-columns:1fr;padding:80px var(--pad) 20px}
.pz.stack .pz-im{height:60vh}
.pz.stack .pz-im img{transform:none}
.pz.stack .pz-prog{display:none}
@media (max-width:900px){
.ah{height:190vh}.ah-hud{flex-direction:column;gap:6px;top:96px}
.ab-facts{grid-template-columns:1fr}.ab-facts div+div{padding-left:0;border-left:0;border-top:1px solid rgba(13,13,15,.14);padding-top:22px;margin-top:22px}
.jj{height:560vh}.jj-st{padding-top:88px}.jj-main{grid-template-columns:1fr;gap:14px;align-content:start}.jj-r{order:-1}.jj-frame{max-height:30vh}.jj-clock{font-size:clamp(74px,22vw,110px)}.jj-txt{min-height:210px;margin-top:2vh}.jj-it .d{font-size:14.5px}.jj-ph-m span{display:none}.jj-hint{display:none}
.ox{height:auto}.ox-st{position:relative;height:auto;padding:90px 0}.ox-in{grid-template-columns:1fr}
.cv-list li{grid-template-columns:40px 1fr}.cv-list .tx{grid-column:2;opacity:1;transform:none}.cv-list .w .f{clip-path:inset(-.2em 0 -.1em 0)}
}
@media (max-width:900px){.jj-ruler em{display:none}.ox-t{font-size:56px}.ox-t2{font-size:64px}}
.btn .arr{display:inline-flex;align-items:center;justify-content:center;flex:none}
/* V3.3 — chiffres : vidéo dans la typo (fusion « lighten ») */
.kx-n{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;color:var(--ink)!important}
.kx-v{position:relative;display:inline-block;isolation:isolate;vertical-align:top}
.kx-v video,.kx-ink{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.kx-v video{filter:brightness(.92) contrast(1.06) saturate(1.1);transform:scale(1.15);transition:transform 1.6s var(--ease)}
.kx-ink{background:var(--ink);transition:opacity .7s var(--ease)}
.kx-mask{position:relative;display:block;background:var(--paper);color:#000;mix-blend-mode:lighten;padding-top:.06em;margin-top:-.06em}
.kx-n sup{-webkit-text-fill-color:var(--sig)}
@media (hover:hover){.kx:hover .kx-ink{opacity:0}.kx:hover .kx-v video{transform:scale(1)}}
.kx.act .kx-ink{opacity:0}.kx.act .kx-v video{transform:scale(1)}
/* V3.3 — index des références : tous les logos visibles, secteur en surbrillance */
.tx{display:block}
.tx-top{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:22px}
.tx-top .tx-k{margin:0}
.tx-top .tx-cap{margin:0;display:flex;gap:18px}
.tx-top .tx-cap #tx-n{color:var(--sig)}
.tx-secs{display:flex;flex-wrap:wrap;gap:6px 34px;margin-bottom:34px}
.tx-secs button{width:auto;font-size:clamp(28px,3vw,50px)}
.tx-grid{grid-template-columns:repeat(9,1fr)}
.tx-c{aspect-ratio:3/2;padding:16% 13%}
.tx-c img{max-height:100%;height:auto;transition:opacity .55s var(--ease),filter .55s,transform .6s var(--ease)}
.tx-grid.f .tx-c img{opacity:.12}
.tx-grid.f .tx-c.hl img{opacity:1}
.tx-grid.f .tx-c.hl{background:#fff}
@media (hover:hover){.tx-grid:hover .tx-c:not(:hover) img{opacity:.22}.tx-grid .tx-c:not(.e):hover img{opacity:1}}
@media (max-width:1100px){.tx-grid{grid-template-columns:repeat(6,1fr)}}
@media (max-width:900px){.tx-top{flex-direction:column;gap:8px}.tx-secs{flex-wrap:nowrap;gap:22px;margin-bottom:22px}.tx-secs button{font-size:28px}}
@media (max-width:640px){.tx-grid{grid-template-columns:repeat(3,1fr)}.tx-c{padding:18% 14%}}
.kx-v{overflow:hidden}
.kx-mask{margin-top:0;padding-top:.08em}
.kx-n{padding-top:0}
.tx-secs{gap:4px 28px}
.tx-secs button{font-size:clamp(22px,2.25vw,38px)}

/* =========================================================
   V3.3 — LOCATION : le catalogue qui dessine votre plateau
   ========================================================= */
.lx-hero{padding:clamp(130px,14vw,190px) 0 clamp(40px,4vw,60px)}
.lx-t{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(62px,10vw,170px);line-height:.88;letter-spacing:-.015em}
.lx-t>span{display:block;padding-top:.06em}
.lx-t .o{color:transparent;-webkit-text-stroke:1.6px var(--ink)}
.lx-t .g{color:var(--sig)}
.lx-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-top:34px}
.lx-row .lead{max-width:560px;margin:0}
.lx-dates{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 8px;border:1.5px solid var(--ink);border-radius:999px;background:#fff}
.lx-dates label{display:flex;align-items:center;gap:8px;padding:0 10px}
.lx-dates label+label{border-left:1px solid var(--line)}
.lx-dates .mono{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.lx-dates input{border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:var(--ink);min-height:40px}
.lx-days{padding:12px 16px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.lx{padding:0 0 clamp(90px,9vw,140px)}
.lx-grid{display:grid;grid-template-columns:minmax(0,1fr) 470px;gap:clamp(26px,3vw,48px);align-items:start}
.lx-k{margin:0 0 14px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.lx-pk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:34px}
.pk{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 16px 16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;text-align:left;cursor:pointer;transition:border-color .3s,transform .5s var(--ease),box-shadow .5s}
.pk:hover{border-color:var(--ink);transform:translateY(-3px);box-shadow:0 20px 40px -20px rgba(13,13,15,.3)}
.pk.on{border-color:var(--sig)}
.pk-n{font-size:10px;color:var(--sig)}
.pk b{font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:28px;line-height:.9}
.pk-d{font-size:12.5px;line-height:1.45;color:var(--mute)}
.pk-ims{display:flex;margin-top:4px}
.pk-ims i{width:34px;height:34px;margin-right:-8px;border-radius:50%;border:1.5px solid #fff;background:#fff;box-shadow:0 0 0 1px var(--line);overflow:hidden;display:flex;align-items:center;justify-content:center}
.pk-ims img{width:80%;height:80%;object-fit:contain}
.pk-st{margin-top:auto;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.pk.on .pk-st{color:var(--sig-d)}
.lx-bar{position:sticky;top:76px;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 0;margin-bottom:10px;background:rgba(241,238,232,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1.5px solid var(--ink);border-bottom:1px solid var(--line)}
.lx-search{position:relative;flex:1 1 220px;max-width:320px}
.lx-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%)}
.lx-search input{width:100%;min-height:42px;padding:0 14px 0 40px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:14px}
.lx-nav{display:flex;flex-wrap:wrap;gap:4px 16px}
.lx-nav a{position:relative;padding:6px 0;font-family:var(--f-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);text-decoration:none;transition:color .3s}
.lx-nav a::after{content:'';position:absolute;left:0;right:0;bottom:2px;height:1.5px;background:var(--sig);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.lx-nav a:hover,.lx-nav a.on{color:var(--ink)}
.lx-nav a.on::after{transform:scaleX(1)}
.lx-sec{padding-top:40px}
.lx-sec header{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px}
.lx-sec header .mono{margin-top:.9em;font-size:10.5px;color:var(--mute)}
.lx-sec h2{margin:0;font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(44px,4.6vw,76px);line-height:.88;padding-top:.06em;letter-spacing:-.01em}
.lx-sec h2 i{font-style:normal;color:var(--sig)}
.lx-sec sup{margin-top:.6em;font-size:10px;color:var(--sig)}
.lx-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.lt{position:relative;display:flex;flex-direction:column;border-radius:12px;background:#fff;border:1.5px solid transparent;overflow:hidden;transition:border-color .35s,box-shadow .5s,transform .5s var(--ease)}
.lt:hover,.lt.hlp{box-shadow:0 26px 50px -24px rgba(13,13,15,.32);transform:translateY(-3px)}
.lt.in{border-color:var(--sig)}
.lt-im{position:relative;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:12%;background:#fff}
.lt-im img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .8s var(--ease)}
.lt-im.cover{padding:0}.lt-im.cover img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.lt:hover .lt-im img{transform:scale(1.06)}
.lt-q{position:absolute;right:12px;top:12px;padding:5px 9px;border-radius:999px;background:var(--sig);color:#fff;font-size:10.5px;letter-spacing:.06em;opacity:0;transform:scale(.6);transition:opacity .3s,transform .45s cubic-bezier(.3,1.5,.5,1)}
.lt.in .lt-q{opacity:1;transform:none}
.lt-b{padding:12px 14px 8px;border-top:1px solid var(--line)}
.lt-ref{margin:0 0 6px;font-size:9.5px;letter-spacing:.14em;color:var(--mute)}
.lt-b h3{margin:0;font-size:15px;font-weight:700;line-height:1.25}
.lt-s{margin:3px 0 0;font-size:12.5px;color:var(--mute)}
.lt-a{display:flex;gap:6px;padding:8px 10px 10px;margin-top:auto}
.lt-a button{min-height:38px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-weight:600;font-size:13px;transition:all .25s}
.lt-m{display:none;width:38px;font-size:17px}
.lt.in .lt-m{display:block}
.lt-p{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.lt-p svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.lt-p:hover{background:var(--ink);color:var(--paper)}
.lt.in .lt-p{background:var(--sig);border-color:var(--sig);color:var(--ink)}
.lt.in .lt-p span{display:none}
.lt.flash{animation:ltf .7s var(--ease)}
@keyframes ltf{0%{box-shadow:0 0 0 0 rgba(234,97,16,.55)}100%{box-shadow:0 0 0 14px rgba(234,97,16,0)}}
.lx-none{padding:40px 0}
/* panel : le plan */
.lx-panel{position:sticky;top:92px;display:flex;flex-direction:column;max-height:calc(100vh - 110px);border:1.5px solid var(--ink);border-radius:16px;background:#F7F5F0;overflow:hidden}
.lx-ph{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 18px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:default}
.lx-ph .mono{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}
.lx-ph b{font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:24px;line-height:1}
.lx-tog{display:none}
.lx-pb{display:flex;flex-direction:column;min-height:0;overflow:auto}
.lx-plan{position:relative;margin:14px;border-radius:10px;background-color:#FCFBF8;background-image:linear-gradient(rgba(13,13,15,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.05) 1px,transparent 1px);background-size:16px 16px;border:1px solid var(--line)}
.plan-svg{display:block;width:100%;height:auto}
.pl-room{fill:none;stroke:rgba(13,13,15,.55);stroke-width:1.4}
.pl-door{fill:none;stroke:rgba(13,13,15,.35);stroke-dasharray:3 3}
.pl-l{font-family:var(--f-m);font-size:8px;letter-spacing:.14em;fill:rgba(13,13,15,.45)}
.pl-l2{font-family:var(--f-m);font-size:7px;letter-spacing:.1em;fill:var(--ink)}
.pl-seat{fill:none;stroke:rgba(13,13,15,.18);stroke-width:1}
.pl-stage0{fill:none;stroke:rgba(13,13,15,.35);stroke-dasharray:4 4}
.pl-screen,.pl-screen2{stroke:rgba(13,13,15,.5);stroke-width:3}
.pl-foh{fill:none;stroke:rgba(13,13,15,.35);stroke-dasharray:4 4}
.pi{opacity:0;transition:opacity .45s var(--ease)}
.pi .sym{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s,fill .3s}
.pi .sym.fill{fill:var(--sig);stroke:var(--ink)}
.pi .sym.fill-l{fill:#fff}
.pi .sym.fill-h{fill:rgba(13,13,15,.08);stroke-width:1.6}
.pi .sym.thick{stroke-width:3}
.pi .sym.deco{stroke:var(--sig);stroke-width:2}
.pi .beam{fill:rgba(234,97,16,.12);stroke:rgba(234,97,16,.35);stroke-width:.8;stroke-dasharray:3 3}
.pi .fx{opacity:0;transition:opacity .4s}
.pi .fx.vis{opacity:1}
.pi.on{opacity:1}
.pi.ghost{opacity:.55}
.pi.ghost .sym{stroke:var(--sig);stroke-dasharray:3 3}
.pi.ghost .sym.fill{fill:rgba(234,97,16,.25)}
.pi.ghost .fx[data-n="1"]{opacity:1}
.pi.hl.on .sym{stroke:var(--sig)}
.pi.on{cursor:pointer}
.pi.pop>*{transform-box:fill-box;transform-origin:center;animation:plpop .7s cubic-bezier(.3,1.6,.5,1)}
@keyframes plpop{0%{transform:scale(.2);opacity:0}100%{transform:none;opacity:1}}
.bdg circle{fill:var(--ink)}
.bdg text{font-family:var(--f-m);font-size:8.5px;fill:var(--paper);text-anchor:middle}
.lx-pempty{position:absolute;left:0;right:0;bottom:16px;margin:0;text-align:center;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);transition:opacity .4s}
.lx-pempty.off{opacity:0}
.lx-tip{position:absolute;left:12px;top:10px;margin:0;padding:6px 10px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:10px;letter-spacing:.08em;opacity:0;transform:translateY(-4px);transition:opacity .25s,transform .35s var(--ease);pointer-events:none;max-width:calc(100% - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lx-tip.on{opacity:1;transform:none}
.lx-sum{display:grid;grid-template-columns:repeat(3,1fr);margin:0 14px;border-top:1.5px solid var(--ink)}
.lx-sum div{padding:12px 0 4px;display:flex;flex-direction:column;gap:4px}
.lx-sum div+div{padding-left:14px;border-left:1px solid var(--line)}
.lx-sum .mono{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.lx-sum b{font-weight:900;font-stretch:62%;font-size:34px;line-height:.9}
.lx-tech{display:flex;align-items:center;gap:12px;margin:14px 14px 0;font-size:13.5px;cursor:pointer}
.lx-tech input{position:absolute;opacity:0;pointer-events:none}
.lx-tech .sw{position:relative;flex:none;width:40px;height:22px;border-radius:999px;background:#D9D5CC;transition:background .3s}
.lx-tech .sw::after{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .35s var(--ease)}
.lx-tech input:checked+.sw{background:var(--sig)}
.lx-tech input:checked+.sw::after{transform:translateX(18px)}
.lx-go{margin:14px;justify-content:center}
.dr-meta{display:flex;justify-content:space-between;gap:10px;padding:14px 0 6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sig-d)}
.dr-cat{margin:18px 0 0;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
@media (max-width:1300px){.lx-items{grid-template-columns:repeat(2,minmax(0,1fr))}.lx-pk{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1000px){
.lx-grid{grid-template-columns:1fr}
.lx-panel{position:fixed;left:10px;right:10px;bottom:10px;top:auto;z-index:460;max-height:64px;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.28);transition:max-height .6s var(--ease)}
.lx-panel.open{max-height:86vh}
.lx-ph{cursor:pointer;padding:12px 16px;min-height:62px}
.lx-tog{display:inline-block;padding:8px 12px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase}
.lx-panel.open .lx-tog{background:var(--sig);color:var(--ink)}
.lx-ph.bump{animation:gohit .55s var(--ease)}
.lx-bar{top:64px}
.lx-items{grid-template-columns:repeat(2,minmax(0,1fr))}
.lx-dates{width:100%;justify-content:space-between;flex-wrap:wrap;border-radius:18px}
.lx-dates input{font-size:13px;max-width:130px}
}
@media (max-width:560px){.lx-pk{grid-template-columns:1fr 1fr}.pk b{font-size:22px}.pk-d{display:none}.lx-nav{flex-wrap:nowrap;overflow-x:auto;max-width:100%}.lx-nav a{flex:none}.lt-b h3{font-size:13.5px}.lt-s{font-size:11.5px}}
@media (max-width:1000px){body:has(.lx-panel) .gl{bottom:86px}}
.lx-cat{min-width:0}
.lx-grid{grid-template-columns:minmax(0,1fr) 520px}
@media (max-width:1300px){.lx-grid{grid-template-columns:minmax(0,1fr) 440px}}
@media (max-width:1000px){.lx-grid{grid-template-columns:minmax(0,1fr)}.lx-pb{overflow:auto;max-height:calc(86vh - 64px)}}
.lx-hero{overflow:hidden}
@media (max-width:1000px){body:has(.lx-panel.open) .gl{opacity:0;pointer-events:none}.lx-ph .mono,.lx-ph b{white-space:nowrap}.lx-ph b{font-size:20px}}

/* =========================================================
   V3.4 — HERO « IMAGINEZ » : titre vidéo éditable + faisceaux
   ========================================================= */
.hx{position:absolute;inset:0;isolation:isolate;overflow:hidden;background:#000}
.hx .show-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(1.28) contrast(1.06) saturate(1.08);transform:none}
.hx-m{position:absolute;inset:0;mix-blend-mode:multiply;background:#000;color:rgba(255,255,255,0);pointer-events:none;overflow:hidden}
.hx-spot{position:absolute;left:0;top:0;--sr:64vmax;width:var(--sr);height:var(--sr);margin:calc(var(--sr)/-2) 0 0 calc(var(--sr)/-2);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.24) 0%,rgba(255,255,255,.09) 34%,rgba(255,255,255,0) 66%);opacity:0;will-change:transform}
.hx-t{position:absolute;left:var(--pad);right:var(--pad);bottom:var(--tb,230px);margin:0;display:block;font-size:16px;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;letter-spacing:0;line-height:.88;text-align:left}
.hx-l1,.hx-l2,.hx-l3{letter-spacing:-.006em}
.hx-l1,.hx-l2,.hx-l3{display:block}
.hx-l1,.hx-l3{font-size:var(--fs13,120px)}
.hx-l2{position:relative;font-size:var(--fs2,120px);transform-origin:50% 56%}
.hx-ln{display:block;overflow:hidden;padding-top:.17em;margin-top:-.17em}
.hx-ln>span{display:inline-block}
.hx-tx .w{display:inline-block;white-space:nowrap}
.hx-tx .c{display:inline-block;overflow:hidden;padding-top:.17em;margin-top:-.17em}
.hx-tx .c i,.hx-g i{display:inline-block;font-style:normal}
.hx-g{display:inline-block;overflow:hidden;padding-top:.17em;margin-top:-.17em;vertical-align:bottom}
.hx-car{display:inline-block;width:.055em;height:.68em;margin-left:.07em;background:var(--sig);vertical-align:-.02em}
.hx-meas{position:absolute;left:-9999px;top:0;visibility:hidden;pointer-events:none;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;letter-spacing:-.006em;line-height:.88}
.hx-meas .w{display:inline-block;white-space:nowrap}.hx-meas .c{display:inline-block}.hx-meas .c i{font-style:normal}
/* calque multiply : seules les lettres de la ligne 2 laissent passer la vidéo */
.hx-m .hx-l1,.hx-m .hx-l3{color:transparent}
.hx-m .hx-car{visibility:hidden}
.hx-m .hx-l2.ph{opacity:.42}
/* calque avant */
.hx-f{position:absolute;inset:0;z-index:4;pointer-events:none}
.hx-f .hx-l1{color:transparent;-webkit-text-stroke:1.4px rgba(244,241,234,.92)}
.hx-f .hx-l2{color:transparent;-webkit-text-stroke:1px rgba(244,241,234,.2);pointer-events:auto;cursor:text}
.hx-f .hx-l2.ph{-webkit-text-stroke:1px rgba(244,241,234,.38)}
.hx-f .hx-l3{color:var(--sig)}
.hx-f .hx-car{animation:hxb 1.1s steps(1) infinite;box-shadow:0 0 18px rgba(234,97,16,.7)}
@keyframes hxb{0%{opacity:1}50%{opacity:0}}
.show.typing .hx-f .hx-car{animation-duration:.8s}
.hx-in{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;opacity:0;background:transparent;color:transparent;caret-color:transparent;font-size:16px;cursor:text}
.hx-beams{position:absolute;inset:0;width:100%;height:100%;z-index:2;mix-blend-mode:screen;pointer-events:none}
.hx-fl{position:absolute;inset:0;z-index:3;background:#FFF6EA;opacity:0;pointer-events:none;mix-blend-mode:soft-light}
.show.hx-on .show-shade{z-index:3;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,0) 18%,rgba(0,0,0,0) 58%,rgba(0,0,0,.7) 100%)}
.show.hx-on .cm{z-index:4}
.hx-top{position:absolute;left:var(--pad);right:var(--pad);top:clamp(98px,13vh,128px);z-index:5;display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.2em;color:#E4E0D8;pointer-events:none}
.hx-top b{font-weight:500;color:var(--paper)}
.hx-row{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(80px,10.5vh,124px);z-index:5;display:flex;justify-content:space-between;align-items:flex-end;gap:22px 40px;flex-wrap:wrap}
.hx-d,.hx-brief{max-width:520px}
.hx-sig{margin:0 0 10px;font-size:21px;color:var(--paper)}
.hx-p{margin:0;color:#D6D1C8;font-size:16px;line-height:1.6}
.hx-brief{display:none;pointer-events:auto}
.hx-brief .mono{margin:0 0 10px;font-size:11px;letter-spacing:.2em;color:#E4E0D8}
.hx-brief .mono b{color:var(--sig);font-weight:500}
.hx-bt{margin:0 0 18px;color:var(--paper);font-size:18px;line-height:1.5}
.hx-row.brief .hx-d{display:none}
.hx-row.brief .hx-brief{display:block}
.hx-acts{display:flex;align-items:center;gap:12px;pointer-events:auto}
.hx-acts .btn{min-height:52px;padding:0 22px}
.ico-pen{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hx-sr .ico-pl{width:11px;height:11px}
.hx-go{position:relative;width:78px;height:78px;flex:none;border-radius:50%;border:0;background:var(--sig);color:#fff;font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:30px;letter-spacing:.02em;cursor:pointer;box-shadow:0 12px 40px -10px rgba(234,97,16,.75);transition:background .3s}
.hx-go span{position:relative;z-index:1}
.hx-go::before,.hx-go::after{content:'';position:absolute;inset:-7px;border-radius:50%;border:1.5px solid rgba(234,97,16,.75);animation:hxr 2.2s cubic-bezier(.2,.7,.2,1) infinite}
.hx-go::after{animation-delay:1.1s}
@keyframes hxr{0%{transform:scale(.92);opacity:.9}100%{transform:scale(1.5);opacity:0}}
.hx-go:hover{background:#ff7a2a}
.show.hx-on .show-hud{z-index:5;align-items:flex-end}
.hx-lab{display:inline-block}
.hx-tk{display:flex;gap:8px;pointer-events:auto}
.show.hx-on .show-hud{left:calc(var(--pad) + 52px)}
.hx-t{transition:bottom .9s cubic-bezier(.16,1,.3,1)}
.hx-tk button{display:flex;flex-direction:column;gap:7px;width:48px;padding:6px 0;background:none;border:0;color:inherit;font:inherit;letter-spacing:.18em;cursor:pointer;text-align:left}
.hx-tk b{font-weight:500;opacity:.5;transition:opacity .3s,color .3s}
.hx-tk button.on b,.hx-tk button:hover b{opacity:1;color:var(--paper)}
.hx-tk i{position:relative;display:block;height:2px;background:rgba(241,238,232,.22);overflow:hidden}
.hx-tk u{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
/* bandeau transparent sur le hero */
body.on-hx .hdr .hdr-bg{opacity:0 !important;box-shadow:none !important;border-color:transparent !important}
body.on-hx .hdr{color:var(--paper)}
body.on-hx .hdr .burger:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
@media (max-width:1100px){.hx-p{display:none}.hx-sig{margin:0}}
@media (max-width:760px){
  .hx-top{top:88px;font-size:9.5px;letter-spacing:.16em}
  .hx-top .hx-tc{display:none}
  .hx-row{bottom:64px;gap:14px}
  .hx-d{display:none}
  .hx-sig{font-size:17px}
  .hx-acts{width:100%;gap:8px}
  .hx-acts .btn{min-height:48px;padding:0 16px;font-size:13.5px}
  .hx-wr{flex:1;justify-content:center}
  .hx-go{width:60px;height:60px;font-size:24px;margin-left:auto}
  .hx-sr{width:48px;padding:0 !important;justify-content:center}.hx-sr span{display:none}
  .hx-bt{font-size:16px;margin-bottom:14px}
  .hx-brief{max-width:none;width:100%}
  .show.hx-on .show-hud .rec{display:none}
  .show.hx-on .show-hud{justify-content:center}
  .hx-tk{gap:6px}.hx-tk button{width:44px}
  .hx-f .hx-l1{-webkit-text-stroke-width:1.1px}
}
@media (max-width:760px){.show.hx-on .show-hud .hx-tk{display:flex !important}}

/* =========================================================
   V3.5 — SOLUTIONS : le barillet des univers
   ========================================================= */
.sx-head{padding-bottom:clamp(50px,6vw,90px)}
.sx-sec{position:relative;background:#000;color:var(--paper)}
.sx-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.sx-v{position:absolute;inset:0;isolation:isolate;overflow:hidden;background:#000}
.sx-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease;filter:brightness(1.25) contrast(1.06) saturate(1.08)}
.sx-vid.on{opacity:1}
.sx-m{position:absolute;inset:0;mix-blend-mode:multiply;background:#1b1b1b;pointer-events:none}
.sx-m .hx-spot{opacity:1}
.sx-roll{position:absolute;left:var(--pad);right:43%;top:0;bottom:0;font-size:100px;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 22%,#000 78%,transparent 100%)}
.sx-w{position:absolute;left:0;top:50%;display:block;white-space:nowrap;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;letter-spacing:-.006em;line-height:.88;padding-top:.08em;transform-origin:0 50%;will-change:transform}
.sx-probe{position:absolute;left:-9999px;top:0;visibility:hidden;pointer-events:none}
.sx-m .sx-w{color:rgba(255,255,255,0)}
.sx-f{position:absolute;inset:0;z-index:3;pointer-events:none}
.sx-f .sx-w{color:transparent;-webkit-text-stroke:1.2px rgba(244,241,234,.6);pointer-events:auto;cursor:pointer}
.sx-f .sx-w.on{-webkit-text-stroke-width:1px}
.sx-sec .cm{z-index:4}
.sx-top{position:absolute;left:var(--pad);right:var(--pad);top:clamp(92px,12vh,120px);z-index:5;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.2em;color:#E4E0D8}
.sx-top b{color:var(--paper);font-weight:500}
.sx-hint{transition:opacity .5s}.sx-hint.off{opacity:0}
.sx-i{position:absolute;right:var(--pad);top:50%;transform:translateY(-50%);width:min(36%,470px);z-index:5}
.sx-k{margin:0 0 14px;font-size:11px;letter-spacing:.18em;color:var(--sig);line-height:1.7}
.sx-l{margin:0 0 16px;font-size:clamp(26px,2.5vw,38px);line-height:1.12;color:var(--paper)}
.sx-p{margin:0 0 30px;color:#CFC9BF;font-size:16px;line-height:1.65}
.sx-pl{margin:0 0 12px;font-size:10.5px;letter-spacing:.2em;color:#9A958C}
.sx-patch{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 30px}
.sx-patch .pt{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:11px 10px 10px;border:1px solid rgba(241,238,232,.14);border-radius:8px;background:rgba(10,10,12,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:border-color .4s,background .4s}
.sx-patch .pt i{width:7px;height:7px;border-radius:50%;background:#3a3834;transition:background .3s,box-shadow .3s}
.sx-patch .pt em{font-style:normal;font-family:var(--f-m);font-size:10px;letter-spacing:.06em;color:#8C877E;transition:color .3s;white-space:nowrap}
.sx-patch .pt.on{border-color:rgba(234,97,16,.55);background:rgba(234,97,16,.08)}
.sx-patch .pt.on i{background:var(--sig);box-shadow:0 0 12px 2px rgba(234,97,16,.75)}
.sx-patch .pt.on em{color:var(--paper)}
.sx-acts{display:flex;flex-wrap:wrap;gap:10px}
.sx-acts .btn-ghost{color:var(--paper);border-color:rgba(241,238,232,.4)}
.sx-rail{position:absolute;left:calc(var(--pad) + 52px);right:var(--pad);bottom:30px;z-index:5;display:flex;gap:8px}
.sx-rail button{flex:1;max-width:64px;display:flex;flex-direction:column;gap:7px;padding:6px 0;background:none;border:0;color:#E4E0D8;font:500 10px var(--f-m);letter-spacing:.18em;text-align:left;cursor:pointer}
.sx-rail b{font-weight:500;opacity:.5;transition:opacity .3s}
.sx-rail button.on b,.sx-rail button:hover b{opacity:1}
.sx-rail i{position:relative;display:block;height:2px;background:rgba(241,238,232,.2);overflow:hidden}
.sx-rail u{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
@media (max-width:1100px){.sx-roll{right:46%}.sx-i{width:40%}.sx-patch{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){
  .sx-roll{left:var(--pad);right:var(--pad);top:120px;bottom:44%}.sx-w{white-space:normal;right:0}
  .sx-top{top:84px;font-size:10px}.sx-top span{white-space:nowrap}.sx-hint{display:none}
  .sx-i{left:var(--pad);right:var(--pad);top:auto;bottom:74px;transform:none;width:auto}
  .sx-p{display:none}
  .sx-l{font-size:22px;margin-bottom:14px}
  .sx-k{font-size:10px;margin-bottom:8px}
  .sx-patch{grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:16px}
  .sx-patch .pt{padding:8px 6px;gap:6px}
  .sx-patch .pt em{font-size:8.5px;letter-spacing:0}
  .sx-acts{flex-wrap:nowrap;gap:8px}.sx-acts .btn{min-height:46px;padding:0 16px;font-size:13.5px;flex:1;justify-content:center}.sx-acts .arr{display:none}
  .sx-rail{bottom:22px;gap:5px}
}

/* =========================================================
   V3.5 — ÉTUDE DE CAS EWC
   ========================================================= */
.cx-hero{position:relative;height:100vh;height:100svh;min-height:620px;overflow:hidden;background:#000;color:var(--paper)}
.cx-hi{position:absolute;inset:0;will-change:transform}
.cx-hi img{width:100%;height:100%;object-fit:cover;filter:brightness(.62) contrast(1.06)}
.cx-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0,rgba(0,0,0,0) 26%,rgba(0,0,0,0) 45%,rgba(0,0,0,.78) 100%);pointer-events:none}
.cx-hero .cm{z-index:3}
.cx-hud{position:absolute;left:var(--pad);right:var(--pad);top:clamp(96px,13vh,128px);z-index:3;display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.2em;color:#E4E0D8}
.cx-hud a{color:inherit}
.cx-in{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(70px,10vh,110px);z-index:3;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.cx-t{margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(64px,12.5vw,210px);line-height:.84;letter-spacing:-.012em}
.cx-t .ln,.cx-st .ln{display:block;overflow:hidden;padding-top:.12em;margin-top:-.12em}
.cx-t .ln>span,.cx-st .ln>span{display:inline-block}
.cx-t .o,.cx-st .o{color:transparent;-webkit-text-stroke:1.6px var(--paper)}
.cx-t .sig,.cx-st .sig{color:var(--sig)}
.cx-sub{text-align:right;padding-bottom:12px}
.cx-sub .serif{margin:0 0 8px;font-size:clamp(24px,2.4vw,36px)}
.cx-sub .mono{margin:0;font-size:11px;letter-spacing:.2em;color:#CFC9BF}
.cx-sc{position:absolute;left:50%;bottom:28px;z-index:3;transform:translateX(-50%);font-size:10px;letter-spacing:.3em;color:#CFC9BF}
.cx-sc::after{content:'';display:block;width:1px;height:34px;margin:10px auto 0;background:linear-gradient(var(--paper),transparent);animation:cxs 1.8s ease-in-out infinite}
@keyframes cxs{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.cx-facts{padding:60px 0 0}
/* plan au show */
.cx-plan{background:#07111D;color:var(--paper);padding:clamp(90px,9vw,140px) 0}
.cx-plan .label{color:#9FB3C8}
.cx-cmp{position:relative;margin-top:clamp(36px,4vw,56px);aspect-ratio:1400/849;border-radius:16px;overflow:hidden;cursor:ew-resize;touch-action:pan-y;user-select:none;-webkit-user-select:none;box-shadow:0 40px 120px -40px rgba(0,0,0,.8)}
.cx-cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cx-bpw{position:absolute;inset:0;clip-path:inset(0 0 0 0);will-change:clip-path}
.cx-tb{position:absolute;right:22px;bottom:22px;display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid rgba(207,232,255,.55);background:rgba(7,17,29,.6);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#CFE8FF;line-height:1.4}
.cx-tb b{font-weight:500;color:#fff;margin-bottom:4px}
.cx-h{position:absolute;top:0;bottom:0;left:50%;width:0;z-index:2;pointer-events:none}
.cx-h i{position:absolute;top:0;bottom:0;left:-1px;width:2px;background:var(--paper);box-shadow:0 0 18px rgba(255,255,255,.55)}
.cx-h span{position:absolute;top:50%;left:0;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:var(--sig);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -6px rgba(234,97,16,.7)}
.cx-h svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cx-cmp.bp-full .cx-h{opacity:0}
.cx-lab{position:absolute;top:20px;z-index:2;padding:8px 12px;border-radius:99px;background:rgba(7,17,29,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:10px;letter-spacing:.2em;color:#E4E0D8}
.cx-lab.l{left:20px}.cx-lab.r{right:20px}
/* console */
.cx-mix{background:var(--ink);color:var(--paper);padding:clamp(90px,9vw,140px) 0}
.cx-desk{display:grid;grid-template-columns:repeat(9,1fr);gap:clamp(6px,1vw,14px);margin-top:clamp(40px,4vw,60px);padding:clamp(18px,2vw,28px);border-radius:18px;background:linear-gradient(180deg,#16161A,#0E0E11);border:1px solid rgba(241,238,232,.08)}
.cx-ch{--v:0;display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px 0 14px;border-radius:12px;transition:background .3s}
.cx-ch:hover{background:rgba(241,238,232,.04)}
.cx-led{display:flex;flex-direction:column-reverse;gap:3px}
.cx-led i{display:block;width:16px;height:4px;border-radius:2px;background:#26262B}
.cx-led i.g{background:#7DDB8E;box-shadow:0 0 6px rgba(125,219,142,.6)}
.cx-led i.y{background:#F2C14E;box-shadow:0 0 6px rgba(242,193,78,.6)}
.cx-led i.r{background:var(--sig);box-shadow:0 0 6px rgba(234,97,16,.7)}
.cx-tr{position:relative;width:34px;height:clamp(150px,20vw,240px);cursor:ns-resize;touch-action:none}
.cx-tr::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;border-radius:2px;background:#050506;box-shadow:inset 0 0 0 1px rgba(241,238,232,.08)}
.cx-tr::after{content:'';position:absolute;left:50%;bottom:0;width:4px;margin-left:-2px;height:calc(var(--v) * 100%);border-radius:2px;background:var(--sig);box-shadow:0 0 12px rgba(234,97,16,.6)}
.cx-kn{position:absolute;left:50%;bottom:calc(var(--v) * (100% - 22px));width:34px;height:22px;margin-left:-17px;border-radius:5px;background:linear-gradient(180deg,#E9E5DD,#A9A49B);box-shadow:0 6px 14px rgba(0,0,0,.6),inset 0 -2px 0 rgba(0,0,0,.25);z-index:1}
.cx-kn::after{content:'';position:absolute;left:5px;right:5px;top:50%;height:2px;margin-top:-1px;background:#0D0D0F}
.cx-nm{font-size:10px;letter-spacing:.16em;color:#8C877E}
.cx-lb{font-family:var(--f-d);font-weight:800;font-stretch:72%;text-transform:uppercase;font-size:clamp(12px,1.05vw,15px);letter-spacing:.02em;text-align:center;line-height:1.1;color:#8C877E;transition:color .3s;min-height:2.2em}
.cx-ch.on .cx-lb{color:var(--paper)}
.cx-ch.on .cx-nm{color:var(--sig)}
.cx-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 50px;flex-wrap:wrap;margin-top:28px}
.cx-ds{margin:0;max-width:560px;display:flex;flex-direction:column;gap:8px;font-size:18px;line-height:1.5;color:#E4E0D8}
.cx-ds .mono{font-size:11px;letter-spacing:.2em;color:var(--sig)}
.cx-mt{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.2em;color:#CFC9BF}
.cx-mt i{position:relative;display:block;width:clamp(120px,16vw,220px);height:4px;border-radius:2px;background:#26262B;overflow:hidden}
.cx-mt u{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
.cx-mt b{font-weight:500;color:var(--paper);min-width:44px}
.cx-mt em{font-style:normal;color:#5E5A54;transition:color .4s;display:inline-flex;align-items:center}
.cx-mt em .tally{opacity:.25;transition:opacity .4s}
.ready .cx-mt em{color:var(--paper)}.ready .cx-mt em .tally{opacity:1}
/* conduite */
.cx-run{position:relative;background:var(--paper);overflow:hidden}
.cx-rst{min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:clamp(30px,4vw,56px);padding:clamp(80px,9vh,110px) 0 clamp(40px,6vh,70px)}
.cx-track{display:flex;gap:clamp(16px,2vw,28px);padding:0 var(--pad);will-change:transform}
.cx-q{flex:none;width:clamp(300px,30vw,440px);min-height:clamp(260px,34vh,340px);display:flex;flex-direction:column;padding:28px;border-radius:16px;border:1.5px solid var(--line);background:#F7F5F0;transition:background .5s,border-color .5s,color .5s}
.cx-qn{font-family:var(--f-d);font-weight:900;font-stretch:62%;font-size:clamp(70px,7vw,120px);line-height:.85;color:transparent;-webkit-text-stroke:1.3px #BDB6AA;transition:-webkit-text-stroke-color .5s,color .5s}
.cx-q h3{margin:auto 0 10px;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(28px,2.6vw,40px);line-height:.95}
.cx-q p{margin:0;color:var(--mute);line-height:1.6;font-size:15.5px}
.cx-q.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.cx-q.on .cx-qn{color:var(--sig);-webkit-text-stroke-color:var(--sig)}
.cx-q.on p{color:#CFC9BF}
.cx-q.done .cx-qn{-webkit-text-stroke-color:var(--ink)}
.cx-q.go{background:var(--sig);border-color:var(--sig);color:#fff}
.cx-q.go .cx-qn{color:#fff;-webkit-text-stroke-color:#fff}
.cx-q.go p{color:rgba(255,255,255,.85)}
.cx-line{position:relative;height:2px;background:var(--line)}
.cx-line i{position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(0)}
/* le show */
.cx-show{position:relative;height:320vh;background:#000;color:var(--paper)}
.cx-sst{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.cx-sp{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.cx-sp.on{opacity:1}
.cx-sp img{width:100%;height:100%;object-fit:cover;transform:scale(var(--z,1));transition:transform .2s linear;filter:brightness(.66) contrast(1.05)}
.cx-sv{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,0) 30%,rgba(0,0,0,.2) 55%,rgba(0,0,0,.8))}
.cx-st{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(80px,12vh,130px);margin:0;font-family:var(--f-d);font-weight:900;font-stretch:62%;text-transform:uppercase;font-size:clamp(52px,9.6vw,170px);line-height:.86;letter-spacing:-.012em}
.cx-sn{position:absolute;left:var(--pad);top:clamp(96px,13vh,128px);margin:0;font-size:11px;letter-spacing:.2em;color:#E4E0D8}
@media (max-width:900px){.cx-desk{grid-template-columns:repeat(9,minmax(0,1fr));padding:12px;gap:2px}.cx-tr{width:26px}.cx-kn{width:26px;margin-left:-13px;height:18px}.cx-kn{bottom:calc(var(--v) * (100% - 18px))}.cx-led i{width:11px;height:3px}.cx-lb{font-size:9.5px;letter-spacing:0;min-height:3.3em}}
@media (max-width:760px){
  .cx-hud{top:88px;font-size:9.5px;flex-direction:column;gap:6px}
  .cx-in{bottom:84px}.cx-sub{text-align:left}
  .cx-t{font-size:19vw}
  .cx-cmp{aspect-ratio:4/5}.cx-tb{display:none}.cx-lab{font-size:9px;top:12px}.cx-lab.l{left:12px}.cx-lab.r{right:12px}
  .cx-rst{min-height:0;padding:90px 0 70px}
  .cx-track{flex-direction:column;gap:12px}
  .cx-q{width:auto;min-height:0}.cx-q h3{margin-top:24px}
  .cx-line{display:none}
  .cx-st{font-size:13.5vw}
}
@media (max-width:760px){
  .cx-desk{gap:0;padding:14px 6px}
  .cx-ch{gap:10px}
  .cx-lb{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10.5px;letter-spacing:.04em;min-height:9.5em;text-align:left;white-space:nowrap}
  .cx-foot{gap:18px}.cx-mt{flex-wrap:wrap;row-gap:10px}.cx-mt em{white-space:nowrap}
}
/* V3.5.1 — le lanceur de visite guidée ne recouvre plus le bas du footer */
.ftr-bot{padding-bottom:84px}
@media (max-width:760px){.ftr-bot{padding-bottom:96px}}
