* { box-sizing: border-box; padding: 0; margin: 0; }
    html { font-size: calc(5px + 0.4vw); }
    body { font-family: 'Playfair Display', serif; overflow-x: hidden; }
    a { text-decoration: none; }

    /* === SLIDER plein écran === */
    .slider {
      position: relative;
      width: 100%;
      height: 100vh;
      overflow: hidden;
    }
    .slider li {
      position: absolute;
      top: 0; left: 0;
      width: 100%; height: 100%;
      background-size: cover;
      background-repeat: no-repeat;
      background-position: 50% 50%;
      transition: clip .7s ease-in-out, z-index 0s .7s;
      clip: rect(0, 100vw, 100vh, 100vw);
      display: table;
    }
    .center-y {
      display: table-cell;
      vertical-align: middle;
      text-align: center;
      color: #fff;
    }
    h3 {
      font-size: 5rem;
      font-style: italic;
      text-shadow: 2px 2px 10px rgba(0,0,0,0.6);
    }
    h3 + a {
      font-size: 1.6rem;
      display: inline-block;
      color: #fff;
      margin-top: 2rem;
      text-shadow: 1px 1px 5px rgba(0,0,0,0.5);
    }
    h3, h3 + a {
      opacity: 0;
      transition: opacity .7s 0s, transform .5s .2s;
      transform: translate3d(0, 50%, 0);
    }
    li.current h3, li.current h3 + a {
      opacity: 1;
      transition-delay: 1s;
      transform: translate3d(0, 0, 0);
    }
    li.current {
      z-index: 1;
      clip: rect(0, 100vw, 100vh, 0);
    }
    li.prev {
      clip: rect(0, 0, 100vh, 0);
    }

    /* === Navigation (points) === */
    .slider nav {
      position: absolute;
      bottom: 5%;
      left: 0;
      right: 0;
      text-align: center;
      z-index: 10;
    }
    nav a {
      display: inline-block;
      border-radius: 50%;
      width: 1.2rem;
      height: 1.2rem;
      background: #fff;
      margin: 0 1rem;
      transition: transform .3s;
    }
    a.current_dot {
      transform: scale(1.4);
    }

    /* === Bloc texte au-dessus du slider === */
    .intro-text {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0,0,0,0.4); /* voile semi-transparent */
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      text-align: center;
      z-index: 20;
      padding: 2rem;
    }
    .intro-text span {
      color: #E8CA2B;
      font-size: 14px;
      font-weight: bold;
      letter-spacing: 2px;
      text-transform: uppercase;
      margin-bottom: 1rem;
    }
    .intro-text h1 {
      font-size: 6rem;
      margin-bottom: 2rem;
    }
    .intro-text p {
      font-size: 1.6rem;
      margin-bottom: 3rem;
      max-width: 600px;
    }

    @media screen and (max-width: 700px) {
      .intro-text h1 { font-size: 3.5rem; }
      .intro-text p { font-size: 1.3rem; }
      h3 { font-size: 3rem; }
    }