/* Mondou · Noël 2026 · Découpage · Koloc */
@font-face{font-family:'AkzidenzEx';src:url('../fonts/akzidenz-ex-bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
:root{
  --navy:#0b3675; --navy-d:#072653; --ink:#0b0d12; --ink-2:#14171f;
  --red:#ee0026; --red-d:#c4001f;
  --paper:#f1eee7; --paper-2:#e7e2d8; --white:#fff;
  --tx:#0b0d12; --tx-2:rgba(11,13,18,.66); --tx-3:rgba(11,13,18,.45);
  --line:rgba(11,13,18,.16); --line-d:rgba(255,255,255,.16);
  --display:'AkzidenzEx','Helvetica Neue',Arial,sans-serif;
  --body:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
  --gut:clamp(16px,3.6vw,56px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:64px}
body{margin:0;background:var(--ink);color:var(--white);font:500 16px/1.55 var(--body);letter-spacing:-.005em;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;line-height:.9}
p,dl,dd,ol,figure{margin:0}
ol{padding:0;list-style:none}
.mono{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}
.wrap{width:100%;max-width:1440px;margin:0 auto;padding:0 var(--gut);position:relative}
.red{color:var(--red)}
.ink{color:var(--ink)}
svg use{pointer-events:none}

/* ---------- porte ---------- */
#gate{position:fixed;inset:0;z-index:100;background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:28px var(--gut) 32px;transition:transform 1s var(--ease),visibility 1s}
html.ok #gate{display:none}
#gate.lift{transform:translateY(-100%);visibility:hidden}
html:not(.ok) body:not(.open){overflow:hidden}
body.open{overflow-x:hidden;overflow-y:auto}
.gate-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gate-top .wm{width:84px;height:29px;fill:#fff}
.gate-top .mono{color:rgba(255,255,255,.55)}
.gate-bot{height:29px}
.gate-form{width:100%;max-width:400px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.gate-logos{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.gate-logos .lg2{width:50px;height:36px;fill:#fff}
.gate-logos .x{font:400 18px/1 var(--body);color:rgba(255,255,255,.5)}
.chip{display:block;background:#fff;padding:6px 9px}
.chip img{width:52px;height:auto}
.gate-kick{color:rgba(255,255,255,.65);margin-bottom:44px}
.gate-form label{color:rgba(255,255,255,.55);margin-bottom:12px;font-size:11px}
.gate-row{display:flex;width:100%;border:1px solid rgba(255,255,255,.35);transition:border-color .2s}
.gate-row:focus-within{border-color:#fff}
.gate-row input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:#fff;font:600 18px/1 var(--body);padding:15px 16px;letter-spacing:.14em;text-align:left}
.gate-row button{display:flex;align-items:center;gap:8px;background:#fff;color:var(--navy);border:0;padding:0 18px;cursor:pointer;font:700 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;transition:background .2s,color .2s}
.gate-row button:hover{background:var(--red);color:#fff}
.gate-row button svg{width:16px;height:16px}
.gate-err{min-height:20px;margin-top:14px;color:#ff8a9b;text-transform:none;letter-spacing:.02em}
.gate-form.shake .gate-row{animation:shake .45s}
@keyframes shake{20%{transform:translateX(-10px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}

/* ---------- nav ---------- */
.nav{position:fixed;left:0;right:0;top:0;z-index:60;height:56px;display:flex;align-items:center;gap:24px;padding:0 var(--gut);background:rgba(11,13,18,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;transition:transform .45s var(--ease)}
.nav.hide{transform:translateY(-100%)}
html:not(.ok) body:not(.open) .nav{visibility:hidden}
.nav-wm svg{width:68px;height:24px;fill:#fff}
.nav-links{display:flex;gap:2px;margin:0 auto}
.nav-links a{display:flex;align-items:baseline;gap:6px;padding:8px 10px;font:600 12px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.6);transition:color .2s}
.nav-links a i{font-style:normal;color:rgba(255,255,255,.35);font-size:10px}
.nav-links a:hover,.nav-links a.cur{color:#fff}
.nav-links a.cur i{color:var(--red)}
.nav-meta{color:rgba(255,255,255,.55)}
.nav-prog{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.08)}
.nav-prog i{position:absolute;left:0;top:0;bottom:0;width:100%;background:var(--red);transform-origin:0 50%;transform:scaleX(0)}

/* ---------- sections ---------- */
.sec{position:relative;padding:clamp(96px,14vh,170px) 0}
.s-red{background:var(--red);color:#fff}
.s-ink{background:var(--ink);color:#fff}
.s-navy{background:var(--navy);color:#fff}
.s-paper{background:var(--paper);color:var(--tx)}
.label{display:flex;align-items:center;gap:14px;font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:28px}
.label span{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 8px}
.s-paper .label span{background:var(--tx);color:var(--paper)}
.s-ink .label span,.s-navy .label span{background:var(--red);color:#fff}
.s-red .label span{background:#fff;color:var(--red)}
.label::after{content:"";flex:1;height:1px;background:currentColor;opacity:.25}
.sec-top{display:grid;grid-template-columns:1fr;margin-bottom:clamp(48px,7vw,96px)}
.title{font-size:clamp(52px,9vw,150px);line-height:.86}
.lede{margin-top:28px;max-width:560px;font-size:clamp(17px,1.5vw,20px);line-height:1.5;opacity:.78}
@media (min-width:1000px){
  .sec-top{grid-template-columns:1fr auto;align-items:end;column-gap:48px}
  .sec-top .label{grid-column:1 / -1}
  .sec-top .lede{margin:0 0 .6em;max-width:400px}
}

/* reveal */
.js .rv{opacity:0;transform:translateY(32px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .ln.rv{opacity:1;transform:none}
.ln{display:block;overflow:hidden;padding-bottom:.04em}
.js .ln>span{display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease)}
.js .ln.in>span{transform:none}
.statement .ln:nth-child(2)>span{transition-delay:.08s}
.statement .ln:nth-child(3)>span{transition-delay:.16s}
.fin-title .ln:nth-child(2)>span{transition-delay:.1s}

/* ---------- hero ---------- */
#hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding:84px 0 clamp(28px,4vh,44px);overflow:hidden;background:var(--navy-d)}
.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,38,83,.55) 0%,rgba(7,38,83,.2) 35%,rgba(7,38,83,.75) 72%,var(--navy-d) 100%),linear-gradient(90deg,rgba(7,38,83,.7),rgba(7,38,83,0) 70%)}
.hero-top,.hero-title,.hero-foot{position:relative;z-index:2}
.hero-top{display:flex;justify-content:space-between;gap:16px;color:rgba(255,255,255,.75);border-top:1px solid rgba(255,255,255,.3);padding-top:12px}
.hero-title{font-size:clamp(46px,14.2vw,250px);line-height:.84;margin-top:auto}
.hero-title .ln>span{transition-delay:.1s}
.hero-title .ln:nth-child(2)>span{transition-delay:.2s}
.hero-title .ln:nth-child(3)>span{transition-delay:.3s}
body.open .hero-title .ln>span{transform:none}
.hero-foot{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;align-items:end;margin-top:clamp(24px,4vh,40px);padding-top:18px;border-top:1px solid rgba(255,255,255,.3)}
.hero-sub{font-size:clamp(16px,1.35vw,19px);line-height:1.5;color:rgba(255,255,255,.82);max-width:460px}
.facts{display:grid;grid-template-columns:.8fr 1.7fr 1fr;gap:0}
.facts div{padding:0 16px;border-left:1px solid rgba(255,255,255,.25)}
.facts dt{color:rgba(255,255,255,.55);margin-bottom:8px}
.facts dd{font:700 clamp(15px,1.4vw,20px)/1.15 var(--display);text-transform:uppercase}
.facts dd small{display:block;margin-top:6px;font-size:10px;line-height:1.35;letter-spacing:.02em;color:rgba(255,255,255,.7)}

/* ---------- 01 intention ---------- */
.statement{font-size:clamp(40px,6.6vw,112px);line-height:.9}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(56px,8vw,110px);border-top:2px solid #fff}
.cols3>div{padding:22px 28px 0 0}
.cols3>div+div{padding-left:28px;border-left:1px solid rgba(255,255,255,.35)}
.cols3 .mono{display:block;margin-bottom:22px;opacity:.8}
.cols3 h3{font-size:clamp(22px,2vw,30px)}
.cols3 p{margin-top:14px;font-size:16px;line-height:1.55;color:rgba(255,255,255,.9);max-width:380px}

/* ---------- 02 animatic ---------- */
.anim{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(24px,3vw,48px);align-items:start}
.screen{position:relative;height:0;padding-bottom:56.25%;background:#000;overflow:hidden}
.screen video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scr-tag,.scr-tc{position:absolute;top:12px;z-index:4;padding:5px 8px;background:rgba(0,0,0,.6);color:#fff;font-size:11px}
.scr-tag{left:12px}
.scr-tc{right:12px;font-variant-numeric:tabular-nums}
.subs{position:absolute;left:50%;bottom:7%;z-index:4;transform:translateX(-50%);max-width:84%;text-align:center;font:700 15px/1.35 var(--body);font-size:var(--subs,15px);color:#fff;background:rgba(0,0,0,.75);padding:.25em .6em;opacity:0;transition:opacity .2s;pointer-events:none}
.subs.on{opacity:1}
.bigplay{position:absolute;left:50%;top:50%;z-index:5;width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .3s var(--ease),opacity .3s}
.bigplay svg{width:36px;height:36px}
.bigplay:hover{transform:scale(1.06)}
.player.playing .bigplay{opacity:0;pointer-events:none}
.ends{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none}
.ends.on{opacity:1}
.ends .ef{opacity:0}
.ends .ef.cur{opacity:1}
/* cartons de fin (motion design) : tailles en --u = 1 % de la largeur du cadre */
.ef{position:absolute;inset:0;display:flex;align-items:center;gap:6%;padding:0 7%;color:#fff;--u:var(--fw,9px)}
.ef-04{background:var(--red)}
.ef-05,.ef-06{background:var(--navy)}
.ef-06{justify-content:center}
.ef-lab{position:absolute;left:3.5%;bottom:5%;font:500 11px/1 var(--mono);font-size:calc(var(--u) * 1.2);letter-spacing:.06em;text-transform:uppercase;opacity:.75}
.ef-packs{display:flex;gap:4%;flex:0 0 38%}
.ef-packs i,.ef-guide i{flex:1;display:flex;align-items:center;justify-content:center;height:calc(var(--u) * 22);border:2px solid rgba(255,255,255,.85);font:500 10px/1.2 var(--mono);font-size:calc(var(--u) * 1.1);font-style:normal;letter-spacing:.05em;text-transform:uppercase;text-align:center;padding:4px;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.08) 0 6px,transparent 6px 12px)}
.ef-guide{flex:0 0 24%;display:flex}
.ef-guide i{height:calc(var(--u) * 28)}
.ef-big{flex:1;font:700 24px/.92 var(--display);font-size:calc(var(--u) * 5.6);text-transform:uppercase;letter-spacing:-.02em}
.ef-05 .ef-big{font-size:calc(var(--u) * 4.6)}
.ef-big em{display:block;margin-top:.5em;font:700 12px/1 var(--mono);font-size:calc(var(--u) * 1.8);font-style:normal;text-transform:none;letter-spacing:0;color:#fff;background:var(--red);width:max-content;padding:.4em .6em}
.ef-logo{display:block;background:#fff;padding:calc(var(--u) * 2) calc(var(--u) * 2.6);width:24%}
.ef-logo img{width:100%;height:auto}
.ctrl{display:flex;align-items:center;gap:14px;margin-top:16px}
.ctl-play{width:44px;height:44px;flex:none;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.ctl-play svg{width:18px;height:18px}
.ctl-play .ic-pause,.player.playing .ctl-play .ic-play{display:none}
.player.playing .ctl-play .ic-pause{display:block}
.ctl-cc{margin-left:auto;padding:11px 12px;border:1px solid var(--line-d);color:rgba(255,255,255,.5);cursor:pointer}
.ctl-cc.on{background:#fff;color:var(--ink);border-color:#fff}
.ruler{position:relative;margin-top:18px;user-select:none;touch-action:none;cursor:pointer}
.r-segs{position:relative;height:56px}
.r-seg{position:absolute;top:0;bottom:0;left:calc(var(--a) / 15 * 100%);width:calc((var(--b) - var(--a)) / 15 * 100% - 2px);background:rgba(255,255,255,.08);padding:9px 10px;overflow:hidden;transition:background .2s}
.r-seg b{display:block;font:700 15px/1 var(--display)}
.r-seg span{display:block;margin-top:6px;font:500 11px/1 var(--mono);text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap}
.r-seg.md{background:rgba(238,0,38,.22)}
.r-seg.cur{background:#fff;color:var(--ink)}
.r-seg.cur span{color:var(--tx-2)}
.r-seg.md.cur{background:var(--red);color:#fff}
.r-seg.md.cur span{color:rgba(255,255,255,.8)}
.r-ticks{position:relative;height:22px;margin-top:6px}
.r-ticks i{position:absolute;top:0;width:1px;height:5px;background:rgba(255,255,255,.3)}
.r-ticks i.maj{height:9px;background:rgba(255,255,255,.6)}
.r-ticks em{position:absolute;top:11px;transform:translateX(-50%);font:500 10px/1 var(--mono);font-style:normal;color:rgba(255,255,255,.45)}
.r-head{position:absolute;top:-6px;bottom:0;left:0;width:2px;margin-left:-1px;background:var(--red);pointer-events:none}
.r-head::before{content:"";position:absolute;left:-5px;top:0;width:12px;height:12px;background:var(--red)}
.script{display:flex;flex-direction:column;border-top:2px solid #fff}
.script li{padding:16px 0 16px 16px;border-bottom:1px solid var(--line-d);cursor:pointer;position:relative}
.script li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transition:transform .3s var(--ease)}
.script li .mono{color:rgba(255,255,255,.45);font-size:11px}
.script li p{margin-top:8px;font:700 17px/1.1 var(--display);text-transform:uppercase;letter-spacing:-.01em;color:rgba(255,255,255,.5);transition:color .25s}
.script li:hover p{color:rgba(255,255,255,.8)}
.script li.cur::before{transform:scaleY(1)}
.script li.cur p{color:#fff}
.script li.cur .mono{color:var(--red)}

/* marquee */
.marquee{background:var(--red);color:#fff;overflow:hidden;white-space:nowrap;padding:18px 0}
.mq-track{display:inline-flex;align-items:center;gap:40px;animation:mq 38s linear infinite;padding-left:40px}
.mq-track span{font:700 clamp(40px,6.4vw,104px)/1 var(--display);text-transform:uppercase;letter-spacing:-.02em}
.mq-track i{width:.5em;height:.5em;font-size:clamp(40px,6.4vw,104px);background:var(--ink);flex:none}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- 03 découpage ---------- */
.edit{display:flex;height:76px;gap:2px;margin-bottom:8px}
.e-seg{flex:var(--f) 1 0;min-width:0;background:var(--tx);color:var(--paper);padding:10px 12px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:background .2s}
.e-seg:hover{background:var(--navy)}
.e-seg.md{background:var(--red);color:#fff}
.e-seg.md:hover{background:var(--red-d)}
.e-seg b{font:700 20px/1 var(--display)}
.e-seg span{font:500 11px/1 var(--mono);text-transform:uppercase;white-space:nowrap;opacity:.7}
.edit-ruler{display:flex;justify-content:space-between;color:var(--tx-3);margin-bottom:clamp(64px,8vw,110px)}
.shot{padding-top:clamp(40px,5vw,64px);margin-bottom:clamp(80px,10vw,150px);border-top:2px solid var(--tx)}
.shot:last-child{margin-bottom:0}
.shot-head{display:flex;align-items:flex-end;gap:clamp(20px,3vw,48px);margin-bottom:clamp(28px,3.5vw,48px)}
.shot-n{font:700 clamp(110px,17vw,280px)/.74 var(--display);letter-spacing:-.04em;color:var(--red);display:flex;align-items:flex-start}
.shot-n small{font-size:.32em;line-height:1;margin-left:.08em;color:var(--tx)}
.shot-n small::before{content:"→ "}
.shot-head h3{font-size:clamp(40px,6vw,100px);line-height:.86}
.shot-tc{display:flex;flex-wrap:wrap;gap:6px 0;margin-top:14px;color:var(--tx-2)}
.shot-tc span+span::before{content:"/";margin:0 10px;color:var(--tx-3)}
.shot-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:start}
.shot-media{position:relative}
.ratio{position:relative;height:0;padding-bottom:56.25%;overflow:hidden;background:#d8d3c8}
.ratio>video,.ratio>img,.ratio>.ef{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:10px;top:10px;padding:5px 8px;background:var(--ink);color:#fff;font-size:10px}
.specs{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--tx)}
.specs>div{padding:14px 16px 14px 0;border-bottom:1px solid var(--line)}
.specs>div:nth-child(2n){padding-left:16px;border-left:1px solid var(--line)}
.specs>div.wide{grid-column:1 / -1;padding-left:0;border-left:0}
.specs dt{font:600 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--tx-3);margin-bottom:8px}
.specs dd{font-size:15px;line-height:1.4;font-weight:600;color:var(--tx)}
.specs>div.hl dd{color:var(--red)}
.specs-4{grid-template-columns:repeat(4,1fr);margin-top:28px}
.specs-4>div:nth-child(n){padding:14px 16px;border-left:1px solid var(--line)}
.specs-4>div:first-child{padding-left:0;border-left:0}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:clamp(20px,2.4vw,32px);background:var(--tx);padding:2px}
.strip figure{position:relative;height:0;padding-bottom:56.25%;background:#000;overflow:hidden}
.strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.strip figcaption{position:absolute;left:0;bottom:0;padding:4px 7px;background:var(--ink);color:#fff;font-size:10px}
.ann{display:flex;align-items:baseline;gap:24px;margin-top:2px;background:var(--ink);color:#fff;padding:20px 24px}
.ann .mono{flex:none;color:var(--red);font-weight:700}
.ann p{font:700 clamp(18px,2vw,28px)/1.1 var(--display);text-transform:uppercase;letter-spacing:-.01em}
.md-frames{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px)}
.md-frames figcaption{margin-top:10px;color:var(--tx-2);font-size:11px}
.ef.static .ef-lab{display:none}

/* ---------- 04 plan au sol ---------- */
.floor{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,3vw,56px);align-items:start}
.floor-svg svg{width:100%;height:auto;overflow:visible}
.fp-room .wall{fill:rgba(255,255,255,.03);stroke:#fff;stroke-width:4}
.fp-room .gap{stroke:var(--navy);stroke-width:6}
.fp-room .win{stroke:rgba(255,255,255,.7);stroke-width:1.5}
.fp-room .furn{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.55);stroke-width:1.5}
.fp-room .rug{fill:none;stroke:rgba(255,255,255,.3);stroke-width:1.5;stroke-dasharray:6 6}
.fp-room .tree{fill:rgba(255,255,255,.1);stroke:#fff;stroke-width:2;stroke-dasharray:3 5}
.fp-room .mess{stroke:rgba(238,0,38,.6);stroke-width:1}
.fp-t{font:500 14px var(--mono);fill:rgba(255,255,255,.75);text-anchor:middle;text-transform:uppercase;letter-spacing:.06em}
.fp-t.s{font-size:12px;fill:rgba(255,255,255,.5)}
.fp-t.red{fill:#ff6b80;text-anchor:start}
.fp-subj .dog{fill:#fff}
.fp-subj .dog.alt{fill:var(--navy);stroke:#fff;stroke-width:2;stroke-dasharray:4 3}
.fp-subj .box{fill:#fff}
.fp-d{font:700 14px var(--mono);fill:var(--navy);text-anchor:middle}
.fp-d.w{fill:#fff}
.cam{transition:opacity .4s}
.cam .cone{fill:rgba(238,0,38,.22);stroke:var(--red);stroke-width:2;stroke-linejoin:round;transition:fill .4s}
.cam .body{fill:var(--red)}
.fp-c{font:700 16px var(--mono);fill:#fff;text-anchor:middle}
.floor.focus .cam{opacity:.15}
.floor.focus .cam.on{opacity:1}
.floor.focus .cam.on .cone{fill:rgba(238,0,38,.4)}
.floor-leg{display:flex;flex-wrap:wrap;gap:20px;margin-top:18px;color:rgba(255,255,255,.65)}
.floor-leg span{display:flex;align-items:center;gap:8px}
.floor-leg i{width:12px;height:12px;display:inline-block}
.lg-dog{background:#fff;border-radius:50%}
.lg-box{background:#fff}
.lg-cam{background:var(--red)}
.cams{display:flex;flex-direction:column;border-top:2px solid #fff}
.cam-card{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--line-d);cursor:pointer;transition:background .25s,padding .3s var(--ease)}
.cam-card b{font:700 clamp(40px,4.4vw,64px)/.8 var(--display);color:rgba(255,255,255,.25);transition:color .3s;min-width:2.1em}
.cam-card h3{font-size:clamp(18px,1.6vw,22px)}
.cam-card .mono{margin-top:8px;color:rgba(255,255,255,.6);font-size:11px}
.cam-card p:last-child{margin-top:8px;font-size:15px;line-height:1.45;color:rgba(255,255,255,.75)}
.cam-card.on b{color:var(--red)}
.cam-card.on{background:rgba(255,255,255,.05);padding-left:14px}

/* ---------- 05 plateau ---------- */
.plateau{display:block}
.col-lab{color:var(--tx-3);padding-bottom:14px;border-bottom:2px solid var(--tx)}
.order ol{display:grid;grid-template-columns:repeat(5,1fr);column-gap:clamp(16px,2vw,32px)}
.order li{display:flex;flex-direction:column;gap:18px;padding:26px 0 0}
.order li b{font:700 clamp(36px,3.6vw,56px)/.8 var(--display);color:var(--red);min-width:1.6em}
.order h3{font-size:clamp(20px,1.8vw,26px)}
.order p{margin-top:8px;font-size:15px;line-height:1.5;color:var(--tx-2)}
.cast dl>div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.cast dt{font:700 15px/1.2 var(--display);text-transform:uppercase}
.cast dd{font-size:15px;line-height:1.5;color:var(--tx-2)}

/* ---------- 06 projets ---------- */
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,24px)}
.proj{position:relative;display:block;overflow:hidden;background:#000;color:#fff}
.proj.p-a{grid-column:1 / span 2;grid-row:1}
.proj.p-tall{grid-column:3;grid-row:1 / span 2}
.proj.p-b{grid-column:1;grid-row:2}
.proj.p-c{grid-column:2;grid-row:2}
.proj-media{position:relative;height:0;padding-bottom:56.25%;overflow:hidden}
.proj.p-tall .proj-media{position:absolute;inset:0;height:auto;padding:0}
.proj.p-b .proj-txt h3,.proj.p-c .proj-txt h3{font-size:clamp(20px,1.8vw,28px)}
.proj.p-a .proj-txt h3{font-size:clamp(30px,3.6vw,58px)}
.proj-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.proj:hover .proj-media img{transform:scale(1.04)}
.proj-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.8) 100%)}
.proj-play{position:absolute;right:18px;top:18px;z-index:2;width:56px;height:56px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s}
.proj-play svg{width:22px;height:22px}
.proj:hover .proj-play{background:var(--red);color:#fff}
.proj-txt{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(18px,2vw,28px)}
.proj-txt .mono{color:rgba(255,255,255,.7)}
.proj-txt h3{margin-top:10px;font-size:clamp(26px,3vw,48px)}

/* ---------- 07 suite ---------- */
.gantt{position:relative;--lab:340px;padding-top:34px}
.g-head{position:relative;height:28px;margin-left:var(--lab);border-bottom:2px solid var(--tx);color:var(--tx-3)}
.g-head span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.g-head span:first-child{transform:none}
.g-head span:last-child{transform:translateX(-100%)}
.g-row{display:grid;grid-template-columns:var(--lab) 1fr;align-items:stretch;border-bottom:1px solid var(--line);min-height:76px}
.g-lab{padding:14px 20px 14px 0;align-self:center}
.g-lab h3{font-size:clamp(18px,1.7vw,24px)}
.g-lab .mono{display:block;margin-top:6px;color:var(--tx-2);font-size:11px;text-transform:none;letter-spacing:.02em}
.g-track{position:relative;min-height:76px}
.g-track i{position:absolute;top:50%;height:22px;margin-top:-11px;background:var(--tx);min-width:12px;transform-origin:0 50%;transform:scaleX(0);transition:transform .9s var(--ease)}
.gantt.in .g-track i{transform:scaleX(1)}
.g-row.key .g-track i{background:var(--red)}
.g-row.past .g-track i{background:rgba(11,13,18,.3)}
.g-row.opt .g-track i{background:transparent;box-shadow:inset 0 0 0 2px var(--red)}
.g-row.opt .g-track i::after{content:attr(data-l);position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:4px;font:500 10px/1 var(--mono);color:var(--red);white-space:nowrap}
.g-row.past .g-lab h3{color:var(--tx-3)}
.g-today{position:absolute;top:34px;bottom:0;width:2px;margin-left:-1px;background:var(--red);pointer-events:none}
.g-today span{position:absolute;top:-30px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;padding:5px 8px;white-space:nowrap;font-size:10px}

/* ---------- fin ---------- */
#fin{padding:clamp(110px,16vh,190px) 0 clamp(64px,8vh,96px)}
.fin-title{font-size:clamp(32px,9.2vw,168px);line-height:.84}
.fin-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;margin-top:clamp(40px,6vw,80px);padding-top:22px;border-top:2px solid #fff}
.fin-row p{font:700 clamp(20px,2vw,30px)/1 var(--display);text-transform:uppercase}
.btn{display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 26px;background:var(--ink);color:#fff;font:700 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;transition:background .2s,color .2s}
.btn svg{width:18px;height:18px}
.btn:hover{background:#fff;color:var(--ink)}
.foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:26px var(--gut) calc(26px + env(safe-area-inset-bottom));background:var(--ink);color:rgba(255,255,255,.5)}
.foot-wm{width:78px;height:27px;fill:#fff}

/* ---------- visionneuse ---------- */
#lightbox{position:fixed;inset:0;z-index:90;background:rgba(5,6,9,.94);display:flex;align-items:center;justify-content:center;padding:64px 16px;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
#lightbox.on{opacity:1;visibility:visible}
.lb-frame{position:relative;width:min(1200px,100%);background:#000}
.lb-ratio{position:relative;height:0}
.lb-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb-close{position:absolute;right:16px;top:14px;width:48px;height:48px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.lb-close svg{width:22px;height:22px}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav-links a{padding:8px 6px}
  .nav-links a i{display:none}
  .nav-meta{display:none}
  .anim{grid-template-columns:1fr}
  .script{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));column-gap:20px}
}
@media (max-width:900px){
  .nav-links{display:none}
  .nav{justify-content:space-between}
  .nav-meta{display:block}
  .hero-top span:nth-child(2){display:none}
  .hero-foot{grid-template-columns:1fr}
  .facts{grid-template-columns:repeat(2,1fr);row-gap:16px}
  .facts div:nth-child(odd){border-left:0;padding-left:0}
  .cols3{grid-template-columns:1fr}
  .cols3>div,.cols3>div+div{padding:22px 0 24px;border-left:0;border-bottom:1px solid rgba(255,255,255,.35)}
  .shot-body,.floor,.plateau{grid-template-columns:1fr}
  .order ol{grid-template-columns:1fr}
  .order li{flex-direction:row;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}
  .strip{grid-template-columns:repeat(2,1fr)}
  .md-frames{grid-template-columns:1fr}
  .specs-4{grid-template-columns:1fr 1fr}
  .specs-4>div:nth-child(n){padding:14px 16px 14px 0;border-left:0}
  .specs-4>div:nth-child(2n){padding-left:16px;border-left:1px solid var(--line)}
  .proj-grid{grid-template-columns:1fr}
  .proj.p-a,.proj.p-tall,.proj.p-b,.proj.p-c{grid-column:auto;grid-row:auto}
  .proj.p-tall .proj-media{position:relative;height:0;padding-bottom:125%}
  .gantt{--lab:0px;padding-top:0}
  .g-head{margin-left:0}
  .g-row{grid-template-columns:1fr;min-height:0}
  .g-lab{padding:14px 0 4px}
  .g-track{min-height:34px}
  .g-today{display:none}
  .ann{flex-direction:column;gap:8px}
}
@media (max-width:560px){
  .mono{font-size:11px}
  .ctrl{flex-wrap:wrap}
  .r-seg span{display:none}
  .r-seg{padding:8px 3px}
  .r-seg b{font-size:10px;letter-spacing:-.04em}
  .r-segs{height:36px}
  .e-seg span{display:none}
  .e-seg{padding:8px 3px}
  .e-seg b{font-size:11px;letter-spacing:-.04em}
  .edit{height:56px}
  .specs{grid-template-columns:1fr}
  .specs>div:nth-child(2n){padding-left:0;border-left:0}
  .cast dl>div{grid-template-columns:1fr;gap:6px}
  .shot-head{flex-direction:column;align-items:flex-start;gap:14px}
  .bigplay{width:68px;height:68px;margin:-34px 0 0 -34px}
  .hero-top span:nth-child(3){display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

@media (max-width:900px){.g-row.opt .g-track{min-height:46px}.g-row.opt .g-track i{margin-top:-15px}}
#projets .sec-top{margin-bottom:clamp(24px,3vw,40px)}
