/* project1.css */
/* =========================================
   PROJECT 1 — styles spécifiques
   (harmonisé + legends overlay + hiérarchie images)
========================================= */

/* Base page */
.project-page{
    background: #101010;
    color: #f5f5f5;
  }
  
  /* =========================
     HERO
  ========================= */
  .p1-hero{
    position: relative;
    padding-top: 0;
    min-height: calc(100vh - 70px);
  }
  
  .p1-hero-inner{
    position: relative;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px 90px;
  }
  
  .p1-hero-index{
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 800;
    letter-spacing: -0.06em;
    font-size: clamp(7rem, 16vw, 15rem);
    line-height: 0.75;
    position: relative;
    z-index: 3;
    margin-top: 0;
    text-transform: uppercase;
  }
  
  .p1-hero-meta{
    position: absolute;
    top: 25px;
    left: 420px;
    right: 60px;
    display: grid;
    grid-template-columns: 1.1fr 1.3fr 0.7fr;
    gap: 60px;
    z-index: 4;
    mix-blend-mode: difference;
    text-transform: uppercase;
  }
  
  .p1-meta-title{
    font-size: 0.75rem;
    line-height: 1.2;
    letter-spacing: 0.12rem;
    font-weight: 400;
  }
  
  .p1-meta-sub{
    margin-top: 10px;
    font-size: 0.75rem;
    line-height: 1.25;
    letter-spacing: 0.12rem;
    font-weight: 300;
    opacity: 0.85;
  }
  
  .p1-hero-face{
    position: absolute;
    top: 110px;
    right: 0;
    width: min(56vw, 920px);
    height: auto;
    z-index: 2;
    pointer-events: none;
    user-select: none;
    mix-blend-mode: exclusion;
    filter: grayscale(1) contrast(1.35) brightness(1.1);
    opacity: 0.95;
  }
  
  .p1-hero-text{
    margin-top: 120px;
    max-width: 520px;
    position: relative;
    z-index: 4;
    mix-blend-mode: difference;
    text-transform: uppercase;
  }
  
  .p1-hero-text p{
    font-size: 0.75rem;
    line-height: 1.25;
    letter-spacing: 0.12rem;
    font-weight: 300;
    margin-bottom: 22px;
    opacity: 0.9;
  }
  
  .p1-hero-text strong{
    font-weight: 600;
    opacity: 1;
  }
  
  /* =========================
     FULL IMAGE
  ========================= */
  .p1-full{ width: 100%; overflow: hidden; }
  .p1-full-img{ display: block; width: 100%; height: auto; }
  
  .p1-blend-dodge{
    mix-blend-mode: color-dodge;
    opacity: 0.92;
    filter: grayscale(1) contrast(1.2);
  }
  
  /* =========================
     IMAGE + CAPTION (sans titre)
  ========================= */
  .p1-real{ padding: 140px 0 80px; }
  
  .p1-real-inner{
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
    display: grid;
    grid-template-columns: 1fr; /* ✅ plus de colonne titre */
    gap: 0;
    align-items: center;
  }
  
  .p1-real-figure{ margin: 0; position: relative; max-width: 980px; }
  
  .p1-real-figure img{
    width: 100%;
    display: block;
    filter: grayscale(1) contrast(1.15);
    mix-blend-mode: exclusion;
  }
  
  .p1-real-figure figcaption{
    margin-top: 16px;
    font-size: 0.75rem;
    letter-spacing: 0.12rem;
    text-transform: uppercase;
    opacity: 0.85;
    display: flex;
    gap: 12px;
    align-items: baseline;
    mix-blend-mode: difference;
  }
  
  .cap-num{ font-weight: 600; opacity: 1; }
  
  /* =========================
     PRODUCTION — sticky carousel
  ========================= */
  .p1-prod-scene{
    position: relative;
    height: 260vh;
    overflow: visible;
  }
  
  .p1-prod-scene .p1-prod-sticky{
    position: sticky;
    top: 70px;
    min-height: calc(100vh - 70px);
    overflow: visible;
    contain: none;
  }
  
  .p1-prod-topline{
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px 18px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 30px;
    mix-blend-mode: difference;
    text-transform: uppercase;
  }
  
  .p1-prod-kicker{
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 800;
    letter-spacing: -0.03em;
    font-size: 1.8rem;
  }
  
  .p1-prod-sub{
    font-size: 0.75rem;
    letter-spacing: 0.12rem;
    opacity: 0.85;
  }
  
  /* carousel */
  .p1-carousel{
    position: relative;
    width: 100%;
    height: calc(100vh - 70px - 60px);
    overflow: hidden;
    background: #101010;
  }
  
  .p1-carousel-track{
    height: 100%;
    display: flex;
    will-change: transform;
  }
  
  .p1-slide{
    width: 100vw;
    flex: 0 0 100vw;
    position: relative;
    height: 100%;
    background: #101010;
    isolation: isolate;
  }
  
  /* =========================
     MEDIA (IMAGES)
  ========================= */
  .p1-slide-media{
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .p1-slide-media img{
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    filter: grayscale(1) contrast(1.15);
    mix-blend-mode: exclusion;
  }
  
  /* =========================================
     SCALE PROGRESSIF PAR SLIDE (premium)
  ========================================= */
  
  /* slide 0 (hero) */
  .p1-slide[data-index="0"] .p1-slide-media img{
    max-width: min(82vw, 1200px);
    max-height: 88vh;
  }
  
  /* slide 1 */
  .p1-slide[data-index="1"] .p1-slide-media img{
    max-width: min(74vw, 980px);
    max-height: 78vh;
  }
  
  /* slide 2 */
  .p1-slide[data-index="2"] .p1-slide-media img{
    max-width: min(68vw, 900px);
    max-height: 72vh;
  }
  
  /* slide 3 */
  .p1-slide[data-index="3"] .p1-slide-media img{
    max-width: min(62vw, 820px);
    max-height: 68vh;
  }
  
  /* slide 4 */
  .p1-slide[data-index="4"] .p1-slide-media img{
    max-width: min(62vw, 820px);
    max-height: 68vh;
  }
  
  /* =========================
     LEGEND — CLEAN OVERLAY
  ========================= */
  .p1-slide-legend{
    position: absolute;
    right: calc(50% - 500px);
    top: 50%;
    transform: translateY(-50%);
  
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 12px;
    align-items: baseline;
  
    z-index: 10;
    pointer-events: none;
    text-transform: uppercase;
  
    background: none;
    border: none;
    backdrop-filter: none;
  
    mix-blend-mode: difference;
  }
  
  .p1-legend-left{
    font-size: 0.75rem;
    letter-spacing: 0.12rem;
    opacity: 1;
  }
  
  .p1-legend-right{ display: block; }
  
  .p1-legend-text{
    font-size: 0.75rem;
    letter-spacing: 0.12rem;
    line-height: 1.25;
    opacity: 0.9;
    max-width: 260px;
    text-align: left;
  }
  
  /* dots */
  .p1-dots{
    position: absolute;
    left: 50%;
    bottom: 26px;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 6;
    mix-blend-mode: difference;
    pointer-events: auto;
  }
  
  .p1-dots .dot{
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: rgba(245,245,245,0.55);
    transition: transform 220ms ease, opacity 220ms ease, background 220ms ease;
    cursor: pointer;
  }
  
  .p1-dots .dot.is-active{
    background: rgba(245,245,245,0.95);
    transform: scale(1.35);
  }
  
  /* =========================
     RESPONSIVE
  ========================= */
  @media (max-width: 1100px){
    .p1-hero-meta{
      position: relative;
      top: auto;
      left: auto;
      right: auto;
      margin-top: 24px;
      grid-template-columns: 1fr;
      gap: 18px;
    }
  
    .p1-hero-face{
      position: relative;
      top: auto;
      right: auto;
      width: 100%;
      margin-top: 24px;
    }
  
    .p1-hero-text{
      margin-top: 36px;
      max-width: 100%;
    }
  
    .p1-real-inner{
      grid-template-columns: 1fr;
    }
  
    .p1-slide-legend{
      right: 20px;
      top: auto;
      bottom: 20px;
      transform: none;
    }
  
    .p1-prod-topline{
      padding: 0 20px 12px;
    }
  
    /* Mobile : hiérarchie safe */
    .p1-slide[data-index="0"] .p1-slide-media img{
      max-width: min(90vw, 1200px);
      max-height: 80vh;
    }
    .p1-slide[data-index="1"] .p1-slide-media img{
      max-width: min(86vw, 980px);
      max-height: 74vh;
    }
    .p1-slide[data-index="2"] .p1-slide-media img{
      max-width: min(82vw, 900px);
      max-height: 70vh;
    }
    .p1-slide[data-index="3"] .p1-slide-media img,
    .p1-slide[data-index="4"] .p1-slide-media img{
      max-width: min(78vw, 820px);
      max-height: 66vh;
    }
  }
  
  /* reduce motion */
  @media (prefers-reduced-motion: reduce){
    .p1-dots{ display: none; }
    .p1-slide-media img{ mix-blend-mode: normal; }
    .p1-slide-legend{ mix-blend-mode: normal; }
  }
  
  /* =========================================
     FX PREMIUM (fade + micro-scale) — utile pour ton JS
  ========================================= */
  .p1-slide-media img,
  .p1-slide-legend{
    will-change: transform, opacity;
  }
  
  .p1-slide-media img{
    transform-origin: center center;
  }
  