/* =========================
   Réglages généraux
   ========================= */

:root {
  --background: #09070d;
  --background-secondary: #120b19;
  --text-primary: #f7f3fb;
  --text-secondary: #c9becf;
  --accent: #9f55d9;
  --accent-light: #c98bf2;
  --accent-dark: #55206f;
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
}

html {
  background: var(--background);
}

body {
  min-height: 100vh;

  display: flex;
  flex-direction: column;

  overflow-x: hidden;

  color: var(--text-primary);

  background:
    radial-gradient(
      circle at 50% 20%,
      rgba(114, 49, 145, 0.17),
      transparent 34rem
    ),
    linear-gradient(
      145deg,
      var(--background) 0%,
      var(--background-secondary) 100%
    );

  font-family:
    Inter,
    Montserrat,
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    sans-serif;
}

/* =========================
   Page principale
   ========================= */

.landing-page {
  position: relative;
  isolation: isolate;

  flex: 1;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;

  padding: 40px 24px;

  overflow: hidden;
}

/* Bloc contenant le logo, le séparateur et le texte */

.hero {
  position: relative;
  z-index: 2;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  width: min(100%, 1000px);
  margin: 0 auto;

  text-align: center;

  animation: fade-in 1.2s ease-out both;
}

/* =========================
   Sélecteur de langue
   ========================= */

.language-switcher {
  position: absolute;
  top: 24px;
  right: 28px;
  left: auto;
  z-index: 10;

  display: flex;
  align-items: center;
  gap: 8px;

  font-size: 0.85rem;
  letter-spacing: 0.08em;
}

.language-switcher a {
  color: var(--text-secondary);
  text-decoration: none;

  transition:
    color 0.2s ease,
    text-shadow 0.2s ease;
}

.language-switcher a:hover,
.language-switcher a:focus-visible,
.language-switcher a.active {
  color: var(--accent-light);
  text-shadow: 0 0 12px rgba(201, 139, 242, 0.5);
}

.language-switcher span {
  color: rgba(201, 190, 207, 0.35);
}

/* =========================
   Logo
   ========================= */

.studio-logo {
  display: block;

  width: min(900px, 90vw);
  max-width: 100%;
  height: auto;

  margin: 0 auto 30px;

  object-fit: contain;

  filter:
    drop-shadow(0 0 20px rgba(159, 85, 217, 0.35))
    drop-shadow(0 0 60px rgba(159, 85, 217, 0.2));

  animation: logo-breathe 5s ease-in-out infinite;
}

/* =========================
   Titres éventuels
   ========================= */

h1 {
  margin: 0;

  font-size: clamp(2.2rem, 6vw, 4.8rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0.02em;
}

.tagline {
  margin: 14px 0 0;

  color: var(--accent-light);

  font-size: clamp(1rem, 2.5vw, 1.35rem);
  font-style: italic;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* =========================
   Séparateur
   ========================= */

.divider {
  flex-shrink: 0;

  width: 74px;
  height: 2px;

  margin: 0 auto 30px;

  background: linear-gradient(
    90deg,
    transparent,
    var(--accent-light),
    transparent
  );

  box-shadow: 0 0 18px rgba(201, 139, 242, 0.5);
}

/* =========================
   Texte principal
   ========================= */

.announcement {
  width: min(100%, 850px);
  margin: 0 auto;

  color: var(--text-secondary);

  font-size: clamp(1rem, 2.3vw, 1.2rem);
  line-height: 1.8;
  text-align: center;
}

.announcement p {
  width: 100%;
  margin: 0 auto 18px;

  text-align: center;
}

.announcement p:last-child {
  margin-bottom: 0;
}

.release-date {
  color: var(--text-primary);
  font-weight: 600;
}

/* =========================
   Lumières décoratives
   ========================= */

.background-glow {
  position: absolute;
  z-index: 1;

  width: 420px;
  height: 420px;

  border-radius: 50%;

  opacity: 0.2;
  filter: blur(90px);

  pointer-events: none;
}

.background-glow--left {
  top: 10%;
  left: -230px;

  background: var(--accent);
}

.background-glow--right {
  right: -240px;
  bottom: 0;

  background: var(--accent-dark);
}

/* =========================
   Pied de page
   ========================= */

.site-footer {
  position: relative;
  z-index: 2;

  flex-shrink: 0;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;

  width: 100%;
  min-height: 70px;

  padding: 18px 24px;

  color: rgba(201, 190, 207, 0.6);
  background: rgba(5, 4, 8, 0.28);

  font-size: 0.82rem;
  text-align: center;
}

.site-footer p {
  width: 100%;
  margin: 0;

  text-align: center;
}

.site-footer a {
  color: var(--text-secondary);
  text-decoration: none;

  transition:
    color 0.2s ease,
    text-shadow 0.2s ease;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--accent-light);
  text-shadow: 0 0 12px rgba(201, 139, 242, 0.45);
}

/* =========================
   Page des mentions légales
   ========================= */

.legal-page {
  min-height: 100vh;
}

.legal-content {
  flex: 1;

  width: min(calc(100% - 40px), 900px);
  margin: 0 auto;
  padding: 70px 0;

  color: var(--text-secondary);

  font-size: 1rem;
  line-height: 1.75;
}

.legal-content h1 {
  margin: 35px 0 45px;

  color: var(--text-primary);

  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.1;
}

.legal-content h2 {
  margin: 40px 0 14px;

  color: var(--accent-light);

  font-size: 1.3rem;
  line-height: 1.3;
}

.legal-content p {
  margin: 0 0 18px;
}

.legal-content a {
  color: var(--text-secondary);
  text-decoration: none;

  transition:
    color 0.2s ease,
    text-shadow 0.2s ease;
}

.legal-content a:hover,
.legal-content a:focus-visible {
  color: var(--accent-light);
  text-shadow: 0 0 12px rgba(201, 139, 242, 0.45);
}

.back-link {
  display: inline-block;

  font-size: 0.95rem;
}

/* =========================
   Animations
   ========================= */

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes logo-breathe {
  0%,
  100% {
    transform: scale(1);

    filter:
      drop-shadow(0 0 18px rgba(159, 85, 217, 0.25))
      drop-shadow(0 0 48px rgba(85, 32, 111, 0.2));
  }

  50% {
    transform: scale(1.025);

    filter:
      drop-shadow(0 0 24px rgba(159, 85, 217, 0.42))
      drop-shadow(0 0 58px rgba(85, 32, 111, 0.3));
  }
}

/* Respecte les préférences d’accessibilité */

@media (prefers-reduced-motion: reduce) {
  .hero,
  .studio-logo {
    animation: none;
  }
}

/* =========================
   Adaptation mobile
   ========================= */

@media (max-width: 600px) {
  .landing-page {
    padding: 60px 20px 30px;
  }

  .hero {
    width: 100%;
  }

  .studio-logo {
    width: 100%;
    max-width: 560px;
    margin-bottom: 24px;
  }

  .divider {
    margin-bottom: 26px;
  }

  .announcement {
    width: 100%;
    line-height: 1.65;
  }

  .site-footer {
    min-height: 60px;
    padding: 16px 20px;
  }

  .language-switcher {
    top: 16px;
    right: 18px;
    left: auto;
  }

  .legal-content {
    width: min(calc(100% - 32px), 900px);
    padding: 45px 0;
  }

  .legal-content h1 {
    margin: 28px 0 35px;
  }

  .legal-content h2 {
    margin-top: 32px;
  }
}