/* ============================================================
   OVERALL PROJECT — Direction Iridescente v1.0
   tokens.css  ·  SOURCE UNIQUE de toutes les décisions visuelles
   ------------------------------------------------------------
   Règle d'or : aucune valeur visuelle (couleur, px, durée…) ne
   doit exister ailleurs que dans ce fichier. Les classes .pu-*
   plus bas ne consomment QUE des var(--pu-*).
   Thème : SOMBRE UNIQUEMENT (aucun mode clair — cf. README).
   ============================================================ */

/* ---- Polices AUTO-HÉBERGÉES — aucun appel externe (conforme Loi 25 / RGPD) ---- */
/* woff2 dans assets/fonts/ · chargement paresseux par unicode-range · cf. DEPLOYMENT-NOTES.md */
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.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;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.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;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.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;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.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;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/i7dPIFZifjKcF5UAWdDRYE58RWq7.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/i7dPIFZifjKcF5UAWdDRYE98RWq7.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;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/i7dPIFZifjKcF5UAWdDRYEF8RQ.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/i7dMIFZifjKcF5UAWdDRaPpZUFqaHjyV.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/i7dMIFZifjKcF5UAWdDRaPpZUFuaHjyV.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;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtsZfrxE.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwv8ZfrxE.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtMZfrxE.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtcZfrxE.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;
}
/* latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwu8Zf.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtsZfrxE.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwv8ZfrxE.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtMZfrxE.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtcZfrxE.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;
}
/* latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwu8Zf.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtsZfrxE.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwv8ZfrxE.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtMZfrxE.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwtcZfrxE.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;
}
/* latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../assets/fonts/Yq6W-LOTXCb04q32xlpwu8Zf.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 {
  /* ============ COULEURS — base sombre ============ */
  --pu-bg:            #060607;   /* fond global */
  --pu-surface-1:     #0c0c0e;   /* cartes / panneaux */
  --pu-surface-2:     #0e0e10;   /* cartes secondaires */
  --pu-surface-3:     #101119;   /* placeholders / champs */
  --pu-ink:           #F2F0EC;   /* texte principal (contraste ~15:1) */

  /* Texte — valeurs SOLIDES validées WCAG AA (≥4.5:1 sur --pu-surface-2) */
  --pu-text-1:        #F2F0EC;   /* corps important */
  --pu-text-2:        #C7C3BB;   /* corps secondaire   ~9:1  */
  --pu-text-3:        #A6A29A;   /* légendes / labels  ~5.4:1 */
  --pu-text-inverse:  #060607;   /* texte sur fonds clairs/holo */

  /* Bordures & voiles */
  --pu-border:        rgba(255,255,255,.12);
  --pu-border-strong: rgba(255,255,255,.28);
  --pu-border-hover:  rgba(255,255,255,.45);
  --pu-overlay:       rgba(6,6,7,.82);   /* nav / voiles */
  --pu-scrim:         linear-gradient(to top, rgba(6,6,7,.94) 8%, rgba(6,6,7,.28) 55%, rgba(6,6,7,.45));

  /* ============ SIGNATURE HOLOGRAPHIQUE ============ */
  --pu-holo-1: #8be0d0;
  --pu-holo-2: #8fb2ff;
  --pu-holo-3: #c79bff;
  --pu-holo-4: #ff9ec9;
  --pu-holo-5: #ffd98a;
  --pu-holo: linear-gradient(100deg,
              var(--pu-holo-1), var(--pu-holo-2), var(--pu-holo-3),
              var(--pu-holo-4), var(--pu-holo-5));
  --pu-holo-size: 300% 100%;          /* pour l'animation de balayage */
  --pu-holo-soft: linear-gradient(118deg,
              rgba(139,224,208,.32), rgba(143,178,255,.24) 50%, rgba(199,155,255,.26));

  /* ============ ACCENTS PAR SÉRIE (mappés sur pu_couleur) ============ */
  --pu-serie-aperhull:  #8be0d0;  /* Aper-Hull */
  --pu-serie-fleurazur: #ff9ec9;  /* Fleur d'Azur */
  --pu-serie-kinglemon: #c79bff;  /* King Lemon */
  --pu-serie-taco:      #9be8b4;  /* Tacopalooza */
  --pu-serie-gpv:       #ffd98a;  /* Gatineau pour la vie (vidéo) */
  --pu-serie-default:   #8be0d0;  /* repli si pu_couleur vide */

  /* États fonctionnels */
  --pu-free:    #9be8b4;   /* Gratuit */
  --pu-sold:    #ff9ec9;   /* Complet */
  --pu-success: #9be8b4;
  --pu-focus:   #8be0d0;   /* anneau focus */

  /* ============ TYPOGRAPHIE ============ */
  --pu-font-display: 'Unbounded', system-ui, sans-serif;
  --pu-font-body:    'Space Grotesk', system-ui, sans-serif;
  --pu-font-mono:    'Space Mono', ui-monospace, monospace;

  /* Échelle fluide (mobile-first, clamp) */
  --pu-fs-hero:  clamp(2.6rem, 8vw, 5.5rem);   /* H1 accueil */
  --pu-fs-h1:    clamp(2.2rem, 6vw, 4rem);     /* H1 pages */
  --pu-fs-h2:    clamp(1.5rem, 3.2vw, 2rem);
  --pu-fs-h3:    clamp(1.1rem, 2vw, 1.375rem);
  --pu-fs-lead:  clamp(1rem, 2.2vw, 1.25rem);
  --pu-fs-body:  1rem;         /* 16px */
  --pu-fs-sm:    0.875rem;     /* 14px */
  --pu-fs-xs:    0.75rem;      /* 12px */
  --pu-fs-mono:  0.6875rem;    /* 11px labels mono */

  --pu-lh-tight: 0.98;
  --pu-lh-snug:  1.2;
  --pu-lh-body:  1.65;
  --pu-tracking-mono: 0.14em;

  /* ============ ESPACEMENT ============ */
  --pu-space-1: 4px;
  --pu-space-2: 8px;
  --pu-space-3: 12px;
  --pu-space-4: 16px;
  --pu-space-5: 24px;
  --pu-space-6: 32px;
  --pu-space-7: 44px;
  --pu-space-8: 64px;
  --pu-gutter:  clamp(18px, 4vw, 44px);   /* marge latérale des sections */
  --pu-maxw:    1280px;                    /* largeur max contenu */
  --pu-maxw-read: 760px;                   /* colonne de lecture article */

  /* ============ RAYONS ============ */
  --pu-radius-sm:   8px;
  --pu-radius-md:   12px;
  --pu-radius-lg:   18px;
  --pu-radius-xl:   20px;
  --pu-radius-pill: 100px;

  /* ============ RATIOS D'IMAGE (fixes) ============ */
  --pu-ratio-media: 16 / 9;   /* événements · vidéos · nouvelles */
  --pu-ratio-card:  16 / 10;  /* vignettes cartes */
  --pu-ratio-square:1 / 1;    /* artistes · membres */
  --pu-ratio-poster:4 / 5;    /* affiches portrait */

  /* ============ OMBRES ============ */
  --pu-shadow-hero: 0 4px 44px rgba(0,0,0,.45);
  --pu-shadow-card: 0 8px 30px rgba(0,0,0,.35);

  /* ============ MOTION ============ */
  --pu-dur-fast:  .18s;
  --pu-dur-base:  .28s;
  --pu-dur-slow:  .6s;
  --pu-ease:      cubic-bezier(.22,.61,.36,1);
  --pu-ease-out:  cubic-bezier(.16,1,.3,1);
  --pu-holo-anim: 9s;    /* durée de balayage du gradient */
  --pu-holo-anim-slow: 14s;

  /* ============ CIBLES TACTILES ============ */
  --pu-hit: 44px;   /* hauteur minimale interactive (WCAG) */
  --pu-nav-h: 72px;
}

/* ============ ANIMATIONS ============ */
@keyframes pu-iri { to { background-position: 300% 50%; } }

/* ============================================================
   BASE / RESET
   ============================================================ */
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--pu-bg);
  color: var(--pu-text-1);
  font-family: var(--pu-font-body);
  font-size: var(--pu-fs-body);
  line-height: var(--pu-lh-body);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--pu-holo-1); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
button { font: inherit; cursor: pointer; }
::placeholder { color: var(--pu-text-3); }
::selection { background: var(--pu-holo-3); color: var(--pu-text-inverse); }

/* Focus visible — anneau holo cohérent sur TOUT élément interactif */
:where(a, button, input, textarea, select, [tabindex], .pu-clickable):focus-visible {
  outline: 2px solid var(--pu-focus);
  outline-offset: 3px;
  border-radius: var(--pu-radius-sm);
}

/* ============================================================
   TYPOGRAPHIE
   ============================================================ */
.pu-display { font-family: var(--pu-font-display); }
.pu-mono {
  font-family: var(--pu-font-mono);
  letter-spacing: var(--pu-tracking-mono);
  text-transform: uppercase;
  font-size: var(--pu-fs-mono);
}
h1, .pu-h1 { font-family: var(--pu-font-display); font-weight: 900; font-size: var(--pu-fs-h1); line-height: var(--pu-lh-tight); letter-spacing: -.02em; margin: 0; }
h2, .pu-h2 { font-family: var(--pu-font-display); font-weight: 700; font-size: var(--pu-fs-h2); line-height: var(--pu-lh-snug); margin: 0; }
h3, .pu-h3 { font-family: var(--pu-font-display); font-weight: 700; font-size: var(--pu-fs-h3); line-height: var(--pu-lh-snug); margin: 0; }
.pu-hero-title { font-family: var(--pu-font-display); font-weight: 900; font-size: var(--pu-fs-hero); line-height: .94; letter-spacing: -.02em; margin: 0; text-shadow: var(--pu-shadow-hero); }
.pu-lead { font-size: var(--pu-fs-lead); line-height: 1.55; color: var(--pu-text-1); }
.pu-eyebrow { font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); letter-spacing: .26em; text-transform: uppercase; font-weight: 700; }
.pu-muted { color: var(--pu-text-2); }
.pu-muted-2 { color: var(--pu-text-3); }

/* Texte holographique */
.pu-holo-text {
  background: var(--pu-holo);
  background-size: var(--pu-holo-size);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  animation: pu-iri var(--pu-holo-anim) linear infinite;
}

/* ============================================================
   LAYOUT
   ============================================================ */
.pu-container { max-width: var(--pu-maxw); margin-inline: auto; padding-inline: var(--pu-gutter); }
.pu-section { padding-block: var(--pu-space-8); }
.pu-section-sm { padding-block: var(--pu-space-6); }
.pu-read { max-width: var(--pu-maxw-read); margin-inline: auto; padding-inline: var(--pu-gutter); }
.pu-stack { display: flex; flex-direction: column; }
.pu-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pu-space-3); }
.pu-grid { display: grid; gap: var(--pu-space-5); }
/* Grilles auto-adaptatives (mobile-first, sans media query) */
.pu-grid-cards { display: grid; gap: var(--pu-space-5); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pu-grid-tiles { display: grid; gap: var(--pu-space-4); grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.pu-grid-stats { display: grid; gap: var(--pu-space-6); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.pu-split { display: grid; gap: var(--pu-space-6); grid-template-columns: 1fr; }
@media (min-width: 860px) { .pu-split { grid-template-columns: 1.4fr .6fr; align-items: start; } }
.pu-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--pu-space-3); flex-wrap: wrap; margin-bottom: var(--pu-space-5); }

/* Sticky sidebar (revient dans le flux sur mobile) */
.pu-sticky { position: static; }
@media (min-width: 860px) { .pu-sticky { position: sticky; top: calc(var(--pu-nav-h) + 16px); } }

/* ============================================================
   MÉDIAS & RATIOS
   ============================================================ */
.pu-media  { aspect-ratio: var(--pu-ratio-media);  overflow: hidden; border-radius: var(--pu-radius-md); }
.pu-square { aspect-ratio: var(--pu-ratio-square); overflow: hidden; border-radius: var(--pu-radius-md); }
.pu-poster { aspect-ratio: var(--pu-ratio-poster); overflow: hidden; border-radius: var(--pu-radius-md); }
.pu-media img, .pu-square img, .pu-poster img { width: 100%; height: 100%; object-fit: cover; }

/* Fallback photo manquante (composant réutilisable) */
.pu-photo-fallback {
  width: 100%; height: 100%;
  background: var(--pu-surface-3);
  background-image: repeating-linear-gradient(45deg,
      rgba(255,255,255,.02) 0 12px, rgba(255,255,255,.045) 12px 24px);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--pu-space-2);
  color: var(--pu-text-3);
}
.pu-photo-fallback::after { content: 'PHOTO'; font-family: var(--pu-font-mono); font-size: 9.5px; letter-spacing: .16em; }
/* Masque l'image cassée pour révéler le fallback dessous */
img.pu-fallbackable { background: var(--pu-surface-3); }

/* ============================================================
   BOUTONS
   ============================================================ */
.pu-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--pu-space-2);
  min-height: var(--pu-hit); padding: 0 var(--pu-space-6);
  border-radius: var(--pu-radius-pill); border: 0;
  font-weight: 700; font-size: var(--pu-fs-sm); text-decoration: none;
  transition: filter var(--pu-dur-fast) var(--pu-ease), background var(--pu-dur-fast) var(--pu-ease), transform var(--pu-dur-fast) var(--pu-ease);
}
.pu-btn:hover { text-decoration: none; }
.pu-btn:active { transform: translateY(1px); }
.pu-btn--primary { background: var(--pu-holo); background-size: var(--pu-holo-size); color: var(--pu-text-inverse); animation: pu-iri var(--pu-holo-anim) linear infinite; }
.pu-btn--primary:hover { filter: brightness(1.08); }
.pu-btn--solid { background: var(--pu-ink); color: var(--pu-text-inverse); }
.pu-btn--solid:hover { filter: brightness(.94); }
.pu-btn--ghost { background: transparent; color: var(--pu-text-1); border: 1px solid var(--pu-border-strong); }
.pu-btn--ghost:hover { background: rgba(255,255,255,.08); border-color: var(--pu-border-hover); }
.pu-btn--glass { background: rgba(255,255,255,.12); color: var(--pu-text-1); border: 1px solid var(--pu-border-strong); backdrop-filter: blur(6px); }
.pu-btn--glass:hover { background: rgba(255,255,255,.2); }
.pu-btn--block { display: flex; width: 100%; }

/* ============================================================
   BADGES
   ============================================================ */
.pu-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--pu-font-mono); font-size: var(--pu-fs-mono);
  letter-spacing: .12em; text-transform: uppercase; font-weight: 700;
  padding: 7px 14px; border-radius: var(--pu-radius-pill); white-space: nowrap;
}
.pu-badge--serie   { background: var(--pu-serie-default); color: var(--pu-text-inverse); }
.pu-badge--free    { background: var(--pu-free); color: var(--pu-text-inverse); }
.pu-badge--sold    { background: var(--pu-sold); color: var(--pu-text-inverse); }
.pu-badge--age     { color: var(--pu-text-1); border: 1px solid var(--pu-border-hover); padding: 6px 13px; }
.pu-badge--past    { color: var(--pu-text-1); background: rgba(255,255,255,.14); border: 1px solid var(--pu-border-strong); padding: 6px 13px; }
.pu-badge--outline { color: var(--pu-text-2); border: 1px solid var(--pu-border-strong); background: transparent; }
/* Teinte par série via variable locale : <span class="pu-badge pu-badge--serie" style="--pu-serie-default:var(--pu-serie-fleurazur)"> */

/* ============================================================
   CARTES
   ============================================================ */
.pu-card {
  background: var(--pu-surface-2); border: 1px solid var(--pu-border);
  border-radius: var(--pu-radius-lg); overflow: hidden;
  transition: border-color var(--pu-dur-base) var(--pu-ease), transform var(--pu-dur-base) var(--pu-ease);
}
.pu-card:hover { border-color: var(--pu-border-hover); }
a.pu-card:hover, .pu-card--link:hover { border-color: var(--pu-serie-default); transform: translateY(-2px); }
.pu-card__body { padding: var(--pu-space-5) var(--pu-space-5); }
.pu-card__kicker { font-family: var(--pu-font-mono); font-size: var(--pu-fs-mono); color: var(--pu-serie-default); margin-bottom: var(--pu-space-2); }
.pu-card__title { font-family: var(--pu-font-display); font-weight: 700; font-size: 1.2rem; line-height: 1.2; margin: 0 0 var(--pu-space-2); }
.pu-card__text  { font-size: var(--pu-fs-sm); color: var(--pu-text-2); margin: 0; }
.pu-card__foot  { margin-top: var(--pu-space-4); padding-top: var(--pu-space-4); border-top: 1px solid rgba(255,255,255,.08);
                  display: flex; align-items: center; justify-content: space-between; gap: var(--pu-space-3); }

/* Variante VEDETTE : image large + contenu côte à côte */
.pu-card--featured { display: grid; grid-template-columns: 1fr; }
@media (min-width: 720px) { .pu-card--featured { grid-template-columns: 1.1fr .9fr; } }
.pu-card--featured .pu-card__body { padding: var(--pu-space-7); display: flex; flex-direction: column; justify-content: center; }

/* Variante LISTE : rangée horizontale (date | infos | flèche) */
.pu-item {
  display: grid; grid-template-columns: 64px 1fr auto; gap: var(--pu-space-4); align-items: center;
  background: var(--pu-surface-2); border: 1px solid var(--pu-border);
  border-radius: var(--pu-radius-md); padding: var(--pu-space-4) var(--pu-space-5);
  transition: border-color var(--pu-dur-base) var(--pu-ease);
}
.pu-item:hover { border-color: var(--pu-serie-default); }
.pu-item__date { font-family: var(--pu-font-mono); font-size: var(--pu-fs-mono); color: var(--pu-serie-default); text-align: center; line-height: 1.3; }
.pu-item__arrow { color: var(--pu-text-3); font-size: 1.1rem; }

/* Variante COMPACTE : vignette carrée + libellé */
.pu-card--compact .pu-card__body { padding: var(--pu-space-3) var(--pu-space-4); }
.pu-card--compact .pu-card__title { font-size: .95rem; }

/* ============================================================
   TÉMOIGNAGE
   ============================================================ */
.pu-quote {
  background: var(--pu-surface-2); border: 1px solid var(--pu-border);
  border-radius: var(--pu-radius-lg); padding: var(--pu-space-6);
  display: flex; flex-direction: column; gap: var(--pu-space-4);
}
.pu-quote__mark { font-family: var(--pu-font-display); font-weight: 900; font-size: 2.5rem; line-height: .6; }
.pu-quote__text { font-size: 1.05rem; line-height: 1.5; color: var(--pu-text-1); flex: 1; }
.pu-quote__who  { display: flex; align-items: center; gap: var(--pu-space-3); }
.pu-quote__avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex: none; }
.pu-quote__name { font-weight: 600; font-size: var(--pu-fs-sm); }
.pu-quote__role { font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); }

/* ============================================================
   CHIFFRES D'IMPACT
   ============================================================ */
.pu-impact { display: grid; gap: var(--pu-space-6); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.pu-impact__num { font-family: var(--pu-font-display); font-weight: 900; font-size: clamp(2rem, 5vw, 2.6rem);
                  background: var(--pu-holo); background-size: var(--pu-holo-size);
                  -webkit-background-clip: text; background-clip: text; color: transparent;
                  animation: pu-iri var(--pu-holo-anim) linear infinite; }
.pu-impact__label { font-size: var(--pu-fs-sm); color: var(--pu-text-2); margin-top: 6px; }

/* ============================================================
   LISTE DOCUMENTS (transparence)
   ============================================================ */
.pu-docs { display: flex; flex-direction: column; gap: var(--pu-space-2); }
.pu-doc {
  display: grid; grid-template-columns: auto 1fr auto; gap: var(--pu-space-4); align-items: center;
  border: 1px solid var(--pu-border); border-radius: var(--pu-radius-md);
  padding: var(--pu-space-4) var(--pu-space-5); background: var(--pu-surface-2);
  transition: border-color var(--pu-dur-base) var(--pu-ease);
}
.pu-doc:hover { border-color: var(--pu-border-hover); }
.pu-doc__type { font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); }
.pu-doc__title { font-weight: 600; font-size: var(--pu-fs-sm); }
.pu-doc__meta { font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); }

/* ============================================================
   BANDE PARTENAIRES (hiérarchie par niveau)
   ============================================================ */
.pu-partners { display: flex; flex-direction: column; gap: var(--pu-space-6); }
.pu-partners__tier-label { font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); margin-bottom: var(--pu-space-3); }
.pu-partners__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pu-space-6); }
.pu-partner { display: inline-flex; align-items: center; justify-content: center; filter: grayscale(1) brightness(1.4) opacity(.7); transition: filter var(--pu-dur-base) var(--pu-ease); }
.pu-partner:hover { filter: none; }
.pu-partner--presenter img { height: 64px; }
.pu-partner--major img     { height: 46px; }
.pu-partner--support img   { height: 34px; }

/* ============================================================
   FILTRES / PILLS (taxonomies)
   ============================================================ */
.pu-pills { display: flex; flex-wrap: wrap; gap: var(--pu-space-2); }
.pu-pill {
  display: inline-flex; align-items: center; min-height: var(--pu-hit);
  padding: 0 var(--pu-space-4); border-radius: var(--pu-radius-pill);
  border: 1px solid var(--pu-border-strong); background: transparent;
  color: var(--pu-text-2); font-size: var(--pu-fs-sm); font-weight: 600;
  transition: background var(--pu-dur-fast) var(--pu-ease), color var(--pu-dur-fast) var(--pu-ease), border-color var(--pu-dur-fast) var(--pu-ease);
}
.pu-pill:hover { border-color: var(--pu-border-hover); color: var(--pu-text-1); text-decoration: none; }
.pu-pill[aria-current="true"], .pu-pill--active { background: var(--pu-ink); color: var(--pu-text-inverse); border-color: var(--pu-ink); }

/* ============================================================
   PAGINATION
   ============================================================ */
.pu-pagination { display: flex; gap: var(--pu-space-2); justify-content: center; align-items: center; flex-wrap: wrap; }
.pu-page {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: var(--pu-hit); min-height: var(--pu-hit); padding: 0 var(--pu-space-3);
  border: 1px solid var(--pu-border); border-radius: var(--pu-radius-md);
  color: var(--pu-text-2); font-family: var(--pu-font-mono); font-size: var(--pu-fs-sm);
}
.pu-page:hover { border-color: var(--pu-border-hover); color: var(--pu-text-1); text-decoration: none; }
.pu-page[aria-current="page"] { background: var(--pu-ink); color: var(--pu-text-inverse); border-color: var(--pu-ink); }
.pu-page[aria-disabled="true"] { opacity: .4; pointer-events: none; }

/* ============================================================
   BREADCRUMB
   ============================================================ */
.pu-breadcrumb { display: flex; flex-wrap: wrap; gap: var(--pu-space-2); align-items: center; font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); }
.pu-breadcrumb a { color: var(--pu-text-3); }
.pu-breadcrumb a:hover { color: var(--pu-text-1); }
.pu-breadcrumb__sep { opacity: .5; }
.pu-breadcrumb [aria-current="page"] { color: var(--pu-text-1); }

/* ============================================================
   SWITCHER FR / EN
   ============================================================ */
.pu-lang { display: inline-flex; border: 1px solid var(--pu-border-strong); border-radius: var(--pu-radius-pill); overflow: hidden; }
.pu-lang a { min-height: var(--pu-hit); display: inline-flex; align-items: center; padding: 0 var(--pu-space-3);
             font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); }
.pu-lang a:hover { color: var(--pu-text-1); text-decoration: none; }
.pu-lang a[aria-current="true"] { background: var(--pu-ink); color: var(--pu-text-inverse); }

/* ============================================================
   ÉTAT VIDE
   ============================================================ */
.pu-empty {
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--pu-space-4);
  border: 1px dashed var(--pu-border-strong); border-radius: var(--pu-radius-lg);
  padding: var(--pu-space-8) var(--pu-space-6);
}
.pu-empty__icon { font-family: var(--pu-font-display); font-weight: 900; font-size: 2.2rem; }
.pu-empty__text { color: var(--pu-text-2); max-width: 46ch; margin: 0; }

/* ============================================================
   NAV
   ============================================================ */
.pu-nav {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: var(--pu-space-4);
  min-height: var(--pu-nav-h); padding-inline: var(--pu-gutter);
  background: var(--pu-overlay); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--pu-border);
}
.pu-nav__brand { display: flex; align-items: center; gap: var(--pu-space-3); }
.pu-nav__brand img { height: 32px; width: auto; }
.pu-nav__wordmark { font-family: var(--pu-font-display); font-weight: 700; font-size: var(--pu-fs-sm); letter-spacing: .02em; }
.pu-nav__links { display: none; align-items: center; gap: 22px; font-size: var(--pu-fs-sm); }
.pu-nav__links a { color: var(--pu-text-2); min-height: var(--pu-hit); display: inline-flex; align-items: center; }
.pu-nav__links a:hover { color: var(--pu-text-1); text-decoration: none; }
.pu-nav__links a[aria-current="page"] { color: var(--pu-text-1); }
.pu-nav__actions { display: flex; align-items: center; gap: var(--pu-space-3); }
.pu-burger { display: inline-flex; flex-direction: column; gap: 5px; align-items: center; justify-content: center;
             width: var(--pu-hit); height: var(--pu-hit); border: 1px solid var(--pu-border); border-radius: var(--pu-radius-md); background: transparent; }
.pu-burger span { width: 19px; height: 2px; background: var(--pu-ink); border-radius: 2px; }
@media (min-width: 1040px) {
  .pu-nav__links { display: flex; }
  .pu-burger { display: none; }
}
/* Menu mobile (progressive enhancement : <details> natif, zéro JS requis) */
.pu-menu[open] .pu-menu__panel { display: flex; }
.pu-menu__panel {
  display: none; flex-direction: column;
  position: absolute; left: 0; right: 0; top: var(--pu-nav-h); z-index: 49;
  background: var(--pu-bg); border-bottom: 1px solid var(--pu-border);
  padding: var(--pu-space-3) var(--pu-gutter) var(--pu-space-6);
}
.pu-menu__panel a { min-height: var(--pu-hit); display: flex; align-items: center;
                    font-size: 1.125rem; color: var(--pu-text-1); border-bottom: 1px solid rgba(255,255,255,.06); }
.pu-menu__panel a:hover { text-decoration: none; }

/* ============================================================
   FOOTER
   ============================================================ */
.pu-footer { border-top: 1px solid var(--pu-border); }
.pu-footer__cta { padding: var(--pu-space-8) var(--pu-gutter); display: flex; flex-direction: column; gap: var(--pu-space-5);
                  background: linear-gradient(120deg, var(--pu-surface-1), #111113); }
@media (min-width: 760px) { .pu-footer__cta { flex-direction: row; justify-content: space-between; align-items: center; } }
.pu-footer__grid { display: grid; gap: var(--pu-space-6); grid-template-columns: 1fr; padding: var(--pu-space-7) var(--pu-gutter); border-top: 1px solid rgba(255,255,255,.08); }
@media (min-width: 560px) { .pu-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .pu-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.pu-footer__col-title { font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); margin-bottom: var(--pu-space-4); }
.pu-footer__col a, .pu-footer__col li { color: var(--pu-text-2); font-size: var(--pu-fs-sm); }
.pu-footer__col a { min-height: 40px; display: inline-flex; align-items: center; }
.pu-footer__legal { padding: var(--pu-space-5) var(--pu-gutter); border-top: 1px solid rgba(255,255,255,.08);
                    display: flex; justify-content: space-between; align-items: center; gap: var(--pu-space-3); flex-wrap: wrap;
                    font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); }

/* ============================================================
   FORMULAIRES
   ============================================================ */
.pu-field { display: flex; flex-direction: column; gap: var(--pu-space-2); }
.pu-label { font-family: var(--pu-font-mono); font-size: var(--pu-fs-xs); color: var(--pu-text-3); }
.pu-input, .pu-textarea {
  width: 100%; min-height: var(--pu-hit);
  background: var(--pu-bg); border: 1px solid var(--pu-border-strong); border-radius: var(--pu-radius-md);
  padding: var(--pu-space-3) var(--pu-space-4); color: var(--pu-text-1); font-size: var(--pu-fs-sm);
}
.pu-input:focus, .pu-textarea:focus { outline: 2px solid var(--pu-focus); outline-offset: 2px; border-color: transparent; }
.pu-textarea { min-height: 140px; resize: vertical; }
.pu-input--pill { border-radius: var(--pu-radius-pill); }

/* ============================================================
   HERO (réutilisable)
   ============================================================ */
.pu-hero { position: relative; overflow: hidden; min-height: 380px; }
.pu-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pu-hero__holo { position: absolute; inset: 0; background: var(--pu-holo-soft); background-size: var(--pu-holo-size);
                 animation: pu-iri var(--pu-holo-anim-slow) linear infinite; mix-blend-mode: soft-light; }
.pu-hero__scrim { position: absolute; inset: 0; background: var(--pu-scrim); }
.pu-hero__inner { position: relative; padding: var(--pu-space-7) var(--pu-gutter); }

/* Barre de rappel signature (fine ligne holo) */
.pu-holo-bar { height: 3px; background: var(--pu-holo); background-size: var(--pu-holo-size); animation: pu-iri var(--pu-holo-anim) linear infinite; border: 0; }

/* ============================================================
   ACCESSIBILITÉ
   ============================================================ */
.pu-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pu-skip-link { position: absolute; left: -999px; top: 8px; z-index: 100; background: var(--pu-ink); color: var(--pu-text-inverse); padding: 10px 16px; border-radius: var(--pu-radius-md); }
.pu-skip-link:focus { left: 8px; }

/* Respect de prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
