/* Pages de connexion Project Zero : nuit céleste, cristal suspendu, verre dépoli, argent poli.
   Reprise de la page « Connexion » de l'ancien club (pack « PAGE 01 » du 13/09/2026).
   La base habille toutes les pages publiques (accès, inscription, mot de passe) ;
   body.cx ajoute la mise en scène propre à /login (cristal, vidéo, champs à icône). */
@font-face{font-family:"Space Grotesk";src:url("/connexion/space-grotesk.woff2") format("woff2");font-weight:400 700;font-display:swap}
:root{--cx-fond:#080b10;--cx-surface:rgba(21,26,33,.82);--cx-bord:#424952;--cx-texte:#f1f3f6;--cx-second:#bbc3ce;--cx-focus:#b9d9ff;--cx-erreur:#ffa6aa;
  --cx-ui:"Space Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;background:var(--cx-fond)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  padding:16px clamp(20px,5vw,28px) calc(16px + env(safe-area-inset-bottom));color:var(--cx-texte);font-family:var(--cx-ui);
  background:linear-gradient(180deg,rgba(8,11,16,.72) 0%,rgba(8,11,16,.3) 30%,rgba(8,11,16,.6) 72%,rgba(8,11,16,.94) 100%),url("/connexion/fond-mobile.webp") center/cover fixed no-repeat,var(--cx-fond)}
@media (min-width:760px){body{background-image:linear-gradient(180deg,rgba(8,11,16,.72) 0%,rgba(8,11,16,.2) 30%,rgba(8,11,16,.5) 72%,rgba(8,11,16,.92) 100%),url("/connexion/fond-pc-1k.webp")}}
@media (min-width:760px) and (min-resolution:1.5dppx){body{background-image:linear-gradient(180deg,rgba(8,11,16,.72) 0%,rgba(8,11,16,.2) 30%,rgba(8,11,16,.5) 72%,rgba(8,11,16,.92) 100%),url("/connexion/fond-pc.webp")}}
main{position:relative;z-index:2;width:100%;max-width:440px;padding:30px 28px;border-radius:22px;border:1px solid rgba(255,255,255,.12);
  background:rgba(12,16,22,.62);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.brand{display:inline-block;color:var(--cx-second);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;text-decoration:none}
h1{margin:22px 0 10px;font-size:clamp(22px,6vw,28px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1.25}
p{line-height:1.6;color:var(--cx-second);font-size:14px}
a{color:var(--cx-texte);text-underline-offset:3px}
label{display:block;margin:16px 0 8px;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--cx-second)}
input,button{font:inherit;width:100%}
input{height:56px;padding:0 16px;border-radius:12px;background:var(--cx-surface);border:1px solid var(--cx-bord);color:var(--cx-texte);font-size:16px;letter-spacing:.04em;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:border-color .18s,box-shadow .18s}
input::placeholder{color:var(--cx-second);font-size:13px;letter-spacing:.16em;text-transform:uppercase}
input:focus-visible{outline:none;border-color:var(--cx-focus);box-shadow:0 0 0 3px rgba(185,217,255,.22)}
button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:56px;margin-top:22px;border:0;border-radius:12px;cursor:pointer;
  background:linear-gradient(180deg,#fff 0%,#e7eaef 52%,#cfd5dd 100%);color:#0b1017;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  box-shadow:0 12px 30px -16px rgba(214,232,255,.8);transition:transform .18s,box-shadow .18s}
button:hover{box-shadow:0 16px 34px -14px rgba(214,232,255,.95)}button:active{transform:scale(.99)}button:disabled{opacity:.6;cursor:progress}
button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.secondary{min-height:44px;margin-top:10px;background:none;box-shadow:none;border:1px solid var(--cx-bord);color:var(--cx-second);font-size:10.5px;font-weight:500;letter-spacing:.16em}
.secondary:hover{color:var(--cx-texte);border-color:var(--cx-second);box-shadow:none}
.help{font-size:12.5px;text-align:center}
#message{min-height:20px;margin:12px 0 0;font-size:11.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--cx-erreur);text-align:center}
#message:empty{margin:0;min-height:0}
:focus-visible{outline:2px solid var(--cx-focus);outline-offset:3px}
.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}

/* ——— /login : la mise en scène. Pas de carte, une colonne posée sur la nuit. ——— */
body.cx{justify-content:space-between;background:var(--cx-fond);overflow-x:clip}
.cx-fond{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  background:linear-gradient(180deg,rgba(8,11,16,.72) 0%,rgba(8,11,16,.25) 26%,rgba(8,11,16,.55) 72%,rgba(8,11,16,.92) 100%),url("/connexion/fond-mobile.webp") center/cover no-repeat,var(--cx-fond)}
@media (min-width:760px){.cx-fond{background-image:linear-gradient(180deg,rgba(8,11,16,.72) 0%,rgba(8,11,16,.2) 26%,rgba(8,11,16,.5) 72%,rgba(8,11,16,.92) 100%),url("/connexion/fond-pc-1k.webp")}}
@media (min-width:760px) and (min-resolution:1.5dppx){.cx-fond{background-image:linear-gradient(180deg,rgba(8,11,16,.72) 0%,rgba(8,11,16,.2) 26%,rgba(8,11,16,.5) 72%,rgba(8,11,16,.92) 100%),url("/connexion/fond-pc.webp")}}
.cx-fond::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(62% 46% at 50% 64%,rgba(8,11,16,.9) 0%,rgba(8,11,16,.55) 45%,rgba(8,11,16,0) 78%)}
.cx-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}.cx-video.prete{opacity:1}
.cx-brume{position:absolute;inset:auto 0 -6% 0;z-index:2;height:46%;background:radial-gradient(70% 100% at 50% 100%,rgba(185,217,255,.16),rgba(185,217,255,0) 70%);animation:cx-brume 26s ease-in-out infinite}
.cx-haut,.cx-bas{position:relative;z-index:2;flex:0 0 auto;text-align:center}
.cx-logo{display:block;width:clamp(126px,34vw,168px);height:auto}
body.cx main{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;max-width:none;padding:8px 0 10px;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.cx-cristal{margin:0 0 clamp(6px,1.2vh,14px);padding:15px 0;display:grid;place-items:center;pointer-events:none;animation:cx-flotte 6.5s ease-in-out infinite}
.cx-cristal img{display:block;width:auto;height:clamp(120px,calc(100svh - 520px),330px);max-width:80vw;object-fit:contain;filter:drop-shadow(0 0 40px rgba(185,217,255,.25));animation:cx-pivot 9s ease-in-out infinite}
body.cx h1{margin:0 0 6px;letter-spacing:.22em;text-align:center}
.cx-sous{margin:0 0 clamp(14px,2vh,20px);font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--cx-second);text-align:center}
body.cx form,body.cx #message,body.cx .help,body.cx .secondary{width:100%;max-width:420px}
body.cx form{display:flex;flex-direction:column;gap:12px}
.cx-champ{position:relative;display:flex;align-items:center;margin:0}
.cx-champ>svg{position:absolute;left:18px;z-index:2;width:19px;height:19px;fill:none;stroke:var(--cx-second);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.cx-champ input{position:relative;z-index:1;padding:0 56px 0 52px}
.cx-oeil{position:absolute;right:6px;z-index:2;width:44px;min-height:44px;height:44px;margin:0;padding:0;border-radius:10px;background:none;box-shadow:none;color:var(--cx-second)}
.cx-oeil:hover{color:var(--cx-texte);box-shadow:none}.cx-oeil[aria-pressed="true"] svg{stroke:var(--cx-focus)}
body.cx form>button[type=submit]{margin-top:4px}
.cx-rejoindre{margin-top:16px;padding:6px;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--cx-second);text-decoration:none}
.cx-rejoindre:hover{color:var(--cx-texte)}
body.cx .help{margin:6px 0 0;font-size:11.5px;opacity:.85}
body.cx .secondary{margin-top:6px;border-color:transparent}
.cx-bas nav{display:flex;justify-content:center;gap:22px}
.cx-bas a,.cx-copy{font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--cx-second);text-decoration:none}
.cx-bas a:hover{color:var(--cx-texte)}.cx-copy{margin:4px 0 0}
@keyframes cx-flotte{0%,100%{transform:translate3d(0,-13px,0)}50%{transform:translate3d(0,13px,0)}}
@keyframes cx-pivot{0%,100%{transform:scaleX(.93)}50%{transform:scaleX(1)}}
@keyframes cx-brume{0%,100%{transform:translate3d(-3%,0,0) scale(1.05);opacity:.85}50%{transform:translate3d(3%,-2%,0) scale(1.12);opacity:1}}
@media (min-width:760px){
  body.cx{padding:20px 28px calc(18px + env(safe-area-inset-bottom))}
  .cx-logo{width:156px}
  .cx-cristal img{height:clamp(170px,calc(100svh - 560px),390px);max-width:28vw}
  .cx-cristal{margin-bottom:clamp(20px,3vh,30px)}
  body.cx form,body.cx #message,body.cx .help,body.cx .secondary{width:400px}
}
/* Écran court ou clavier ouvert : on rogne le décor, jamais les champs. */
@media (max-height:700px){.cx-cristal img{height:clamp(130px,24vh,200px)}.cx-cristal{margin-bottom:10px}}
@media (max-height:560px){.cx-cristal{display:none}}
@media (max-width:400px){main{padding:24px 20px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Pages d'adhésion et d'abonnement (PR n° 10), dans le même habillage. */
a.button{display:flex;align-items:center;justify-content:center;min-height:56px;margin-top:14px;border-radius:12px;text-decoration:none;
  background:linear-gradient(180deg,#fff 0%,#e7eaef 52%,#cfd5dd 100%);color:#0b1017;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;box-shadow:0 12px 30px -16px rgba(214,232,255,.8)}
a.button+a.button{background:none;box-shadow:none;border:1px solid var(--cx-bord);color:var(--cx-texte)}
.price{font-size:32px;color:var(--cx-texte);font-weight:700;letter-spacing:.02em}.fine{font-size:12.5px}
button.danger{background:rgba(255,166,170,.12);color:var(--cx-erreur);box-shadow:none;border:1px solid rgba(255,166,170,.35)}
.cx-liens{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:14px 0 0;width:100%;max-width:420px}
.cx-liens a{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--cx-second);text-decoration:none}.cx-liens a:hover{color:var(--cx-texte)}

/* Page « nouveau mot de passe » (12/10/2026). */
.pz-reset h1{margin-bottom:6px}.pz-reset-intro{color:var(--cx-second);font-size:15px;line-height:1.5;margin:0 0 18px}
.pz-inactif{opacity:.5;pointer-events:none}.pz-reset-lien{margin-top:14px}
#message.pz-succes{color:#8fe0b0}
.pz-champ{position:relative;display:block}.pz-champ input{width:100%;padding-right:52px}
.pz-voir{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px!important;height:40px;min-height:0!important;margin:0!important;padding:0!important;display:grid;place-items:center;background:transparent!important;color:var(--cx-second)!important;border:0!important;border-radius:50%!important;box-shadow:none!important;cursor:pointer}
.pz-voir svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pz-voir .oeil-ferme,.pz-voir.visible .oeil-ouvert{display:none}.pz-voir.visible .oeil-ferme{display:block}
.pz-voir:hover,.pz-voir.visible{color:var(--cx-texte)!important}
.pz-conseil{margin:2px 0 16px;font-size:13px;line-height:1.45;color:var(--cx-second);text-align:left}
