/* ===========================================================================
   Crimzie · Register / Giveaway — DA hero (verre, espace, rouge)
   S'appuie sur legal.css (tokens, fond, header, footer, loader).
   =========================================================================== */

/* header : nav + bouton Panel (variante de .back-link) */
.site-header nav{display:flex;align-items:center;gap:clamp(14px,1.8vw,30px)}
.hnav a{font-family:var(--font-ui);font-size:.82rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:rgba(241,241,241,.7);text-decoration:none;
  transition:color .2s;white-space:nowrap}
.hnav a:hover{color:#fff}
.hnav a.is-active{color:#fff}
@media(max-width:720px){.hnav{display:none}}

main.reg{width:min(1140px,calc(100% - 48px));margin:0 auto;padding:clamp(30px,5vh,58px) 0 30px}

/* ---------- HERO ---------- */
.reg-hero{position:relative;text-align:center;padding:clamp(30px,6vh,68px) 0 clamp(28px,5vh,56px)}
.reg-eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--muted);font-size:.76rem;
  font-weight:800;letter-spacing:.3em;text-transform:uppercase;margin:0 0 18px}
.reg-eyebrow::before,.reg-eyebrow::after{content:"";width:26px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(241,241,241,.5),transparent)}
.reg-hero h1{margin:0 auto 16px;max-width:14ch;font-family:var(--font-display);
  font-size:clamp(2.7rem,6vw,5rem);font-weight:800;line-height:.94;
  text-transform:uppercase;letter-spacing:-.025em;color:#fff;text-wrap:balance;
  text-shadow:0 18px 60px rgba(0,0,0,.6)}
.reg-hero h1 .dot{color:var(--red)}
.reg-hero .lead{margin:0 auto;max-width:54ch;color:rgba(241,241,241,.82);
  font-size:clamp(1.08rem,1.5vw,1.32rem);font-weight:500;line-height:1.6}

.reg-cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:30px 0 0}
.btn-red,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding:0 28px;border-radius:var(--r-pill);text-decoration:none;
  font-family:var(--font-display);font-size:.84rem;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;position:relative;overflow:hidden;isolation:isolate;
  transition:transform .25s,box-shadow .25s,filter .25s,border-color .25s,background .25s,color .25s}
.btn-red{color:#fff;border:1px solid rgba(var(--red-soft),.7);
  background:linear-gradient(180deg,rgb(var(--red-soft)),#b51c10);
  box-shadow:0 14px 34px rgba(var(--red-soft),.32),inset 0 1px 0 rgba(255,255,255,.32)}
.btn-red:hover{transform:translateY(-2px);filter:brightness(1.07);
  box-shadow:0 0 44px rgba(var(--red-soft),.5),inset 0 1px 0 rgba(255,255,255,.4)}
.btn-red::after,.offer-sheen::after{content:"";position:absolute;top:0;bottom:0;left:-34%;width:34%;
  z-index:2;pointer-events:none;transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);opacity:0;transition:opacity .2s}
.btn-red:hover::after{opacity:1;animation:reg-sheen .85s cubic-bezier(.2,.7,.3,1)}
@keyframes reg-sheen{from{left:-34%}to{left:120%}}
.btn-ghost{color:var(--ink);border:1px solid var(--glass-brd);
  background:var(--glass-soft);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.btn-ghost:hover{color:#fff;border-color:rgba(255,255,255,.4);transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.btn-red::after{display:none}}

/* points clés */
.reg-points{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:34px auto 0;max-width:840px}
.reg-point{display:inline-flex;align-items:center;gap:12px;padding:12px 20px;border-radius:var(--r-pill);
  border:1px solid var(--glass-brd);background:var(--glass);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);box-shadow:0 12px 30px rgba(0,0,0,.35),inset 0 1px 0 var(--glass-hi)}
.reg-point .pn{font-family:var(--font-ui);font-size:.7rem;font-weight:800;letter-spacing:.14em;
  color:rgb(var(--red-soft))}
.reg-point span:last-child{font-family:var(--font-display);font-size:.92rem;font-weight:700;color:#fff;
  letter-spacing:.01em}

/* ---------- SECTION GÉNÉRIQUE ---------- */
.reg-section{margin-top:clamp(48px,8vh,96px)}
.sec-eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--muted);font-size:.7rem;
  font-weight:800;letter-spacing:.32em;text-transform:uppercase;margin:0 0 14px}
.sec-eyebrow::before{content:"";width:28px;height:1px;background:linear-gradient(90deg,var(--red),transparent)}
.reg-section h2{margin:0 0 12px;font-family:var(--font-display);font-size:clamp(2rem,4vw,3.2rem);
  font-weight:800;line-height:.96;text-transform:uppercase;letter-spacing:-.02em;color:#fff;text-wrap:balance}
.reg-section h2 i{font-style:normal;color:var(--red)}
.reg-section .sec-text{max-width:56ch;color:rgba(241,241,241,.74);font-size:1.04rem;
  font-weight:500;line-height:1.55}

/* ---------- FORMULAIRE + ASIDE ---------- */
.reg-form-wrap{display:grid;grid-template-columns:1.35fr .9fr;gap:clamp(20px,2.4vw,30px);
  align-items:start;margin-top:clamp(26px,4vw,40px)}
.reg-card{position:relative;padding:clamp(26px,3vw,40px);border:1px solid var(--glass-brd);
  border-radius:var(--r-lg);background:var(--glass);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow-glass);overflow:hidden}
.reg-card::before{content:"";position:absolute;inset:1px 1px auto 1px;height:110px;border-radius:inherit;
  pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.12),transparent)}
.reg-card>*{position:relative}

.field{display:grid;gap:9px;margin:0 0 18px}
.field label{font-family:var(--font-display);font-size:.78rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(241,241,241,.86)}
.field input[type=email]{width:100%;min-height:56px;padding:0 18px;border-radius:var(--r-md);
  border:1px solid var(--glass-brd);background:rgba(8,9,13,.55);color:#fff;font:inherit;font-size:1.04rem;
  transition:border-color .2s,box-shadow .2s,background .2s}
.field input[type=email]::placeholder{color:rgba(241,241,241,.34)}
.field input[type=email]:focus{outline:none;border-color:rgba(var(--red-soft),.6);
  background:rgba(8,9,13,.75);box-shadow:0 0 0 3px rgba(var(--red-soft),.18)}

.reg-check{display:flex;align-items:flex-start;gap:12px;margin:0 0 22px;cursor:pointer}
.reg-check input{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:22px;height:22px;margin:1px 0 0;
  border:1px solid var(--glass-brd);border-radius:6px;background:rgba(8,9,13,.6);cursor:pointer;
  display:grid;place-items:center;transition:border-color .2s,background .2s}
.reg-check input::after{content:"";width:10px;height:10px;border-radius:2px;transform:rotate(45deg) scale(0);
  background:rgb(var(--red-soft));box-shadow:0 0 10px rgba(var(--red-soft),.7);transition:transform .18s}
.reg-check input:checked{border-color:rgba(var(--red-soft),.7)}
.reg-check input:checked::after{transform:rotate(0) scale(1);border-radius:3px}
.reg-check span{color:rgba(241,241,241,.74);font-size:.92rem;font-weight:500;line-height:1.45}
.reg-form .btn-red{width:100%}
.reg-note{margin:16px 0 0;color:rgba(241,241,241,.5);font-size:.84rem;font-weight:500;line-height:1.5}
.form-error,.form-success{margin:-6px 0 16px;font-size:.84rem;font-weight:700;line-height:1.45}
.form-error{color:#ff7b83}
.form-success{margin:16px 0 0;padding:12px 14px;border:1px solid rgba(120,210,150,.42);border-radius:var(--r-md);
  color:#baf2c8;background:rgba(90,210,140,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}

/* aside */
.reg-aside{display:grid;gap:18px}
.winner-card{position:relative;padding:clamp(22px,2.4vw,30px);border-radius:var(--r-lg);overflow:hidden;
  border:1px solid rgba(var(--red-soft),.4);
  background:linear-gradient(155deg,rgba(var(--red-soft),.14),rgba(20,12,12,.5));
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  box-shadow:0 24px 60px rgba(0,0,0,.5),0 0 40px rgba(var(--red-soft),.14),inset 0 1px 0 var(--glass-hi)}
.winner-card .wk{display:inline-flex;align-items:center;gap:9px;font-size:.66rem;font-weight:800;
  letter-spacing:.22em;text-transform:uppercase;color:rgba(var(--red-soft),.95);margin:0 0 14px}
.winner-card .wk .dotpulse{width:8px;height:8px;border-radius:50%;background:var(--red);
  box-shadow:0 0 12px rgba(var(--red-soft),.9);animation:pulse 1.6s ease-in-out infinite}
.winner-card .wname{font-family:var(--font-display);font-size:clamp(2rem,3vw,2.6rem);font-weight:800;
  line-height:1;color:#fff;letter-spacing:.02em;margin:0 0 18px}
.winner-meta{display:flex;gap:26px;flex-wrap:wrap}
.winner-meta .wm-k{font-size:.64rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(241,241,241,.5);margin:0 0 4px}
.winner-meta .wm-v{font-family:var(--font-display);font-size:1.12rem;font-weight:800;color:#fff}

.why-card{padding:clamp(20px,2.2vw,26px);border-radius:var(--r-lg);
  border:1px solid var(--glass-brd);background:var(--glass-soft);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);box-shadow:0 18px 44px rgba(0,0,0,.4),inset 0 1px 0 var(--glass-hi)}
.why-card .wy-k{font-size:.66rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin:0 0 10px}
.why-card strong{display:block;font-family:var(--font-display);font-size:1.12rem;font-weight:700;color:#fff;
  line-height:1.2;margin:0 0 8px}
.why-card p{margin:0;color:rgba(241,241,241,.7);font-size:.92rem;font-weight:500;line-height:1.5}

/* ---------- ÉTAPES ---------- */
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,22px);
  margin-top:clamp(26px,4vw,40px)}
.step{position:relative;padding:clamp(24px,2.6vw,32px);border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--glass-brd);background:var(--glass);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow-glass);
  transition:transform .35s cubic-bezier(.16,.84,.24,1),border-color .3s,box-shadow .3s}
.step::before{content:"";position:absolute;inset:1px 1px auto 1px;height:46%;border-radius:inherit;
  pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.12),transparent)}
.step:hover{transform:translateY(-6px);border-color:rgba(var(--red-soft),.45);
  box-shadow:0 34px 74px rgba(0,0,0,.5),0 0 44px rgba(var(--red-soft),.14),inset 0 1px 0 var(--glass-hi)}
.step>*{position:relative}
.step .sn{font-family:var(--font-display);font-size:2.4rem;font-weight:800;line-height:1;
  color:rgba(255,255,255,.14);margin:0 0 16px}
.step h3{margin:0 0 8px;font-family:var(--font-display);font-size:1.28rem;font-weight:700;color:#fff;
  text-transform:uppercase;letter-spacing:.01em}
.step p{margin:0;color:rgba(241,241,241,.72);font-size:.96rem;font-weight:500;line-height:1.5}

/* ---------- COMMUNAUTÉ ---------- */
.comm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,20px);
  margin-top:clamp(26px,4vw,40px)}
.comm{--bc:120,135,255;position:relative;display:grid;gap:6px;padding:clamp(22px,2.4vw,28px);
  border-radius:var(--r-lg);text-decoration:none;overflow:hidden;
  border:1px solid var(--glass-brd);background:var(--glass);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow-glass);
  transition:transform .35s cubic-bezier(.16,.84,.24,1),border-color .3s,box-shadow .3s}
.comm::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:radial-gradient(90% 80% at 50% 0%,rgba(var(--bc),.2),transparent 62%);transition:opacity .3s}
.comm:hover{transform:translateY(-6px);border-color:rgba(var(--bc),.55);
  box-shadow:0 32px 70px rgba(0,0,0,.5),0 0 44px rgba(var(--bc),.2),inset 0 1px 0 var(--glass-hi)}
.comm:hover::after{opacity:1}
.comm>*{position:relative}
.comm .cn{font-family:var(--font-display);font-size:1.12rem;font-weight:800;color:#fff;
  letter-spacing:.04em;text-transform:uppercase}
.comm .cd{color:rgba(241,241,241,.66);font-size:.86rem;font-weight:600}
.comm .cgo{margin-top:6px;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(var(--bc),.95);display:inline-flex;align-items:center;gap:7px;transition:gap .25s}
.comm:hover .cgo{gap:11px}

/* ---------- confirmation ---------- */
.reg-modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px;
  background:radial-gradient(circle at 50% 45%,rgba(var(--red-soft),.22),transparent 34%),rgba(4,4,7,.72);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  opacity:0;transition:opacity .22s ease}
.reg-modal.is-open{opacity:1}
.reg-modal[hidden]{display:none}
.reg-modal-card{position:relative;width:min(460px,100%);padding:clamp(24px,4vw,34px);overflow:hidden;
  border-radius:var(--r-lg);border:1px solid rgba(var(--red-soft),.36);
  background:linear-gradient(145deg,rgba(24,24,28,.92),rgba(10,10,13,.9));
  box-shadow:0 34px 90px rgba(0,0,0,.65),0 0 70px rgba(var(--red-soft),.16),inset 0 1px 0 var(--glass-hi);
  transform:translateY(18px) scale(.96);transition:transform .28s cubic-bezier(.16,.84,.24,1)}
.reg-modal.is-open .reg-modal-card{transform:none}
.reg-modal-card::before{content:"";position:absolute;inset:-1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(var(--red-soft),.22),transparent);
  opacity:.75}
.reg-modal-card>*{position:relative}
.reg-modal-kicker{display:inline-flex;margin-bottom:12px;color:rgba(var(--red-soft),.96);
  font-size:.66rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase}
.reg-modal-card h2{margin:0 0 10px;font-family:var(--font-display);font-size:clamp(2rem,6vw,3rem);
  line-height:.95;text-transform:uppercase;color:#fff}
.reg-modal-card p{margin:0 0 22px;color:rgba(241,241,241,.72);font-size:.98rem;font-weight:600;line-height:1.55}

/* ---------- responsive ---------- */
@media(max-width:860px){
  .reg-form-wrap{grid-template-columns:1fr}
  .steps-grid{grid-template-columns:1fr}
  .comm-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  main.reg{width:calc(100% - 32px)}
  .reg-cta-row .btn-red,.reg-cta-row .btn-ghost{width:100%}
  .comm-grid{grid-template-columns:1fr}
}

/* ---------- révélations au scroll (réutilise reveal.js) ---------- */
@media (prefers-reduced-motion:no-preference){
  html.reveal-on .rv{opacity:0;transform:translateY(40px) scale(.96);filter:blur(6px);
    transition:opacity .7s cubic-bezier(.16,.84,.24,1),transform .85s cubic-bezier(.16,.84,.24,1),filter .65s ease;
    transition-delay:calc(var(--rvi,0) * 75ms)}
  html.reveal-on .rv.is-in{opacity:1;transform:none;filter:none}
}
