/* ==========================================================================
   PORTFOLIO GUILLAUME TESSON — CSS STRUCTUREL CONSOLIDÉ V9

   Les réglages visuels modifiables sont centralisés dans settings.css.
   Ce fichier contient uniquement la structure, les composants et le responsive.
   L’ordre des règles historiques encore nécessaires est conservé afin de ne pas
   modifier la direction artistique validée.
   ========================================================================== */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);font-size:13px;letter-spacing:.01em;}

/* ==========================================================================
   COMPARATEUR DE PALETTES
   ========================================================================== */
:root,
html[data-theme="warm"]{
  --bg:#f3eee6;
  --ink:#171411;
  --muted:#6f675e;
  --line-color:#24201b;
  --panel-bg:#f7f1e9;
  --press-bg:#171513;
  --press-ink:#f3eee6;
  --card-bg:rgba(243,238,230,.95);
  --card-border:rgba(23,20,17,.10);
  --card-link-color:rgba(23,20,17,.48);
}
html[data-theme="cool"]{
  --bg:#edf2f4;
  --ink:#12191e;
  --muted:#647078;
  --line-color:#1d2930;
  --panel-bg:#f4f7f8;
  --press-bg:#151c21;
  --press-ink:#edf2f4;
  --card-bg:rgba(237,242,244,.95);
  --card-border:rgba(18,25,30,.10);
  --card-link-color:rgba(18,25,30,.48);
}
html[data-theme="dark"]{
  --bg:#111513;
  --ink:#eeeae1;
  --muted:#a8ada7;
  --line-color:#dce0d8;
  --panel-bg:#181c1a;
  --press-bg:#e9e5dc;
  --press-ink:#141816;
  --card-bg:rgba(24,28,26,.96);
  --card-border:rgba(238,234,225,.16);
  --card-link-color:rgba(238,234,225,.55);
}
html[data-theme="teal"]{
  --bg:#275b60;
  --ink:#f0ede4;
  --muted:#c4d3d1;
  --line-color:#e2e6df;
  --panel-bg:#2e666a;
  --press-bg:#eee9df;
  --press-ink:#183e42;
  --card-bg:rgba(39,91,96,.96);
  --card-border:rgba(240,237,228,.18);
  --card-link-color:rgba(240,237,228,.58);
}

.theme-picker{
  position:fixed;z-index:90;right:18px;bottom:18px;display:flex;align-items:center;gap:9px;
  padding:8px 10px;border:1px solid color-mix(in srgb,var(--ink) 30%,transparent);
  background:color-mix(in srgb,var(--bg) 92%,transparent);color:var(--ink);
  backdrop-filter:blur(10px);font-size:9px;font-weight:600;letter-spacing:.08em;
}
.theme-picker select{
  min-width:126px;border:0;border-left:1px solid color-mix(in srgb,var(--ink) 25%,transparent);
  border-radius:0;padding:2px 20px 2px 9px;background:transparent;color:inherit;
  font:500 10px/1.2 var(--font-body);cursor:pointer;
}

body,.trace-flow,.timeline-section,.about,.contact,footer,.project-view,.cv-view,.project-bar,.cv-bar{
  background-color:var(--bg);color:var(--ink);
  transition:background-color .35s ease,color .35s ease;
}
.press-inset{background:var(--press-bg)!important;color:var(--press-ink)!important;}
.press-inset.press-light{background:var(--panel-bg)!important;color:var(--ink)!important;}
.trace-project .venue,.project-detail .detail-muted{color:var(--muted)!important;}
.trace-project .cartel-line,
.projects-stage .press-inset::before,
.timeline-section::before,
.timeline-item .dot{background:var(--line-color)!important;}
.master-trace stop{stop-color:var(--line-color);}
.about,.contact,.project-press,.project-gallery-section,.project-video,.cv-year{border-color:color-mix(in srgb,var(--ink) 24%,transparent)!important;}

@media (max-width:800px){.theme-picker{right:10px;bottom:10px}.theme-picker span{display:none}.theme-picker select{border-left:0;min-width:112px;padding-left:2px}}
a{color:inherit;text-decoration:none;}
button{font:inherit;}
img{display:block;width:100%;}
.site-header{position:fixed;inset:0 0 auto;z-index:40;padding:var(--header-top) var(--pad);display:flex;justify-content:space-between;align-items:flex-start;mix-blend-mode:difference;color:#fff;pointer-events:none;}
.site-header>*{pointer-events:auto;}
.brand{display:flex;flex-direction:column;font-size:10px;line-height:1.25;font-weight:700;}
.site-header nav{display:flex;gap:var(--nav-gap);font-size:var(--nav-size);font-weight:700;}
.menu-toggle{display:none;border:0;background:none;color:inherit;padding:0;}
.intro{height:100svh;position:relative;background:#090909;color:#fff;overflow:hidden;}
.intro>img{height:100%;object-fit:cover;}
.intro-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.48),rgba(0,0,0,.02) 65%);}
.intro-title{position:absolute;font-size:clamp(58px,10vw,168px);font-weight:700;}
.intro-scroll{position:absolute;right:var(--pad);bottom:var(--intro-scroll-bottom);font-size:var(--small-label-size);font-weight:700;}
.trace-section{position:relative;padding-top:1px;overflow:hidden;}
.section-head{height:var(--section-head-height);padding:var(--section-head-top) var(--pad) 0;display:flex;justify-content:space-between;font-size:10px;font-weight:700;}
.trace-line{position:absolute;top:115px;left:50%;height:calc(100% - 115px);transform:translateX(-50%);overflow:visible;pointer-events:none;}
.projects-stage{position:relative;}
.trace-project{position:relative;min-height:100svh;margin:0 var(--pad);cursor:pointer;}
.trace-project .image{position:absolute;overflow:hidden;background:#111;}
.trace-project .image img{height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.trace-project:hover img{transform:scale(1.012);}
.trace-project .copy{position:absolute;}
.trace-project .year,.trace-project .type{font-size:10px;}
.trace-project h2{font-size:clamp(38px,5.3vw,88px);line-height:.88;letter-spacing:-.055em;margin:10px 0 14px;max-width:9ch;font-weight:500;}
.trace-project .artist{font-size:13px;margin:0 0 8px;}
.trace-project .venue{max-width:28ch;font-size:11px;line-height:1.45;}
.trace-project .open{display:inline-block;margin-top:20px;font-size:9px;border-bottom:1px solid;padding-bottom:3px;}

.trace-project.p-1 .image{left:0;top:4vh;z-index:3;}
.trace-project.p-1 .copy{z-index:4;}
.trace-project.p-2 .image{right:2vw;top:4vh;z-index:3;}
.trace-project.p-2 .copy{width:28vw;}
.trace-project.p-3 .image{left:5vw;top:6vh;}
.trace-project.p-3 .copy{width:29vw;}
.trace-project.p-4 .image{right:4vw;top:5vh;}
.trace-project.p-4 .copy{width:31vw;}
.trace-project.p-5 .image{top:3vh;}
.trace-project.p-5 .copy{width:28vw;}
.trace-project.p-6 .image{top:2vh;}
.trace-project.p-6 .copy{width:28vw;}
.trace-project.p-7 .image{top:1vh;}
.trace-project.p-7 .copy{width:27vw;}
.trace-project.late-project h2{font-size:clamp(34px,4vw,62px);}
.timeline-section{position:relative;padding:var(--timeline-padding-top) var(--pad) var(--timeline-padding-bottom);}
.timeline-section:before{content:"";position:absolute;left:50%;top:0;bottom:80px;transform:translateX(-50%);}
.timeline-head{display:grid;grid-template-columns:1fr 1fr;gap:var(--timeline-head-gap);margin-bottom:var(--timeline-head-bottom);font-size:10px;font-weight:700;}
.timeline-head p{margin:0;max-width:40ch;font-weight:400;}
.timeline{position:relative;}
.timeline-item{display:grid;align-items:center;}
.timeline-item.has-project-page{cursor:pointer;}
.timeline-item.has-project-page:focus-visible{outline:1px solid currentColor;outline-offset:8px;}
.timeline-item .year{text-align:right;font-size:var(--timeline-year-size);}
.timeline-item .dot{background:#111;border-radius:50%;justify-self:center;}
.timeline-item .timeline-project{display:grid;align-items:center;}
.timeline-item img{object-fit:cover;}
.timeline-item strong{display:block;line-height:1;}
.timeline-item span{display:block;color:var(--muted);font-size:var(--timeline-meta-size);margin-top:5px;}
.timeline-item:nth-child(even) .year{grid-column:3;text-align:left;}
.timeline-item:nth-child(even) .dot{grid-column:2;grid-row:1;}
.timeline-item:nth-child(even) .timeline-project{grid-column:1;grid-row:1;direction:rtl;}
.timeline-item:nth-child(even) .timeline-project>*{direction:ltr;}
.about{border-top:1px solid rgba(0,0,0,.2);padding:var(--about-padding-y) var(--pad);display:grid;grid-template-columns:var(--about-columns);gap:var(--about-gap);}
.eyebrow{font-size:10px;font-weight:700;}
.about h2{font-size:clamp(44px,6vw,94px);line-height:.88;letter-spacing:-.06em;font-weight:500;margin:35px 0 0;max-width:11ch;}
.about-copy{font-size:16px;line-height:1.5;padding-top:45px;}
.contact{padding:var(--contact-padding-y) var(--pad);border-top:1px solid rgba(0,0,0,.2);display:flex;justify-content:space-between;}
.contact a{font-size:clamp(28px,5vw,72px);letter-spacing:-.05em;}
footer{padding:20px var(--pad);display:flex;justify-content:space-between;font-size:9px;}
.project-view{position:fixed;z-index:100;inset:0;background:var(--bg);overflow:auto;transform:translateY(100%);transition:transform .5s cubic-bezier(.7,0,.2,1);}
.project-view.open{transform:none;}
.project-bar{position:sticky;top:0;z-index:3;padding:var(--project-bar-padding-y) var(--pad);display:flex;justify-content:space-between;background:rgba(242,240,234,.92);backdrop-filter:blur(10px);}
.project-close{border:0;background:none;padding:0;color:inherit;font:inherit;font-weight:600;letter-spacing:.06em;cursor:pointer;}
.detail-hero{position:relative;}
.detail-hero h1{position:absolute;left:var(--pad);bottom:35px;color:white;font-size:clamp(55px,10vw,150px);line-height:.8;max-width:8ch;margin:0;letter-spacing:-.07em;}
.detail-intro{padding:80px var(--pad);font-size:clamp(25px,3vw,45px);max-width:22ch;}
.gallery{grid-template-columns:repeat(2,1fr);}
.credits{padding:100px var(--pad);display:grid;grid-template-columns:repeat(3,1fr);gap:50px;font-size:11px;line-height:1.5;}
@media (max-width:800px){
  .site-header nav{display:none;}
  .menu-toggle{display:block;}
  .site-header nav.open{display:flex;position:fixed;inset:0;background:#111;color:#fff;flex-direction:column;padding:100px 24px;font-size:28px;mix-blend-mode:normal;}
  .trace-section{min-height:auto;}
  .trace-line{left:22px;}
  .section-head{padding-left:46px;}
  .trace-project,.trace-project:nth-child(n){min-height:auto;margin:0 18px 100px;padding-left:28px;display:flex;flex-direction:column;}
  .trace-project .image,.trace-project:nth-child(n) .image{position:relative;left:auto;right:auto;top:auto;width:100%;height:58svh;}
  .trace-project .copy,.trace-project:nth-child(n) .copy{position:relative;left:auto;right:auto;top:auto;width:auto;padding-top:20px;color:var(--ink);text-shadow:none;}
  .timeline-section:before{left:22px;}
  .timeline-head{display:block;padding-left:28px;}
  .timeline-head p{margin-top:15px;}
  .timeline-item{grid-template-columns:45px 1fr;gap:10px;padding-left:0;margin-bottom:30px;}
  .timeline-item .year,.timeline-item:nth-child(even) .year{grid-column:1;text-align:left;}
  .timeline-item .dot,.timeline-item:nth-child(even) .dot{display:none;}
  .timeline-item .timeline-project,.timeline-item:nth-child(even) .timeline-project{grid-column:2;direction:ltr;}
  .about{grid-template-columns:1fr;}
  .contact{display:block;}
  .contact a{display:block;margin-top:25px;}
  .gallery{grid-template-columns:1fr;}
  .credits{grid-template-columns:1fr;}
}

/* ==========================================================================
   COMPOSITION DESKTOP VALIDÉE DANS L'ÉDITEUR VISUEL
   ========================================================================== */
@media (min-width:801px){
  .section-head,
  .timeline-head,
  .eyebrow{
    font-size:14px;
    letter-spacing:.045em;
  }
  .timeline-head{display:block;margin-bottom:clamp(24px,3vw,44px);}
  .timeline-section{padding-top:clamp(12px,1.5vw,24px)!important;}
  .projects-stage{position:relative;width:100%;}
  .projects-stage .trace-project{
    position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;
  }
  .projects-stage .trace-project .image{
    position:absolute;margin:0;overflow:hidden;background:#111;
  }
  .projects-stage .trace-project .image img{
    width:100%;height:100%;object-fit:cover;
  }
  .projects-stage .trace-project .copy{
    position:absolute;box-sizing:border-box;max-width:none;
    padding:var(--cartel-padding);overflow:visible;
  }
  .projects-stage .trace-project .copy{display:block!important;margin:0!important;}
  .projects-stage .trace-project.is-revealed .image,
  .projects-stage .trace-project.cartel-above.is-revealed .image,
  .projects-stage .trace-project.cartel-below.is-revealed .image,
  .projects-stage .trace-project.cartel-left.is-revealed .image,
  .projects-stage .trace-project.cartel-right.is-revealed .image{transform:none!important;}
  .projects-stage .trace-project h2,
  .projects-stage .trace-project.late-project h2{
    margin:calc(7px * var(--cartel-font-scale)) 0 calc(9px * var(--cartel-font-scale));
    max-width:none;font-size:clamp(18px,calc(42px * var(--cartel-font-scale)),52px);
    line-height:.9;
  }
  .projects-stage .trace-project .year{font-size:clamp(7px,calc(10px * var(--cartel-font-scale)),11px);}
  .projects-stage .trace-project .artist{margin-bottom:calc(5px * var(--cartel-font-scale));font-size:clamp(8px,calc(12px * var(--cartel-font-scale)),13px);}
  .projects-stage .trace-project .venue{font-size:clamp(7px,calc(10px * var(--cartel-font-scale)),11px);line-height:1.3;}
  .projects-stage .trace-project .open{margin-top:calc(10px * var(--cartel-font-scale));font-size:clamp(7px,calc(9px * var(--cartel-font-scale)),10px);}
  .projects-stage .trace-project .cartel-line{display:none;}

  .projects-stage .press-inset{
    position:absolute;box-sizing:border-box;padding:clamp(14px,1.5vw,22px);
  }
  .projects-stage .press-inset::before{top:30px;width:var(--press-connector-width);}
  .projects-stage .press-inset.composition-left::before{left:100%;right:auto;}
  .projects-stage .press-inset.composition-right::before{right:100%;left:auto;}
  .projects-stage .press-inset blockquote{font-size:clamp(15px,1.55vw,23px);}
  .projects-stage .press-inset.is-expanded{width:min(42vw,620px)!important;z-index:12;}
}
.trace-section{min-height:4350px;}
.trace-line{z-index:3;}
.projects-stage{z-index:2;}
.trace-project .image{z-index:2;}
.trace-project .copy{z-index:4;}

.trace-project .copy{background:var(--card-bg);padding:var(--card-padding);box-shadow:0 0 0 1px var(--card-border);max-width:var(--card-max-width);}
.trace-project .copy:after{content:"";position:absolute;top:var(--card-link-y);width:var(--card-link-width);height:1px;background:var(--card-link-color);}
.trace-project.p-odd .copy:after{right:100%;}
.trace-project.p-even .copy:after{left:100%;}
.trace-project .venue{color:#55544f;}
.trace-project h2{margin-top:8px;}

.trace-project.p-1 .image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62) 0,rgba(0,0,0,.28) 38%,rgba(0,0,0,0) 68%);}

.trace-project.p-1{min-height:122svh;}
.trace-project.p-1 .image{width:80vw;height:94svh;}
.trace-project.p-2{min-height:113svh;}
.trace-project.p-2 .image{width:72vw;height:84svh;}
.trace-project.p-2 .copy{left:4vw;top:19vh;}
.trace-project.p-3{min-height:105svh;}
.trace-project.p-3 .image{width:66vw;height:77svh;}
.trace-project.p-3 .copy{right:4vw;top:18vh;}
.trace-project.p-4{min-height:96svh;}
.trace-project.p-4 .image{width:60vw;height:69svh;}
.trace-project.p-4 .copy{left:5vw;top:15vh;}
.trace-project.p-5{min-height:88svh;}
.trace-project.p-5 .image{left:9vw;width:55vw;height:62svh;}
.trace-project.p-5 .copy{right:5vw;top:13vh;}
.trace-project.p-6{min-height:80svh;}
.trace-project.p-6 .image{right:7vw;width:50vw;height:56svh;}
.trace-project.p-6 .copy{left:8vw;top:11vh;}
.trace-project.p-7{min-height:73svh;}
.trace-project.p-7 .image{left:14vw;width:45vw;height:50svh;}
.trace-project.p-7 .copy{right:8vw;top:9vh;}

.timeline-section{padding-top:80px;}
.timeline-section:before{width:4px;opacity:1;background:linear-gradient(to bottom,rgba(17,17,17,.86),#111 70%,#111);}
.timeline{padding-top:20px;}
.timeline-item{min-height:var(--timeline-row-height,var(--timeline-item-min-height));grid-template-columns:1fr 74px 1fr;gap:var(--timeline-column-gap);}
.timeline-item .timeline-project{grid-template-columns:var(--timeline-project-image-width) 1fr;gap:var(--timeline-project-gap);max-width:var(--timeline-project-max-width);}
.timeline-item.side-right .timeline-project{transform:scale(var(--timeline-project-scale,1));transform-origin:left center;}
.timeline-item.side-left .timeline-project{transform:scale(var(--timeline-project-scale,1));transform-origin:right center;}
.timeline-item.side-right .year{transform:scale(var(--timeline-project-scale,1));transform-origin:right center;}
.timeline-item.side-left .year{transform:scale(var(--timeline-project-scale,1));transform-origin:left center;}
.timeline-item.no-image .timeline-project{grid-template-columns:1fr;}
.timeline-item img{aspect-ratio:1.55/1;}
.timeline-item strong{font-size:var(--timeline-title-size);}
.timeline-item .dot{width:8px;height:8px;}

.timeline-item.side-right .year{grid-column:1;text-align:right;}
.timeline-item.side-right .dot{grid-column:2;grid-row:1;}
.timeline-item.side-right .timeline-project{grid-column:3;grid-row:1;justify-self:start;}
.timeline-item.side-left .year{grid-column:3;text-align:left;}
.timeline-item.side-left .dot{grid-column:2;grid-row:1;}
.timeline-item.side-left .timeline-project{grid-column:1;grid-row:1;justify-self:end;direction:rtl;}
.timeline-item.side-left .timeline-project>*{direction:ltr;}
.timeline-item.indent-a a{transform:translateX(4vw);}
.timeline-item.indent-b a{transform:translateX(-3vw);}
.timeline-item.compact,.timeline-item.expanded{min-height:var(--timeline-row-height);}

.detail-hero{min-height:auto;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr);align-items:stretch;background:#111;}
.detail-hero img{height:88svh;object-fit:cover;}
.detail-hero-placeholder{min-height:88svh;background:var(--panel-bg);}
.detail-identity{min-width:0;overflow:hidden;background:var(--bg);color:var(--ink);padding:clamp(90px,12vh,150px) var(--pad) 50px;display:flex;flex-direction:column;justify-content:flex-end;}
.detail-identity .detail-year{font-size:10px;margin-bottom:18px;}
.detail-identity h1{position:static;max-width:100%;margin:0;color:inherit;text-shadow:none;font-size:clamp(42px,5.4vw,88px);line-height:.86;letter-spacing:-.055em;overflow-wrap:anywhere;hyphens:auto;}
.detail-identity h1.detail-title-long{font-size:clamp(32px,4vw,64px);line-height:.9;letter-spacing:-.045em;}
.detail-identity h1.detail-title-very-long{font-size:clamp(25px,3.15vw,50px);line-height:.94;letter-spacing:-.035em;}
.detail-identity .detail-artist{font-size:14px;margin:30px 0 6px;}
.detail-identity .detail-venue{font-size:11px;line-height:1.45;color:var(--muted);max-width:28ch;}
.gallery figure{position:relative;}
@media (max-width:800px){
  .trace-line{z-index:1;}
  .trace-project .copy,.trace-project.p-1 .copy{background:var(--bg);color:var(--ink);box-shadow:none;padding:18px 0 0;text-shadow:none;}
  .trace-project .copy:after{display:none;}
  .trace-project.p-1 .venue{color:var(--muted);}
  .trace-project.p-1 .image:after{display:none;}
  .timeline-section:before{width:3px;}
  .timeline-item,.timeline-item.side-left,.timeline-item.side-right{grid-template-columns:48px 1fr;min-height:auto;margin-bottom:var(--timeline-mobile-gap,46px);}
  .timeline-item .year,.timeline-item.side-left .year,.timeline-item.side-right .year{grid-column:1;text-align:left;}
  .timeline-item .dot,.timeline-item.side-left .dot,.timeline-item.side-right .dot{display:none;}
  .timeline-item .timeline-project,.timeline-item.side-left .timeline-project,.timeline-item.side-right .timeline-project{grid-column:2;direction:ltr;transform:scale(var(--timeline-project-scale,1))!important;transform-origin:left center;justify-self:stretch;grid-template-columns:minmax(105px,34vw) 1fr;}
  .detail-hero{grid-template-columns:1fr;background:var(--bg);}
  .detail-hero img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:#111;}
  .detail-hero-placeholder{min-height:42svh;}
  .detail-identity{padding:24px 18px 32px;justify-content:flex-start;}
  .detail-identity .detail-year{margin-bottom:12px;}
  .detail-identity .detail-artist{margin-top:16px;}
  .detail-identity .detail-venue{margin-bottom:0;}
  .credits{padding:30px 18px 38px;gap:26px;}
}
.trace-project.p-1 .image:after{display:none;}
.trace-project.p-1 .copy{left:auto;right:2vw;top:62vh;width:min(39vw,560px);max-width:none;background:rgba(242,240,234,.97);color:var(--ink);padding:24px 26px 22px;box-shadow:0 0 0 1px rgba(17,17,17,.09);text-shadow:none;}
.trace-project.p-1 .copy:after{display:block;right:100%;left:auto;top:34px;width:clamp(38px,7vw,120px);height:1px;background:rgba(17,17,17,.58);}
.trace-project.p-1 h2{font-size:clamp(46px,6.6vw,104px);line-height:.84;max-width:8ch;margin:10px 0 16px;}
.trace-project.p-1 .venue{color:#55544f;}
.trace-project.p-1 .open{margin-top:16px;}
.press-inset{position:relative;z-index:4;background:#111;color:var(--bg);display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 0 0 1px rgba(17,17,17,.12);}
.press-inset:before{content:"";position:absolute;height:1px;background:#111;}
.press-inset.press-right{margin-left:auto;}
.press-inset.press-right:before{right:100%;}
.press-inset.press-left{margin-right:auto;}
.press-inset.press-left:before{left:100%;}
.press-inset.press-center{margin-left:calc(50% - 3vw);margin-right:auto;}
.press-inset.press-center:before{right:100%;}
.press-inset .press-kicker{display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.08em;font-weight:700;}
.press-inset blockquote{letter-spacing:-.04em;}
.press-inset footer{padding:0;font-size:9px;color:rgba(242,240,234,.7);}
.press-inset.press-light{background:var(--bg);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(17,17,17,.35);}
.press-inset.press-light footer{color:var(--muted);}
@media (max-width:800px){
  .trace-project.p-1 .copy{position:relative;left:auto;right:auto;top:auto;width:auto;max-width:none;padding:22px 0 0;background:var(--bg);box-shadow:none;}
  .trace-project.p-1 .copy:after{display:none;}
  .trace-project.p-1 h2{font-size:14vw;}
  .press-inset:before{display:none;}
}
.press-inset{width:clamp(270px,30vw,450px);min-height:clamp(205px,23vw,330px);margin-top:-3vh;margin-bottom:10vh;padding:clamp(18px,2.2vw,30px);}
.press-inset:before{top:30px;width:clamp(42px,7vw,110px);}
.press-inset blockquote{margin:clamp(28px,4vw,54px) 0 18px;font-size:clamp(18px,2.15vw,31px);line-height:1.08;max-width:17ch;}
.press-inset .press-kicker,.press-inset footer{font-size:8px;}
.press-inset.press-right{margin-right:12vw;}
.press-inset.press-left{margin-left:14vw;}
.about-copy .eyebrow{display:block;margin-bottom:38px;}
@media (max-width:800px){
  .press-inset,.press-inset.press-left,.press-inset.press-right,.press-inset.press-center{min-height:240px;width:calc(100% - 82px);margin:-24px 18px 72px 64px;}
  .press-inset blockquote{font-size:22px;}
}
.detail-opening{min-height:var(--detail-opening-min-height);padding:var(--detail-opening-top) var(--pad) var(--detail-opening-bottom);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:var(--detail-opening-gap);align-items:end;border-bottom:1px solid rgba(17,17,17,.18);}
.detail-titleblock .detail-year{display:block;font-size:10px;margin-bottom:22px;}
.detail-titleblock h1{margin:0;max-width:8ch;font-size:var(--detail-title-size);line-height:.8;letter-spacing:-.07em;font-weight:500;}
.detail-titleblock .detail-artist{font-size:15px;margin:30px 0 0;}
.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--detail-facts-gap-y) var(--detail-facts-gap-x);align-self:end;}
.detail-facts .fact{padding-top:13px;border-top:1px solid rgba(17,17,17,.55);}
.detail-facts .fact-team{grid-column:1/-1;}
.detail-facts strong{display:block;font-size:9px;letter-spacing:.08em;margin-bottom:15px;}
.detail-facts p{font-size:11px;line-height:1.55;margin:0 0 6px;max-width:38ch;}
.detail-hero-image{padding:var(--pad);margin:0;}
.detail-hero-image img{display:block;width:100%;height:var(--detail-hero-height);object-fit:cover;}
@media (max-width:800px){
  .detail-opening{min-height:auto;grid-template-columns:1fr;gap:55px;padding:100px 18px 55px;}
  .detail-titleblock h1{font-size:16vw;}
  .detail-facts{grid-template-columns:1fr;gap:28px;}
  .detail-facts .fact-team{grid-column:auto;}
  .detail-hero-image{padding:18px;}
  .detail-hero-image img{height:68svh;}
}
.trace-project.p-8{min-height:67svh;}
.trace-project.p-8 .image{right:13vw;top:1vh;width:40vw;height:44svh;}
.trace-project.p-8 .copy{left:12vw;top:8vh;width:27vw;}

.trace-line{width:30px;}

.credits{border-bottom:1px solid rgba(17,17,17,.18);}
@media (max-width:800px){
  .trace-project.p-8{min-height:auto;}
  .trace-line{width:28px;}
}
.trace-flow{position:relative;overflow:hidden;}
.master-trace{position:absolute;z-index:3;top:115px;bottom:80px;left:50%;width:32px;height:calc(100% - 195px);transform:translateX(-50%);pointer-events:none;overflow:visible;}
.trace-line{display:none!important;}
.timeline-section:before{display:none!important;}
.trace-section,.timeline-section{position:relative;z-index:2;}
.projects-stage,.timeline,.section-head,.timeline-head{position:relative;z-index:4;}
@media (max-width:800px){
  .master-trace{left:22px;top:115px;bottom:60px;height:calc(100% - 175px);}
}

body{font-family:var(--font-body);}
.trace-project h2,.detail-identity h1{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-spacing);}
.brand span:first-child{font-size:11px;font-weight:600;letter-spacing:.035em;}
.brand span:last-child{font-size:8px;font-weight:400;letter-spacing:.055em;opacity:.72;margin-top:2px;text-transform:none;}
.master-trace{width:20px;overflow:visible;}
@media (max-width:800px){.master-trace{width:20px;}}
.detail-intro{display:none!important;}
.project-gallery-section{padding:var(--gallery-section-top) 0 var(--gallery-section-bottom);border-top:1px solid rgba(17,17,17,.18);overflow:hidden;}
.project-gallery-head{padding:0 var(--pad) 28px;display:flex;justify-content:space-between;align-items:flex-end;gap:28px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;}
.project-gallery-head p{margin:0;max-width:38ch;color:var(--muted);line-height:1.45;letter-spacing:.02em;text-transform:none;}
.gallery{padding:0 var(--pad) var(--gallery-bottom-padding);display:flex;align-items:center;gap:var(--gallery-gap);overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(17,17,17,.42) transparent;cursor:grab;}
.gallery.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none;}
.gallery::-webkit-scrollbar{height:2px;}
.gallery::-webkit-scrollbar-track{background:rgba(17,17,17,.10);}
.gallery::-webkit-scrollbar-thumb{background:rgba(17,17,17,.48);}
.gallery figure{flex:0 0 auto;margin:0;scroll-snap-align:start;}
.gallery button{display:block;appearance:none;border:0;padding:0;margin:0;background:transparent;cursor:zoom-in;}
.gallery img{width:auto;height:var(--gallery-image-height);max-width:var(--gallery-image-max-width);object-fit:contain;background:#111;}
.gallery figcaption{margin-top:9px;font-size:var(--gallery-caption-size);color:var(--muted);}
.project-press{margin:0 var(--pad) clamp(90px,13vw,190px);padding:clamp(50px,7vw,100px) 0 0;border-top:1px solid rgba(17,17,17,.55);display:grid;grid-template-columns:minmax(100px,.3fr) minmax(0,1fr);gap:clamp(34px,8vw,140px);}
.project-press .press-label{font-size:9px;letter-spacing:.08em;text-transform:uppercase;}
.project-press blockquote{margin:0;max-width:26ch;font-size:var(--press-short-size);line-height:1.02;letter-spacing:-.045em;}
.project-press footer{padding:22px 0 0;font-size:10px;letter-spacing:.06em;}
.project-press-list{display:grid;gap:clamp(34px,4.5vw,64px);}
.project-press-entry{padding-top:clamp(20px,2.4vw,34px);border-top:1px solid color-mix(in srgb,currentColor 22%,transparent);}
.project-press-entry:first-child{padding-top:0;border-top:0;}
.project-press .project-press-entry blockquote{max-width:62ch;font-size:clamp(14px,1.25vw,19px)!important;line-height:1.3!important;letter-spacing:-.015em!important;}
.project-press .project-press-entry footer{padding-top:14px;font-size:9px;}
.project-next{border-top:1px solid rgba(17,17,17,.18);padding:clamp(50px,7vw,90px) var(--pad) clamp(70px,10vw,130px);display:grid;grid-template-columns:1fr auto;align-items:end;gap:30px;cursor:pointer;}
.project-next span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;}
.project-next strong{display:block;margin-top:12px;font-size:clamp(18px,2vw,28px);line-height:1;letter-spacing:-.025em;font-weight:500;}
.project-next .next-arrow{font-size:clamp(28px,5vw,70px);font-weight:300;}
.image-lightbox{position:fixed;z-index:220;inset:0;align-items:center;justify-content:center;padding:var(--lightbox-padding);background:var(--lightbox-bg);color:#fff;}
.image-lightbox.open{display:flex;}
.image-lightbox img{width:auto;height:auto;object-fit:contain;}
.image-lightbox button{position:absolute;top:18px;right:var(--pad);border:0;padding:8px 0;background:transparent;color:#fff;font-size:10px;letter-spacing:.08em;cursor:pointer;}
.image-lightbox .lightbox-count{position:absolute;left:var(--pad);bottom:20px;font-size:9px;letter-spacing:.08em;}
@media (max-width:800px){
  .project-gallery-section{padding:55px 0 85px;}
  .project-gallery-head{padding:0 18px 22px;align-items:flex-start;}
  .project-gallery-head p{max-width:25ch;}
  .gallery{padding:0 18px 18px;gap:14px;}
  .gallery img{height:min(54svh,520px);max-width:88vw;}
  .project-press{margin:0 18px 90px;grid-template-columns:1fr;gap:25px;}
  .project-press blockquote{font-size:clamp(27px,8vw,44px);}
  .project-next{padding:42px 18px 75px;}
}
.project-press blockquote p{margin:0 0 .72em;}
.project-press blockquote p:last-child{margin-bottom:0;}
.image-lightbox{opacity:0;visibility:hidden;display:flex;transition:opacity .22s ease,visibility 0s linear .22s;}
.image-lightbox.open{opacity:1;visibility:visible;transition-delay:0s;}
.image-lightbox img{max-width:calc(100vw - clamp(90px,12vw,190px));max-height:calc(100svh - clamp(80px,10vw,140px));}
.image-lightbox .lightbox-nav{top:50%;right:auto;transform:translateY(-50%);padding:20px;font-size:clamp(24px,3vw,48px);font-weight:300;line-height:1;}
.image-lightbox .lightbox-prev{left:clamp(4px,2vw,28px);}
.image-lightbox .lightbox-next{right:clamp(4px,2vw,28px);left:auto;}
.image-lightbox .lightbox-nav[hidden]{display:none;}
@media (max-width:800px){
  .image-lightbox img{max-width:calc(100vw - 36px);max-height:calc(100svh - 110px);}
  .image-lightbox .lightbox-nav{display:none;}
}
.project-press.press-short blockquote{font-size:var(--press-short-size);}
.project-press.press-medium blockquote{font-size:var(--press-medium-size);line-height:1.08;max-width:34ch;}
.project-press.press-long blockquote{font-size:var(--press-long-size);line-height:1.28;letter-spacing:-.025em;max-width:47ch;}
.project-video{margin:0 var(--pad) clamp(90px,12vw,170px);border-top:1px solid rgba(17,17,17,.18);}
.project-video-head{margin-bottom:18px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;}
.video-frame{position:relative;width:var(--video-width);aspect-ratio:16/9;overflow:hidden;background:#0b0b0b;}
.video-frame iframe,.video-poster,.video-poster img{display:block;width:100%;height:100%;}
.video-frame iframe{border:0;}
.video-poster{position:relative;appearance:none;border:0;padding:0;background:#0b0b0b;cursor:pointer;}
.video-poster img{object-fit:cover;filter:brightness(.78);transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .35s ease;}
.video-poster:hover img,.video-poster:focus-visible img{transform:scale(1.012);filter:brightness(.64);}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:clamp(46px,5vw,68px);aspect-ratio:1;border:1px solid rgba(255,255,255,.8);border-radius:50%;color:#fff;font-size:clamp(12px,1.2vw,17px);padding-left:.16em;transition:background .25s ease,color .25s ease;}
.video-poster:hover .video-play,.video-poster:focus-visible .video-play{background:#fff;color:#111;}
@media (max-width:800px){
  .project-press.press-long blockquote{font-size:clamp(18px,5.2vw,25px);line-height:1.3;}
  .project-video{margin:0 18px 90px;}
  .project-video-head{margin-bottom:14px;}
  .video-frame{width:100%;}
}
.intro-title{right:clamp(120px,16vw,310px);top:clamp(150px,22vh,245px);}

.project-gallery-section{padding-bottom:clamp(58px,7vw,96px);}
.project-gallery-head>span,
.project-video-head>span,
.project-press .press-label{font-size:var(--gallery-heading-size);font-weight:500;letter-spacing:.075em;}
.project-video{margin-bottom:clamp(58px,7vw,100px);padding-top:clamp(36px,4vw,58px);}
.project-press{margin-bottom:clamp(80px,10vw,145px);padding-top:clamp(42px,5vw,72px);}

.collaboration-flow{margin-top:38px;display:flex;flex-wrap:wrap;align-items:baseline;gap:.08em .24em;max-width:1050px;font-family:var(--font-display);font-size:var(--collaboration-size);line-height:var(--collaboration-line-height);letter-spacing:var(--collaboration-spacing);}
.collaboration-flow>.collaboration-name:not(:last-child) .collaboration-name__label::after{content:",";}
.about-copy{display:flex;flex-direction:column;align-items:flex-start;}
.cv-open{appearance:none;margin-top:34px;padding:0 0 5px;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;}
.contact-profile{padding:var(--contact-profile-padding-y) var(--pad);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:clamp(42px,8vw,140px);align-items:end;}
.contact-photo{margin:0;}
.contact-photo img{aspect-ratio:var(--contact-photo-ratio);object-fit:cover;object-position:center;}
.contact-photo figcaption{margin-top:9px;font-size:8px;color:var(--muted);letter-spacing:.04em;}
.contact-details{padding-bottom:2px;}
.contact-details h2{margin:0;font-size:clamp(38px,5.5vw,84px);line-height:.9;letter-spacing:-.055em;font-weight:500;}
.contact-role{margin:14px 0 clamp(35px,5vw,68px);font-size:13px;color:var(--muted);}
.contact-details address{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-style:normal;}
.contact-details address span,.contact-details address a{font-size:clamp(15px,1.45vw,22px);letter-spacing:-.02em;margin:0;}
.contact-details address a:last-child{border-bottom:1px solid rgba(17,17,17,.55);padding-bottom:3px;}
.cv-view{position:fixed;z-index:230;inset:0;overflow:auto;background:var(--bg);color:var(--ink);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s;}
.cv-view.open{opacity:1;visibility:visible;transform:none;transition-delay:0s;}
.cv-bar{position:sticky;z-index:3;top:0;min-height:58px;padding:18px var(--pad);display:flex;justify-content:space-between;align-items:flex-start;background:rgba(242,240,234,.96);border-bottom:1px solid rgba(17,17,17,.18);backdrop-filter:blur(10px);font-size:9px;font-weight:500;letter-spacing:.08em;}
.cv-close{appearance:none;border:0;padding:0;background:transparent;cursor:pointer;color:inherit;}
.cv-content{padding:var(--cv-padding-top) var(--pad) var(--cv-padding-bottom);}
.cv-intro{display:grid;grid-template-columns:minmax(100px,.3fr) minmax(0,1fr);gap:clamp(34px,8vw,140px);padding-bottom:clamp(75px,9vw,130px);}
.cv-intro h2{margin:0;font-size:clamp(42px,6.5vw,104px);line-height:.91;letter-spacing:-.06em;font-weight:500;max-width:12ch;}
.cv-intro p{grid-column:2;margin:22px 0 0;max-width:58ch;font-size:clamp(15px,1.35vw,19px);line-height:1.55;color:var(--muted);}
.cv-list{border-top:1px solid rgba(17,17,17,.55);}
.cv-year{display:grid;grid-template-columns:minmax(100px,.3fr) minmax(0,1fr);gap:clamp(34px,8vw,140px);padding:clamp(27px,3vw,44px) 0;border-bottom:1px solid rgba(17,17,17,.18);}
.cv-year>h3{margin:0;font-size:12px;font-weight:500;}
.cv-year ul{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.cv-year li{font-size:clamp(17px,1.85vw,27px);line-height:1.25;letter-spacing:-.025em;max-width:58ch;}
@media (max-width:800px){
  .intro-title{right:34px;top:146px;max-width:76vw;}
  .project-gallery-head>span,.project-video-head>span,.project-press .press-label{font-size:10px;}
  .project-gallery-section{padding-bottom:62px;}
  .project-video{margin-bottom:62px;padding-top:34px;}
  .project-press{margin-bottom:82px;padding-top:38px;}
  .collaboration-flow{margin:28px 0 45px;font-size:8.4vw;gap:.08em .22em;}
  .contact-profile{display:grid;padding:72px 18px 90px;grid-template-columns:1fr;gap:42px;}
  .contact-photo img{aspect-ratio:var(--contact-photo-ratio);}
  .contact-details h2{font-size:13vw;}
  .contact-role{margin-bottom:34px;}
  .contact-details address span,.contact-details address a{font-size:17px;}
  .cv-content{padding:60px 18px 100px;}
  .cv-intro,.cv-year{grid-template-columns:1fr;gap:20px;}
  .cv-intro p{grid-column:1;margin-top:0;}
  .cv-intro h2{font-size:12.5vw;}
  .cv-year ul{gap:12px;}
  .cv-year li{font-size:18px;}
}

/* ==========================================================================
   MOBILE — PROJETS ET PARCOURS : STRUCTURE
   ========================================================================== */
@media (max-width:800px){

  .trace-flow{overflow:clip;}
  .master-trace{
    left:50%;
    top:108px;
    bottom:52px;
    width:16px;
    height:calc(100% - 160px);
    transform:translateX(-50%);
  }

  .trace-section{min-height:0;}
  .section-head{
    height:112px;
    padding:62px 18px 0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:32px;
    align-items:start;
  }
  .section-head span:first-child{text-align:right;padding-right:12px;}
  .section-head span:last-child{text-align:left;padding-left:12px;}

  .projects-stage{padding:0 0 8px;}

  .trace-project,
  .trace-project:nth-child(n){
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    min-height:auto;
    margin:0;
    padding:0 18px;
  }

  .trace-project .image,
  .trace-project:nth-child(n) .image{
    position:relative;
    inset:auto;
    z-index:2;
    width:auto;
    height:auto;
    margin:0;
    overflow:hidden;
    background:#111;
  }

  .trace-project .image img,
  .trace-project:nth-child(n) .image img{
    width:100%;
    height:100%;
    object-fit:cover;
  }

  .trace-project .copy,
  .trace-project:nth-child(n) .copy,
  .trace-project.p-1 .copy{
    position:relative;
    inset:auto;
    z-index:4;
    width:auto;
    max-width:none;
    margin:0;
    padding:0;
    color:var(--ink);
    background:transparent;
    box-shadow:none;
    text-shadow:none;
  }

  .trace-project .copy::after,
  .trace-project.p-1 .copy::after{
    content:"";
    display:block;
    position:absolute;
    top:13px;
    width:26px;
    height:1px;
    background:currentColor;
    opacity:.5;
  }
  .trace-project.p-odd .copy::after{right:calc(100% + 8px);left:auto;}
  .trace-project.p-even .copy::after{left:calc(100% + 8px);right:auto;}

  .trace-project .year{display:block;margin-bottom:7px;font-size:9px;letter-spacing:.08em;}
  .trace-project h2,
  .trace-project.p-1 h2,
  .trace-project.late-project h2{
    max-width:11ch;
    margin:0 0 8px;
    font-size:clamp(21px,7vw,30px);
    line-height:.93;
    letter-spacing:-.055em;
  }
  .trace-project .artist{margin:0 0 4px;font-size:10px;line-height:1.25;}
  .trace-project .venue{display:none;}
  .trace-project .open{margin-top:11px;font-size:8px;}

  .trace-project.p-1{
    min-height:82svh;
    padding-top:2svh;
    padding-bottom:8svh;
  }
  .trace-project.p-1 .image{
    grid-column:1/-1;
    width:calc(100vw - 36px);
    height:57svh;
    justify-self:center;
  }
  .trace-project.p-1 .copy{
    grid-column:2;
    width:calc(50vw - 30px);
    margin-top:-24px;
    padding:13px 0 0 17px;
    background:var(--bg);
  }
  .trace-project.p-1 .copy::after{left:-26px;right:auto;}
  .trace-project.p-1 .image::after{display:none;}

  .trace-project.p-2{min-height:70svh;padding-bottom:7svh;}
  .trace-project.p-2 .image{
    grid-column:2;
    width:calc(50vw - 18px);
    height:48svh;
    justify-self:end;
  }
  .trace-project.p-2 .copy{
    grid-column:1;
    grid-row:1;
    padding-right:22px;
    text-align:right;
  }

  .trace-project.p-3{min-height:62svh;padding-bottom:6svh;}
  .trace-project.p-3 .image{
    grid-column:1;
    width:calc(50vw - 27px);
    height:40svh;
  }
  .trace-project.p-3 .copy{
    grid-column:2;
    grid-row:1;
    padding-left:22px;
  }

  .trace-project.p-4{min-height:54svh;padding-bottom:5svh;}
  .trace-project.p-4 .image{
    grid-column:2;
    width:calc(50vw - 35px);
    height:33svh;
    justify-self:end;
  }
  .trace-project.p-4 .copy{
    grid-column:1;
    grid-row:1;
    padding-right:22px;
    text-align:right;
  }

  .trace-project.p-5{min-height:47svh;padding-bottom:4.5svh;}
  .trace-project.p-5 .image{
    grid-column:1;
    width:calc(50vw - 42px);
    height:27svh;
  }
  .trace-project.p-5 .copy{
    grid-column:2;
    grid-row:1;
    padding-left:22px;
  }

  .trace-project.p-6{min-height:41svh;padding-bottom:4svh;}
  .trace-project.p-6 .image{
    grid-column:2;
    width:calc(50vw - 48px);
    height:23svh;
    justify-self:end;
  }
  .trace-project.p-6 .copy{
    grid-column:1;
    grid-row:1;
    padding-right:22px;
    text-align:right;
  }

  .trace-project.p-7{min-height:36svh;padding-bottom:3.2svh;}
  .trace-project.p-7 .image{
    grid-column:1;
    width:calc(50vw - 54px);
    height:19svh;
  }
  .trace-project.p-7 .copy{
    grid-column:2;
    grid-row:1;
    padding-left:22px;
  }

  .trace-project.p-8{min-height:32svh;padding-bottom:2.5svh;}
  .trace-project.p-8 .image{
    grid-column:2;
    width:calc(50vw - 59px);
    height:16svh;
    justify-self:end;
  }
  .trace-project.p-8 .copy{
    grid-column:1;
    grid-row:1;
    padding-right:22px;
    text-align:right;
  }

  .press-inset,
  .press-inset.press-left,
  .press-inset.press-right,
  .press-inset.press-center{
    width:calc(50% - 38px);
    min-height:0;
    margin:0 18px 5svh;
    padding:14px 13px;
  }
  .press-inset.press-left{margin-right:calc(50% + 20px);text-align:right;}
  .press-inset.press-right,
  .press-inset.press-center{margin-left:calc(50% + 20px);}
  .press-inset blockquote{
    margin:22px 0 16px;
    font-size:15px;
    line-height:1.12;
  }
  .press-inset .press-kicker,
  .press-inset footer{font-size:7px;}

  .timeline-section{padding:44px 18px 74px;}
  .timeline-head{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:32px;
    margin:0 0 30px;
    padding:0;
  }
  .timeline-head span{text-align:right;padding-right:12px;}
  .timeline-head p{
    margin:0;
    padding-left:12px;
    font-size:9px;
    line-height:1.45;
  }

  .timeline{padding-top:0;}
  .timeline-item,
  .timeline-item.side-left,
  .timeline-item.side-right,
  .timeline-item:nth-child(even){
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:94px;
    gap:0;
    margin:0;
    padding:8px 0;
    align-items:center;
  }

  .timeline-item .dot,
  .timeline-item.side-left .dot,
  .timeline-item.side-right .dot,
  .timeline-item:nth-child(even) .dot{display:none;}

  .timeline-item .year,
  .timeline-item.side-right .year{
    grid-column:1;
    grid-row:1;
    padding-right:22px;
    text-align:right;
    font-size:9px;
  }
  .timeline-item.side-left .year,
  .timeline-item:nth-child(even) .year{
    grid-column:2;
    grid-row:1;
    padding:0 0 0 22px;
    text-align:left;
  }

  .timeline-item .timeline-project,
  .timeline-item.side-right .timeline-project{
    grid-column:2;
    grid-row:1;
    display:grid;
    grid-template-columns:58px 1fr;
    gap:10px;
    align-items:center;
    width:auto;
    max-width:none;
    padding-left:22px;
    transform:none!important;
    direction:ltr;
    justify-self:stretch;
  }
  .timeline-item.side-left .timeline-project,
  .timeline-item:nth-child(even) .timeline-project{
    grid-column:1;
    grid-row:1;
    grid-template-columns:1fr 58px;
    padding:0 22px 0 0;
    text-align:right;
    direction:ltr;
    justify-self:stretch;
  }
  .timeline-item.side-left .timeline-project img,
  .timeline-item:nth-child(even) .timeline-project img{grid-column:2;}
  .timeline-item.side-left .timeline-project div,
  .timeline-item:nth-child(even) .timeline-project div{grid-column:1;grid-row:1;}

  .timeline-item::before{
    content:"";
    position:absolute;
    z-index:5;
    top:50%;
    left:50%;
    width:12px;
    height:1px;
    background:var(--ink);
    transform:translate(-50%,-50%);
    opacity:.74;
  }

  .timeline-item img{
    width:58px;
    aspect-ratio:1.28/1;
    object-fit:cover;
  }
  .timeline-item strong{
    display:block;
    font-size:11px;
    line-height:1.04;
  }
  .timeline-item span{margin-top:4px;font-size:8px;}

}

@media (max-width:360px){
  .trace-project h2,
  .trace-project.p-1 h2,
  .trace-project.late-project h2{font-size:20px;}

  .timeline-item .timeline-project,
  .timeline-item.side-right .timeline-project{grid-template-columns:52px 1fr;}
  .timeline-item.side-left .timeline-project,
  .timeline-item:nth-child(even) .timeline-project{grid-template-columns:1fr 52px;}
  .timeline-item img{width:52px;}
}

/* ==========================================================================
   MOBILE — PROJETS ET PARCOURS : COMPOSITION
   ========================================================================== */
@media (max-width:800px){

  .trace-project.p-2 .image{
    grid-column:1 / -1;
    width:62vw;
    height:49svh;
    justify-self:end;
    margin-right:-18px;
  }
  .trace-project.p-2 .copy{
    grid-column:1;
    grid-row:1;
    width:calc(50vw - 27px);
    padding-right:18px;
  }

  .trace-project.p-3 .image{
    grid-column:1 / -1;
    width:59vw;
    height:42svh;
    justify-self:start;
    margin-left:-18px;
  }
  .trace-project.p-3 .copy{
    grid-column:2;
    grid-row:1;
    width:calc(50vw - 27px);
    padding-left:18px;
  }

  .trace-project.p-4 .image{
    grid-column:1 / -1;
    width:56vw;
    height:36svh;
    justify-self:end;
    margin-right:-18px;
  }
  .trace-project.p-4 .copy{
    grid-column:1;
    grid-row:1;
    width:calc(50vw - 29px);
    padding-right:18px;
  }

  .trace-project.p-5 .image{
    grid-column:1 / -1;
    width:53vw;
    height:31svh;
    justify-self:start;
    margin-left:-18px;
  }
  .trace-project.p-5 .copy{
    grid-column:2;
    grid-row:1;
    width:calc(50vw - 30px);
    padding-left:18px;
  }

  .trace-project.p-6 .image{
    grid-column:1 / -1;
    width:49vw;
    height:26svh;
    justify-self:end;
    margin-right:-18px;
  }
  .trace-project.p-6 .copy{
    grid-column:1;
    grid-row:1;
    width:calc(50vw - 31px);
    padding-right:18px;
  }

  .trace-project.p-7 .image{
    grid-column:1 / -1;
    width:45vw;
    height:22svh;
    justify-self:start;
    margin-left:-18px;
  }
  .trace-project.p-7 .copy{
    grid-column:2;
    grid-row:1;
    width:calc(50vw - 32px);
    padding-left:18px;
  }

  .trace-project.p-8 .image{
    grid-column:1 / -1;
    width:42vw;
    height:19svh;
    justify-self:end;
    margin-right:-18px;
  }
  .trace-project.p-8 .copy{
    grid-column:1;
    grid-row:1;
    width:calc(50vw - 33px);
    padding-right:18px;
  }

  .trace-project.p-2{min-height:72svh;}
  .trace-project.p-3{min-height:65svh;}
  .trace-project.p-4{min-height:58svh;}
  .trace-project.p-5{min-height:51svh;}
  .trace-project.p-6{min-height:45svh;}
  .trace-project.p-7{min-height:40svh;}
  .trace-project.p-8{min-height:36svh;}

  .trace-project.p-2 .copy,
  .trace-project.p-3 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-7 .copy,
  .trace-project.p-8 .copy{
    z-index:5;
    background:linear-gradient(var(--bg),var(--bg));
  }

  .timeline-item.side-right .timeline-project{
    padding-left:20px;
  }
  .timeline-item.side-left .timeline-project{
    padding-right:20px;
  }

  .timeline-item.side-right:nth-child(4n+1) a{transform:translateX(3px)!important;}
  .timeline-item.side-left:nth-child(4n+3) a{transform:translateX(-3px)!important;}

  .timeline-item.expanded{min-height:var(--timeline-item-expanded-height);}
  .timeline-item.compact{min-height:var(--timeline-item-compact-height);}

  .timeline-item.side-left .year,
  .timeline-item.side-right .year{
    font-variant-numeric:tabular-nums;
  }
}

/* Les palettes restent prioritaires sur les couleurs historiques du site. */
html[data-theme] body,
html[data-theme] .trace-flow,
html[data-theme] .timeline-section,
html[data-theme] .about,
html[data-theme] .contact,
html[data-theme] body>footer,
html[data-theme] .project-view,
html[data-theme] .cv-view{
  background:var(--bg);
  color:var(--ink);
}
html[data-theme] .project-bar,
html[data-theme] .cv-bar{
  background:color-mix(in srgb,var(--bg) 94%,transparent);
  color:var(--ink);
  border-color:color-mix(in srgb,var(--ink) 22%,transparent);
}
html[data-theme] .press-inset{
  background:var(--press-bg)!important;
  color:var(--press-ink)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--press-ink) 36%,transparent);
}
html[data-theme] .press-inset.press-light{
  background:var(--panel-bg)!important;
  color:var(--ink)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 36%,transparent);
}
html[data-theme] .trace-project .venue,
html[data-theme] .press-inset footer{color:var(--muted)!important;}
html[data-theme] .trace-project .cartel-line,
html[data-theme] .projects-stage .press-inset::before,
html[data-theme] .timeline-item::before,
html[data-theme] .timeline-item .dot{
  background:var(--line-color)!important;
}
html[data-theme] .master-trace stop{stop-color:var(--line-color);}

/* Matière de pinceau superposée à un fil central continu. */
.master-trace{
  width:2px;
  opacity:.62;
}
.master-trace-texture{
  position:absolute;
  z-index:4;
  top:0;
  left:50%;
  width:330px;
  height:calc(100% - 80px);
  transform:translateX(-50%);
  pointer-events:none;
  object-fit:fill;
  filter:brightness(0) invert(1);
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.04) 0%,rgba(0,0,0,.22) 10%,rgba(0,0,0,.56) 28%,#000 66%);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.04) 0%,rgba(0,0,0,.22) 10%,rgba(0,0,0,.56) 28%,#000 66%);
  opacity:.84;
}

@media (max-width:800px){
  .master-trace{width:2px;}
  .master-trace-texture{top:0;width:205px;height:calc(100% - 52px);}
}

html[data-theme] .projects-stage .press-inset .press-toggle{
  position:absolute!important;z-index:4;right:16px!important;left:auto!important;
  top:auto!important;bottom:14px!important;margin:0;
}
html[data-theme] .projects-stage .press-inset:has(.press-toggle) footer{
  box-sizing:border-box;min-height:42px;padding-right:64px;padding-bottom:6px;
}

/* Le contrôle presse dispose de sa propre zone et ne recouvre plus la source. */
html[data-theme] .projects-stage .press-inset .press-toggle{
  position:absolute!important;
  z-index:4;
  right:16px!important;
  left:auto!important;
  top:auto!important;
  bottom:14px!important;
  margin:0;
}
html[data-theme] .projects-stage .press-inset:has(.press-toggle) footer{
  box-sizing:border-box;
  min-height:42px;
  padding-right:64px;
  padding-bottom:6px;
}

/* Les deux grands chapitres sont centrés directement sur l'axe. */
.section-head::after,
.timeline-head::after{display:none;}
.section-head,
.timeline-head{
  display:flex!important;
  justify-content:center!important;
  text-align:center;
}
.section-head>span,
.timeline-head>span{
  position:relative;
  z-index:1;
  width:max-content;
  padding:0 14px;
  background:var(--bg);
}

@media (max-width:800px){
  .section-head>span,
  .timeline-head>span{
    margin:0 auto;
    padding:0 12px;
  }
}

/* Cartouches de chapitre : la matière de l'axe s'interrompt réellement. */
.trace-section,
.timeline-section{z-index:auto;}
.projects-stage,
.timeline{z-index:2;}
.section-head,
.timeline-head{
  z-index:6!important;
  align-items:flex-start!important;
}
.section-head>span,
.timeline-head>span{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  align-self:flex-start;
  white-space:nowrap;
  padding:12px 18px;
  border:1px solid color-mix(in srgb,var(--line-color) 42%,transparent);
  background:rgba(24,28,26,.75);
  box-shadow:none;
}
.section-head>span{
  line-height:1;
}

@media (max-width:800px){
  .section-head>span,
  .timeline-head>span{
    padding:10px 15px;
  }
}
html[data-theme] .about,
html[data-theme] .contact,
html[data-theme] .project-press,
html[data-theme] .project-gallery-section,
html[data-theme] .project-video,
html[data-theme] .project-next,
html[data-theme] .detail-opening,
html[data-theme] .credits,
html[data-theme] .cv-list,
html[data-theme] .cv-year{
  border-color:color-mix(in srgb,var(--ink) 24%,transparent)!important;
}

/* ==========================================================================
   MOBILE — PROJETS ET PARCOURS : ALIGNEMENTS
   ========================================================================== */
@media (max-width:800px){

  .trace-project.p-2 .image,
  .trace-project.p-3 .image,
  .trace-project.p-4 .image,
  .trace-project.p-5 .image,
  .trace-project.p-6 .image,
  .trace-project.p-7 .image,
  .trace-project.p-8 .image{
    grid-column:1 / -1;
    grid-row:1;
    justify-self:center;
    margin-left:0;
    margin-right:0;
  }

  .trace-project.p-2 .image{
    width:58vw;
    height:49svh;
    transform:translateX(8vw);
  }
  .trace-project.p-3 .image{
    width:56vw;
    height:42svh;
    transform:translateX(-8vw);
  }
  .trace-project.p-4 .image{
    width:53vw;
    height:36svh;
    transform:translateX(7vw);
  }
  .trace-project.p-5 .image{
    width:50vw;
    height:31svh;
    transform:translateX(-7vw);
  }
  .trace-project.p-6 .image{
    width:47vw;
    height:26svh;
    transform:translateX(6vw);
  }
  .trace-project.p-7 .image{
    width:44vw;
    height:22svh;
    transform:translateX(-6vw);
  }
  .trace-project.p-8 .image{
    width:41vw;
    height:19svh;
    transform:translateX(5vw);
  }

  .trace-project.p-2 .copy,
  .trace-project.p-3 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-7 .copy,
  .trace-project.p-8 .copy{
    grid-row:1;
    align-self:center;
    width:calc(50vw - 25px);
    margin:0;
    z-index:5;
    background:var(--bg);
  }

  .trace-project.p-2 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-8 .copy{
    grid-column:1;
    justify-self:end;
    padding:12px 17px 12px 0;
    text-align:right;
  }

  .trace-project.p-3 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-7 .copy{
    grid-column:2;
    justify-self:start;
    padding:12px 0 12px 17px;
    text-align:left;
  }

  .trace-project.p-2 .copy::after,
  .trace-project.p-3 .copy::after,
  .trace-project.p-4 .copy::after,
  .trace-project.p-5 .copy::after,
  .trace-project.p-6 .copy::after,
  .trace-project.p-7 .copy::after,
  .trace-project.p-8 .copy::after{
    top:50%;
    width:30px;
    transform:translateY(-50%);
    opacity:.62;
  }

  .trace-project.p-2 .copy::after,
  .trace-project.p-4 .copy::after,
  .trace-project.p-6 .copy::after,
  .trace-project.p-8 .copy::after{
    left:100%;
    right:auto;
  }

  .trace-project.p-3 .copy::after,
  .trace-project.p-5 .copy::after,
  .trace-project.p-7 .copy::after{
    right:100%;
    left:auto;
  }

  .trace-project.p-2 .year,
  .trace-project.p-3 .year,
  .trace-project.p-4 .year,
  .trace-project.p-5 .year,
  .trace-project.p-6 .year,
  .trace-project.p-7 .year,
  .trace-project.p-8 .year{
    margin-bottom:5px;
  }

  .trace-project.p-2 h2,
  .trace-project.p-3 h2,
  .trace-project.p-4 h2,
  .trace-project.p-5 h2,
  .trace-project.p-6 h2,
  .trace-project.p-7 h2,
  .trace-project.p-8 h2{
    margin-bottom:6px;
  }

  .trace-project.p-2 .open,
  .trace-project.p-3 .open,
  .trace-project.p-4 .open,
  .trace-project.p-5 .open,
  .trace-project.p-6 .open,
  .trace-project.p-7 .open,
  .trace-project.p-8 .open{
    margin-top:9px;
  }
}

@media (max-width:360px){
  .trace-project.p-2 .image{transform:translateX(7vw);}
  .trace-project.p-3 .image{transform:translateX(-7vw);}
  .trace-project.p-4 .image{transform:translateX(6vw);}
  .trace-project.p-5 .image{transform:translateX(-6vw);}
  .trace-project.p-6 .image{transform:translateX(5vw);}
  .trace-project.p-7 .image{transform:translateX(-5vw);}
  .trace-project.p-8 .image{transform:translateX(4vw);}

  .trace-project.p-2 .copy,
  .trace-project.p-3 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-7 .copy,
  .trace-project.p-8 .copy{
    width:calc(50vw - 21px);
  }
}

/* ==========================================================================
   MOBILE — PROJETS ET PARCOURS : TYPOGRAPHIE
   ========================================================================== */
@media (max-width:800px){

  .trace-project.p-2 .copy,
  .trace-project.p-3 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-7 .copy,
  .trace-project.p-8 .copy{
    width:var(--selected-mobile-copy-width);
    max-width:var(--selected-mobile-copy-max-width);
  }

  .trace-project.p-2 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-8 .copy{
    transform:translateX(calc(var(--selected-mobile-copy-offset) * -1));
  }

  .trace-project.p-3 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-7 .copy{
    transform:translateX(var(--selected-mobile-copy-offset));
  }

  .trace-project.p-2 .copy{padding:11px 13px 11px 0;}
  .trace-project.p-3 .copy{padding:10px 0 10px 13px;}
  .trace-project.p-4 .copy{padding:10px 12px 10px 0;}
  .trace-project.p-5 .copy{padding:9px 0 9px 12px;}
  .trace-project.p-6 .copy{padding:8px 11px 8px 0;}
  .trace-project.p-7 .copy{padding:7px 0 7px 11px;}
  .trace-project.p-8 .copy{padding:7px 10px 7px 0;}

  .trace-project.p-2 h2{font-size:clamp(24px,7.1vw,29px);}
  .trace-project.p-3 h2{font-size:clamp(23px,6.7vw,27px);}
  .trace-project.p-4 h2{font-size:clamp(21px,6.2vw,25px);}
  .trace-project.p-5 h2{font-size:clamp(20px,5.7vw,23px);}
  .trace-project.p-6 h2{font-size:clamp(18px,5.2vw,21px);}
  .trace-project.p-7 h2{font-size:clamp(17px,4.8vw,19px);}
  .trace-project.p-8 h2{font-size:clamp(16px,4.4vw,18px);}

  .trace-project.p-2 h2,
  .trace-project.p-3 h2,
  .trace-project.p-4 h2,
  .trace-project.p-5 h2,
  .trace-project.p-6 h2,
  .trace-project.p-7 h2,
  .trace-project.p-8 h2{
    max-width:10ch;
    line-height:.96;
  }

  .trace-project.p-2 .year,
  .trace-project.p-3 .year,
  .trace-project.p-4 .year{
    font-size:8.5px;
  }

  .trace-project.p-5 .year,
  .trace-project.p-6 .year{
    font-size:8px;
  }

  .trace-project.p-7 .year,
  .trace-project.p-8 .year{
    font-size:7.5px;
  }

  .trace-project.p-2 .artist,
  .trace-project.p-3 .artist{font-size:9.5px;}
  .trace-project.p-4 .artist,
  .trace-project.p-5 .artist{font-size:9px;}
  .trace-project.p-6 .artist,
  .trace-project.p-7 .artist,
  .trace-project.p-8 .artist{font-size:8.5px;}

  .trace-project.p-2 .open,
  .trace-project.p-3 .open{font-size:7.8px;}
  .trace-project.p-4 .open,
  .trace-project.p-5 .open{font-size:7.4px;}
  .trace-project.p-6 .open,
  .trace-project.p-7 .open,
  .trace-project.p-8 .open{font-size:7px;}

  .trace-project.p-2 .copy::after,
  .trace-project.p-3 .copy::after,
  .trace-project.p-4 .copy::after,
  .trace-project.p-5 .copy::after,
  .trace-project.p-6 .copy::after,
  .trace-project.p-7 .copy::after,
  .trace-project.p-8 .copy::after{
    width:clamp(25px,8vw,34px);
    opacity:.56;
  }
}

@media (max-width:360px){
  .trace-project.p-2 .copy,
  .trace-project.p-3 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-7 .copy,
  .trace-project.p-8 .copy{
    width:37vw;
  }

  .trace-project.p-2 .copy,
  .trace-project.p-4 .copy,
  .trace-project.p-6 .copy,
  .trace-project.p-8 .copy{
    transform:translateX(-3.5vw);
  }

  .trace-project.p-3 .copy,
  .trace-project.p-5 .copy,
  .trace-project.p-7 .copy{
    transform:translateX(3.5vw);
  }
}

/* ==========================================================================
   COLLABORATIONS, CV ET CONTACT
   ========================================================================== */

.collaboration-name__label{display:inline;font-size:100%;}
.collaboration-name[href]{color:inherit;text-decoration:none;cursor:pointer;transition:opacity .2s ease;}
.collaboration-name[href]:hover,.collaboration-name[href]:focus-visible{opacity:.58;}
.collaboration-name[href]:focus-visible{outline:1px solid currentColor;outline-offset:5px;}
.collaboration-name--xl{font-size:var(--collaboration-xl);}
.collaboration-name--lg{font-size:var(--collaboration-lg);}
.collaboration-name--md{font-size:var(--collaboration-md);}
.collaboration-name--sm{font-size:var(--collaboration-sm);}

.cv-intro{align-items:start;padding-bottom:clamp(58px,7vw,96px);}
.cv-intro h2{font-size:clamp(34px,4.7vw,74px);line-height:.96;max-width:14ch;}
.cv-intro p{margin-top:16px;max-width:48ch;font-size:var(--cv-intro-title-size);line-height:1.55;}
.cv-year{padding:clamp(31px,3.4vw,50px) 0;}
.cv-year>h3{font-size:var(--cv-year-size);line-height:1;font-weight:500;letter-spacing:-.025em;}
.cv-year ul{gap:18px;}
.cv-year li{font-size:var(--cv-entry-size);line-height:1.32;letter-spacing:-.015em;}
.cv-entry-title{display:block;font-family:var(--font-display);font-size:1.32em;line-height:1.05;letter-spacing:var(--display-spacing);font-weight:var(--display-weight);}
.cv-entry-meta{display:block;margin-top:4px;color:var(--muted);font-size:.78em;line-height:1.35;letter-spacing:0;}

.contact-profile{grid-template-columns:var(--contact-columns);gap:clamp(30px,5vw,82px);align-items:end;}
.contact-details{align-self:end;padding-bottom:clamp(2px,.5vw,8px);}
.contact-details h2{font-size:var(--contact-name-size);line-height:.94;max-width:8ch;}
.contact-role{margin:10px 0 clamp(24px,3.2vw,44px);font-size:var(--contact-role-size);}
.contact-details address{gap:var(--contact-address-gap);}
.contact-details address span,.contact-details address a{font-size:var(--contact-address-size);}

@media (max-width:800px){
  .collaboration-name--xl{font-size:var(--collaboration-xl);}
  .collaboration-name--lg{font-size:.84em;}
  .collaboration-name--md{font-size:.7em;}
  .collaboration-name--sm{font-size:.6em;}

  .cv-intro{gap:14px;padding-bottom:56px;}
  .cv-intro h2{font-size:9.7vw;max-width:13ch;}
  .cv-intro p{font-size:12px;max-width:40ch;}
  .cv-year{gap:16px;padding:28px 0;}
  .cv-year>h3{
    display:inline-block;
    width:max-content;
    padding-bottom:4px;
    border-bottom:1px solid currentColor;
    font-size:18px;
  }
  .cv-year ul{gap:15px;}
  .cv-year li{font-size:14px;}
  .cv-entry-title{font-size:1.27em;}
  .cv-entry-meta{font-size:.82em;margin-top:3px;}

  .contact-profile{grid-template-columns:1fr;gap:26px;padding-top:72px;}
  .contact-details{width:min(82vw,360px);margin-left:auto;padding-bottom:0;}
  .contact-details h2{font-size:var(--contact-name-size);max-width:none;}
  .contact-role{margin:8px 0 24px;font-size:var(--contact-role-size);}
  .contact-details address span,.contact-details address a{font-size:var(--contact-address-size);}
}

.timeline-item .dot{background:transparent!important;border-radius:0!important;}

/* ==========================================================================
   AXE CENTRAL ET RACCORDEMENTS
   ========================================================================== */

.master-trace{
  top:0;
  height:calc(100% - 80px);
}

.timeline-item{position:relative;}
.timeline-item .dot{display:none;}
.timeline-item::before{
  content:"";
  position:absolute;
  z-index:1;
  top:50%;
  height:1px;
  width:62px;
  background:rgba(17,17,17,var(--timeline-connector-opacity));
  transform:translateY(-50%);
  pointer-events:none;
}
.timeline-item.side-right::before{
  left:50%;
}
.timeline-item.side-left::before{
  right:50%;
}
.timeline-item .year,
.timeline-item .timeline-project{position:relative;z-index:2;}

@media (max-width:800px){
  .master-trace{
    top:0;
    height:calc(100% - 52px);
  }

  .timeline-item::before,
  .timeline-item.side-left::before,
  .timeline-item.side-right::before,
  .timeline-item:nth-child(even)::before{
    top:50%;
    left:50%;
    right:auto;
    width:22px;
    height:1px;
    transform:translate(-50%,-50%);
    opacity:.74;
  }
}

/* ==========================================================================
   CARTELS ÉDITORIAUX
   ========================================================================== */
@media (min-width:801px){
  .trace-project{cursor:default;}
  .trace-project .image{transition:transform .48s cubic-bezier(.22,.61,.36,1);will-change:transform;}
  .trace-project .image img{transition:transform .7s cubic-bezier(.22,.61,.36,1);}
  .trace-project:hover .image img{transform:none;}
  .trace-project .image:after{display:none!important;}

  .trace-project .image-hover-zone{
    position:absolute;z-index:8;border:0;padding:0;margin:0;background:transparent;cursor:pointer;
  }

  .trace-project .copy{
    position:absolute;z-index:6;max-width:none;padding:0;background:transparent;box-shadow:none;color:var(--ink);
    overflow:visible;pointer-events:none;text-shadow:none;
  }
  .trace-project .copy:after{display:none!important;}
  .trace-project .cartel-line{
    position:absolute;top:0;height:1px;background:rgba(17,17,17,.7);display:block;
  }
  .trace-project h2{
    margin:12px 0 0;max-width:none;font-size:var(--selected-title-size);line-height:.92;
    letter-spacing:-.045em;font-weight:500;
  }
  .trace-project .cartel-more{
    overflow:hidden;max-height:0;opacity:0;transition:max-height .48s cubic-bezier(.22,.61,.36,1),opacity .28s ease .08s;
  }
  .trace-project.is-revealed .cartel-more{max-height:var(--reveal-height);opacity:1;}
  .trace-project .artist{font-size:15px;line-height:1.18;margin:14px 0 4px;font-weight:500;}
  .trace-project .venue{font-size:var(--selected-venue-size);line-height:1.35;margin:0;max-width:30ch;color:#55544f;}
  .trace-project .year{display:block;margin-top:7px;font-size:var(--selected-year-size);}
  .trace-project .open{margin-top:13px;font-size:var(--selected-link-size);}

  .trace-project.cartel-above.is-revealed .image{transform:translateY(calc(var(--reveal-height) + 8px));}

  .trace-project.cartel-right .copy{transform:none;}

  .trace-project.cartel-below .copy{display:flex;flex-direction:column;}
  .trace-project.cartel-below .cartel-line{order:2;}
  .trace-project.cartel-below h2{order:3;}
  .trace-project.cartel-below .cartel-more{order:1;}
  .trace-project.cartel-below .cartel-more .artist{margin-top:0;}
  .trace-project.cartel-below.is-revealed .image{transform:translateY(calc((var(--reveal-height) + 8px) * -1));}

  .trace-project.cartel-left.is-revealed .image{transform:translateX(calc(var(--left-shift) + 8px));}

  .trace-project .image-hover-zone:focus-visible{outline:1px solid #111;outline-offset:3px;}
}

@media (max-width:800px){
  .trace-project .image-hover-zone{display:none;}
  .trace-project .copy{position:relative!important;left:auto!important;right:auto!important;top:auto!important;width:auto!important;padding:18px 0 0;background:transparent;box-shadow:none;}
  .trace-project .cartel-line{display:block;position:relative;left:auto!important;top:auto;width:100%!important;height:1px;background:rgba(17,17,17,.55);margin-bottom:10px;}
  .trace-project .cartel-more{max-height:none!important;opacity:1!important;}
  .trace-project .artist{font-size:15px;font-weight:500;}
}

/* ==========================================================================
   CARTELS — SÉPARATION PHOTOGRAPHIE / TEXTE
   ========================================================================== */
@media (min-width:801px){

  .trace-project .copy,
  .trace-project.p-1 .copy{
    background:transparent!important;
    box-shadow:none!important;
    padding:0!important;
    text-shadow:none!important;
  }
  .trace-project .copy::after,
  .trace-project.p-1 .copy::after{display:none!important;content:none!important;}

  .trace-project.cartel-below.is-revealed .image{transform:none!important;}
  .trace-project.cartel-below .copy{gap:0;}
  .trace-project.cartel-below .cartel-more{margin:0;}

  .trace-project.cartel-above.is-revealed .image{
    transform:translateY(calc(var(--reveal-height) + var(--selected-reveal-offset)));
  }

  .trace-project.cartel-right .copy{overflow:visible;}
}

/* ==========================================================================
   CARTELS — RYTHME ET ESPACEMENT
   ========================================================================== */
@media (min-width:801px){

  .trace-project .image{
    transition:transform .9s cubic-bezier(.16,1,.3,1);
  }
  .trace-project .image img{
    transition:transform 1.05s cubic-bezier(.16,1,.3,1);
  }
  .trace-project .cartel-more{
    transition:
      max-height .9s cubic-bezier(.16,1,.3,1),
      opacity .52s ease .12s;
  }

  .trace-project{
    margin-bottom:var(--selected-project-gap);
  }

  .trace-project.cartel-above,
  .trace-project.cartel-below{
    margin-bottom:calc(var(--reveal-height, 0px) + var(--selected-project-reveal-gap));
  }

  .trace-project.cartel-below .copy{
    margin-top:0;
  }
}

/* ==========================================================================
   CARTELS — HIÉRARCHIE ET MOUVEMENT
   ========================================================================== */
@media (min-width:801px){

  .trace-project .image{
    transition:transform var(--selected-image-motion) cubic-bezier(.22,.72,.18,1);
  }
  .trace-project .image img{
    transition:transform 1.5s cubic-bezier(.22,.72,.18,1);
  }
  .trace-project .cartel-more{
    transition:
      max-height var(--selected-text-motion) cubic-bezier(.22,.72,.18,1),
      opacity .72s ease .18s;
  }

  .trace-project .artist{
    font-size:var(--selected-artist-size);
    line-height:1.12;
    margin-top:16px;
    margin-bottom:7px;
    font-weight:500;
  }

}

@media (max-width:800px){
  .trace-project .artist{
    font-size:13px;
    line-height:1.18;
    font-weight:500;
  }
  .trace-project.p-1 h2{
    font-size:clamp(19px,6.2vw,27px);
  }
}

/* ==========================================================================
   PROJETS CHOISIS — RÉGLAGES FINAUX
   ========================================================================== */
@media (min-width:801px){

  .trace-project.p-1 h2{
    font-size:var(--selected-first-title-size);
  }

  .trace-project.cartel-left .cartel-line,
  .trace-project.cartel-right .cartel-line{
    margin:0;
  }
}

@media (max-width:800px){
  .trace-project.p-1 h2{
    font-size:clamp(21px,6.8vw,30px);
  }
}

@media (max-width:800px){
  .trace-project{cursor:pointer;}
  .trace-project .image,
  .trace-project .copy{touch-action:manipulation;}
}

/* ==========================================================================
   FICHE PROJET — MOBILE
   ========================================================================== */
@media (max-width:800px){
  .detail-opening{
    gap:34px;
    padding:78px 18px 38px;
  }

  .detail-titleblock .detail-year{
    margin-bottom:14px;
  }

  .detail-titleblock .detail-artist{
    margin-top:20px;
  }

  .detail-facts{
    gap:19px;
  }

  .detail-facts .fact{
    padding-top:9px;
  }

  .detail-facts strong{
    margin-bottom:9px;
  }

  .detail-facts p{
    margin-bottom:3px;
    line-height:1.45;
  }

  .detail-hero-image{
    padding-top:12px;
  }

  .project-gallery-section{
    padding-top:55px;
  }
}

/* ==========================================================================
   HERO — composition typographique validée
   ========================================================================== */
.intro-title{
  position:absolute;
  right:var(--hero-right);
  top:var(--hero-top);
  width:max-content;
  max-width:none;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  margin:0;
  color:#fff;
  text-align:right;
  font-family:"Michroma",Arial,sans-serif;
  font-weight:400;
  text-transform:uppercase;
  transform:translate(var(--hero-x),var(--hero-y));
}
.intro-title .intro-name{
  position:relative;
  display:inline-grid;
  grid-auto-flow:column;
  grid-auto-columns:max-content;
  justify-content:end;
  align-items:baseline;
  width:max-content;
  max-width:none;
  white-space:nowrap;
  font:inherit;
  font-size:var(--hero-name-size);
  line-height:.82;
  letter-spacing:-.066em;
}
.intro-title .intro-role{
  position:static;
  z-index:auto;
  display:inline-grid;
  grid-auto-flow:column;
  grid-auto-columns:max-content;
  justify-content:end;
  align-items:baseline;
  width:max-content;
  max-width:none;
  margin:var(--hero-role-gap) 0 0;
  white-space:nowrap;
  font:inherit;
  font-size:var(--hero-role-size);
  line-height:.82;
  letter-spacing:-.045em;
  opacity:.98;
  transform:translateX(var(--hero-role-x));
}
.intro-title .hero-word{display:block;width:max-content;}
.intro-title .hero-word-tesson{margin-left:var(--hero-name-join);}
.intro-title .hero-word-lumiere{margin-left:var(--hero-role-word-gap);}
@media (max-width:800px){
  .intro-title{max-width:calc(100vw - 36px);}
  .intro-title .intro-name{letter-spacing:-.062em;}
  .intro-title .intro-role{letter-spacing:-.035em;}
}

/* ==========================================================================
   CV — STRUCTURE ET INTERACTIONS
   ========================================================================== */
.cv-content{
  padding-top:clamp(48px,5.5vw,82px);
  padding-bottom:clamp(72px,9vw,130px);
}

.cv-intro{
  grid-template-columns:minmax(100px,.3fr) minmax(0,1fr);
  align-items:start;
  padding-bottom:clamp(38px,4.5vw,66px);
}

.cv-intro-note{
  max-width:54ch;
}

.cv-intro h2{
  margin:0;
  max-width:none;
  font-size:clamp(18px,1.65vw,25px);
  line-height:1.2;
  letter-spacing:-.025em;
  font-weight:500;
}

.cv-intro p{
  grid-column:auto;
  margin:8px 0 0;
  max-width:52ch;
  font-size:clamp(11px,.9vw,13px);
  line-height:1.45;
}

.cv-year{
  padding:clamp(20px,2.15vw,31px) 0;
}

.cv-year ul{
  gap:11px;
}

.cv-entry{
  position:relative;
}

.cv-entry-link{
  position:relative;
  display:block;
  width:100%;
  margin:0;
  padding:0 28px 0 0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}

.cv-entry-link::after{
  content:"+";
  position:absolute;
  top:.05em;
  right:0;
  font-size:.8em;
  font-weight:400;
  opacity:0;
  transform:translateX(-3px);
  transition:opacity .18s ease,transform .18s ease;
}

.cv-entry-link .cv-entry-title{
  transition:color .18s ease;
}

.cv-entry-link:hover .cv-entry-title,
.cv-entry-link:focus-visible .cv-entry-title{
  color:rgba(17,17,17,.72);
}

.cv-entry-link:hover::after,
.cv-entry-link:focus-visible::after{
  opacity:.72;
  transform:none;
}

.cv-entry-link:focus-visible{
  outline:1px solid rgba(17,17,17,.55);
  outline-offset:5px;
}

@media (max-width:800px){
  .cv-content{
    padding-top:44px;
    padding-bottom:82px;
  }

  .cv-intro{
    grid-template-columns:1fr;
    gap:10px;
    padding-bottom:38px;
  }

  .cv-intro-note{
    max-width:36ch;
  }

  .cv-intro h2{
    font-size:18px;
    line-height:1.2;
  }

  .cv-intro p{
    margin-top:7px;
    font-size:11px;
  }

  .cv-year{
    gap:12px;
    padding:21px 0;
  }

  .cv-year ul{
    gap:10px;
  }

  .cv-entry-link{
    padding-right:22px;
  }

  @media (hover:none){
    .cv-entry-link::after{
      opacity:.42;
      transform:none;
    }
  }
}

/* ==========================================================================
   CV — DENSITÉ ÉDITORIALE
   ========================================================================== */
.cv-intro{
  display:block;
  padding-bottom:clamp(28px,3.2vw,46px);
}

.cv-intro>.eyebrow{
  display:block;
}

.cv-intro-note{
  width:var(--cv-intro-width);
  max-width:none;
  margin:clamp(18px,2vw,28px) 0 0 var(--cv-intro-indent);
}

.cv-intro h2{
  font-size:var(--cv-intro-title-size);
  line-height:1.35;
  letter-spacing:0;
  font-weight:400;
}

.cv-intro p{
  margin-top:5px;
  font-size:var(--cv-intro-text-size);
  line-height:1.45;
}

.cv-year{
  padding:var(--cv-year-padding-y) 0;
}

.cv-year ul{
  gap:var(--cv-entry-gap);
}

.cv-entry-meta{
  display:block;
  margin-top:3px;
  font-size:.82em;
  line-height:1.3;
  letter-spacing:0;
}

.cv-entry-artist{
  color:var(--ink);
  font-weight:500;
}

.cv-entry-details{
  color:var(--muted);
  font-weight:400;
}

@media (max-width:800px){
  .cv-intro{
    padding-bottom:30px;
  }

  .cv-intro-note{
    width:var(--cv-intro-width);
    margin:16px 0 0 var(--cv-intro-indent);
  }

  .cv-intro h2{
    font-size:12px;
  }

  .cv-intro p{
    font-size:10px;
  }

  .cv-year{
    padding:18px 0;
  }

  .cv-year ul{
    gap:8px;
  }
}

/* ==========================================================================
   FINITIONS GÉNÉRALES   ========================================================================== */

.section-head,
.timeline-head,
.eyebrow{
  font-size:clamp(11px,.78vw,13px);
  letter-spacing:.015em;
}

.cv-entry-artist{
  font-size:1.08em;
  line-height:1.22;
}

.contact-profile{
  gap:var(--contact-profile-gap);
}

.contact-details{
  transform:translateY(var(--contact-details-y));
}

.contact-photo figcaption{
  font-size:clamp(9.5px,.68vw,11px);
  line-height:1.35;
}

@media (max-width:800px){
  .section-head,
  .timeline-head,
  .eyebrow{
    font-size:12px;
  }

  .cv-entry-artist{
    font-size:1.1em;
  }

  .contact-profile{
    gap:24px;
  }

  .contact-details{
    transform:none;
    width:min(84vw,390px);
    margin-left:clamp(32px,9vw,78px);
    margin-right:0;
  }

  .contact-photo figcaption{
    font-size:11px;
    margin-top:10px;
  }
}

/* ==========================================================================
   PARCOURS — GÉOMÉTRIE FINALE
   ========================================================================== */
@media (min-width:801px){
  .timeline{
    --timeline-axis-clearance:var(--timeline-axis-clearance-desktop);
  }
  .timeline-item{
    grid-template-columns:minmax(0,1fr) calc(var(--timeline-axis-clearance) * 2) minmax(0,1fr);
    gap:0;
  }
  .timeline-item .timeline-project{
    position:relative;
    max-width:min(520px,calc(50vw - var(--timeline-axis-clearance) - var(--pad) - 10px));
  }
  .timeline-item.side-right .timeline-project{
    transform:translateX(var(--timeline-offset,0px));
  }
  .timeline-item.side-left .timeline-project{
    transform:translateX(calc(var(--timeline-offset,0px) * -1));
  }

  /* L’ordre image / texte est indépendant du côté de l’axe. */
  .timeline-item.layout-image-text .timeline-project{direction:ltr;}
  .timeline-item.layout-text-image .timeline-project{direction:rtl;}
  .timeline-item.layout-image-text .timeline-project>*,
  .timeline-item.layout-text-image .timeline-project>*{direction:ltr;}

  /* Le raccord suit le retrait propre à chaque entrée. */
  .timeline-item.side-right::before,
  .timeline-item.side-left::before{
    width:calc(var(--timeline-axis-clearance) + var(--timeline-offset-abs,0px));
    opacity:var(--timeline-connector-opacity);
  }
}

/* ==========================================================================
   VALIDATION RESPONSIVE — TABLETTES
   Corrections ciblées relevées à 768, 820 et 1024 px.
   ========================================================================== */

/* iPad portrait : les collaborations restent éditoriales sans dominer la page. */
@media (min-width:601px) and (max-width:800px){
  .collaboration-flow{
    font-size:clamp(34px,5.7vw,44px);
    line-height:1.04;
  }
}

/* iPad Air portrait et iPad paysage : correction limitée au Parcours.
   Le Hero conserve exactement la composition typographique générale validée. */
@media (min-width:801px) and (max-width:1100px){
  /* Le retrait reste visible mais entre dans la largeur réellement disponible. */
  .timeline-item .timeline-project{
    max-width:min(
      520px,
      calc(
        50vw
        - var(--timeline-axis-clearance)
        - var(--pad)
        - var(--timeline-offset-abs,0px)
        - 12px
      )
    );
  }
}

/* ==========================================================================
   PROJETS CHOISIS — PARTITION FIXE DES 10 SLOTS
   ========================================================================== */
.projects-stage .trace-project .image,
.projects-stage .trace-project .image img{height:auto;}
.projects-stage .trace-project .image img{
  display:block;width:100%;object-fit:contain;
}

.press-inset{position:relative;}
.press-inset .press-quote{display:block;}
.projects-stage .press-inset.press-module-4 blockquote{box-sizing:border-box;width:100%;max-width:none;}
.projects-stage .press-inset.press-module-4 .press-quote{width:100%;max-width:none;}
.press-inset .press-quote-full{display:none;}
.press-inset.is-expanded .press-quote-preview{display:none;}
.press-inset.is-expanded .press-quote-full{display:block;}
.press-inset .press-toggle{
  position:absolute;right:clamp(14px,1.6vw,22px);bottom:clamp(12px,1.4vw,20px);
  display:grid;place-items:center;width:40px;height:40px;padding:0;border:2px solid currentColor;border-radius:50%;
  background:var(--bg);color:var(--ink);font:700 29px/1 Arial,sans-serif;cursor:pointer;
  box-shadow:0 0 0 3px color-mix(in srgb,currentColor 28%,transparent);
}
.press-inset:not(.press-light) .press-toggle{background:var(--press-ink);color:var(--press-bg);}
.press-inset.press-light .press-toggle{background:var(--ink);color:var(--bg);}
.press-inset:has(.press-toggle) footer{padding-right:58px;}

@media (min-width:801px){
  .projects-stage .trace-project{box-sizing:border-box;min-height:var(--slot-height);padding-bottom:var(--slot-safe);}
  .projects-stage .trace-project .image{
    left:var(--slot-left);right:auto;top:var(--slot-top,0);
    width:var(--slot-width);height:auto;
  }
  .projects-stage .trace-project.p-1{--slot-left:3vw;--slot-width:86vw;--slot-height:116svh;--slot-safe:18svh;--slot-top:2svh;}
  .projects-stage .trace-project.p-2{--slot-left:39vw;--slot-width:48vw;--slot-height:96svh;--slot-safe:24svh;--slot-top:2svh;}
  .projects-stage .trace-project.p-3{--slot-left:55vw;--slot-width:42vw;--slot-height:82svh;--slot-safe:20svh;--slot-top:1svh;}
  .projects-stage .trace-project.p-4{--slot-left:7vw;--slot-width:38vw;--slot-height:75svh;--slot-safe:19svh;--slot-top:1svh;}
  .projects-stage .trace-project.p-5{--slot-left:2vw;--slot-width:43vw;--slot-height:70svh;--slot-safe:15svh;}
  .projects-stage .trace-project.p-6{--slot-left:60vw;--slot-width:35vw;--slot-height:63svh;--slot-safe:15svh;}
  .projects-stage .trace-project.p-7{--slot-left:13vw;--slot-width:32vw;--slot-height:57svh;--slot-safe:13svh;}
  .projects-stage .trace-project.p-8{--slot-left:16vw;--slot-width:29vw;--slot-height:52svh;--slot-safe:12svh;}
  .projects-stage .trace-project.p-9{--slot-left:19vw;--slot-width:26vw;--slot-height:47svh;--slot-safe:11svh;}
  .projects-stage .trace-project.p-10{--slot-left:22vw;--slot-width:23vw;--slot-height:43svh;--slot-safe:11svh;}

  .projects-stage .press-inset{box-sizing:border-box;width:clamp(250px,27vw,410px);min-height:0;margin-top:0;margin-bottom:clamp(7svh,9vw,14svh);}
  .projects-stage .press-inset.press-left{margin-left:auto;margin-right:calc(50% + 28px);}
  .projects-stage .press-inset.press-right,
  .projects-stage .press-inset.press-center{margin-left:calc(50% + 28px);margin-right:auto;}
  .projects-stage .press-inset.press-left::before{left:100%;right:auto;width:28px;}
  .projects-stage .press-inset.press-right::before,
  .projects-stage .press-inset.press-center::before{right:100%;left:auto;width:28px;}
  .projects-stage .press-inset blockquote{font-size:clamp(16px,1.65vw,24px);line-height:1.12;}
  .projects-stage .press-inset.is-expanded{width:min(42vw,620px);}
  .projects-stage .trace-project.p-8 + .press-inset{margin-bottom:7svh;}
  .projects-stage .trace-project.p-10 + .press-inset{margin-top:4svh;margin-bottom:16svh;}
}

@media (max-width:800px){
  .projects-stage .trace-project.p-9,
  .projects-stage .trace-project.p-10{
    position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;
    margin:0;padding:0 18px;
  }
  .projects-stage .trace-project.p-9{min-height:33svh;padding-bottom:2.2svh;}
  .projects-stage .trace-project.p-10{min-height:30svh;padding-bottom:2svh;}
  .projects-stage .trace-project.p-9 .image,
  .projects-stage .trace-project.p-10 .image{position:relative;inset:auto;grid-column:1/-1;grid-row:1;justify-self:center;margin:0;height:auto;}
  .projects-stage .trace-project.p-9 .image{width:38vw;transform:translateX(-9vw);}
  .projects-stage .trace-project.p-10 .image{width:35vw;transform:translateX(-7vw);}
  .projects-stage .trace-project.p-9 .copy,
  .projects-stage .trace-project.p-10 .copy{position:relative;inset:auto;grid-row:1;grid-column:2;justify-self:start;z-index:5;width:var(--selected-mobile-copy-width);max-width:var(--selected-mobile-copy-max-width);margin:0;padding:7px 0 7px 10px;background:var(--bg);text-align:left;transform:translateX(var(--selected-mobile-copy-offset));}
  .projects-stage .trace-project.p-9 h2{font-size:clamp(15px,4.1vw,17px);}
  .projects-stage .trace-project.p-10 h2{font-size:clamp(14px,3.8vw,16px);}
  .projects-stage .trace-project.p-9 .venue,
  .projects-stage .trace-project.p-10 .venue{display:none;}
  .projects-stage .press-inset .press-toggle{right:12px;bottom:10px;}
}

/* La composition exportée doit rester la dernière autorité sur desktop. */
@media (min-width:801px){
  .projects-stage{position:relative;width:100%;}
  .projects-stage .trace-project{
    position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;
  }
  .projects-stage .trace-project .image{position:absolute;margin:0;height:auto;overflow:hidden;background:#111;}
  .projects-stage .trace-project .image img{width:100%;height:100%;object-fit:cover;}
  .projects-stage .trace-project .copy{
    position:absolute;box-sizing:border-box;max-width:none;
    padding:var(--cartel-padding);overflow:visible;
    transition:max-width .42s cubic-bezier(.2,.7,.2,1),max-height .42s cubic-bezier(.2,.7,.2,1);
  }
  .projects-stage .trace-project h2,
  .projects-stage .trace-project.late-project h2{
    margin:var(--cartel-title-top) 0 var(--cartel-title-bottom);
    width:var(--cartel-title-width);max-width:100%;font-size:var(--cartel-title-size);line-height:.9;
  }
  .projects-stage .trace-project .year{font-size:var(--cartel-year-size);}
  .projects-stage .trace-project .artist{margin-bottom:var(--cartel-small-gap);font-size:var(--cartel-artist-size);}
  .projects-stage .trace-project .venue{font-size:var(--cartel-meta-size);line-height:1.3;}
  .projects-stage .trace-project .open{margin-top:var(--cartel-open-gap);font-size:var(--cartel-open-size);}
  .projects-stage .trace-project .cartel-more{display:block!important;order:initial!important;}
  .projects-stage .trace-project.composition-grow-left .copy{text-align:right;}
  .projects-stage .trace-project.composition-grow-left h2{margin-left:auto;}
  .projects-stage .trace-project.composition-grow-left .cartel-more,
  .projects-stage .trace-project.composition-grow-left .artist,
  .projects-stage .trace-project.composition-grow-left .venue,
  .projects-stage .trace-project.composition-grow-left .year,
  .projects-stage .trace-project.composition-grow-left .open{
    margin-left:auto;
    text-align:right;
  }
  .projects-stage .trace-project .cartel-line{
    display:block!important;position:absolute;z-index:10;top:calc(var(--cartel-padding) + 9px);height:1px;background:rgba(17,17,17,.78);
    transition:left .42s cubic-bezier(.2,.7,.2,1),width .42s cubic-bezier(.2,.7,.2,1);
  }
  .projects-stage .press-inset{
    position:absolute;box-sizing:border-box;padding:clamp(14px,1.5vw,22px);
    overflow:visible;
    transition:max-width .42s cubic-bezier(.2,.7,.2,1),max-height .42s cubic-bezier(.2,.7,.2,1);
  }
  .projects-stage .press-inset::before{
    content:"";display:block!important;position:absolute;z-index:0;top:30px;
    width:var(--press-connector-width)!important;height:1px;background:var(--ink);opacity:.78;
  }
  .projects-stage .press-inset .press-kicker,
  .projects-stage .press-inset blockquote,
  .projects-stage .press-inset footer,
  .projects-stage .press-inset .press-toggle{position:relative;z-index:1;}
  .projects-stage .press-inset.composition-left::before{left:100%;right:auto;}
  .projects-stage .press-inset.composition-right::before{right:100%;left:auto;}
  .projects-stage .press-inset.composition-axis-left.composition-grow-right::before{left:0;right:auto;}
  .projects-stage .press-inset.composition-axis-left.composition-grow-left::before{left:100%;right:auto;}
  .projects-stage .press-inset.composition-axis-right.composition-grow-right::before{right:100%;left:auto;}
  .projects-stage .press-inset.composition-axis-right.composition-grow-left::before{right:0;left:auto;}
  .projects-stage .press-inset.composition-grow-left{text-align:right;}
  .projects-stage .press-inset blockquote{font-size:var(--press-fit-size);line-height:1.02;letter-spacing:-.035em;}
  .projects-stage .press-inset blockquote{margin:clamp(18px,2vw,28px) 0 14px;}
  .projects-stage .press-inset .press-kicker,
  .projects-stage .press-inset footer{font-size:var(--press-fit-small-size);}
}

@media (min-width:801px){
  .section-head,
  .timeline-head,
  .eyebrow{
    font-size:18px!important;
    line-height:1;
    font-weight:600;
    letter-spacing:.035em;
  }
  .timeline-head{display:block;margin-bottom:clamp(24px,3vw,44px);}
  .timeline-section{padding-top:clamp(12px,1.5vw,24px)!important;}
}

@media (max-width:800px){
  .section-head,
  .timeline-head,
  .eyebrow{
    font-size:14px!important;
    line-height:1;
    font-weight:600;
    letter-spacing:.035em;
  }
}

/* Parcours : les années deviennent de véritables repères éditoriaux. */
.timeline-item .year,
.timeline-item:nth-child(even) .year{
  font-size:var(--timeline-year-size)!important;
  line-height:.88;
  font-weight:600;
  letter-spacing:-.045em;
  color:var(--ink);
  opacity:1;
}

@media (max-width:800px){
  .timeline-item .year,
  .timeline-item:nth-child(even) .year{
    font-size:var(--timeline-year-size)!important;
    font-weight:600;
  }
}

/* Priorité finale du comparateur chromatique. */
html[data-theme] body,html[data-theme] .trace-flow,html[data-theme] .timeline-section,
html[data-theme] .about,html[data-theme] .contact,html[data-theme] body>footer,
html[data-theme] .project-view,html[data-theme] .cv-view{background:var(--bg);color:var(--ink);}
html[data-theme] .project-bar,html[data-theme] .cv-bar{
  background:color-mix(in srgb,var(--bg) 94%,transparent);color:var(--ink);
}
html[data-theme] .press-inset{background:var(--press-bg)!important;color:var(--press-ink)!important;}
html[data-theme] .press-inset.press-light{background:var(--panel-bg)!important;color:var(--ink)!important;}
html[data-theme] .trace-project .venue,html[data-theme] .press-inset footer{color:var(--muted)!important;}
html[data-theme] .trace-project .cartel-line,
html[data-theme] .projects-stage .press-inset::before,
html[data-theme] .timeline-item::before,
html[data-theme] .timeline-item .dot{background:var(--line-color)!important;}
html[data-theme] .master-trace stop{stop-color:var(--line-color);}

html[data-theme] .projects-stage .press-inset .press-toggle{
  position:absolute!important;
  z-index:4;
  right:16px!important;
  left:auto!important;
  top:auto!important;
  bottom:14px!important;
  margin:0;
}
html[data-theme] .projects-stage .press-inset:has(.press-toggle) footer{
  box-sizing:border-box;
  min-height:42px;
  padding-right:64px;
  padding-bottom:6px;
}
