/* ════════════════════════════════════════════════════════════
   Style.layout.css — Structure et mise en page principale
   Reset, body, coin décoratifs, curseur, carte, footer
════════════════════════════════════════════════════════════ */

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

/* ── Body & HTML ── */
html, body {
  width: 100%;
  height: 100%;
  background: var(--bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-family: 'Crimson Text', serif;
  transition: background 0.4s ease;
}

/* ── Grille de fond ── */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    linear-gradient(var(--grid-color) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}

/* ── Halo central ── */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: radial-gradient(ellipse at 50% 40%, var(--glow-color) 0%, transparent 65%);
  pointer-events: none;
}

/* ── Coins décoratifs ── */
.corner {
  position: fixed;
  width: 62px;
  height: 61px;
  border-color: rgba(201,168,76,0.3);
  border-style: solid;
  transition: border-color 0.4s;
}
.c-tl { top: 20px;    left: 20px;  border-width: 2px 0 0 2px; width: 85px}
.c-tr { top: 20px;    right: 20px; border-width: 1.2px 1.2px 0 0; }
.c-bl { bottom: 20px; left: 20px;  border-width: 0 0 1.2px 1.2px; }
.c-br { bottom: 20px; right: 20px; border-width: 0 1.2px 1.2px 0; }

/* ── Curseur losange doré personnalisé ── */
* { cursor: none !important; }

#cursor {
  position: fixed;
  width: 10px;
  height: 10px;
  background: var(--gold);
  transform: rotate(45deg) translate(-50%, -50%);
  pointer-events: none;
  z-index: 9999;
  transition: transform 0.08s ease, background 0.3s;
  box-shadow: 0 0 8px rgba(201,168,76,0.7), 0 0 20px rgba(201,168,76,0.3);
}

/* ── Carte principale ── */
#card {
  position: relative;
  z-index: 10;
  background: var(--bg-card);
  border: 1px solid var(--border);
  width: 100%;
  max-width: 420px;
  padding: 48px 44px 40px;
  animation: fadeUp 0.9s cubic-bezier(0.16,1,0.3,1) both;
  transition: background 0.4s ease, border-color 0.4s ease;
}

/* ── Pied de page ── */
#footer {
  position: fixed;
  bottom: 24px;
  width: 100%;
  text-align: center;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

#footer-line {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 340px;
}

#footer-line-left {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,0.35));
}

#footer-line-right {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(201,168,76,0.35), transparent);
}

#footer p {
  font-family: 'Cinzel', serif;
  font-size: 10px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--gold-dim);
  opacity: 1;
  text-shadow: 0 0 12px rgba(201,168,76,0.25);
}

#footer p span {
  color: var(--gold-dim);
  opacity: 1;
}
