  :root{
    /* paper & ink */
    --paper:#FAF7FE;
    --paper-2:#F2EBFB;
    --ink:#1A0728;
    --ink-soft:rgba(26,7,40,.62);
    --ink-faint:rgba(26,7,40,.6); /* AA : .42 donnait 2.8:1 - remonté pour le petit texte */
    --line:rgba(26,7,40,.09);
    --line-2:rgba(26,7,40,.16);
    /* brand */
    --violet:#8900FF;
    --magenta:#F000B9;
    --magenta-ink:#C9009C; /* magenta assombri pour le PETIT texte sur blanc (AA ~4.6:1) */
    --soft:#AD80FF;
    --live:#FF005C;
    --live-ink:#CC004A; /* rouge assombri pour le petit texte sur fond clair (AA) */
    --grad:linear-gradient(135deg,#8B4DFF,#F000B9);
    --grad-warm:linear-gradient(120deg,#F000B9,#FF005C);
    /* fx */
    --sh-sm:0 1px 2px rgba(26,7,40,.04);
    --sh-card:0 1px 2px rgba(26,7,40,.05),0 14px 34px -16px rgba(26,7,40,.18);
    --sh-lift:0 22px 48px -24px rgba(26,7,40,.24),0 6px 16px -10px rgba(26,7,40,.12);
    --fz-body:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --fz-display:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  [hidden]{display:none!important}
  [x-cloak]{display:none!important}
  /* a11y : respecte la préférence de mouvement réduit */
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
    .reveal{opacity:1;transform:none}
    .lv-visual__glow{display:none} /* paint lourd (blur 46px) inutile sans mouvement */
  }
  html{scroll-behavior:smooth}
  body{
    font-family:var(--fz-body);
    background:var(--paper);
    color:var(--ink);
    line-height:1.5;
    overflow-x:hidden;
    position:relative;
  }
  /* grain overlay */
  body::after{
    content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.06;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  }
  a{color:inherit;text-decoration:none}
  :focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:4px}
  /* skip-link a11y : caché hors écran, révélé au focus clavier uniquement */
  .skip-link{position:absolute;left:12px;top:-60px;z-index:100000;background:var(--ink);color:#fff;padding:.7rem 1rem;border-radius:10px;font-weight:700;box-shadow:var(--sh-card);transition:top .2s ease}
  .skip-link:focus{top:12px}
  .container{max-width:1240px;margin:0 auto;padding:0 clamp(1.1rem,3vw,2.6rem)}
  .container--wide{max-width:1400px}
  /* ancres : décale la cible sous la nav sticky (sinon le titre passe dessous) */
  .hero,section[id]{scroll-margin-top:88px}

  ::selection{background:var(--magenta);color:#fff}

  /* ===== reveal ===== */
  .reveal{opacity:0;transform:translateY(14px);animation:rise .7s cubic-bezier(.22,.61,.36,1) forwards}
  @keyframes rise{to{opacity:1;transform:none}}
  /* Entrée en cascade des pages membre (scopée .acct, progressive enhancement :
     hors no-preference le contenu est visible d'emblée → aucun risque). */
  @keyframes riseIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  @media (prefers-reduced-motion: no-preference){
    .acct-head,.acct>section{animation:riseIn .6s cubic-bezier(.22,.61,.36,1) backwards}
    .acct>section:nth-of-type(1){animation-delay:.05s}
    .acct>section:nth-of-type(2){animation-delay:.12s}
    .acct>section:nth-of-type(3){animation-delay:.19s}
  }

  /* ===== NAV ===== */
  .nav{position:sticky;top:0;z-index:50;background:rgba(250,247,254,.78);backdrop-filter:blur(18px) saturate(1.2);border-bottom:1px solid var(--line)}
  .nav__inner{display:flex;align-items:center;gap:2rem;height:70px}
  .logo{font-family:'Quicksand',sans-serif;font-weight:700;font-size:1.7rem;letter-spacing:-.5px;display:flex;align-items:baseline;gap:.05rem;color:var(--ink)}
  .logo .pop{color:var(--live)}
  .logo small{font-family:var(--fz-body);font-size:.58rem;font-weight:700;color:var(--ink-faint);text-transform:uppercase;letter-spacing:1.4px;margin-left:.5rem}
  .nav__links{display:flex;gap:1.7rem;margin-left:1.4rem;font-size:.92rem;font-weight:600}
  .nav__links a{color:var(--ink-soft);position:relative;padding:.2rem 0;transition:color .2s}
  .nav__links a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--violet);transition:width .25s}
  .nav__links a:hover,.nav__links a.active{color:var(--ink)}
  .nav__links a.active::after,.nav__links a:hover::after{width:100%}
  .nav__right{margin-left:auto;display:flex;align-items:center;gap:.7rem}
  .nav__burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:0;background:transparent;color:var(--ink);cursor:pointer;border-radius:10px;margin-left:.2rem}
  .nav__burger:hover{background:rgba(137,0,255,.08)}
  /* état connecté (hydraté via le fragment htmx /partials/user-menu) */
  .nav-account{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);font-weight:700;font-size:.86rem;padding:.25rem .55rem .25rem .3rem;border-radius:100px;border:1px solid var(--line-2);background:#fff;box-shadow:var(--sh-sm);transition:border-color .2s}
  .nav-account:hover{border-color:var(--violet)}
  .nav-account__av{width:30px;height:30px;border-radius:50%;flex-shrink:0;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem;text-transform:uppercase}
  .nav-account__name{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hero__greet{display:flex;width:fit-content;align-items:center;gap:.4rem;font-weight:700;font-size:.95rem;color:var(--violet);margin-bottom:.7rem}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;cursor:pointer;font-family:inherit;font-weight:700;border-radius:100px;min-height:46px;padding:0 1.5rem;font-size:.94rem;transition:transform .16s,box-shadow .22s,background .2s;white-space:nowrap}
  .btn:hover{transform:translateY(-1px)}
  /* gradient bouton calé sur des stops AA avec texte blanc (violet #8900FF ~6:1,
     magenta-ink #C9009C ~4.6:1) - le token --grad décoratif reste inchangé. */
  .btn--grad{background:linear-gradient(135deg,#8900FF,#C9009C);color:#fff;box-shadow:0 8px 22px -12px rgba(137,0,255,.45)}
  .btn--grad:hover{box-shadow:0 12px 28px -12px rgba(137,0,255,.55)}
  .btn--ghost{background:#fff;color:var(--ink);border:1px solid var(--line-2);box-shadow:var(--sh-sm)}
  .btn--ghost:hover{border-color:var(--violet);color:var(--violet)}
  .btn--sm{min-height:40px;padding:0 1.1rem;font-size:.85rem}
  .btn--block{width:100%}

  /* ===== HERO ===== */
  /* Hero contraint à la hauteur du viewport (best practice caast.tv) : il occupe
     le 1er écran (sous la nav 70px), contenu centré verticalement. min-height →
     grandit si le contenu dépasse (pas de clipping). */
  .hero{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:1rem 0;min-height:calc(100vh - 70px);min-height:calc(100svh - 70px)}
  /* En flex-column, les marges auto du .container annulent le stretch (largeur =
     contenu) → on force 100% pour que max-width:1400 + margin auto recentrent. */
  .hero>.container{width:100%}
  /* Fond hero « Aurora » : mesh de halos doux (violet/magenta/rose) mêlés dans
     les coins → couleur + profondeur, light mode. Opacités ≤ 13% pour préserver
     la lisibilité du texte. CSS pur (zéro image, CSP-safe). */
  .hero__glow{position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:
      radial-gradient(680px 460px at 10% 6%,rgba(240,0,185,.10),transparent 60%),
      radial-gradient(780px 540px at 90% -8%,rgba(137,0,255,.13),transparent 62%),
      radial-gradient(640px 620px at 74% 108%,rgba(255,0,92,.07),transparent 60%),
      radial-gradient(520px 520px at 26% 96%,rgba(137,0,255,.06),transparent 60%)}
  .hero__grid{display:grid;grid-template-columns:1fr 340px;gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:0 clamp(2.5rem,7vw,9rem)}
  .eyebrow{display:inline-flex;align-items:center;gap:.55rem;background:#fff;border:1px solid var(--line-2);box-shadow:var(--sh-sm);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;color:var(--ink);padding:.42rem .85rem;border-radius:100px;margin-bottom:.85rem}
  .live-dot{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 0 rgba(255,0,92,.55);animation:pulse 1.8s infinite}
  @keyframes pulse{70%{box-shadow:0 0 0 11px rgba(255,0,92,0)}100%{box-shadow:0 0 0 0 rgba(255,0,92,0)}}
  .hero h1{font-family:var(--fz-display);font-weight:700;font-size:clamp(1.9rem,4vw,3.05rem);line-height:1.06;letter-spacing:-1px;margin-bottom:.7rem}
  .hero h1 em{font-style:italic;font-weight:700;background:var(--grad-warm);-webkit-background-clip:text;background-clip:text;color:transparent}
  .hero h1 .u{position:relative;white-space:nowrap}
  .hero h1 .u svg{position:absolute;left:0;bottom:-.12em;width:100%;height:.28em;overflow:visible}
  .hero p.lead{font-size:14px;line-height:1.6;color:var(--ink-soft);max-width:46ch;margin-bottom:1rem}

  .smsbox{background:#fff;border:1px solid var(--line-2);border-radius:20px;padding:.95rem 1rem;max-width:460px;box-shadow:var(--sh-card)}
  .smsbox__label{font-size:.92rem;font-weight:700;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}
  .sms-row{display:flex;gap:.55rem}
  .sms-input{flex:1;background:var(--paper-2);border:1px solid var(--line-2);border-radius:100px;padding:0 1.2rem;color:var(--ink);font-family:inherit;font-weight:600;font-size:16px;min-height:48px}
  .sms-input::placeholder{color:var(--ink-faint);font-weight:500}
  .sms-input:focus{outline:none;border-color:var(--violet);background:#fff}
  /* Bloc normal (pas flex) : en flex, texte/lien/point deviennent des items
     séparés par gap → espace avant le point et lien orphelin à la ligne. */
  .smsbox__hint{font-size:.74rem;color:var(--ink-faint);margin-top:.7rem;line-height:1.45}
  .smsbox__hint a{color:var(--violet);font-weight:600}
  /* RGPD : consentement explicite (case décochée par défaut) */
  .smsbox__consent{display:flex;align-items:flex-start;gap:.55rem;margin-top:.85rem;font-size:.8rem;line-height:1.4;color:var(--ink-soft);cursor:pointer}
  .smsbox__consent input{margin-top:.12rem;width:16px;height:16px;flex-shrink:0;accent-color:var(--violet)}
  /* SMS / Email toggle */
  .seg{display:inline-flex;background:var(--paper-2);border:1px solid var(--line-2);border-radius:100px;padding:3px;margin-bottom:.75rem;gap:2px}
  .seg button{border:none;background:transparent;font-family:inherit;font-weight:700;font-size:.82rem;color:var(--ink-soft);padding:.42rem .95rem;border-radius:100px;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:color .2s,background .2s,box-shadow .2s}
  .seg button.on{background:#fff;color:var(--ink);box-shadow:var(--sh-sm)}

  /* live player - vidéo seule, droit, coins arrondis */
  .stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:.9rem}
  .stage__halo{position:absolute;top:10px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(137,0,255,.5),transparent 70%);filter:blur(70px);opacity:.16;z-index:0}
  .player{position:relative;z-index:1;width:214px;height:424px;border-radius:24px;overflow:hidden;background:#1a0728;box-shadow:0 30px 60px -28px rgba(26,7,40,.45),0 12px 30px -16px rgba(26,7,40,.25)}
  .player video,.player img{width:100%;height:100%;object-fit:cover;display:block;border-radius:26px}
  .player-cta{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.7rem;width:214px}
  /* méta sous le player : badge d'état + marque + durée/date */
  /* Aligné sur la largeur du poster (214px) pour une colonne cohérente ; au-delà
     (logos larges), pastille + logo wrappent proprement, centrés. */
  .pc-meta{display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap;font-size:.84rem;font-weight:700;color:var(--ink);max-width:214px}
  .pc-meta .brand-name{font-weight:700;color:var(--ink)}
  .pc-tag{display:inline-flex;align-items:center;gap:.34rem;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;padding:.26rem .54rem;border-radius:100px;background:rgba(137,0,255,.1);color:var(--violet);border:1px solid rgba(137,0,255,.2)}
  .pc-tag--live{background:rgba(255,0,92,.1);color:var(--live-ink);border-color:rgba(255,0,92,.25)}
  .pc-tag--live .live-dot{width:7px;height:7px}
  .pc-tag--soon{background:rgba(26,7,40,.05);color:var(--ink-soft);border-color:var(--line-2)}
  /* 18px pour la lisibilité face à la pastille ; borné en largeur (object-fit)
     pour qu'un logo large ne déséquilibre pas la ligne ni ne dépasse la colonne. */
  .pc-brandlogo{height:18px;width:auto;max-width:120px;object-fit:contain;border-radius:4px;display:block}
  /* Pas de margin-bottom : l'espacement vertical est géré UNIQUEMENT par le gap
     de .player-cta (source unique) → rythme régulier avec ou sans lot. */
  .pc-prize{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--ink-soft);max-width:214px;text-align:center;line-height:1.3}
  .pc-prize b{color:var(--magenta-ink);font-weight:700}
  .pc-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;background:var(--ink);color:#fff;font-weight:700;font-size:.9rem;border-radius:100px;min-height:46px;box-shadow:0 12px 26px -14px rgba(26,7,40,.55);transition:transform .15s,box-shadow .2s}
  .pc-btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(26,7,40,.6)}
  .pc-btn--live{background:var(--grad-warm);box-shadow:0 12px 26px -14px rgba(255,0,92,.5)}
  .pc-btn--live:hover{box-shadow:0 18px 34px -14px rgba(255,0,92,.55)}


  /* ===== SECTION ===== */
  section{padding:clamp(2.6rem,5vw,4.2rem) 0}
  .sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.9rem;flex-wrap:wrap}
  .sec-head h2{font-family:var(--fz-display);font-weight:700;font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.7px;line-height:1.2;display:flex;align-items:center;gap:.6rem}
  .kicker{font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:1.6px;color:var(--violet);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}
  .kicker::before{content:"";width:24px;height:2px;background:var(--violet);border-radius:2px;opacity:.85}
  .sec-head p{color:var(--ink-soft);font-size:.95rem;margin-top:.45rem;max-width:54ch}
  .sec-link{color:var(--ink);font-weight:700;font-size:.92rem;display:inline-flex;align-items:center;gap:.4rem;border-bottom:2px solid var(--line-2);padding-bottom:.15rem;transition:.2s}
  .sec-link:hover{border-color:var(--violet);color:var(--violet)}

  /* ===== LIVE CARD 9/16 immersif (agenda) - visuel natif portrait, scroller ===== */
  .lc-rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(208px,23vw,244px);gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.4rem .2rem 1.2rem;margin:0 -.2rem;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
  .lc-rail::-webkit-scrollbar{height:7px}
  .lc-rail::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:100px}
  .lc-rail::-webkit-scrollbar-track{background:transparent}
  .lc{scroll-snap-align:start;position:relative;aspect-ratio:9/16;border-radius:22px;overflow:hidden;background-color:#2a0a45;background-image:var(--pg);background-size:cover;background-position:center;box-shadow:var(--sh-card);transition:transform .25s cubic-bezier(.22,.61,.36,1),box-shadow .25s;display:block}
  .lc:hover{transform:translateY(-4px);box-shadow:var(--sh-lift)}
  .lc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,0,31,.10),transparent 24%,transparent 42%,rgba(18,0,31,.9));pointer-events:none}
  .lc__top{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;z-index:2}
  .lc__brand{background:#fff;border-radius:9px;padding:.3rem .5rem;display:flex;align-items:center;box-shadow:0 6px 16px -8px rgba(0,0,0,.45)}
  .lc__brand img{height:16px;width:auto;display:block}
  .lc__brand span{font-weight:700;font-size:.7rem;color:var(--ink)}
  .lc__bottom{position:absolute;left:13px;right:13px;bottom:13px;z-index:2;display:flex;flex-direction:column;gap:.5rem;color:#fff}
  .lc__when{font-size:.72rem;font-weight:700;color:rgba(255,255,255,.85);display:inline-flex;align-items:center;gap:.35rem}
  .lc__sec{color:#fff;font-weight:700}
  .lc__t{font-family:var(--fz-display);font-weight:700;font-size:1.06rem;line-height:1.25;letter-spacing:-.3px;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .lc__prize{align-self:flex-start;max-width:100%;display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:700;color:#fff;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);border-radius:100px;padding:.34rem .65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lc__cta{margin-top:.1rem;display:flex;align-items:center;justify-content:center;gap:.4rem;background:#fff;color:var(--ink);font-weight:600;font-size:.83rem;border-radius:100px;min-height:40px;transition:transform .15s,box-shadow .2s}
  .lc__cta:hover{transform:translateY(-1px);box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
  /* grille (replays = parcours catalogue) */
  .lc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(186px,100%),1fr));gap:1.1rem}
  /* variante replay : badge + bouton lecture */
  .lc__badge{display:inline-flex;align-items:center;gap:.35rem;background:rgba(18,8,32,.5);backdrop-filter:blur(8px);color:#fff;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.3rem .55rem;border-radius:100px;border:1px solid rgba(255,255,255,.2)}
  .lc__badge i{width:6px;height:6px;border-radius:50%;background:var(--soft,#AD80FF)}
  /* ===== Carte « live potentiel » (.lc--soon) : logo héros sur ambiance ===== */
  /* Voile violet→magenta maison par-dessus l'image (--pg) ; sans image, le fond
     sombre de .lc + ce voile donnent une carte violette cohérente. */
  .lc--soon::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 75% at 50% 118%,rgba(240,0,185,.42),transparent 58%),linear-gradient(160deg,rgba(26,7,40,.70),rgba(58,10,94,.58) 50%,rgba(91,20,134,.50))}
  .lc__badge--soon{position:absolute;top:12px;left:12px;z-index:2}
  .lc__hero{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;padding:1rem;text-align:center}
  /* Pastille « lozenge » (paysage) : adaptée aux wordmarks larges (3:1 à 7:1)
     qui, dans un carré, rendaient minuscules. Le padding interne normalise la
     marge de respiration → poids visuel homogène quel que soit le ratio. */
  .lc__logo{position:relative;width:200px;max-width:82%;height:74px;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:center;padding:13px 18px;box-sizing:border-box;box-shadow:0 14px 30px -14px rgba(0,0,0,.55);overflow:hidden}
  .lc__logo img{width:100%;height:100%;object-fit:contain;display:block}
  /* Logo ~carré (app-icon/emblème : IPLN, Hill's) : pastille CARRÉE — sinon il
     flotte minuscule au centre du lozenge. Forme choisie auto selon le ratio. */
  .lc__logo--square{width:96px;max-width:46%;height:96px;border-radius:20px;padding:15px}
  /* Repli monogramme : redevient un carré centré (pas un lozenge à moitié vide). */
  .lc__logo--mono{width:84px;height:84px;max-width:none;border-radius:22px;padding:0;font-family:var(--fz-display);font-weight:800;font-size:2.4rem;color:var(--violet)}
  .lc__brandname{font-family:var(--fz-display);font-weight:700;font-size:1.16rem;letter-spacing:-.3px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.5)}
  .lc__soon-sub{font-weight:600;color:rgba(255,255,255,.8)}
  .lc__play{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);z-index:2;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.2);backdrop-filter:blur(8px);border:1.5px solid rgba(255,255,255,.6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;padding-left:3px;transition:transform .2s,background .2s}
  .lc--replay:hover .lc__play{transform:translate(-50%,-50%) scale(1.1);background:rgba(255,255,255,.32)}

  /* ===== LOTS DU MOIS ===== */
  .lots{background:linear-gradient(165deg,#FFFFFF,#FCF9FF);border:1px solid var(--line);border-radius:28px;padding:clamp(1.8rem,3.2vw,2.8rem);box-shadow:0 20px 50px -32px rgba(26,7,40,.22);display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.6rem,3.5vw,3.2rem)}
  .lots__left{display:flex;flex-direction:column}
  .lots h2{font-family:var(--fz-display);font-weight:700;font-size:clamp(1.8rem,3vw,2.2rem);letter-spacing:-.8px;line-height:1.2}
  .lots__sub{color:var(--ink-soft);font-size:.95rem;margin-top:.7rem;max-width:38ch}
  .lots__sub b{color:var(--ink)}
  .lots__hero{margin-top:1.3rem;position:relative;border-radius:20px;padding:1.05rem 1.2rem;background:linear-gradient(125deg,#12001F,#3a0a52);color:#fff;overflow:hidden;display:flex;align-items:center;gap:1rem;box-shadow:0 18px 40px -18px rgba(58,10,82,.6)}
  .lots__hero::after{content:"🏆";position:absolute;right:-8px;bottom:-16px;font-size:4.6rem;opacity:.12;pointer-events:none}
  .lots__hero .ic{width:54px;height:54px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:1.7rem;flex-shrink:0}
  .lots__hero .body{min-width:0}
  .lots__hero .lbl{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:#ffb3df}
  .lots__hero .nm{font-size:.92rem;font-weight:700;line-height:1.25;margin:.15rem 0}
  .lots__hero .vl{font-size:1.5rem;font-weight:700;letter-spacing:-.5px;line-height:1}
  .lots__hero .hero-cta{position:relative;z-index:1;margin-left:auto;flex-shrink:0;background:#fff;color:var(--ink);font-weight:700;font-size:.8rem;border-radius:100px;padding:.55rem .95rem;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;transition:transform .15s,box-shadow .2s}
  .lots__hero .hero-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(0,0,0,.5)}
  .lots__statrow{display:flex;gap:1.8rem;margin-top:auto;padding-top:1.4rem}
  .lots__stat .n{font-family:var(--fz-display);font-size:1.7rem;font-weight:700;letter-spacing:-.7px;line-height:1;font-variant-numeric:tabular-nums;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
  .lots__stat .x{font-size:.7rem;color:var(--ink-faint);font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-top:.3rem}
  .lots__right{display:flex;flex-direction:column;min-height:0}
  .lots__list-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.7rem}
  .lots__list-head .t{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--ink-faint)}
  .lots__count{display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;font-weight:600;color:var(--violet);background:rgba(137,0,255,.08);border:1px solid rgba(137,0,255,.18);border-radius:100px;padding:.22rem .6rem}
  .lots__list{display:flex;flex-direction:column;overflow-y:auto;max-height:336px;padding-right:.5rem;-webkit-mask-image:linear-gradient(#000 calc(100% - 26px),transparent);mask-image:linear-gradient(#000 calc(100% - 26px),transparent);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
  .lots__list::-webkit-scrollbar{width:6px}
  .lots__list::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:100px}
  .lots__list::-webkit-scrollbar-track{background:transparent}
  .lots__more{margin-top:.5rem;display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;color:var(--ink);align-self:flex-start;border-bottom:2px solid var(--line-2);padding-bottom:.1rem;transition:.2s}
  .lots__more:hover{color:var(--violet);border-color:var(--violet)}
  .lot-row{display:flex;align-items:center;gap:.85rem;padding:.78rem 0;border-bottom:1px solid var(--line)}
  .lot-row:first-child{padding-top:0}
  .lot-row:last-child{border-bottom:none}
  .lot-ic{width:44px;height:44px;border-radius:12px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
  .lot-meta{flex:1;min-width:0}
  .lot-nm{font-size:.88rem;font-weight:700;line-height:1.15}
  .lot-via{font-size:.74rem;color:var(--ink-faint);font-weight:600;margin-top:.1rem;display:flex;align-items:center;gap:.4rem}
  .lot-via::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--live);flex-shrink:0}
  .lot-val{font-size:1.1rem;font-weight:700;letter-spacing:-.4px;color:var(--ink);flex-shrink:0}
  .lot-val small{font-size:.78rem;color:var(--ink-faint)}
  .lot-cta{flex-shrink:0;display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:700;color:var(--violet);background:rgba(137,0,255,.07);border:1px solid rgba(137,0,255,.22);border-radius:100px;padding:.42rem .8rem;transition:.2s;white-space:nowrap}
  .lot-cta:hover{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 8px 20px -8px rgba(137,0,255,.5)}

  .datepill{background:rgba(255,255,255,.95);border-radius:13px;padding:.4rem .55rem;text-align:center;line-height:1;box-shadow:0 8px 20px -10px rgba(0,0,0,.4)}
  .datepill .d{font-family:var(--fz-display);font-weight:700;font-size:1.4rem;color:var(--ink);display:block;letter-spacing:-.7px}
  .datepill .mo{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--violet);margin-top:.15rem}





  /* ===== FOOTER ===== */
  footer{padding:2.6rem 0 3rem;margin-top:2.6rem;border-top:1px solid var(--line)}
  .foot{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;flex-wrap:wrap;color:var(--ink-soft);font-size:.86rem}
  .foot__links{display:flex;gap:1.4rem;flex-wrap:wrap;font-weight:600}
  .foot__links a:hover{color:var(--violet)}
  .foot__legal{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:1.2rem;padding-top:1.1rem;border-top:1px solid var(--line);font-size:.8rem}
  .foot__legal a{color:var(--ink-faint);font-weight:600}
  .foot__legal a:hover{color:var(--violet)}

  /* ===== Bannière de consentement cookies (RGPD) ===== */
  .cc-banner{position:fixed;left:0;right:0;bottom:0;z-index:900;background:#fff;border-top:1px solid var(--line-2);box-shadow:0 -6px 24px -14px rgba(26,7,40,.28)}
  .cc-banner__in{max-width:1100px;margin:0 auto;padding:1rem clamp(1.1rem,3vw,2rem) calc(1rem + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
  .cc-banner__txt{flex:1;min-width:240px;font-size:.85rem;line-height:1.5;color:var(--ink-soft);margin:0}
  .cc-banner__txt a{color:var(--violet);font-weight:600}
  .cc-banner__actions{display:flex;gap:.6rem;flex-shrink:0}
  /* Accepter / Refuser : même taille ET poids visuel (CNIL : refus aussi simple
     et visible que l'acceptation). Refuser = bouton plein (pas blanc « effacé »). */
  .cc-btn{min-width:120px}
  .cc-btn[data-cc="refuse"]{background:var(--paper-2);border-color:var(--line-2);color:var(--ink);font-weight:700}
  .cc-btn[data-cc="refuse"]:hover{border-color:var(--violet);color:var(--violet)}
  @media(max-width:560px){.cc-banner__actions{width:100%}.cc-btn{flex:1;min-width:0}}

  /* ===== BANDEAU LOGOS « Suivez les Lives… » (réplique caast.tv) ===== */
  .logos-section{padding:2.6rem 0;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .logos-section__label{text-align:center;font-size:.78rem;font-weight:600;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.12em;margin-bottom:1.6rem}
  .logos-marquee{overflow:hidden;position:relative;width:100%}
  .logos-track{display:flex;align-items:center;gap:4rem;animation:marquee 60s linear infinite;width:max-content}
  .logos-track:hover{animation-play-state:paused}
  @keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
  .logos-track__item{height:28px;width:120px;object-fit:contain;flex-shrink:0}
  @media(max-width:640px){.logos-track__item{height:22px;width:100px}.logos-track{gap:2.5rem}}

  /* ===== ESPACE MEMBRE "Mon Spot!" (réutilise .lc / .lc-rail / .lc-grid / .sec-head) ===== */
  /* Page perso (hub) : échelle plus CALME que la home marketing, rythme vertical
     constant. Tout scopé sous .acct pour ne pas toucher la home. */
  .acct-head{padding:clamp(2rem,4vw,2.8rem) 0 0}
  .acct-hi{font-family:var(--fz-display);font-weight:700;font-size:clamp(1.9rem,4vw,3.05rem);line-height:1.06;letter-spacing:-1px}      /* = h1 home */
  .acct-sub{color:var(--ink-soft);font-size:14px;line-height:1.6;margin-top:.55rem}
  .acct-settings{color:var(--violet);font-weight:700;text-decoration:none;white-space:nowrap;margin-left:.4rem}
  .acct-settings:hover{text-decoration:underline}
  .acct section{padding:clamp(1.9rem,3.4vw,2.7rem) 0 0}                  /* rythme constant entre blocs */
  .acct .sec-head{margin-bottom:1.25rem}
  .acct .sec-head h2{font-size:clamp(1.3rem,1.9vw,1.65rem);letter-spacing:-.4px}  /* échelle hub, ≪ greeting */
  .sec-head--sub{margin-top:1.9rem}
  /* chips marques */
  .chips,.verts{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
  .bchip{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid var(--line-2);border-radius:100px;padding:.45rem .85rem;font-weight:700;font-size:.86rem;box-shadow:var(--sh-sm);transition:border-color .2s,transform .15s}
  .bchip:hover{border-color:var(--violet);transform:translateY(-1px)}
  .bchip--add{border-style:dashed;color:var(--violet);background:transparent;box-shadow:none}
  .chips-note{color:var(--ink-faint);font-size:.82rem;margin-top:.6rem}
  /* chips univers */
  .vchip{display:inline-flex;align-items:center;gap:.4rem;border-radius:100px;padding:.5rem .9rem;font-weight:700;font-size:.86rem;border:1px solid var(--line-2);background:#fff;box-shadow:var(--sh-sm)}
  .vchip--on{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 8px 20px -10px rgba(137,0,255,.5)}
  .vchip--off{color:var(--ink-soft);border-style:dashed;background:transparent;box-shadow:none}
  .vchip .ck{font-size:.78rem}
  /* garde-fou anti-magasin-vide (scopé .acct pour ne pas globaliser un nom générique) */
  .acct .empty{background:linear-gradient(135deg,#fff,var(--paper-2));border:1px dashed var(--line-2);border-radius:22px;padding:2rem 1.4rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
  .acct .empty__ic{font-size:1.8rem}
  .acct .empty h3,.acct .empty h1{font-size:1.1rem;font-weight:700}
  .acct .empty p{font-size:.9rem;color:var(--ink-soft);max-width:46ch;line-height:1.55;margin-bottom:.6rem}
  /* page Mon compte / Réglages (cartes au design Spot!) */
  .acct-profile{display:flex;align-items:center;gap:1.1rem}
  .acct-avatar{width:60px;height:60px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.4rem;text-transform:uppercase;flex-shrink:0;box-shadow:0 10px 24px -12px rgba(137,0,255,.5)}
  .acct-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.1rem;align-items:start}
  .acct-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.3rem;box-shadow:var(--sh-card)}
  .acct-card h2{font-size:1rem;font-weight:700;letter-spacing:-.2px;margin-bottom:1rem}
  .acct-dl{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.1rem}
  .acct-dl>div{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem}
  .acct-dl dt{color:var(--ink-soft);font-weight:600}
  .acct-dl dd{font-weight:600}
  .acct-field{display:block;margin-bottom:.9rem}
  .acct-field span{display:block;font-size:.8rem;font-weight:700;color:var(--ink-soft);margin-bottom:.4rem}
  .acct-field input{width:100%;border:1px solid var(--line-2);border-radius:12px;padding:.6rem .8rem;font-family:inherit;font-size:.9rem;background:var(--paper);color:var(--ink)}
  .acct-conn{font-size:.9rem;color:var(--ink-soft)}
  .acct-navlist{display:flex;flex-direction:column;gap:.6rem}
  .acct-navlink{display:block;border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;transition:border-color .2s,transform .15s}
  .acct-navlink:hover{border-color:var(--violet);transform:translateY(-1px)}
  .acct-navlink b{display:block;font-size:.9rem;font-weight:700}
  .acct-navlink small{color:var(--ink-faint);font-size:.78rem}
  .acct-help{font-size:.85rem;color:var(--ink-soft);margin-bottom:.9rem}
  .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  /* préférences : matrice finalité × canal + toggles */
  .prefs-matrix{width:100%;border-collapse:collapse}
  .prefs-matrix th,.prefs-matrix td{padding:.75rem .5rem;border-bottom:1px solid var(--line);vertical-align:middle}
  .prefs-matrix td{text-align:center}
  .prefs-matrix thead th{font-size:.76rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px}
  .prefs-matrix thead th:first-child{text-align:left}
  .prefs-matrix tbody th{text-align:left}
  .prefs-matrix tbody th strong{display:block;font-size:.92rem;font-weight:700}
  .prefs-matrix__hint{display:block;font-size:.76rem;color:var(--ink-soft);margin-top:.15rem;font-weight:500}
  .prefs-toggle{display:inline-flex;cursor:pointer;position:relative}
  .prefs-toggle input{position:absolute;opacity:0;width:0;height:0}
  .prefs-toggle__track{width:42px;height:24px;border-radius:100px;background:var(--line-2);position:relative;transition:background .2s}
  .prefs-toggle__track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
  .prefs-toggle input:checked + .prefs-toggle__track{background:var(--violet)}
  .prefs-toggle input:checked + .prefs-toggle__track::after{transform:translateX(18px)}
  .prefs-toggle input:focus-visible + .prefs-toggle__track{outline:2px solid var(--violet);outline-offset:2px}
  .prefs-save{margin-top:1rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
  .prefs-save__auto{font-size:.78rem;color:var(--ink-soft);display:none}
  .js-auto .prefs-save button{display:none}
  .js-auto .prefs-save__auto{display:inline}
  /* parrainage */
  .ref-link{display:flex;gap:.5rem;align-items:center;background:var(--paper);border:1px solid var(--line-2);border-radius:12px;padding:.45rem .45rem .45rem .8rem;margin-bottom:.7rem}
  .ref-link__url{flex:1;min-width:0;font-size:.82rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,monospace}
  .ref-share{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
  .ref-sharebtn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:44px;border:1px solid var(--line-2);border-radius:100px;padding:.5rem 1rem;font-weight:700;font-size:.85rem;background:#fff;cursor:pointer;color:var(--ink);transition:border-color .2s,transform .15s}
  .ref-sharebtn:hover{border-color:var(--violet);transform:translateY(-1px)}
  .ref-stats{display:flex;gap:2rem}
  .ref-stats>div{display:flex;flex-direction:column}
  .ref-stats dt{font-size:.78rem;color:var(--ink-soft);font-weight:600}
  .ref-stats dd{font-family:var(--fz-display);font-size:1.7rem;font-weight:700;letter-spacing:-.5px}
  .ref-list{display:flex;flex-direction:column;gap:.5rem}
  .ref-list__item{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem;border-bottom:1px solid var(--line);padding-bottom:.5rem}
  .ref-list__code{font-family:ui-monospace,SFMono-Regular,monospace;font-weight:700}
  .ref-list__state{font-size:.78rem;color:var(--ink-soft);font-weight:600}
  .ref-list__state--ok{color:#16A34A}
  /* badge "en direct" sur les cartes */
  .lc__badge--on{background:var(--live-ink);border-color:transparent}
  .lc__badge--on i{background:#fff}
  /* annuaire des marques */
  .brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));gap:1rem}
  .brand-tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.3rem 1rem;box-shadow:var(--sh-sm);transition:border-color .2s,transform .15s,box-shadow .2s}
  .brand-tile:hover{border-color:var(--violet);transform:translateY(-3px);box-shadow:var(--sh-card)}
  .brand-tile__logo{height:44px;width:auto;max-width:96px;object-fit:contain}
  .brand-tile__mono{width:48px;height:48px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}
  .brand-tile__name{font-weight:700;font-size:.92rem}
  /* fiche marque */
  .brand-hero{display:flex;align-items:center;gap:1.1rem;margin-top:.3rem}
  .brand-hero__logo{height:60px;width:auto;max-width:130px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--line);padding:.4rem}
  .faq-list{display:flex;flex-direction:column;gap:.5rem}
  .faq-item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem}
  .faq-item dt{font-weight:700;font-size:.92rem;margin-bottom:.3rem}
  .faq-item dd{font-size:.86rem;color:var(--ink-soft);line-height:1.5}
  /* catalogue : filtres + pagination */
  .lv-filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1.6rem}
  .lv-filters__search{flex:1;min-width:200px;border:1px solid var(--line-2);border-radius:100px;padding:.6rem 1rem;font-family:inherit;font-size:.9rem;background:#fff}
  .lv-filters__select{border:1px solid var(--line-2);border-radius:100px;padding:.6rem 1rem;font-family:inherit;font-size:.9rem;background:#fff;cursor:pointer}
  .lv-pager{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:2rem}
  .lv-pager__pos{font-size:.86rem;color:var(--ink-soft);font-weight:600}
  /* page login + confirmation */
  .auth-card{max-width:420px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.6rem;box-shadow:var(--sh-card)}
  .auth-card__input{width:100%;border:1px solid var(--line-2);border-radius:100px;padding:.7rem 1rem;font-family:inherit;font-size:.95rem;background:var(--paper);margin-bottom:.7rem}
  .auth-card__hint{font-size:.78rem;color:var(--ink-faint);text-align:center;margin-top:.6rem}
  .auth-sep{display:flex;align-items:center;gap:.8rem;margin:1.1rem 0;color:var(--ink-faint);font-size:.8rem}
  .auth-sep::before,.auth-sep::after{content:"";flex:1;height:1px;background:var(--line-2)}
  .auth-oauth{display:flex;flex-direction:column;gap:.6rem}
  .auth-card__legal{font-size:.72rem;color:var(--ink-faint);text-align:center;margin-top:1rem;line-height:1.4}
  .auth-checklist{display:flex;flex-direction:column;gap:.6rem;list-style:none;padding:0;font-size:.88rem;color:var(--ink-soft);line-height:1.45}
  .auth-checklist li{padding-left:1.5rem;position:relative}
  .auth-checklist li::before{content:"✓";position:absolute;left:0;color:var(--violet);font-weight:800}
  .empty__actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-top:.3rem}
  /* onboarding (parcours 3 étapes) */
  .ob__wrap{max-width:680px}
  .ob__progress{display:flex;align-items:center;gap:.8rem;margin-bottom:1.4rem}
  .ob__bar{flex:1;height:6px;border-radius:100px;background:var(--line-2);overflow:hidden}
  .ob__bar i{display:block;height:100%;border-radius:100px;background:var(--grad);transition:width .4s}
  .ob__step{font-size:.78rem;color:var(--ink-soft);font-weight:700;white-space:nowrap}
  .ob__chips{border:0;padding:0;margin:1.3rem 0;display:flex;flex-wrap:wrap;gap:.6rem}
  .ob-chip{cursor:pointer}
  .ob-chip input{position:absolute;opacity:0;width:0;height:0}
  .ob-chip span{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;border:1.5px solid var(--line-2);border-radius:100px;padding:.5rem 1.05rem;font-weight:600;font-size:.92rem;background:#fff;transition:border-color .15s,background .15s,color .15s}
  .ob-chip input:checked + span{border-color:var(--violet);background:rgba(137,0,255,.08);color:var(--violet)}
  .ob-chip input:focus-visible + span{outline:2px solid var(--violet);outline-offset:2px}
  .ob__brands{list-style:none;padding:0;margin:1.3rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.8rem}
  .ob-brand{cursor:pointer}
  .ob-brand input{position:absolute;opacity:0;width:0;height:0}
  .ob-brand__card{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;border:1.5px solid var(--line);border-radius:14px;padding:1rem .8rem;background:#fff;transition:border-color .15s,background .15s}
  .ob-brand__card img{height:40px;width:auto;max-width:80px;object-fit:contain}
  .ob-brand__card strong{font-size:.86rem}
  .ob-brand input:checked + .ob-brand__card{border-color:var(--violet);background:rgba(137,0,255,.08)}
  .ob-brand input:focus-visible + .ob-brand__card{outline:2px solid var(--violet);outline-offset:2px}
  .ob__actions{display:flex;align-items:center;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}
  .ob__skip{color:var(--ink-soft);font-weight:600;font-size:.88rem;text-decoration:none}
  .ob__skip:hover{color:var(--violet)}
  /* fiche live */
  .lv-hero{padding:clamp(1.4rem,3.5vw,3.2rem) 0}
  /* Portrait-first : visuel 9:16 SEUL (aucune vidéo embarquée - cf. règle produit). */
  .lv-hero__grid{display:grid;grid-template-columns:minmax(0,clamp(290px,30vw,380px)) 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
  .lv-visual{position:relative;width:100%}
  /* halo ambiant : copie floutée du visuel, débordant doucement du cadre */
  .lv-visual__glow{position:absolute;inset:4% -4% -8%;z-index:0;background:var(--pg) center/cover no-repeat;filter:blur(46px) saturate(1.5);opacity:.5;transform:scale(1.04);border-radius:48px;pointer-events:none}
  .lv-visual__frame{position:relative;z-index:1;border-radius:24px;overflow:hidden;background:#0c0710;aspect-ratio:9/16;box-shadow:var(--sh-lift),0 0 0 1px rgba(255,255,255,.05) inset}
  .lv-media{width:100%;height:100%;object-fit:cover;display:block}
  /* Déclencheur du player Caast : couvre le visuel, pastille play centrée. */
  .lv-play{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .lv-play__ico{display:flex;align-items:center;justify-content:center;width:64px;height:64px;padding-left:.18em;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);font-size:1.5rem;box-shadow:0 14px 34px -12px rgba(0,0,0,.6);transition:transform .18s,background .2s}
  .lv-play:hover .lv-play__ico{transform:scale(1.08);background:#fff}
  .lv-play:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
  .lv-media--empty{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.32);font-size:3rem;background:var(--grad)}
  /* overlay d'état sur le visuel, pour les 3 états (above-fold mobile) */
  .lv-flag{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:.4rem;color:#fff;font-weight:700;font-size:.74rem;letter-spacing:.4px;padding:.34rem .68rem;border-radius:100px;box-shadow:0 8px 20px -8px rgba(0,0,0,.55)}
  .lv-flag--live{background:var(--live-ink)}
  .lv-flag--soon{background:var(--violet)}
  .lv-flag--replay{background:rgba(12,7,16,.78)}
  .lv-flag i{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
  .lv-info{min-width:0;max-width:480px}
  /* chip marque = pill 1 ligne (langage DS, radius 100px) : « Marque · ✓ Live officiel ».
     Lien vers la page marque → hover bordure violette (comme .nav-account), pas d'ombre/translation. */
  .lv-brand{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-weight:700;font-size:.9rem;color:var(--ink);text-decoration:none;margin-bottom:.7rem;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-sm);padding:.4rem .85rem;border-radius:100px;transition:border-color .2s}
  .lv-brand--logo{padding-left:.45rem} /* logo présent → on resserre à gauche (comme .nav-account) */
  .lv-brand:hover{border-color:var(--violet)}
  .lv-brand:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:100px}
  .lv-brand img{height:22px;width:22px;object-fit:contain;display:block;border-radius:5px}
  .lv-brand__txt{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.4rem;line-height:1.15;text-align:left}
  .lv-brand__official{font-size:.8rem;font-weight:700;color:var(--violet);letter-spacing:.2px}
  .lv-brand__official::before{content:"·";color:var(--ink-faint);margin-right:.3rem;font-weight:700}
  .lv-badge{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.5px;padding:.3rem .7rem;border-radius:100px;margin-bottom:.7rem;width:fit-content}
  .lv-badge--live{background:var(--live-ink);color:#fff}
  .lv-badge--upcoming{background:rgba(137,0,255,.1);color:var(--violet)}
  .lv-badge--replay{background:var(--line);color:var(--ink-soft)}
  .lv-badge i{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
  .lv-title{font-family:var(--fz-display);font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:700;line-height:1.1;letter-spacing:-.6px;margin:.25rem 0 0}
  .lv-sub{color:var(--ink-soft);font-size:1rem;line-height:1.45;margin:.55rem 0 0;max-width:46ch}
  .lv-meta{color:var(--ink-soft);font-size:.9rem;margin:.7rem 0 0;display:flex;gap:.4rem;flex-wrap:wrap;font-weight:600}
  /* compte à rebours RÉEL (StartDate / tirage) - urgence éthique */
  .lv-countdown{display:inline-flex;align-items:baseline;gap:.55rem;margin:.95rem 0 0;padding:.5rem .9rem;background:rgba(137,0,255,.07);border:1px solid rgba(137,0,255,.16);border-radius:12px}
  .lv-countdown__lbl{font-size:.8rem;font-weight:600;color:var(--ink-soft)}
  .lv-countdown__val{font-family:var(--fz-display);font-weight:700;font-size:1.15rem;color:var(--violet);font-variant-numeric:tabular-nums;letter-spacing:.5px}
  .lv-countdown--draw{background:rgba(240,0,185,.06);border-color:rgba(240,0,185,.16);margin-top:.6rem}
  .lv-countdown--draw .lv-countdown__val{color:var(--magenta-ink)}
  .lv-interested{display:flex;align-items:center;gap:.35rem;margin:.7rem 0 0;font-size:.9rem;font-weight:600;color:var(--ink-soft)}
  .lv-interested b{color:var(--magenta-ink)}
  /* bloc CTA : flex vertical (espace bouton↔carte rappel sans marges fragiles) ;
     réserve une hauteur pour amortir la variation connecté/anon (anti-CLS). La
     largeur est bornée par .lv-info (480px) → CTA crédible, pas pleine colonne. */
  .lv-cta{display:flex;flex-direction:column;gap:.75rem;margin-top:1.2rem;min-height:176px}
  .lv-live-note{font-weight:600;color:var(--ink-soft);font-size:.92rem;margin-bottom:.75rem}
  .lv-cta--done{display:flex;flex-direction:column;gap:.7rem;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem 1.25rem;box-shadow:var(--sh-card)}
  .lv-done{font-weight:700;font-size:1rem;display:flex;align-items:center;gap:.5rem;margin:0}
  .lv-done__ic{font-size:1.2rem}
  .lv-remind{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem 1.25rem;box-shadow:var(--sh-card)}
  .lv-remind::before{content:"";position:absolute;left:0;top:1.2rem;bottom:1.2rem;width:3px;border-radius:3px;background:var(--grad)}
  .lv-remind>*{padding-left:.65rem}
  .lv-remind__lbl{font-weight:700;font-size:.96rem;margin-bottom:.8rem}
  .lv-remind__chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.9rem;border:0;padding-left:.65rem;min-inline-size:0}
  .lv-remind__reassure{margin-top:.7rem;font-size:.8rem;color:var(--ink-faint);line-height:1.4}
  .lv-remind .btn{padding-left:1.4rem;padding-right:1.4rem}
  .lv-cal{margin-top:0} /* l'espacement vient du gap flex de .lv-cta (évite le double-écart) */
  /* opt-in inline (partial spot-optin) en mode landing fiche live : carte
     translucide à accent gradient, apparition douce, glow au focus. */
  .lv-cta .smsbox{max-width:none}
  /* Pas de liseré ::before : un trait 3px clippé par le radius 20px rend des
     arcs flottants au-dessus de la carte (visible en replay). L'accent vient
     de la bordure teintée + glow focus, nets dans tous les états. */
  .smsbox--lv{background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-color:rgba(137,0,255,.16);transition:border-color .25s,box-shadow .25s;animation:optinIn .5s cubic-bezier(.22,.61,.36,1) both}
  .smsbox--lv:focus-within{border-color:rgba(137,0,255,.4);box-shadow:0 16px 42px -20px rgba(137,0,255,.45)}
  .smsbox__sub{font-size:.8rem;font-weight:600;color:var(--ink-soft);margin-top:.6rem}
  .smsbox__done{display:flex;flex-direction:column;gap:.7rem;animation:optinIn .4s cubic-bezier(.22,.61,.36,1) both}
  @keyframes optinIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  /* countdown adossé au formulaire (dans .lv-cta) : il colle à la carte */
  .lv-cta .lv-countdown{margin:0 0 -.1rem;align-self:flex-start}
  /* replay : mise en avant du prochain live de la même marque, au-dessus du formulaire */
  .lv-next-live{display:flex;flex-direction:column;gap:.2rem;background:rgba(137,0,255,.06);border:1px solid rgba(137,0,255,.16);border-radius:14px;padding:.8rem 1rem;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
  .lv-next-live:hover{border-color:var(--violet);transform:translateY(-1px)}
  .lv-next-live__tag{font-size:.7rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--violet)}
  .lv-next-live__title{font-size:.95rem;line-height:1.3}
  .lv-next-live__date{font-size:.82rem;font-weight:700;color:var(--magenta-ink)}
  .lv-sec{padding:clamp(1.1rem,2.5vw,1.9rem) 0}
  .lv-desc{color:var(--ink-soft);line-height:1.7;white-space:pre-line;font-size:1.02rem;max-width:62ch}
  .lv-rewards{list-style:none;padding:0;display:grid;gap:.6rem}
  .lv-rewards li{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.85rem 1.1rem;font-size:.94rem;font-weight:600;box-shadow:var(--sh-sm);transition:border-color .2s,transform .2s}
  .lv-rewards li::before{content:"🎁";margin-right:.55rem}
  .lv-rewards li span{flex:1}
  .lv-rewards li:hover{border-color:var(--line-2);transform:translateX(2px)}
  .lv-rewards b{color:var(--magenta-ink);font-weight:700}
  .lv-giveaway{background:linear-gradient(135deg,rgba(137,0,255,.06),rgba(240,0,185,.05));border:1px solid rgba(137,0,255,.18);border-radius:18px;padding:1.5rem}
  .lv-giveaway h2{font-family:var(--fz-display);font-size:1.4rem;margin:.2rem 0 .4rem}
  .lv-giveaway__desc{color:var(--ink-soft);font-size:.9rem;margin-bottom:.5rem}
  .lv-giveaway__meta{font-size:.85rem;color:var(--ink-soft);font-weight:600;margin-bottom:1rem}
  .lv-giveaway__status{color:var(--ink-faint);font-weight:600}
  .lv-share{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
  .lv-share__lbl{font-weight:700;font-size:.92rem}
  /* FAQ (objections + SEO) - <details>/<summary> natifs, accessibles */
  .lv-faq__item{border-top:1px solid var(--line)}
  .lv-faq:last-child .lv-faq__item:last-child{border-bottom:1px solid var(--line)}
  .lv-faq__item summary{cursor:pointer;font-weight:700;font-size:1rem;padding:.95rem 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px}
  .lv-faq__item summary::-webkit-details-marker{display:none}
  .lv-faq__item summary::after{content:"+";color:var(--violet);font-weight:700;font-size:1.3rem;line-height:1}
  .lv-faq__item[open] summary::after{content:"–"}
  .lv-faq__item p{color:var(--ink-soft);line-height:1.6;margin:0;padding:0 0 1rem;max-width:62ch}
  /* barre CTA sticky (mobile) : masquée ≥761px ; révélée par spot.js sous le fold */
  .lv-sticky{position:fixed;left:0;right:0;bottom:0;z-index:90;display:none;padding:.6rem clamp(1rem,4vw,1.4rem) calc(.6rem + env(safe-area-inset-bottom,0px));background:rgba(250,247,254,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px rgba(26,7,40,.3)}
  /* toast de confirmation (flash SSR lu par spot.js) */
  .spot-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;background:var(--ink);color:#fff;padding:.75rem 1.2rem;border-radius:100px;font-weight:600;font-size:.9rem;box-shadow:0 12px 30px -8px rgba(26,7,40,.45);max-width:90vw;text-align:center;animation:toastIn .35s cubic-bezier(.22,.61,.36,1)}
  .spot-toast--error{background:var(--live-ink)}
  .spot-toast--out{opacity:0;transform:translate(-50%,8px);transition:opacity .4s,transform .4s}
  @keyframes toastIn{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
  @media(max-width:760px){
    .lv-hero{padding-top:1rem}
    .lv-hero__grid{grid-template-columns:1fr;gap:1.2rem;justify-items:center;text-align:center}
    /* P0 : visuel plafonné pour que état + H1 + sous-titre + CTA restent above-fold.
       L'overlay d'état (.lv-flag) porte l'info live/bientôt/replay sur le visuel. */
    .lv-visual{max-width:min(200px,46vw)}
    .lv-visual__glow{display:none}
    .lv-info{width:100%;max-width:480px}
    .lv-brand,.lv-badge{margin-left:auto;margin-right:auto}
    .lv-meta,.lv-countdown,.lv-interested{justify-content:center}
    .lv-sub{margin-left:auto;margin-right:auto}
    .lv-remind,.lv-cta--done{text-align:left}
    .lv-cta{min-height:0}
    .smsbox--lv{text-align:left}
    .lv-cta .lv-countdown{align-self:center}
    /* à venir : visuel encore plus compact + sous-titre masqué → le champ de
       capture (formulaire inline) reste atteignable au premier écran. */
    .lv-page--upcoming .lv-visual{max-width:min(148px,38vw)}
    .lv-page--upcoming .lv-sub{display:none}
    /* barre CTA sticky : visible sur mobile (révélée/masquée par spot.js sous le fold) */
    .lv-sticky{display:block}
    /* réserve l'espace bas pour ne pas passer sous la barre sticky */
    body{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  }

  /* ===== MODALE DE CONNEXION ===== */
  .lm-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(18,0,31,.5);backdrop-filter:blur(5px)}
  .lm{position:relative;border-radius:24px;max-width:392px;width:100%;max-height:92vh;overflow:auto;background:#fff;color:var(--ink);box-shadow:0 40px 90px -30px rgba(26,7,40,.55);animation:lmpop .28s cubic-bezier(.22,.61,.36,1)}
  @keyframes lmpop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
  .lm__inner{position:relative;padding:2.1rem 1.8rem 1.6rem}
  .lm__close{position:absolute;top:1rem;right:1rem;width:34px;height:34px;border:none;background:var(--paper-2);color:var(--ink-soft);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s}
  .lm__close:hover{background:var(--line-2);color:var(--ink)}
  .lm__body,.lm__done{text-align:center}
  .lm__ic{font-size:2.3rem;line-height:1;margin-bottom:.5rem}
  .lm__title{font-family:var(--fz-display);font-weight:700;font-size:1.5rem;letter-spacing:-.5px;line-height:1.15}
  .lm__lead{color:var(--ink-soft);font-size:.9rem;line-height:1.5;margin:.5rem auto 1.4rem;max-width:30ch}
  .lm__form{display:flex;flex-direction:column;gap:.6rem}
  .lm__input{background:var(--paper-2);border:1px solid var(--line-2);border-radius:100px;padding:0 1.2rem;min-height:50px;font-family:inherit;font-weight:600;font-size:16px;color:var(--ink);text-align:center}
  .lm__input::placeholder{color:var(--ink-faint);font-weight:500}
  .lm__input:focus{outline:none;border-color:var(--violet);background:#fff}
  .lm__hint{font-size:.74rem;color:var(--ink-faint);margin-top:.7rem}
  .lm__sep{display:flex;align-items:center;gap:.8rem;margin:1.2rem 0;color:var(--ink-faint);font-size:.78rem;font-weight:600}
  .lm__sep::before,.lm__sep::after{content:"";flex:1;height:1px;background:var(--line-2)}
  .lm__oauth{display:flex;flex-direction:column;gap:.6rem}
  .oauth-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;border:1px solid var(--line-2);border-radius:100px;background:#fff;color:var(--ink);font-family:inherit;font-weight:600;font-size:.9rem;box-shadow:var(--sh-sm);transition:transform .15s,border-color .2s}
  .oauth-btn:hover{border-color:var(--ink);transform:translateY(-1px)}
  .oauth-btn svg{width:18px;height:18px;flex-shrink:0}
  .lm__legal{font-size:.72rem;color:var(--ink-faint);margin-top:1.2rem;line-height:1.4}
  .lm__legal a{color:var(--violet);text-decoration:underline}

  @media(max-width:920px){
    body{overflow-x:clip} /* garde-fou anti-scroll latéral (clip n'altère pas le sticky) */
    .hero{min-height:auto;padding:1.6rem 0 2.2rem}
    .hero__grid{grid-template-columns:1fr;padding:0}
    .stage{order:-1;margin-bottom:1rem}
    .lots{grid-template-columns:1fr}
    /* Nav repliable : le bouton hamburger apparaît, les liens deviennent un menu
       déroulant (révélé par .nav__links--open, piloté par le composant mobileNav). */
    .nav__burger{display:inline-flex}
    .nav__links{display:none;position:absolute;top:70px;left:0;right:0;flex-direction:column;gap:0;margin:0;background:var(--paper);border-bottom:1px solid var(--line);padding:.4rem 0;box-shadow:0 14px 28px -10px rgba(26,7,40,.18)}
    .nav__links--open{display:flex}
    .nav__links a{padding:.85rem clamp(1.1rem,5vw,2rem);font-size:1rem}
    .nav__links a::after{display:none}
    /* Filtres catalogue empilés en pleine largeur. */
    .lv-filters{flex-direction:column;align-items:stretch}
    .lv-filters__search,.lv-filters__select{width:100%;min-width:0}
  }

  /* ===== Pages légales / RGPD (legal.html) ===== */
  .legal{padding:clamp(1.4rem,3vw,2.6rem) 0 3rem}
  .legal__title{font-family:var(--fz-display);font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-.6px;margin:.3rem 0 .4rem}
  .legal__lead{color:var(--ink-soft);font-size:1.02rem;line-height:1.55;max-width:62ch;margin-bottom:.6rem}
  .legal__updated{color:var(--ink-faint);font-size:.85rem;font-weight:600;margin-bottom:1.6rem}
  .legal__toc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;margin-bottom:2rem;box-shadow:var(--sh-sm)}
  .legal__toc ul{list-style:none;display:grid;gap:.35rem}
  .legal__toc a{color:var(--violet);font-weight:600;font-size:.9rem;text-decoration:none}
  .legal__toc a:hover{text-decoration:underline}
  .legal__sec{scroll-margin-top:88px;margin-bottom:1.8rem}
  .legal__sec h2{font-size:1.15rem;font-weight:700;letter-spacing:-.3px;margin-bottom:.6rem}
  .legal__sec p{color:var(--ink-soft);line-height:1.65;margin-bottom:.7rem;max-width:70ch}
  .legal__sec ul{color:var(--ink-soft);line-height:1.65;margin:0 0 .8rem 1.2rem;max-width:70ch}
  .legal__sec li{margin-bottom:.35rem}
  .legal__sec a{color:var(--violet);font-weight:600}
  .legal-dl{display:grid;gap:.5rem;margin:0 0 .9rem}
  .legal-dl>div{display:grid;grid-template-columns:minmax(160px,34%) 1fr;gap:.4rem 1rem;padding:.55rem .8rem;background:#fff;border:1px solid var(--line);border-radius:10px}
  .legal-dl dt{font-weight:700;font-size:.88rem;color:var(--ink)}
  .legal-dl dd{font-size:.9rem;color:var(--ink-soft)}
  @media(max-width:560px){.legal-dl>div{grid-template-columns:1fr;gap:.15rem}}
  /* ── Hero opt-in : coche de validation + message d'erreur ──────────── */
  .sms-check{font-size:.8rem;font-weight:700;color:#157a3a;margin-top:.55rem;display:flex;align-items:center;gap:.45rem}
  .sms-check__ic{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#1aa64b;color:#fff;font-size:.68rem;flex-shrink:0}
  .sms-err{font-size:.78rem;font-weight:600;color:var(--live-ink);margin-top:.55rem}

  /* ── Modale de profil progressive (SpotSignup) ─────────────────────── */
  .su-overlay{position:fixed;inset:0;z-index:1000;background:rgba(26,7,40,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .35s cubic-bezier(.16,1,.3,1)}
  .su-overlay.active{opacity:1;pointer-events:auto}
  .su-modal{position:relative;background:#fff;border-radius:24px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--sh-lift);padding:1.6rem 1.6rem 1.3rem;transform:translateY(18px) scale(.97);transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
  .su-overlay.active .su-modal{transform:none}
  .su-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:0;background:var(--paper-2);color:var(--ink-soft);font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;z-index:2}
  .su-close:hover{background:var(--line-2);color:var(--ink)}
  .su-progress{display:flex;gap:6px;margin-bottom:1.3rem}
  .su-bar{flex:1;height:4px;border-radius:2px;background:var(--line-2);transition:background .3s}
  .su-bar.active{background:var(--violet)}
  .su-bar.done{background:#1aa64b}
  .su-step{display:none}
  .su-step.active{display:block}
  .su-body{min-height:128px}
  .su-body--center{text-align:center;padding-top:.4rem}
  .su-step-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:.5rem}
  .su-title{font-size:1.4rem;font-weight:800;line-height:1.15;margin-bottom:.4rem}
  .su-desc{font-size:.9rem;color:var(--ink-soft);margin-bottom:1.1rem;line-height:1.45}
  .su-text,.su-search{width:100%;background:var(--paper-2);border:1.5px solid var(--line-2);border-radius:14px;padding:.8rem 1rem;font-family:inherit;font-weight:600;font-size:16px;color:var(--ink);outline:none;transition:border-color .2s,background .2s,box-shadow .2s}
  .su-text:focus,.su-search:focus{border-color:var(--violet);background:#fff;box-shadow:0 0 0 4px rgba(137,0,255,.08)}
  .su-search-wrap{margin-bottom:.7rem}
  .su-chips{display:flex;flex-wrap:wrap;gap:9px}
  .su-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1rem;background:var(--paper-2);border:1.5px solid var(--line-2);border-radius:100px;font-family:inherit;font-weight:700;font-size:.85rem;color:var(--ink-soft);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
  .su-chip:hover{border-color:var(--soft);color:var(--ink)}
  .su-chip.selected{background:rgba(137,0,255,.07);border-color:var(--violet);color:var(--violet)}
  .su-chip-ic{font-size:1.05rem}
  .su-cats-row{display:flex;gap:6px;margin-bottom:.8rem;overflow-x:auto;scrollbar-width:none}
  .su-cats-row::-webkit-scrollbar{display:none}
  .su-cat{font-size:.74rem;font-weight:700;padding:.35rem .8rem;border-radius:100px;white-space:nowrap;background:var(--paper-2);border:1px solid var(--line-2);color:var(--ink-soft);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
  .su-cat:hover{border-color:var(--soft)}
  .su-cat.active{background:var(--ink);border-color:var(--ink);color:#fff}
  .su-brands{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;max-height:240px;overflow-y:auto;padding-right:2px}
  .su-brands::-webkit-scrollbar{width:4px}
  .su-brands::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:2px}
  .su-brand-item{display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;border-radius:10px;border:1.5px solid transparent;background:transparent;font-family:inherit;font-weight:600;font-size:.82rem;color:var(--ink-soft);cursor:pointer;text-align:left;transition:background .15s,border-color .15s,color .15s}
  .su-brand-item:hover{background:var(--paper-2)}
  .su-brand-item.selected{background:rgba(137,0,255,.06);border-color:var(--violet);color:var(--violet)}
  .su-brand-check{flex-shrink:0;width:18px;height:18px;border:2px solid var(--line-2);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:.62rem;color:transparent;transition:background .15s,border-color .15s,color .15s}
  .su-brand-item.selected .su-brand-check{background:var(--violet);border-color:var(--violet);color:#fff}
  .su-brand-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .su-brand-count{font-size:.8rem;font-weight:700;color:var(--violet);margin-top:.7rem;min-height:1rem}
  .su-custom-trigger{display:inline-flex;align-items:center;gap:.4rem;margin-top:.8rem;padding:.5rem .9rem;background:var(--paper-2);border:1.5px dashed var(--line-2);border-radius:100px;font-family:inherit;font-weight:700;font-size:.82rem;color:var(--ink-soft);cursor:pointer;transition:border-color .2s,color .2s}
  .su-custom-trigger:hover{border-color:var(--violet);color:var(--violet)}
  .su-custom-input{width:100%;margin-top:.7rem;background:#fff;border:1.5px solid var(--violet);border-radius:14px;padding:.7rem 1rem;font-family:inherit;font-weight:600;font-size:16px;color:var(--ink);outline:none;box-shadow:0 0 0 4px rgba(137,0,255,.08)}
  .su-custom-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:.6rem}
  .su-custom-tag{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .4rem .3rem .7rem;background:rgba(137,0,255,.07);border:1.5px solid var(--violet);border-radius:100px;font-size:.78rem;font-weight:700;color:var(--violet)}
  .su-custom-tag button{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:0;border-radius:50%;background:rgba(137,0,255,.15);color:var(--violet);font-size:.6rem;line-height:1;cursor:pointer;padding:0}
  .su-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.3rem}
  .su-footer--center{justify-content:center}
  .su-skip{background:none;border:0;font-family:inherit;font-weight:600;font-size:.86rem;color:var(--ink-faint);cursor:pointer;transition:color .2s}
  .su-skip:hover{color:var(--ink)}
  .su-next{font-family:inherit;font-weight:800;font-size:.9rem;color:#fff;background:linear-gradient(135deg,#8900FF,#C9009C);border:0;padding:.7rem 1.6rem;border-radius:100px;cursor:pointer;box-shadow:0 8px 22px -12px rgba(137,0,255,.45);transition:box-shadow .2s,transform .2s}
  .su-next:hover{transform:translateY(-1px);box-shadow:0 12px 28px -12px rgba(137,0,255,.55)}
  .su-success-ic{font-size:3rem;line-height:1;margin-bottom:.4rem}
  .su-confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1001}
  /* Modale adresse de livraison (palier 2) */
  .ad-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ad-grid--cp{grid-template-columns:1fr 2fr}
  .ad-mt{margin-top:8px}
  @media(max-width:560px){
    .su-brands{grid-template-columns:1fr}
    .su-modal{padding:1.3rem 1.1rem 1.1rem;border-radius:20px}
    .su-footer{margin-top:1rem}
    .su-title{font-size:1.25rem}
  }

  /* ===== Cadeau de la semaine (jeu-concours hebdo) ===== */
  /* Section vedette : fond AURORA pleine largeur (écho du hero) + 2 filets fins →
     délimite la zone sans la déplacer ni l'agrandir. Les <section> sont déjà
     full-width (seul .container est contraint), le fond est donc edge-to-edge ;
     les gradients sont clippés à la box (pas de débord). CSS pur, light mode. */
  #cadeau{padding:2.6rem 0 3rem;
    border-top:1px solid rgba(137,0,255,.13);border-bottom:1px solid rgba(137,0,255,.13);
    background:
      radial-gradient(560px 360px at 12% 0%,rgba(240,0,185,.09),transparent 60%),
      radial-gradient(640px 420px at 92% 6%,rgba(137,0,255,.11),transparent 62%),
      radial-gradient(520px 420px at 70% 104%,rgba(255,0,92,.06),transparent 60%),
      #F7F2FD}
  .wk-card{display:grid;grid-template-columns:1.05fr .95fr;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-card)}
  @media(max-width:760px){
    .wk-card{grid-template-columns:1fr}
    .wk-gift{display:flex;flex-direction:column}
    .wk-gift__text{order:1;max-width:100%;min-height:0}
    .wk-gift__card{order:2;position:static;transform:none;margin:1.2rem auto 0;width:180px;height:180px}
    .wk-gift::before{display:none}
  }
  /* Côté lot : dégradé violet + halo, le PRODUIT dans une carte blanche à droite
     (photo sur fond blanc, sans détourage), le texte recadré à gauche. */
  .wk-gift{position:relative;overflow:hidden;padding:1.8rem;color:#fff;min-height:404px;background:linear-gradient(150deg,#1A0728,#3A0A5E 55%,#5B1486)}
  .wk-gift::before{content:"";position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,rgba(173,128,255,.16),transparent 68%);pointer-events:none}
  .wk-gift__text{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:calc(404px - 3.6rem);max-width:48%}
  .wk-gift__card{position:absolute;right:1.8rem;top:50%;transform:translateY(-50%);width:224px;height:224px;background:#fff;border-radius:22px;padding:16px;box-shadow:0 24px 46px -18px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.5);z-index:1}
  .wk-gift__card img{width:100%;height:100%;object-fit:contain;display:block}
  .wk-uni{align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);border-radius:100px;padding:.4rem .8rem;font-size:.72rem;font-weight:800;letter-spacing:.04em}
  .wk-prod__kic{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--soft,#AD80FF)}
  .wk-prod__name{font-family:var(--fz-display);font-size:1.9rem;line-height:1.05;letter-spacing:-1px;margin:.25rem 0 .35rem;text-shadow:0 2px 18px rgba(0,0,0,.5)}
  .wk-prod__sub{margin:0 0 .7rem;font-size:.84rem;color:rgba(255,255,255,.82)}
  .wk-prod__val{display:inline-flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,var(--magenta),var(--rose,#FF005C));border-radius:100px;padding:.42rem .85rem;font-weight:800;font-size:.9rem;box-shadow:0 10px 24px -10px rgba(240,0,185,.6)}
  .wk-cd{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
  .wk-cd__lbl{font-size:.76rem;font-weight:700;color:rgba(255,255,255,.85)}
  .wk-cd__units{display:flex;gap:.4rem}
  .wk-cd__u{background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:.35rem .5rem;font-size:.56rem;text-transform:uppercase;letter-spacing:.04em;color:rgba(255,255,255,.72);text-align:center;min-width:42px}
  .wk-cd__u b{display:block;font-size:1.15rem;font-weight:800;color:#fff;line-height:1;font-variant-numeric:tabular-nums}
  /* space-between : entête en haut, bloc central (.wk-core), mention légale ancrée
     en bas → panneau équilibré quel que soit l'état (anonyme / rejoindre / membre). */
  .wk-panel{padding:1.8rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.1rem}
  .wk-core{display:flex;flex-direction:column;gap:.85rem}
  .wk-panel__head{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint)}
  .wk-enrolled{align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;background:rgba(137,0,255,.1);color:var(--violet);font-weight:700;font-size:.76rem;padding:.32rem .65rem;border-radius:100px}
  .wk-big{display:flex;align-items:baseline;gap:.5rem}
  .wk-big b{font-size:3.2rem;line-height:1;font-weight:800;background:linear-gradient(135deg,var(--violet),var(--magenta));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .wk-big span{font-size:1.05rem;color:var(--ink-soft);font-weight:700}
  .wk-sub{margin:0;font-size:.8rem;color:var(--ink-soft);line-height:1.5}
  .wk-ways{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
  .wk-way{display:flex;align-items:center;gap:.7rem;font-size:.88rem;padding:.5rem .65rem;border-radius:13px;background:var(--paper);border:1px solid var(--line)}
  .wk-ic{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.78rem;font-weight:800}
  .wk-way--done .wk-ic{background:rgba(137,0,255,.12);color:var(--violet)}
  .wk-way--todo .wk-ic{background:rgba(240,0,185,.12);color:var(--magenta)}
  .wk-txt{flex:1}
  .wk-pts{font-weight:800;font-size:.8rem;color:var(--violet)}
  .wk-way--todo .wk-pts{color:var(--magenta)}
  .wk-anon{display:flex;align-items:center;gap:.8rem;padding:.9rem;border-radius:15px;background:linear-gradient(135deg,rgba(137,0,255,.07),rgba(240,0,185,.07));border:1px solid var(--line)}
  .wk-anon__g{font-size:1.8rem;line-height:1}
  .wk-anon b{display:block;font-size:1.08rem;letter-spacing:-.2px}
  .wk-anon p{margin:.1rem 0 0;font-size:.82rem;color:var(--ink-soft);line-height:1.45}
  .wk-anon__more{margin:0;font-size:.82rem;color:var(--ink-soft);line-height:1.55}
  .wk-anon__more b{color:var(--violet)}
  .wk-btn{margin-top:.2rem;border:none;cursor:pointer;width:100%;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,var(--violet),var(--magenta));color:#fff;font-weight:800;font-size:.95rem;border-radius:100px;min-height:50px;text-decoration:none;transition:transform .15s,box-shadow .2s}
  .wk-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px -10px rgba(137,0,255,.6)}
  .wk-fine{font-size:.73rem;color:var(--ink-faint);text-align:left;line-height:1.4;margin:0}
  .wk-fine a{color:var(--violet);font-weight:600}

  /* ===== Modale « Comment ça marche » (jeu hebdo) ===== */
  .wk-howto{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;width:min(480px,92vw);max-height:92vh;padding:0;border:none;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 40px 90px -30px rgba(26,7,40,.6);color:var(--ink)}
  .wk-howto::backdrop{background:rgba(18,0,31,.55);backdrop-filter:blur(6px)}
  .wk-howto__head{position:relative;padding:1.7rem 1.7rem 1.3rem;background:linear-gradient(135deg,#1A0728,#3A0A5E 60%,#5B1486);color:#fff}
  .wk-howto__kic{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--soft,#AD80FF)}
  .wk-howto__head h2{margin:.3rem 0 .35rem;font-size:1.5rem;line-height:1.1;letter-spacing:-.5px}
  .wk-howto__head p{margin:0;font-size:.9rem;color:rgba(255,255,255,.82);line-height:1.55}
  .wk-howto__x{position:absolute;top:1rem;right:1rem;width:34px;height:34px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .wk-howto__steps{padding:1.5rem 1.7rem;display:flex;flex-direction:column;gap:1rem;overflow-y:auto}
  .wk-step{display:flex;gap:.95rem;align-items:flex-start}
  .wk-step__n{flex-shrink:0;width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--violet),var(--magenta));color:#fff;font-weight:800;font-size:1.1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 22px -10px rgba(137,0,255,.6)}
  .wk-step h3{margin:.15rem 0 .25rem;font-size:1.02rem;line-height:1.2;letter-spacing:-.2px}
  .wk-step p{margin:0;font-size:.88rem;color:var(--ink-soft);line-height:1.5}
  .wk-step__tk{display:inline-flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}
  .wk-tk{font-size:.74rem;font-weight:800;color:var(--violet);background:rgba(137,0,255,.1);border-radius:100px;padding:.22rem .55rem}
  .wk-howto__foot{padding:1.1rem 1.7rem 1.5rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.7rem}
  .wk-howto__fine{font-size:.78rem;color:var(--ink-faint);text-align:center;margin:0}
  .wk-howto__fine a{color:var(--violet);font-weight:600}
