:root {
  --scene-h: 265vh;
  --content-max: 1100px;
  --bg: #0b1220;
}

* {
  box-sizing: border-box
}

html,
body {
  height: 100%
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  background: var(--bg);
  color: #e9edf3;
  line-height: 1.55;
}

@media (min-width: 480px) and (max-width: 890px) {
  body {
    width: 45%;
  }
}

@media (max-width: 479px) {
  body {
    width: 350%;
    justify-self: center;
  }
}

/* SECTION PARALLAXE */
.scene {
  position: relative;
  /* height: var(--scene-h); */
  overflow: visible;
  background: #09101b;
  isolation: isolate;
}

.layer {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.layer>img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center top;
  image-rendering: auto;
  filter: none;
}

/* Contenu par-dessus si besoin */
.hero-content {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 1.5rem;
  padding-top: clamp(2rem, 7vh, 7rem);
  text-align: center;
  pointer-events: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.logo {
  max-width: clamp(200px, 25vw, 300px);
  height: auto;
  filter: drop-shadow(0 8px 24px rgba(0, 0, 0, .6));
  margin: 0;
}

@media (min-width: 480px) and (max-width: 890px) {
    .logo {
        max-width: clamp(150px, 40vw, 250px);
    }
    }

.coming-soon {
  margin: -25px;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  font-weight: 600;
  letter-spacing: 0.5px;
  text-shadow: 0 16px 48px rgba(0, 0, 0, .55);
}

.subtitle {
  margin: 1rem;
  opacity: .9;
  max-width: 72ch;
  text-shadow: 0 16px 48px rgba(0, 0, 0, .55);
}

/* Sections de contenu pour scroller */
section.content {
  padding: 6rem 1.25rem;
  background: linear-gradient(#0b1220, #0f1a2c);
}

.content .wrap {
  max-width: var(--content-max);
  margin: 0 auto;
}

/* Accessibilité : si l'utilisateur préfère moins d'animations */
@media (prefers-reduced-motion: reduce) {
  .layer {
    transform: none !important;
  }
}

.scroll-down-button {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin: 0.25rem 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
}

.scroll-button {
    width: 25%;
    height: auto;
    object-fit: contain;
}

/* Petits écrans: compacter l'en-tête et le logo */
@media (max-width: 480px) {
  .hero-content { padding-top: clamp(1rem, 6vh, 3.5rem); gap: 1rem; }
  .logo { max-width: clamp(140px, 42vw, 280px); }
  .coming-soon { font-size: clamp(1.2rem, 4.5vw, 1.75rem); }
}

/* Écrans larges: aérer un peu plus */
@media (min-width: 1280px) {
  .hero-content { padding-top: clamp(3.5rem, 9vh, 9rem); }
  .coming-soon { font-size: clamp(1.75rem, 2.2vw, 2.75rem); }
}