/* ============================================================
   LYSORIA — GTA RP FiveM · Feuille de style
   ============================================================ */

:root{
  --bg-900:#04060e;
  --bg-850:#060a16;
  --bg-800:#080d1e;
  --bg-700:#0c1226;
  --bg-card:#0b1122;
  --panel:rgba(16,26,52,.55);
  --line:rgba(120,160,255,.12);
  --line-strong:rgba(120,160,255,.24);

  --blue:#4f8cff;
  --blue-bright:#79b0ff;
  --blue-deep:#2f6bff;
  --cyan:#8fd7ff;
  --ice:#eef4ff;

  --text:#c4cfe6;
  --muted:#828daa;
  --muted-2:#616c88;

  --radius:18px;
  --radius-lg:26px;
  --maxw:1180px;

  --shadow-glow:0 0 60px -12px rgba(79,140,255,.55);
  --font-head:'Sora',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  background:var(--bg-900);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body::before{ /* base radial ambience — symétrique gauche/droite */
  content:"";position:fixed;inset:0;z-index:-3;
  background:
    radial-gradient(1200px 760px at 50% -14%, rgba(47,107,255,.18), transparent 62%),
    linear-gradient(180deg,#05080f 0%,#05080f 45%,#04060c 100%);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.08;color:var(--ice);letter-spacing:-.02em}
::selection{background:rgba(79,140,255,.35);color:#fff}

/* ------- grain + cursor glow ------- */
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%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)'/%3E%3C/svg%3E");
}

/* ------- buttons ------- */
/* ============================================================
   BOUTONS — ronds, pleins et nets (zéro glow, remplissage opaque)
   ============================================================ */
.btn{
  --pad:11px 22px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:var(--pad);border-radius:999px;
  font-family:var(--font-head);font-weight:600;font-size:.9rem;letter-spacing:.015em;
  cursor:pointer;border:1px solid transparent;position:relative;overflow:hidden;isolation:isolate;
  transition:transform .2s cubic-bezier(.2,.8,.2,1),background .25s,border-color .25s,color .2s;
  white-space:nowrap;
}
.btn--lg{--pad:15px 32px;font-size:.98rem}
.btn svg{transition:transform .25s ease;position:relative;z-index:2}
.btn:hover svg{transform:translateX(2px)}
.btn:active{transform:scale(.97)}

/* ---- Primary : bleu profond, texte blanc, fine bordure claire + brillance ---- */
.btn--primary{
  color:#fff;
  background:linear-gradient(180deg,#4d84ff,#2f61e6);
  border-color:rgba(150,185,255,.5);
}
.btn--primary::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(105deg,transparent 43%,rgba(255,255,255,.45) 50%,transparent 57%);
  background-size:230% 100%;background-position:180% 0;
  transition:background-position .7s cubic-bezier(.2,.7,.2,1);
}
.btn--primary:hover{transform:translateY(-2px);background:linear-gradient(180deg,#5c90ff,#3a6ef2);border-color:rgba(180,205,255,.7)}
.btn--primary:hover::after{background-position:-70% 0}

/* Boutons "Ajouter au panier" DANS les cartes : intégrés (tonal),
   se remplissent en bleu au survol → rendu naturel, pas "collé" */
.plan__btn.btn--primary,
.coin-pack__btn.btn--primary{
  color:#b9d0ff;
  background:linear-gradient(180deg,rgba(78,128,242,.16),rgba(48,90,200,.09));
  border-color:rgba(120,158,255,.38);
}
.plan__btn.btn--primary:hover,
.coin-pack__btn.btn--primary:hover{
  color:#fff;
  background:linear-gradient(180deg,#4d84ff,#2f61e6);
  border-color:rgba(180,205,255,.7);
}

/* ---- Ghost : chip sombre net, bordure définie ---- */
.btn--ghost{color:var(--ice);background:rgba(17,25,46,.85);border-color:rgba(150,180,255,.34)}
.btn--ghost:hover{transform:translateY(-2px);color:#fff;border-color:rgba(160,190,255,.7);background:rgba(26,38,68,.9)}

/* ------- layout helpers ------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,40px)}
.section{padding:clamp(70px,10vw,130px) 0;position:relative}
.eyebrow{
  display:inline-block;font-family:var(--font-head);font-weight:600;font-size:.78rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--blue-bright);
  margin-bottom:18px;
}
.section__title{font-size:clamp(1.9rem,4.2vw,3.1rem);font-weight:800}
.section__title.center{text-align:center;margin-inline:auto}
.section__head{max-width:720px;margin:0 auto 60px}
.section__head.center,.section__title.center{margin-left:auto;margin-right:auto}
.section__lead{color:var(--muted);font-size:1.05rem;margin-top:18px}
.section__head .section__lead{text-align:center}
.grad{
  background:linear-gradient(120deg,var(--blue-bright) 10%,var(--cyan) 55%,#fff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 24px rgba(121,176,255,.35));
}

/* ------- brand / logo ------- */
.brand{display:inline-flex;align-items:center;gap:10px}
.brand__mark{display:inline-flex;width:38px;height:38px}
.brand__mark .logo-img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 8px rgba(79,140,255,.5))}
.brand__type{
  font-family:var(--font-head);font-weight:800;font-size:1.15rem;letter-spacing:.22em;
  color:var(--ice);
}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  transition:background .4s,border-color .4s,backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(6,10,22,.72);
  backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--line);
}
.nav__inner{
  max-width:none;margin:0 auto;padding:14px clamp(24px,4vw,60px);
  display:flex;align-items:center;gap:24px;
}
.nav__panel{display:contents}
.nav .brand{margin-right:auto}            /* logo collé tout à gauche */
.nav__links{display:flex;gap:30px}
.nav__links a{
  font-size:.92rem;color:var(--text);font-weight:500;position:relative;padding:4px 0;
  transition:color .25s;
}
.nav__links a::after{
  content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;
  background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .3s;border-radius:2px;
}
.nav__links a:hover{color:var(--ice)}
.nav__links a:hover::after{width:100%}
.nav__cta{display:flex;gap:12px;align-items:center}
.nav__burger{
  display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;
}
.nav__burger span{width:24px;height:2px;background:var(--ice);border-radius:2px;transition:.3s}
.nav__burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__burger.open span:nth-child(2){opacity:0}
.nav__burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;padding:104px 20px 60px;overflow:hidden;
  background:#050914;
  isolation:isolate;            /* crée un contexte d'empilement : le canvas (z-index négatif) passe AU-DESSUS du fond */
}
/* fond animé (grille en perspective + particules, dessiné en canvas) */
.hero__fx{position:absolute;inset:0;z-index:-2;width:100%;height:100%;display:block}
/* vignette : assombrit légèrement les bords pour un rendu cinéma (aucune lueur) */
.hero__vignette{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(135% 105% at 50% 44%,transparent 60%,rgba(4,7,16,.30) 85%,rgba(4,7,16,.68));
}
/* fondu doux vers la section suivante */
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent,var(--bg-900) 96%)}
.hero__stars{position:absolute;inset:0;z-index:-2;width:100%;height:100%}
.hero__glow{
  position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);
  width:min(900px,90vw);height:min(900px,90vw);z-index:-2;pointer-events:none;
  background:radial-gradient(circle,rgba(79,140,255,.16),rgba(47,107,255,.05) 40%,transparent 66%);
  filter:blur(20px);
}
/* aurore animée : blobs bleu/cyan qui dérivent lentement (vie ambiante) */
.hero__aurora{
  position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden;
  -webkit-mask:radial-gradient(circle at 50% 42%,#000,transparent 78%);
  mask:radial-gradient(circle at 50% 42%,#000,transparent 78%);
}
.hero__aurora::before,.hero__aurora::after{content:"";position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}
.hero__aurora::before{width:46vw;height:46vw;left:16%;top:14%;background:radial-gradient(circle,rgba(79,140,255,.38),transparent 66%);animation:aur1 20s ease-in-out infinite}
.hero__aurora::after{width:38vw;height:38vw;right:14%;top:30%;background:radial-gradient(circle,rgba(120,200,255,.28),transparent 66%);animation:aur2 26s ease-in-out infinite}
@keyframes aur1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(9%,7%) scale(1.14)}}
@keyframes aur2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8%,-6%) scale(1.1)}}
.hero__skyline{
  position:absolute;bottom:0;left:0;right:0;height:44%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent, rgba(40,80,170,.07) 55%, rgba(70,130,255,.11));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1440' height='300' viewBox='0 0 1440 300' preserveAspectRatio='none'%3E%3Cpath fill='%23000' d='M0 300V150h40v-40h30v25h26v-60h34v40h28V90h30v70h40V70h44v90h30v-50h26v50h34V40h30v120h40v-70h30v70h34V110h40v50h30V60h44v100h30v-40h26v40h34V80h30v80h40v-30h30v30h40V120h34v40h30V90h44v70h30v-40h26v40h34V50h30v110h40v-60h30v60h34V100h40v60h30V70h44v90h30V300z'/%3E%3C/svg%3E") no-repeat bottom/100% 100%;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1440' height='300' viewBox='0 0 1440 300' preserveAspectRatio='none'%3E%3Cpath fill='%23000' d='M0 300V150h40v-40h30v25h26v-60h34v40h28V90h30v70h40V70h44v90h30v-50h26v50h34V40h30v120h40v-70h30v70h34V110h40v50h30V60h44v100h30v-40h26v40h34V80h30v80h40v-30h30v30h40V120h34v40h30V90h44v70h30v-40h26v40h34V50h30v110h40v-60h30v60h34V100h40v60h30V70h44v90h30V300z'/%3E%3C/svg%3E") no-repeat bottom/100% 100%;
}
.hero__grid{
  position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(79,140,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(79,140,255,.05) 1px,transparent 1px);
  background-size:60px 60px;
  -webkit-mask:radial-gradient(circle at 50% 42%,#000,transparent 72%);
  mask:radial-gradient(circle at 50% 42%,#000,transparent 72%);
}
.hero__content{position:relative;z-index:2;max-width:860px;margin-block:auto;display:flex;flex-direction:column;align-items:center}

.tag{
  display:inline-flex;align-items:center;gap:9px;
  padding:8px 16px;border-radius:999px;font-size:.82rem;font-weight:500;
  color:var(--blue-bright);background:rgba(79,140,255,.08);
  border:1px solid var(--line-strong);backdrop-filter:blur(8px);
  letter-spacing:.02em;
}
.tag__dot{width:7px;height:7px;border-radius:50%;background:#57e08e;box-shadow:0 0 10px #57e08e;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}

/* logo agrandi, au-dessus du texte */
.hero__logo{width:clamp(260px,32vw,440px);height:clamp(260px,32vw,440px);margin:0 0 4px;position:relative;display:grid;place-items:center}
.hero__logo::after{content:"";position:absolute;inset:16%;border-radius:50%;background:radial-gradient(circle,rgba(79,140,255,.26),transparent 62%);filter:blur(26px);z-index:-1}
.hero__logo .logo-img{width:100%;height:100%;object-fit:contain;animation:float 6.5s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(79,140,255,.38))}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}

.hero__title{font-size:clamp(2.6rem,7vw,5rem);font-weight:800;margin:8px 0 0;letter-spacing:-.03em}
.hero__sub{color:var(--muted);font-size:clamp(1rem,1.6vw,1.18rem);max-width:600px;margin:22px auto 0}
.hero__sub strong{color:var(--ice);font-weight:600}

.hero__actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:28px}

.hero__connect{margin-top:20px;display:flex;flex-direction:column;align-items:center;gap:8px}
.connect__label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.connect__ip{
  display:inline-flex;align-items:center;gap:10px;position:relative;
  padding:11px 18px;border-radius:12px;cursor:pointer;
  background:rgba(10,16,34,.6);border:1px dashed var(--line-strong);
  color:var(--text);font-family:var(--font-body);transition:.25s;
}
.connect__ip:hover{border-color:var(--blue);color:var(--ice);box-shadow:0 0 24px -6px rgba(79,140,255,.5)}
.connect__ip code{font-family:'Sora',monospace;font-size:.95rem;letter-spacing:.02em}
.connect__copied{
  position:absolute;top:-12px;right:-6px;font-size:.68rem;color:#57e08e;font-weight:600;
  opacity:0;transform:translateY(4px);transition:.25s;pointer-events:none;
}
.connect__ip.copied .connect__copied{opacity:1;transform:translateY(0)}

/* hero stats */
.hero__stats{
  position:relative;z-index:2;margin-top:64px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  width:min(880px,100%);
  padding:26px 20px;border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(14,22,46,.5),rgba(10,16,34,.3));
  border:1px solid var(--line);backdrop-filter:blur(12px);
  box-shadow:0 30px 80px -40px rgba(0,0,0,.9);
}
.stat{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}
.stat+.stat::before{content:"";position:absolute;left:-7px;top:15%;height:70%;width:1px;background:var(--line)}
.stat__num{font-family:var(--font-head);font-weight:800;font-size:clamp(1.5rem,3.4vw,2.2rem);color:var(--ice)}
.stat__lbl{font-size:.76rem;color:var(--muted-2);letter-spacing:.04em;text-align:center}

.hero__scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;width:26px;height:42px;border:2px solid var(--line-strong);border-radius:14px;display:flex;justify-content:center}
.hero__scroll span{width:4px;height:8px;background:var(--blue-bright);border-radius:2px;margin-top:7px;animation:scroll 1.8s infinite}
@keyframes scroll{0%{opacity:0;transform:translateY(-4px)}40%{opacity:1}80%,100%{opacity:0;transform:translateY(12px)}}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(9,14,30,.6),rgba(6,10,22,.6));
  overflow:hidden;padding:16px 0;
}
.marquee__track{display:flex;align-items:center;gap:28px;white-space:nowrap;width:max-content;animation:scrollx 34s linear infinite}
.marquee__track span{font-family:var(--font-head);font-weight:700;font-size:1rem;letter-spacing:.14em;color:rgba(210,224,255,.55)}
.marquee__track i{color:var(--blue);font-style:normal}
@keyframes scrollx{to{transform:translateX(-50%)}}

/* ============================================================
   UNIVERS
   ============================================================ */
.univers__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);align-items:center}
.univers__copy p{color:var(--muted);margin-top:16px;font-size:1.03rem}
.univers__copy p strong{color:var(--ice);font-weight:600}
.univers__pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.pill{
  font-size:.82rem;padding:7px 14px;border-radius:999px;color:var(--blue-bright);
  background:rgba(79,140,255,.07);border:1px solid var(--line-strong);
}
.univers__cards{display:flex;flex-direction:column;gap:16px}
.ucard{
  padding:24px 26px;border-radius:var(--radius);position:relative;overflow:hidden;
  background:linear-gradient(180deg,rgba(14,22,46,.5),rgba(9,14,30,.4));
  border:1px solid var(--line);transition:transform .35s,border-color .35s,box-shadow .35s;
}
.ucard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--blue),var(--cyan));opacity:.7}
.ucard:hover{transform:translateX(6px);border-color:var(--line-strong);box-shadow:0 20px 50px -30px rgba(79,140,255,.6)}
.ucard__ic{font-size:1.6rem;margin-bottom:10px}
.ucard h3{font-size:1.15rem;margin-bottom:6px}
.ucard p{color:var(--muted);font-size:.95rem}

/* ============================================================
   EXPERIENCE / FEATURES
   ============================================================ */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feat{
  position:relative;padding:32px 28px;border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(180deg,rgba(12,19,40,.55),rgba(8,12,26,.4));
  border:1px solid var(--line);transition:transform .35s,border-color .35s,box-shadow .35s;
}
.feat::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(135deg,rgba(121,176,255,.5),transparent 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .35s}
.feat:hover{transform:translateY(-6px);box-shadow:0 30px 60px -34px rgba(79,140,255,.6)}
.feat:hover::after{opacity:1}
.feat__num{font-family:var(--font-head);font-weight:800;font-size:2.4rem;color:transparent;-webkit-text-stroke:1.4px rgba(121,176,255,.35);margin-bottom:14px;line-height:1}
.feat h3{font-size:1.22rem;margin-bottom:10px}
.feat p{color:var(--muted);font-size:.96rem}

/* ============================================================
   VILLE / ETABLISSEMENTS
   ============================================================ */
.ville{padding-bottom:clamp(80px,11vw,140px)}
.ville__marquee{position:relative;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ville__track{display:flex;gap:20px;width:max-content;animation:scrollx 46s linear infinite}
.ville__track:hover{animation-play-state:paused}
.est{
  position:relative;width:300px;flex:0 0 auto;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);background:var(--bg-800);
  transition:transform .35s,border-color .35s,box-shadow .35s;
}
.est img{width:100%;height:180px;object-fit:cover;transition:transform .5s}
.est::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(4,6,14,.92));z-index:1}
.est:hover{transform:translateY(-6px);border-color:var(--blue);box-shadow:0 24px 50px -30px rgba(79,140,255,.7)}
.est:hover img{transform:scale(1.06)}
.est figcaption{position:absolute;left:18px;bottom:16px;z-index:2;font-family:var(--font-head);font-weight:700;color:var(--ice);font-size:1.08rem}
.est figcaption span{display:block;font-family:var(--font-body);font-weight:500;font-size:.8rem;color:var(--blue-bright);letter-spacing:.04em;margin-top:2px}

/* ============================================================
   REJOINDRE / STEPS
   ============================================================ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative;margin-bottom:60px}
.steps::before{content:"";position:absolute;top:34px;left:16%;right:16%;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong) 15%,var(--line-strong) 85%,transparent)}
.step{position:relative;text-align:center;padding:0 12px}
.step__ring{
  width:68px;height:68px;border-radius:50%;margin:0 auto 20px;position:relative;
  display:grid;place-items:center;background:var(--bg-850);
  border:1px solid var(--line-strong);
  box-shadow:0 0 0 6px rgba(6,10,22,1),0 0 34px -8px rgba(79,140,255,.6);
}
.step__ring::before{content:"";position:absolute;inset:-1px;border-radius:50%;padding:1px;background:conic-gradient(from 120deg,var(--blue),var(--cyan),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.step__ring span{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:var(--blue-bright)}
.step h3{font-size:1.2rem;margin-bottom:8px}
.step p{color:var(--muted);font-size:.96rem;max-width:280px;margin:0 auto}
.step__link{display:inline-block;margin-top:14px;color:var(--blue-bright);font-weight:600;font-size:.9rem;font-family:var(--font-head);transition:.25s}
.step__link:hover{color:var(--cyan);letter-spacing:.02em}

.join__panel{
  position:relative;overflow:hidden;text-align:center;
  padding:clamp(40px,6vw,68px) 30px;border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(16,26,54,.7),rgba(9,14,30,.5));
  border:1px solid var(--line-strong);
}
.join__glow{position:absolute;top:-40%;left:50%;transform:translateX(-50%);width:80%;height:120%;background:radial-gradient(circle,rgba(79,140,255,.28),transparent 60%);filter:blur(30px);pointer-events:none}
.join__panel h3{font-size:clamp(1.6rem,3.4vw,2.4rem);position:relative}
.join__panel p{color:var(--muted);margin:14px auto 30px;max-width:520px;position:relative}
.join__buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}

/* ============================================================
   FAQ
   ============================================================ */
.faq__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,80px);align-items:start}
.faq__intro{position:sticky;top:110px}
.faq__intro p{color:var(--muted);margin:16px 0 26px}
.faq__list{display:flex;flex-direction:column;gap:12px}
.qa{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,rgba(12,19,40,.5),rgba(8,12,26,.35));
  transition:border-color .3s;
}
.qa[open]{border-color:var(--line-strong)}
.qa summary{
  cursor:pointer;list-style:none;padding:20px 24px;font-family:var(--font-head);
  font-weight:600;font-size:1.05rem;color:var(--ice);display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-size:1.5rem;color:var(--blue-bright);transition:transform .3s;font-weight:400;line-height:1}
.qa[open] summary::after{transform:rotate(45deg)}
.qa__body{padding:0 24px 22px;color:var(--muted);font-size:.98rem;animation:fade .4s ease}
@keyframes fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{position:relative;border-top:1px solid var(--line);padding:70px 0 34px;overflow:hidden;background:linear-gradient(180deg,transparent,rgba(6,10,22,.6))}
.footer__glow{position:absolute;bottom:-60%;left:50%;transform:translateX(-50%);width:120%;height:120%;background:radial-gradient(circle,rgba(47,107,255,.12),transparent 55%);pointer-events:none}
.footer__grid{display:grid;grid-template-columns:1.4fr 2fr;gap:50px;position:relative}
.footer__brand>.brand{margin-bottom:16px}
.footer__brand p{color:var(--muted);max-width:320px;font-size:.96rem}
.socials{display:flex;gap:12px;margin-top:20px}
.social{
  width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--muted);
  background:rgba(17,25,46,.85);border:1px solid rgba(150,180,255,.28);
  transition:transform .2s cubic-bezier(.2,.8,.2,1),color .25s,background .25s,border-color .25s;
}
.social:hover{color:#fff;transform:translateY(-3px);border-color:rgba(160,190,255,.6);background:rgba(26,38,68,.9)}
.social[data-discord]:hover{border-color:#5865F2;background:rgba(88,101,242,.32);color:#fff}
.social[data-tiktok]:hover{border-color:#25F4EE;background:rgba(37,244,238,.18);color:#fff}

/* variantes navbar / hero */
.socials--nav{margin:0}
.socials--hero{margin:0;gap:14px}
.socials--hero .social{width:54px;height:54px;border-radius:16px}
.footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.footer__col h4{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:16px;font-weight:600}
.footer__col a{display:block;color:var(--text);font-size:.94rem;padding:5px 0;transition:.2s}
.footer__col a:hover{color:var(--blue-bright);transform:translateX(3px)}
.footer__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:50px;padding-top:24px;border-top:1px solid var(--line);position:relative}
.footer__bottom p{font-size:.82rem;color:var(--muted-2)}

/* ------- toast ------- */
.toast{
  position:fixed;bottom:28px;left:50%;transform:translate(-50%,120%);z-index:80;
  padding:14px 24px;border-radius:12px;font-size:.92rem;font-weight:500;color:var(--ice);
  background:rgba(12,20,42,.95);border:1px solid var(--blue);
  box-shadow:0 18px 44px -18px rgba(79,140,255,.9);backdrop-filter:blur(10px);
  transition:transform .5s cubic-bezier(.2,.9,.2,1);
}
.toast.show{transform:translate(-50%,0)}

/* ============================================================
   BOUTIQUE
   ============================================================ */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:60px}
.plan{position:relative;display:flex;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(180deg,rgba(12,19,40,.6),rgba(8,12,26,.5));border:1px solid var(--line);transition:transform .35s,border-color .35s,box-shadow .35s}
.plan:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:0 30px 60px -34px rgba(79,140,255,.55)}
.plan--featured{border-color:var(--blue);box-shadow:0 0 0 1px rgba(79,140,255,.6),0 30px 70px -30px rgba(79,140,255,.6)}
.plan--featured:hover{box-shadow:0 0 0 1px var(--blue),0 40px 80px -30px rgba(79,140,255,.8)}
/* ruban dans l'angle (corner ribbon) */
.plan__ribbon{
  position:absolute; top:19px; right:-56px; z-index:4; width:188px;
  transform:rotate(45deg); transform-origin:center;
  background:linear-gradient(135deg,#83b0ff,#3f74ff);
  color:#06122b; text-align:center;
  font-family:var(--font-head); font-weight:800; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  padding:9px 0;
}

.plan__media{position:relative;aspect-ratio:16/10;background:radial-gradient(circle at 32% 22%,rgba(79,140,255,.18),transparent 60%),linear-gradient(180deg,#0a1024,#070b18);border-bottom:1px solid var(--line);overflow:hidden;display:grid;place-items:center}
.plan__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.plan__vlabel{position:absolute;top:50%;right:12px;transform:translateY(-50%);writing-mode:vertical-rl;font-family:var(--font-head);font-weight:800;font-size:1.05rem;letter-spacing:.24em;color:rgba(150,180,255,.16);pointer-events:none}
.plan--featured .plan__vlabel{color:rgba(121,176,255,.32)}
.plan__soon{font-size:.74rem;color:var(--muted-2);letter-spacing:.1em;text-transform:uppercase;border:1px dashed var(--line-strong);padding:8px 16px;border-radius:10px;background:rgba(8,12,26,.4)}

.plan__body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:14px;flex:1}
.plan__tier{font-family:var(--font-head);font-weight:700;font-size:1.24rem;color:var(--ice)}
/* liste des avantages */
.plan__perks{list-style:none;display:flex;flex-direction:column;gap:11px;margin:2px 0 2px}
.plan__perks li{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--muted);line-height:1.25}
.plan__perks li svg{flex:none;color:var(--blue-bright)}
.plan--featured .plan__perks li{color:#c6d4ef}
.plan--featured .plan__perks li svg{color:#8fd0ff}
.plan__price{display:flex;align-items:baseline;gap:8px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.plan__price b{font-family:var(--font-head);font-weight:800;font-size:1.9rem;color:var(--ice);letter-spacing:-.02em}
.plan__price span{font-size:.82rem;color:var(--muted)}
.plan__btn{width:100%;justify-content:center;margin-top:12px}
.plus{color:var(--blue-bright)}

/* ---- tableau comparatif ---- */
.compare{max-width:920px;margin:0 auto}
.compare__scroll{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--line);background:rgba(8,12,26,.45);-webkit-overflow-scrolling:touch}
.ctable{width:100%;min-width:660px;border-collapse:collapse;font-size:.92rem}
.ctable th,.ctable td{padding:14px 16px;text-align:center;border-bottom:1px solid var(--line)}
.ctable thead th{font-family:var(--font-head);font-weight:700;font-size:1.02rem;color:var(--ice);border-bottom:1px solid var(--line-strong)}
.ctable__feat{text-align:left !important;color:var(--muted-2) !important;font-family:var(--font-head);font-weight:600;font-size:.82rem !important;letter-spacing:.1em;text-transform:uppercase}
.tier--basic{background:linear-gradient(180deg,rgba(160,175,205,.13),transparent)}
.tier--premium{background:linear-gradient(180deg,rgba(79,140,255,.30),rgba(79,140,255,.06));border-top:2px solid var(--blue-bright);border-left:1px solid rgba(120,160,255,.22);border-right:1px solid rgba(120,160,255,.22)}
.tier--plus{background:linear-gradient(180deg,rgba(200,222,255,.16),transparent)}
.ctable tbody th{text-align:left;font-family:var(--font-body);font-weight:500;color:var(--text);white-space:nowrap}
.ctable tbody td{color:var(--muted)}
/* zébrage discret pour la lisibilité */
.ctable tbody tr:not(.ctable__coins):nth-child(odd) th,
.ctable tbody tr:not(.ctable__coins):nth-child(odd) td:not(.is-hl){background:rgba(255,255,255,.02)}
/* colonne recommandée (Premium) surélevée */
.ctable td.is-hl{background:rgba(79,140,255,.11);color:var(--ice);font-weight:600;border-left:1px solid rgba(120,160,255,.18);border-right:1px solid rgba(120,160,255,.18)}
.ctable tbody tr:hover th,.ctable tbody tr:hover td{background:rgba(120,160,255,.06)}
.ctable tbody tr:hover td.is-hl{background:rgba(79,140,255,.16)}
.ctable td small{display:block;font-size:.7rem;color:var(--muted-2);margin-top:3px;letter-spacing:.02em}
.ctable__coins th,.ctable__coins td{border-bottom:0;font-family:var(--font-head);font-weight:800;font-size:1.2rem;padding-top:18px;padding-bottom:18px;background:rgba(10,16,34,.55)}
.ctable__coins td.is-hl{background:rgba(79,140,255,.12)}
.vcoin{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;background:linear-gradient(145deg,#ffe08a,#f2b23c);color:#5a3d00;font-size:.6rem;font-weight:800;font-family:var(--font-head);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45),0 0 10px -2px rgba(245,180,60,.6);vertical-align:middle;margin-right:2px}
.vcoin::before{content:"L"}
.compare__note{text-align:center;color:var(--muted-2);font-size:.82rem;margin-top:16px;max-width:640px;margin-inline:auto}
@media (max-width:860px){
  .plans{grid-template-columns:1fr;max-width:440px;margin-inline:auto}
}

/* ---- packs LysoCoins ---- */
.shop__subhead{margin-top:90px}
.coins{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.coin-pack{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:linear-gradient(180deg,rgba(12,19,40,.6),rgba(8,12,26,.5));transition:transform .35s,border-color .35s,box-shadow .35s}
.coin-pack:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:0 26px 54px -32px rgba(79,140,255,.6)}
.coin-pack--best{border-color:rgba(143,215,255,.5);box-shadow:0 0 0 1px rgba(143,215,255,.35)}
.coin-pack--best:hover{box-shadow:0 0 0 1px rgba(143,215,255,.6),0 30px 60px -30px rgba(143,215,255,.5)}

.coin-pack__visual{position:relative;aspect-ratio:1/1;display:grid;place-items:center;background:linear-gradient(180deg,#0b1226,#080d1c);border-bottom:1px solid var(--line);overflow:hidden}
.coin-pack__visual::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,var(--glow,#4f8cff),transparent 62%);opacity:.3}
.coin-pack__visual::after{content:"L";position:absolute;bottom:-18px;right:-6px;font-family:var(--font-head);font-weight:800;font-size:7rem;color:#fff;opacity:.05;line-height:1;z-index:1}
.coin-pack__amount{position:relative;z-index:2;font-family:var(--font-head);font-weight:800;font-size:clamp(1.8rem,4vw,2.4rem);color:#fff;text-shadow:0 6px 26px rgba(11,18,38,.7);letter-spacing:-.02em}
.coin-pack__unit{position:absolute;bottom:14px;left:0;right:0;z-index:2;text-align:center;font-family:var(--font-head);font-weight:700;letter-spacing:.16em;font-size:.68rem;color:rgba(224,235,255,.72)}
.coin-pack__unit .vcoin{width:16px;height:16px;font-size:.54rem}
.coin-pack__bonus{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:3;background:linear-gradient(135deg,#ffe08a,#f2b23c);color:#5a3d00;font-family:var(--font-head);font-weight:800;font-size:.64rem;letter-spacing:.02em;padding:4px 11px;border-radius:999px;box-shadow:0 6px 16px -8px rgba(245,180,60,.9);white-space:nowrap}

.coin-pack__body{padding:15px 16px 17px;display:flex;flex-direction:column;gap:8px;flex:1}
.coin-pack__name{font-family:var(--font-head);font-weight:700;color:var(--ice);font-size:.98rem}
.coin-pack__price{color:var(--muted);font-size:.9rem;margin-top:-2px}
.coin-pack__btn{width:100%;justify-content:center;margin-top:auto;--pad:11px 14px;font-size:.88rem}
@media (max-width:900px){.coins{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.coins{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0ms);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero__logo .logo-img,.hero__aurora::before,.hero__aurora::after,.hero__slide.is-active{animation:none}
  .hero__slide{transform:none}
  *{scroll-behavior:auto}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:960px){
  .univers__grid{grid-template-columns:1fr}
  .features{grid-template-columns:repeat(2,1fr)}
  .faq__grid{grid-template-columns:1fr}
  .faq__intro{position:static}
  .footer__grid{grid-template-columns:1fr}
}
@media (max-width:820px){
  .nav__burger{display:flex;margin-left:auto}
  .nav__panel{
    position:fixed;top:0;right:0;height:100dvh;width:min(82vw,340px);
    display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
    gap:8px;padding:96px 40px 40px;
    background:rgba(6,10,22,.97);backdrop-filter:blur(22px);
    border-left:1px solid var(--line);
    transform:translateX(110%);transition:transform .42s cubic-bezier(.2,.8,.2,1);
    z-index:48;
  }
  .nav__links{flex-direction:column;align-items:flex-start;gap:4px;margin:0;width:100%}
  .nav__links a{font-size:1.25rem;padding:12px 0}
  .nav__cta{flex-direction:column;align-items:stretch;width:100%;gap:12px;margin-top:24px}
  .nav__cta .btn{width:100%;justify-content:center}
  body.menu-open .nav__panel{transform:translateX(0)}
  body.menu-open{overflow:hidden}
}
@media (max-width:640px){
  .features{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:36px}
  .steps::before{display:none}
  .hero__stats{grid-template-columns:repeat(2,1fr);gap:24px 14px}
  .stat:nth-child(3)::before,.stat:nth-child(2)::before{display:none}
  .footer__cols{grid-template-columns:1fr 1fr}
  .footer__bottom{flex-direction:column;gap:8px}
  .brand__type{font-size:1rem}
}

/* ============================================================
   PAGE RÈGLEMENT (et pages secondaires)
   ============================================================ */
.nav__links a.is-active{color:var(--ice)}
.nav__links a.is-active::after{width:100%}

.pagehead{position:relative;overflow:hidden;padding:120px 0 44px;border-bottom:1px solid var(--line);text-align:center}
.pagehead__grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(79,140,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(79,140,255,.05) 1px,transparent 1px);
  background-size:60px 60px;
  -webkit-mask:radial-gradient(circle at 50% 0%,#000,transparent 72%);mask:radial-gradient(circle at 50% 0%,#000,transparent 72%)}
.pagehead__glow{position:absolute;top:-34%;left:50%;transform:translateX(-50%);width:min(760px,90vw);height:600px;background:radial-gradient(circle,rgba(79,140,255,.2),transparent 62%);filter:blur(20px);pointer-events:none}
.pagehead__inner{position:relative;z-index:2;max-width:760px;margin:0 auto}
.pagehead__title{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;margin:8px 0 0}
.pagehead__sub{color:var(--muted);margin:18px auto 0;max-width:600px}
.pagehead__meta{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:26px}
/* label + badges de confiance de l'en-tête boutique */
.pagehead__eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-head);font-weight:700;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-bright);margin-bottom:6px}
.pagehead__eyebrow::before,.pagehead__eyebrow::after{content:"";width:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(120,160,255,.65))}
.pagehead__eyebrow::after{background:linear-gradient(90deg,rgba(120,160,255,.65),transparent)}
.pagehead__badges{list-style:none;display:flex;flex-wrap:nowrap;justify-content:center;gap:10px;margin:26px auto 0}
.pagehead__badges li{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;font-size:.82rem;white-space:nowrap;color:var(--text);background:rgba(17,25,46,.7);border:1px solid rgba(120,160,255,.2)}
.pagehead__badges li svg{flex:none;color:var(--blue-bright)}
@media (max-width:560px){.pagehead__badges{flex-wrap:wrap}}
.backlink{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem;font-family:var(--font-head);font-weight:500;margin-bottom:22px;transition:.2s}
.backlink:hover{color:var(--blue-bright);gap:11px}
.chip{font-size:.78rem;padding:7px 14px;border-radius:999px;color:var(--blue-bright);background:rgba(79,140,255,.08);border:1px solid var(--line-strong)}
.chip--soft{color:var(--muted-2);background:rgba(120,160,255,.04);border-color:var(--line)}

.rules-section{padding-top:clamp(50px,7vw,80px)}
.rules{max-width:840px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
/* ============================================================
   BLOCS DE RÈGLES — DA épurée (éditorial : titre + filets, aéré)
   ============================================================ */
.rulecat{border:none;border-radius:0;overflow:visible;background:transparent;transition:none}
.rulecat:hover{border-color:transparent}
.rpanel .rulecat{border-left:none;margin-bottom:38px}
.rpanel .rulecat:last-child{margin-bottom:0}
/* en-tête : petit numéro coloré + titre, soulignés d'un filet */
.rulecat__head{display:flex;align-items:baseline;gap:11px;padding:0 2px 13px;background:transparent;border-bottom:1px solid var(--line)}
.rulecat__num{font-family:var(--font-head);font-weight:800;font-size:.9rem;color:var(--rc,var(--blue-bright));background:none;border:none;min-width:auto;height:auto;padding:0;display:inline;letter-spacing:.04em;box-shadow:none;opacity:.85}
.rulecat__head h2{font-size:1.16rem;letter-spacing:-.01em}
/* paragraphe d'intro éventuel */
.rulelead{color:var(--muted);font-size:.95rem;line-height:1.62;margin:16px 2px 0;max-width:840px}
/* règles : lignes aérées séparées par de fins filets, sans puce ni ligne */
.rulelist{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:8px}
.rulelist li{position:relative;padding:13px 16px;color:var(--text);font-size:.97rem;line-height:1.55;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.06);border-left:2px solid color-mix(in srgb,var(--rc,#4f8cff) 55%,transparent);border-radius:10px;transition:background .2s,border-color .2s,color .2s}
.rulelist li:hover{background:rgba(120,160,255,.07);border-left-color:var(--rc,#4f8cff);color:#fff}
.rulelist li b{color:var(--ice);font-weight:600}
.rulelist li b{color:var(--ice);font-weight:600}

.rules__cta{position:relative;overflow:hidden;text-align:center;padding:clamp(26px,3.5vw,40px) 30px;border-radius:var(--radius-lg);background:linear-gradient(180deg,rgba(16,26,54,.6),rgba(9,14,30,.5));border:1px solid var(--line-strong);margin-top:14px}
.rules__cta h3{font-size:clamp(1.3rem,2.4vw,1.7rem);position:relative}
.rules__cta p{color:var(--muted);margin:10px auto 22px;max-width:460px;position:relative;font-size:.95rem}

/* ============================================================
   RÈGLEMENT — catégories (Général / Illégal / Public / Légal)
   ============================================================ */
.rcat--general,.rtab--general,.rpanel--general{--rc:#79b0ff;--rc2:#4f8cff}
.rcat--illegal,.rtab--illegal,.rpanel--illegal{--rc:#d8b4fe;--rc2:#a855f7}
.rcat--public,.rtab--public,.rpanel--public{--rc:#7dd3fc;--rc2:#0ea5e9}
.rcat--legal,.rtab--legal,.rpanel--legal{--rc:#fcd34d;--rc2:#f59e0b}

/* cartes catégories */
.rcats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:40px}
.rcat{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;min-height:190px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;text-align:left;color:var(--ice);transition:transform .35s,box-shadow .35s,border-color .35s;font-family:var(--font-body)}
.rcat__media{position:absolute;inset:0;z-index:0;overflow:hidden;background:linear-gradient(160deg,var(--rc2),rgba(8,12,26,.78) 78%)}
.rcat__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.rcat::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(4,6,14,.05) 0%,rgba(4,6,14,.35) 45%,rgba(4,6,14,.92) 100%)}
/* barre d'accent couleur en bas (identité de catégorie au repos) */
.rcat::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;z-index:2;background:linear-gradient(90deg,var(--rc),var(--rc2));transform:scaleX(.4);transform-origin:left;transition:transform .35s ease}
.rcat:hover::before{transform:scaleX(1)}
.rcat:hover{transform:translateY(-6px);border-color:var(--rc);box-shadow:0 26px 54px -30px var(--rc2)}
.rcat:hover .rcat__media img{transform:scale(1.06)}
.rcat__ic{position:absolute;top:16px;left:18px;z-index:2;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:#fff;background:rgba(6,10,22,.42);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(6px)}
.rcat__ic .rico{width:22px;height:22px}
.rcat__body{position:relative;z-index:2}
.rcat__body h3{font-size:1.3rem;margin-bottom:3px;font-family:var(--font-head)}
.rcat__body>span{display:block;color:rgba(255,255,255,.82);font-size:.85rem}
.rcat__go{margin-top:12px;font-family:var(--font-head);font-weight:700;font-size:.85rem;color:#fff}

/* navbar perso du règlement — pastille compacte, dans le flux (pas de 2e navbar) */
.rnav{text-align:center;margin-bottom:34px}
.rnav__inner{position:relative;display:inline-flex;gap:4px;max-width:100%;overflow-x:auto;padding:6px;border-radius:999px;border:1px solid var(--line-strong);background:rgba(9,14,30,.72);backdrop-filter:blur(10px);box-shadow:0 14px 34px -24px rgba(0,0,0,.85)}
/* pastille active qui glisse d'un onglet à l'autre */
.navpill{position:absolute;left:0;top:0;z-index:0;pointer-events:none;background:linear-gradient(135deg,var(--rc,#4f8cff),var(--rc2,#2f6bff));transition:transform .4s cubic-bezier(.16,.84,.28,1),width .4s cubic-bezier(.16,.84,.28,1),height .35s ease}
.rnav__inner::-webkit-scrollbar{height:0}
.rtab{position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-family:var(--font-head);font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:color .3s}
.rtab .rico{width:15px;height:15px;flex:0 0 auto}
.rtab:hover{color:var(--ice)}
.rtab.is-active{color:#04060e;background:transparent}

/* panels */
.rpanels{max-width:880px;margin:0 auto;position:relative}
/* transition par CSS (fiable) — état visible garanti même sans animation */
.rpanel{display:none;transition:opacity .4s ease, transform .45s cubic-bezier(.16,.84,.28,1)}
.rpanel.is-active{display:block}          /* visible par défaut (opacity 1) */
.rpanel.is-enter{opacity:0;transform:translateY(24px)}   /* état de départ temporaire, retiré en JS */
.rpanel.is-exit{display:block;position:absolute;left:0;right:0;top:0;z-index:1;pointer-events:none;opacity:0;transform:translateY(-18px)}
.rpanel__banner{position:relative;overflow:hidden;display:flex;align-items:center;gap:18px;padding:22px 26px;border-radius:var(--radius-lg);margin-bottom:22px;border:1px solid var(--line-strong);background:linear-gradient(100deg,var(--rc2),rgba(10,16,34,.82) 82%) center/cover no-repeat;background-color:#0a1226}
/* image de fond par catégorie (dégradé coloré par-dessus pour la lisibilité) */
.rpanel--general .rpanel__banner{background-image:linear-gradient(100deg,var(--rc2) 0%,color-mix(in srgb,var(--rc2) 42%,transparent) 46%,rgba(6,10,20,.55) 100%),url("../img/reglement/7.webp")}
.rpanel--illegal .rpanel__banner{background-image:linear-gradient(100deg,var(--rc2) 0%,color-mix(in srgb,var(--rc2) 42%,transparent) 46%,rgba(6,10,20,.55) 100%),url("../img/reglement/2.webp")}
.rpanel--public .rpanel__banner{background-image:linear-gradient(100deg,var(--rc2) 0%,color-mix(in srgb,var(--rc2) 42%,transparent) 46%,rgba(6,10,20,.55) 100%),url("../img/reglement/3.webp")}
.rpanel--legal .rpanel__banner{background-image:linear-gradient(100deg,var(--rc2) 0%,color-mix(in srgb,var(--rc2) 42%,transparent) 46%,rgba(6,10,20,.55) 100%),url("../img/reglement/5.webp")}
.rpanel__banner::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% -20%,rgba(255,255,255,.22),transparent 50%);pointer-events:none}
.rpanel__ic{position:relative;z-index:2;color:#fff;display:grid;place-items:center}
.rpanel__ic .rico{width:30px;height:30px}
.rico{display:block}
.rpanel__banner h2{font-size:1.4rem;color:#fff;position:relative;z-index:2}
.rpanel__banner p{color:rgba(255,255,255,.85);font-size:.92rem;margin-top:2px;position:relative;z-index:2}
/* espacement entre les blocs de règles */
.rpanel .rulecat{margin-bottom:22px}
.rpanel .rulecat:last-child{margin-bottom:0}
/* accents catégorie sur les règles */
.rpanel .rulecat__num{background:none;box-shadow:none;color:var(--rc)}
.rpanel .rulelist li::before{color:var(--rc)}

@media (max-width:900px){.rcats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.rcats{grid-template-columns:1fr}}

/* ---- sous-onglets Illégal + lead ---- */
.rulelead{padding:2px 26px 8px;color:var(--muted);font-size:.96rem}
.rulelead b{color:var(--ice);font-weight:600}
.subtabs{position:relative;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0 0 26px;padding:6px;border:1px solid var(--line);border-radius:16px;background:rgba(9,14,30,.5)}
.subtab{position:relative;z-index:1;padding:8px 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-family:var(--font-head);font-weight:600;font-size:.82rem;cursor:pointer;white-space:nowrap;transition:color .3s}
.subtab:hover{color:var(--ice);background:rgba(255,255,255,.05)}
.subtab.is-active{color:#04060e;background:transparent}
.subpanel{display:none;transition:opacity .35s ease, transform .4s cubic-bezier(.16,.84,.28,1)}
.subpanel.is-enter{opacity:0;transform:translateY(16px)}
.subpanel.is-active{display:block}

/* ============================================================
   PASSE POLISH PREMIUM (redesign-skill + emil-design-eng)
   ============================================================ */
:root{ --ease-out:cubic-bezier(.22,1,.36,1); }

/* chiffres tabulaires pour tout ce qui est numérique */
.plan__price b, .coin-pack__amount, .rulecat__num, .connect__ip code,
.ctable td, .ctable th, .footer__bottom { font-variant-numeric:tabular-nums; }

/* titres équilibrés, paragraphes sans mots orphelins */
h1, h2, h3, .section__title, .hero__title, .pagehead__title { text-wrap:balance; }
p, .hero__sub, .section__lead, .rulelist li { text-wrap:pretty; }

/* la navbar fixe ne masque plus les titres au clic d'ancre */
section[id]{ scroll-margin-top:88px; }

/* focus clavier accessible (invisible à la souris) */
a:focus-visible, button:focus-visible, summary:focus-visible,
.rtab:focus-visible, .subtab:focus-visible, .rcat:focus-visible,
.connect__ip:focus-visible, .social:focus-visible, .qa summary:focus-visible {
  outline:2px solid var(--blue-bright); outline-offset:3px; border-radius:10px;
}
:focus:not(:focus-visible){ outline:none; }

/* retour tactile à l'appui (feeling physique) */
.btn:active{ transform:translateY(0) scale(.975); }
.social:active, .rtab:active, .subtab:active{ transform:scale(.94); }
.rcat:active, .plan:active, .feat:active, .ucard:active,
.coin-pack:active, .est:active, .rulecat:active{ transform:translateY(-2px) scale(.995); }
.connect__ip:active, .step__link:active{ transform:scale(.98); }

/* courbes ease-out cohérentes sur les surfaces animées */
.feat, .ucard, .plan, .coin-pack, .rcat, .social, .btn,
.step__ring, .est, .rulecat{ transition-timing-function:var(--ease-out); }

/* glassmorphism affiné : liseré interne = réfraction de bord */
.nav.scrolled{ box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.rnav__inner, .subtabs, .connect__ip, .hero__stats,
.rpanel__banner, .join__panel, .rules__cta{ box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }

/* liens réseaux : micro-lift plus vif au survol (emil : hover rapide) */
.social{ transition:transform .18s var(--ease-out), color .25s, background .25s, border-color .25s, box-shadow .25s; }

/* spotlight au curseur sur les cartes (redesign-skill : spotlight cards) */
@media (pointer:fine){
  .plan::before, .coin-pack::before{
    content:""; position:absolute; inset:0; border-radius:inherit; z-index:3; pointer-events:none;
    opacity:0; transition:opacity .35s var(--ease-out);
    background:radial-gradient(240px circle at var(--mx,50%) var(--my,0%), rgba(121,176,255,.13), transparent 60%);
  }
  .plan:hover::before, .coin-pack:hover::before{ opacity:1; }
}

/* ============================================================
   SUPPRESSION DE TOUS LES HALOS / LUEURS (demande user)
   ============================================================ */
/* lueurs radiales décoratives des sections */
.join__glow, .footer__glow, .pagehead__glow, .hero__glow, .hero__aurora{ display:none !important; }
/* halo derrière le logo + ombres-lueur du logo */
.hero__logo::after{ display:none !important; }
.hero__logo .logo-img, .brand__mark .logo-img{ filter:none !important; }
/* glow du mot dégradé "Lysoria" */
.grad{ filter:none !important; }
/* pastille "populaire" et panneaux : on garde la couleur mais on coupe la lueur diffuse */
.plan--featured{ box-shadow:0 0 0 1px rgba(79,140,255,.55) !important; }

/* ============================================================
   FONDS CINÉMATIQUES (captures GTA du serveur)
   ============================================================ */
/* hero : photo nuit assombrie derrière le contenu */
/* diaporama du hero : crossfade + léger zoom (Ken Burns) */
.hero__photos{position:absolute; inset:0; z-index:-2; overflow:hidden; pointer-events:none;}
.hero__slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transform:scale(1.05); transition:opacity 1.8s ease; will-change:opacity,transform;
}
.hero__slide.is-active{opacity:1; animation:kenburns 9s ease-out forwards;}
@keyframes kenburns{from{transform:scale(1.05)} to{transform:scale(1.16)}}
/* voile sombre constant par-dessus le diaporama (lisibilité) */
.hero__scrim{
  position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:linear-gradient(180deg, rgba(4,6,14,.72), rgba(4,6,14,.5) 46%, rgba(4,6,14,.92));
}
/* section L'univers : ambiance à droite, texte protégé à gauche */
.univers{ position:relative; overflow:hidden; }
.univers__bg{
  position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.42;
  background:
    linear-gradient(90deg, var(--bg-900) 24%, rgba(4,6,14,.4) 100%),
    url(../img/reglement/8.webp) center right/cover no-repeat;
}
.univers__grid{ position:relative; z-index:1; }
/* en-tête de la page Règlement */
.pagehead__photo{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(4,6,14,.7), rgba(4,6,14,.92)),
    url(../img/reglement/1.webp) center/cover no-repeat;
}
.pagehead__inner{ position:relative; z-index:2; }
/* bannière catégorie Illégal : photo sous le dégradé violet */
.rpanel--illegal .rpanel__banner{
  background-image:
    linear-gradient(120deg, rgba(168,85,247,.82), rgba(10,16,34,.9) 82%),
    url(../img/reglement/6.webp);
  background-size:cover; background-position:center;
}

/* ============================================================
   ZÉRO GLOW (demande user) — aucune lueur, y compris au survol
   ============================================================ */
.plan::before, .coin-pack::before{ display:none !important; }   /* spotlight curseur */
.coin-pack__visual::before{ opacity:0 !important; }             /* lueur derrière les LysoCoins */
.rpanel__banner::after{ display:none !important; }              /* reflet lumineux des bannières */
*{ box-shadow:none !important; }                                /* toutes les ombres-lueur (survol inclus) */

/* ============================================================
   PAGE LORE — "à venir" mystérieux
   ============================================================ */
.lore-page{ background:#04060c; }
/* scanlines CRT subtiles */
.scanlines{
  position:fixed; inset:0; z-index:59; pointer-events:none; opacity:.45;
  background:repeating-linear-gradient(180deg, rgba(0,0,0,0) 0 2px, rgba(0,0,0,.22) 2px 3px);
  mix-blend-mode:multiply;
}
.lorehero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; padding:130px 0 90px; isolation:isolate; background:#04060c; }
/* fond animé (portail + particules, dessiné en canvas) */
.lorehero__fx{ position:absolute; inset:0; z-index:0; width:100%; height:100%; display:block; }
.lorehero__vignette{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(125% 100% at 50% 44%, transparent 44%, rgba(4,6,12,.72) 100%),
    linear-gradient(180deg, rgba(4,6,12,.25), rgba(4,6,12,.7));
}
.lorehero__inner{ position:relative; z-index:2; max-width:780px; margin:0 auto; text-align:center; display:flex; flex-direction:column; align-items:center; }

.lore__tag{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-head); font-weight:600; font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--line); padding:8px 15px; border-radius:999px; background:rgba(255,255,255,.02);
}
.lore__dot{ width:7px; height:7px; border-radius:50%; background:#ff5a5a; animation:loreBlink 1.6s steps(2,end) infinite; }
@keyframes loreBlink{ 50%{opacity:.15} }

.lore__title{
  position:relative; font-family:var(--font-head); font-weight:800;
  font-size:clamp(4.5rem,20vw,12rem); line-height:.88; letter-spacing:-.05em; color:var(--ice);
  margin:22px 0 0;
}
.lore__title::before, .lore__title::after{ content:attr(data-text); position:absolute; inset:0; pointer-events:none; }
.lore__title::before{ color:#39c9ff; clip-path:inset(0 0 56% 0); transform:translateX(-2px); opacity:.65; mix-blend-mode:screen; animation:glitchTop 4.2s infinite steps(2,end); }
.lore__title::after{ color:#ff466b; clip-path:inset(56% 0 0 0); transform:translateX(2px); opacity:.65; mix-blend-mode:screen; animation:glitchBot 3.4s infinite steps(2,end); }
@keyframes glitchTop{ 0%,90%,100%{transform:translateX(-2px)} 92%{transform:translate(5px,-2px)} 95%{transform:translate(-6px,1px)} 97%{transform:translate(3px,-1px)} }
@keyframes glitchBot{ 0%,88%,100%{transform:translateX(2px)} 91%{transform:translate(-5px,2px)} 94%{transform:translate(6px,-1px)} 98%{transform:translate(-3px,1px)} }

.lore__sub{ color:var(--text); font-size:clamp(1rem,1.6vw,1.2rem); max-width:560px; margin:26px auto 0; }
.lore__decrypt{
  font-family:var(--font-head); font-weight:600; letter-spacing:.14em; font-size:.9rem;
  color:#7fd3ff; margin-top:18px; min-height:1.3em; word-break:break-word;
}
.lore__redacted{ margin:36px auto 0; display:flex; flex-direction:column; gap:12px; width:100%; max-width:540px; }
.redline{ display:flex; align-items:center; gap:16px; opacity:0; transform:translateY(12px); animation:redIn .7s cubic-bezier(.16,.84,.28,1) forwards; }
.redline:nth-child(1){ animation-delay:.15s; --p:38% } .redline:nth-child(2){ animation-delay:.32s; --p:22% } .redline:nth-child(3){ animation-delay:.49s; --p:31% }
@keyframes redIn{ to{ opacity:1; transform:translateY(0) } }
.redline .rk{ font-family:var(--font-head); font-weight:700; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); white-space:nowrap; min-width:104px; text-align:right; }
/* ---- barre de chargement (verrouillée à --p, reflet + statut) ---- */
.redline .rb{ position:relative; height:16px; flex:1; border-radius:999px; overflow:hidden;
  background:linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,.16));
  border:1px solid rgba(120,160,255,.2); }
/* remplissage : charge de 0 à --p puis se bloque, avec un reflet qui balaie */
.redline .rb::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:var(--p,35%); z-index:1; border-radius:999px;
  background:
    linear-gradient(90deg, transparent, rgba(255,255,255,.45) 50%, transparent) -60px 0 / 60px 100% no-repeat,
    linear-gradient(90deg, #2f61e6, #79b0ff);
  animation:barLoad 2.4s cubic-bezier(.2,.85,.25,1) both, barShimmer 1.7s linear infinite 2.4s; }
@keyframes barLoad{ from{ width:0 } to{ width:var(--p,35%) } }
@keyframes barShimmer{ from{ background-position:-60px 0, 0 0 } to{ background-position:calc(100% + 60px) 0, 0 0 } }
/* statut CLASSIFIÉ à droite, qui grésille */
.redline .rb::after{ content:"CLASSIFIÉ"; position:absolute; right:12px; top:50%; transform:translateY(-50%); z-index:2;
  font-family:var(--font-head); font-weight:800; font-size:.54rem; letter-spacing:.28em; text-indent:.28em;
  color:rgba(190,212,255,.62); animation:classifiedFlicker 4s steps(1,end) infinite; }
@keyframes classifiedFlicker{ 0%,90%,100%{opacity:.62} 91%{opacity:.16} 93%{opacity:.7} 95%{opacity:.24} 97%{opacity:.55} }

.lore__status{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:42px; flex-wrap:wrap; }
.badge-soon{
  font-family:var(--font-head); font-weight:800; letter-spacing:.16em; text-transform:uppercase; font-size:.76rem;
  color:#04060e; background:linear-gradient(135deg,#e7edff,#9fb6e0); padding:11px 20px; border-radius:8px;
}

/* ============================================================
   EFFET CRT (vieil écran cathodique) — page Lore
   ============================================================ */
.crt{ position:fixed; inset:0; z-index:58; pointer-events:none; }
/* barre de balayage horizontale qui roule (rafraîchissement CRT) */
.crt::before{ content:""; position:absolute; left:0; right:0; height:150px; z-index:1;
  background:linear-gradient(180deg, transparent, rgba(150,205,255,.05) 45%, rgba(150,205,255,.10) 50%, rgba(150,205,255,.05) 55%, transparent);
  animation:crtRoll 7.5s linear infinite; }
@keyframes crtRoll{ from{ transform:translateY(-170px) } to{ transform:translateY(102vh) } }
/* courbure / vignette d'écran (aucune box-shadow) */
.crt::after{ content:""; position:absolute; inset:0;
  background:radial-gradient(128% 120% at 50% 50%, transparent 54%, rgba(2,4,10,.5) 100%); }
/* ---- Tablette autour du contenu (le portail reste en fond) ---- */
.lore-tablet{
  position:relative; z-index:2; width:min(680px,92vw); margin:0 auto;
  padding:16px; border-radius:40px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,0) 9%),   /* reflet arête haute */
    linear-gradient(158deg, #2d333f 0%, #191d27 44%, #0b0d14 100%);           /* corps métallique */
  border:1px solid rgba(0,0,0,.5);
  filter:drop-shadow(0 34px 60px rgba(0,0,0,.62)) drop-shadow(0 8px 16px rgba(0,0,0,.45));
}
/* creux/arête interne autour de l'écran (effet dalle encastrée) */
.lore-tablet::before{ content:""; position:absolute; inset:16px; z-index:3; pointer-events:none; border-radius:26px;
  border:1px solid rgba(0,0,0,.55); box-shadow:none; }
.lore-tablet::after{ content:""; position:absolute; inset:16px; z-index:3; pointer-events:none; border-radius:26px;
  border-top:1px solid rgba(255,255,255,.06); }
/* l'écran de la tablette (allumé, rétroéclairé) */
.lore-screen.lorehero__inner{
  position:relative; z-index:1; overflow:hidden; border-radius:24px; max-width:none; margin:0;
  padding:clamp(28px,4vw,46px) clamp(22px,3.5vw,40px) clamp(30px,4vw,44px);
  background:radial-gradient(115% 100% at 50% 32%, rgba(20,36,76,.96), rgba(8,14,28,.97) 70%, rgba(5,8,16,.98));
  border:1px solid rgba(120,160,255,.14);
}
/* reflet de verre (diagonale) + fines scanlines = écran réel */
.lore-screen::after{ content:""; position:absolute; inset:0; z-index:6; pointer-events:none; border-radius:24px;
  background:
    linear-gradient(122deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.03) 15%, transparent 33%, transparent 67%, rgba(255,255,255,.03) 100%),
    repeating-linear-gradient(0deg, rgba(0,0,0,.09) 0 1px, transparent 1px 3px); }
.lore-screen::before{ content:""; position:absolute; left:0; right:0; top:0; height:80px; z-index:5; pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(150,205,255,.08) 50%, transparent);
  animation:screenRoll 5s linear infinite; }
@keyframes screenRoll{ from{transform:translateY(-90px)} to{transform:translateY(520px)} }
/* les enfants au-dessus des scanlines */
.lore-screen > *{ position:relative; z-index:7; }
/* on masque les overlays plein-page (remplacés par ceux de la tablette) */
.lore-page .scanlines, .lore-page .crt{ display:none; }
/* titre adapté à la tablette */
.lore__title{ font-size:clamp(2.8rem,8vw,5.4rem); }
/* scintillement global de l'écran */
.lore-page{ animation:crtFlicker 5s steps(1,end) infinite; }
@keyframes crtFlicker{ 0%,92%,100%{filter:none} 93%{filter:brightness(1.07)} 94%{filter:brightness(.95)} 96%{filter:brightness(1.04)} 98%{filter:brightness(.97)} }

/* lueur phosphore (text-shadow, PAS de box-shadow) */
.lore__title{ text-shadow:0 0 26px rgba(120,190,255,.4), 0 0 6px rgba(120,190,255,.45); }
.lore__sub{ text-shadow:0 0 10px rgba(120,190,255,.28); }
.lore__decrypt{ text-shadow:0 0 9px rgba(120,190,255,.45); }

/* en-tête façon terminal + curseur clignotant */
.lore__term{ font-family:var(--font-head); font-weight:700; font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
  color:rgba(150,200,255,.82); margin:0 0 16px; text-shadow:0 0 9px rgba(120,190,255,.4); }
.lore__cursor{ display:inline-block; margin-left:5px; color:#9fd0ff; animation:termBlink 1.05s steps(1,end) infinite; }
@keyframes termBlink{ 0%,50%{opacity:1} 51%,100%{opacity:0} }

@media (prefers-reduced-motion:reduce){
  .lorehero__bg,.lore__title::before,.lore__title::after,.lore__dot{ animation:none }
  .redline{ opacity:1; transform:none; animation:none }
  .redline .rb::before, .redline .rb::after{ animation:none }
  .crt::before, .lore-screen::before{ animation:none; opacity:0 }
  .lore-page{ animation:none }
  .lore__cursor{ animation:none }
}

/* ============================================================
   CADRES LYSOCOINS (pièce d'or + nombre)
   ============================================================ */
/* tuile dorée simple avec le nombre */
.coin-pack__visual{
  position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  aspect-ratio:1/1.08; padding:18px 14px; overflow:hidden; border-bottom:0;
  background:
    radial-gradient(115% 80% at 26% 14%, rgba(255,255,255,.36), transparent 50%),
    radial-gradient(130% 95% at 50% 122%, rgba(0,0,0,.42), transparent 56%),
    linear-gradient(158deg, var(--t1,#f7c94f), var(--t2,#c8811b));
}
/* liseré interne clair (relief, sans box-shadow) */
.coin-pack__visual::after{
  content:""; display:block; position:absolute; inset:0; z-index:1; pointer-events:none;
  border:1px solid rgba(255,255,255,.14); border-top-color:rgba(255,255,255,.32);
}
.coin-pack__amount{ position:static; z-index:2; color:#fff; font-weight:800; font-size:clamp(2.1rem,5vw,2.8rem); letter-spacing:-.01em; text-shadow:0 2px 3px rgba(0,0,0,.28), 0 10px 24px rgba(0,0,0,.3); }
/* "+X offert" en bas, hors flux (ne décale pas le nombre) */
.coin-pack__plus{
  position:absolute; bottom:12px; left:50%; transform:translateX(-50%); z-index:2;
  font-family:var(--font-head); font-weight:700; font-size:.72rem; letter-spacing:.03em;
  color:#fff; background:rgba(8,11,20,.72); border:1px solid rgba(255,255,255,.14);
  padding:4px 12px; border-radius:999px; white-space:nowrap; backdrop-filter:blur(2px);
}
.coin-pack__unit{ position:static; bottom:auto; left:auto; right:auto; color:rgba(255,255,255,.82); letter-spacing:.16em; }
/* badge "+X offerts" : sombre pour contraster sur l'or */
.coin-pack__bonus{ top:12px; background:rgba(9,12,22,.9); color:#ffe6a0; box-shadow:none; }
/* pièce alignée à droite du montant dans le tableau */
.vcoin-svg{ width:23px; height:23px; }
.coinval{ display:inline-flex; align-items:center; justify-content:center; gap:6px; line-height:1; }
.coinval .vcoin-svg{ margin-top:-1px; }

/* ============================================================
   PANIER (page Boutique)
   ============================================================ */
.cart-btn{ position:relative; display:inline-grid; place-items:center; width:42px; height:42px; border-radius:12px; border:1px solid var(--line); background:rgba(120,160,255,.06); color:var(--ice); cursor:pointer; transition:border-color .25s, background .25s; }
.cart-btn:hover{ border-color:var(--blue); background:rgba(79,140,255,.14); }
.cart-count{ position:absolute; top:-6px; right:-6px; min-width:18px; height:18px; padding:0 4px; border-radius:999px; background:var(--blue); color:#04060e; font-family:var(--font-head); font-weight:800; font-size:.66rem; display:grid; place-items:center; transform:scale(0); transition:transform .2s var(--ease-out); }
.cart-count.show{ transform:scale(1); }

.cart-overlay{ position:fixed; inset:0; z-index:70; background:rgba(3,5,12,.6); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity .35s; }
.cart-overlay.open{ opacity:1; pointer-events:auto; }
.cart{ position:fixed; top:0; right:0; height:100dvh; width:min(420px,92vw); z-index:71; display:flex; flex-direction:column; background:linear-gradient(180deg,#0a0f1e,#070b16); border-left:1px solid var(--line-strong); transform:translateX(101%); transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.cart.open{ transform:none; }
.cart__head{ display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--line); }
.cart__head h3{ font-size:1.15rem; }
.cart__close{ width:38px; height:38px; border-radius:10px; border:1px solid var(--line); background:transparent; color:var(--text); cursor:pointer; display:grid; place-items:center; transition:.2s; }
.cart__close:hover{ color:var(--ice); border-color:var(--blue); }
.cart__body{ flex:1; overflow-y:auto; padding:16px 24px; }
.cart__empty{ text-align:center; color:var(--muted); margin-top:44px; line-height:1.9; }
.cart__empty span{ font-size:.88rem; color:var(--muted-2); }
.cart__items{ list-style:none; display:flex; flex-direction:column; gap:12px; }
.citem{ display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.02); }
.citem__info{ flex:1; min-width:0; }
.citem__name{ font-family:var(--font-head); font-weight:600; color:var(--ice); font-size:.95rem; }
.citem__price{ color:var(--muted); font-size:.84rem; }
.citem__qty{ display:inline-flex; align-items:center; gap:8px; }
.citem__qty button{ width:26px; height:26px; border-radius:8px; border:1px solid var(--line); background:transparent; color:var(--ice); cursor:pointer; font-size:1rem; line-height:1; display:grid; place-items:center; }
.citem__qty button:hover{ border-color:var(--blue); }
.citem__qty span{ min-width:16px; text-align:center; font-weight:700; }
.citem__remove{ background:none; border:0; color:var(--muted-2); cursor:pointer; padding:4px; font-size:.85rem; }
.citem__remove:hover{ color:#ff6b6b; }

.cart__foot{ border-top:1px solid var(--line); padding:20px 24px; }
.cart__total{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:16px; }
.cart__total span{ color:var(--muted); }
.cart__total b{ font-family:var(--font-head); font-size:1.5rem; color:var(--ice); }
.cart__login{ padding:14px 16px; border:1px dashed var(--line-strong); border-radius:14px; margin-bottom:14px; }
.cart__login.done{ border-style:solid; border-color:rgba(87,224,142,.4); background:rgba(87,224,142,.06); }
.cart__hint{ color:var(--muted); font-size:.85rem; margin-bottom:12px; }
.cart__wide{ width:100%; justify-content:center; }
.cart__secure{ text-align:center; color:var(--muted-2); font-size:.78rem; margin-top:12px; }
#checkoutBtn:disabled{ opacity:.45; cursor:not-allowed; pointer-events:none; }
.pagehead--shop{ padding-bottom:16px; }
@media (max-width:820px){ .cart-btn{ order:-1; } }

/* ============================================================
   FORMULAIRE DE RECRUTEMENT
   ============================================================ */
.wrap--form{ max-width:720px; }
.rform{ display:flex; flex-direction:column; gap:18px;
  background:linear-gradient(180deg,rgba(12,19,40,.5),rgba(8,12,26,.4));
  border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(22px,3vw,34px); }
.field{ display:flex; flex-direction:column; gap:7px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field label{ font-family:var(--font-head); font-weight:600; font-size:.86rem; color:var(--ice); }
.field .req{ color:var(--blue-bright); }
.field input, .field select, .field textarea{
  width:100%; padding:12px 14px; border-radius:12px; border:1px solid var(--line-strong);
  background:rgba(8,12,24,.7); color:var(--text); font-family:var(--font-body); font-size:.95rem;
  transition:border-color .2s, background .2s; }
.field input::placeholder, .field textarea::placeholder{ color:var(--muted-2); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--blue); background:rgba(12,18,36,.9); }
.field textarea{ resize:vertical; min-height:82px; line-height:1.5; }
.field select{ appearance:none; cursor:pointer; padding-right:38px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237aa2ff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; }
.field select option{ background:#0a1024; color:var(--text); }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; pointer-events:none; }
.rform__consent{ display:flex; align-items:flex-start; gap:10px; font-size:.88rem; color:var(--muted); cursor:pointer; }
.rform__consent input{ margin-top:2px; accent-color:var(--blue); width:16px; height:16px; flex:none; }
.rform__consent a{ color:var(--blue-bright); }
.rform__submit{ align-self:flex-start; margin-top:2px; }
.rform__status{ font-size:.9rem; min-height:1.2em; margin:2px 0 0; }
.rform__status.ok{ color:#57e08e; }
.rform__status.err{ color:#ff6b6b; }
@media (max-width:560px){ .field-row{ grid-template-columns:1fr; } .rform__submit{ align-self:stretch; justify-content:center; } }

/* ---- Dropdown 100% custom (remplace le <select> natif) ---- */
.csel{ position:relative; }
.csel__btn{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:12px 14px; border-radius:12px; border:1px solid var(--line-strong);
  background:rgba(8,12,24,.7); color:var(--text); font-family:var(--font-body); font-size:.95rem;
  cursor:pointer; text-align:left; transition:border-color .2s, background .2s; }
.csel__btn:focus-visible{ outline:none; border-color:var(--blue); }
.csel.open .csel__btn{ border-color:var(--blue); background:rgba(12,18,36,.9); }
.csel__val.is-placeholder{ color:var(--muted-2); }
.csel__chev{ flex:none; color:var(--blue-bright); transition:transform .25s; }
.csel.open .csel__chev{ transform:rotate(180deg); }
.csel__list{ position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:20; list-style:none; margin:0; padding:6px;
  background:#0a1024; border:1px solid var(--line-strong); border-radius:12px; max-height:240px; overflow:auto;
  opacity:0; transform:translateY(-6px); pointer-events:none; transition:opacity .2s, transform .2s; }
.csel.open .csel__list{ opacity:1; transform:translateY(0); pointer-events:auto; }
.csel__opt{ padding:11px 12px; border-radius:8px; color:var(--text); font-size:.94rem; cursor:pointer;
  transition:background .15s, color .15s; }
.csel__opt:hover, .csel__opt.active{ background:rgba(120,160,255,.12); color:#fff; }
.csel__opt[aria-selected="true"]{ color:var(--blue-bright); font-weight:600; }
/* scrollbar maison de la liste */
.csel__list::-webkit-scrollbar{ width:8px; }
.csel__list::-webkit-scrollbar-track{ background:transparent; }
.csel__list::-webkit-scrollbar-thumb{ background:rgba(120,160,255,.28); border-radius:8px; }
.csel__list::-webkit-scrollbar-thumb:hover{ background:rgba(120,160,255,.45); }
.csel__list{ scrollbar-width:thin; scrollbar-color:rgba(120,160,255,.35) transparent; }

.field__hint{ font-size:.76rem; color:var(--muted-2); margin-top:1px; line-height:1.4; }

/* ---- Scrollbar personnalisée (tout le site : textareas, listes, page) ---- */
*{ scrollbar-width:thin; scrollbar-color:rgba(120,160,255,.32) transparent; }
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:rgba(120,160,255,.28); border-radius:10px; border:2px solid transparent; background-clip:padding-box; }
::-webkit-scrollbar-thumb:hover{ background:rgba(120,160,255,.45); background-clip:padding-box; }
.field textarea{ scrollbar-width:thin; scrollbar-color:rgba(120,160,255,.4) transparent; }

/* ============================================================
   RÈGLEMENT — édition staff (connexion, barre, éditeur)
   Aucune ombre (respect de la charte). Profondeur via bordures + drop-shadow.
   ============================================================ */

/* -- bouton "plus catégorie" dans la barre d'onglets -- */
.rtab--add{ min-width:44px; padding:0 14px; font-size:1.15rem; font-weight:700; color:var(--blue-bright); opacity:.85; }
.rtab--add:hover{ opacity:1; }

/* -- zones éditables -- */
.rulecat.is-edit [contenteditable]{ outline:none; border-radius:8px; transition:background .15s; }
.rulecat.is-edit [contenteditable]:hover{ background:rgba(120,160,255,.06); }
.rulecat.is-edit [contenteditable]:focus{ background:rgba(120,160,255,.10); outline:1px solid color-mix(in srgb,var(--rc,#4f8cff) 60%,transparent); outline-offset:2px; }
[contenteditable][data-ph]:empty::before{ content:attr(data-ph); color:var(--muted-2); font-style:italic; }
.rulecat.is-edit h2[contenteditable]{ padding:1px 6px; margin:-1px -6px; }

/* -- règle en édition : texte + bouton supprimer -- */
li.rule-edit{ display:flex; align-items:flex-start; gap:10px; }
li.rule-edit .rule-txt{ flex:1; outline:none; }

/* -- boutons "supprimer" et sections -- */
.rx{ flex:0 0 auto; border:1px solid rgba(255,120,140,.34); background:rgba(255,90,110,.10); color:#ff9db0;
     border-radius:8px; width:24px; height:24px; line-height:1; font-size:1rem; cursor:pointer; padding:0;
     display:inline-flex; align-items:center; justify-content:center; transition:background .15s,border-color .15s,color .15s; }
.rx:hover{ background:rgba(255,90,110,.2); border-color:rgba(255,120,140,.6); color:#fff; }
.rx--sec{ width:auto; height:26px; padding:0 10px; font-size:.78rem; margin-left:auto; }
.rulecat.is-edit .rulecat__head{ display:flex; align-items:center; gap:12px; }

/* -- boutons "ajouter" -- */
.radd{ display:inline-flex; align-items:center; gap:6px; margin-top:10px;
       border:1px dashed color-mix(in srgb,var(--rc,#4f8cff) 45%,transparent); background:rgba(120,160,255,.05);
       color:var(--blue-bright); border-radius:10px; padding:8px 14px; font-size:.85rem; font-weight:600; cursor:pointer;
       transition:background .15s,border-color .15s; font-family:var(--font-head); }
.radd:hover{ background:rgba(120,160,255,.12); border-color:var(--rc,#4f8cff); }
.radd--sec{ margin-top:16px; }

/* -- éditeur de structure (méta catégorie + sous-onglets) -- */
.rstruct{ border:1px solid var(--line-strong); border-radius:16px; background:rgba(10,16,34,.5); padding:16px 18px; margin-bottom:20px; }
.rstruct__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.rstruct__grid label{ display:flex; flex-direction:column; gap:5px; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; }
.rstruct__grid input{ background:rgba(0,0,0,.28); border:1px solid var(--line); border-radius:9px; padding:8px 10px; color:var(--text); font:inherit; font-size:.9rem; }
.rstruct__grid input[type=color]{ padding:2px; height:38px; cursor:pointer; }
.rstruct__grid input:focus{ outline:none; border-color:var(--blue); }
.rstruct__subs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.rstruct__lbl{ font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:700; }
.rstruct__hint{ font-size:.82rem; color:var(--muted-2); font-style:italic; }
.subchip{ display:inline-flex; align-items:center; gap:5px; background:rgba(120,160,255,.07); border:1px solid var(--line); border-radius:9px; padding:3px 5px 3px 8px; }
.subchip input{ background:transparent; border:none; color:var(--text); font:inherit; font-size:.86rem; width:110px; outline:none; }
.rstruct__del{ margin-top:14px; border:1px solid rgba(255,120,140,.34); background:rgba(255,90,110,.08); color:#ff9db0; border-radius:10px; padding:8px 14px; font-size:.82rem; font-weight:600; cursor:pointer; transition:background .15s; }
.rstruct__del:hover{ background:rgba(255,90,110,.18); color:#fff; }

.rstaff__b{ display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line-strong); background:rgba(120,160,255,.06);
            color:var(--text); border-radius:10px; padding:8px 13px; font:inherit; font-size:.82rem; font-weight:600; cursor:pointer;
            text-decoration:none; transition:background .15s,border-color .15s,color .15s; }
.rstaff__b:hover{ background:rgba(120,160,255,.14); border-color:var(--blue); color:#fff; }
.rstaff__b--out{ padding:8px 11px; color:var(--muted); }
.rstaff__b--out:hover{ color:#ff9db0; border-color:rgba(255,120,140,.5); background:rgba(255,90,110,.1); }

/* -- modale de connexion -- */
.rlogin{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px;
         background:rgba(3,6,14,.72); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
         opacity:0; visibility:hidden; transition:opacity .25s,visibility .25s; }
.rlogin.is-open{ opacity:1; visibility:visible; }
.rlogin__card{ position:relative; width:min(400px,100%); background:var(--bg-800); border:1px solid var(--line-strong); border-radius:20px;
               padding:30px 28px 26px; filter:drop-shadow(0 30px 70px rgba(0,0,0,.6)); transform:translateY(12px); transition:transform .28s cubic-bezier(.16,.84,.28,1); }
.rlogin.is-open .rlogin__card{ transform:none; }
.rlogin__x{ position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:8px; border:1px solid var(--line);
            background:transparent; color:var(--muted); font-size:1.1rem; cursor:pointer; transition:color .15s,background .15s; }
.rlogin__x:hover{ color:#fff; background:rgba(255,255,255,.06); }
.rlogin__card h3{ font-family:var(--font-head); font-size:1.3rem; margin:0 0 4px; color:#fff; }
.rlogin__sub{ font-size:.86rem; color:var(--muted); margin:0 0 20px; }
.rlogin__card form{ display:flex; flex-direction:column; gap:14px; }
.rlogin__card label{ display:flex; flex-direction:column; gap:6px; font-size:.74rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; }
.rlogin__card input{ background:rgba(0,0,0,.3); border:1px solid var(--line); border-radius:11px; padding:12px 14px; color:var(--text); font:inherit; font-size:.95rem; transition:border-color .15s; }
.rlogin__card input:focus{ outline:none; border-color:var(--blue); }
.rlogin__card .btn{ margin-top:4px; justify-content:center; }
.rlogin__err{ color:#ff9db0; font-size:.84rem; margin:0; }

/* -- toast règlement -- */
.rtoast{ position:fixed; left:50%; bottom:26px; transform:translate(-50%,20px); z-index:210;
         background:rgba(8,13,30,.95); border:1px solid var(--line-strong); border-radius:12px; padding:12px 20px;
         color:var(--text); font-size:.9rem; font-weight:600; opacity:0; visibility:hidden;
         transition:opacity .25s,transform .25s,visibility .25s; filter:drop-shadow(0 14px 34px rgba(0,0,0,.5)); }
.rtoast.is-on{ opacity:1; visibility:visible; transform:translate(-50%,0); }

@media (max-width:640px){
}

/* ============================================================
   PAGE ADMINISTRATION
   ============================================================ */
.adminbox{ max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:20px; }
.admin__load{ color:var(--muted); text-align:center; padding:40px 0; }

.admin__gate{ max-width:420px; margin:0 auto; background:var(--bg-800); border:1px solid var(--line-strong);
              border-radius:20px; padding:32px 30px; text-align:center; }
.admin__gate h2{ font-family:var(--font-head); font-size:1.35rem; color:#fff; margin:0 0 6px; }
.admin__sub{ font-size:.88rem; color:var(--muted); margin:0 0 22px; line-height:1.5; }
.admin__sub code{ background:rgba(120,160,255,.1); border:1px solid var(--line); border-radius:5px; padding:1px 6px; font-size:.85em; color:var(--blue-bright); }
.admin__gate form{ display:flex; flex-direction:column; gap:14px; text-align:left; }
.admin__gate label,.admin__form label{ display:flex; flex-direction:column; gap:6px; font-size:.74rem;
        text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; }
.admin__gate input,.admin__form input,.admin__form select{ background:rgba(0,0,0,.3); border:1px solid var(--line);
        border-radius:11px; padding:12px 14px; color:var(--text); font:inherit; font-size:.95rem; transition:border-color .15s; }
.admin__gate input:focus,.admin__form input:focus,.admin__form select:focus{ outline:none; border-color:var(--blue); }
.admin__form input:read-only{ opacity:.6; cursor:not-allowed; }
.admin__gate .btn{ justify-content:center; margin-top:4px; }

.admin__err{ color:#ff9db0; font-size:.88rem; margin:0; background:rgba(255,90,110,.08);
             border:1px solid rgba(255,120,140,.3); border-radius:10px; padding:11px 15px; }
.admin__ok{ color:#7ee2a8; font-size:.88rem; margin:0; background:rgba(55,214,122,.08);
            border:1px solid rgba(55,214,122,.3); border-radius:10px; padding:11px 15px; }

.admin__bar{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
             background:rgba(10,16,34,.55); border:1px solid var(--line-strong); border-radius:14px; padding:12px 16px; }
.admin__who{ font-size:.86rem; color:var(--muted); }
.admin__who b{ color:var(--text); }
.admin__who em{ font-style:normal; text-transform:uppercase; font-size:.68rem; letter-spacing:.06em;
                color:var(--blue-bright); border:1px solid var(--line); border-radius:6px; padding:2px 7px; margin-left:6px; }
.admin__barb{ display:flex; gap:8px; align-items:center; }

.admin__card{ background:var(--bg-800); border:1px solid var(--line-strong); border-radius:18px; padding:24px 26px; }
.admin__card h2{ font-family:var(--font-head); font-size:1.15rem; color:#fff; margin:0 0 6px; }
.admin__form{ display:grid; grid-template-columns:1fr 1fr auto; gap:14px; align-items:end; }
.admin__formb{ display:flex; gap:8px; }
.admin__formb .btn{ white-space:nowrap; }

.admin__tablewrap{ overflow-x:auto; margin-top:16px; }
.acc{ width:100%; border-collapse:collapse; font-size:.9rem; }
.acc th{ text-align:left; font-size:.68rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted-2);
         font-weight:700; padding:0 12px 10px; border-bottom:1px solid var(--line); }
.acc td{ padding:13px 12px; border-bottom:1px solid rgba(120,160,255,.07); }
.acc tr:last-child td{ border-bottom:none; }
.acc__u{ color:#fff; font-weight:600; }
.acc__role{ display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.04em; padding:3px 10px;
            border-radius:20px; border:1px solid var(--line); color:var(--blue-bright); background:rgba(120,160,255,.08); }
.acc__role--admin{ color:#fcd34d; border-color:rgba(252,211,77,.32); background:rgba(252,211,77,.08); }
.acc__act{ text-align:right; white-space:nowrap; display:flex; gap:6px; justify-content:flex-end; }
.acc__act .rx--sec{ border-color:var(--line-strong); background:rgba(120,160,255,.06); color:var(--text); }
.acc__act .rx--sec:hover{ background:rgba(120,160,255,.14); border-color:var(--blue); color:#fff; }
.acc__act .acc__del{ border-color:rgba(255,120,140,.34); background:rgba(255,90,110,.1); color:#ff9db0; }
.acc__act .acc__del:hover{ background:rgba(255,90,110,.2); border-color:rgba(255,120,140,.6); color:#fff; }
.acc__empty{ color:var(--muted-2); font-style:italic; text-align:center; padding:26px 0; }

@media (max-width:640px){
  .admin__form{ grid-template-columns:1fr; }
  .admin__card{ padding:20px 18px; }
}

/* l attribut hidden doit primer sur les display des composants */
[hidden]{display:none!important}

/* ============================================================
   ESPACE STAFF — bouton dans la navbar (page Règlement uniquement)
   ============================================================ */
.staffwrap{ position:relative; display:inline-flex; }

/* le bouton reprend exactement le style des icônes Discord / TikTok */
.social--staff{ cursor:pointer; font:inherit; padding:0; }
.social--staff.is-on{ color:var(--blue-bright); border-color:color-mix(in srgb,var(--blue) 55%,transparent); background:rgba(120,160,255,.14); }

/* menu déroulant une fois connecté */
.staffmenu{ position:absolute; top:calc(100% + 12px); right:0; z-index:120; min-width:210px;
  background:rgba(8,13,30,.97); border:1px solid var(--line-strong); border-radius:14px; padding:7px;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  filter:drop-shadow(0 18px 40px rgba(0,0,0,.55));
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s, transform .2s, visibility .2s; }
.staffmenu.is-open{ opacity:1; visibility:visible; transform:none; }
.staffmenu__who{ display:flex; flex-direction:column; gap:1px; padding:8px 11px 10px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.staffmenu__who b{ font-size:.88rem; color:#fff; }
.staffmenu__who em{ font-size:.66rem; font-style:normal; text-transform:uppercase; letter-spacing:.07em; color:var(--blue-bright); }
.staffmenu__i{ display:block; width:100%; text-align:left; background:transparent; border:none; border-radius:9px;
  padding:9px 11px; font:inherit; font-size:.86rem; font-weight:500; color:var(--text); cursor:pointer;
  text-decoration:none; transition:background .15s, color .15s; }
.staffmenu__i:hover{ background:rgba(120,160,255,.12); color:#fff; }
.staffmenu__i--out{ color:var(--muted); margin-top:2px; border-top:1px solid var(--line); border-radius:0 0 9px 9px; }
.staffmenu__i--out:hover{ background:rgba(255,90,110,.12); color:#ff9db0; }

/* barre d'actions, visible uniquement en mode édition */
.editbar{ position:fixed; left:50%; bottom:22px; z-index:120; transform:translate(-50%,26px);
  display:none; align-items:center; gap:9px;
  background:rgba(8,13,30,.93); border:1px solid var(--line-strong); border-radius:15px; padding:9px 9px 9px 16px;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  filter:drop-shadow(0 16px 40px rgba(0,0,0,.55));
  opacity:0; transition:opacity .25s, transform .25s; }
.editbar.is-on{ display:flex; opacity:1; transform:translate(-50%,0); }
.editbar__t{ font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--blue-bright); }
.editbar__b{ border:1px solid var(--line-strong); background:rgba(120,160,255,.07); color:var(--text);
  border-radius:11px; padding:9px 16px; font:inherit; font-size:.85rem; font-weight:600; cursor:pointer;
  transition:background .15s, border-color .15s, color .15s; }
.editbar__b:hover{ background:rgba(120,160,255,.15); border-color:var(--blue); color:#fff; }
.editbar__b--save.is-dirty{ background:linear-gradient(135deg,#37d67a,#1fa059); border-color:transparent; color:#04140b; }
.editbar__b:disabled{ opacity:.6; cursor:default; }

@media (max-width:640px){
  .editbar{ left:10px; right:10px; transform:translateY(26px); padding:9px 12px; justify-content:center; flex-wrap:wrap; }
  .editbar.is-on{ transform:translateY(0); }
  .staffmenu{ right:auto; left:0; }
}

/* -- boutons d'ajout d'onglets (mode édition) -- */
.rtab--add{ padding:0 16px; font-size:.82rem; font-weight:700; color:var(--blue-bright);
  border:1px dashed rgba(120,160,255,.4); opacity:.9; }
.rtab--add:hover{ opacity:1; border-color:var(--blue); background:rgba(120,160,255,.1); }

.subadd{ display:inline-flex; align-items:center; gap:6px; margin-left:4px;
  border:1px dashed color-mix(in srgb,var(--rc,#4f8cff) 45%,transparent);
  background:rgba(120,160,255,.05); color:var(--blue-bright);
  border-radius:999px; padding:7px 15px; font-family:var(--font-head);
  font-size:.8rem; font-weight:700; cursor:pointer; white-space:nowrap;
  transition:background .15s, border-color .15s, color .15s; }
.subadd:hover{ background:rgba(120,160,255,.14); border-color:var(--rc,#4f8cff); color:#fff; }

/* -- deplacement des sections (mode edition) -- */
.secmove{ display:inline-flex; gap:4px; margin-left:auto; }
.rmv{ width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line-strong); background:rgba(120,160,255,.06); color:var(--blue-bright);
  border-radius:8px; font-size:.9rem; line-height:1; cursor:pointer; padding:0;
  transition:background .15s, border-color .15s, color .15s, opacity .15s; }
.rmv:hover:not(:disabled){ background:rgba(120,160,255,.16); border-color:var(--blue); color:#fff; }
.rmv:disabled{ opacity:.25; cursor:default; }
.rulecat.is-edit .rx--sec{ margin-left:8px; }

/* -- message d'alerte dans la modale de connexion -- */
.rlogin__sub.is-warn{ color:#ffd27d; font-weight:600; }

/* -- boite de dialogue : modifications concurrentes -- */
.rconflict__txt{ font-size:.9rem; color:var(--text); margin:0 0 18px; line-height:1.5; }
.rconflict__b{ display:flex; gap:10px; flex-wrap:wrap; }
.rconflict__b .rstaff__b{ flex:1; justify-content:center; min-width:150px; }
.rstaff__b--danger{ border-color:rgba(255,120,140,.45); background:rgba(255,90,110,.12); color:#ff9db0; }
.rstaff__b--danger:hover{ background:rgba(255,90,110,.22); border-color:rgba(255,120,140,.7); color:#fff; }
.rconflict__note{ font-size:.78rem; color:var(--muted-2); margin:14px 0 0; text-align:center; }

/* ============================================================
   BOUTIQUE EN PAUSE — fenetre "commander par ticket"
   ============================================================ */
.tkt{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:20px;
  background:rgba(3,6,14,.74); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s; }
.tkt.is-open{ opacity:1; visibility:visible; }
.tkt__card{ position:relative; width:min(440px,100%); max-height:88vh; overflow-y:auto;
  background:var(--bg-800); border:1px solid var(--line-strong); border-radius:20px; padding:30px 28px 24px;
  filter:drop-shadow(0 30px 70px rgba(0,0,0,.6));
  transform:translateY(12px); transition:transform .28s cubic-bezier(.16,.84,.28,1); }
.tkt.is-open .tkt__card{ transform:none; }
.tkt__x{ position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:8px;
  border:1px solid var(--line); background:transparent; color:var(--muted); font-size:1.1rem; cursor:pointer;
  transition:color .15s, background .15s; }
.tkt__x:hover{ color:#fff; background:rgba(255,255,255,.06); }
.tkt__card h3{ font-family:var(--font-head); font-size:1.35rem; margin:0 0 8px; color:#fff; }
.tkt__sub{ font-size:.9rem; line-height:1.55; color:var(--muted); margin:0 0 20px; }
.tkt__list{ list-style:none; margin:0 0 4px; padding:0; display:flex; flex-direction:column; gap:8px; }
.tkt__list li{ display:flex; align-items:center; gap:10px; padding:11px 14px;
  background:rgba(255,255,255,.028); border:1px solid var(--line); border-radius:11px; font-size:.9rem; }
.tkt__list li span{ flex:1; color:var(--text); }
.tkt__list li em{ font-style:normal; color:var(--muted-2); font-size:.84rem; }
.tkt__list li b{ color:#fff; font-weight:600; }
.tkt__total{ display:flex; justify-content:space-between; align-items:center; margin-top:14px; padding-top:14px;
  border-top:1px solid var(--line); font-size:.95rem; }
.tkt__total span{ color:var(--muted); }
.tkt__total b{ font-family:var(--font-head); font-size:1.25rem; color:var(--blue-bright); }
.tkt__actions{ display:flex; gap:10px; margin-top:22px; flex-wrap:wrap; }
.tkt__actions .btn{ flex:1; justify-content:center; min-width:150px; }
.tkt__note{ font-size:.78rem; color:var(--muted-2); text-align:center; margin:16px 0 0; }
.tkt__fallback{ width:100%; margin-top:16px; background:rgba(0,0,0,.3); border:1px solid var(--line);
  border-radius:11px; padding:11px 13px; color:var(--text); font:inherit; font-size:.85rem; resize:vertical;
  scrollbar-width:thin; scrollbar-color:rgba(120,160,255,.4) transparent; }
.tkt__fallback:focus{ outline:none; border-color:var(--blue); }

/* -- bandeau de connexion Discord dans le panier -- */
.cdisc{ display:flex; align-items:center; gap:8px; margin-bottom:12px; padding:9px 12px;
  border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.028);
  font-size:.82rem; color:var(--muted); }
.cdisc b{ color:var(--text); font-weight:600; }
.cdisc__dot{ width:7px; height:7px; border-radius:50%; background:#ff9db0; flex:0 0 auto; }
.cdisc.is-on{ border-color:rgba(87,242,135,.28); background:rgba(87,242,135,.06); }
.cdisc.is-on .cdisc__dot{ background:#57f287; }
.cdisc__out{ margin-left:auto; background:transparent; border:none; color:var(--muted-2);
  font:inherit; font-size:.76rem; text-decoration:underline; cursor:pointer; padding:0; }
.cdisc__out:hover{ color:var(--blue-bright); }
.btn--discord{ background:#5865f2; border-color:transparent; color:#fff; }
.btn--discord:hover{ background:#4752c4; }

/* -- statuts de connexion (FiveM + Discord) dans le panier -- */
.caccs{ display:flex; flex-direction:column; gap:7px; margin-bottom:13px; }
.cacc{ display:flex; align-items:center; gap:9px; padding:9px 12px;
  border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.028);
  font-size:.82rem; color:var(--muted); }
.cacc b{ color:var(--text); font-weight:600; }
.cacc__txt{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cacc__dot{ width:7px; height:7px; border-radius:50%; background:#ff9db0; flex:0 0 auto; }
.cacc.is-on{ border-color:rgba(87,242,135,.28); background:rgba(87,242,135,.06); }
.cacc.is-on .cacc__dot{ background:#57f287; }
.cacc__b{ flex:0 0 auto; background:transparent; border:none; color:var(--blue-bright);
  font:inherit; font-size:.76rem; font-weight:600; text-decoration:underline; cursor:pointer; padding:0; }
.cacc__b:hover{ color:#fff; }
/* ligne d'action neutre (ni succes ni erreur) : Tebex ne nous communique pas l'etat */
.cacc--info{ border-color:var(--line); background:rgba(255,255,255,.02); }
.cacc--info .cacc__dot{ background:var(--muted-2); }
.cacc--info .cacc__txt em{ font-style:normal; color:var(--muted-2); }


/* ============================================================
   PANIER — refonte
   Lignes separees par des filets (plus de cartes encadrees), vignettes aux
   couleurs reelles des packs, etapes numerotees au lieu de pastilles,
   bouton plein sans degrade. Aucune ombre (charte du site).
   ============================================================ */
.cart{ width:min(440px,94vw); background:#070b15; border-left:1px solid rgba(120,160,255,.14); }
.cart::before{ content:""; position:absolute; left:0; right:0; top:0; height:240px; pointer-events:none;
  background:radial-gradient(120% 90% at 100% 0%, rgba(79,140,255,.09), transparent 62%); }

/* -- en-tete -- */
.cart__head{ position:relative; align-items:center; padding:26px 26px 18px; border-bottom:0; }
.cart__title{ display:flex; align-items:baseline; gap:10px; }
.cart__head h3{ font-family:var(--font-head); font-size:1.5rem; font-weight:700; letter-spacing:-.025em; color:var(--ice); }
.cart__count{ font-size:.8rem; color:var(--muted); font-variant-numeric:tabular-nums; }
.cart__close{ width:36px; height:36px; border-radius:50%; border:0; background:rgba(255,255,255,.04); color:var(--muted);
  transition:background .2s, color .2s; }
.cart__close:hover{ background:rgba(255,255,255,.09); color:var(--ice); }
.cart__close:focus-visible, .cline button:focus-visible, .cstep__b:focus-visible, .cart__empty-link:focus-visible{
  outline:2px solid var(--blue-bright); outline-offset:2px; }

/* -- corps -- */
.cart__body{ position:relative; padding:2px 26px 16px; }
.cart__items{ gap:0; }

/* -- ligne d'article -- */
.cline{ display:grid; grid-template-columns:62px 1fr; gap:16px; padding:18px 0; border-top:1px solid rgba(120,160,255,.09); }
.cline:first-child{ border-top:0; padding-top:6px; }
.cline__thumb{ position:relative; width:62px; height:62px; border-radius:12px; overflow:hidden; display:grid; place-items:center;
  background:linear-gradient(150deg, var(--t1,#4a7fb0), var(--t2,#26476b));
  font-family:var(--font-head); font-weight:800; font-size:.92rem; letter-spacing:-.02em; color:#fff; }
.cline__thumb img{ width:100%; height:100%; object-fit:cover; }
.cline__thumb::after{ content:""; position:absolute; inset:0; border-radius:inherit; border:1px solid rgba(255,255,255,.12); pointer-events:none; }
.cline__main{ min-width:0; }
.cline__top{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.cline__name{ font-family:var(--font-head); font-weight:600; font-size:.98rem; line-height:1.3; letter-spacing:-.01em; color:var(--ice); }
.cline__price{ font-family:var(--font-head); font-weight:600; font-size:.98rem; color:var(--ice); white-space:nowrap; font-variant-numeric:tabular-nums; }
.cline__meta{ margin-top:3px; font-size:.8rem; color:var(--muted); font-variant-numeric:tabular-nums; }
.cline__actions{ display:flex; align-items:center; justify-content:space-between; margin-top:12px; }
.cline__qty{ display:inline-flex; align-items:center; height:32px; border:1px solid rgba(120,160,255,.16); border-radius:9px; overflow:hidden; }
.cline__qty button{ width:32px; height:100%; border:0; background:transparent; color:var(--text); font-size:1rem; line-height:1; cursor:pointer;
  transition:background .15s, color .15s; }
.cline__qty button:hover{ background:rgba(120,160,255,.1); color:var(--ice); }
.cline__qty button:active{ background:rgba(120,160,255,.2); }
.cline__qty span{ min-width:26px; text-align:center; font-size:.9rem; font-weight:600; color:var(--ice); font-variant-numeric:tabular-nums; }
.cline__rm{ border:0; background:none; padding:4px 0; font:inherit; font-size:.8rem; color:var(--muted-2); cursor:pointer; transition:color .15s; }
.cline__rm:hover{ color:#ff8f9f; }

/* -- panier vide -- */
.cart__empty{ margin-top:16vh; text-align:left; line-height:1.5; }
.cart__empty svg{ color:var(--muted-2); }
.cart__empty-t{ margin:14px 0 4px; font-family:var(--font-head); font-size:1.1rem; font-weight:600; color:var(--ice); }
.cart__empty-s{ max-width:30ch; font-size:.9rem; color:var(--muted); }
.cart__empty-link{ margin-top:16px; padding:0; border:0; background:none; font:inherit; font-size:.9rem; font-weight:600; color:var(--blue-bright); cursor:pointer; transition:color .15s; }
.cart__empty-link:hover{ color:var(--ice); }

/* -- pied -- */
.cart__foot{ position:relative; padding:18px 26px 24px; border-top:1px solid rgba(120,160,255,.1); background:#060912; }

/* etapes avant paiement */
.caccs{ gap:0; margin:0 0 18px; counter-reset:etape; }
.caccs__title{ margin:0 0 4px; font-size:.8rem; color:var(--muted); }
.cstep{ counter-increment:etape; display:grid; grid-template-columns:22px 1fr auto; align-items:center; gap:12px; padding:10px 0; }
.cstep + .cstep{ border-top:1px solid rgba(120,160,255,.08); }
.cstep__mark{ width:22px; height:22px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(120,160,255,.3);
  font-size:.7rem; font-weight:700; color:var(--muted); font-variant-numeric:tabular-nums; transition:background .2s, border-color .2s, color .2s; }
.cstep__mark::before{ content:counter(etape); }
.cstep.is-on .cstep__mark{ background:var(--blue); border-color:var(--blue); color:#050a18; }
.cstep.is-on .cstep__mark::before{ content:""; width:9px; height:5px; border-left:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-1px) rotate(-45deg); }
.cstep__txt{ min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.cstep__k{ font-size:.86rem; font-weight:500; color:var(--ice); }
.cstep__txt em{ font-style:normal; font-size:.76rem; color:var(--muted); }
.cstep__txt b{ font-size:.78rem; font-weight:500; color:var(--blue-bright); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cstep__b{ padding:6px 11px; border:1px solid rgba(120,160,255,.24); border-radius:8px; background:transparent; font:inherit; font-size:.78rem; font-weight:600; color:var(--ice);
  cursor:pointer; transition:background .15s, border-color .15s, color .15s; }
.cstep__b:hover{ border-color:var(--blue); background:rgba(79,140,255,.1); }
.cstep__b:active{ transform:translateY(1px); }
.cstep.is-on .cstep__b{ border-color:transparent; padding-right:0; color:var(--muted); font-weight:500; }
.cstep.is-on .cstep__b:hover{ background:none; color:var(--ice); }
.cstep.is-wait{ opacity:.45; }

/* total */
.cart__total{ align-items:flex-end; margin:0 0 16px; }
.cart__total span{ display:flex; flex-direction:column; font-size:.9rem; color:var(--text); }
.cart__total em{ font-style:normal; font-size:.74rem; color:var(--muted-2); }
.cart__total b{ font-size:1.75rem; font-weight:700; letter-spacing:-.025em; color:var(--ice); font-variant-numeric:tabular-nums; }

/* bouton plein, sans degrade ni reflet */
.cart .btn--primary.cart__wide{ height:52px; border-radius:12px; border:0; background:var(--blue-deep); color:#fff; font-size:.98rem; transform:none; transition:background .2s, transform .1s; }
.cart .btn--primary.cart__wide::after{ display:none; }
.cart .btn--primary.cart__wide:hover{ background:#3f78ff; transform:none; }
.cart .btn--primary.cart__wide:active{ transform:scale(.985); }
.cart .btn--primary.cart__wide:disabled{ opacity:.45; cursor:default; }

.cart__secure{ display:flex; align-items:center; justify-content:center; gap:7px; margin-top:12px; font-size:.76rem; color:var(--muted-2); }
.cart__secure svg{ flex:0 0 auto; }

/* ============================================================
   FENETRES DE LA BOUTIQUE — refonte
   Icone + progression d'etapes, deroule concret, bouton plein,
   "Plus tard" discret, feuille remontant du bas sur mobile.
   Aucune ombre, aucune animation @keyframes (transitions uniquement).
   ============================================================ */
.tkt{ background:rgba(3,5,11,.74); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.tkt__card{ width:min(460px,100%); padding:26px 26px 22px; border-radius:18px; background:#080c17;
  border:1px solid rgba(120,160,255,.14); overflow:hidden; filter:none; }
.tkt__card::before{ content:""; position:absolute; left:0; right:0; top:0; height:190px; pointer-events:none;
  background:radial-gradient(90% 100% at 0% 0%, rgba(79,140,255,.13), transparent 66%); }
.tkt__card > *{ position:relative; }

/* position:absolute redonnee : .tkt__card > * la passait en relative */
.tkt__x{ position:absolute; top:18px; right:18px; width:32px; height:32px; border-radius:50%; border:0; background:rgba(255,255,255,.05);
  color:var(--muted); display:grid; place-items:center; font-size:1rem; }
.tkt__x:hover{ background:rgba(255,255,255,.1); color:var(--ice); }
.tkt__x:focus-visible, .tkt__later:focus-visible, .tkt .btn:focus-visible{ outline:2px solid var(--blue-bright); outline-offset:2px; }

/* en-tete : icone + etape */
.tkt__top{ display:flex; align-items:center; gap:14px; margin:0 0 20px; padding-right:40px; }
.tkt__ico{ position:relative; flex:0 0 auto; width:46px; height:46px; border-radius:13px; display:grid; place-items:center; color:#fff;
  background:linear-gradient(150deg,#3f78ff,#1d3a8f); }
.tkt__ico::after{ content:""; position:absolute; inset:0; border-radius:inherit; border:1px solid rgba(255,255,255,.14); pointer-events:none; }
.tkt__ico--discord{ background:linear-gradient(150deg,#6a73f0,#363c9e); }
.tkt__meta{ display:flex; flex-direction:column; gap:7px; }
.tkt__step{ font-size:.8rem; color:var(--muted); font-variant-numeric:tabular-nums; }
.tkt__step b{ color:var(--ice); font-weight:600; }
.tkt__prog{ display:flex; gap:5px; }
.tkt__prog i{ width:30px; height:3px; border-radius:2px; background:rgba(120,160,255,.18); }
.tkt__prog i.is-on{ background:var(--blue-bright); }

/* titre et texte */
.tkt__card h3{ margin:0 0 8px; font-size:1.3rem; font-weight:700; line-height:1.25; letter-spacing:-.02em; text-wrap:balance; }
.tkt__sub{ max-width:40ch; margin:0 0 18px; font-size:.9rem; line-height:1.55; color:var(--muted); text-wrap:pretty; }

/* deroule 01 02 03 */
.tkt__flow{ list-style:none; margin:0 0 22px; padding:0; counter-reset:flow; border-top:1px solid rgba(120,160,255,.08); }
.tkt__flow li{ counter-increment:flow; display:grid; grid-template-columns:24px 1fr; gap:12px; padding:10px 0;
  border-bottom:1px solid rgba(120,160,255,.08); font-size:.85rem; line-height:1.45; color:var(--muted); }
.tkt__flow li::before{ content:counter(flow, decimal-leading-zero); padding-top:1px; font-family:var(--font-head); font-size:.72rem; font-weight:700;
  color:var(--blue-bright); font-variant-numeric:tabular-nums; }
.tkt__flow b{ color:var(--ice); font-weight:500; }

/* actions */
.tkt__actions--split{ justify-content:flex-end; align-items:center; gap:16px; margin-top:0; }
.tkt__actions--split .btn{ flex:0 0 auto; min-width:0; }
.tkt__later{ padding:8px 4px; border:0; background:none; font:inherit; font-size:.86rem; color:var(--muted); cursor:pointer; transition:color .15s; }
.tkt__later:hover{ color:var(--ice); }

/* boutons pleins, sans degrade ni reflet (toutes les fenetres de la boutique) */
.tkt .btn--primary{ height:46px; padding:0 18px; gap:8px; border:0; border-radius:11px; background:var(--blue-deep); color:#fff; transform:none;
  transition:background .2s, transform .1s; }
.tkt .btn--primary::after{ display:none; }
.tkt .btn--primary:hover{ background:#3f78ff; transform:none; }
.tkt .btn--primary:active{ transform:scale(.985); }
.tkt .btn--ghost{ height:46px; border-radius:11px; }
.tkt__list li{ border-radius:10px; }

/* mobile : feuille qui remonte du bas */
@media (max-width:520px){
  .tkt{ align-items:flex-end; padding:0; }
  .tkt__card{ width:100%; max-height:92vh; border-radius:20px 20px 0 0; border-bottom:0; padding:24px 20px calc(20px + env(safe-area-inset-bottom)); transform:translateY(24px); }
  .tkt__actions--split{ flex-direction:column-reverse; align-items:stretch; gap:6px; }
  .tkt__actions--split .btn{ width:100%; justify-content:center; }
}

/* ============================================================
   CARTE D'ACCES — fenetre unique du parcours d'achat
   Recto (FiveM) -> verso (signature Discord) -> carte activee.
   Format ISO ID-1 (85,6 x 54 mm), fond guilloche, puce a contacts.
   Aucune ombre portee ni halo (drop-shadow uniquement, charte du site),
   aucune animation @keyframes (transitions uniquement).
   ============================================================ */
.cam{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; overflow-y:auto;
  padding:132px 16px 28px; background:rgba(3,5,11,.72); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  opacity:0; visibility:hidden; transition:opacity .28s ease, visibility .28s; }
.cam.is-open{ opacity:1; visibility:visible; }
.cam__box{ position:relative; width:min(430px,100%); margin:auto; padding:0 26px 24px; border-radius:22px;
  background:#080c17; border:1px solid rgba(120,160,255,.13); transform:translateY(14px); transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.cam.is-open .cam__box{ transform:none; }
.cam__go:focus-visible, .cam__later:focus-visible{ outline:2px solid var(--blue); outline-offset:3px; }

/* -- carte -- */
.cam__card{ width:min(340px, calc(100vw - 72px)); aspect-ratio:85.6 / 54; margin:-118px auto 22px; perspective:1400px; --rx:0deg; --ry:0deg; --mx:50%; }
.cam__tilt{ width:100%; height:100%; transform:rotateX(var(--rx)) rotateY(var(--ry)); transition:transform .25s ease-out; transform-style:preserve-3d; }
.cam__inner{ position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform .85s cubic-bezier(.2,.75,.2,1); }
.cam__card[data-face="back"] .cam__inner{ transform:rotateY(180deg); }
.cam__face{ position:absolute; inset:0; overflow:hidden; border-radius:16px; backface-visibility:hidden; -webkit-backface-visibility:hidden;
  border:1px solid rgba(255,255,255,.13); color:var(--ice);
  background:
    repeating-radial-gradient(circle at 108% -12%, rgba(160,190,255,.055) 0 1px, transparent 1px 8px),
    repeating-radial-gradient(circle at -20% 130%, rgba(160,190,255,.04) 0 1px, transparent 1px 11px),
    linear-gradient(140deg, #16295c 0%, #10204a 45%, #0a1531 100%);
  filter:drop-shadow(0 22px 34px rgba(0,0,0,.45)); }
.cam__face::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.07) 45%, transparent 60%); background-size:220% 100%; background-position:var(--mx) 0; }
.cam__face--back{ transform:rotateY(180deg); }

/* recto */
.cam__front{ position:absolute; inset:0; padding:6.5% 7%; display:grid; grid-template-rows:auto 1fr auto auto; }
.cam__top{ display:flex; justify-content:space-between; align-items:center; }
.cam__brand{ font-family:var(--font-head); font-weight:700; font-size:.95rem; letter-spacing:.2em; }
.cam__kind{ font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:#9fb4e6; }
.cam__mid{ display:flex; align-items:center; gap:12px; color:#9fb4e6; }
.cam__chip{ position:relative; width:42px; height:32px; border-radius:6px; background:#cfae66; overflow:hidden; }
.cam__chip::before{ content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg, transparent 32%, rgba(60,40,10,.35) 32% 34%, transparent 34% 66%, rgba(60,40,10,.35) 66% 68%, transparent 68%),
    linear-gradient(0deg, transparent 30%, rgba(60,40,10,.35) 30% 33%, transparent 33% 67%, rgba(60,40,10,.35) 67% 70%, transparent 70%); }
.cam__num{ margin:0 0 9px; min-height:1.4em; font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-size:clamp(.92rem, 3.6vw, 1.18rem);
  letter-spacing:.16em; color:#dce6ff; font-variant-numeric:tabular-nums; }
.cam__bot{ display:flex; align-items:flex-end; gap:22px; }
.cam__field small{ display:block; margin-bottom:2px; font-size:.54rem; letter-spacing:.14em; text-transform:uppercase; color:#8ea3d6; }
.cam__field b{ font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-weight:500; font-size:.78rem; letter-spacing:.08em; color:var(--ice); }
.cam__field b.is-empty{ color:#8ea3d6; }
.cam__holo{ margin-left:auto; width:40px; height:26px; border-radius:5px; border:1px solid rgba(255,255,255,.2); opacity:.5;
  background:conic-gradient(from calc(var(--ry) * 12), #8fb3ff, #b9a6ff, #8fe6d8, #c7d6ff, #8fb3ff); }
.cam__stamp{ position:absolute; right:9%; top:40%; padding:5px 12px; border:2px solid var(--blue); border-radius:6px; color:#9fc2ff;
  font-family:var(--font-head); font-size:.78rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  opacity:0; transform:rotate(-9deg) scale(1.35); transition:opacity .35s ease, transform .45s cubic-bezier(.2,.9,.3,1.3); }
.cam__card.is-active .cam__stamp{ opacity:1; transform:rotate(-9deg) scale(1); }

/* verso */
.cam__bbrand{ position:absolute; right:7%; top:3.5%; font-family:var(--font-head); font-weight:700; font-size:.62rem; letter-spacing:.2em; color:#7f95c8; }
.cam__stripe{ position:absolute; left:0; right:0; top:14%; height:20%; background:#04060c; }
.cam__sig{ position:absolute; left:7%; right:7%; top:44%; display:flex; align-items:center; gap:10px; }
.cam__panel{ position:relative; flex:1; height:40px; border-radius:4px; overflow:hidden; background:repeating-linear-gradient(-45deg, #eef1f7 0 5px, #e2e7f1 5px 10px); }
.cam__ph{ position:absolute; left:10px; top:50%; transform:translateY(-50%); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:#8d97ad; transition:opacity .3s; }
.cam__ink{ position:absolute; left:12px; top:50%; transform:translateY(-54%) rotate(-3deg); font-family:'Caveat', 'Segoe Script', cursive; font-size:1.7rem;
  color:#3140a8; white-space:nowrap; clip-path:inset(0 100% 0 0); transition:clip-path 1.1s cubic-bezier(.45,.05,.3,1); }
.cam__card.is-signed .cam__ink{ clip-path:inset(0 0 0 0); }
.cam__card.is-signed .cam__ph{ opacity:0; }
.cam__code{ padding:4px 7px; border-radius:3px; background:var(--ice); color:#0b1633; font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-size:.72rem; }
.cam__fine{ position:absolute; left:7%; right:7%; bottom:7%; margin:0; font-size:.56rem; line-height:1.45; color:#8ea3d6; }

/* -- texte de la fenetre -- */
.cam__body{ transition:opacity .22s ease; }
.cam__body.is-swapping{ opacity:0; }
.cam__eyebrow{ margin:0 0 6px; font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); font-variant-numeric:tabular-nums; }
.cam__body h3{ margin:0 0 8px; font-family:var(--font-head); font-size:1.42rem; font-weight:700; letter-spacing:-.025em; line-height:1.2; color:var(--ice); text-wrap:balance; }
.cam__lede{ margin:0 0 18px; max-width:42ch; font-size:.93rem; line-height:1.6; color:var(--muted); text-wrap:pretty; }
.cam__facts{ list-style:none; margin:0 0 22px; padding:0; border-top:1px solid rgba(120,160,255,.13); }
.cam__facts li{ display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid rgba(120,160,255,.13); font-size:.84rem; }
.cam__facts span{ color:var(--muted-2); }
.cam__facts b{ font-weight:500; color:var(--text); text-align:right; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.cam__actions{ display:flex; align-items:center; justify-content:flex-end; gap:18px; }
.cam__later{ padding:8px 2px; border:0; background:none; font:inherit; font-size:.88rem; color:var(--muted); cursor:pointer; transition:color .15s; }
.cam__later:hover{ color:var(--ice); }
.cam__later[hidden]{ display:none; }
.cam__go{ display:inline-flex; align-items:center; gap:9px; height:48px; padding:0 20px; border:0; border-radius:12px; background:var(--blue-deep);
  color:#fff; font-family:var(--font-head); font-size:.93rem; font-weight:600; cursor:pointer; transition:background .2s, transform .1s; }
.cam__go:hover{ background:#3f78ff; }
.cam__go:active{ transform:scale(.985); }
.cam__go svg{ transition:transform .2s; }
.cam__go:hover svg{ transform:translateX(2px); }

@media (max-width:520px){
  .cam__actions{ flex-direction:column-reverse; align-items:stretch; gap:6px; }
  .cam__go{ justify-content:center; }
}
@media (prefers-reduced-motion: reduce){
  .cam, .cam__box, .cam__tilt, .cam__inner, .cam__ink, .cam__stamp, .cam__body{ transition:none; }
}

/* bouton de la carte pendant que Tebex prepare la connexion */
.cam__go.is-loading{ cursor:progress; background:#2a5fe0; }
.cam__go.is-loading svg{ display:none; }
.cam__go:disabled{ transform:none; }

/* ============================================================
   BOUTIQUE : cartes d'abonnement (Gold, Black, a vie), barre de
   choix et cartes de recharge LysoCoins.
   Transitions uniquement, aucun halo (drop-shadow sombre seulement).
   ============================================================ */
.shopcards{ position:relative; height:390px; max-width:1000px; margin:10px auto 0; perspective:1600px; overflow:hidden; }
.mcard{ position:absolute; left:50%; top:46px; width:min(380px, 64vw); aspect-ratio:85.6/54; padding:0; border:0; background:none; font:inherit; color:inherit; cursor:pointer;
  perspective:1400px; transform:translateX(-50%); transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .6s, opacity .5s; filter:brightness(.5) saturate(.8); }
.mcard[data-pos=l]{ transform:translateX(-128%) translateY(34px) rotate(-8deg) scale(.82); z-index:1; }
.mcard[data-pos=r]{ transform:translateX(28%) translateY(34px) rotate(8deg) scale(.82); z-index:1; }
.mcard[data-pos=c]{ transform:translateX(-50%); z-index:3; filter:none; }
.mcard:focus-visible{ outline:none; }
.mcard:focus-visible .mcard__side{ outline:2px solid var(--blue); outline-offset:3px; }
.shopcards.is-flipped .mcard[data-pos=c]{ transform:translateX(-50%) translateY(-14px) scale(1.14); }
.shopcards.is-flipped .mcard:not([data-pos=c]){ opacity:.12; }
.mcard__tilt{ position:relative; display:block; width:100%; height:100%; transform-style:preserve-3d; transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition:transform .3s ease-out; }
.mcard__inner{ position:absolute; inset:0; transform-style:preserve-3d; transition:transform .9s cubic-bezier(.2,.75,.2,1); }
.shopcards.is-flipped .mcard[data-pos=c] .mcard__inner{ transform:rotateY(180deg); }
.mcard__side{ position:absolute; inset:0; border-radius:18px; overflow:hidden; backface-visibility:hidden; -webkit-backface-visibility:hidden; text-align:left; filter:drop-shadow(0 30px 40px rgba(0,0,0,.55)); }
.mcard__side--back{ transform:rotateY(180deg); }
.mcard__side::after{ content:""; position:absolute; inset:0; background:linear-gradient(110deg, transparent 35%, rgba(255,255,255,.15) 48%, transparent 62%); background-size:250% 100%; background-position:var(--sx,60%) 0; transition:background-position .3s ease-out; pointer-events:none; }
.mcard__face{ position:absolute; inset:0; padding:7% 8%; display:grid; grid-template-rows:auto 1fr auto; }
.mcard__top{ display:flex; justify-content:space-between; align-items:center; font-family:var(--font-head); font-weight:600; font-size:.82rem; letter-spacing:.34em; }
.mcard__top small{ font-weight:400; font-size:.62rem; letter-spacing:.24em; opacity:.8; }
.mcard__chip{ align-self:center; position:relative; width:48px; height:36px; border-radius:7px; background:linear-gradient(135deg,#f1dca0,#b89346); }
.mcard__chip::before{ content:""; position:absolute; inset:7px 0; border-top:1px solid rgba(60,40,10,.35); border-bottom:1px solid rgba(60,40,10,.35); }
.mcard__chip::after{ content:""; position:absolute; inset:0 15px; border-left:1px solid rgba(60,40,10,.35); border-right:1px solid rgba(60,40,10,.35); }
.mcard__bot{ display:flex; justify-content:space-between; align-items:end; }
.mcard__name{ font-family:var(--font-head); font-weight:700; font-size:1.25rem; letter-spacing:.06em; line-height:1.2; }
.mcard__name small{ display:block; font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-weight:500; font-size:.6rem; letter-spacing:.18em; opacity:.7; margin-bottom:2px; }
.mcard__num{ font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-size:.72rem; letter-spacing:.14em; opacity:.75; }
.matiere--or{ background:repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 3px), linear-gradient(135deg, #ecd497 0%, #c19a4a 45%, #8f6b27 100%); color:#2b1e07; }
.matiere--noir{ background:repeating-radial-gradient(circle at 110% -20%, rgba(255,255,255,.04) 0 1px, transparent 1px 7px), linear-gradient(135deg, #1d212b 0%, #0b0d12 100%); color:#e6ebf5; border:1px solid rgba(255,255,255,.1); }
.matiere--metal{ background:repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 1px, rgba(0,0,0,.03) 1px 2px, transparent 2px 4px), linear-gradient(125deg, #c9d2df 0%, #7f8ba0 38%, #dfe5ee 58%, #6a7589 100%); color:#0f141e; }
.matiere--metal .mcard__chip{ background:linear-gradient(135deg,#e7ebf1,#8d97a8); }
/* verso */
.mcard__stripe{ position:absolute; left:0; right:0; top:7%; height:12%; background:rgba(0,0,0,.82); }
.mcard__perks{ position:absolute; left:6%; right:6%; top:25%; display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
.mcard__perks > span{ display:flex; justify-content:space-between; gap:6px; padding:2.5px 0; border-bottom:1px solid color-mix(in srgb, currentColor 22%, transparent); font-size:.6rem; line-height:1.5; white-space:nowrap; }
.mcard__perks i{ font-style:normal; opacity:.72; }
.mcard__perks b{ font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-weight:500; }
.mcard__sign{ position:absolute; left:6%; right:6%; bottom:6%; display:flex; justify-content:space-between; align-items:end; }
.mcard__sign small{ font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-size:.52rem; letter-spacing:.14em; opacity:.7; }
.mcard__sign b{ display:block; font-family:var(--font-head); font-size:1.05rem; letter-spacing:-.01em; }

/* barre de choix */
.shopdock{ display:flex; justify-content:center; margin:0 auto; }
.shopdock__bar{ display:flex; align-items:center; gap:6px; padding:6px; border:1px solid var(--line-strong); border-radius:999px; background:linear-gradient(180deg, rgba(16,24,48,.85), rgba(8,12,26,.85)); }
.shopdock__tabs{ position:relative; display:flex; }
.shopdock__thumb{ position:absolute; top:0; bottom:0; left:0; width:0; border-radius:999px; border:1px solid var(--line-strong); background:linear-gradient(180deg, #1a2750, #111a38);
  transition:transform .55s cubic-bezier(.2,.8,.2,1), width .55s cubic-bezier(.2,.8,.2,1); }
.shopdock__tabs button{ position:relative; z-index:1; display:inline-flex; align-items:center; gap:9px; height:46px; padding:0 18px; border:0; border-radius:999px; background:none; font:inherit; cursor:pointer; white-space:nowrap; }
.shopdock__t{ font-family:var(--font-head); font-weight:600; font-size:.9rem; color:var(--muted); transition:color .35s; }
.shopdock__tabs button:hover .shopdock__t{ color:var(--text); }
.shopdock__tabs button[aria-pressed=true] .shopdock__t{ color:var(--ice); }
.shopdock__swatch{ width:18px; height:12px; border-radius:3px; opacity:.5; transition:opacity .35s; }
.shopdock__tabs button[aria-pressed=true] .shopdock__swatch{ opacity:1; }
.shopdock__sep{ width:1px; height:26px; margin:0 8px; background:var(--line-strong); }
.shopdock__price{ min-width:132px; margin:0; padding:0 6px; white-space:nowrap; transition:opacity .22s; }
.shopdock__price.is-swap{ opacity:0; }
.shopdock__price b{ font-family:var(--font-head); font-weight:700; font-size:1.2rem; letter-spacing:-.03em; color:var(--ice); font-variant-numeric:tabular-nums; }
.shopdock__price span{ margin-left:5px; font-size:.78rem; color:var(--muted); }
.shopdock__flip{ position:relative; display:grid; place-items:center; flex:none; width:46px; height:46px; padding:0; border:1px solid var(--line); border-radius:50%; background:none; color:var(--text); cursor:pointer; transition:color .2s, background .2s, border-color .2s; }
.shopdock__flip:hover{ color:var(--ice); background:rgba(79,140,255,.1); border-color:var(--line-strong); }
.shopdock__flip svg{ transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.shopdock__flip.is-on{ color:var(--ice); border-color:var(--blue); }
.shopdock__flip.is-on svg{ transform:rotate(180deg); }
.shopdock__tip{ position:absolute; bottom:calc(100% + 10px); left:50%; transform:translate(-50%, 4px); padding:5px 9px; border-radius:7px; background:#141c33; border:1px solid var(--line-strong);
  font-size:.74rem; color:var(--ice); white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; }
.shopdock__flip:hover .shopdock__tip, .shopdock__flip:focus-visible .shopdock__tip{ opacity:1; transform:translate(-50%, 0); }
.shopdock .shopdock__buy{ height:46px; padding:0 22px; border-radius:999px; white-space:nowrap; }
@media (max-width:840px){
  /* telephone : formules sur une ligne, prix + avantages, puis le bouton sur toute la largeur */
  .shopdock__bar{ display:grid; grid-template-columns:minmax(0,1fr) auto; row-gap:8px; width:100%; max-width:460px; border-radius:26px; }
  .shopdock__tabs{ grid-column:1 / -1; }
  .shopdock__tabs button{ flex:1 1 0; min-width:0; justify-content:center; padding:0 6px; gap:7px; }
  .shopdock__t{ font-size:.84rem; }
  .shopdock__sep{ display:none; }
  .shopdock__price{ min-width:0; padding-left:12px; }
  .shopdock__swatch{ width:14px; height:10px; }
  .shopdock .shopdock__buy{ grid-column:1 / -1; width:100%; }
}
@media (max-width:600px){ .shopcards{ height:300px; } }

/* cartes de recharge LysoCoins */
.recharges{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:18px; }
.recharge{ display:flex; flex-direction:column; gap:12px; padding:0; border:0; background:none; font:inherit; color:inherit; text-align:left; cursor:pointer; }
.recharge:focus-visible{ outline:none; }
.recharge:focus-visible .recharge__card{ outline:2px solid var(--blue); outline-offset:3px; }
.recharge__card{ position:relative; aspect-ratio:1/1.08; padding:16px; border-radius:16px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  filter:drop-shadow(0 20px 24px rgba(0,0,0,.5)); transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.recharge:hover .recharge__card{ transform:translateY(-8px) rotate(-1.5deg); }
.recharge__card::after{ content:""; position:absolute; inset:0; background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.14) 46%, transparent 60%); background-size:260% 100%; background-position:100% 0; transition:background-position .9s ease; pointer-events:none; }
.recharge:hover .recharge__card::after{ background-position:0 0; }
.recharge__amt{ font-family:var(--font-head); font-weight:800; font-size:clamp(1.5rem, 2.6vw, 2.1rem); line-height:1; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.recharge__lbl{ margin-top:4px; font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-size:.56rem; letter-spacing:.2em; opacity:.75; }
.recharge__coin{ position:absolute; right:14px; bottom:16px; width:26%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 36% 30%, #fff5d2 0%, #f3dfa6 22%, #d3ab55 62%, #8f6b27 100%); }
.recharge__coin::before{ content:""; position:absolute; inset:9%; border-radius:50%; border:1.5px solid rgba(255,244,208,.7); }
.recharge__coin::after{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid rgba(110,70,12,.45); }
.recharge__bonus{ position:absolute; top:13px; right:0; padding:4px 10px 4px 8px; border-radius:6px 0 0 6px; background:rgba(4,6,14,.78); color:#cfe0ff; font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-size:.6rem; }
.recharge__foot{ display:flex; justify-content:space-between; align-items:center; padding:0 2px; }
.recharge__px{ font-family:'JetBrains Mono', ui-monospace, Consolas, monospace; font-weight:500; color:var(--ice); }
.recharge__foot span{ font-size:.8rem; color:var(--blue-bright); opacity:0; transform:translateX(-6px); transition:opacity .3s, transform .3s; }
.recharge:hover .recharge__foot span{ opacity:1; transform:none; }
.recharge--1 .recharge__card{ background:repeating-linear-gradient(90deg, rgba(255,255,255,.07) 0 1px, transparent 1px 3px), linear-gradient(150deg, #d9e0ea, #8792a6); color:#111722; }
.recharge--2 .recharge__card{ background:repeating-radial-gradient(circle at 120% -10%, rgba(255,255,255,.06) 0 1px, transparent 1px 8px), linear-gradient(150deg, #3f7bff, #173a9c); color:#f2f6ff; }
.recharge--3 .recharge__card{ background:repeating-radial-gradient(circle at 120% -10%, rgba(255,255,255,.05) 0 1px, transparent 1px 8px), linear-gradient(150deg, #6a63d6, #2b2769); color:#f2f0ff; }
.recharge--4 .recharge__card{ background:repeating-radial-gradient(circle at 120% -10%, rgba(255,255,255,.04) 0 1px, transparent 1px 7px), linear-gradient(150deg, #22262f, #090a0e); color:#e8ecf5; border:1px solid rgba(255,255,255,.1); }
.recharge--5 .recharge__card{ background:repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 1px, transparent 1px 3px), linear-gradient(150deg, #f0d696, #c19a4a 50%, #85621f); color:#2a1d06; }
@media (max-width:860px){ .recharges{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:520px){
  .recharges{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .recharge--5{ grid-column:1 / -1; }                       /* le plus gros pack prend toute la ligne */
  .recharge--5 .recharge__card{ aspect-ratio:2.2 / 1; }
  .recharge--5 .recharge__coin{ width:13%; }
}
@media (prefers-reduced-motion: reduce){
  .mcard, .mcard__tilt, .mcard__inner, .shopdock__thumb, .shopdock__price, .recharge__card{ transition:none; }
}

/* en-tete et titres de la boutique (direction Metal) */
.pagehead--metal{ padding:120px 0 0; border-bottom:0; background:radial-gradient(110% 90% at 50% 0%, #0d1530 0%, rgba(13,21,48,0) 60%); }
.shopkick{ margin:0 0 14px; font-family:var(--font-head); font-weight:400; font-size:.74rem; letter-spacing:.42em; text-transform:uppercase; color:#aab4c7; }
.pagehead--metal .pagehead__title{ margin:0; font-weight:300; font-size:clamp(2.4rem, 6vw, 4.6rem); line-height:1; letter-spacing:-.05em; color:var(--ice); }
.pagehead--metal .pagehead__title b{ font-weight:700; }
.pagehead--metal .pagehead__sub{ margin:16px auto 0; max-width:52ch; }
.shophead{ text-align:center; margin-bottom:10px; }
.shophead__title{ margin:0; font-family:var(--font-head); font-weight:600; font-size:clamp(1.6rem, 3vw, 2.2rem); letter-spacing:-.035em; color:var(--ice); }
.shophead--coins{ margin:70px 0 44px; }

/* ============================================================
   RECRUTEMENT : badge staff + dossier en 4 etapes (Montserrat)
   ============================================================ */
body.page--recrut{ --font-head:'Montserrat', system-ui, sans-serif; --font-body:'Montserrat', system-ui, sans-serif; }
.recrut .pagehead__title{ letter-spacing:-.03em; }

.rec{ display:grid; grid-template-columns:300px minmax(0,1fr); gap:clamp(28px, 4vw, 56px); align-items:start; max-width:1180px; }
.rec__side{ position:sticky; top:96px; display:grid; justify-items:center; gap:16px; }
.rec__main{ min-width:0; scroll-margin-top:100px; }
@media (max-width:940px){ .rec{ grid-template-columns:1fr; } .rec__side{ position:static; } }

/* couleurs par pole */
[data-pole="911"]    { --p1:#1c3a7a; --p2:#0b1633; --pa:#79b0ff; }
[data-pole="legal"]  { --p1:#6a4f1f; --p2:#241a0b; --pa:#e2bf73; }
[data-pole="illegal"]{ --p1:#4a1620; --p2:#12070a; --pa:#e07a86; }
[data-pole="helper"] { --p1:#56627a; --p2:#1a202c; --pa:#d6deea; }
[data-pole="none"]   { --p1:#1a2036; --p2:#0a0d18; --pa:#aab4c7; }

/* badge */
.rbadge{ position:relative; width:280px; aspect-ratio:54/85.6; border-radius:20px; overflow:hidden; color:var(--ice);
  background:repeating-radial-gradient(circle at 120% -10%, rgba(255,255,255,.045) 0 1px, transparent 1px 8px), linear-gradient(160deg, var(--p1), var(--p2));
  border:1px solid rgba(255,255,255,.12); filter:drop-shadow(0 34px 40px rgba(0,0,0,.55)); }
.rbadge__slot{ position:absolute; top:14px; left:50%; width:56px; height:10px; margin-left:-28px; border-radius:6px; background:rgba(0,0,0,.55); }
.rbadge__top{ display:flex; justify-content:space-between; padding:36px 20px 0; font-family:var(--font-head); font-weight:600; font-size:.66rem; letter-spacing:.3em; }
.rbadge__top span:last-child{ color:var(--pa); }
.rbadge__photo{ position:relative; margin:14px 20px 0; height:34%; border-radius:12px; overflow:hidden; background:rgba(0,0,0,.4); }
.rbadge__photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s; }
.rbadge__photo img.on{ opacity:1; }
.rbadge__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.45), transparent 50%); }
.rbadge__name{ margin:16px 20px 0; font-family:var(--font-head); font-weight:700; font-size:1.4rem; letter-spacing:-.02em; line-height:1.1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rbadge__name.is-empty{ color:rgba(238,244,255,.35); }
.rbadge__rows{ margin:12px 20px 0; }
.rbadge__rows div{ display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:.74rem; }
.rbadge__rows span{ opacity:.6; }
.rbadge__rows b{ font-weight:500; font-variant-numeric:tabular-nums; }
.rbadge__id{ position:absolute; left:20px; right:20px; bottom:18px; display:flex; justify-content:space-between; align-items:end; }
.rbadge__id small{ font-size:.62rem; letter-spacing:.12em; opacity:.75; font-variant-numeric:tabular-nums; }
.rbadge__bars{ width:84px; height:26px; background:repeating-linear-gradient(90deg, currentColor 0 2px, transparent 2px 4px, currentColor 4px 5px, transparent 5px 8px); opacity:.55; }
.rmeter{ width:280px; }
.rmeter__bar{ height:3px; border-radius:2px; background:var(--bg-700); overflow:hidden; }
.rmeter__bar i{ display:block; height:100%; width:0; background:var(--pa); transition:width .5s cubic-bezier(.2,.8,.2,1); }
.rmeter__t{ display:flex; justify-content:space-between; margin-top:8px; font-size:.7rem; color:var(--muted); font-variant-numeric:tabular-nums; }

/* barre d'etapes */
.rsteps{ position:relative; display:flex; padding:5px; border:1px solid var(--line-strong); border-radius:999px; background:linear-gradient(180deg, rgba(16,24,48,.85), rgba(8,12,26,.85)); }
.rsteps__thumb{ position:absolute; top:5px; bottom:5px; left:0; width:0; border-radius:999px; border:1px solid var(--line-strong); background:linear-gradient(180deg, #1a2750, #111a38);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), width .5s cubic-bezier(.2,.8,.2,1); }
.rsteps button{ position:relative; z-index:1; flex:1; display:flex; align-items:center; justify-content:center; gap:9px; height:44px; padding:0 10px; border:0; border-radius:999px; background:none;
  font-family:var(--font-head); font-weight:600; font-size:.88rem; color:var(--muted); cursor:pointer; white-space:nowrap; transition:color .3s; }
.rsteps button[aria-current=true]{ color:var(--ice); }
.rsteps i{ display:grid; place-items:center; width:20px; height:20px; border-radius:50%; border:1px solid var(--line-strong); font-style:normal; font-size:.66rem; font-weight:600; transition:background .3s, border-color .3s, color .3s; }
.rsteps button.done i{ background:var(--blue); border-color:var(--blue); color:#fff; }
@media (max-width:600px){ .rsteps button span{ display:none; } }

/* panneau */
.recpanel{ margin-top:18px; border:1px solid var(--line-strong); border-radius:24px; background:linear-gradient(180deg, rgba(13,20,40,.8), rgba(7,11,22,.85)); overflow:hidden; }
.recpanel__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:16px; padding:26px 30px 22px; border-bottom:1px solid var(--line); }
.recpanel__k{ display:block; margin-bottom:6px; font-size:.7rem; letter-spacing:.12em; color:var(--muted); }
.recpanel__k b{ color:var(--blue-bright); font-weight:600; }
.recpanel__head h2{ margin:0; font-family:var(--font-head); font-weight:600; font-size:1.5rem; letter-spacing:-.02em; line-height:1.2; color:var(--ice); }
.recpanel__stat{ flex:none; padding:6px 12px; border:1px solid var(--line); border-radius:999px; font-size:.72rem; color:var(--text); font-variant-numeric:tabular-nums; }
.recpanel__stat.ok{ border-color:rgba(79,140,255,.5); color:var(--blue-bright); }
.recpanel__body{ padding:6px 30px; transition:opacity .22s, transform .35s cubic-bezier(.2,.8,.2,1); }
.recpanel__body.out{ opacity:0; transform:translateY(8px); }
.recpanel__foot{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; padding:18px 30px; border-top:1px solid var(--line); background:rgba(4,6,14,.35); }
.recpanel__msg .rform__status{ margin:0; min-height:0; }
.recpanel__msg .rform__status:empty{ display:none; }
.recpanel__msg .rform__status:not(:empty) + .recpanel__note{ display:none; }
.recpanel__note{ font-size:.8rem; color:var(--muted-2); }
.recpanel__act{ display:flex; gap:8px; margin-left:auto; }
@media (max-width:700px){ .recpanel__head, .recpanel__body, .recpanel__foot{ padding-left:20px; padding-right:20px; } .recpanel__act{ width:100%; } .recpanel__act .rbtn{ flex:1; } }

/* lignes : libelle + aide a gauche, champ a droite (libelle cale sur le milieu d'un champ de 48 px) */
.rrow{ display:grid; grid-template-columns:210px minmax(0,1fr); gap:10px 32px; padding:22px 0; border-top:1px solid var(--line); }
.rrow:first-child{ border-top:0; }
.rrow__l{ padding-top:13px; }
.rrow__l label, .rrow__l > span{ display:block; font-weight:600; font-size:.92rem; color:var(--ice); }
.rrow__l em{ font-style:normal; color:var(--blue-bright); }
.rrow__l small{ display:block; margin-top:4px; font-size:.8rem; line-height:1.45; color:var(--muted); }
@media (max-width:700px){ .rrow{ grid-template-columns:1fr; } .rrow__l{ padding-top:0; } }
.rfield{ width:100%; height:48px; padding:0 14px; border:1px solid var(--line); border-radius:12px; background:rgba(4,6,14,.55); font:inherit; color:var(--ice); transition:border-color .2s, background .2s; }
.rfield::placeholder{ color:var(--muted-2); }
.rfield:hover{ border-color:var(--line-strong); }
.rfield:focus{ outline:none; border-color:var(--blue); background:rgba(8,14,30,.9); }
.rfield--short{ max-width:120px; }
textarea.rfield{ height:auto; min-height:170px; padding:14px 16px; line-height:1.6; resize:vertical; }

.rpicks{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.rpick{ position:relative; height:104px; padding:0; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#000; font:inherit; text-align:left; cursor:pointer; transition:border-color .3s; }
.rpick img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) brightness(.4); transition:filter .5s; }
.rpick::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(4,6,14,.85), rgba(4,6,14,.1) 75%); }
.rpick__t{ position:absolute; z-index:1; left:14px; bottom:12px; }
.rpick__t b{ display:block; font-family:var(--font-head); font-weight:600; font-size:.95rem; color:var(--ice); }
.rpick__t small{ font-size:.74rem; color:var(--text); opacity:.8; }
.rpick__ok{ position:absolute; z-index:1; top:10px; right:10px; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--pa); color:#0a0d18; opacity:0; transform:scale(.6); transition:opacity .3s, transform .3s; }
.rpick__ok::before{ content:""; width:10px; height:6px; margin-top:-3px; border-left:2.5px solid currentColor; border-bottom:2.5px solid currentColor; transform:rotate(-45deg); }
.rpick:hover img{ filter:grayscale(.4) brightness(.6); }
.rpick[aria-pressed=true]{ border-color:var(--pa); }
.rpick[aria-pressed=true] img{ filter:none; }
.rpick[aria-pressed=true] .rpick__ok{ opacity:1; transform:none; }
@media (max-width:520px){ .rpicks{ grid-template-columns:1fr; } }
.rseg{ display:inline-flex; padding:4px; border:1px solid var(--line); border-radius:999px; background:rgba(4,6,14,.55); }
.rseg button{ height:38px; padding:0 22px; border:0; border-radius:999px; background:none; font:inherit; color:var(--muted); cursor:pointer; transition:background .3s, color .3s; }
.rseg button[aria-pressed=true]{ background:#172243; color:var(--ice); }

/* mises en situation */
.rqnav{ display:flex; gap:6px; padding:26px 0 18px; }
.rqnav button{ position:relative; flex:1; height:18px; padding:0; border:0; background:none; cursor:pointer; }
.rqnav button::before{ content:""; position:absolute; left:0; right:0; top:50%; height:3px; margin-top:-1.5px; border-radius:2px; background:rgba(150,180,255,.14); transition:background .3s; }
.rqnav button:hover::before{ background:rgba(150,180,255,.32); }
.rqnav button.done::before{ background:rgba(79,140,255,.6); }
.rqnav button[aria-current=true]::before{ background:var(--ice); }
.rq__k{ display:block; font-size:.72rem; letter-spacing:.1em; color:var(--muted); }
.rq label{ display:block; margin:6px 0 16px; font-family:var(--font-head); font-weight:600; font-size:1.25rem; line-height:1.3; letter-spacing:-.02em; color:var(--ice); text-wrap:pretty; }
.rq__bot{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin:10px 0 24px; }
.rq__bot span{ font-size:.72rem; color:var(--muted-2); font-variant-numeric:tabular-nums; }
.rqbtn{ display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 14px; border:1px solid var(--line); border-radius:999px; background:none; font:inherit; font-size:.82rem; font-weight:600; color:var(--text); cursor:pointer; transition:border-color .2s, color .2s, background .2s; }
.rqbtn:hover{ border-color:var(--line-strong); color:var(--ice); background:rgba(79,140,255,.06); }
.rqbtn.is-off{ visibility:hidden; }

/* envoi */
.rrecap{ margin:0; padding:0; list-style:none; }
.rrecap li{ display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:16px; padding:10px 0; border-bottom:1px solid var(--line); font-size:.88rem; }
.rrecap li:first-child{ padding-top:12px; }
.rrecap li:last-child{ border-bottom:0; }
.rrecap span{ color:var(--muted); }
.rrecap b{ font-weight:500; color:var(--ice); text-align:right; }
.rrecap b.manque{ color:#e0a15c; }
.rrecap button{ border:0; background:none; padding:4px 0; font:inherit; font-size:.84rem; font-weight:600; color:var(--blue-bright); cursor:pointer; }
.rrecap button:hover{ color:var(--ice); }
.rconsent{ display:flex; align-items:center; gap:12px; min-height:48px; font-size:.9rem; line-height:1.45; cursor:pointer; }
.rconsent input{ flex:none; width:18px; height:18px; margin:0; accent-color:var(--blue); }
.rconsent a{ color:var(--blue-bright); }

/* boutons */
.rbtn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; height:46px; padding:0 22px; border:1px solid rgba(170,200,255,.4); border-radius:999px;
  background:linear-gradient(180deg, #4a85ff, #2f6bff); font-family:var(--font-head); font-weight:600; font-size:.9rem; color:#fff; cursor:pointer; white-space:nowrap; transition:background .2s, opacity .2s; }
.rbtn:hover{ background:linear-gradient(180deg, #5c90ff, #3a74ff); }
.rbtn:disabled{ opacity:.6; cursor:progress; }
.rbtn svg{ flex:none; transition:transform .25s; }
.rbtn:hover svg{ transform:translateX(3px); }
.rbtn--ghost{ background:none; border-color:var(--line-strong); color:var(--text); }
.rbtn--ghost:hover{ background:rgba(79,140,255,.08); color:var(--ice); }
.rbtn--ghost:hover svg{ transform:translateX(-3px); }
.rbtn--send:hover svg{ transform:translate(2px, -2px); }
@media (prefers-reduced-motion: reduce){
  .rsteps__thumb, .recpanel__body, .rbadge__photo img, .rmeter__bar i, .rpick img{ transition:none; }
}

/* ============================================================
   REGLEMENT : livrets relies (lecture). Le mode edition du staff
   garde l'ancien affichage (voir reglement.js).
   ============================================================ */
body.page--montserrat{ --font-head:'Montserrat', system-ui, sans-serif; --font-body:'Montserrat', system-ui, sans-serif; }
.page--montserrat .pagehead__title{ letter-spacing:-.03em; }

.lv{
  --papier:#f4f2ed; --encre:#1d2230; --encre-2:#565c6c; --encre-3:#9197a3;
  --or:linear-gradient(135deg, #8a6a2f 0%, #e9d49a 32%, #b8924a 52%, #f3e3b0 72%, #9c7a3a 100%);
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  --c1:#22386e; --c2:#0c1734; --rub:#3f6fe0; --acc:#2f5bc4;
  position:relative; font-family:'Montserrat', system-ui, sans-serif;
}
.lv button{ font:inherit; }

/* ---------- etagere : livres en 3D ---------- */
.lv-shelf{ position:relative; display:flex; justify-content:center; flex-wrap:wrap; gap:clamp(18px, 4vw, 54px); padding:10px 0 36px; }
.lv-slot{ position:relative; width:196px; height:280px; perspective:1100px; padding:0; border:0; background:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.lv-slot:focus-visible{ outline:2px solid var(--blue); outline-offset:10px; border-radius:10px; }
.lv-slot__shadow{ position:absolute; left:4%; right:-8%; bottom:-24px; height:34px; border-radius:50%; background:radial-gradient(closest-side, rgba(0,0,0,.78), transparent); transition:transform .7s cubic-bezier(.2,.8,.2,1), opacity .7s; }
.lv-bk{ --ry:-26deg; --rx:3deg; --ty:0px; --open:0deg; position:absolute; inset:0; transform-style:preserve-3d;
  transform:rotateY(var(--ry)) rotateX(var(--rx)); translate:0 var(--ty);
  transition:transform .9s cubic-bezier(.2,.8,.2,1), translate .7s cubic-bezier(.2,.8,.2,1); }
.lv-slot.is-live .lv-bk{ transition:translate .7s cubic-bezier(.2,.8,.2,1); }
.lv-bk__front, .lv-bk__back, .lv-bk__side, .lv-bk__page{ position:absolute; }
.lv-bk__front{ inset:0; transform-origin:0 50%; transform:translateZ(15px) rotateY(var(--open)); transition:transform .85s cubic-bezier(.2,.8,.2,1);
  border-radius:3px 9px 9px 3px; overflow:hidden; color:#e9d49a;
  background:var(--grain), radial-gradient(140% 100% at 28% 12%, rgba(255,255,255,.14), transparent 55%), linear-gradient(150deg, var(--c1), var(--c2)); background-size:160px 160px, auto, auto; }
.lv-bk__back{ inset:0; transform:translateZ(-15px); border-radius:3px 9px 9px 3px; background:var(--c2); }
.lv-bk__side{ top:5px; right:0; width:28px; height:calc(100% - 10px); transform:translateX(9px) rotateY(90deg);
  background:linear-gradient(90deg, rgba(0,0,0,.18), transparent 30%, transparent 70%, rgba(0,0,0,.25)), repeating-linear-gradient(90deg, #efe8d9 0 1px, #d6cdb9 1px 2px); }
.lv-bk__page{ top:5px; bottom:5px; left:4px; right:3px; transform:translateZ(13px); overflow:hidden; border-radius:2px 6px 6px 2px;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-end; gap:3px; padding:0 14px; text-align:right; color:var(--encre);
  background:linear-gradient(90deg, #cfc7b6, #f4f1ea 14%, #f4f1ea 92%, #e4dfd3); }
.lv-bk__page small{ font-size:.44rem; font-weight:600; letter-spacing:.28em; color:var(--encre-3); }
.lv-bk__page b{ font-size:.74rem; font-weight:700; color:var(--acc); }
.lv-bk__page i{ display:flex; align-items:center; gap:3px; margin-top:6px; font-style:normal; font-size:.48rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--encre-2); }
.lv-bk__page i svg{ width:10px; height:10px; }
.lv-bk__hinge{ position:absolute; top:0; bottom:0; left:0; width:24px;
  background:
    linear-gradient(180deg, transparent 11%, rgba(255,255,255,.12) 11% 12%, rgba(0,0,0,.4) 12% 13.2%, transparent 13.2%, transparent 86.8%, rgba(255,255,255,.12) 86.8% 87.8%, rgba(0,0,0,.4) 87.8% 89%, transparent 89%),
    linear-gradient(90deg, rgba(0,0,0,.55), rgba(255,255,255,.07) 58%, rgba(0,0,0,.35) 88%, rgba(255,255,255,.05)); }
.lv-bk__frame{ position:absolute; inset:16px 14px 16px 36px; border:1px solid rgba(233,212,154,.55); border-radius:3px; }
.lv-bk__frame::before{ content:""; position:absolute; inset:4px; border:1px solid rgba(233,212,154,.22); border-radius:2px; }
.lv-bk__corner{ position:absolute; width:26px; height:26px; right:0; background:var(--or); background-size:260% 260%; background-position:var(--fx, 30%) 50%; opacity:.92; }
.lv-bk__corner--t{ top:0; clip-path:polygon(0 0, 100% 0, 100% 100%); border-top-right-radius:9px; }
.lv-bk__corner--b{ bottom:0; clip-path:polygon(100% 0, 100% 100%, 0 100%); border-bottom-right-radius:9px; }
.lv-bk__in{ position:absolute; inset:16px 14px 16px 36px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:14px 10px; text-align:center; }
.lv-foil{ background:var(--or); background-size:260% 260%; background-position:var(--fx, 30%) 50%; -webkit-background-clip:text; background-clip:text; color:transparent; }
.lv-bk__in small{ font-size:.5rem; font-weight:600; letter-spacing:.42em; }
.lv-bk__crest{ width:44px; height:44px; transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.lv-bk__title{ font-size:1.12rem; font-weight:700; letter-spacing:.08em; line-height:1.15; text-transform:uppercase; }
.lv-bk__rule{ width:46px; height:1px; background:var(--or); opacity:.7; transition:width .7s cubic-bezier(.2,.8,.2,1); }
.lv-bk__sub{ font-size:.5rem; font-weight:500; letter-spacing:.32em; }
.lv-bk__glare{ position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .6s;
  background:radial-gradient(circle at var(--gx, 30%) var(--gy, 20%), rgba(255,255,255,.2), transparent 48%); }
.lv-bk__shade{ position:absolute; inset:0; pointer-events:none; background:rgba(4,6,14,.5); opacity:0; transition:opacity .5s; }
.lv-slot:hover .lv-bk{ --ty:-16px; --open:-36deg; }
.lv-slot:hover .lv-bk__glare{ opacity:1; }
.lv-slot:hover .lv-bk__crest{ transform:rotate(45deg); }
.lv-slot:hover .lv-bk__rule{ width:70px; }
.lv-slot:hover .lv-slot__shadow{ transform:translateX(8px) scale(.84); opacity:.55; }
.lv-slot:active .lv-bk{ --ty:-8px; }
.lv-slot[aria-pressed=true] .lv-bk{ --ry:-8deg; --ty:-20px; }
.lv-slot[aria-pressed=true]:not(:hover) .lv-bk{ --open:-10deg; }
.lv-slot[aria-pressed=true] .lv-slot__shadow{ transform:scale(.8); opacity:.5; }
.lv-shelf.has-sel .lv-slot:not([aria-pressed=true]):not(:hover) .lv-bk__shade{ opacity:1; }

/* ---------- livre ouvert ---------- */
.lv-book{ position:relative; max-width:1100px; margin:90px auto 0; padding:14px; border-radius:14px; perspective:2800px;
  background:var(--grain), radial-gradient(130% 90% at 30% 10%, rgba(255,255,255,.07), transparent 55%), linear-gradient(150deg, var(--c1), var(--c2)); background-size:160px 160px, auto, auto; }
.lv-marks{ position:absolute; left:40px; right:40px; bottom:calc(100% - 14px); display:flex; gap:5px; align-items:flex-end; }
.lv-marks button{ position:relative; display:flex; align-items:center; justify-content:center; height:34px; padding:0 18px; border:1px solid rgba(255,255,255,.07); border-bottom:0; border-radius:9px 9px 0 0; cursor:pointer; white-space:nowrap;
  background:#141925; color:rgba(214,222,238,.5); font-size:.62rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  transition:height .45s cubic-bezier(.2,.8,.2,1), background-color .3s, color .3s; }
.lv-marks button:hover{ height:39px; background:#1d2331; color:rgba(236,241,250,.88); }
.lv-marks button:focus-visible{ outline:2px solid rgba(255,255,255,.6); outline-offset:-4px; }
.lv-marks button[aria-pressed=true]{ z-index:1; height:46px; border-color:transparent; background:var(--rub); color:#fff; font-weight:700; }
.lv-spread{ position:relative; display:grid; grid-template-columns:1fr 1fr; transform-style:preserve-3d; }
.lv-pg{ position:relative; height:760px; padding:44px 54px 0; color:var(--encre); overflow:hidden; text-align:left; }
.lv-pg::after{ content:""; position:absolute; inset:0; background:var(--grain); background-size:160px 160px; opacity:.05; pointer-events:none; }
.lv-pg--l{ border-radius:5px 0 0 5px; background:linear-gradient(90deg, #efece5 0%, var(--papier) 5%, var(--papier) 91%, #ebe7de 97%, #e0dbd0 100%); }
.lv-pg--r{ border-radius:0 5px 5px 0; background:linear-gradient(90deg, #e0dbd0 0%, #ebe7de 3%, var(--papier) 9%, var(--papier) 95%, #efece5 100%); }
.lv-run{ display:flex; justify-content:space-between; gap:12px; height:18px; font-size:.58rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--encre-3); }
.lv-pg__body{ height:620px; margin-top:26px; overflow:hidden; }
.lv-folio{ position:absolute; left:0; right:0; bottom:30px; text-align:center; font-size:.72rem; font-weight:500; color:var(--encre-3); font-variant-numeric:tabular-nums; }

/* une section = un bloc */
.lv-slotc{ padding-bottom:14px; }
.lv-card{ padding:18px 20px 8px; border:1px solid rgba(29,34,48,.1); border-radius:12px; background:rgba(255,255,255,.5); }
.lv-card__h{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:baseline; margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid rgba(29,34,48,.1); }
.lv-card__n{ font-weight:300; font-size:1.5rem; line-height:1; letter-spacing:-.03em; color:var(--acc); font-variant-numeric:tabular-nums; }
.lv-card h3{ margin:0; font-family:inherit; font-weight:700; font-size:1.1rem; line-height:1.25; letter-spacing:-.01em; color:var(--encre); }
.lv-card h3 em{ margin-left:6px; font-style:normal; font-weight:600; font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--encre-3); vertical-align:2px; }
.lv-card__c{ font-size:.64rem; font-weight:600; letter-spacing:.08em; color:var(--encre-3); white-space:nowrap; }
.lv-card__lead{ margin:0 0 10px; font-style:italic; font-size:.86rem; line-height:1.6; color:var(--encre-2); }
.lv-rule{ display:grid; grid-template-columns:28px minmax(0,1fr); gap:4px; padding:0 0 10px; font-size:.9rem; line-height:1.65; color:#2b3142; }
.lv-rule > span{ padding-top:.38em; font-size:.62rem; font-weight:600; letter-spacing:.06em; color:var(--acc); font-variant-numeric:tabular-nums; }
.lv-rule b, .lv-rule strong{ color:var(--encre); font-weight:600; }
.lv-rule a, .lv-card__lead a{ color:var(--acc); }

/* page d'ouverture de chapitre */
.lv-open{ display:flex; flex-direction:column; height:100%; }
.lv-open__top{ padding-top:36px; text-align:center; }
.lv-open__k{ margin:0; font-size:.64rem; font-weight:600; letter-spacing:.34em; text-transform:uppercase; color:var(--acc); }
.lv-open h2{ margin:14px 0 0; font-family:inherit; font-weight:300; font-size:2.9rem; line-height:1.05; letter-spacing:-.035em; color:var(--encre); }
.lv-open__orn{ display:flex; justify-content:center; align-items:center; gap:10px; margin:20px 0 0; }
.lv-open__orn::before, .lv-open__orn::after{ content:""; width:44px; height:1px; background:var(--encre-3); opacity:.55; }
.lv-open__orn i{ width:6px; height:6px; background:var(--acc); transform:rotate(45deg); }
.lv-open__d{ margin:18px auto 0; max-width:34ch; font-style:italic; font-size:.95rem; line-height:1.7; color:var(--encre-2); }
.lv-toc{ margin-top:auto; padding-bottom:6px; }
.lv-toc__h{ margin:0 0 10px; font-size:.6rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--encre-3); }
.lv-toc ol{ margin:0; padding:0; list-style:none; }
.lv-toc button{ display:flex; align-items:baseline; gap:10px; width:100%; padding:7px 0; border:0; background:none; text-align:left; cursor:pointer; font-size:.88rem; color:var(--encre-2); transition:color .2s; }
.lv-toc button i{ flex:1; min-width:16px; border-bottom:1.5px dotted #c3bcae; transform:translateY(-4px); }
.lv-toc button em{ font-style:normal; font-size:.76rem; color:var(--encre-3); font-variant-numeric:tabular-nums; }
.lv-toc button:hover{ color:var(--acc); }
.lv-open--dense .lv-open__top{ padding-top:6px; }
.lv-open--dense h2{ margin-top:10px; font-size:2.2rem; }
.lv-open--dense .lv-open__orn{ margin-top:14px; }
.lv-open--dense .lv-open__d{ margin-top:12px; }
.lv-open--dense .lv-toc button{ padding:4px 0; font-size:.84rem; }

/* coin de page corne cliquable */
.lv-curl{ position:absolute; bottom:0; width:0; height:0; border:0; padding:0; cursor:pointer; z-index:4; transition:width .3s cubic-bezier(.2,.8,.2,1), height .3s cubic-bezier(.2,.8,.2,1); }
.lv-curl--r{ right:0; background:linear-gradient(135deg, #fbfaf6 0%, #e4dfd3 44%, rgba(0,0,0,.16) 50%, transparent 52%); }
.lv-curl--l{ left:0; background:linear-gradient(225deg, #fbfaf6 0%, #e4dfd3 44%, rgba(0,0,0,.16) 50%, transparent 52%); }
.lv-pg:hover .lv-curl, .lv-curl:focus-visible{ width:50px; height:50px; }

.lv-fade{ transition:opacity .26s; }
.lv-fade.out{ opacity:0; }
.lv-leaf{ position:absolute; top:0; bottom:0; left:50%; width:50%; transform-origin:0 50%; transform-style:preserve-3d; transition:transform 1s cubic-bezier(.4,.1,.2,1); z-index:6; pointer-events:none; }
.lv-leaf.turn{ transform:rotateY(-180deg); }
.lv-leaf > div{ position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.lv-leaf__back{ transform:rotateY(180deg); border-radius:5px 0 0 5px; background:linear-gradient(90deg, #efece5, var(--papier) 8%, var(--papier) 92%, #e0dbd0); }
.lv-measure{ position:absolute; left:-9999px; top:0; visibility:hidden; pointer-events:none; }

.lv-bnav{ display:flex; justify-content:center; align-items:center; gap:clamp(12px, 3vw, 34px); margin-top:32px; }
.lv-bnav button{ display:inline-flex; align-items:center; gap:10px; height:44px; padding:0 18px; border:1px solid var(--line-strong); border-radius:999px; background:rgba(8,12,26,.7); color:var(--ice); font-size:.84rem; font-weight:600; cursor:pointer; transition:background .2s, border-color .2s, opacity .2s; }
.lv-bnav button svg{ width:16px; height:16px; }
.lv-bnav button:hover{ background:rgba(79,140,255,.1); border-color:rgba(150,180,255,.45); }
.lv-bnav button:disabled{ opacity:.3; cursor:default; }
.lv-bnav__pos{ min-width:160px; text-align:center; font-size:.74rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-variant-numeric:tabular-nums; }

@media (max-width:900px){
  .lv-slot{ width:150px; height:214px; }
  .lv-bk__title{ font-size:.86rem; }
  .lv-bk__crest{ width:34px; height:34px; }
  .lv-spread{ grid-template-columns:1fr; }
  .lv-pg--r{ display:none; }
  .lv-pg--l{ border-radius:5px; background:var(--papier); }
  .lv-pg{ height:700px; padding:34px 26px 0; }
  .lv-pg__body{ height:570px; }
  .lv-marks{ left:12px; right:12px; bottom:calc(100% - 10px); overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
  .lv-marks button{ padding:0 14px; }
  .lv-book{ padding:10px; }
  .lv-curl{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .lv-bk, .lv-bk__front, .lv-leaf, .lv-fade, .lv-marks button{ transition-duration:.01s !important; }
  .lv-slot:hover .lv-bk{ --open:0deg; }
}

/* sommaire : ne deborde jamais de la page (defile dans la page si besoin) */
.lv-toc{ min-height:0; overflow-y:auto; scrollbar-width:thin; }
@media (max-width:900px){
  .lv-open__top{ padding-top:6px; }
  .lv-open h2{ margin-top:10px; font-size:2rem; }
  .lv-open__orn{ margin-top:12px; }
  .lv-open__d{ margin-top:10px; font-size:.88rem; }
  .lv-toc button{ padding:4px 0; font-size:.82rem; }
}

/* listes et paragraphes colles dans une regle */
.lv-rule ul, .lv-rule ol, .lv-card__lead ul{ margin:4px 0 2px; padding-left:18px; }
.lv-rule li{ margin:0 0 2px; }
.lv-rule p, .lv-card__lead p{ margin:0; }

/* sous-elements d'une regle (listes collees remises en forme) */
.lv-subs{ display:block; margin-top:6px; }
.lv-sub{ position:relative; display:block; padding-left:14px; }
.lv-sub::before{ content:""; position:absolute; left:1px; top:.85em; width:6px; height:1.5px; background:var(--acc); opacity:.75; }
.lv-subs--chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.lv-subs--chips .lv-sub{ padding:1px 10px; border:1px solid rgba(29,34,48,.16); border-radius:999px; background:rgba(255,255,255,.6); font-size:.8rem; line-height:1.65; }
.lv-subs--chips .lv-sub::before{ display:none; }
