/* ============================
   ALEJO FACTO — styles.css
   Styles communs à toutes les pages
   ============================ */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap');

/* --- Variables couleurs communes --- */
:root {
  --gold: #d6c89d;
  --gold-hover: #8e711b;
  --font-mono: 'IBM Plex Mono', monospace;
}

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

/* --- Base body --- */
body {
  background: #000;
  color: #fff;
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* --- Liens --- */
a {
  color: inherit;
  text-decoration: none;
}

/* ============================
   TRANSITIONS DE PAGES
   ============================ */
@keyframes pageFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pageFadeOut {
  from { opacity: 1; }
  to   { opacity: 0; }
}

body {
  animation: pageFadeIn 0.35s ease forwards;
}

body.page-exit {
  animation: pageFadeOut 0.28s ease forwards;
  pointer-events: none;
}

/* ============================
   COMPOSANTS PARTAGÉS — PAGES INTERNES
   ============================ */

/* Logo harmonisé */
.page-logo {
  display: block;
  margin: 2rem auto 2.5rem;
  width: clamp(120px, 18vw, 200px);
  height: auto;
  opacity: 0.9;
  transition: transform 0.3s ease, filter 0.3s ease;
}

.page-logo:hover {
  transform: scale(1.08);
  filter: brightness(1.1);
}

/* Label de page (coin haut droit) */
.page-label {
  position: fixed;
  top: 38px;
  right: 38px;
  font-family: var(--font-mono);
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: rgba(255, 255, 255, 0.18);
  z-index: 10;
  user-select: none;
  pointer-events: none;
}

/* Navigation secondaire (bas de page) */
.page-nav {
  position: fixed;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  font-family: var(--font-mono);
  font-size: clamp(0.6rem, 0.75vw, 0.78rem);
  text-transform: uppercase;
  letter-spacing: 2px;
  white-space: nowrap;

  /* Pill shape */
  padding: 0.55rem 1.8rem;
  border-radius: 50px;

  /* Effet goutte d'eau — distorsion des couleurs + ultra-transparent */
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(3px) saturate(320%) hue-rotate(12deg) brightness(0.93) contrast(1.08);
  -webkit-backdrop-filter: blur(3px) saturate(320%) hue-rotate(12deg) brightness(0.93) contrast(1.08);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 4px 18px rgba(0, 0, 0, 0.16);
}

.page-nav a {
  color: rgba(255, 255, 255, 0.42);
  transition: color 0.3s ease, transform 0.3s ease;
}

.page-nav a:hover,
.page-nav a:focus {
  color: var(--gold);
  transform: scale(1.05);
  outline: none;
}

.page-nav a.active {
  color: var(--gold);
}

.page-nav .nav-divider {
  color: rgba(255, 255, 255, 0.18);
  user-select: none;
}

/* Footer partagé */
.page-footer {
  position: fixed;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.65rem;
  color: rgba(255, 255, 255, 0.12);
  letter-spacing: 1px;
  z-index: 20;
  text-align: center;
  white-space: nowrap;
  user-select: none;
  pointer-events: none;
}

/* ============================
   RESPONSIVE — COMPOSANTS PARTAGÉS
   ============================ */
@media (max-width: 600px) {
  .page-logo {
    width: clamp(100px, 35vw, 150px);
    margin: 1.5rem auto 2rem;
  }

  .page-label {
    top: 22px;
    right: 16px;
    font-size: 0.42rem;
  }

  .page-nav {
    gap: 1rem;
    font-size: 0.62rem;
    bottom: 36px;
    padding: 0.45rem 1.4rem;
  }

  .page-footer {
    font-size: 0.48rem;
    white-space: normal;
    width: 90%;
  }
}
