:root{
  --bleu-navy:#0b1e5b;
  --bleu-navy-2:#0a1750;
  --accent:#ffd400;
  --texte:#f4f7ff;
  --texte-muet:#c9d6ff;
  --bordure:#2a3a9a;
  --carte:#0f1d53cc;
  --rayon:22px;
  --ombre:0 12px 30px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.04);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; color:var(--texte);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial;
  background:
    radial-gradient(1200px 600px at 80% -10%, #1e3a8a33 0%, transparent 60%),
    radial-gradient(900px 400px at -20% 20%, #22d3ee22 0%, transparent 65%),
    linear-gradient(180deg, #0a1338 0%, #050916 100%);
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}

:focus-visible{
  outline: 3px solid #7ec4ff;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce){
  *{transition:none!important; animation:none!important}
}

.conteneur-principal{
  max-width:1200px; margin:auto; padding:28px 20px 56px;
}

.en-tete{
  background:linear-gradient(180deg, var(--bleu-navy) 0%, var(--bleu-navy-2) 100%);
  border:2px solid #203079;
  border-radius:var(--rayon);
  box-shadow:var(--ombre);
  padding:18px 22px 26px;
  position:relative; overflow:hidden; isolation:isolate;
}
.en-tete::after{
  content:""; position:absolute; inset:auto -30% -35% -30%; height:80%;
  background: radial-gradient(closest-side, #ffffff0d, transparent 70%);
  filter: blur(40px); z-index:-1;
}

.barre-superieure{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.bloc-marque{display:flex; align-items:center; gap:14px}
.logo-cercle{
  width:52px; height:52px; display:grid; place-items:center; border-radius:50%;
  background:conic-gradient(from 120deg, #ffe082, #ffab00, #ffea00, #ffe082);
  color:#131313; font-weight:900; border:2px solid #ffffff33; box-shadow:0 6px 16px #0006;
}
.titre-site{
  font-family:Bangers,cursive; letter-spacing:.8px;
  font-size:52px; line-height:1; color:var(--accent);
  text-shadow:2px 2px 0 #0009, 0 0 16px #ffe97a55;
}

.menu-actions{display:flex; align-items:center; gap:10px}
.lien-secondaire{
  padding:10px 14px; border-radius:999px;
  background:#0b1b58aa; border:1px solid #5ea7ff33; color:#d6e3ff;
  font-weight:700; transition:.15s background ease, .15s transform ease;
}
.lien-secondaire:hover{ background:#12236a; transform:translateY(-1px) }

.bouton-primaire{
  cursor:pointer; border:0; border-radius:999px; font-weight:800; padding:12px 20px;
  background:linear-gradient(180deg,#ffffff,#eaeef9); color:#0b153f;
  box-shadow:0 8px 24px rgba(0,0,0,.35), 0 0 0 3px #00000022 inset;
  transition:.15s transform ease, .15s box-shadow ease;
}
.bouton-primaire:hover{ transform:translateY(-1px); box-shadow:0 10px 28px rgba(0,0,0,.42), 0 0 0 3px #00000022 inset }

.hero-contenu{ margin-top:12px }
.phrase-accroche{ font-size:18px; line-height:1.5; max-width:820px; margin:0 }
.groupe-cta{ display:flex; gap:10px; margin-top:12px }
.bouton-secondaire{
  padding:12px 18px; border-radius:999px; background:#0b1b58aa; color:#d6e3ff;
  border:1px solid #5ea7ff33; font-weight:800; transition:.15s transform ease, .15s background ease;
}
.bouton-secondaire:hover{ transform:translateY(-1px); background:#132772 }

.liste-attributs{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap }
.pastille{
  padding:8px 12px; border-radius:999px; font-weight:700; font-size:12px;
  border:1px solid #5ea7ff33; background:#0b1b58aa; color:#d6e3ff;
  display:flex; align-items:center; gap:8px;
}
.point{ width:9px; height:9px; border-radius:50% }
.point-attaque{ background:#ff5757 }
.point-agilite{ background:#61ffa6 }
.point-intelligence{ background:#7bd3ff }
.point-endurance{ background:#d2a6ff }

.carte-introduction{
  margin-top:22px; background:var(--carte);
  border:1px solid var(--bordure);
  border-radius:calc(var(--rayon) - 6px);
  padding:22px; box-shadow:var(--ombre);
}
.titre-section{ margin:0 0 8px 0; font-size:22px }

.grille-apercus{
  display:grid; grid-template-columns:repeat(12,1fr);
  gap:18px; margin-top:22px;
}
.carte-apercu{
  background:linear-gradient(180deg,#0b1860cc,#0b1655cc);
  border:1px solid var(--bordure);
  border-radius:18px; box-shadow:var(--ombre);
  overflow:hidden; position:relative;
  transition:transform .2s ease, box-shadow .2s ease;
}
.carte-apercu:hover{ transform:translateY(-2px); box-shadow:0 18px 40px rgba(0,0,0,.35) }
.carte-apercu::before{
  content:""; position:absolute; inset:0; border-radius:inherit;
  box-shadow:0 0 0 1px #7dd3fc33, 0 0 0 8px #7dd3fc0b inset; pointer-events:none;
}
.entete-carte{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px; border-bottom:1px solid #2a3a9a77; background:#0f1b5bcc;
}
.etiquette{
  font-weight:800; text-transform:uppercase; font-size:12px; color:#9fb3ff; letter-spacing:.3px;
}
.carte-apercu img{ width:100%; height:260px; object-fit:cover; background:#040816 }
.legende-carte{
  position:absolute; bottom:10px; right:12px;
  background:#0b1138d9; padding:6px 10px; border-radius:10px; border:1px solid #2b3aa3;
  font-size:12px; font-weight:700; color:#e7f0ffcc; backdrop-filter: blur(6px);
}

.carte-large{ grid-column:span 7 }
.carte-moyenne{ grid-column:span 5 }
.carte-pleine{ grid-column:1 / -1 }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.modale{
  border:0; border-radius:24px; max-width:520px; width:92%;
  padding:0;
  background:linear-gradient(180deg,#0f1c63 0%, #0b1548 100%);
  color:#eef3ff;
  box-shadow:
    0 24px 60px rgba(0,0,0,.45),
    0 0 0 1px rgba(125,211,252,.08) inset;
  backdrop-filter:saturate(1.15);
}
.modale::backdrop{ background:rgba(3,6,20,.68) }

.modale-contenu{ padding:26px 26px 24px; text-align:center }
.titre-modale{
  margin:0 0 16px; font-size:30px; line-height:1.15; font-weight:800;
  letter-spacing:.3px; text-shadow:0 1px 0 rgba(0,0,0,.2);
}

.champ{ display:flex; flex-direction:column; gap:8px; margin:12px 0 }
.champ input{
  width:100%; padding:14px 16px; font-size:16px;
  border-radius:14px; border:1px solid rgba(126,176,255,.35);
  background:linear-gradient(180deg,#0e1a55,#0b1548);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  transition:border-color .15s ease, box-shadow .15s ease, transform .02s ease;
}
.champ input::placeholder{ color:#cfe3ff; opacity:.9 }
.champ input:focus{
  outline:none; border-color:#7ec4ff;
  box-shadow:0 0 0 4px rgba(110,231,255,.18), inset 0 1px 0 rgba(255,255,255,.06);
}

.lien-oublie{
  display:inline-block; margin:8px 0 16px;
  font-size:13px; color:#dbe9ff; text-decoration:none; opacity:.9;
}
.lien-oublie:hover{ text-decoration:underline; opacity:1 }

.btn-pleine, .btn-contour{
  display:inline-block; width:240px; max-width:100%;
  padding:12px 18px; border-radius:999px;
  font-weight:900; letter-spacing:.5px; text-transform:uppercase;
  text-decoration:none; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}

.btn-pleine{
  background:linear-gradient(180deg,#ffffff,#e9efff); color:#0b153f; border:0;
  box-shadow:0 10px 26px rgba(0,0,0,.25);
}
.btn-pleine:hover{ transform:translateY(-1px); box-shadow:0 12px 30px rgba(0,0,0,.32) }
.btn-pleine:active{ transform:translateY(0) }

.btn-contour{
  border:1px solid rgba(126,176,255,.45);
  background:linear-gradient(180deg, rgba(22,36,112,.6), rgba(14,26,85,.6));
  color:#eaf2ff; box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.btn-contour:hover{
  background:linear-gradient(180deg, rgba(36,62,170,.75), rgba(18,34,112,.75));
}

.bloc-question{
  margin:6px 0 8px;
  font-size:16px; font-weight:700; color:#e6efff; opacity:.95;
}

.separateur-ou{
  margin:14px auto 12px; width:100%; height:12px; position:relative; opacity:.9;
}
.separateur-ou::before, .separateur-ou::after{
  content:""; position:absolute; top:50%; width:40%; height:1px;
  background:linear-gradient(90deg, transparent, #7ec4ff55);
}
.separateur-ou::before{ left:0; transform:translateY(-50%) }
.separateur-ou::after{ right:0; transform:translateY(-50%) rotate(180deg) }
.separateur-ou span{
  display:inline-block; padding:0 10px; font-weight:800; font-size:12px;
  color:#d9e6ff; background:transparent;
}

@media (max-width:980px){
  .titre-site{ font-size:42px }
  .carte-apercu img{ height:220px }
  .carte-large, .carte-moyenne{ grid-column:span 12 }
}
@media (max-width:560px){
  .conteneur-principal{ padding:18px 14px 40px }
  .titre-site{ font-size:36px }
  .carte-apercu img{ height:200px }
}

.pied-de-page{
  margin-top:28px;
  text-align:center;
  color:var(--texte-muet);
  font-size:13px;
  opacity:.9;
}
.pied-de-page a{
  color:var(--accent);
  text-decoration:none;
  font-weight:600;
}

@media (max-width: 480px){
  .conteneur-principal{ padding:18px 12px 36px; }
  .en-tete{ padding:14px 14px 18px; border-radius:18px; }
  .barre-superieure{
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px 8px;
  }
  .titre-site{
    font-size: 34px;
    letter-spacing: .5px;
    text-shadow: 1px 1px 0 #0009, 0 0 10px #ffe97a55;
  }
  .logo-cercle{ width:44px; height:44px; }
  .menu-actions{
    width: 100%;
    justify-content: space-between;
    gap: 8px;
  }
  .lien-secondaire,
  .bouton-primaire{
    padding: 10px 12px;
    font-size: 13px;
  }
  .hero-contenu{ margin-top: 6px; }
  .phrase-accroche{ font-size: 16px; }
  .groupe-cta{ gap: 8px; margin-top: 10px; }
  .bouton-secondaire,
  .groupe-cta .bouton-primaire{
    padding: 10px 14px;
    font-size: 13px;
  }
  .liste-attributs{ gap: 8px; margin-top: 10px; }
  .pastille{ padding: 6px 10px; font-size: 11px; }
  .point{ width: 8px; height: 8px; }
  .carte-introduction{
    margin-top: 14px;
    padding: 16px;
    border-radius: 14px;
  }
  .titre-section{ font-size: 20px; margin-bottom: 6px; }
  .grille-apercus{ gap: 12px; margin-top: 16px; }
  .carte-apercu{ border-radius: 14px; }
  .carte-apercu img{ height: 180px; }
  .entete-carte{ padding: 10px 12px; }
  .etiquette{ font-size: 11px; }
  .legende-carte{
    bottom: 8px; right: 10px;
    font-size: 11px; padding: 5px 8px; border-radius: 8px;
  }
  .pied-de-page{ margin-top: 22px; font-size: 12px; }
}

@media (max-width: 360px){
  .titre-site{ font-size: 30px; }
  .menu-actions{ gap: 6px; }
  .lien-secondaire, .bouton-primaire{ padding: 8px 10px; font-size: 12px; }
  .carte-apercu img{ height: 160px; }
}
