/* ---- Polices auto-hébergées (SIL OFL) : Bodoni Moda, Archivo, JetBrains Mono — aucune requête vers Google ---- */
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:100 900; font-display:swap; src:url(../fonts/archivo-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:100 900; font-display:swap; src:url(../fonts/archivo-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'Bodoni Moda'; font-style:italic; font-weight:400 900; font-display:swap; src:url(../fonts/bodoni-moda-italic-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Bodoni Moda'; font-style:italic; font-weight:400 900; font-display:swap; src:url(../fonts/bodoni-moda-italic-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'Bodoni Moda'; font-style:normal; font-weight:400 900; font-display:swap; src:url(../fonts/bodoni-moda-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Bodoni Moda'; font-style:normal; font-weight:400 900; font-display:swap; src:url(../fonts/bodoni-moda-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:400 800; font-display:swap; src:url(../fonts/jetbrains-mono-normal-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:400 800; font-display:swap; src:url(../fonts/jetbrains-mono-normal-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

  :root{
    --ink:#1b1a20;
    --paper:#f7f5ef;
    --paper-2:#efece2;
    --mute:#6b6a62;          /* gris texte : 4,99:1 sur --paper (WCAG AA) */
    --hair:rgba(27,26,32,0.12);
    --orange:#d9663a;
    --orange-text:#b84f26;   /* orange pour petits textes : 4,6:1 (WCAG AA) */
    --blue:#3a72b0;
    --green:#3f9e7c;
    --accent:var(--orange);
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }
  html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; scroll-behavior:smooth; background:var(--paper); overflow-x:clip; }
  body{
    background:transparent; color:var(--ink);
    font-family:'Archivo',sans-serif; font-size:17px; line-height:1.6;
    overflow-x:hidden; overflow-x:clip; position:relative;
  }
  ::selection{ background:var(--orange); color:var(--paper); }
  a{ color:inherit; text-decoration:none; }

  #bg{ position:fixed; top:0; left:0; width:100%; height:100vh; height:100lvh; z-index:-1; pointer-events:none; display:block; }

  .display{ font-family:'Bodoni Moda',serif; }
  .mono{ font-family:'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:0.16em; }
  .wrap{ max-width:1100px; margin:0 auto; padding:0 36px; }

  /* ---- custom cursor: subtle dot ---- */
  .reticle{ position:fixed; top:0; left:0; width:46px; height:46px; margin:-23px 0 0 -23px; z-index:9999; pointer-events:none; transition:opacity .2s ease; opacity:0; }
  .reticle .c{ display:none; }
  .reticle .dot{ position:absolute; top:50%; left:50%; width:9px; height:9px; margin:-4.5px 0 0 -4.5px; background:rgba(27,26,32,0.32); border-radius:50%; transition:width .2s ease, height .2s ease, margin .2s ease, background .2s ease, border .2s ease; }
  .reticle.hot .dot{ width:30px; height:30px; margin:-15px 0 0 -15px; background:transparent; border:1.5px solid rgba(217,102,58,0.6); }
  body.has-cursor{ cursor:none; }

  /* ---- nav ---- */
  body > nav:not(.dock){ position:sticky; top:0; z-index:50; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); background:rgba(247,245,239,0.82); background:color-mix(in srgb,var(--paper) 82%,transparent); border-bottom:1px solid var(--hair); }
  .nav-in{ max-width:1100px; margin:0 auto; padding:0 36px; height:68px; display:flex; align-items:center; justify-content:space-between; }
  .brand{ display:flex; align-items:center; gap:11px; font-family:'Bodoni Moda',serif; font-weight:700; font-size:22px; letter-spacing:0.02em; }
  .brand .logo-img{ height:34px; width:auto; display:block; mix-blend-mode:multiply; }
  .nav-links{ display:flex; gap:28px; align-items:center; }
  .nav-links a{ font-size:14.5px; font-weight:500; position:relative; }
  .nav-links a::after{ content:""; position:absolute; left:0; bottom:-3px; height:2px; width:0; background:var(--orange); transition:width .22s ease; }
  .nav-links a:hover::after{ width:100%; }
  .nav-links a.here{ color:var(--orange-text); font-weight:600; }

  .btn-lg{ font-size:17px !important; padding:18px 32px !important; }
  .muted{ color:var(--mute); }
  .btn{ display:inline-flex; align-items:center; gap:10px; white-space:nowrap; font-weight:600; font-size:15px; background:var(--ink); color:var(--paper); padding:13px 22px; border:none; cursor:pointer; border-radius:40px; transition:transform .15s ease, background .2s ease; will-change:transform; }
  .btn:hover{ background:var(--orange); }
  .btn .arr{ transition:transform .2s ease; }
  .btn:hover .arr{ transform:translateX(3px) rotate(0deg); }
  nav .btn{ padding:10px 18px; font-size:13.5px; }
  .nav-right{ display:flex; align-items:center; gap:14px; }
  .lang{ display:inline-flex; align-items:center; gap:6px; font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:0.1em; border:1px solid var(--hair); border-radius:30px; padding:6px 10px; line-height:1; }
  .lang a{ color:var(--mute); transition:color .18s ease; }
  .lang a.on{ color:var(--ink); font-weight:500; }
  .lang a:hover{ color:var(--accent); }
  .lang .sep{ color:var(--hair); }

  /* ---- dock : navigation mobile (barre d'onglets fixe en bas, écrans < 861px) ----
     Les liens de la nav du haut sont masqués sur mobile ; le dock les remplace. */
  .dock{ display:none; }
  @media (max-width:860px){
    body{ padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px)); }
    html{ scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px)); } /* le focus/ancre ne s'arrête pas sous le dock */
    .dock{ position:fixed; left:50%; bottom:calc(14px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%); z-index:60; display:flex; align-items:stretch; width:min(calc(100% - 28px), 420px); padding:5px; background:rgba(247,245,239,0.94); background:color-mix(in srgb,var(--paper) 94%,transparent); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border:1.5px solid var(--ink); border-radius:40px; box-shadow:5px 7px 0 var(--ink); }
    .dock a{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:52px; padding:6px 2px; border-radius:30px; color:var(--ink); font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.05em; text-transform:uppercase; line-height:1; -webkit-tap-highlight-color:transparent; transition:background .18s ease, color .18s ease; }
    .dock a svg{ width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
    .dock a span{ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .dock a:active{ background:var(--paper-2); }
    .dock a.here{ background:var(--ink); color:var(--paper); }
    .dock a:focus-visible{ outline:2px solid var(--accent, var(--orange)); outline-offset:-2px; }
    body:has(.modal.on) .dock{ opacity:0; visibility:hidden; pointer-events:none; }
  }
  /* contraste élevé (Windows High Contrast) : l'onglet actif ne peut pas compter sur un fond -> contour */
  @media (forced-colors:active){
    .dock a.here{ outline:2px solid CanvasText; outline-offset:-3px; }
  }
  /* téléphone en paysage : dock compact (icône + libellé sur une ligne) pour garder de la hauteur utile */
  @media (max-width:860px) and (max-height:480px){
    body{ padding-bottom:calc(66px + env(safe-area-inset-bottom, 0px)); }
    html{ scroll-padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px)); }
    .dock{ bottom:calc(8px + env(safe-area-inset-bottom, 0px)); padding:4px; width:min(calc(100% - 24px), 520px); }
    .dock a{ flex-direction:row; gap:8px; min-height:44px; padding:4px 8px; }
    .dock a svg{ width:17px; height:17px; }
  }

  /* ---- hero ---- */
  .hero{ min-height:calc(100vh - 68px); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:60px 36px 80px; position:relative; }
  .kicker{ display:inline-flex; align-items:center; gap:10px; font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--mute); padding:8px 16px; border:1px solid var(--hair); border-radius:40px; background:color-mix(in srgb,var(--paper) 60%,transparent); margin-bottom:34px; }

  /* original animated wordmark */
  .lockup{ transform:rotate(-3deg); position:relative; }
  .word{ display:flex; align-items:center; justify-content:center; gap:2px; line-height:0.8; }
  .word .ch, .word .mk-a{ display:inline-block; font-family:'Bodoni Moda',serif; font-weight:800; font-size:clamp(78px,16vw,200px); letter-spacing:0.01em; transform:translateY(120%) rotate(8deg); opacity:0; animation:drop .7s cubic-bezier(.2,1.3,.4,1) forwards; -webkit-text-stroke:0.014em var(--ink); transition:color .2s ease, -webkit-text-stroke-color .2s ease; }
  .word .mk-a{ display:inline-flex; align-items:flex-end; }
  .word .ch:hover{ color:var(--orange); -webkit-text-stroke-color:var(--orange); }
  .word .ch-a{ position:relative; }
  .word .ch-a::after{ content:""; position:absolute; left:0.09em; bottom:0.175em; width:0.36em; height:0.078em; background:var(--orange); }
  @keyframes drop{ to{ transform:translateY(0) rotate(0); opacity:1; } }
  @keyframes wiggle{ 0%,100%{ transform:translateY(0) rotate(0); } 25%{ transform:translateY(-14px) rotate(-6deg); } 60%{ transform:translateY(-4px) rotate(4deg); } }
  .studios{ display:flex; justify-content:center; gap:0.5em; margin-top:10px; }
  .studios span{ font-family:'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:0.62em; font-size:clamp(12px,2vw,19px); color:var(--ink); opacity:0; animation:fadeUp .6s ease forwards; animation-delay:.8s; padding-left:0.62em; }
  @keyframes fadeUp{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:translateY(0);} }

  /* hand-drawn-ish underline angle */
  .underline-angle{ width:min(440px,72vw); height:26px; margin:18px auto 0; overflow:visible; }
  .underline-angle path{ stroke:var(--orange); stroke-width:5; fill:none; stroke-linecap:round; stroke-dasharray:600; stroke-dashoffset:600; animation:draw 1s ease forwards; animation-delay:1s; }
  @keyframes draw{ to{ stroke-dashoffset:0; } }

  .tagline{ font-size:clamp(19px,2.6vw,26px); max-width:620px; margin:42px auto 0; font-family:'Bodoni Moda',serif; font-weight:500; line-height:1.4; opacity:0; animation:fadeUp .7s ease forwards; animation-delay:1.1s; }
  .tagline .hl{ font-style:italic; color:var(--blue); position:relative; white-space:nowrap; }
  .sub-mono{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.08em; color:var(--mute); margin-top:22px; display:flex; gap:8px; justify-content:center; flex-wrap:wrap; opacity:0; animation:fadeUp .7s ease forwards; animation-delay:1.25s; }
  .sub-mono b{ color:var(--ink); font-weight:500; }
  .hero .btn{ margin-top:38px; font-size:16px; padding:16px 28px; opacity:0; animation:fadeUp .7s ease forwards; animation-delay:1.4s; }

  /* floating sticker */
  .sticker{ position:absolute; top:14%; right:8%; width:104px; height:104px; border-radius:50%; background:var(--blue); color:var(--paper); display:flex; align-items:center; justify-content:center; text-align:center; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.1em; text-transform:uppercase; line-height:1.5; padding:14px; transform:rotate(8deg); animation:bob 3.4s ease-in-out infinite; }
  .sticker.two{ top:auto; bottom:16%; left:7%; right:auto; background:var(--green); transform:rotate(-7deg); animation-delay:.6s; width:92px; height:92px; }
  @keyframes bob{ 0%,100%{ transform:translateY(0) rotate(8deg);} 50%{ transform:translateY(-14px) rotate(8deg);} }
  .sticker.two{ animation-name:bob2; }
  @keyframes bob2{ 0%,100%{ transform:translateY(0) rotate(-7deg);} 50%{ transform:translateY(-12px) rotate(-7deg);} }

  /* ---- section ---- */
  .sec{ padding-top:96px; padding-bottom:96px; position:relative; }
  .sec-tag{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--orange-text); display:flex; align-items:center; gap:11px; }
  .sec-tag::before{ content:""; width:8px; height:8px; border-radius:2px; background:var(--orange); } /* puce carrée (plus de trait qui ressemble à un tiret) */
  .sec-intro{ color:var(--mute); max-width:52ch; margin-top:16px; }
  .cards-2{ grid-template-columns:repeat(2,1fr); }
  /* retours à la ligne : titres équilibrés, paragraphes sans mot orphelin (amélioration progressive) */
  h1, h2, h3, .tagline, .final h2{ text-wrap:balance; }
  p, .sec-intro, .avis .txt, .fcard p, .vid .vctx p, .mailside p, .mailside li{ text-wrap:pretty; }
  .sec h2{ font-family:'Bodoni Moda',serif; font-weight:600; font-size:clamp(30px,4.5vw,48px); line-height:1.05; margin:18px 0 0; max-width:14ch; }

  /* fun step cards */
  .cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:54px; }
  .fcard{ background:var(--paper-2); border:1px solid var(--hair); border-radius:18px; padding:26px 22px 28px; transition:transform .2s ease, box-shadow .25s ease, background .2s ease; cursor:default; }
  .fcard:hover{ transform:translateY(-8px) rotate(-1.2deg); box-shadow:8px 14px 0 var(--ink); background:var(--paper); }
  .fcard:nth-child(2):hover{ box-shadow:8px 14px 0 var(--blue); }
  .fcard:nth-child(3):hover{ box-shadow:8px 14px 0 var(--green); }
  .fcard:nth-child(4):hover{ box-shadow:8px 14px 0 var(--orange); }
  .fcard .emoji{ width:48px; height:48px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:var(--paper); border:1px solid var(--hair); margin-bottom:20px; }
  .fcard:nth-child(1) .emoji{ background:color-mix(in srgb,var(--orange) 16%,var(--paper)); }
  .fcard:nth-child(2) .emoji{ background:color-mix(in srgb,var(--blue) 16%,var(--paper)); }
  .fcard:nth-child(3) .emoji{ background:color-mix(in srgb,var(--green) 16%,var(--paper)); }
  .fcard:nth-child(4) .emoji{ background:color-mix(in srgb,var(--orange) 16%,var(--paper)); }
  .fcard .n{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--mute); letter-spacing:0.1em; }
  .fcard h3{ font-family:'Bodoni Moda',serif; font-weight:600; font-size:20px; margin:6px 0 10px; }
  .fcard p{ font-size:14.5px; color:var(--mute); line-height:1.55; }

  /* marquee */
  .marquee-clip{ overflow:hidden; padding:16px 0; margin:-16px 0; }
  .marquee-sec{ padding:36px 0; background:var(--ink); color:var(--paper); overflow:hidden; transform:rotate(-1.5deg) scale(1.04); }
  .marquee{ display:flex; gap:0; white-space:nowrap; animation:scroll 26s linear infinite; }
  .marquee:hover{ animation-play-state:paused; }
  .marquee span{ font-family:'Bodoni Moda',serif; font-weight:500; font-size:30px; padding:0 26px; display:inline-flex; align-items:center; gap:26px; }
  .marquee span::after{ content:""; width:16px; height:16px; flex:none; background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23f7f5ef' d='M50 5 94 95H70.5L50 50.5 29.5 95H6Z'/%3E%3Crect fill='%23d9663a' x='39.5' y='62.5' width='21' height='9.5'/%3E%3C/svg%3E") no-repeat center/contain; opacity:.9; }
  @keyframes scroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

  /* final cta */
  .final{ padding:120px 0; text-align:center; }
  .final h2{ font-family:'Bodoni Moda',serif; font-weight:600; font-size:clamp(38px,6.5vw,82px); line-height:0.98; max-width:18ch; margin:0 auto; }
  .final h2 .em{ font-style:italic; color:var(--orange); }
  .final p{ color:var(--mute); font-size:18px; margin:22px auto 36px; max-width:440px; }

  footer{ border-top:1px solid var(--hair); padding:34px 0 40px; }
  .foot-in{ display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.08em; color:var(--mute); text-transform:uppercase; }
  .foot-in a:hover{ color:var(--orange-text); }
  .foot-links{ display:flex; gap:18px; flex-wrap:wrap; justify-content:center; }

  .mk path.ink{ fill:var(--ink); }
  .mk .acc{ fill:var(--orange); }

  @media (max-width:860px){
    .nav-links{ display:none; }
    .cards{ grid-template-columns:1fr 1fr; }
    .sticker{ display:none; }
  }
  @media (max-width:560px){
    .cards{ grid-template-columns:1fr; }
    body.has-cursor{ cursor:auto; }
    /* hero plus compact : le bouton d'appel à l'action doit rester visible au-dessus du dock au premier affichage */
    .hero{ padding:28px 24px 80px; }
    .kicker{ font-size:10.5px; letter-spacing:0.12em; padding:7px 13px; margin-bottom:20px; }
    .underline-angle{ margin-top:12px; }
    .tagline{ margin-top:26px; }
    .sub-mono{ margin-top:16px; }
    .hero .btn{ margin-top:24px; }
    .reticle{ display:none; }
    .nav-in{ padding:0 16px; height:62px; }
    .brand{ font-size:19px; gap:8px; }
    .brand .logo-img{ height:30px; }
    .nav-right{ gap:8px; }
    .lang{ padding:5px 8px; font-size:10.5px; }
    nav .btn{ padding:9px 12px; font-size:12.5px; gap:6px; }
    nav .btn .arr{ display:none; }
  }
  @media (max-width:430px){
    .tagline{ font-size:18px; }
    .brand .brand-txt{ display:none; }
    .nav-right{ gap:6px; }
    .lang{ padding:5px 7px; font-size:10px; gap:5px; }
  }
  @media (max-width:340px){
    .nav-in{ padding:0 12px; }
    nav .btn{ padding:8px 10px; font-size:11.5px; }
  }
  /* ---- video cards ---- */
  .vids{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:46px; }
  .vid .v916{ position:relative; aspect-ratio:9/16; border-radius:18px; overflow:hidden; border:1.5px solid var(--ink); display:flex; align-items:flex-end; transition:transform .22s ease, box-shadow .25s ease; }
  .vid:nth-child(1) .v916{ background:repeating-linear-gradient(135deg, color-mix(in srgb,var(--orange) 26%,var(--paper)) 0 12px, color-mix(in srgb,var(--orange) 16%,var(--paper)) 12px 24px); }
  .vid:nth-child(2) .v916{ background:repeating-linear-gradient(135deg, color-mix(in srgb,var(--blue) 26%,var(--paper)) 0 12px, color-mix(in srgb,var(--blue) 15%,var(--paper)) 12px 24px); }
  .vid:nth-child(3) .v916{ background:repeating-linear-gradient(135deg, color-mix(in srgb,var(--green) 26%,var(--paper)) 0 12px, color-mix(in srgb,var(--green) 15%,var(--paper)) 12px 24px); }
  .vid:nth-child(4) .v916{ background:repeating-linear-gradient(135deg, color-mix(in srgb,var(--orange) 26%,var(--paper)) 0 12px, color-mix(in srgb,var(--orange) 16%,var(--paper)) 12px 24px); }
  .vid:hover .v916{ transform:translateY(-7px) rotate(-1.4deg); box-shadow:7px 12px 0 var(--ink); }
  .vid .chip{ position:absolute; top:12px; left:12px; font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:0.1em; text-transform:uppercase; background:var(--ink); color:var(--paper); padding:5px 10px; border-radius:30px; }
  .vid .ph{ font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:0.12em; color:var(--ink); background:color-mix(in srgb,var(--paper) 82%,transparent); padding:6px 10px; border-radius:30px; margin:12px; }
  .vid .play{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:52px; height:52px; border-radius:50%; background:var(--paper); border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center; transition:transform .2s ease; }
  .vid:hover .play{ transform:translate(-50%,-50%) scale(1.12); background:var(--orange); border-color:var(--orange); }
  .vid .play::after{ content:""; border-left:13px solid var(--ink); border-top:8px solid transparent; border-bottom:8px solid transparent; margin-left:4px; transition:border-color .2s ease; }
  .vid:hover .play::after{ border-left-color:var(--paper); }
  .vid .v916{ cursor:pointer; background-color:var(--paper-2); }
  .vid .vprev{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; background:var(--ink); }
  .vid .chip{ z-index:2; }
  .vid .chip.lang-chip{ left:auto; right:12px; background:var(--paper); color:var(--ink); border:1px solid var(--ink); }
  .vid .ph{ position:relative; z-index:2; }
  .vid .play{ z-index:2; appearance:none; -webkit-appearance:none; padding:0; cursor:pointer; font:inherit; }
  .vid .vctx{ margin-top:14px; }
  .vid .vctx .k{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:var(--orange-text); }
  .vid .vctx p{ font-size:14px; color:var(--ink); line-height:1.45; margin-top:7px; }
  .vid .vctx p em{ font-style:italic; }

  /* avis */
  .avis-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:54px; }
  .avis{ background:var(--paper-2); border:1px solid var(--hair); border-radius:18px; padding:26px 24px 22px; transition:transform .2s ease, box-shadow .25s ease, background .2s ease; }
  .avis:hover{ transform:translateY(-6px) rotate(-1deg); background:var(--paper); box-shadow:7px 12px 0 var(--orange); }
  .avis:nth-child(2):hover{ box-shadow:7px 12px 0 var(--blue); }
  .avis:nth-child(3):hover{ box-shadow:7px 12px 0 var(--green); }
  .avis .stars{ color:var(--orange); letter-spacing:4px; font-size:13px; }
  .avis .txt{ font-size:15px; line-height:1.6; margin:14px 0 20px; }
  .avis .who{ display:flex; gap:12px; align-items:center; border-top:1px solid var(--hair); padding-top:16px; }
  .avis .av{ width:38px; height:38px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:11px; background:color-mix(in srgb,var(--orange) 18%,var(--paper)); border:1px solid var(--hair); }
  .avis:nth-child(2) .av{ background:color-mix(in srgb,var(--blue) 18%,var(--paper)); }
  .avis:nth-child(3) .av{ background:color-mix(in srgb,var(--green) 18%,var(--paper)); }
  .avis .nm{ font-weight:600; font-size:14.5px; }
  .avis .ro{ font-size:12.5px; color:var(--mute); }

  /* ---- modal (lightbox vidéo) ---- */
  .modal{ position:fixed; inset:0; z-index:200; display:none; padding:24px; }
  .modal.on{ display:grid; place-items:center; overflow-y:auto; }
  .modal .scrim{ position:absolute; inset:0; background:rgba(27,26,32,0.42); backdrop-filter:blur(5px); animation:fade .25s ease; }
  @keyframes fade{ from{ opacity:0; } to{ opacity:1; } }
  @keyframes pop{ from{ transform:translateY(24px) scale(.96); opacity:0; } to{ transform:none; opacity:1; } }
  .modal .x{ position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%; border:1.5px solid var(--hair); background:none; cursor:pointer; font-size:18px; line-height:1; color:var(--ink); display:flex; align-items:center; justify-content:center; transition:all .18s ease; }
  .modal .x:hover{ background:var(--ink); color:var(--paper); }
  /* ---- video lightbox ---- */
  .vmodal .vbox{ position:relative; display:flex; flex-direction:column; align-items:center; gap:14px; width:min(400px,100%,calc((100vh - 120px) * 0.5625)); }
  .vmodal .vsheet{ position:relative; width:100%; aspect-ratio:9/16; background:#000; border:1.5px solid var(--ink); border-radius:24px; overflow:hidden; box-shadow:10px 16px 0 var(--orange); animation:pop .35s cubic-bezier(.2,1.3,.4,1); }
  .vmodal .vsheet video{ position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:contain; background:#000; }
  .vmodal .x{ z-index:3; background:var(--paper); border-color:var(--paper); }
  .vmodal .vcap{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink); background:var(--paper); border:1.5px solid var(--ink); padding:8px 14px; border-radius:30px; animation:fadeUp .4s ease both; animation-delay:.15s; }

  /* ---- responsive (déclaré en dernier pour primer sur les styles ci-dessus) ---- */
  @media (max-width:860px){
    .vids{ grid-template-columns:1fr 1fr; }
    .avis-grid{ grid-template-columns:1fr; }
    .vmodal .vbox{ width:min(400px,100%,calc((100vh - 120px) * 0.5625)); }
  }
  @media (max-width:560px){
    .vids{ gap:14px; }
    .cards{ grid-template-columns:1fr !important; }
    .vid .vctx p{ font-size:13.5px; }
  }

  @media (prefers-reduced-motion:reduce){
    html{ scroll-behavior:auto; }
    *{ animation:none !important; }
    .word .ch, .word .mk-a, .studios span, .tagline, .sub-mono, .hero .btn{ opacity:1 !important; transform:none !important; }
    .underline-angle path{ stroke-dashoffset:0 !important; }
  }
