/* POINTS DE RUPTURE CONVOQUÉS : 320px (20rem) et 1200px (75rem) */

@font-face {
  font-family: 'Sentient-Variable';
  src: url('fonts/Sentient-Variable.woff2') format('woff2'),
       url('fonts/Sentient-Variable.woff') format('woff'),
       url('fonts/Sentient-Variable.ttf') format('truetype');
  font-weight: 200 700;
  font-display: swap;
  font-style: normal;
}

@font-face {
  font-family: 'Sentient-VariableItalic';
  src: url('fonts/Sentient-VariableItalic.woff2') format('woff2'),
       url('fonts/Sentient-VariableItalic.woff') format('woff'),
       url('fonts/Sentient-VariableItalic.ttf') format('truetype');
  font-weight: 200 700;
  font-display: swap;
  font-style: italic;
}

:root {
    --rose: #f086a9;
    --dore: #d59c17;
    --noir100: #0a0a0a;
    --noir90: #1e1e1e; /*#131313;*/
    --blanc: #f5f3ef;
    --gris: #9e928e;
    --grad: linear-gradient(180deg, var(--rose) 0%, var(--rose) 45%, var(--dore) 65%, var(--dore) 100%);
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  html { scroll-behavior: smooth; font-size: 1em; }

  body {
    background: var(--noir100);
    color: var(--blanc);
    font-family: 'Space Mono', monospace;
    overflow-x: hidden;
  }

  /* ── NAV ── */
  nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background: rgba(10,10,10,0.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(194,143,25,0.25);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    height: 56px;
  }

  .nav-logo {
    font-family: 'Sentient-Variable', serif;
    font-weight: 400;
    font-size: 0.85rem;
    letter-spacing: 0.09em;
    color: var(--rose);
    white-space: nowrap;
    text-align: center;
  }

  .nav-logo span {
    font-family: 'Sentient-VariableItalic', serif;
  }

  .nav-links {
    font-family: 'Sentient-Variable', serif;
    display: flex;
    gap: 0.15rem;
    list-style: none;
  }

  .nav-links a {
    display: block;
    padding: 0.4rem 0.4rem;
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(245,240,232,0.55);
    text-decoration: none;
    border: 1px solid transparent;
    transition: color 0.2s, border-color 0.2s;
  }

  .nav-links a:hover,
  .nav-links a.active {
    color: var(--dore);
    /*border-color: rgba(217, 158, 18, 0.4);*/
  }

  .hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 4px;
  }
  .hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: rgba(245,240,232,0.55);
    transition: all 0.3s;
  }

  /* ── MOBILE NAV ── */
  .mobile-menu {
    font-family: 'Sentient-Variable', serif;
    font-weight: 300;
    display: none;
    position: fixed;
    top: 56px; left: 0; right: 0;
    background: rgba(10,10,10,0.98);
    z-index: 99;
    padding: 1.5rem 2rem 2rem;
    border-bottom: 1px solid rgba(194,143,25,0.25);
  }
  .mobile-menu.open { display: block; }
  .mobile-menu a {
    display: block;
    padding: 0.5rem 0;
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    /*text-transform: uppercase;*/
    color: rgba(247, 243, 238, 0.75);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    transition: color 0.2s;
  }
  .mobile-menu a:hover { color: var(--dore); }

  /* ── SECTIONS ── */
  section {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
  }

  .label, .anniv-tag, .objectifs-tag, .cible-tag, .notions-tag, .concept-tag, .systeme-tag {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.2rem, 1.055rem + 0.727vw, 1.6rem);
    font-weight: 300;
    letter-spacing: 0.03em;
    color: var(--gris);
    margin-bottom: 3rem;
    text-align: center;
  }

  /* ── ENTÊTE ── */
  #entete {
    background: var(--noir100);
    align-items: center;
    justify-content: flex-end;
    padding-bottom: 35vh;
  }

  .entete-noms .desktop {
    display: flex;
    gap: 3rem;
    margin-bottom: 7rem;
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(0.875rem, 0.72rem + 0.773vw, 1.3rem);
    color: var(--gris);
    text-align: center;
  }
  .entete-noms .mobile{ display: none; }

  .entete-noms span {
    padding: 0px 10px 0px 10px;
  }

  .entete-titre, .concept-titre {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(3.2rem, 1.636rem + 7.818vw, 7.5rem);
    font-weight: 400;
    line-height: 0.88;
    letter-spacing: -0.075em;
    text-align: center;
  }

  .entete-titre .ligne1, .concept-titre .ligne1 { color: var(--blanc); display: block; }
  .entete-titre .ligne2, .concept-titre .ligne2 {
    font-family: 'Sentient-VariableItalic', serif;
    /*background: var(--grad);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;*/
  }

  .entete-scroll {
    position: absolute;
    bottom: 8rem;
    right: 8vw;
    display: flex;
    align-items: center;
    gap: 0.8rem;
    font-size: 0.55rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--gris);
    cursor: pointer;
    text-decoration: none;
  }
  .entete-scroll::after {
    content: '';
    display: block;
    width: 1px;
    height: 40px;
    background: linear-gradient(to bottom, var(--gris), transparent);
    animation: scrollLine 1.6s ease-in-out infinite;
  }
  @keyframes scrollLine {
    0%,100% { opacity: 1; transform: scaleY(1); }
    50% { opacity: 0.3; transform: scaleY(0.5); }
  }

  /* ── INTENTION ── */
  #intention {
    background: var(--noir90);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .intention-text {
    max-width: 740px;
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.1rem, 0.936rem + 0.818vw, 1.55rem);
    font-weight: 300;
    line-height: 1.35;
    color: var(--blanc);
    text-align: center;
  }

  /* ── SOMMAIRE ── */
  #sommaire {
    width: 70vw;
    margin: 0 auto;
    background: var(--noir100);
  }

  .sommaire-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 50px;
    margin-top: 2rem;
  }
  .sommaire-grid a { text-decoration: none; }

  .sommaire-card {
    font-family: 'Sentient-Variable', serif;
    font-weight: 400;
    /*background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);*/
    padding: 2.5rem 2rem;
    transition: background 0.3s, border-color 0.3s;
    text-align: center;
  }

  .sommaire-card:hover {
    background: rgba(232, 22, 92, 0.3);
    border-color: rgba(240,134,169,0.2);
  }

  .sommaire-num {
    font-size: clamp(4rem, 2.909rem + 5.455vw, 7rem);
    font-weight: 400;
    color: var(--gris);
    line-height: 1;
    margin-bottom: 1rem;
  }

  .sommaire-titre {
    font-size: clamp(1.2rem, 0.909rem + 1.455vw, 2rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 0.5rem;
  }

  .sommaire-sub {
    font-size: 0.62rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gris);
  }

  /* ── ANNIVERSAIRE ── */
  #anniversaire {
    background: var(--noir90);
    text-align: center;
    align-items: center;
  }

  .anniv-list {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.8rem, 1.364rem + 2.182vw, 3rem);
    font-weight: 350;
    color: var(--blanc);
    list-style: none;
  }

  .anniv-list li {
    padding: 0.6rem 0;
    /*border-bottom: 1px solid rgba(255,255,255,0.08);
    transition: color 0.25s;
    cursor: default;*/
  }
  /*.anniv-list li:hover { color: var(--rose); }
  .anniv-list li:last-child { border-bottom: none; }*/

  /* ── OBJECTIFS ── */
  #objectifs {
    background: var(--noir100);
    text-align: center;
    align-items: center;
  }

  .objectifs-list {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.8rem, 1.218rem + 2.909vw, 3.4rem);
    font-weight: 350;
    color: var(--blanc);
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10rem;
  }

  .objectifs-list li {
    padding: 0.4rem 0;
    /*border-bottom: 1px solid rgba(255,255,255,0.08);
    transition: color 0.25s;
    cursor: default;*/
  }

  /* ── CIBLE ── */
  #cible {
    background: var(--noir90);
    text-align: center;
    align-items: center;
  }

  .cible-list {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.8rem, 1.364rem + 2.182vw, 3rem);
    font-weight: 350;
    color: var(--blanc);
    list-style: none;
  }

  .cible-list li {
    padding: 0.6rem 0;
    /*border-bottom: 1px solid rgba(255,255,255,0.08);
    transition: color 0.25s;
    cursor: default;*/
  }

  /* ── NOTIONS ── */
  #notions {
    background: var(--noir100);
    text-align: center;
    align-items: center;
  }

  .notions-list {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.8rem, 1.364rem + 2.182vw, 3rem);
    font-weight: 350;
    line-height: 1em;
    color: var(--blanc);
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
  }

  .notions-list li {
    padding: 0.6rem 0;
    /*border-bottom: 1px solid rgba(255,255,255,0.08);
    transition: color 0.25s;
    cursor: default;*/
  }

  /* ── CONCEPT CENTRAL ── */
  #concept {
    background-color: var(--noir90);
    align-items: center;
    text-align: center;
    padding-top: 4rem;
  }
  #concept2 { height: 80px;}

  .concept-inner {
    position: relative;
    display: inline-block;
  }

  .concept-label {
    font-size: 0.6rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gris);
    margin-bottom: 1.5rem;
  }

  .concept-title {
    font-family: 'Sentient-Variable', serif;
    font-weight: 900;
    font-size: clamp(3.6rem, 1.636rem + 9.818vw, 9rem);
    line-height: 0.9;
    text-transform: uppercase;
    letter-spacing: -0.02em;
  }

  .concept-title .c1 { color: var(--blanc); display: block; }
  .concept-title .c2 {
    font-style: italic;
    display: block;
    background: var(--grad);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .concept-pills {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 3.5rem;
    flex-wrap: wrap;
  }

  .concept-pills span {
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    border: 1px solid rgba(194,143,25,0.5);
    color: var(--dore);
    padding: 0.5rem 1.2rem;
  }

  img { max-width: 100%; }

  /* ── TRIPLE OBJECTIF ── */
  #triple {
    width: 60vw;
    background: var(--noir90);
    text-align: center;
    align-items: center;
  }

  .triple-tag {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.2rem, 1.055rem + 0.727vw, 1.6rem);
    font-weight: 300;
    letter-spacing: 0.03em;
    color: var(--gris);
    margin-top: 6em;
    margin-bottom: 2rem;
  }

  .triple-tag2 {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.2rem, 1.055rem + 0.727vw, 1.6rem);
    font-weight: 300;
    letter-spacing: 0.03em;
    color: var(--gris);
    margin-top: 1em;
    margin-bottom: 2rem;
  }

  .triple-tag3 {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.2rem, 1.055rem + 0.727vw, 1.6rem);
    font-weight: 300;
    letter-spacing: 0.03em;
    color: var(--gris);
    margin-top: 3em;
    margin-bottom: 2rem;
  }

  .triple-list {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.8rem, 1.364rem + 2.182vw, 3rem);
    font-weight: 350;
    line-height: 1em;
    color: var(--blanc);
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
  }

  .triple-list li {
    padding: 0.6rem 0;
    /*border-bottom: 1px solid rgba(255,255,255,0.08);
    transition: color 0.25s;
    cursor: default;*/
  }

  /* ── SYSTÈME GRAPHIQUE ── */
  #systeme {
    background: var(--noir90);
    padding-top: 4rem;
  }

  .systeme-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    margin-top: 3rem;
    margin: 0 14rem;
  }
  #systeme2 { height: 50px;}

  .systeme-card {
    max-width: 100%;
    /*border: 1px solid rgba(255,255,255,0.08);*/
    padding: 2rem 2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }

  .systeme-name {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.4rem, 1.536rem + -0.182vw, 1.5rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 0.5rem;
    margin: 0 auto;
  }

  .systeme-block h3 {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.4rem, 1.536rem + -0.182vw, 1.5rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 1.5rem;
    padding-bottom: 0.8rem;
    /*border-bottom: 1px solid rgba(255,255,255,0.1);*/
  }

  .supports-name {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.4rem, 1.536rem + -0.182vw, 1.5rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 0.5rem;
    margin: 0 auto;
  }

  .supports-block h3 {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.4rem, 1.536rem + -0.182vw, 1.5rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 1.5rem;
    padding-bottom: 0.8rem;
    /*border-bottom: 1px solid rgba(255,255,255,0.1);*/
  }

  .trichromie {
    width: 30vw;
    background: var(--noir90);
    text-align: center;
    margin: 0 auto;
    margin-bottom: 5em;
  }

  .typographie {
    width: 70vw;
    background: var(--noir90);
    /*border: 1px solid #565556;*/
    margin: 0 auto;
    margin-bottom: 5em;
  }

  .pastille {
    width: 40vw;
    background: var(--noir100);
    margin: 0 auto;
    margin-bottom: 1em;
  }

  .garamond-sentient {
    width: 40vw;
    background: var(--noir90);
    margin: 0 auto;
    margin-bottom: 5em;
  }

  .sentient-normal {
  font-family: 'Sentient-Variable', serif;
  font-size: clamp(1.3rem, 0.827rem + 2.364vw, 2.6rem);
  color: var(--rose);
  }

  .sentient-italic {
  font-family: 'Sentient-VariableItalic', serif;
  font-size: clamp(1.3rem, 0.827rem + 2.364vw, 2.6rem);
  color: var(--dore);
  }

  .tickets-mockup {
    width: 55vw;
    background: var(--noir100);
    margin: 0 auto;
    margin-bottom: 2em;
  }

  /* Couleurs */
  .colors-row {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 2rem;
    flex-wrap: wrap;
  }

  .color-echantillon {
    flex: 1;
    min-width: 120px;
  }

  .echantillon-box {
    width: 280px;
    height: 350px;
    margin-bottom: 0.8rem;
    margin: 0 auto;
  }
  .echantillon-rose { background: var(--rose); }
  .echantillon-dore { background: var(--dore); }
  .echantillon-grad { background: var(--grad); }

  .echantillon-name {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.4rem, 1.536rem + -0.182vw, 1.5rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 0.5rem;
  }
  .echantillon-detail {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(0.85rem, 0.759rem + 0.455vw, 1.1rem);
    font-weight: 200;
    letter-spacing: 0.1em;
    color: var(--gris);
    line-height: 1.3;
    padding: 0 80px 0 80px;
  }

  .echantillon-desc {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(0.85rem, 0.759rem + 0.455vw, 1.1rem);
    font-weight: 300;
    letter-spacing: 0.1em;
    color: var(--gris);
    line-height: 1.3;
    padding: 0 40px;
  }

  /* Typo */
  .typo-pair {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .typo-item {
    display: flex;
    align-items: baseline;
    gap: 1.5rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }

  .typo-sample {
    font-size: 3rem;
    line-height: 1;
    flex-shrink: 0;
  }
  .typo-sample.classic {
    font-family: 'Sentient-Variable', serif;
    color: rgba(255,255,255,0.3);
  }
  .typo-sample.modern {
    font-family: 'Sentient-Variable', serif;
    font-weight: 900;
    color: var(--blanc);
  }

  .typo-info {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(0.85rem, 0.759rem + 0.455vw, 1.1rem);
    font-weight: 300;
    letter-spacing: 0.1em;
    color: var(--gris);
    line-height: 1.3;
    padding: 0 40px;
    margin-top: 1rem;
    margin-bottom: 6em;
  }

  .supports-info {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(0.85rem, 0.759rem + 0.455vw, 1.1rem);
    font-weight: 300;
    letter-spacing: 0.05em;
    color: var(--gris);
    line-height: 1.3;
    padding: 0 20px;
    margin-top: 0.5em;
    margin-bottom: 6em;
    display: flex;
    justify-content: center;
    text-align: center;
  }
  .supports-info2 {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(0.85rem, 0.759rem + 0.455vw, 1.1rem);
    font-weight: 300;
    letter-spacing: 0.05em;
    color: var(--gris);
    line-height: 1.3;
    padding: 0 20px;
    margin-top: 6em;
    margin-bottom: 0.1em;
    display: flex;
    justify-content: center;
    text-align: center;
  }

  .typo-info small {
    font-size: 0.6rem;
    color: var(--gris);
    letter-spacing: 0.12em;
  }

  /* ── UNIVERS VISUELS ── */
  #univers {
    background: var(--noir100);
  }
  #univers2 { height: 90px;}

  .univers-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    margin-top: 3rem;
    margin: 0 14rem;
  }

  .univers-card {
    max-width: 100%;
    /*border: 1px solid rgba(255,255,255,0.08);*/
    padding: 2rem 2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }
  /*.univers-card:hover {
    border-color: var(--rose);
    transform: translateY(-4px);
  }*/

  /*.univers-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    margin-bottom: 1.5rem;
    line-height: 1;
  }*/

  .univers-name {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.4rem, 1.536rem + -0.182vw, 1.5rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 0.5rem;
  }

  .univers-desc {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(0.85rem, 0.759rem + 0.455vw, 1.1rem);
    font-weight: 300;
    letter-spacing: 0.1em;
    color: var(--gris);
    line-height: 1.3;
    padding: 0 10px 0 10px;
  }

  .tickets-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    justify-items: center;
    margin-top: 3rem;
    margin: 0 14rem;
  }

  .tickets-card {
    max-width: 100%;
    /*border: 1px solid rgba(255,255,255,0.08);*/
    padding: 2rem 0.5rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }

  .affiche-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    justify-items: center;

    margin-top: 3rem;
    margin: 0 14rem;
  }

  .affiche-card {
    max-width: 100%;
    /*border: 1px solid rgba(255,255,255,0.08);*/
    padding: 2rem 0.5rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }

  .affiche-name {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.4rem, 1.536rem + -0.182vw, 1.5rem);
    font-weight: 350;
    color: var(--blanc);
    margin-bottom: 0.5rem;
    display: flex;
    justify-content: center;
  }

  /* ── SUPPORTS ── */
  #supports {
    background: #0d0d0d;
  }
  #supports2 { height: 130px;}

  .supports-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 1rem;
    justify-items: center;
    align-items: center;
    margin-top: 3rem;
    margin: 0 14rem;
  }

  .supports-card {
    width: 300px;
    /*border: 1px solid rgba(255,255,255,0.08);*/
    margin: 0.2rem 0.2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }

  /*.supports-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    margin-bottom: 1.5rem;
    line-height: 1;
  }*/

  .supports-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    margin-top: 3rem;
  }

  .support-item {
    display: flex;
    align-items: flex-start;
    gap: 1.2rem;
    padding: 1.5rem;
    border: 1px solid rgba(255,255,255,0.07);
    transition: border-color 0.3s;
  }
  .support-item:hover { border-color: rgba(194,143,25,0.4); }

  .support-num {
    font-family: 'Sentient-Variable', serif;
    font-size: 2.5rem;
    font-weight: 900;
    color: rgba(194,143,25,0.2);
    line-height: 1;
    flex-shrink: 0;
    min-width: 2rem;
  }

  .support-info h4 {
    font-family: 'Sentient-Variable', serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--blanc);
    margin-bottom: 0.4rem;
  }

  .motifs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    justify-items: center;
    align-items: center;
    margin-top: 3rem;
    margin: 0 14rem;
  }
  .motifs-card {
    width: 250px;
    /*border: 1px solid rgba(255,255,255,0.08);*/
    margin: 0.2rem 0.2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }
  .motifs-up1 { position: relative; bottom: 3px;}
  .motifs-up2 { position: relative; bottom: 3px;}

  .motifs2-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: (2, 200px);
    gap: 1.5rem;
    justify-items: center;
    align-items: center;
    margin-top: 3rem;
    margin: 0 14rem;
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .motifs2-card {
    width: 260px;
    /*border: 1px solid rgba(255,255,255,0.08);*/
    margin: 0.2rem 0.2rem;
    text-align: center;
    transition: border-color 0.3s, transform 0.3s;
  }
  .motifs-up3 { position: relative; bottom: 3px;}
  .motifs-up4 { position: relative; bottom: 3px;}

  /* ── PASTILLES ── */
  #insitu {
    background: var(--noir100);
  }
  #insitu2 { height: 130px; }

  .insitu-intro {
    max-width: 520px;
    font-size: 0.75rem;
    color: rgba(245,240,232,0.55);
    line-height: 1.8;
    margin-bottom: 3rem;
    letter-spacing: 0.05em;
  }

  .insitu-showcase {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }

  .pastille-mock {
    aspect-ratio: 2.5/1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.2rem;
    position: relative;
    overflow: hidden;
  }
  .pastille-mock.rose { background: var(--rose); }
  .pastille-mock.dore { background: var(--dore); }

  .pastille-mock .p-num {
    font-family: 'Sentient-Variable', serif;
    font-weight: 900;
    font-size: 2.2rem;
    color: var(--noir100);
    line-height: 1;
  }
  .pastille-mock .p-num sup {
    font-size: 0.7rem;
    vertical-align: super;
  }
  .pastille-mock .p-ans {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--noir100);
    letter-spacing: 0.05em;
  }

  .pastille-mock .p-motif {
    width: 50px;
    height: 50px;
    opacity: 0.6;
  }

  .pastille-label {
    font-size: 0.58rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gris);
    margin-top: 0.6rem;
  }

  /* ── OBJECTIFS ── */
  #objectifs {
    background: #0d0d0d;
    text-align: center;
    align-items: center;
  }

  .objectifs-trio {
    display: flex;
    gap: 0.5rem;
    margin-top: 3rem;
    flex-wrap: wrap;
    justify-content: center;
  }

  .obj-pill {
    font-family: 'Sentient-Variable', serif;
    font-size: clamp(1.5rem, 1.136rem + 1.818vw, 2.5rem);
    font-weight: 700;
    color: var(--blanc);
    padding: 1rem 2rem;
    border: 1px solid rgba(255,255,255,0.1);
    transition: background 0.3s, color 0.3s, border-color 0.3s;
    cursor: default;
  }
  .obj-pill:hover {
    background: var(--rose);
    color: var(--noir100);
    border-color: var(--rose);
  }

  .objectifs-desc {
    margin-top: 2.5rem;
    font-size: 0.65rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gris);
    line-height: 2;
  }

  /* ── FOOTER ── */
  #footer {
    background: var(--noir100);
    align-items: center;
    justify-content: flex-end;
    padding-bottom: 35vh;
  }

  /* ── SCROLL REVEAL ── */
  .reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .reveal.visible {
    opacity: 1;
    transform: none;
  }

  /* ── VIDÉO ── */
  .video-grid {
    width: 50vw;
    display: grid;
    grid-template-columns: 1fr;
    margin: 0 auto;
    margin-top: 0.2rem;
    margin-bottom: 0.2rem;
  }

  .video-card-contruction {
    padding: 1.5rem 0.8rem;
    transition: background 0.3s, border-color 0.3s;
  }

  .video-wrap-contruction {
    width: 98vw;
    overflow: hidden;
    animation: fadeUp 0.7s cubic-bezier(0.16,1,0.3,1) both;
  }

  .video-wrap-affiche {
    width: 98vw;
    overflow: hidden;
    animation: fadeUp 0.7s cubic-bezier(0.16,1,0.3,1) both;
  }

  .video-card-affiche {
    padding: 1.5rem 0.8rem;
    transition: background 0.3s, border-color 0.3s;
    position: relative;
    left: 14.4%;
  }

  .video-wrap-pastille-mouvement {
    width: 98vw;
    overflow: hidden;
    animation: fadeUp 0.7s cubic-bezier(0.16,1,0.3,1) both;
  }

  .video-card-pastille-mouvement {
    padding: 1.5rem 0.8rem;
    transition: background 0.3s, border-color 0.3s;
    position: relative;
    left: 4.8%;
  }

  @keyframes fadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
  }

  .construction {
    width: 40%;
    display: block;
    aspect-ratio: 20 / 7.2;
    object-fit: cover;
    margin: 0 auto;
  }

  .affiche {
    width: 20%;
    display: block;
    aspect-ratio: 6 / 9;
    object-fit: cover;
  }

  .pastille-mouvement {
    width: 40%;
    display: block;
    aspect-ratio: 5.1 / 3.2;
    object-fit: cover;
  }



  /* ── RESPONSIVE ── */
  @media (max-width: 768px) {
    section { padding: 1em; }
    nav { padding: 0 1.2rem; }
    .nav-links { display: none; }
    .hamburger { display: flex; }
    #entete { padding-bottom: 48vh; width: 98vw; margin: 0 auto; }
    .entete-noms { gap: 0.5rem; flex-direction: column; align-items: center; padding-top: 5px; margin-bottom: 2rem; }
    .entete-noms .desktop { display: none; }
    .entete-noms .mobile{ display: flex; margin-bottom: 0.5rem; font-family: 'Sentient-Variable', serif; font-size: clamp(0.875rem, 0.757rem + 0.591vw, 1.2rem); color: var(--gris); text-align: center; line-height: 1; }
    .sommaire-grid { grid-template-columns: 1fr; margin-top: 0.4em; margin-bottom: 2rem; gap: 0.5rem; }
    #sommaire2 { height: 80px;}
    .sommaire-card { padding: 0.4rem 1rem; }
    .sommaire-num { margin-bottom: 0.1rem;}
    .sommaire-titre { margin-bottom: 0.1rem; }
    .anniv-list, .cible-list { position: relative; bottom: 80px; }
    .anniv-list li { padding: 0.3rem 0; }
    .objectifs-list, .notions-list, .triple-list { grid-template-columns: repeat(1 , 1fr); gap: 0.1rem; position: relative; bottom: 80px; }
    #triple { width: 100vw; }
    .label, .objectifs-tag, .cible-tag, .notions-tag, .concept-tag {  position: relative; bottom: 40px; }
    .anniv-tag { margin-top: 0.1rem; margin-bottom: 2rem; position: relative; bottom: 80px; }
    .systeme-tag { margin-bottom: 1.4rem; }
    .triple-tag { margin-top: 4.5rem; margin-bottom: 2rem; }
    #concept3 { height: 60px;}
    .univers-grid { grid-template-columns: 1fr; margin-top: 3rem; margin: 0 1rem; margin-bottom: 0.4rem; }
    #univers3 { height: 50px;}
    .univers-card { padding: 1rem 1rem; } 
    .univers-name { margin-bottom: 0.5rem; }
    .univers-desc { line-height: 1.4; padding: 0 15px; }
    .systeme-grid { grid-template-columns: 1fr; margin-top: 3rem; margin: 0 2rem; }
    #systeme3 { height: 130px;}
    .systeme-card { padding: 0.5rem 0rem; }
    .systeme-name { margin-bottom: 0.1rem; }
    .echantillon-box { width: 230px; height: 150px; margin-bottom: 0.4rem; }
    .echantillon-desc { line-height: 1.1; padding: 0 2px; }
    .trichromie { width: 80vw; margin-top: 2em; margin-bottom: 5em; }
    .typo-info { width: 96vw; line-height: 1.1; padding: 0 2px; margin-top: 0.1em; margin-bottom: 5em; }
    .typographie { width: 90vw; margin-top: 2em; margin-bottom: 2em; }
    .garamond-sentient { width: 80vw; margin-top: 2em; margin-bottom: 2em; }
    .pastille { width: 80vw; margin-bottom: 0em; }
    .tickets-grid { grid-template-columns: 1fr; margin-top: 3rem; margin: 0 2rem; }
    .tickets-card { width: 50vw; display: flex; justify-content: center; margin: 0 auto; padding: 0.3rem 0.5rem; text-align: center; }
    .tickets-mockup { width: 96vw; padding-right: 1.1rem; margin-bottom: 0.2em; }
    .supports-grid { grid-template-columns: 1fr; margin: 0 1rem; }
    .supports-card { width: 80%; margin: 0.3rem 0; }
    .supports-info { width: 96vw; line-height: 1.1; margin-top: 0.6em; margin-bottom: 3em; }
    .supports-list { grid-template-columns: 1fr; }
    #supports3 { height: 220px;}
    .supports-name { position: relative; bottom: 20px; }
    .triple-tag3 { margin-top: 4em; margin-bottom: 1.3rem; }
    .motifs-grid { grid-template-columns: 1fr; margin: 0 1rem; gap: 0rem; }
    .motifs-card { width: 80%; margin: 0rem 0.2rem; }
    .motifs-up1 { position: relative; top: 18px;}
    .motifs-up2 { position: relative; top: 36px;}
    .motifs2-grid { grid-template-columns: 1fr; row-gap: 1.2rem; margin: 0 1rem; padding-top: 7rem; padding-bottom: 0rem; }
    .motifs2-card { width: 80%; margin: 0.2rem 0.2rem; }
    .motifs-up3 { position: relative; bottom: 36px;}
    .motifs-up4 { position: relative; bottom: 110px;}
    .affiche-grid { grid-template-columns: 1fr; margin-top: 3rem; margin: 0 1.3rem; }
    .affiche-card { width: 80vw; display: flex; justify-content: center; margin: 0 auto; padding: 0.4rem 0.7rem; text-align: center; }
    .video-grid { width: 98%; display: grid; grid-template-columns: 1fr; margin: 0 auto; margin-top: 0.2rem; margin-bottom: 0.2rem; position: relative; right: 3.2em; }
    .video-card-affiche { padding: 0.5rem 0.8rem; }
    .video-card-pastille-mouvement { padding: 0.2rem 0.8rem; position: relative; left: 5.8%; }

    .construction { width: 50%; display: block; aspect-ratio: 20 / 7.2; object-fit: cover; position: relative; left: 3em; }
    .affiche { width: 80%; display: block; aspect-ratio: 6 / 9; object-fit: cover; position: relative; left: 0.35em; }
    .pastille-mouvement { width: 80%; display: block; aspect-ratio: 5.1 / 3.2; object-fit: cover; margin: 0 auto; }
    #insitu3 { height: 130px; }

    .insitu-showcase { grid-template-columns: 1fr; }
    .colors-row { flex-direction: column; }
  }

  /* motif SVG inline */
  .motif-arc {
    width: 100%;
    height: 100%;
  }
  