/* mOst · medellín — DA « señal » : vidéo plein cadre, super 8, triptyques, typographie géante en minuscules.
   Palette mOst : bleu #00507d · jaune #fcef87 · vert #c7e4d8 · rose #f3cbe1 (jamais de noir). */
@font-face{font-family:"Hira";src:url(fonts/hiragino-w8-latin.woff2) format("woff2");font-display:swap}
@font-face{font-family:"LGC";src:url(fonts/lgc-regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"LGC";src:url(fonts/lgc-bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"BW";src:url(fonts/bothways.woff2) format("woff2");font-display:swap}

:root{
  --bleu:#00507d;--jaune:#fcef87;--vert:#c7e4d8;--rose:#f3cbe1;--blanc:#ffffff;
  --b90:rgba(0,80,125,.9);--b60:rgba(0,80,125,.6);--b30:rgba(0,80,125,.3);
  --acc:var(--jaune);
  --pad:clamp(16px,4.2vw,64px);--hdr:64px;--rule:4px;
  --f-t:"Hira","Hiragino Kaku Gothic StdN","Hiragino Sans",system-ui,sans-serif;
  --f-b:"LGC","Helvetica Neue",Arial,sans-serif;
  --f-h:"BW","LGC",cursive;
}
.a-jaune{--acc:var(--jaune)}.a-rose{--acc:var(--rose)}.a-vert{--acc:var(--vert)}.a-blanc{--acc:#ffffff}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 56px)}
body{margin:0;background:var(--bleu);color:#fff;font:400 19px/1.56 var(--f-b);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}img,video{height:auto}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
p,li,dd,figcaption,blockquote,.just{text-align:justify;text-align-last:left;hyphens:none;-webkit-hyphens:none;text-wrap:pretty}
:is(li,dd,figcaption,blockquote,.just) :is(h1,h2,h3,h4,.t){text-align:left;text-align-last:left}
h1,h2,h3,h4,.t{font-family:var(--f-t);font-weight:400;text-transform:lowercase;letter-spacing:-.012em;line-height:.9;margin:0}
.nm{text-transform:none}
.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:8px;top:8px;z-index:200;background:var(--jaune);color:var(--bleu);padding:8px 12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hand{font-family:var(--f-h);text-transform:none;text-align:left;letter-spacing:0}
.kick{font:700 14px/1.2 var(--f-b);letter-spacing:.09em;text-transform:lowercase;display:inline-flex;gap:10px;align-items:center;margin:0 0 18px}
.kick::before{content:"";width:28px;height:var(--rule);background:currentColor;display:inline-block}
.lede{font-size:clamp(22px,2.2vw,32px);line-height:1.34;max-width:34em}
.muted{opacity:.72}
.pill{display:inline-flex;align-items:center;gap:10px;padding:11px 20px 12px;border-radius:999px;background:var(--acc);color:var(--bleu);font:700 16px/1 var(--f-b);text-decoration:none;white-space:nowrap;transition:transform .2s,background .2s}
.pill:hover{transform:translateY(-2px)}@media (max-width:480px){.pill{white-space:normal;max-width:100%;line-height:1.25;text-align:left}}
.pill.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.pill.ghost:hover{background:#fff;color:var(--bleu)}
.pill .ic{width:0;height:0;border-left:9px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}
.arrow{font-family:var(--f-t)}

/* ------------------------------------------------------------------ en-tête */
.hdr{position:fixed;inset:0 0 auto 0;height:var(--hdr);z-index:60;color:#fff;transition:background .35s,box-shadow .35s}
.hdr.solid{background:var(--bleu);box-shadow:0 var(--rule) 0 var(--acc)}
.hdr-in{height:100%;display:flex;align-items:center;gap:22px;padding:0 var(--pad)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{height:26px;width:auto}
.brand b{font:400 22px/1 var(--f-t);letter-spacing:-.01em;padding-top:2px}
.nav{margin-left:auto;display:flex;gap:clamp(12px,1.8vw,26px);align-items:center}
.nav a{font:700 15px/1 var(--f-b);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a.on{border-bottom-color:var(--acc)}
.langs{display:flex;gap:10px;margin-left:clamp(10px,2vw,28px);font:700 13px/1 var(--f-b);letter-spacing:.06em}
.langs a{text-decoration:none;opacity:.55;padding:6px 2px}
.langs a.on{opacity:1;box-shadow:0 2px 0 var(--acc)}
.menu-btn{display:none;font:700 15px/1 var(--f-b);padding:10px 16px;border-radius:999px;box-shadow:inset 0 0 0 2px #fff;margin-left:auto}
@media (max-width:980px){.nav{display:none}.menu-btn{display:inline-flex}.langs{margin-left:12px}}
@media (max-width:420px){.brand b{display:none}.langs{gap:6px}}

/* menu plein écran : vidéo derrière, titres géants au trait (réf. Lafayette Anticipations) */
.menu{position:fixed;inset:0;z-index:80;background:var(--bleu);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .35s}
.menu.open{opacity:1;pointer-events:auto}
.menu-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42;filter:saturate(.7)}
.menu-top{position:relative;height:var(--hdr);display:flex;align-items:center;padding:0 var(--pad)}
.menu-top .close{margin-left:auto;font:700 15px/1 var(--f-b);padding:10px 16px;border-radius:999px;box-shadow:inset 0 0 0 2px #fff}
.menu-list{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(4px,1.2vh,14px);padding:2vh var(--pad);overflow:auto}
.menu-list > :first-child{margin-top:auto}.menu-list > :last-child{margin-bottom:auto}
.menu-list a{font:400 clamp(34px,min(7vw,8.5vh),120px)/.92 var(--f-t);text-transform:lowercase;color:transparent;-webkit-text-stroke:1.6px #fff;text-decoration:none;transition:color .2s}
.menu-list a small{font:700 14px/1 var(--f-b);-webkit-text-stroke:0;color:#fff;vertical-align:top;margin-right:12px;letter-spacing:.06em}
.menu-list a:hover,.menu-list a:focus{color:var(--jaune);-webkit-text-stroke-color:var(--jaune)}
.menu-foot{position:relative;display:flex;flex-wrap:wrap;gap:12px 28px;padding:18px var(--pad) 28px;font:700 15px/1 var(--f-b)}
.menu-foot a{text-decoration:none;border-bottom:2px solid var(--acc)}

/* ------------------------------------------------------------------ vidéos */
video.lz{background:var(--bleu)}
.vbox{position:relative;overflow:hidden;background:var(--bleu)}
.vbox video{width:100%;height:100%;object-fit:cover}
.tc{font:700 13px/1 var(--f-b);letter-spacing:.1em;font-variant-numeric:tabular-nums}
.rec{display:inline-flex;align-items:center;gap:10px;font:700 13px/1 var(--f-b);letter-spacing:.1em}
.rec i{width:11px;height:11px;border-radius:50%;background:var(--rose);animation:blink 1.2s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.vf{position:absolute;inset:14px;pointer-events:none;z-index:3}
.vf::before,.vf::after{content:"";position:absolute;width:26px;height:26px;border:3px solid #fff}
.vf::before{left:0;top:0;border-right:0;border-bottom:0}
.vf::after{right:0;bottom:0;border-left:0;border-top:0}

/* ------------------------------------------------------------------ accueil : héros super 8 */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;background:var(--bleu)}
.hero .hero-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,80,125,.55) 0%,rgba(0,80,125,0) 22%,rgba(0,80,125,0) 48%,rgba(0,80,125,.92) 100%);z-index:1}
.perfs{position:absolute;top:0;bottom:0;left:0;width:44px;z-index:2;background:var(--bleu);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='92'%3E%3Crect x='11' y='20' width='22' height='34' rx='6' fill='%23ffffff' fill-opacity='.92'/%3E%3C/svg%3E");background-repeat:repeat-y;background-size:44px 92px;animation:perf 1.1s linear infinite}
.perfs.r{left:auto;right:0}
@keyframes perf{to{background-position:0 92px}}
.hero-top{position:absolute;z-index:3;top:calc(var(--hdr) + 18px);left:calc(var(--pad) + 44px);right:calc(var(--pad) + 44px);display:flex;justify-content:space-between;gap:16px;align-items:center}
.hero-bot{position:absolute;z-index:3;left:calc(var(--pad) + 44px);right:calc(var(--pad) + 44px);bottom:clamp(24px,5vh,56px)}
.hero .hero-bot h1{font-size:min(var(--hmax,380px),calc((var(--vw,100vw) - 2*var(--pad) - 88px)/var(--lw,5.12)));white-space:nowrap;color:var(--jaune);line-height:.78;margin:0 0 clamp(14px,2.2vh,26px) -.04em}
.hero-row{display:flex;flex-wrap:wrap;gap:18px 34px;align-items:flex-end;justify-content:space-between}
.hero .sub{max-width:31em;font-size:clamp(18px,1.55vw,23px);line-height:1.38;margin:0}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:700px){.perfs{width:26px;background-size:26px 56px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='56'%3E%3Crect x='6' y='12' width='14' height='20' rx='4' fill='%23ffffff' fill-opacity='.92'/%3E%3C/svg%3E")}@keyframes perf{to{background-position:0 56px}}.hero-top,.hero-bot{left:calc(var(--pad) + 26px);right:calc(var(--pad) + 26px)}.hero-top .tc{display:none}}

/* manifeste : révélation mot à mot */
.manifesto{background:var(--jaune);color:var(--bleu);padding:clamp(90px,20vh,220px) var(--pad)}
.manifesto p{font:400 clamp(32px,5.3vw,92px)/1.02 var(--f-t);text-align:left;margin:0;max-width:15.5em;text-transform:lowercase}
.manifesto .w{opacity:.13;transition:opacity .5s}
.manifesto .w.on{opacity:1}

/* ------------------------------------------------------------------ sections génériques */
.sec{padding:clamp(80px,14vh,170px) var(--pad)}
.sec-h{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,7vh,80px)}
.sec-h h2{font-size:min(clamp(60px,10.5vw,190px),calc((var(--vw,100vw) - 2*var(--pad) - clamp(24px,5vw,80px))*.512/var(--lw,1)));color:var(--acc)}
.sec-h .lede{margin:0}
@media (max-width:860px){.sec-h{grid-template-columns:1fr}.sec-h h2{font-size:min(clamp(52px,13vw,120px),calc((var(--vw,100vw) - 2*var(--pad))/var(--lw,1)))}}
.light{background:var(--acc);color:var(--bleu)}
.light .sec-h h2{color:var(--bleu)}
.light .pill{background:var(--bleu);color:var(--acc)}
.light .pill.ghost{background:transparent;color:var(--bleu);box-shadow:inset 0 0 0 2px var(--bleu)}
.rule{border:0;border-top:var(--rule) solid var(--acc);margin:0}

/* liste des projets (au trait, remplissage au survol) */
.pidx{border-bottom:var(--rule) solid var(--acc)}
.pidx a.row{display:grid;grid-template-columns:clamp(54px,7vw,110px) minmax(0,1fr) auto;gap:14px 20px;align-items:baseline;border-top:var(--rule) solid var(--acc);padding:clamp(14px,2.4vh,24px) 0 clamp(18px,3vh,30px);text-decoration:none}
.pidx .n{font:400 clamp(20px,2vw,30px)/1 var(--f-t);color:var(--acc)}
.pidx .t{font-size:clamp(40px,7.2vw,128px);line-height:.9;color:transparent;-webkit-text-stroke:1.6px #fff;transition:color .25s,-webkit-text-stroke-color .25s}
.pidx .m{font:700 14px/1.35 var(--f-b);text-align:right;letter-spacing:.03em;max-width:17em}
.pidx a.row:hover .t,.pidx a.row:focus .t{color:var(--acc);-webkit-text-stroke-color:var(--acc)}
.pidx .soon{display:inline-block;margin-left:14px;vertical-align:middle;font:700 13px/1 var(--f-b);-webkit-text-stroke:0;color:var(--bleu);background:var(--acc);padding:6px 10px;border-radius:99px;letter-spacing:.05em;transform:translateY(-.6em)}
@media (max-width:760px){.pidx a.row{grid-template-columns:44px 1fr}.pidx .m{grid-column:2;text-align:left}}
.peek{position:fixed;left:0;top:0;width:clamp(160px,15vw,240px);aspect-ratio:9/16;z-index:45;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .25s,transform .25s;box-shadow:0 0 0 var(--rule) var(--acc);background:var(--bleu)}
.peek.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.peek video{width:100%;height:100%;object-fit:cover}
@media (hover:none){.peek{display:none}}

/* chapitres en triptyque (réf. Kaleidoscope) */
.chap{position:relative;height:175vh;background:var(--bleu)}
.chap .stage{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1vw,16px);padding:calc(var(--hdr) + 10px) clamp(8px,1vw,16px) clamp(8px,1vw,16px);overflow:hidden}
.chap .panel{position:relative;overflow:hidden;background:var(--b60)}
.chap .panel video,.chap .panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.chap .panel.side{transform:translateY(var(--py,0));transition:transform .08s linear;will-change:transform}
.chap .cap{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:0 var(--pad) clamp(28px,6vh,64px);pointer-events:none;background:linear-gradient(0deg,rgba(0,80,125,.86),rgba(0,80,125,0));padding-top:18vh}
.chap .cap *{pointer-events:auto}
.chap .num{font:400 clamp(22px,2.4vw,36px)/1 var(--f-t);color:var(--acc);margin-bottom:10px;display:block}
.chap h2{font-size:min(clamp(50px,9.4vw,176px),calc((var(--vw,100vw) - 2*var(--pad))/var(--lw,1)));color:var(--acc);line-height:.86;max-width:10.5em}
.chap .cap-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 30px;margin-top:clamp(14px,2.5vh,26px)}
.chap .cap-row p{max-width:34em;margin:0;font-size:clamp(17px,1.35vw,20px);line-height:1.45}
.chap .meta{font:700 14px/1.2 var(--f-b);letter-spacing:.04em;margin:0 0 8px}
.chap .tcx{position:absolute;top:calc(var(--hdr) + 26px);right:calc(var(--pad));z-index:4}
@media (max-width:760px){.chap{height:auto}.chap .stage{position:relative;height:100svh;grid-template-columns:1fr;padding:var(--hdr) 0 0}.chap .panel.side{display:none}}

/* ------------------------------------------------------------------ carte */
.mapsec{background:var(--bleu);padding-top:clamp(80px,14vh,170px)}
.mapsec .sec-h{padding:0 var(--pad)}
.map{position:relative;height:min(94svh,1000px);overflow:hidden;border-top:var(--rule) solid var(--jaune);border-bottom:var(--rule) solid var(--jaune);background:var(--bleu);touch-action:pan-y}
.map svg.mapsvg{position:absolute;inset:0;width:100%;height:100%}
.map .tools{position:absolute;z-index:5;top:18px;left:var(--pad);display:flex;gap:10px;flex-wrap:wrap}
.map .tools button{font:700 14px/1 var(--f-b);padding:10px 16px;border-radius:99px;box-shadow:inset 0 0 0 2px #fff;background:var(--b60)}
.map .tools button.on{background:var(--jaune);color:var(--bleu);box-shadow:none}
.map .legend{position:absolute;z-index:5;left:var(--pad);bottom:18px;width:min(360px,calc(100% - 2 * var(--pad)));background:var(--b90);padding:18px 20px 16px;box-shadow:0 0 0 2px var(--jaune)}
.map .legend h3{font-size:20px;color:var(--jaune);margin:0 0 12px}
.map .legend ol{list-style:none;margin:0;padding:0}
.map .legend li{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;padding:7px 0;border-top:1px solid rgba(255,255,255,.18);text-align:left}
.map .legend li a{text-decoration:none}
.map .legend .n{width:34px;height:34px;border-radius:50%;background:var(--jaune);color:var(--bleu);display:grid;place-items:center;font:400 14px/1 var(--f-t)}
.map .legend b{font:400 18px/1.05 var(--f-t);text-transform:lowercase;display:block}
.map .legend span{font:700 12px/1.3 var(--f-b);opacity:.8}
.map .legend li.on{background:rgba(252,239,135,.12)}
.map .keys{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font:700 12px/1.2 var(--f-b);opacity:.85}
.map .keys i{display:inline-block;width:22px;height:0;border-top:2px solid #fff;vertical-align:middle;margin-right:6px}
.map .keys i.c{border-top-style:dashed;border-color:rgba(255,255,255,.7)}.map .keys i.r{border-top:4px solid var(--vert)}.map .keys i.k{border-top:2px dotted var(--rose)}
.map .keys i.z{border-top:1px solid rgba(255,255,255,.4)}
@media (max-width:760px){.map{height:auto}.map .mapwrap{position:relative;height:78svh}.map .legend{position:relative;left:auto;bottom:auto;width:auto;margin:0;box-shadow:none;border-top:var(--rule) solid var(--jaune)}}
.map .sbar{position:absolute;z-index:4;right:var(--pad);bottom:22px;display:flex;flex-direction:column;align-items:flex-end;gap:7px;font:700 12px/1 var(--f-b);letter-spacing:.08em;pointer-events:none}.map .sbar i{display:block;height:7px;min-width:24px;border:2px solid #fff;border-top:0;transition:width .3s}
.mapsvg .poi{cursor:pointer}
.mapsvg .poi-p circle{fill:var(--jaune)}
.mapsvg .poi-p .halo{fill:none;stroke:var(--jaune);stroke-width:2;opacity:.9;animation:halo 2.4s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes halo{0%{transform:scale(.55);opacity:.95}100%{transform:scale(1.25);opacity:0}}
.mapsvg .poi-p .num{font:400 18px var(--f-t);fill:var(--bleu);text-anchor:middle}
.mapsvg .lab{font:400 22px var(--f-t);fill:#fff;paint-order:stroke;stroke:var(--bleu);stroke-width:5px;stroke-linejoin:round}
.mapsvg .alt,.mapsvg .note{font:700 13px var(--f-b);fill:#fff;paint-order:stroke;stroke:var(--bleu);stroke-width:4px}
.mapsvg .poi-s circle{fill:#fff}
.mapsvg .poi-s .lab{font-size:17px}
.mapsvg .lab-comuna{font:400 20px var(--f-t);fill:var(--jaune);letter-spacing:.02em}
.mapsvg .lab-rio{font:700 16px var(--f-b);fill:var(--vert);letter-spacing:.16em}
.mapsvg .scale path{stroke:#fff;stroke-width:2;fill:none}
.mapsvg .scale text,.mapsvg .north text{font:700 13px var(--f-b);fill:#fff}
.mapsvg .north path{fill:#fff}
.mapsvg .poi.on circle{fill:#fff}
.map.full .mapsvg .poi-s,.map.full .mapsvg .poi-p .lab,.map.full .mapsvg .poi-p .alt{opacity:0;transition:opacity .3s}
.map.east .mapsvg .poi-s,.map.east .mapsvg .poi-p .lab,.map.east .mapsvg .poi-p .alt{opacity:1;transition:opacity .6s .5s}.map.full .mapsvg .poi-c{opacity:1}.map.east .mapsvg .poi-c{opacity:0;pointer-events:none}@media (max-width:760px){.map.east .mapsvg .poi-s{opacity:0;pointer-events:none}.mapsvg .lab-comuna{display:none}}.pscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}@media (max-width:760px){.pscroll svg.profile{width:940px;max-width:none}}@media (max-width:700px){.hero .hero-bot h1{font-size:min(var(--hmax,380px),calc((var(--vw,100vw) - 2*var(--pad) - 56px)/var(--lw,5.12)))}}
.profile-wrap{padding:clamp(40px,7vh,80px) var(--pad) clamp(80px,12vh,140px);display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,2fr);gap:clamp(20px,4vw,60px);align-items:end}
.profile-wrap h3{font-size:clamp(34px,4vw,64px);font-size:min(clamp(34px,4vw,64px),calc(98cqw / var(--lw,1)));color:var(--jaune);margin-bottom:14px}
.profile-wrap p{margin:0}
svg.profile{width:100%;height:auto;overflow:visible}
svg.profile .g{stroke:rgba(255,255,255,.14);stroke-width:1}
svg.profile .gy{font:700 12px var(--f-b);fill:rgba(255,255,255,.6)}
svg.profile .area{fill:var(--vert);fill-opacity:.16}
svg.profile .line{fill:none;stroke:var(--vert);stroke-width:3;stroke-linejoin:round}
svg.profile .mk line{stroke:rgba(255,255,255,.4);stroke-dasharray:3 4}
svg.profile .mk circle{fill:#fff}
svg.profile .mk.gol circle{fill:var(--jaune);r:11px}
svg.profile .mk text{font:400 20px var(--f-t);fill:#fff;text-transform:lowercase}
svg.profile .mk text.a{font:700 13px var(--f-b);fill:rgba(255,255,255,.8)}
svg.profile .mk.gol text{fill:var(--jaune)}
svg.profile .ridge,svg.profile .axis{font:700 13px var(--f-b);fill:rgba(255,255,255,.7)}
@media (max-width:860px){.profile-wrap{grid-template-columns:1fr}}

/* ------------------------------------------------------------------ expositions (liste façon programme) */
.expos{display:grid;gap:clamp(56px,9vh,120px)}
.ex{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:clamp(22px,4vw,64px);align-items:end;text-decoration:none}
.ex:nth-child(even){grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.ex:nth-child(even) .ex-m{order:2}
.ex-m{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--b30)}
.ex-m img,.ex-m video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.1,1)}
.ex:hover .ex-m img{transform:scale(1.04)}
.ex-t h3{font-size:clamp(34px,4.4vw,76px);line-height:.92;margin-bottom:14px}
.ex-t .w{font:700 15px/1.35 var(--f-b);letter-spacing:.03em;margin:0 0 18px}
.ex-t .d{font:400 clamp(20px,2vw,30px)/1 var(--f-t);color:var(--acc);display:block;margin-bottom:12px}
.light .ex-t .d{color:var(--bleu)}
@media (max-width:860px){.ex,.ex:nth-child(even){grid-template-columns:1fr}.ex:nth-child(even) .ex-m{order:0}}

/* film (teaser accueil) */
.filmsec{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:0;background:var(--bleu)}
.filmsec .fv{position:relative;min-height:70svh}
.filmsec .fv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.filmsec .ft{padding:clamp(70px,12vh,140px) var(--pad);display:flex;flex-direction:column;justify-content:center}
.filmsec .ft,.profile-wrap > div:first-child,.card{container-type:inline-size}
.filmsec h2{font-size:clamp(60px,9vw,170px);font-size:min(clamp(60px,9vw,170px),calc(98cqw / var(--lw,1)));color:#fff;margin-bottom:18px}
.soon{font:400 clamp(26px,3vw,48px)/1 var(--f-t);color:var(--jaune);display:inline-block}
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:28px}
.team img{aspect-ratio:1/1;object-fit:cover;width:100%;height:auto}
@media (max-width:860px){.filmsec{grid-template-columns:1fr}}

/* démarche (4 cartes) */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:var(--rule) solid currentColor}
.card{padding:26px 22px 30px 0;border-right:2px solid currentColor;text-decoration:none;display:flex;flex-direction:column;gap:14px;min-height:340px}
.card:last-child{border-right:0}
.card+.card{padding-left:22px}
.card .n{font:400 20px/1 var(--f-t)}
.card h3{font-size:clamp(30px,2.8vw,48px);font-size:min(clamp(30px,2.8vw,48px),calc(98cqw / var(--lw,1)));line-height:.95}
.card p{margin:0;font-size:17px;line-height:1.5}
@media (max-width:980px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card:nth-child(2){border-right:0}.card:nth-child(3){padding-left:0}.card{border-bottom:2px solid currentColor}}
@media (max-width:560px){.cards{grid-template-columns:1fr}.card,.card+.card{border-right:0;padding-left:0;min-height:0}}

/* partenaires */
.socios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:var(--rule) solid var(--acc)}
.so{padding:26px 24px 30px 0;border-bottom:2px solid rgba(255,255,255,.25)}
.so:nth-child(3n+2),.so:nth-child(3n){padding-left:24px;border-left:2px solid rgba(255,255,255,.25)}
.so .lg{height:64px;display:flex;align-items:center;margin-bottom:16px}
.so .lg img{max-height:64px;width:auto;max-width:200px}
.so h3{font-size:clamp(24px,2.1vw,34px);color:var(--acc);margin-bottom:12px;line-height:1}
.so p{margin:0;font-size:17px;line-height:1.5}
@media (max-width:980px){.socios{grid-template-columns:1fr 1fr}.so:nth-child(3n+2),.so:nth-child(3n){padding-left:0;border-left:0}.so:nth-child(even){padding-left:24px;border-left:2px solid rgba(255,255,255,.25)}}
@media (max-width:600px){.socios{grid-template-columns:1fr}.so:nth-child(even){padding-left:0;border-left:0}}

/* ------------------------------------------------------------------ pied de page */
.foot{background:var(--bleu);border-top:var(--rule) solid var(--acc);padding:clamp(60px,10vh,110px) var(--pad) 40px}
.foot .big{font:400 clamp(54px,11vw,200px)/.82 var(--f-t);color:var(--acc);margin:0 0 50px;text-align:left;text-transform:lowercase}
.foot-g{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:30px}
.foot h4{font:700 14px/1 var(--f-b);letter-spacing:.08em;margin:0 0 14px;color:var(--acc);text-transform:lowercase}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin:0 0 8px;text-align:left}
.foot li a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);overflow-wrap:anywhere}
.foot li a:hover{border-bottom-color:var(--acc)}
.foot p{margin:0 0 14px;font-size:16px;line-height:1.5}
.foot .logos{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:12px}
.foot .logos img{height:40px;width:auto}
.foot .fine{margin-top:44px;padding-top:18px;border-top:1px solid rgba(255,255,255,.25);font-size:13px;opacity:.8;display:flex;flex-wrap:wrap;gap:8px 30px;justify-content:space-between}
@media (max-width:1180px){.foot-g{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-g{grid-template-columns:1fr}}

/* ------------------------------------------------------------------ pages projet */
.phero{position:relative;height:100svh;min-height:620px;background:var(--bleu);overflow:hidden}
.phero .tri{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,.8vw,12px);padding:calc(var(--hdr) + 8px) clamp(6px,.8vw,12px) clamp(6px,.8vw,12px)}
.phero .tri .panel{position:relative;overflow:hidden;background:var(--b60)}
.phero .tri video,.phero .tri img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero .one{position:absolute;inset:0}
.phero .one video,.phero .one img{width:100%;height:100%;object-fit:cover}
.phero .shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,80,125,.94) 0%,rgba(0,80,125,.55) 32%,rgba(0,80,125,0) 62%);z-index:2}
.phero .in{position:absolute;z-index:3;left:var(--pad);right:var(--pad);bottom:clamp(26px,6vh,64px)}
.phero .num{font:400 clamp(24px,2.6vw,40px)/1 var(--f-t);color:var(--acc)}
.phero h1{font-size:min(clamp(56px,10.5vw,200px),calc((var(--vw,100vw) - 2*var(--pad))/var(--lw,1)));color:var(--acc);line-height:.84;margin:10px 0 clamp(16px,3vh,30px);max-width:11em}
.phero .row{display:flex;flex-wrap:wrap;gap:16px 36px;align-items:flex-end;justify-content:space-between}
.phero .meta{font:700 15px/1.4 var(--f-b);letter-spacing:.03em;margin:0}
.phero .meta span{display:block;opacity:.85;font-weight:400}
.phero .top{position:absolute;z-index:3;top:calc(var(--hdr) + 22px);left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;align-items:center}
@media (max-width:760px){.phero .tri{grid-template-columns:1fr;padding:var(--hdr) 0 0}.phero .tri .panel.side{display:none}}

/* barre des espaces (menu collant du parcours) */
.spaces{position:sticky;top:var(--hdr);z-index:40;background:var(--bleu);box-shadow:0 var(--rule) 0 var(--acc);overflow-x:auto;scrollbar-width:none}
.spaces::-webkit-scrollbar{display:none}
.spaces ol{list-style:none;margin:0;padding:0 var(--pad);display:flex;gap:clamp(14px,2.4vw,40px);white-space:nowrap}
.spaces a{display:inline-flex;gap:8px;align-items:baseline;padding:15px 0 13px;text-decoration:none;font:700 15px/1 var(--f-b);opacity:.62;border-bottom:3px solid transparent}
.spaces a b{font:400 13px/1 var(--f-t);color:var(--acc)}
.spaces a.on{opacity:1;border-bottom-color:var(--acc)}.spaces li,.spaces a{white-space:nowrap;text-wrap:nowrap;text-align:left}.nav li,.nav a,.langs a,.tools button{white-space:nowrap;text-wrap:nowrap}
.spaces .prog{position:absolute;left:0;bottom:calc(-1 * var(--rule));height:var(--rule);background:#fff;width:0}

/* sections du parcours */
.sp{position:relative;padding:clamp(80px,13vh,160px) 0}
.sp-h{padding:0 var(--pad);display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(14px,2vw,30px);align-items:end;margin-bottom:clamp(36px,6vh,70px)}
.sp-h .n{font:400 clamp(54px,8vw,150px)/.8 var(--f-t);color:transparent;-webkit-text-stroke:1.6px var(--acc)}
.sp-h h2{font-size:min(clamp(46px,7.4vw,140px),calc((var(--vw,100vw) - 2*var(--pad) - 1.62*clamp(54px,8vw,150px) - clamp(14px,2vw,30px))/var(--lw,1)));color:var(--acc);line-height:.86}
.light .sp-h .n{-webkit-text-stroke-color:var(--bleu)}
.light .sp-h h2{color:var(--bleu)}
.wrap{padding:0 var(--pad)}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);padding:0 var(--pad)}
@media (max-width:860px){.cols{grid-template-columns:1fr}}
.quote{font-size:clamp(21px,1.9vw,28px);line-height:1.42;margin:0}
.quote-k{font:700 14px/1.3 var(--f-b);letter-spacing:.05em;margin:0 0 16px;opacity:.85}
.orig{font-size:15px;line-height:1.5;opacity:.75;margin-top:18px}
.orig summary{cursor:pointer;font:700 13px/1 var(--f-b);letter-spacing:.06em;list-style:none}
.orig summary::-webkit-details-marker{display:none}
.orig p{margin:12px 0 0}
.vtall{position:relative;aspect-ratio:9/16;max-height:88svh;margin-left:auto;width:100%;max-width:calc(88svh * 9 / 16)}
.vtall video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vwide{position:relative;aspect-ratio:16/9;width:100%}
.vwide video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vpair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 var(--pad)}
.vpair .vbox{aspect-ratio:9/16}
.vtrio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 var(--pad)}
.vtrio .vbox{aspect-ratio:9/16}
@media (max-width:760px){.vtrio{grid-template-columns:1fr 1fr}.vtrio .vbox:nth-child(3){display:none}}
.minimap{position:relative;aspect-ratio:5/4;overflow:hidden;box-shadow:0 0 0 2px var(--acc)}
.minimap img{width:100%;height:100%;object-fit:cover}
.minimap .alt{position:absolute;left:14px;bottom:12px;font:400 clamp(26px,3vw,46px)/1 var(--f-t);color:var(--jaune);text-shadow:0 2px 14px rgba(0,80,125,.8)}
.caps{font:700 13px/1.35 var(--f-b);letter-spacing:.04em;margin-top:10px;opacity:.85;text-align:left}

/* bande défilante (planche contact / pellicule) */
.strip{display:flex;gap:10px;overflow-x:auto;padding:0 var(--pad) 18px;scroll-snap-type:x proximity;cursor:grab;scrollbar-color:var(--acc) transparent}
.strip.drag{cursor:grabbing;scroll-snap-type:none}
.strip figure{flex:0 0 auto;margin:0;height:min(64svh,620px);scroll-snap-align:start;position:relative}
.strip figure img{height:100%;width:auto;max-width:none;user-select:none;-webkit-user-drag:none}
.strip figcaption{position:absolute;left:8px;top:8px;font:700 11px/1 var(--f-b);letter-spacing:.1em;background:var(--b60);padding:5px 7px}
.film-edge{display:flex;align-items:center;gap:14px;padding:0 var(--pad) 12px;font:700 12px/1 var(--f-b);letter-spacing:.16em;color:var(--acc)}
.film-edge::after{content:"";flex:1;height:14px;background:repeating-linear-gradient(90deg,var(--acc) 0 10px,transparent 10px 22px);opacity:.8}

/* œuvres : plein cadre, sous-titres façon cinéma */
.works{display:flex;flex-direction:column;gap:clamp(10px,1.4vw,18px)}
.work{position:relative;margin:0;background:var(--bleu)}
.work.full{height:100svh;min-height:520px}
.work.full img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.work .sub{position:absolute;left:50%;bottom:clamp(20px,5vh,54px);transform:translateX(-50%);width:min(900px,calc(100% - 2 * var(--pad)));z-index:2;text-align:center}
.work .sub h3{display:inline;font-size:clamp(28px,3.4vw,58px);line-height:1.02;color:var(--acc);background:var(--bleu);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:.06em .22em .12em}
.work .sub .tr{display:block;margin:10px 0 0;font:700 14px/1.2 var(--f-b);letter-spacing:.05em}
.work .sub .tr span{background:var(--bleu);padding:4px 8px}
.work .sub p{margin:14px auto 0;display:inline;font:700 clamp(16px,1.35vw,21px)/1.55 var(--f-b);color:#fff;background:var(--b90);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:.18em .45em;text-align:center}
.work .sub p.wrapp{display:block;background:none;padding:0 .42em;text-align:justify;text-align-last:left}
.work .sub p.wrapp span{background:var(--b90);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:.16em .42em}
.work.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100svh}
.work.split .im{position:relative;background:var(--b30)}
.work.split .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.work.split .tx{background:var(--acc);color:var(--bleu);padding:clamp(40px,8vh,90px) var(--pad);display:flex;flex-direction:column;justify-content:flex-end}
.work.split.rev .im{order:2}
.work.split .tx h3{font-size:clamp(40px,5vw,92px);line-height:.9;margin-bottom:12px}
.work.split .tx .tr{font:700 14px/1.2 var(--f-b);letter-spacing:.05em;margin:0 0 22px}
.work.split .tx p{margin:0;font-size:clamp(19px,1.6vw,24px);line-height:1.45}
.work.split .tx .by{margin-top:18px;font:700 13px/1.3 var(--f-b);letter-spacing:.05em}
@media (max-width:860px){.work.split{grid-template-columns:1fr}.work.split .im{min-height:70svh}.work.split.rev .im{order:0}.work.full{height:auto;min-height:0;aspect-ratio:auto}.work.full img{position:relative;height:auto;max-height:none}.work .sub{position:relative;left:auto;transform:none;bottom:auto;width:auto;padding:18px var(--pad) 26px;text-align:left}.work .sub p{display:block;background:none;padding:0}.work .sub h3{background:none;padding:0}}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.4vw,18px);padding:0 clamp(10px,1.4vw,18px)}
.pair figure{margin:0;display:flex;flex-direction:column}
.pair .ph{position:relative;background:var(--b30);aspect-ratio:var(--ar,3/2);overflow:hidden}
.pair .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pair figcaption{padding:18px 4px 0;text-align:left}
.pair h3{font-size:clamp(26px,2.6vw,44px);color:var(--acc);line-height:.98}
.pair .tr{font:700 13px/1.2 var(--f-b);letter-spacing:.05em;margin:6px 0 12px;opacity:.85}
.pair p{margin:0;font-size:17px;line-height:1.5}
.pair .city{display:inline-block;font:700 12px/1 var(--f-b);letter-spacing:.08em;background:var(--acc);color:var(--bleu);padding:5px 8px;border-radius:99px;margin-bottom:12px}
.pair .com{margin-top:14px;padding:12px 14px;border-left:var(--rule) solid var(--acc);background:rgba(255,255,255,.06);font-size:16px}
.pair .com b{display:block;font:700 12px/1 var(--f-b);letter-spacing:.08em;margin-bottom:8px;color:var(--acc)}
.dialog{padding:clamp(34px,6vh,70px) 0;border-top:2px solid rgba(255,255,255,.2)}
.dialog .dn{padding:0 var(--pad) 14px;font:400 18px/1 var(--f-t);color:var(--acc)}
@media (max-width:760px){.pair{grid-template-columns:1fr}}
.bw{columns:var(--cols,4);column-gap:8px;padding:0 var(--pad)}
.bw figure{margin:0 0 8px;break-inside:avoid}
.bw img{width:100%;height:auto;aspect-ratio:var(--ar,2/3);object-fit:cover}
@media (max-width:860px){.bw{columns:2}}
.subh{padding:0 var(--pad);margin:clamp(60px,10vh,110px) 0 clamp(20px,4vh,40px);display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.subh h3{font-size:clamp(32px,4vw,72px);color:var(--acc)}
.subh p{margin:0;max-width:40em;font-size:17px}
.light .subh h3{color:var(--bleu)}

/* grande citation manuscrite */
.handbig{padding:clamp(60px,12vh,140px) var(--pad);font:400 clamp(40px,7vw,128px)/1.08 var(--f-h);color:var(--acc);text-align:left;margin:0}
.handbig span{display:block}
.light .handbig{color:var(--bleu)}
.light .hq blockquote{color:var(--bleu)}.light .hq blockquote .tr{color:var(--bleu);opacity:.78}.light .pair h3,.light .pair .com b,.light .dialog .dn,.light .g25 figcaption h3,.light .fiche h3,.light .film-edge{color:var(--bleu)}.light .strip{scrollbar-color:var(--bleu) transparent}
.hq{display:grid;gap:clamp(30px,6vh,70px);padding:0 var(--pad)}
.hq blockquote{margin:0;font:400 clamp(30px,4.6vw,78px)/1.08 var(--f-h);color:var(--acc);text-align:left}
.hq blockquote .tr{display:block;font:700 15px/1.4 var(--f-b);color:#fff;margin-top:12px;letter-spacing:.03em}

/* sons */
.sound{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(20px,4vw,60px);padding:0 var(--pad);align-items:center}
.sound iframe{width:100%;height:420px;border:0;box-shadow:0 0 0 2px var(--acc)}
.sound .sclink{display:none}
@media (max-width:860px){.sound{grid-template-columns:1fr}}

/* exposition : affiches à plat + murs */
.walls{display:grid;grid-template-columns:repeat(var(--cols,5),minmax(0,1fr));gap:12px;padding:0 var(--pad)}
.walls.feat figure:first-child{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column}.walls.feat figure:first-child img{flex:1;min-height:0;object-fit:contain;background:#fff}
.walls figure{margin:0;background:#fff;padding:0;box-shadow:0 12px 40px rgba(0,0,0,.18)}
.walls figure img{width:100%;height:auto;cursor:zoom-in}
.walls figcaption{background:var(--bleu);color:#fff;font:700 12px/1 var(--f-b);letter-spacing:.08em;padding:8px 10px;text-align:left}
@media (max-width:980px){.walls,.walls.sq{grid-template-columns:repeat(3,minmax(0,1fr))}.walls.feat figure:first-child{grid-column:1/-1;grid-row:auto}}
@media (max-width:560px){.walls,.walls.sq{grid-template-columns:repeat(2,minmax(0,1fr))}}
.onwall{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(10px,1.4vw,18px);padding:0 clamp(10px,1.4vw,18px);align-items:stretch}
.onwall .big{position:relative;min-height:80svh;overflow:hidden}
.onwall .big img,.onwall .big video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.onwall .side{display:grid;gap:clamp(10px,1.4vw,18px);grid-auto-rows:1fr}
.onwall .side > *{position:relative;overflow:hidden;min-height:38svh}
.onwall .side img,.onwall .side video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.onwall.rev .big{order:2}
@media (max-width:860px){.onwall{grid-template-columns:1fr}.onwall.rev .big{order:0}.onwall .big{min-height:60svh}}
.giant{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:0 var(--pad)}
.giant figure{margin:0;position:relative}
.giant img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;cursor:zoom-in}
.giant figcaption{font:400 16px/1.05 var(--f-t);margin-top:8px;text-transform:lowercase;text-align:left}
@media (max-width:980px){.giant{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.giant{grid-template-columns:repeat(2,minmax(0,1fr))}}
.g25{display:grid;gap:clamp(10px,1.4vw,18px)}
.g25 .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(10px,1.4vw,18px);padding:0 clamp(10px,1.4vw,18px)}
.g25 .row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.g25 figure{margin:0;position:relative}
.g25 .ph{position:relative;aspect-ratio:2/3;overflow:hidden;background:var(--b30)}
.g25 .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.g25 figcaption{padding:16px 4px 0;text-align:left}
.g25 figcaption h3{font-size:clamp(26px,2.6vw,44px);color:var(--acc)}
.g25 figcaption p{margin:10px 0 0;font-size:17px}
@media (max-width:760px){.g25 .row,.g25 .row.three{grid-template-columns:1fr}}

/* parcours photogramme par photogramme */
.frames{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 clamp(10px,1.4vw,18px)}
.frames figure{margin:0;position:relative;background:var(--b30)}
.frames figure.w2{grid-column:span 2}
.frames figure.w3{grid-column:1/-1}
.frames img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;aspect-ratio:var(--ar,3/2)}
.frames figcaption{position:absolute;left:10px;bottom:10px;font:700 11px/1 var(--f-b);letter-spacing:.14em;background:var(--bleu);padding:6px 8px;color:var(--acc)}
@media (max-width:760px){.frames{grid-template-columns:1fr 1fr}.frames figure.w2{grid-column:span 2}}

/* archive (fiche) */
.fiche{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:0;padding:0 var(--pad);border-top:var(--rule) solid var(--acc)}
.fiche > div{padding:24px 24px 28px 0;border-bottom:2px solid rgba(255,255,255,.2)}
.fiche > div + div{padding-left:24px;border-left:2px solid rgba(255,255,255,.2)}
.fiche h3{font:700 14px/1 var(--f-b);letter-spacing:.08em;color:var(--acc);margin:0 0 14px}
.fiche p,.fiche li{margin:0;font-size:17px;line-height:1.5;text-align:left}
.fiche ul{margin:0;padding:0;list-style:none}
.names{font:400 clamp(26px,2.6vw,42px)/1.12 var(--f-h);color:#fff;text-align:left}
.fiche .lgs{display:flex;flex-wrap:wrap;gap:18px 26px;align-items:center;margin-top:16px}
.fiche .lgs img{height:46px;width:auto}
@media (max-width:980px){.fiche{grid-template-columns:1fr}.fiche > div + div{padding-left:0;border-left:0}}
.nextp{display:block;text-decoration:none;padding:clamp(70px,12vh,140px) var(--pad);background:var(--acc);color:var(--bleu)}
.nextp .k{font:700 14px/1 var(--f-b);letter-spacing:.08em}
.nextp .t{display:block;font-size:min(clamp(56px,11vw,210px),calc((var(--vw,100vw) - 2*var(--pad))/var(--lw,1)));line-height:.84;margin-top:16px}
.nextp:hover .t{text-decoration:underline;text-decoration-thickness:6px;text-underline-offset:12px}

/* ------------------------------------------------------------------ visionneuse */
.lb{position:fixed;inset:0;z-index:100;background:var(--bleu);display:none;flex-direction:column}
.lb.open{display:flex}
.lb-top{height:var(--hdr);display:flex;align-items:center;gap:16px;padding:0 var(--pad);flex:0 0 auto}
.lb-top .cnt{font:700 13px/1 var(--f-b);letter-spacing:.1em}
.lb-top .x{margin-left:auto;font:700 15px/1 var(--f-b);padding:10px 16px;border-radius:99px;box-shadow:inset 0 0 0 2px #fff}
.lb-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 clamp(48px,6vw,90px)}
.lb-stage img,.lb-stage video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.lb-stage video{background:var(--bleu)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:clamp(40px,5vw,64px);height:clamp(40px,5vw,64px);border-radius:50%;box-shadow:inset 0 0 0 2px #fff;font:400 22px/1 var(--f-t);display:grid;place-items:center;background:var(--b60)}
.lb-nav.p{left:clamp(6px,1vw,16px)}.lb-nav.n{right:clamp(6px,1vw,16px)}
.lb-cap{flex:0 0 auto;padding:14px var(--pad) 22px;min-height:64px;text-align:left}
.lb-cap h3{font-size:clamp(20px,2vw,30px);color:var(--acc);display:inline;margin-right:14px}
.lb-cap p{display:inline;margin:0;font-size:15px}.lb-cap p+p::before{content:" "}
.zoomable{cursor:zoom-in}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.perfs{animation:none}}

/* ================================================================== salles d'exposition
   murs peints aux couleurs mOst, œuvres accrochées avec ombre portée, cartels de musée,
   pleins cadres avec cartel blanc, accrochages serrés sous passe-partout, expo mur par mur */
.gal{background:var(--bleu);padding:clamp(80px,13vh,160px) 0 0}
.gal .kick.pk{margin:clamp(40px,7vh,80px) var(--pad) 0}
.plan{list-style:none;margin:14px var(--pad) 0;padding:0;border-top:var(--rule) solid var(--acc)}
.plan li{border-bottom:2px solid rgba(255,255,255,.3)}
.plan a{display:grid;grid-template-columns:clamp(54px,6vw,96px) minmax(0,1fr) auto 104px;gap:clamp(12px,2vw,28px);align-items:center;text-decoration:none;padding:14px 0}
.plan .no{font:400 clamp(22px,2.2vw,34px)/1 var(--f-t);color:var(--acc)}
.plan .t{font:400 min(clamp(24px,3.2vw,54px),calc((var(--vw,100vw) - 2 * var(--pad) - 380px) / var(--lw,1)))/.95 var(--f-t);text-transform:lowercase;min-width:0}
.plan .s{font:700 14px/1.35 var(--f-b);letter-spacing:.04em;opacity:.85;text-align:left;white-space:nowrap}
.plan .th{width:104px;height:70px;object-fit:cover;border-radius:3px;transition:transform .3s}
.plan a:hover .t,.plan a:focus-visible .t{color:var(--acc)}
.plan a:hover .th{transform:scale(1.06)}
@media (max-width:760px){.plan a{grid-template-columns:auto minmax(0,1fr) 70px;gap:12px}.plan .s{display:none}.plan .th{width:70px;height:52px}.plan .t{font-size:min(24px,calc((var(--vw,100vw) - 2 * var(--pad) - 150px) / var(--lw,1)))}}

.room{--wall:var(--jaune);--ink:var(--bleu);--sh:0 30px 70px rgba(0,40,70,.26),0 6px 16px rgba(0,40,70,.16);
  background:var(--wall);color:var(--ink);padding:clamp(70px,11vh,140px) 0 clamp(70px,11vh,140px);position:relative}
.gal>.room:first-of-type{margin-top:clamp(60px,10vh,120px)}
.sp>.room{margin-top:clamp(40px,7vh,90px)}
.room.w-jaune{--wall:var(--jaune)}.room.w-vert{--wall:var(--vert)}.room.w-rose{--wall:var(--rose)}.room.w-blanc{--wall:#fff}
.room.w-bleu{--wall:var(--bleu);--ink:#fff;--sh:0 34px 80px rgba(0,22,40,.55),0 6px 18px rgba(0,22,40,.4)}
.room .rk{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:0 var(--pad);border-bottom:var(--rule) solid var(--ink);padding-bottom:12px}
.room .rk b{font:400 clamp(64px,9vw,160px)/.8 var(--f-t);color:transparent;-webkit-text-stroke:2px var(--ink)}
.room .rk span{font:700 15px/1 var(--f-b);letter-spacing:.08em;text-transform:lowercase}
.room .rk .cnt{margin-left:auto;font:700 13px/1 var(--f-b);letter-spacing:.06em;opacity:.8;text-align:right}
.room h2.rt{margin:20px var(--pad) 0;font-size:min(clamp(46px,8vw,150px),calc((var(--vw,100vw) - 2*var(--pad))/var(--lw,1)));line-height:.86;color:var(--ink)}
.room.w-bleu h2.rt{color:var(--acc)}
.room .intro{margin:26px var(--pad) 0;max-width:40em;font-size:clamp(20px,1.7vw,26px);line-height:1.42}
.room .hwall{margin:clamp(34px,6vh,60px) var(--pad) 0;max-width:24em;font:400 clamp(30px,3.6vw,60px)/1.12 var(--f-h);text-align:left;text-align-last:left}
.room.w-bleu .hwall{color:var(--acc)}
.room .orig{margin:14px var(--pad) 0;max-width:40em}
/* entrée de salle : écran vertical sur son image floutée, ou vidéo plein cadre */
.room.hasdoor{padding-top:0}
.door{position:relative;overflow:hidden;color:#fff;background:var(--bleu)}
.door .rk{margin:0;border-color:#fff}.door .rk b{-webkit-text-stroke-color:#fff}
.door h2.rt{margin:18px 0 0;color:var(--acc)}
.door .intro{margin:20px 0 0;color:#fff}
.door.h{height:88svh;min-height:520px}
.door.h>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.door.h .sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,80,125,.35),rgba(0,80,125,0) 35%,rgba(0,80,125,.85))}
.door.h .in{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(26px,6vh,64px);z-index:2}
.door.v{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(24px,4vw,70px);padding:clamp(40px,8vh,90px) var(--pad)}
.door.v .bgb{position:absolute;inset:-60px;width:calc(100% + 120px);height:calc(100% + 120px);max-width:none;object-fit:cover;filter:blur(36px) saturate(1.05) brightness(.62);pointer-events:none}
.door.v .sh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,80,125,.8),rgba(0,80,125,.2))}
.door.v .in{position:relative;z-index:2;min-width:0}
.door.v .scr{position:relative;z-index:2;height:min(82svh,880px);aspect-ratio:9/16;box-shadow:0 30px 90px rgba(0,22,40,.55)}
.door.v .scr video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.door.v{grid-template-columns:1fr}.door.v .scr{height:auto;width:100%;max-width:420px;justify-self:center}}

/* accrochage : l'œuvre sur le mur, son cartel à côté */
.hang{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(24px,4vw,84px);align-items:end;padding:clamp(56px,10vh,130px) var(--pad) 0;margin:0}
.hang.rev{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
.hang.rev .hw{order:2}
.hang .hw{min-width:0}
.hang .hw img,.set img,.salon img,.w-work .poster img{display:block;width:100%;height:auto;box-shadow:var(--sh);cursor:zoom-in}
.hang .hw img{max-width:min(100%,calc(80svh * var(--r,1.5)));margin:0 0 0 auto}
.hang.rev .hw img{margin:0 auto 0 0}
.cartel{border-top:var(--rule) solid var(--ink);padding-top:16px;max-width:44ch;align-self:end;text-align:left;margin:0}
.cartel .no{display:block;font:700 13px/1.2 var(--f-b);letter-spacing:.08em;opacity:.8;margin-bottom:10px;text-transform:lowercase}
.cartel h3{font-size:clamp(26px,2.4vw,42px);line-height:.98;margin:0 0 8px;color:var(--ink)}
.cartel .tr{display:block;font:700 15px/1.3 var(--f-b);opacity:.85;margin:0 0 12px;text-align:left}
.cartel p{font-size:17px;line-height:1.56;margin:0}
.cartel .med{display:block;margin-top:14px;font:700 12px/1.35 var(--f-b);letter-spacing:.06em;opacity:.75;text-align:left}
.cartel .city{display:inline-block;font:700 12px/1 var(--f-b);letter-spacing:.08em;background:var(--ink);color:var(--wall,var(--bleu));padding:5px 9px;border-radius:99px;margin:0 0 10px}
.cartel.mini{border-top-width:2px;padding-top:10px}.cartel.mini .med{margin-top:0}
@media (max-width:860px){.hang,.hang.rev{grid-template-columns:1fr;gap:18px}.hang.rev .hw{order:0}.hang .hw img,.hang.rev .hw img{margin:0 auto}.cartel{max-width:none}}

/* plein cadre avec cartel blanc (portraits : image entière sur fond flouté) */
.fp{position:relative;height:100svh;min-height:560px;max-height:1240px;overflow:hidden;background:var(--bleu);margin:clamp(56px,10vh,130px) 0 0}
.fp:not(.port){height:min(100svh,calc(var(--vw,100vw) / var(--r,1.5)));min-height:0}
.fp>img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.fp.port .bgb{position:absolute;inset:-60px;width:calc(100% + 120px);height:calc(100% + 120px);max-width:none;object-fit:cover;filter:blur(40px) saturate(1.1) brightness(.72);pointer-events:none}
.fp.port img.fg{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;height:100%;width:auto;max-width:100%;object-fit:contain;box-shadow:0 30px 90px rgba(0,22,40,.5);cursor:zoom-in}
.fp .tag{position:absolute;left:var(--pad);bottom:clamp(18px,3.4vh,40px);z-index:2;background:#fff;color:var(--bleu);padding:14px 18px 16px;max-width:min(460px,calc(100% - 2 * var(--pad)));border-top:var(--rule) solid var(--bleu);text-align:left;margin:0;box-shadow:0 14px 40px rgba(0,22,40,.25)}
.fp .tag.r{left:auto;right:var(--pad)}
.fp .tag .no{display:block;font:700 12px/1.2 var(--f-b);letter-spacing:.08em;opacity:.75;margin-bottom:6px}
.fp .tag h3{font-size:clamp(20px,1.8vw,30px);line-height:1.02;color:var(--bleu)}
.fp .tag .tr{display:block;font:700 13px/1.3 var(--f-b);opacity:.85;margin:4px 0 0}
.fp .tag p{font-size:15px;line-height:1.5;margin:8px 0 0}
.fp .tag h3+p,.fp .tag .tr+p{margin-top:8px}.fp .tag>p:first-child{margin-top:0}
.fp .tag .med{display:block;margin-top:10px;font:700 11px/1.35 var(--f-b);letter-spacing:.06em;opacity:.75}
.fp .tag>.med:first-child{margin-top:0}
.fp .tag .city{display:inline-block;font:700 11px/1 var(--f-b);letter-spacing:.08em;background:var(--bleu);color:#fff;padding:4px 8px;border-radius:99px;margin-bottom:8px}
@media (max-width:760px){.fp,.fp:not(.port){height:auto;min-height:0;max-height:none;background:none;overflow:visible}
  .fp>img.bg{position:relative;height:auto}.fp.port .bgb{display:none}
  .fp.port img.fg{position:relative;height:auto;width:100%;max-width:none;box-shadow:var(--sh)}
  .fp .tag,.fp .tag.r{position:relative;left:auto;right:auto;bottom:auto;max-width:none;margin:0 var(--pad);box-shadow:none;border-top-color:var(--ink,var(--bleu))}}

/* paires et trios : même hauteur, largeurs proportionnelles */
.set{--g:clamp(18px,3vw,56px);display:flex;gap:var(--g);align-items:flex-start;padding:clamp(56px,10vh,130px) var(--pad) 0;margin:0 auto;
  max-width:calc(78svh * var(--sr,2) + (var(--n,2) - 1) * var(--g) + 2 * var(--pad))}
.set figure{margin:0;flex:var(--r,1) 1 0;min-width:0}
.set.grp{flex-wrap:wrap}
.set>.cartel{flex:0 0 100%;max-width:none;align-self:start}.set>.cartel>*{max-width:62ch}
.set figcaption{margin-top:14px;border-top:2px solid var(--ink);padding-top:10px;text-align:left}
.set figcaption .no{display:block;font:700 12px/1.2 var(--f-b);letter-spacing:.08em;opacity:.75;margin-bottom:6px}
.set figcaption h3{font-size:clamp(20px,1.7vw,30px);line-height:1.02;color:var(--ink)}
.set figcaption .tr{display:block;font:700 13px/1.3 var(--f-b);opacity:.85;margin:4px 0 0}
.set figcaption p{font-size:15px;line-height:1.5;margin:8px 0 0}
.set figcaption .city{display:inline-block;font:700 11px/1 var(--f-b);letter-spacing:.08em;background:var(--ink);color:var(--wall,var(--bleu));padding:4px 8px;border-radius:99px;margin-bottom:8px}
@media (max-width:760px){.set{flex-direction:column;align-items:stretch;max-width:none}.set figure,.set>.cartel{flex:none}}

/* accrochage serré sous passe-partout (séries) */
.salon{--pp:clamp(7px,.9vw,15px);--g:clamp(12px,1.6vw,24px);display:flex;flex-direction:column;gap:var(--g);padding:clamp(56px,10vh,130px) var(--pad) 0}
.salon .row{display:flex;gap:var(--g);align-items:flex-start;width:100%;margin:0 auto;
  max-width:calc(60svh * var(--sr,3) + var(--n,3) * 2 * var(--pp) + (var(--n,3) - 1) * var(--g))}
.salon figure{margin:0;flex:var(--r,1) 1 calc(2 * var(--pp));min-width:0;background:#fff;padding:var(--pp);box-shadow:var(--sh)}
.salon figure img{box-shadow:none}
@media (max-width:760px){.salon .row{flex-wrap:wrap;max-width:none}.salon figure{flex:1 1 calc(50% - var(--g))}}

/* dialogues (favela ocho) : deux images face à face, les commentaires en notes */
.dip{--g:clamp(18px,3vw,56px);padding:clamp(56px,10vh,130px) var(--pad) 0}
.dip .dh,.dip .set{max-width:calc(70svh * var(--sr,1.4) + var(--g));margin-left:auto;margin-right:auto}
.dip .dh{display:flex;justify-content:space-between;gap:12px;font:700 13px/1.2 var(--f-b);letter-spacing:.08em;border-top:var(--rule) solid var(--ink);padding-top:10px;margin-bottom:clamp(18px,3vh,30px);text-transform:lowercase}
.dip .set{padding:0}
.note{margin-top:14px;background:#fff;color:var(--bleu);padding:14px 16px 16px;box-shadow:0 12px 30px rgba(0,40,70,.14);font-size:15px;line-height:1.5}
.note b{display:block;font:700 12px/1 var(--f-b);letter-spacing:.08em;margin-bottom:8px;text-transform:lowercase}
.note p{margin:0;font-size:15px}
.w-blanc .note{background:var(--jaune)}
.w-bleu .note{box-shadow:none}
@media (max-width:760px){.dip .dh,.dip .set{max-width:none}}

/* l'exposition, mur par mur */
.walkw{display:flex;gap:8px;flex-wrap:wrap;margin:0 var(--pad)}
.walkw a{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:3px solid currentColor;font:400 17px/1 var(--f-t);text-decoration:none}
.walkw a:hover,.walkw a:focus-visible{background:var(--acc);color:var(--bleu);border-color:var(--acc)}
.wall{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);min-height:94svh;border-top:var(--rule) solid var(--acc);margin-top:clamp(40px,7vh,90px)}
.wall.alt .w-site{order:2}
.w-site{position:relative;overflow:hidden;background:var(--b30);min-height:72svh}
.w-site>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.w-work{display:flex;flex-direction:column;gap:22px;padding:clamp(24px,4vw,64px) clamp(20px,4vw,64px);min-width:0;--ink:#fff;--sh:0 26px 60px rgba(0,22,40,.5)}
.w-work .num{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:var(--rule) solid currentColor;padding-bottom:10px}
.w-work .num b{font:400 clamp(60px,8vw,150px)/.8 var(--f-t);color:transparent;-webkit-text-stroke:2px #fff}
.w-work .num span{font:700 13px/1 var(--f-b);letter-spacing:.08em;text-transform:lowercase;text-align:right}
.w-work .poster{min-width:0}
.w-work .poster img{max-width:min(100%,calc(62svh * var(--r,.7)));margin:0 auto}
.w-info{min-width:0}
.w-work h3{font-size:clamp(22px,2.2vw,36px);line-height:1.1;color:var(--acc)}
.w-work h3 a{text-decoration:none;border-bottom:2px solid transparent}
.w-work h3 a:hover,.w-work h3 a:focus-visible{border-bottom-color:var(--acc)}
.w-work .where{font:700 16px/1.45 var(--f-b);margin:14px 0 0;text-align:left}
.w-work .where::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--acc);margin-right:10px;vertical-align:1px}
.w-work .thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.w-work .thumbs img{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid #fff;cursor:zoom-in;box-shadow:none}
.wall.land,.wall.solo{grid-template-columns:1fr;min-height:0}
.wall.land .w-site{min-height:0;height:min(94svh,calc(var(--vw,100vw) / var(--r,1.5)))}
.wall.land .w-work,.wall.solo .w-work{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr);align-items:end;gap:clamp(24px,4vw,70px)}
.wall.solo.alt .w-work{grid-template-columns:minmax(0,4fr) minmax(0,5fr)}.wall.solo.alt .poster{order:2}
.wall.land .w-work .num,.wall.solo .w-work .num{grid-column:1/-1}
.wall.solo .w-work .poster img{max-width:min(100%,calc(70svh * var(--r,.7)))}
@media (max-width:860px){.wall,.wall.land .w-work,.wall.solo .w-work,.wall.solo.alt .w-work{grid-template-columns:1fr;min-height:0}.wall.alt .w-site,.wall.solo.alt .poster{order:0}
  .w-site{min-height:0;height:70svh}.wall.land .w-site{height:auto;aspect-ratio:var(--r,1.5)}}
.collage .set{padding-top:clamp(40px,7vh,90px)}

/* ================================================================== partager (site, projet, carte, exposition, image) */
.si{width:18px;height:18px;flex:none;display:inline-block}
.shr{gap:9px}
.hshare{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.6);margin-left:clamp(10px,1.6vw,22px);transition:background .2s,color .2s,box-shadow .2s}
.hshare:hover,.hshare:focus-visible{background:var(--acc);color:var(--bleu);box-shadow:none}
@media (max-width:980px){.hshare{margin-left:auto}.menu-btn{margin-left:10px}}
.shr-p{margin:22px 0 0}
.shr-row{margin:0 0 clamp(26px,5vh,48px)}
.foot-sh{margin:18px 0 34px}
.lb-sh{display:inline-flex;align-items:center;gap:8px;margin-left:auto;margin-right:14px;font:700 14px/1 var(--f-b);padding:9px 14px;border-radius:999px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}
.lb-sh:hover,.lb-sh:focus-visible{background:#fff;color:var(--bleu)}
@media (max-width:560px){.lb-sh span{display:none}.lb-sh{padding:9px}}
.shp{position:fixed;inset:0;z-index:130;background:rgba(0,40,70,.62);display:flex;align-items:center;justify-content:center;padding:16px}
.shp[hidden]{display:none}
.shp-box{width:min(580px,100%);background:var(--bleu);color:#fff;border-top:var(--rule) solid var(--acc);padding:22px 22px 26px;box-shadow:0 30px 80px rgba(0,22,40,.5)}
.shp-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.shp-top h2{font-size:clamp(36px,5vw,58px);color:var(--acc);line-height:.9}
.shp-top .x{font:700 14px/1 var(--f-b);padding:9px 14px;border-radius:999px;box-shadow:inset 0 0 0 2px #fff;flex:none}
.shp-what{margin:14px 0 0;font:700 15px/1.4 var(--f-b);text-align:left;opacity:.9}
.shp-url{display:flex;gap:10px;margin-top:16px}
.shp-url input{flex:1;min-width:0;font:400 15px/1.3 var(--f-b);padding:10px 12px;border:0;border-radius:6px;background:#fff;color:var(--bleu)}
.shp-apps{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.shp .pill{white-space:nowrap}
@media (max-width:560px){.shp{align-items:flex-end;padding:0}.shp-box{width:100%;padding-bottom:calc(26px + env(safe-area-inset-bottom,0px))}.shp-url{flex-wrap:wrap}.shp-url .pill{width:100%;justify-content:center}}
.lb-sh+.x{margin-left:0}
