/* ============================================================
   @font-face et :root — COMMUNS aux deux expériences.
   Mis une seule fois, hors media query.
   ============================================================ */
@font-face{
  font-family:"GT America";
  src:url("fonts/GT-America-Standard-Regular.ttf") format("truetype");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"GT America";
  src:url("fonts/GT-America-Standard-Medium.ttf") format("truetype");
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"GT America";
  /* Choix LSA : le « gras » (700) est volontairement rendu en Medium —
     le Bold est jugé trop lourd. Pour revenir au vrai Bold, remettre
     GT-America-Standard-Bold.ttf ci-dessous. */
  src:url("fonts/GT-America-Standard-Medium.ttf") format("truetype");
  font-weight:700;font-style:normal;font-display:swap;
}

/* Variables communes desktop (aussi utilisées globalement) */
:root{
  --noir:#111111;
  --blanc:#ffffff;
  --fond:#ffffff;
  --texte:#111111;
  --menu-ink:#111111;
  --marge:14px;
  --cadre:6px;
  --bandeau:30px;
  --logo:16px;
  /* mobile safe-area */
  --safe-t:env(safe-area-inset-top);
  --safe-b:env(safe-area-inset-bottom);
}

/* ============================================================
   STYLES DESKTOP — enveloppés dans min-width:768px
   ============================================================ */
@media (min-width:768px){

  *{margin:0;padding:0;box-sizing:border-box}
  html,body{height:100%}
  body{
    font-family:"GT America","Helvetica Neue",Helvetica,Arial,sans-serif;
    background:var(--fond);
    color:var(--texte);
    overflow:hidden;
    overscroll-behavior:none;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  a{color:inherit;text-decoration:none}

  /* ---------- Bandeau d'en-tête ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:50;
    height:var(--bandeau);
    display:flex;justify-content:space-between;align-items:center;
    padding:0 var(--marge) 0 calc(var(--cadre)/2);
    background:var(--fond);
  }
  .brand{
    font-size:var(--logo);
    font-weight:400;
    letter-spacing:-0.01em;
    color:var(--texte);
    display:inline-flex;align-items:center;
  }
  .brand svg{
    height:calc(var(--logo) * 1.15);
    width:auto;display:block;
    fill:currentColor;
  }
  .nav-open{
    background:none;border:none;cursor:pointer;
    font-family:inherit;font-size:14px;color:var(--texte);
    letter-spacing:.01em;
    padding:.4em 0;
    position:relative;
  }
  .nav-open::after{
    content:"";position:absolute;left:0;right:100%;bottom:.25em;height:1px;
    background:currentColor;transition:right .35s cubic-bezier(.2,.7,.2,1);
  }
  .nav-open:hover::after{right:0}

  /* ---------- Onglets de navigation ---------- */
  .topnav{
    display:flex;align-items:center;
    gap:clamp(30px,3.8vw,70px);
  }
  .topnav a{
    font-size:14px;color:var(--texte);
    letter-spacing:.01em;
    padding:.4em 0;position:relative;
    white-space:nowrap;
  }
  .topnav a::after{
    content:"";position:absolute;left:0;right:100%;bottom:.25em;height:1px;
    background:currentColor;transition:right .35s cubic-bezier(.2,.7,.2,1);
  }
  .topnav a:hover::after,
  .topnav a:focus-visible::after{right:0}

  /* ---------- Sélecteur de langue (langue active + chevron, déroulant) ----------
     Placé DANS .topnav (après Contact) : l'écart vient du gap flex de .topnav. */
  .lang-switch{position:relative;display:flex;align-items:center;color:var(--texte)}
  .lang-current{
    display:flex;align-items:center;gap:.5em;
    background:none;border:none;cursor:pointer;font-family:inherit;
    font-size:14px;letter-spacing:.01em;color:inherit;padding:.4em 0;
  }
  .lang-current .lang-chevron{
    width:9px;height:6px;display:block;opacity:.8;
    transition:transform .3s cubic-bezier(.2,.7,.2,1);
  }
  .lang-current .lang-chevron polyline{
    fill:none;stroke:currentColor;stroke-width:1.4;
    stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;
  }
  .lang-switch.open .lang-chevron{transform:rotate(180deg)}
  .lang-menu{
    position:absolute;top:100%;right:0;margin-top:8px;
    display:flex;flex-direction:column;min-width:3.6em;
    background:var(--panel-bg,rgba(30,28,25,.3));
    -webkit-backdrop-filter:blur(26px) saturate(118%);backdrop-filter:blur(26px) saturate(118%);
    color:var(--menu-ink,#ffffff);
    border:1px solid color-mix(in srgb,var(--menu-ink,#fff) 16%,transparent);
    padding:4px;
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .22s ease,transform .28s cubic-bezier(.2,.7,.2,1),visibility .22s;
    z-index:30;
  }
  .lang-switch.open .lang-menu{opacity:1;visibility:visible;transform:none}
  .lang-menu button{
    background:none;border:none;cursor:pointer;font-family:inherit;
    font-size:13px;letter-spacing:.04em;color:var(--menu-ink,#ffffff);text-align:left;
    padding:.5em .8em;opacity:.78;
    transition:opacity .2s ease,background .2s ease;
  }
  .lang-menu button:hover{opacity:1;background:color-mix(in srgb,var(--menu-ink,#fff) 12%,transparent)}
  .lang-menu button.lang-on{display:none}   /* la langue active n'apparaît pas dans le déroulant */

  /* ---------- Menu plein écran ---------- */
  .menu{
    position:fixed;inset:0;z-index:40;
    background:var(--fond);
    display:none;
    padding:0 var(--marge) 0 calc(var(--cadre)/2);
  }
  .menu.open{display:flex;flex-direction:column}
  .menu-bar{
    height:var(--bandeau);flex:0 0 auto;
    display:flex;justify-content:space-between;align-items:center;
  }
  .menu-bar .brand{font-size:var(--logo)}
  .menu .close{
    background:none;border:none;cursor:pointer;
    font-family:inherit;font-size:14px;color:var(--texte);
    letter-spacing:.01em;padding:.4em 0;position:relative;
  }
  .menu .close::after{
    content:"";position:absolute;left:0;right:100%;bottom:.25em;height:1px;
    background:currentColor;transition:right .35s cubic-bezier(.2,.7,.2,1);
  }
  .menu .close:hover::after{right:0}
  .menu ul{
    list-style:none;
    flex:1 1 auto;
    display:flex;flex-direction:column;justify-content:center;
    gap:.18em;
    padding-bottom:6vh;
  }
  .menu li a{
    display:inline-block;
    font-size:clamp(34px,6vw,76px);
    font-weight:400;
    letter-spacing:-0.02em;
    line-height:1.12;
    transition:opacity .3s ease;
  }
  .menu li a:hover{opacity:.4}
  .menu li{
    opacity:0;transform:translateY(14px);
  }
  .menu.open li{
    animation:menuIn .55s cubic-bezier(.2,.7,.2,1) forwards;
  }
  .menu.open li:nth-child(1){animation-delay:.04s}
  .menu.open li:nth-child(2){animation-delay:.09s}
  .menu.open li:nth-child(3){animation-delay:.14s}
  .menu.open li:nth-child(4){animation-delay:.19s}
  .menu.open li:nth-child(5){animation-delay:.24s}
  @keyframes menuIn{to{opacity:1;transform:none}}

  /* ---------- Frise ---------- */
  .viewport{
    position:fixed;
    top:var(--bandeau);left:0;right:0;bottom:0;
    cursor:grab;
    touch-action:none;
    -webkit-user-select:none;
    user-select:none;
    background:var(--fond);
  }
  .viewport.dragging{cursor:grabbing}
  .viewport{transition:opacity .42s cubic-bezier(.4,0,.2,1)}
  .viewport.lsa-fading{opacity:0}
  body header,.viewport,footer{animation:lsa-load-in .8s ease both}
  @keyframes lsa-load-in{from{opacity:0}to{opacity:1}}
  @media (prefers-reduced-motion:reduce){body header,.viewport,footer{animation:none}}

  #lsa-splash{display:none!important;}

  .edge{
    position:fixed;top:var(--bandeau);bottom:0;
    width:var(--cadre);
    background:var(--fond);
    z-index:15;pointer-events:none;
  }
  .edge-l{left:0}
  .edge-r{right:0}
  body.no-edge .edge{display:none}
  .track{
    position:absolute;top:0;left:0;height:100%;
    display:flex;
    gap:0;
    will-change:transform;
  }

  .slide{
    position:relative;height:100%;flex:0 0 auto;
    padding:var(--cadre) calc(var(--cadre)/2);
  }
  .slide .frame{
    position:relative;
    height:100%;
    overflow:hidden;
    background:#efeeec;
  }
  .slide img{
    display:block;
    height:100%;width:auto;
    transform:none;
    pointer-events:none;
  }
  .slide .frame::after{
    content:"";position:absolute;left:0;right:0;bottom:0;
    height:24%;
    background:linear-gradient(to top,rgba(0,0,0,.42),rgba(0,0,0,0));
    pointer-events:none;
  }

  .caption{
    position:absolute;
    left:calc(var(--cadre)/2 + 20px);
    bottom:calc(var(--cadre) + 12px);
    z-index:2;
    color:var(--blanc);
    display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em .6em;
    max-width:calc(100% - var(--cadre) - 40px);
    text-shadow:0 1px 10px rgba(0,0,0,.35);
  }
  .caption h2{
    font-size:var(--logo);
    font-weight:500;
    letter-spacing:-0.005em;
  }
  .caption nav{display:flex;gap:.85em}
  .caption nav a{
    font-size:14px;font-weight:400;
    opacity:.85;transition:opacity .25s ease;
    position:relative;
  }
  .caption nav a:hover,
  .caption nav a:focus-visible{opacity:1}

  /* ---------- Flèches ---------- */
  .arrow{
    position:fixed;top:calc(50% + var(--bandeau)/2);transform:translateY(-50%);z-index:20;
    width:54px;height:54px;
    background:none;border:none;cursor:pointer;
    color:var(--blanc);
    opacity:.92;transition:opacity .3s ease, transform .3s cubic-bezier(.2,.7,.2,1);
    filter:drop-shadow(0 1px 8px rgba(0,0,0,.28));
  }
  .arrow:hover{opacity:1}
  .arrow.prev:hover{transform:translateY(-50%) translateX(-3px)}
  .arrow.next:hover{transform:translateY(-50%) translateX(3px)}
  .arrow:active{transform:translateY(-50%) scale(.94)}
  .arrow svg{width:100%;height:100%;display:block}
  .arrow svg line,.arrow svg polyline{
    stroke:currentColor;stroke-width:1;fill:none;
    stroke-linecap:square;stroke-linejoin:miter;
    vector-effect:non-scaling-stroke;
  }
  .arrow.prev{left:calc(var(--marge) - 10px)}
  .arrow.next{right:calc(var(--marge) - 10px)}
  .arrow:focus-visible{outline:1px solid currentColor;outline-offset:4px}

  /* ---------- Pied : compteur + progression ---------- */
  footer{
    position:fixed;right:var(--marge);bottom:var(--marge);z-index:20;
    display:none;align-items:center;gap:1.2em;
    color:var(--blanc);
    pointer-events:none;
    text-shadow:0 1px 8px rgba(0,0,0,.35);
  }
  .counter{
    font-size:13px;font-variant-numeric:tabular-nums;
    letter-spacing:.06em;opacity:.95;
  }
  .progress{
    position:relative;width:min(20vw,180px);height:1px;
    background:rgba(255,255,255,.45);
  }
  .progress span{
    position:absolute;left:0;top:0;height:100%;width:0%;
    background:var(--fond);
  }

  /* ---------- Variante « Plein cadre » ---------- */
  body.entete-overlay .viewport{top:0}
  body.entete-overlay .edge{top:0}
  body.entete-overlay header{background:transparent;pointer-events:none}
  body.entete-overlay header .brand,
  body.entete-overlay header .nav-open,
  body.entete-overlay header .lang-switch,
  body.entete-overlay header .lang-switch button,
  body.entete-overlay header .topnav a{
    color:var(--blanc);
    text-shadow:0 1px 12px rgba(0,0,0,.45);
    pointer-events:auto;
  }
  body.entete-overlay .arrow{top:50%}
  body.entete-overlay::before{
    content:"";
    position:fixed;
    top:var(--cadre);left:0;right:0;
    height:clamp(72px,13vh,128px);
    background:linear-gradient(to bottom,rgba(0,0,0,.42),rgba(0,0,0,0));
    z-index:10;pointer-events:none;
  }
  body.entete-overlay.sans-cadre::before{top:0}

  /* ---------- Bordure « Entre images » ---------- */
  body.sans-cadre .slide{padding-top:0;padding-bottom:0}
  body.sans-cadre .edge{display:none}

  /* onglet actif */
  .topnav a.active::after{right:0}

  /* ============================================================
     Panneau de section
     ============================================================ */
  .panel{
    position:fixed;inset:0;z-index:18;
    background:var(--panel-bg,rgba(248,247,245,.66));
    -webkit-backdrop-filter:blur(26px) saturate(118%);
    backdrop-filter:blur(26px) saturate(118%);
    color:var(--texte);
    opacity:0;visibility:hidden;
    transition:opacity .5s cubic-bezier(.2,.7,.2,1),visibility .5s,
               transform .55s cubic-bezier(.2,.7,.2,1),
               clip-path .6s cubic-bezier(.2,.7,.2,1);
  }
  body.panel-open .panel{opacity:1;visibility:visible;transform:none}

  .panel-backdrop{position:fixed;inset:0;z-index:17;background:transparent;
    visibility:hidden;transition:visibility .4s}
  body.panel-open .panel-backdrop{visibility:visible}
  body.panel-open .arrow{opacity:0;pointer-events:none}
  body.panel-open.entete-overlay header .brand,
  body.panel-open.entete-overlay header .lang-switch,
  body.panel-open.entete-overlay header .lang-switch button,
  body.panel-open.entete-overlay header .topnav a{color:var(--texte);text-shadow:none}

  .panel-inner{
    position:absolute;inset:0;overflow:auto;
    padding:calc(var(--bandeau) + clamp(30px,6vh,72px)) clamp(20px,5vw,90px) clamp(30px,6vh,72px);
  }
  .panel-wrap{max-width:1180px;margin:0 auto}
  .panel-head{
    display:flex;justify-content:space-between;align-items:baseline;
    gap:1.5em;margin-bottom:clamp(22px,4vh,48px);
  }
  .panel-title{font-size:clamp(30px,4.4vw,56px);font-weight:400;letter-spacing:-0.025em;line-height:1}
  .panel-close{
    position:absolute;z-index:5;
    top:clamp(12px,1.8vh,20px);right:clamp(12px,1.4vw,20px);
    width:20px;height:20px;padding:0;
    background:none;border:none;cursor:pointer;color:inherit;
    opacity:.55;transition:opacity .3s ease,transform .45s cubic-bezier(.2,.7,.2,1);
  }
  .panel-close svg{width:100%;height:100%;display:block}
  .panel-close svg line{stroke:currentColor;stroke-width:1.3;vector-effect:non-scaling-stroke;stroke-linecap:round}
  .panel-close:hover{opacity:1;transform:rotate(90deg)}

  .ptable{display:block}
  .prow{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) .9fr .9fr .55fr;
    gap:clamp(12px,2vw,34px);align-items:baseline;
    padding:clamp(11px,1.5vh,17px) 0;
    border-bottom:1px solid color-mix(in srgb,var(--menu-ink) 15%,transparent);
    color:inherit;
  }
  .phead{
    font-size:13px;letter-spacing:.02em;opacity:.5;
    border-bottom:1px solid color-mix(in srgb,var(--menu-ink) 32%,transparent);
    padding:0 0 11px;
  }
  a.prow{transition:background .3s ease,padding .3s cubic-bezier(.2,.7,.2,1)}
  a.prow .pname{font-size:clamp(16px,1.4vw,21px);font-weight:500;display:flex;align-items:baseline;gap:.55em}
  a.prow .pmeta{font-size:14px;opacity:.72}
  a.prow .parrow{font-size:.7em;opacity:0;transform:translateX(-5px);transition:opacity .25s,transform .25s}
  a.prow:hover{background:color-mix(in srgb,var(--menu-ink) 6%,transparent);padding-left:16px;padding-right:10px}
  a.prow:hover .parrow{opacity:.6;transform:none}

  /* placeholders */
  .panel-note{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;opacity:.55;letter-spacing:.02em}
  .ph-block{
    border:1px solid color-mix(in srgb,var(--menu-ink) 18%,transparent);
    background:repeating-linear-gradient(135deg,transparent 0,transparent 9px,color-mix(in srgb,var(--menu-ink) 5%,transparent) 9px,color-mix(in srgb,var(--menu-ink) 5%,transparent) 10px);
    min-height:clamp(170px,34vh,320px);
    display:flex;align-items:flex-end;padding:18px;
    font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;opacity:.6;letter-spacing:.03em;
  }

  /* entrée échelonnée */
  .panel .anim{opacity:0;transform:translateY(16px)}
  .panel.is-in .anim{opacity:1;transform:none;
    transition:opacity .55s ease,transform .6s cubic-bezier(.2,.7,.2,1);}

  @media (prefers-reduced-motion:reduce){
    .panel,.panel .anim{transition:none!important}
    .panel .anim{opacity:1;transform:none}
  }

  /* ---------- Variantes de menu ---------- */
  body.menu-right .panel{inset:var(--bandeau) 0 0 auto;width:clamp(360px,34vw,520px);
    border-left:1px solid color-mix(in srgb,var(--menu-ink) 14%,transparent)}
  body.menu-right:not(.panel-open) .panel{transform:translateX(60px)}
  body.menu-left .panel{inset:var(--bandeau) auto 0 0;width:clamp(360px,34vw,520px);
    border-right:1px solid color-mix(in srgb,var(--menu-ink) 14%,transparent)}
  body.menu-left:not(.panel-open) .panel{transform:translateX(-60px)}
  body.menu-bottom .panel{inset:auto 0 0 0;height:clamp(50vh,62vh,72vh);
    border-top:1px solid color-mix(in srgb,var(--menu-ink) 14%,transparent)}
  body.menu-bottom:not(.panel-open) .panel{transform:translateY(60px)}
  body.menu-bottom .panel-inner{padding-top:clamp(26px,4vh,44px)}

  body.menu-right .panel-inner,
  body.menu-left  .panel-inner{padding:clamp(24px,4vh,42px) clamp(22px,2.4vw,40px) clamp(28px,5vh,48px)}
  body.menu-right .panel-title,
  body.menu-left  .panel-title{font-size:clamp(26px,2.4vw,36px)}
  body.menu-right .prow.phead,
  body.menu-left  .prow.phead{display:none}
  body.menu-right .prow,
  body.menu-left  .prow{display:flex;flex-wrap:wrap;gap:1px 14px;align-items:baseline;padding:13px 0}
  body.menu-right a.prow:hover,
  body.menu-left  a.prow:hover{padding-left:10px;padding-right:6px}
  body.menu-right .pname,
  body.menu-left  .pname{flex:1 0 100%}
  body.menu-right .pmeta,
  body.menu-left  .pmeta{font-size:12.5px;opacity:.62}
  body.menu-right .pmeta + .pmeta::before,
  body.menu-left  .pmeta + .pmeta::before{content:"·";margin-right:13px;opacity:.45}

  body.menu-down .panel{left:var(--nav-left,46%);right:var(--cadre);top:calc(var(--bandeau) + var(--cadre));bottom:var(--cadre);width:auto;
    clip-path:inset(0 0 0 0);
    border-left:1px solid color-mix(in srgb,var(--menu-ink) 14%,transparent)}
  body.menu-down.sans-cadre .panel{top:var(--bandeau)}
  body.menu-down:not(.panel-open) .panel{clip-path:inset(0 0 100% 0)}
  body.menu-down .panel-wrap{max-width:none;margin:0}
  body.menu-down .panel-inner{
    padding:clamp(36px,4.6vh,52px) 10px clamp(20px,4vh,40px) 10px;
  }
  body.menu-down .panel-title{display:none}
  body.menu-down .panel-head{margin:0}
  body.menu-down .panel-close{font-size:12px}

  body.menu-down .phead{
    opacity:1;font-weight:700;letter-spacing:0;
    font-size:clamp(11.5px,.85vw,13px);
    border-bottom:1px solid color-mix(in srgb,var(--menu-ink) 55%,transparent);
    padding:0 0 clamp(5px,.8vh,8px);
  }
  body.menu-down .prow{
    grid-template-columns:minmax(0,1.9fr) minmax(0,.8fr) minmax(0,.95fr) minmax(0,.5fr);
    gap:clamp(8px,1.1vw,18px);align-items:baseline;
    border-bottom:1px solid color-mix(in srgb,var(--menu-ink) 38%,transparent);
    padding:clamp(5px,.85vh,8px) 0;
  }
  body.menu-down .prow > *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.menu-down a.prow .pname{font-weight:700;font-size:clamp(12.5px,.95vw,14.5px);letter-spacing:-0.005em}
  body.menu-down a.prow .pmeta{opacity:1;font-size:clamp(12px,.9vw,14px)}
  body.menu-down a.prow .parrow{display:none}
  body.menu-down a.prow:hover{background:color-mix(in srgb,var(--menu-ink) 5%,transparent);padding-left:0;padding-right:0}
  .panel{color:var(--menu-ink,#111111)}
  .panel .prow{border-bottom-color:color-mix(in srgb,var(--menu-ink,#111111) 40%,transparent)}
  .panel .phead{border-bottom-color:color-mix(in srgb,var(--menu-ink,#111111) 60%,transparent)}
  .panel a.prow:hover{background:color-mix(in srgb,var(--menu-ink,#111111) 7%,transparent)}
  .panel .ph-block{border-color:color-mix(in srgb,var(--menu-ink,#111111) 20%,transparent)}

  .panel-prose{max-width:64ch}
  .panel-prose h3{font-weight:700;font-size:clamp(14px,1.1vw,16.5px);letter-spacing:-0.01em;line-height:1.2;margin-bottom:1.1em}
  .panel-prose p{font-size:clamp(13px,.95vw,14.5px);line-height:1.6;margin:0 0 1em;text-align:justify;-webkit-hyphens:auto;hyphens:auto}
  .panel-prose p:last-child{margin-bottom:0}

  .ptable.team .prow{grid-template-columns:minmax(0,1.5fr) minmax(0,1.4fr) minmax(0,.5fr)}
  .ptable.team .pname{font-weight:700;font-size:clamp(15px,1.3vw,19px)}
  .ptable.team .pmeta{opacity:.78;font-size:14px}
  .pgroup{font-weight:700;padding:clamp(14px,2.4vh,22px) 0 clamp(5px,.8vh,8px);
    border-bottom:1px solid color-mix(in srgb,var(--menu-ink,#111111) 60%,transparent)}
  .plink{text-decoration:none;transition:opacity .25s ease}
  .plink:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
  body.menu-down .ptable.team .pname{font-size:clamp(12.5px,.95vw,14.5px);letter-spacing:-0.005em}
  body.menu-down .ptable.team .pmeta{opacity:1;font-size:clamp(12px,.9vw,14px)}
  body.menu-down .pgroup{font-size:clamp(12.5px,.95vw,14px)}

  .ptable.contact .prow{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
  .ptable.contact .pname{font-weight:700;font-size:clamp(14px,1.1vw,16px)}
  .ptable.contact .pmeta{opacity:.9;font-size:clamp(13px,1vw,15px)}
  .pcgap{height:0}
  .pstrong{font-weight:500}

  .pname-btn{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;
    font-weight:700;text-align:left;letter-spacing:inherit;display:inline-flex;align-items:baseline;gap:.45em}
  .pname-btn::after{content:'+';opacity:.5;font-weight:400;transition:opacity .25s}
  .prow.open .pname-btn::after{content:'\2013'}
  .pname-btn:hover{opacity:.7}
  .pdetail{display:none}
  .pdetail.show{display:block;animation:pdReveal .35s cubic-bezier(.2,.7,.2,1)}
  @keyframes pdReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .pdgroup{font-weight:700;padding:clamp(14px,2.4vh,20px) 0 clamp(4px,.6vh,7px);
    border-bottom:1px solid color-mix(in srgb,var(--menu-ink,#111111) 50%,transparent)}
  .pditem{display:grid;grid-template-columns:1.1em 1fr;gap:.5em;align-items:start;
    padding:clamp(6px,1vh,9px) 0;line-height:1.45;
    border-bottom:1px solid color-mix(in srgb,var(--menu-ink,#111111) 28%,transparent)}
  .pddash{opacity:.65}
  body.menu-down .pdgroup{font-size:clamp(12.5px,.95vw,14px)}
  body.menu-down .pditem{font-size:clamp(12px,.92vw,13.5px)}
  body.menu-down .ptable.contact .pname{font-size:clamp(12px,.9vw,13.5px)}
  body.menu-down .ptable.contact .pmeta{font-size:clamp(12px,.9vw,14px)}
  body.menu-down .ptable.contact .prow > *{white-space:normal;overflow:visible;text-overflow:clip}
  body.menu-down .pcgap{height:0}

  /* ---------- Curseur point ---------- */
  @media (hover:hover) and (pointer:fine){
    html,body{cursor:none}
    a,button,.viewport,.viewport.dragging,.topnav a,.brand,.panel-close,.arrow{cursor:none}
    .cursor-dot{
      position:fixed;left:0;top:0;z-index:9999;
      width:10px;height:10px;border-radius:50%;
      background:#fff;mix-blend-mode:difference;
      pointer-events:none;opacity:0;
      transition:width .26s cubic-bezier(.2,.7,.2,1),height .26s cubic-bezier(.2,.7,.2,1),opacity .25s ease;
      will-change:transform;
    }
    .cursor-dot.is-hover{width:18px;height:18px}
  }
  @media (prefers-reduced-motion:reduce){.cursor-dot{transition:opacity .2s}}

  /* ============================================================
     Vue projet
     ============================================================ */
  .caption .cap-year{font-size:14px;opacity:.85;font-variant-numeric:tabular-nums;letter-spacing:.02em}

  .slide-plan .frame-plan{height:100%;aspect-ratio:3/4;width:auto;background:rgb(239,239,239);
    display:flex;align-items:center;justify-content:center;overflow:hidden}
  .slide-plan .frame-plan img{height:auto!important;width:auto;max-height:84%;max-width:84%;transform:none!important;mix-blend-mode:multiply;clip-path:inset(2px)}
  .slide-plan .frame-plan::after,
  .slide-quote .frame-quote::after{display:none!important}
  /* Planches concours : affichées en entier (ni zoom ni recadrage), fond gris, sans dégradé */
  .slide-board .frame, .slide:has(img[src*="/contests/"]) .frame{background:rgb(239,239,239)}
  .slide-board img, .slide img[src*="/contests/"]{transform:scale(1.006)!important;height:100%;width:auto;object-fit:contain;filter:brightness(.95)}
  .slide-board .frame::after, .slide:has(img[src*="/contests/"]) .frame::after{display:none!important}
  .pv-lead{font-family:"GT America","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500}

  .slide-text .frame-text{height:100%;aspect-ratio:3/4;width:auto;background:rgb(239,239,239);overflow:hidden}
  .pv-text-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;
    padding:clamp(30px,5vh,60px) clamp(26px,3.2vw,48px);color:#1a1a1a;
    scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.28) transparent}
  .pv-text-scroll::-webkit-scrollbar{width:5px}
  .pv-text-scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.24);border-radius:3px}
  .pv-text-head{margin-bottom:clamp(18px,3vh,30px)}
  .pv-text-title{display:block;font-size:clamp(19px,1.7vw,25px);font-weight:500;letter-spacing:-0.015em;line-height:1.12}
  .pv-text-meta{display:block;font-size:13px;opacity:.55;margin-top:.55em;font-variant-numeric:tabular-nums}
  .pv-text-scroll p{font-size:18px;font-weight:500;line-height:1.6;margin:0 0 1em;text-align:left;hyphens:none;text-wrap:pretty}
  .pv-text-scroll p:last-child{margin-bottom:0}

  .slide-quote .frame-quote{height:100%;aspect-ratio:3/4;width:auto;background:rgb(239,239,239);
    display:flex;align-items:center;justify-content:center;overflow:hidden;
    padding:clamp(28px,4vw,64px)}
  .slide-quote blockquote{margin:0;text-align:center;color:#1a1a1a;
    font-weight:500;font-size:clamp(18px,1.85vw,24px);line-height:1.3;letter-spacing:-0.015em;
    text-wrap:balance;max-width:18em}
  .slide-quote .frame-quote{flex-direction:column;gap:clamp(8px,1.5vh,16px)}
  .pv-quote-more{background:none;border:none;cursor:pointer;flex:0 0 auto;position:relative;
    width:36px;height:36px;color:#9a9a9a;transition:color .2s ease;-webkit-tap-highlight-color:transparent}
  .pv-quote-more:hover{color:#555}
  .pv-quote-more span{position:absolute;left:50%;top:50%;background:currentColor;border-radius:1px}
  .pv-quote-more span:nth-child(1){width:18px;height:1.4px;transform:translate(-50%,-50%)}
  .pv-quote-more span:nth-child(2){width:1.4px;height:18px;transform:translate(-50%,-50%)}

  .slide-para .frame-para{height:100%;aspect-ratio:3/4;width:auto;background:rgb(239,239,239);
    display:flex;align-items:center;justify-content:center;overflow:hidden;
    padding:clamp(28px,4vw,64px)}
  .pv-para{margin:0;text-align:justify;hyphens:auto;-webkit-hyphens:auto;color:#1a1a1a;
    font-weight:500;font-size:clamp(19px,2vw,27px);line-height:1.35;letter-spacing:-0.015em;
    text-wrap:pretty;max-width:20em}

  .pv-chrome{position:fixed;left:calc(var(--cadre)/2 + 20px);bottom:calc(var(--cadre) + 12px);z-index:21;
    display:none;gap:1.2em;align-items:baseline;color:var(--blanc);text-shadow:0 1px 10px rgba(0,0,0,.4)}
  body.in-project .pv-chrome{display:flex}
  body.in-project footer{display:none}
  .pv-chrome,.pv-projnav{opacity:0;transition:opacity .5s ease .15s}
  body.in-project .pv-chrome,
  body.in-project .pv-projnav{opacity:1}
  .pv-chrome button{background:none;border:none;color:inherit;font-family:inherit;font-size:14px;cursor:pointer;padding:0;position:relative}
  .pv-chrome .pv-back{font-weight:500}
  .pv-chrome button::after{content:"";position:absolute;left:0;right:100%;bottom:-.2em;height:1px;background:currentColor;transition:right .35s cubic-bezier(.2,.7,.2,1)}
  .pv-chrome button:hover::after{right:0}

  .pv-x{position:absolute;top:16px;right:16px;width:20px;height:20px;padding:0;
    background:none;border:none;cursor:pointer;color:inherit;opacity:.6;
    transition:opacity .3s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
  .pv-x svg{width:100%;height:100%;display:block}
  .pv-x svg line{stroke:currentColor;stroke-width:1.3;vector-effect:non-scaling-stroke;stroke-linecap:round}
  .pv-x:hover{opacity:1;transform:rotate(90deg)}

  .pv-info{position:fixed;left:var(--nav-left,46%);right:var(--cadre);top:calc(var(--bandeau) + var(--cadre));bottom:var(--cadre);z-index:30;
    background:var(--panel-bg,rgba(248,247,245,.66));-webkit-backdrop-filter:blur(26px) saturate(118%);backdrop-filter:blur(26px) saturate(118%);
    color:var(--menu-ink,#111111);border-left:1px solid color-mix(in srgb,var(--menu-ink) 14%,transparent);
    opacity:0;visibility:hidden;clip-path:inset(0 0 100% 0);
    transition:opacity .4s ease,visibility .4s,clip-path .6s cubic-bezier(.2,.7,.2,1);
    padding:clamp(34px,4.6vh,52px) clamp(28px,2.6vw,44px);overflow:auto}
  .pv-info.open{opacity:1;visibility:visible;clip-path:inset(0 0 0 0)}
  .pv-info-inner{max-width:62ch}
  .pv-info-title{display:block;font-size:clamp(22px,2.4vw,32px);font-weight:400;letter-spacing:-0.02em;line-height:1.1}
  .pv-info-meta{display:block;font-size:13px;opacity:.6;margin:.6em 0 1.8em}
  .pv-info p{font-size:clamp(13px,1vw,15px);line-height:1.62;margin:0 0 1em;text-align:justify;-webkit-hyphens:auto;hyphens:auto}

  .pv-lb{position:fixed;inset:0;z-index:60;background:#ffffff;
    display:none;align-items:center;justify-content:center}
  .pv-lb.open{display:flex}
  .pv-lb-stage{margin:0;display:flex}
  .pv-lb-stage img{max-width:88vw;max-height:86vh;width:auto;height:auto;object-fit:contain;display:block}
  .pv-lb-x{position:fixed;top:clamp(16px,2.5vh,28px);right:clamp(16px,2vw,30px);color:#111;z-index:2}
  .pv-lb-prev,.pv-lb-next{position:fixed;top:50%;transform:translateY(-50%);width:46px;height:46px;
    background:none;border:none;cursor:pointer;color:#111;opacity:.7;transition:opacity .25s ease}
  .pv-lb-prev{left:clamp(10px,2vw,30px)}
  .pv-lb-next{right:clamp(10px,2vw,30px)}
  .pv-lb-prev:hover,.pv-lb-next:hover{opacity:1}
  .pv-lb-prev svg,.pv-lb-next svg{width:100%;height:100%;display:block}
  .pv-lb-prev svg polyline,.pv-lb-next svg polyline{stroke:currentColor;stroke-width:1.2;fill:none;
    stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}

  .pv-projnav{position:fixed;right:calc(var(--marge) + 18px);bottom:calc(var(--cadre) + 12px);z-index:21;
    display:none;align-items:center;gap:1.1em;color:var(--blanc);text-shadow:0 1px 10px rgba(0,0,0,.4)}
  body.in-project .pv-projnav{display:flex}
  .pv-pn-label{font-size:14px;letter-spacing:.01em;opacity:.95;white-space:nowrap}
  .pv-projnav button{background:none;border:none;cursor:pointer;color:inherit;padding:0;
    width:34px;height:18px;opacity:.92;transition:opacity .25s ease,transform .3s cubic-bezier(.2,.7,.2,1)}
  .pv-projnav button:hover{opacity:1}
  .pv-pn-prev:hover{transform:translateX(-3px)}
  .pv-pn-next:hover{transform:translateX(3px)}
  .pv-projnav svg{width:100%;height:100%;display:block}
  .pv-projnav svg line,.pv-projnav svg polyline{stroke:currentColor;stroke-width:1;fill:none;
    stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}

  /* taille des flèches sur tablette étroite (entre 768px et 900px) */
  @media (max-width:900px){
    .arrow{width:42px;height:42px}
    .caption h2{font-size:var(--logo)}
    .progress{width:30vw}
  }

  @media (prefers-reduced-motion:reduce){
    .arrow,.caption nav a,.menu.open li{transition:none;animation:none;opacity:1;transform:none}
  }

  /* Éléments mobile masqués sur desktop */
  #mv-root-container{display:none!important}

} /* fin @media (min-width:768px) */


/* ============================================================
   STYLES MOBILE — enveloppés dans max-width:767px
   ============================================================ */
@media (max-width:767px){

  /* reset mobile */
  *{margin:0;padding:0;box-sizing:border-box}
  html,body{height:100%;width:100%;overflow:hidden;background:#fff;
    -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;}
  body{font-family:"GT America","Helvetica Neue",Helvetica,Arial,sans-serif;color:#111;}

  /* Masquer tous les éléments desktop (header:not(.m-head) pour ne pas
     cacher l'en-tête du moteur mobile, qui est un <header class="m-head">) */
  header:not(.m-head),
  .arrow,
  #viewport,
  .edge,
  footer,
  #lsa-splash,
  .cursor-dot,
  .panel,
  .panel-backdrop{
    display:none!important;
  }

  /* Conteneur racine mobile */
  #mv-root-container{
    display:block;
    position:fixed;
    inset:0;
  }

  /* ============================================================
     Styles du moteur mobile vertical (copiés tels quels)
     ============================================================ */
  .mv-root{position:fixed;inset:0;background:#fff;overflow:hidden;color:#111;}
  .mv-root::before{content:"";position:absolute;top:0;left:0;right:0;
    height:calc(var(--safe-t) + 58px);background:#fff;z-index:35;pointer-events:none;}
  .mv-root::after{content:"";position:absolute;bottom:0;left:0;right:0;
    height:calc(var(--safe-b) + 14px);background:#fff;z-index:20;pointer-events:none;}
  .mv-screen{position:absolute;inset:0}
  [hidden]{display:none!important}
  .mv-fade{opacity:0;transition:opacity .28s ease}

  .mv-feed{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-y:contain;
    padding:calc(var(--safe-t) + 58px) 14px calc(var(--safe-b) + 14px);}
  .mv-feed::-webkit-scrollbar{display:none}
  .mv-card{position:relative;width:100%;aspect-ratio:3/4;margin-bottom:14px;
    display:flex;align-items:center;justify-content:center;}
  .mv-card:last-child{margin-bottom:0}
  .mv-card img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;user-select:none;}
  .mv-tappable{cursor:pointer}

  .m-cap{position:absolute;left:16px;bottom:14px;z-index:3;color:#fff;
    display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;font-size:13px;font-weight:500;letter-spacing:-0.1px;line-height:1.4;
    text-shadow:0 1px 10px rgba(0,0,0,.5);max-width:calc(100% - 48px);}
  .m-cap span{font-size:12px;font-weight:400;opacity:.85;font-variant-numeric:tabular-nums}
  .m-cap .mv-go{flex-basis:100%;opacity:.95;font-weight:500;margin-top:3px;letter-spacing:0}

  .mv-scrollcue{display:none;position:absolute;left:50%;bottom:calc(var(--safe-b) + 16px);z-index:6;transform:translateX(-50%);
    width:26px;height:26px;pointer-events:none;opacity:.9;transition:opacity .4s ease;}
  .mv-scrollcue.mv-hide{opacity:0}
  .mv-scrollcue span{position:absolute;left:50%;top:40%;width:11px;height:11px;
    border-right:1.6px solid #fff;border-bottom:1.6px solid #fff;
    transform:translate(-50%,-50%) rotate(45deg);filter:drop-shadow(0 1px 4px rgba(0,0,0,.5));
    animation:mv-bounce 1.7s ease-in-out infinite;}
  @keyframes mv-bounce{0%,100%{top:34%}50%{top:52%}}

  #mv-project{overflow:hidden}
  .mv-phead{position:absolute;top:calc(var(--safe-t) + 11px);left:0;right:0;z-index:38;height:36px;
    display:flex;align-items:center;justify-content:center;gap:14px;pointer-events:none;
    padding:0 50px 0 86px;}
  .mv-parrow{pointer-events:auto;background:none;border:none;cursor:pointer;color:#111;padding:0;flex:0 0 auto;
    width:40px;height:48px;display:flex;align-items:center;justify-content:center;opacity:.5;position:relative;
    transition:opacity .2s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
  .mv-parrow::after{content:"";position:absolute;top:-20px;bottom:-54px;left:-30px;right:-30px}
  .mv-pprev::after{left:-94px;right:-86px}
  .mv-pnext::after{right:-94px;left:-86px}
  .mv-parrow:active{opacity:1}
  .mv-parrow svg{width:14px;height:24px;display:block}
  .mv-parrow svg polyline{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
  .mv-pcenter{display:flex;flex-direction:column;align-items:center;min-width:0;flex:1;}
  .mv-ptitle-row{display:flex;align-items:center;gap:6px;max-width:100%;}
  .mv-ptitle{font-size:14px;font-weight:500;letter-spacing:-0.01em;line-height:1.15;color:#111;max-width:100%;
    text-align:center;white-space:normal;overflow-wrap:break-word;}
  .mv-pyr{font-weight:400;opacity:.5;font-variant-numeric:tabular-nums;}
  .mv-pinfo{pointer-events:auto;background:none;border:none;cursor:pointer;color:#aeaeae;padding:0;flex:0 0 auto;
    width:20px;height:20px;position:relative;transition:color .2s ease,transform .42s cubic-bezier(.2,.7,.2,1);}
  .mv-pinfo::after{content:"";position:absolute;inset:-12px}
  .mv-pinfo:active{color:#777}
  .mv-pinfo span{position:absolute;left:50%;top:50%;background:currentColor;border-radius:1px}
  .mv-pinfo span:nth-child(1){width:12px;height:1.1px;transform:translate(-50%,-50%)}
  .mv-pinfo span:nth-child(2){width:1.1px;height:12px;transform:translate(-50%,-50%)}
  .mv-pinfo.open{transform:rotate(135deg);color:#888}

  .mv-pquote{flex-direction:column;}
  .mv-quote-more{margin-top:12px;background:none;border:none;cursor:pointer;color:#1a1a1a;padding:0;
    width:30px;height:30px;position:relative;opacity:.5;transition:opacity .2s ease;-webkit-tap-highlight-color:transparent;}
  .mv-quote-more:active{opacity:.9}
  .mv-quote-more span{position:absolute;left:50%;top:50%;background:#1a1a1a;border-radius:1px}
  .mv-quote-more span:nth-child(1){width:15px;height:1.5px;transform:translate(-50%,-50%)}
  .mv-quote-more span:nth-child(2){width:1.5px;height:15px;transform:translate(-50%,-50%)}

  .mv-textovl{position:absolute;top:calc(var(--safe-t) + 58px);left:14px;right:14px;bottom:calc(var(--safe-b) + 14px);
    z-index:30;background:rgba(30,28,25,.30);
    -webkit-backdrop-filter:blur(24px) saturate(115%);backdrop-filter:blur(24px) saturate(115%);
    opacity:0;transition:opacity .38s cubic-bezier(.2,.7,.2,1);}
  .mv-textovl.open{opacity:1}
  .mv-textovl-scroll{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
    padding:28px 24px calc(30px + var(--safe-b));
    transform:translateY(-8px);opacity:0;transition:transform .42s cubic-bezier(.2,.7,.2,1),opacity .42s;}
  .mv-textovl-scroll::-webkit-scrollbar{display:none}
  .mv-textovl.open .mv-textovl-scroll{transform:none;opacity:1}
  .mv-textovl-title{font-size:14px;font-weight:500;letter-spacing:-0.005em;color:#fff;opacity:.9;margin-bottom:18px;}
  .mv-textovl-title .yr{font-weight:400;opacity:.6;font-variant-numeric:tabular-nums;}
  .mv-textovl p{font-size:15px;line-height:1.62;color:#fff;margin:0 0 1.05em;
    text-align:justify;-webkit-hyphens:auto;hyphens:auto;}
  .mv-textovl p:last-child{margin-bottom:0}

  .mv-pfeed{}
  .mv-pphoto{aspect-ratio:auto;display:block}
  .mv-pphoto img{width:100%;height:auto;object-fit:cover;display:block;cursor:pointer}
  .mv-pboard{overflow:hidden}
  .mv-pboard img{filter:brightness(.95);transform:scale(1.006)}

  .mv-pblock{position:relative;width:100%;margin-bottom:14px;background:rgb(239,239,239);
    display:flex;align-items:center;justify-content:center;min-height:48vh;
    padding:38px 26px;box-sizing:border-box;}
  .m-quote{margin:0;text-align:center;color:#1a1a1a;font-weight:500;
    font-size:clamp(16px,4.7vw,21px);line-height:1.34;letter-spacing:-0.015em;text-wrap:balance;}
  .mv-ppara{align-items:flex-start;}
  .mv-ppara .m-para{margin:0;font-size:16px;font-weight:400;line-height:1.55;color:#1a1a1a;text-wrap:pretty;}
  .mv-pplan{background:rgb(239,239,239);}
  .mv-pplan img{width:100%;height:100%;object-fit:contain;padding:18px;box-sizing:border-box;mix-blend-mode:multiply;clip-path:inset(2px);}

  .m-head{position:absolute;top:calc(var(--safe-t) + 11px);left:0;right:0;z-index:40;height:36px;
    display:flex;align-items:center;justify-content:space-between;padding:0 18px;pointer-events:none;}
  .m-logo{display:inline-flex;align-items:center;pointer-events:auto}
  .m-logo svg{height:24px;width:auto;display:block;fill:#111}
  .m-plus{position:relative;width:28.8px;height:28.8px;margin-right:-2px;background:none;border:none;cursor:pointer;padding:0;pointer-events:auto;
    transition:transform .5s cubic-bezier(.2,.7,.2,1);}
  .m-plus span{position:absolute;left:50%;top:50%;background:#111;border-radius:2px}
  .m-plus span:nth-child(1){width:26.4px;height:1.68px;transform:translate(-50%,-50%)}
  .m-plus span:nth-child(2){width:1.68px;height:26.4px;transform:translate(-50%,-50%)}
  .m-plus.open{transform:rotate(135deg)}
  .m-back{background:none;border:none;cursor:pointer;width:26px;height:26px;color:#111;padding:0;position:relative;z-index:41;pointer-events:auto}
  .m-back svg{width:100%;height:100%;display:block}
  .m-back svg line{stroke:currentColor;stroke-width:1.4;stroke-linecap:round;vector-effect:non-scaling-stroke}

  .m-overlay{position:absolute;top:calc(var(--safe-t) + 58px);left:14px;right:14px;bottom:calc(var(--safe-b) + 14px);
    z-index:25;background:rgba(30,28,25,.30);
    -webkit-backdrop-filter:blur(24px) saturate(115%);backdrop-filter:blur(24px) saturate(115%);
    opacity:0;transition:opacity .38s cubic-bezier(.2,.7,.2,1);}
  .m-overlay.open{opacity:1}
  .m-menu-nav{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
    transform:translateY(-8px);opacity:0;transition:transform .42s cubic-bezier(.2,.7,.2,1),opacity .42s;}
  .m-menu-nav::-webkit-scrollbar{display:none}
  .m-overlay.open .m-menu-nav{transform:none;opacity:1}
  .m-acc-h{width:100%;text-align:left;background:none;border:none;cursor:pointer;color:#fff;position:relative;
    font-family:inherit;font-size:11.5px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:16px;}
  .m-acc-h::before{content:"";position:absolute;top:0;left:16px;right:16px;height:1px;background:rgba(255,255,255,.22);}
  .m-acc:last-child .m-acc-h::after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:1px;background:rgba(255,255,255,.22);}
  .m-acc-body{display:none;padding:2px 16px 14px}
  .m-acc.open .m-acc-body{display:block;animation:m-acc-in .35s ease}
  @keyframes m-acc-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

  /* ligne de langue tout en bas du menu (sous CONTACT) : même hauteur que les
     en-têtes de section, filet au-dessus ET en dessous */
  .m-lang-row{display:flex;align-items:center;gap:8px;padding:0 16px;position:relative}
  .m-lang-row::before{content:"";position:absolute;top:0;left:16px;right:16px;height:1px;background:rgba(255,255,255,.22)}
  .m-lang-row::after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:1px;background:rgba(255,255,255,.22)}
  .m-lang-opt{background:none;border:none;cursor:pointer;font-family:inherit;color:#fff;
    font-size:11.5px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:16px 3px;opacity:.42;
    -webkit-tap-highlight-color:transparent;transition:opacity .2s ease}
  .m-lang-opt.is-on{opacity:1}
  .m-lang-opt:active{opacity:.85}
  .m-lang-dot{color:#fff;opacity:.3;font-size:11px;user-select:none}

  .m-rows{list-style:none}
  .m-rows li{border-bottom:1px solid rgba(255,255,255,.18)}
  .m-rows li:last-child{border-bottom:none}
  .m-rows a,.m-rows li.m-static{display:flex;justify-content:space-between;align-items:baseline;gap:1em;
    padding:13px 0;text-decoration:none;color:#fff;font-size:14px;font-weight:500;}
  .m-rows .m-yr{font-size:12px;font-weight:400;opacity:.6;font-variant-numeric:tabular-nums;white-space:nowrap}
  .m-rows li.m-static span:last-child{font-weight:400;opacity:.7}
  .m-prose p{font-size:14px;line-height:1.6;margin:0 0 1em;text-align:justify;-webkit-hyphens:auto;hyphens:auto;color:#fff}
  .m-prose-h{font-size:16px;font-weight:500;letter-spacing:-0.01em;color:#fff;margin:0 0 1.1em;text-wrap:balance}

  .m-team-grp{font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:#fff;opacity:.5;
    padding:18px 0 7px;border-bottom:1px solid rgba(255,255,255,.18)}
  .m-team{margin:0}
  .m-team-row{border-bottom:1px solid rgba(255,255,255,.18);padding:12px 0}
  .m-team-row:last-child{border-bottom:none}
  .m-team-compact{display:flex;justify-content:space-between;align-items:baseline;gap:1em}
  .m-team-compact .m-team-fn{margin-top:0;text-align:right;white-space:nowrap}
  .m-team-top{display:flex;justify-content:space-between;align-items:center;gap:1em}
  .m-team-name{font-size:14px;font-weight:500;color:#fff;display:inline-flex;align-items:center;gap:8px}
  .m-team-fn{font-size:12px;font-weight:400;color:#fff;opacity:.6;margin-top:3px}
  .m-team-link{font-size:12px;font-weight:400;color:#fff;opacity:.78;text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.4);white-space:nowrap;flex:0 0 auto}
  .m-team-link:active{opacity:1}
  .m-team-more{position:relative;width:18px;height:18px;background:none;border:none;cursor:pointer;padding:0;
    flex:0 0 auto;color:#fff;opacity:.7;transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .2s}
  .m-team-more::after{content:"";position:absolute;inset:-11px}
  .m-team-more span{position:absolute;left:50%;top:50%;background:currentColor;border-radius:1px}
  .m-team-more span:nth-child(1){width:11px;height:1.3px;transform:translate(-50%,-50%)}
  .m-team-more span:nth-child(2){width:1.3px;height:11px;transform:translate(-50%,-50%)}
  .m-team-row.open .m-team-more{transform:rotate(135deg);opacity:.95}
  .m-team-detail{display:none;padding:8px 0 4px}
  .m-team-row.open .m-team-detail{display:block;animation:m-acc-in .35s ease}
  .m-td-grp{font-size:10.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:#fff;opacity:.5;margin:13px 0 6px}
  .m-td-item{display:flex;gap:8px;font-size:12.5px;line-height:1.5;color:#fff;opacity:.82;margin-bottom:4px}
  .m-td-dash{opacity:.5}

  .m-contact{padding:2px 0}
  .m-c-row{display:flex;justify-content:space-between;align-items:baseline;gap:1.4em;padding:11px 0;
    border-bottom:1px solid rgba(255,255,255,.18)}
  .m-contact .m-c-row:last-child{border-bottom:none}
  .m-c-lbl{font-size:12px;font-weight:500;color:#fff;opacity:.55;white-space:nowrap;flex:0 0 auto}
  .m-c-val{font-size:13.5px;font-weight:400;color:#fff;text-align:right;text-wrap:pretty}
  .m-c-val.m-c-strong{font-weight:500}
  .m-c-link{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45)}
  .m-c-link:active{opacity:.8}
  .m-c-gap{height:0}

  .m-lb{position:absolute;inset:0;z-index:90;background:#fff;}
  .m-lb-pager{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .m-lb-pager::-webkit-scrollbar{display:none}
  .m-lb-page{flex:0 0 100%;width:100%;height:100%;scroll-snap-align:center;
    display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-t) + 60px) 16px calc(var(--safe-b) + 40px);}
  .m-lb-page img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
  .m-lb-x{position:absolute;top:calc(var(--safe-t) + 14px);right:18px;z-index:2;width:24px;height:24px;
    background:none;border:none;cursor:pointer;color:#111;padding:0}
  .m-lb-x svg{width:100%;height:100%;display:block}
  .m-lb-x svg line{stroke:currentColor;stroke-width:1.4;stroke-linecap:round;vector-effect:non-scaling-stroke}

  @media (prefers-reduced-motion:reduce){
    .m-overlay{transition:opacity .2s}
    .mv-textovl{transition:opacity .2s}
    .mv-scrollcue span{animation:none}
    *{scroll-behavior:auto!important}
  }

} /* fin @media (max-width:767px) */
  #lsa-intro{position:fixed;inset:0;z-index:9990;background:transparent;overflow:hidden;visibility:hidden}
  #lsa-intro-bg{position:absolute;inset:0;background:#111;
    -webkit-backdrop-filter:blur(26px) saturate(118%);backdrop-filter:blur(26px) saturate(118%);
    will-change:transform,background-color}
  #lsa-intro-logo{position:fixed;display:block;z-index:2;transform-origin:top left;opacity:0;will-change:transform}
  #lsa-intro-logo svg{display:block;height:100%;width:auto;fill:#fff}
  #lsa-intro-cap{position:fixed;display:block;z-index:3;transform-origin:top left;opacity:0;pointer-events:none}
  #lsa-intro-cap svg{display:block;height:100%;width:auto;fill:#111}
  @media (prefers-reduced-motion:reduce){#lsa-intro-bg,#lsa-intro-logo{will-change:auto}}
