:root{--ink:#08090C;--ink2:#12141A;--bone:#F3F3EF;--red:#FF2A2A;--yel:#FFD200;--steel:#7E8592;--d:'Big Shoulders Display',Impact,sans-serif;--b:'Chakra Petch',system-ui,sans-serif;--cut:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px))}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{font:400 1.02rem/1.65 var(--b);background:var(--bone);color:var(--ink);overflow-x:hidden}
body:not(.ready){overflow:hidden}
a{color:inherit}img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--yel);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3,.big,.soon,.stats b,.ld-num,.mail{font-family:var(--d);text-transform:uppercase;line-height:.92}
h2{font-size:clamp(3rem,8vw,6rem);font-weight:900;margin-bottom:2.2rem;font-style:italic}
.big{font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:800;text-transform:none;line-height:1.08;margin-bottom:1.2rem}
/* révélations */
.rv{opacity:0;transform:translateY(40px) skewY(2deg);transition:opacity .7s,transform .8s cubic-bezier(.2,.8,.2,1)}
h2.rv{transform:none;clip-path:inset(0 100% 0 0);opacity:1;transition:clip-path .9s cubic-bezier(.77,0,.18,1)}
.rv.in{opacity:1;transform:none}h2.rv.in{clip-path:inset(0 0 0 0)}
/* loader */
#loader{position:fixed;inset:0;z-index:100;background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:clip-path .9s cubic-bezier(.77,0,.18,1);clip-path:inset(0)}
#loader.out{clip-path:polygon(0 0,100% 0,100% 0,0 0)}
.gauge{width:min(520px,86vw)}.g-bg,.g-fg{fill:none;stroke-width:9;stroke-linecap:butt}.g-bg{stroke:#23262e}.g-fg{stroke:var(--red);stroke-dasharray:252;stroke-dashoffset:252}
.ld-num{font-size:clamp(5rem,20vw,11rem);font-weight:900;font-style:italic;margin-top:-90px;font-variant-numeric:tabular-nums}
#loader p{color:var(--yel);letter-spacing:.3em;text-transform:uppercase;font-size:.85rem;margin-top:.6rem}
/* curseur et HUD */
#cur{position:fixed;left:0;top:0;width:34px;height:34px;border:2px solid var(--red);z-index:90;pointer-events:none;transform:translate(-100px,-100px) rotate(45deg);transition:width .2s,height .2s,background .2s;mix-blend-mode:difference;display:none}
#cur.big{width:60px;height:60px;background:rgba(255,42,42,.25)}
@media(pointer:fine){#cur{display:block}}
#hud{position:fixed;right:18px;bottom:18px;z-index:40;background:rgba(8,9,12,.82);color:#fff;padding:10px 14px 8px;min-width:118px;clip-path:var(--cut);backdrop-filter:blur(6px);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;opacity:0;transition:opacity .5s}
body.ready #hud{opacity:1}
#hud b{font:900 2.2rem/1 var(--d);font-style:italic;color:var(--yel);margin-right:4px}
#hud i{display:block;height:5px;background:#2a2d36;margin:6px 0 4px}#hud u{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--yel),var(--red))}#hud span{color:var(--steel)}
/* en-tête */
header{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;transition:background .3s,padding .3s}
header.solid{background:rgba(8,9,12,.93);backdrop-filter:blur(10px);padding:9px 24px}
header::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:var(--sp,0%);background:var(--red)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.brand b{font:900 1.35rem/1 var(--d);text-transform:uppercase;letter-spacing:.05em;font-style:italic}
.logo-slot{position:relative;display:grid;place-items:center;width:42px;height:42px;background:var(--red);clip-path:var(--cut);font:900 1.1rem var(--d);overflow:hidden}
.logo-slot img,.hero-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--ink)}
nav{display:flex;gap:4px;align-items:center}
nav a{color:#fff;text-decoration:none;font-weight:500;font-size:.88rem;text-transform:uppercase;letter-spacing:.08em;padding:9px 13px;position:relative;display:inline-block}
nav a:not(.cta)::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}
nav a:hover::after{transform:scaleX(1)}nav .cta{background:var(--red);font-weight:700;clip-path:var(--cut)}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.burger i{position:absolute;left:10px;right:10px;height:3px;background:#fff;transition:.3s}.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:25px}
.burger[aria-expanded=true] i:nth-child(1){top:20px;transform:rotate(45deg)}.burger[aria-expanded=true] i:nth-child(2){top:20px;transform:rotate(-45deg)}
/* hero */
.hero{position:relative;min-height:100svh;background:radial-gradient(ellipse at 75% 30%,#2a0d10 0,var(--ink) 60%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:3rem;padding:120px max(24px,calc((100vw - 1200px)/2)) 110px;overflow:hidden;isolation:isolate}
#fx{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(115deg,transparent 0 60px,rgba(255,255,255,.025) 60px 62px)}
.hero-in{max-width:820px}
.kicker{display:flex;align-items:center;gap:10px;color:var(--yel);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.85rem;margin-bottom:1rem}
.rec{width:10px;height:10px;border-radius:50%;background:var(--red);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:.15}}
h1{font-size:clamp(4.6rem,15.5vw,13rem);font-weight:900;font-style:italic;margin-bottom:1.6rem}
h1 .ln{display:block;overflow:hidden;padding-right:.1em}
h1 .ln.out{color:transparent;-webkit-text-stroke:2px #fff}
h1 .ch{display:inline-block;transform:translateY(105%) skewX(-12deg);transition:transform .7s cubic-bezier(.2,.9,.2,1)}
body.ready h1 .ch{transform:none}
.hero-in .lead,.hero-btns,.kicker{opacity:0;transform:translateX(-30px);transition:.8s 1.2s}body.ready .hero-in .lead,body.ready .hero-btns,body.ready .kicker{opacity:1;transform:none}
.lead{font-size:1.2rem;max-width:520px;color:#c4c9d4;margin-bottom:2rem}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--red);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;padding:16px 32px;clip-path:var(--cut);transition:background .2s,color .2s}
.btn:hover{background:var(--yel);color:var(--ink)}.btn.ghost{background:#fff;color:var(--ink)}.btn.ghost:hover{background:var(--red);color:#fff}
.hero-logo{position:relative;flex:0 0 clamp(190px,25vw,330px);aspect-ratio:1;display:grid;place-items:center;color:var(--steel);font-size:.9rem;animation:float 5s ease-in-out infinite}
.hero-logo::before,.hero-logo b{content:"";position:absolute;width:34px;height:34px;border:3px solid var(--red)}.hero-logo::before{left:0;top:0;border-right:0;border-bottom:0}.hero-logo b{right:0;bottom:0;border-left:0;border-top:0}
@keyframes float{50%{transform:translateY(-14px)}}
.scroll{position:absolute;left:50%;bottom:44px;transform:translateX(-50%);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--steel);text-align:center}
.scroll i{display:block;width:2px;height:34px;margin:0 auto 8px;background:linear-gradient(var(--red),transparent);animation:drop 1.6s infinite}@keyframes drop{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}}
.stripe{position:absolute;left:0;right:0;bottom:0;height:22px;background:repeating-linear-gradient(-45deg,var(--yel) 0 18px,var(--ink) 18px 36px);background-size:51px 100%;animation:slide 1.2s linear infinite}@keyframes slide{to{background-position:51px 0}}
.ticker{background:var(--red);color:#fff;overflow:hidden;white-space:nowrap;font:900 1.7rem/1 var(--d);font-style:italic;text-transform:uppercase;padding:14px 0;transform:rotate(-1.2deg) scale(1.03);margin:-6px 0 -10px;position:relative;z-index:3}
.ticker div{display:inline-flex;animation:mq 26s linear infinite}.ticker span{padding:0 26px}.ticker span::after{content:"//";margin-left:52px;opacity:.55}@keyframes mq{to{transform:translateX(-50%)}}
/* sections */
.sec{padding:clamp(90px,11vw,150px) 0;position:relative}
.sec.dark{background:var(--ink);color:#fff}.sec.signal{background:var(--red);color:#fff}
.sec.dark::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 60px,rgba(255,255,255,.025) 60px 62px);pointer-events:none}
.center{text-align:center}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}.split.rev{grid-template-columns:1.15fr 1fr}.split.top{align-items:start}
.txt p{margin-bottom:1.1rem;max-width:56ch}.dark .txt p:not(.big){color:#c4c9d4}
.prog{display:flex;gap:20px;align-items:center;margin:1.6rem 0;padding:16px;background:var(--ink);color:#fff;clip-path:var(--cut)}.prog p{margin:0;font-size:.92rem;color:#c4c9d4}.prog strong{color:#fff}
.ring{position:relative;flex:0 0 96px;height:96px}.ring svg{transform:rotate(-90deg)}.ring circle{fill:none;stroke:#2a2d36;stroke-width:9}.ring #ring{stroke:var(--red);stroke-dasharray:276.5;stroke-dashoffset:276.5;transition:stroke-dashoffset 1.8s cubic-bezier(.2,.8,.2,1)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font:900 1.7rem var(--d);font-style:italic}
.status{list-style:none;border-top:3px solid var(--ink)}
.status li{display:flex;justify-content:space-between;align-items:center;padding:11px 0 11px 34px;border-bottom:1px solid rgba(8,9,12,.15);font-weight:700;text-transform:uppercase;letter-spacing:.04em;position:relative;transition:padding .2s,background .2s}
.status li:hover{padding-left:44px;background:rgba(255,42,42,.08)}
.status li::before{content:"";position:absolute;left:4px;top:50%;width:15px;height:15px;margin-top:-8px;border:2px solid var(--ink);transform:skewX(-14deg)}
.status em{font-style:normal;font-weight:500;color:#5b6070;font-size:.85rem;text-transform:none}
.status .done::before{background:var(--ink)}.status .wip::before{background:var(--red);border-color:var(--red);animation:blink 1.2s steps(2) infinite}.status .next{color:#7b8090}.status .next::before{border-style:dashed;border-color:#7b8090}
/* photos */
.ph{position:relative;background:repeating-linear-gradient(135deg,#dde0e6 0 12px,#e8eaef 12px 24px);display:grid;place-items:center;overflow:hidden;min-height:180px;clip-path:var(--cut);transition:transform .25s}
.ph::before{content:attr(data-label);color:#667;font-weight:500;font-size:.9rem;padding:0 12px;text-align:center}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.7) contrast(1.1);transition:filter .4s,transform .6s}.ph:hover img{filter:none;transform:scale(1.07)}
.ph figcaption{position:absolute;left:0;bottom:0;background:var(--red);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;padding:6px 16px 6px 12px;z-index:1;clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%)}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gallery .tall{grid-row:span 2;min-height:320px}.gallery .wide{grid-column:span 2;min-height:200px}
/* vidéo */
.vid{position:relative;aspect-ratio:16/9;background:var(--ink2);display:grid;place-items:center;clip-path:var(--cut);outline:3px solid var(--red);outline-offset:-3px}
.vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.vid-fallback{color:var(--steel);font-size:.9rem}
.recb{position:absolute;left:16px;top:14px;z-index:2;display:flex;align-items:center;gap:8px;font:700 .75rem var(--b);font-style:normal;text-transform:uppercase;letter-spacing:.15em;background:rgba(8,9,12,.75);padding:5px 10px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem}.chips span{border:2px solid var(--red);padding:5px 14px;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;transform:skewX(-12deg);transition:background .2s}.chips span:hover{background:var(--red)}
/* partenariat */
.soon{font-size:clamp(3.4rem,12vw,9rem);font-weight:900;font-style:italic;color:transparent;-webkit-text-stroke:3px var(--red);margin-bottom:1rem;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{50%{color:rgba(255,42,42,.15)}}
.lead2{max-width:560px;margin:0 auto 2.5rem}.lead2 a{color:var(--red);font-weight:700}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:860px;margin:0 auto}.slots i{aspect-ratio:2/1;border:2px dashed #aeb3c0;clip-path:var(--cut);transition:border-color .2s,background .2s}.slots i:hover{border-color:var(--red);background:rgba(255,42,42,.06)}
/* technique */
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:3rem;position:relative}
.stats div{padding:1.2rem 1rem 1rem;border-top:4px solid var(--red);border-left:1px solid rgba(255,255,255,.12)}
.stats b{display:block;font-size:clamp(3.8rem,11vw,8.5rem);font-weight:900;font-style:italic;font-variant-numeric:tabular-nums}.stats span{color:var(--steel);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}
/* équipe */
.team{aspect-ratio:21/9;min-height:240px;margin-bottom:3rem}.brk{outline:3px solid var(--ink);outline-offset:-3px}
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.role{background:#fff;padding:14px;clip-path:var(--cut);transition:transform .2s,background .2s;transform-style:preserve-3d;will-change:transform}
.role:hover{background:var(--ink);color:#fff}.role .av{aspect-ratio:1;margin-bottom:14px;min-height:0}
.role h3{font-size:1.9rem;font-weight:900;font-style:italic;border-left:5px solid var(--red);padding-left:10px}.role p{color:#6a7080;padding-left:15px}
/* contact */
.mail{display:inline-block;font-size:clamp(1.7rem,5.6vw,4rem);font-weight:900;font-style:italic;color:var(--ink);text-decoration:none;border-bottom:5px solid var(--ink);margin-top:1.4rem;word-break:break-all;transition:color .2s,border-color .2s}.mail:hover{color:#fff;border-color:#fff}
.signal .big{max-width:720px;margin:0 auto}
footer{background:var(--ink);color:var(--steel);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:22px 24px;font-size:.88rem;border-top:4px solid var(--red)}footer a{color:#fff}
@media(max-width:900px){
 .burger{display:block}
 nav{position:fixed;inset:0 0 auto;flex-direction:column;align-items:flex-start;gap:0;background:var(--ink);padding:76px 24px 24px;transform:translateY(-100%);transition:transform .4s;z-index:-1}nav.open{transform:none}
 nav a{width:100%;font-size:1.2rem;padding:12px 0}nav a::after{display:none}nav .cta{padding:12px 20px;margin-top:8px;width:auto}
 .hero{flex-direction:column;align-items:flex-start;justify-content:center}.hero-logo{flex:none;width:140px}
 .split,.split.rev,.tech{grid-template-columns:1fr}.roles{grid-template-columns:1fr 1fr}#hud{display:none}
}
@media(max-width:560px){.roles{gap:14px}.stats{grid-template-columns:1fr}.slots{grid-template-columns:1fr 1fr}.team{aspect-ratio:4/3}.role h3{font-size:1.3rem}.role{padding:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}.rv{opacity:1;transform:none;clip-path:none}h1 .ch{transform:none}.schema .arrow{stroke-dashoffset:0}}

.team-link{display:block;margin-bottom:2rem}.team-link .team{margin-bottom:0;cursor:pointer}.team-cta{text-align:center}
nav a[aria-current]::after{transform:scaleX(1)}
.hero.mini{min-height:66svh;padding-bottom:100px}.hero.mini h1{font-size:clamp(3.8rem,12.5vw,10rem)}
.sec.light .roles{margin-top:.5rem}.join .big{max-width:720px;margin:0 auto}

.hero-logo img{background:none;object-fit:contain;padding:18px}
.stats b{font-size:clamp(4.5rem,14vw,12rem)}.stats div{padding-top:1.6rem}
.events{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:2rem}
.ev{background:var(--ink);color:#fff;padding:14px;clip-path:var(--cut);transform-style:preserve-3d;transition:background .2s}
.ev .ph{aspect-ratio:16/10;margin-bottom:16px}
.ev h3{font-size:clamp(2rem,4vw,2.9rem);font-weight:900;font-style:italic;border-left:5px solid var(--red);padding-left:12px;margin-bottom:.6rem}
.ev p{color:#c4c9d4;padding-left:17px}
#projets .big{margin:0 0 1rem;max-width:760px}
@media(max-width:900px){.events{grid-template-columns:1fr}}

.slots{margin-bottom:2.5rem}.lead2{margin:0 auto}
.slots .sp{position:relative;aspect-ratio:2/1;background:#fff;clip-path:var(--cut);display:grid;place-items:center;overflow:hidden;text-decoration:none;color:var(--ink);font:900 1.5rem/1 var(--d);font-style:italic;text-transform:uppercase;text-align:center;padding:10px;transition:transform .25s,background .25s,color .25s}
.slots .sp img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:16px;background:#fff;transition:transform .4s}
.slots .sp::after{content:"↗";position:absolute;right:12px;top:6px;z-index:1;font:900 1.1rem var(--b);color:var(--red);opacity:0;transform:translate(-6px,6px);transition:.25s}
.slots .sp:hover{transform:translateY(-6px)}.slots .sp:hover img{transform:scale(1.06)}.slots .sp:hover::after{opacity:1;transform:none}
@media(max-width:560px){.slots .sp{grid-column:span 2;aspect-ratio:3/1}}
