/* ── Thèmes ─────────────────────────────────────────────── */
:root{
  --forest:#3f5a3a; --forest-2:#4a6b41; --sage:#7d9560; --sage-2:#8ba36b; --sage-soft:#e6eed9;
  --bark:#6b4f3a; --beige:#f6efe2; --beige-2:#efe6d6; --cream:#faf6ee;
  --gold:#b0894f; --gold-2:#c9a86a;

  --bg:#f8f3e9;
  --glow-a:rgba(214,226,196,.85); --glow-b:rgba(239,226,204,.9); --glow-c:rgba(220,233,205,.7);
  --text:#2e261d; --ink:#2e261d; --muted:#6a604f; --heading:#3f5a3a;
  --gold-text:#8c6631; --link:#3f5a3a;
  --line:rgba(63,90,58,.12);
  --glass:rgba(255,252,246,.72); --glass-strong:rgba(255,253,249,.88); --glass-brd:rgba(255,255,255,.85);
  --soft:rgba(63,90,58,.07); --soft-2:rgba(63,90,58,.12); --soft-text:#3f5a3a;
  --accent:#3f5a3a; --accent-2:#4a6b41; --accent-ink:#fff; --accent-glow:rgba(63,90,58,.55);
  --field-bg:rgba(255,255,255,.88); --field-solid:#fffdf9; --field-brd:rgba(63,90,58,.18);
  --ok-bg:#e6eed9; --ok-text:#3f5a3a; --err-bg:#f8e6df; --err-text:#7a3b26;
  --topbar-bg:rgba(250,246,238,.74); --ctl-bg:rgba(255,253,248,.78); --ctl-brd:rgba(63,90,58,.14);
  --sk-a:rgba(63,90,58,.07); --sk-b:rgba(63,90,58,.14);
  --hero-bg:linear-gradient(130deg,#fffaf2 0%,#f4ecdc 52%,#e7eedb 100%);
  --hero-solid:#f8f2e6;
  --tile-bg:rgba(255,253,248,.7);
  --orb-op:.42; --grain-op:.05;
  --shadow:0 26px 60px -28px rgba(60,45,25,.38);
  --shadow-sm:0 12px 28px -18px rgba(60,45,25,.42);
  --shadow-lg:0 40px 80px -36px rgba(60,45,25,.5);
  --focus:#b0894f;
  --radius:20px;
  --serif:'Frank Ruhl Libre','Heebo',Georgia,serif;
  --sans:'Assistant','Heebo','Segoe UI',system-ui,Arial,sans-serif;
  --tabbar:64px;
  --ease:cubic-bezier(.22,.7,.2,1);
  color-scheme:light;
}
[data-theme="dark"]{
  --bg:#0c1611;
  --glow-a:rgba(46,74,50,.55); --glow-b:rgba(120,92,48,.22); --glow-c:rgba(36,62,44,.5);
  --text:#efe8da; --ink:#efe8da; --muted:#a8b09c; --heading:#eadbbb;
  --gold-text:#d9bc83; --link:#dcc08a;
  --line:rgba(226,206,160,.12);
  --glass:rgba(20,34,26,.62); --glass-strong:rgba(22,37,29,.86); --glass-brd:rgba(255,248,230,.08);
  --soft:rgba(234,219,187,.07); --soft-2:rgba(234,219,187,.13); --soft-text:#eadbbb;
  --accent:#c9a86a; --accent-2:#b0894f; --accent-ink:#1c150c; --accent-glow:rgba(201,168,106,.45);
  --field-bg:rgba(9,17,13,.6); --field-solid:#0f1b15; --field-brd:rgba(226,206,160,.16);
  --ok-bg:rgba(125,149,96,.18); --ok-text:#bcd29f; --err-bg:rgba(196,98,66,.16); --err-text:#f2b9a2;
  --topbar-bg:rgba(11,21,16,.72); --ctl-bg:rgba(20,34,26,.72); --ctl-brd:rgba(226,206,160,.16);
  --sk-a:rgba(234,219,187,.05); --sk-b:rgba(234,219,187,.11);
  --hero-bg:radial-gradient(120% 140% at 0% 0%,rgba(201,168,106,.16) 0%,rgba(201,168,106,0) 45%),linear-gradient(130deg,#15261c 0%,#0f1c15 55%,#141a12 100%);
  --hero-solid:#0f1c15;
  --tile-bg:rgba(18,31,24,.66);
  --orb-op:.2; --grain-op:.07;
  --shadow:0 26px 60px -26px rgba(0,0,0,.7);
  --shadow-sm:0 12px 28px -16px rgba(0,0,0,.75);
  --shadow-lg:0 40px 90px -30px rgba(0,0,0,.85);
  --focus:#e2c792;
  color-scheme:dark;
}

/* ── Base ───────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; background:var(--bg); }
body{
  font-family:var(--sans); font-size:17px; line-height:1.7; color:var(--text); background:var(--bg);
  min-height:100vh; -webkit-font-smoothing:antialiased; text-align:start;
}
button,input{ font:inherit; color:inherit; }
button{ cursor:pointer; background:none; border:0; }
a{ color:var(--link); }
img{ display:block; max-width:100%; }
ol,ul{ list-style:none; }
:focus-visible{ outline:2px solid var(--focus); outline-offset:3px; border-radius:12px; }
::selection{ background:rgba(201,168,106,.35); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; top:-80px; inset-inline-start:16px; z-index:60; background:var(--accent); color:var(--accent-ink);
  padding:10px 18px; border-radius:999px; font-weight:700; text-decoration:none; transition:top .2s; }
.skip:focus{ top:12px; }
.center{ text-align:center; margin-top:8px; }

/* Flèches : dessinées vers la droite, retournées selon le sens de lecture. */
[dir="rtl"] .dir-end, [dir="ltr"] .dir-start{ transform:scaleX(-1); }

.theme-anim, .theme-anim *, .theme-anim *::before, .theme-anim *::after{
  transition:background-color .5s ease, color .5s ease, border-color .5s ease, box-shadow .5s ease !important;
}

/* ── Fond vivant ────────────────────────────────────────── */
.backdrop{ position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none;
  background:
    radial-gradient(1100px 720px at 88% -8%, var(--glow-a) 0%, transparent 62%),
    radial-gradient(1000px 700px at -5% 12%, var(--glow-b) 0%, transparent 58%),
    radial-gradient(900px 700px at 60% 105%, var(--glow-c) 0%, transparent 58%),
    var(--bg); }
.orb{ position:absolute; border-radius:50%; filter:blur(80px); opacity:var(--orb-op); animation:float 22s ease-in-out infinite; }
.orb.o1{ width:440px; height:440px; top:-120px; right:-100px; background:radial-gradient(circle at 30% 30%,#a9c08a,#4a6b41 70%); }
.orb.o2{ width:380px; height:380px; top:40%; left:-150px; background:radial-gradient(circle at 30% 30%,#ecdcbc,#b0894f 70%); animation-delay:-7s; }
.orb.o3{ width:360px; height:360px; bottom:-150px; right:20%; background:radial-gradient(circle at 30% 30%,#c9a86a,#6b4f3a 70%); opacity:calc(var(--orb-op) * .7); animation-delay:-13s; }
.grain{ position:absolute; inset:0; opacity:var(--grain-op);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
@keyframes float{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(0,-30px) scale(1.06); } }

.boot-loader{ min-height:100vh; display:grid; place-items:center; }
.boot-loader span{ width:42px; height:42px; border-radius:50%; border:2.5px solid var(--soft-2); border-top-color:var(--gold); animation:spin 1s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.view-enter{ animation:rise .6s var(--ease) both; }
@keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes fade{ from{ opacity:0; } to{ opacity:1; } }

/* ── Contrôles langue / thème ───────────────────────────── */
.controls{ display:flex; align-items:center; gap:8px; direction:ltr; flex:none; }
.ctl{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; flex:none; color:var(--soft-text);
  background:var(--ctl-bg); border:1px solid var(--ctl-brd); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  transition:transform .25s var(--ease), background .2s, box-shadow .25s; }
.ctl:hover{ transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.ctl svg{ width:18px; height:18px; }
.theme-btn span{ display:grid; place-items:center; animation:spinIn .5s var(--ease); }
[data-theme="dark"] .theme-btn .i-moon, :root:not([data-theme="dark"]) .theme-btn .i-sun{ display:none; }
[data-theme="dark"] .theme-btn{ color:var(--gold-2); }
@keyframes spinIn{ from{ transform:rotate(-80deg) scale(.6); opacity:0; } to{ transform:none; opacity:1; } }
.seg{ display:inline-flex; padding:3px; border-radius:999px; background:var(--ctl-bg); border:1px solid var(--ctl-brd);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.seg button{ min-width:36px; height:30px; padding:0 10px; border-radius:999px; font-size:.8rem; font-weight:700; letter-spacing:.02em;
  color:var(--muted); transition:background .25s, color .25s, box-shadow .25s; display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.seg button:hover{ color:var(--text); }
.seg button[aria-pressed="true"]{ background:var(--accent); color:var(--accent-ink); box-shadow:0 6px 14px -8px var(--accent-glow); }
.seg-lg{ direction:inherit; }
.seg-lg button{ height:38px; padding:0 16px; font-size:.92rem; }
.seg-lg button svg{ width:17px; height:17px; }
.corner{ position:fixed; z-index:40; top:calc(14px + env(safe-area-inset-top)); right:16px; }

/* ── Coque ──────────────────────────────────────────────── */
.wrap{ width:100%; max-width:1200px; margin:0 auto; padding:0 22px; }
.topbar{ position:sticky; top:0; z-index:20; background:var(--topbar-bg); border-bottom:1px solid var(--line);
  backdrop-filter:saturate(1.4) blur(18px); -webkit-backdrop-filter:saturate(1.4) blur(18px); padding-top:env(safe-area-inset-top); }
/* Langue et thème toujours en haut à droite, quel que soit le sens de lecture. */
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:16px; height:68px; direction:ltr; }
[dir="rtl"] .topbar .brand, [dir="rtl"] .topbar .nav{ direction:rtl; }
.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--text); min-width:0; }
.brand .mark{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; flex:none; color:#fff;
  background:linear-gradient(140deg,var(--forest-2),var(--sage) 70%,var(--gold-2)); box-shadow:0 10px 22px -10px rgba(63,90,58,.8), inset 0 1px 0 rgba(255,255,255,.3); }
.brand .mark svg{ width:22px; height:22px; }
.brand .name{ font-family:var(--serif); font-weight:700; font-size:1.22rem; line-height:1.1; white-space:nowrap; color:var(--heading); }
.brand .name small{ display:block; font-family:var(--sans); font-weight:500; font-size:.72rem; color:var(--muted); letter-spacing:.02em; margin-top:2px; }
.nav{ display:flex; gap:4px; padding:4px; border-radius:999px; background:var(--soft); }
.nav a{ display:flex; align-items:center; gap:7px; padding:8px 16px; border-radius:999px; text-decoration:none; color:var(--muted);
  font-weight:600; font-size:.95rem; transition:background .25s, color .25s, box-shadow .25s; }
.nav a svg{ width:18px; height:18px; }
.nav a:hover{ color:var(--text); }
.nav a.on{ background:var(--accent); color:var(--accent-ink); box-shadow:0 8px 18px -10px var(--accent-glow); }
main{ display:block; padding:30px 0 70px; min-height:calc(100vh - 68px); outline:none; }

.tabbar{ display:none; }
@media (max-width:760px){
  .wrap{ padding:0 16px; }
  .topbar .wrap{ height:60px; }
  .topbar .nav{ display:none; }
  .brand .mark{ width:36px; height:36px; }
  .brand .name{ font-size:1.08rem; }
  .brand .name small{ font-size:.68rem; }
  .tabbar{ position:fixed; z-index:30; bottom:calc(10px + env(safe-area-inset-bottom)); left:12px; right:12px; height:var(--tabbar);
    display:flex; align-items:stretch; padding:6px; border-radius:24px; background:var(--glass-strong); border:1px solid var(--glass-brd);
    box-shadow:var(--shadow-lg); backdrop-filter:saturate(1.4) blur(20px); -webkit-backdrop-filter:saturate(1.4) blur(20px); }
  .tabbar a{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; text-decoration:none;
    color:var(--muted); font-size:.74rem; font-weight:700; border-radius:18px; transition:background .25s, color .25s; }
  .tabbar a svg{ width:22px; height:22px; transition:transform .3s var(--ease); }
  .tabbar a.on{ color:var(--heading); background:var(--soft); }
  .tabbar a.on svg{ transform:translateY(-1px) scale(1.06); color:var(--accent); }
  main{ padding:20px 0 calc(var(--tabbar) + 44px + env(safe-area-inset-bottom)); }
}

/* ── Boutons & champs ───────────────────────────────────── */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:14px 28px; border-radius:999px;
  font-weight:700; font-size:1rem; text-decoration:none; transition:transform .2s var(--ease), box-shadow .25s, background .25s, color .25s; }
.btn:hover{ transform:translateY(-1px); }
.btn:active{ transform:scale(.98); }
.btn svg{ width:19px; height:19px; flex:none; }
.btn-primary{ background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:var(--accent-ink); box-shadow:0 16px 32px -16px var(--accent-glow); }
.btn-primary:hover{ box-shadow:0 20px 38px -14px var(--accent-glow); }
.btn-gold{ background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#fff; box-shadow:0 16px 32px -16px rgba(176,137,79,.9); }
[data-theme="dark"] .btn-gold{ color:#1c150c; }
.btn-soft{ background:var(--soft); color:var(--soft-text); border:1px solid transparent; }
.btn-soft:hover{ background:var(--soft-2); }
.btn-soft.on{ background:var(--accent); color:var(--accent-ink); box-shadow:0 12px 26px -14px var(--accent-glow); }
.btn[disabled]{ opacity:.6; pointer-events:none; }
.btn-block{ width:100%; }
.link{ color:var(--link); font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; border-bottom-color:color-mix(in srgb,currentColor 35%,transparent);
  padding-bottom:1px; transition:border-color .2s; }
.link:hover{ border-bottom-color:currentColor; }

.field{ display:block; margin-bottom:16px; }
.field > span:first-child{ display:block; font-weight:600; font-size:.93rem; margin-bottom:6px; color:var(--text); }
.field input{ width:100%; padding:14px 16px; border-radius:14px; border:1.5px solid var(--field-brd); background:var(--field-bg); color:var(--text);
  font-size:1.02rem; transition:border-color .2s, box-shadow .2s, background .2s; }
.field input:focus{ outline:none; border-color:var(--sage); box-shadow:0 0 0 4px rgba(125,149,96,.2); }
[data-theme="dark"] .field input:focus{ border-color:var(--gold-2); box-shadow:0 0 0 4px rgba(201,168,106,.16); }
[dir="rtl"] .field input{ text-align:right; }
.field input:-webkit-autofill{ -webkit-text-fill-color:var(--text); box-shadow:0 0 0 100px var(--field-solid) inset; caret-color:var(--text); }
.pw{ position:relative; display:block; }
[dir="rtl"] .pw input{ padding-left:50px; }
[dir="ltr"] .pw input{ padding-right:50px; }
.pw-eye{ position:absolute; top:50%; transform:translateY(-50%); inset-inline-end:6px; width:40px; height:40px; border-radius:12px;
  display:grid; place-items:center; color:var(--muted); transition:color .2s, background .2s; }
.pw-eye:hover{ color:var(--text); background:var(--soft); }
.pw-eye[aria-pressed="true"]{ color:var(--gold-text); }
.pw-eye svg{ width:20px; height:20px; }
.msg{ padding:12px 16px; border-radius:14px; font-size:.95rem; margin-bottom:16px; animation:rise .35s var(--ease); }
.msg.err{ background:var(--err-bg); color:var(--err-text); }
.msg.ok{ background:var(--ok-bg); color:var(--ok-text); }
.msg-extra{ margin-top:6px; }
.msg-extra .link{ color:inherit; }

/* ── Écrans d'accueil (connexion…) ──────────────────────── */
.auth{ min-height:100vh; display:grid; place-items:center; padding:32px 18px; }
.auth-card{ position:relative; width:100%; max-width:440px; background:var(--glass); border:1px solid var(--glass-brd); border-radius:30px;
  padding:38px 32px 30px; box-shadow:var(--shadow-lg); backdrop-filter:saturate(1.3) blur(22px); -webkit-backdrop-filter:saturate(1.3) blur(22px); }
.auth-card::before{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; padding:1px;
  background:linear-gradient(160deg,rgba(201,168,106,.55),rgba(201,168,106,0) 40%,rgba(125,149,96,0) 60%,rgba(125,149,96,.35));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.auth-card .brand{ justify-content:center; margin-bottom:24px; }
.auth-card .brand .mark{ width:54px; height:54px; }
.auth-card .brand .mark svg{ width:30px; height:30px; }
.auth-card .brand .name{ font-size:1.5rem; }
.auth-card h1{ font-family:var(--serif); font-weight:500; font-size:1.85rem; line-height:1.25; text-align:center; color:var(--heading); margin-bottom:8px; }
.auth-card .lead{ text-align:center; color:var(--muted); margin-bottom:24px; }
.auth-card .btn-block{ margin-top:6px; }
.auth-card .hint{ font-size:.88rem; color:var(--muted); text-align:center; margin-top:16px; line-height:1.6; }
.auth-links{ display:flex; flex-direction:column; align-items:center; gap:10px; margin-top:22px; font-size:.96rem; }

.auth.split{ display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); place-items:stretch; padding:0; }
.auth-art{ position:relative; overflow:hidden; margin:16px; margin-inline-end:0; border-radius:34px; min-height:calc(100vh - 32px);
  box-shadow:var(--shadow-lg); background:#2a3a28; }
.auth-art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 22%;
  animation:breathe 26s ease-in-out infinite alternate; }
[data-theme="dark"] .auth-art img{ filter:brightness(.82) saturate(.95); }
.auth-art-shade{ position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(18,26,18,.18) 0%,rgba(18,26,18,0) 30%,rgba(18,26,18,.25) 55%,rgba(14,22,15,.82) 100%),
             linear-gradient(120deg,rgba(63,90,58,.18),rgba(176,137,79,.12)); }
.auth-quote{ position:absolute; inset-inline:48px; bottom:52px; color:#fff; animation:rise 1s .2s var(--ease) both; }
.q-mark{ width:50px; height:50px; border-radius:50%; display:grid; place-items:center; margin-bottom:18px; color:var(--gold-2);
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.q-mark svg{ width:26px; height:26px; }
.auth-quote p{ font-family:var(--serif); font-weight:400; font-size:clamp(1.8rem,2.8vw,2.5rem); line-height:1.25; max-width:15em; text-shadow:0 2px 24px rgba(0,0,0,.25); }
.auth-quote small{ display:block; margin-top:12px; font-size:1rem; opacity:.85; }
.auth-side{ display:grid; place-items:center; padding:90px 32px 48px; }
@keyframes breathe{ from{ transform:scale(1); } to{ transform:scale(1.08); } }

@media (max-width:980px){
  .auth.split{ display:block; min-height:100vh; }
  .auth-art{ margin:0; border-radius:0 0 38px 38px; min-height:0; height:min(52vh,460px); box-shadow:none; }
  .auth-art-shade{ background:linear-gradient(180deg,rgba(18,26,18,.4) 0%,rgba(18,26,18,0) 28%,rgba(18,26,18,.1) 50%,rgba(14,22,15,.78) 100%); }
  .auth-quote{ inset-inline:24px; bottom:118px; }
  .auth-quote p{ font-size:1.45rem; }
  .auth-quote small{ font-size:.9rem; margin-top:6px; }
  .q-mark{ width:40px; height:40px; margin-bottom:10px; }
  .q-mark svg{ width:22px; height:22px; }
  .auth-side{ position:relative; z-index:2; margin-top:-92px; padding:0 14px 40px; }
  .auth-card{ padding:30px 22px 24px; background:var(--glass-strong); }
}

/* ── Accueil : héros ────────────────────────────────────── */
.banner{ display:flex; align-items:center; gap:10px; background:linear-gradient(135deg,rgba(201,168,106,.16),rgba(201,168,106,.07));
  border:1px solid rgba(201,168,106,.35); color:var(--gold-text); border-radius:16px; padding:10px 16px; font-size:.92rem; margin-bottom:22px; }
.banner svg{ width:18px; height:18px; flex:none; }

.hero{ position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); min-height:440px;
  border-radius:34px; overflow:hidden; background:var(--hero-bg); border:1px solid var(--glass-brd); box-shadow:var(--shadow-lg); margin-bottom:46px; }
.hero::after{ content:""; position:absolute; z-index:-1; width:420px; height:420px; border-radius:50%; bottom:-200px; inset-inline-start:-120px;
  background:radial-gradient(circle,rgba(201,168,106,.28),transparent 70%); }
.hero-media{ order:2; position:relative; overflow:hidden; }
.hero-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%;
  animation:breathe 30s ease-in-out infinite alternate;
  -webkit-mask-image:linear-gradient(to left,#000 62%,transparent); mask-image:linear-gradient(to left,#000 62%,transparent); }
[dir="rtl"] .hero-media img{ -webkit-mask-image:linear-gradient(to right,#000 62%,transparent); mask-image:linear-gradient(to right,#000 62%,transparent); }
[data-theme="dark"] .hero-media img{ filter:brightness(.8) saturate(.92); }
.hero-content{ position:relative; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:6px; padding:52px 56px; }
.eyebrow{ color:var(--gold-text); font-weight:700; font-size:.88rem; }
[lang="en"] .eyebrow, [lang="en"] .kicker{ letter-spacing:.12em; text-transform:uppercase; font-size:.76rem; }
.hero h1{ font-family:var(--serif); font-weight:500; font-size:clamp(2.1rem,4.6vw,3.4rem); line-height:1.12; color:var(--heading); letter-spacing:-.01em; }
.hero-name{ color:var(--gold-text); }
.hero-lead{ color:var(--muted); font-size:1.12rem; margin-bottom:22px; }
.hero-pill{ display:inline-flex; align-items:center; gap:9px; padding:10px 18px; border-radius:999px; font-weight:600; font-size:.95rem;
  background:var(--glass-strong); border:1px solid var(--glass-brd); color:var(--text); box-shadow:var(--shadow-sm); }
.hero-pill svg{ width:18px; height:18px; color:var(--gold); animation:twinkle 3s ease-in-out infinite; }
@keyframes twinkle{ 0%,100%{ transform:scale(1) rotate(0); opacity:1; } 50%{ transform:scale(.8) rotate(25deg); opacity:.7; } }

.up-next{ position:relative; display:grid; grid-template-columns:150px minmax(0,1fr) auto; align-items:center; gap:18px; width:100%; max-width:560px;
  padding:12px; padding-inline-end:20px; border-radius:24px; text-decoration:none; color:inherit; background:var(--glass-strong);
  border:1px solid var(--glass-brd); box-shadow:var(--shadow); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  transition:transform .35s var(--ease), box-shadow .35s; }
.up-next:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.up-next .thumb{ border-radius:16px; box-shadow:none; }
.up-body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.kicker{ display:inline-flex; align-items:center; gap:7px; color:var(--gold-text); font-weight:700; font-size:.86rem; }
.kicker svg{ width:16px; height:16px; }
.up-title{ font-family:var(--serif); font-weight:500; font-size:1.3rem; line-height:1.3; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.up-meta{ color:var(--muted); font-size:.9rem; }
.up-bar{ display:block; height:4px; border-radius:4px; background:var(--soft-2); margin-top:8px; overflow:hidden; }
.up-bar i{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--gold),var(--gold-2)); }
.up-play{ position:relative; width:54px; height:54px; border-radius:50%; display:grid; place-items:center; flex:none;
  background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:var(--accent-ink); box-shadow:0 12px 26px -10px var(--accent-glow); }
.up-play::before{ content:""; position:absolute; inset:-6px; border-radius:50%; border:1.5px solid var(--accent); opacity:0; animation:ring 2.6s ease-out infinite; }
.up-play svg{ width:22px; height:22px; margin-left:3px; }
@keyframes ring{ 0%{ transform:scale(.85); opacity:.6; } 100%{ transform:scale(1.3); opacity:0; } }

@media (max-width:860px){
  .hero{ display:block; min-height:0; border-radius:28px; }
  .hero-media{ position:absolute; inset:0; z-index:-1; }
  .hero-media img{ object-position:center 18%; -webkit-mask-image:none; mask-image:none; }
  [dir="rtl"] .hero-media img{ -webkit-mask-image:none; mask-image:none; }
  .hero-media::after{ content:""; position:absolute; inset:0;
    background:linear-gradient(180deg,transparent 0%,transparent 22%,color-mix(in srgb,var(--hero-solid) 70%,transparent) 48%,var(--hero-solid) 68%); }
  .hero-content{ padding:250px 20px 22px; }
  .hero-lead{ font-size:1.02rem; margin-bottom:16px; }
  .up-next{ grid-template-columns:96px minmax(0,1fr) auto; gap:12px; padding:10px; padding-inline-end:14px; border-radius:20px; }
  .up-next .thumb{ border-radius:12px; }
  .up-title{ font-size:1.08rem; }
  .up-play{ width:46px; height:46px; }
  .up-play svg{ width:19px; height:19px; }
}

/* ── Bientôt : état vide du catalogue ──────────────────── */
.soon{ position:relative; overflow:hidden; isolation:isolate; text-align:center; padding:54px 36px 44px; border-radius:34px;
  background:var(--glass); border:1px solid var(--glass-brd); box-shadow:var(--shadow); }
.soon::before{ content:""; position:absolute; z-index:-1; width:620px; height:620px; top:-360px; left:50%; transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(circle,rgba(201,168,106,.26),transparent 68%); }
.soon-head .kicker{ padding:6px 14px; border-radius:999px; background:rgba(201,168,106,.13); border:1px solid rgba(201,168,106,.3); margin-bottom:16px; }
.soon-head h2{ font-family:var(--serif); font-weight:500; font-size:clamp(1.8rem,3.6vw,2.5rem); line-height:1.2; color:var(--heading); }
.soon-head p{ color:var(--muted); max-width:520px; margin:10px auto 0; font-size:1.06rem; }
.soon-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:36px 0 34px; }
.soon-tile{ position:relative; display:flex; flex-direction:column; align-items:center; gap:4px; padding:26px 16px 22px; border-radius:24px;
  background:var(--tile-bg); border:1px solid var(--glass-brd); box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease), box-shadow .4s; animation:rise .7s var(--ease) both; }
.soon-tile.s1{ animation-delay:.08s; } .soon-tile.s2{ animation-delay:.16s; } .soon-tile.s3{ animation-delay:.24s; }
.soon-tile:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.soon-ic{ width:58px; height:58px; border-radius:50%; display:grid; place-items:center; color:#fff; margin-bottom:10px;
  background:linear-gradient(140deg,#8ba36b,#3f5a3a); box-shadow:0 14px 26px -14px rgba(63,90,58,.9); }
.s1 .soon-ic{ background:linear-gradient(140deg,#d9bf8c,#b0894f); box-shadow:0 14px 26px -14px rgba(176,137,79,.9); }
.s2 .soon-ic{ background:linear-gradient(140deg,#a9c08a,#5f7a4c); }
.s3 .soon-ic{ background:linear-gradient(140deg,#b78a63,#6b4f3a); box-shadow:0 14px 26px -14px rgba(107,79,58,.9); }
.soon-ic svg{ width:28px; height:28px; }
.soon-tile b{ font-family:var(--serif); font-weight:500; font-size:1.2rem; color:var(--text); }
.soon-tile small{ color:var(--muted); font-size:.88rem; line-height:1.45; }
.soon-line{ display:block; width:44px; height:3px; border-radius:3px; margin-top:12px; overflow:hidden; position:relative; background:var(--soft-2); }
.soon-line::after{ content:""; position:absolute; inset:0; width:50%; border-radius:inherit; background:linear-gradient(90deg,transparent,var(--gold-2),transparent);
  animation:slide 2.4s ease-in-out infinite; }
@keyframes slide{ from{ transform:translateX(-120%); } to{ transform:translateX(220%); } }
.soon-note{ display:inline-flex; align-items:center; gap:14px; padding:8px; padding-inline-end:22px; border-radius:999px; background:var(--soft); }
.soon-note img{ width:56px; height:56px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--gold-2); }
.soon-note p{ font-family:var(--serif); font-size:1.08rem; color:var(--text); }
.soon-note b{ color:var(--gold-text); font-weight:500; }
@media (max-width:760px){
  .soon{ padding:38px 18px 30px; border-radius:28px; }
  .soon-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:28px 0; }
  .soon-tile{ padding:20px 12px 16px; }
  .soon-note p{ font-size:.98rem; text-align:start; }
}

/* ── Rangées & cartes ───────────────────────────────────── */
.row{ margin-bottom:40px; }
.row-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.row-head h2{ font-family:var(--serif); font-weight:500; font-size:1.55rem; color:var(--heading); line-height:1.25; }
.row-head .count{ color:var(--muted); font-family:var(--sans); font-size:.88rem; font-weight:500; margin-inline-start:10px; unicode-bidi:isolate; }
.row-tools{ display:flex; align-items:center; gap:12px; flex:none; }
.see-all{ display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:.92rem; text-decoration:none; color:var(--link); white-space:nowrap; }
.see-all svg{ width:16px; height:16px; transition:translate .25s var(--ease); }
.see-all:hover svg{ translate:3px 0; }
[dir="rtl"] .see-all:hover svg{ translate:-3px 0; }
.row-nav{ display:flex; gap:6px; }
.row-nav .ctl{ width:34px; height:34px; }
.scroller{ display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 3*20px)/4); gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:6px 4px 18px; margin:-6px -4px 0; scrollbar-width:none; }
.scroller::-webkit-scrollbar{ display:none; }
.scroller > *{ scroll-snap-align:start; }
@media (max-width:760px){
  .row-nav{ display:none; }
  .scroller{ grid-auto-columns:74%; gap:14px; margin-inline:-16px; padding-inline:16px; scroll-padding-inline:16px; }
}
.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:28px 22px; }

.card{ display:block; text-decoration:none; color:inherit; border-radius:20px; transition:transform .45s var(--ease); }
.card:hover{ transform:translateY(-6px); }
.thumb{ position:relative; aspect-ratio:16/9; border-radius:18px; overflow:hidden; box-shadow:var(--shadow-sm); isolation:isolate;
  background:linear-gradient(135deg,#a9c08a,#4a6b41); transition:box-shadow .45s var(--ease); }
.card:hover .thumb{ box-shadow:var(--shadow-lg); }
.thumb.p1{ background:linear-gradient(135deg,#d9bf8c,#7a5a3f); }
.thumb.p2{ background:linear-gradient(135deg,#8ba36b,#2f4a2c); }
.thumb.p3{ background:linear-gradient(135deg,#efe1c4,#b0894f); }
.thumb .ph{ position:absolute; inset:0; display:grid; place-items:center; color:rgba(255,255,255,.85);
  background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.25),transparent 55%); }
.thumb .ph svg{ width:42px; height:42px; }
.thumb-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.08); filter:blur(8px);
  transition:opacity .8s var(--ease), transform .9s var(--ease), filter .8s var(--ease); }
.thumb-img.in{ opacity:1; transform:scale(1); filter:none; }
.card:hover .thumb-img.in{ transform:scale(1.06); }
.thumb .play{ position:absolute; inset:0; display:grid; place-items:center; opacity:0; transition:opacity .35s;
  background:linear-gradient(180deg,rgba(20,18,12,0) 30%,rgba(20,18,12,.45)); }
.thumb .play span{ width:54px; height:54px; border-radius:50%; display:grid; place-items:center; color:var(--forest);
  background:rgba(255,253,248,.94); box-shadow:0 10px 30px -8px rgba(0,0,0,.45); transform:scale(.8); transition:transform .4s var(--ease); }
.thumb .play svg{ width:22px; height:22px; margin-left:3px; }
.card:hover .thumb .play, .card:focus-visible .thumb .play{ opacity:1; }
.card:hover .thumb .play span{ transform:scale(1); }
.thumb .dur{ position:absolute; bottom:10px; inset-inline-end:10px; background:rgba(18,16,11,.6); color:#fff; font-size:.78rem; font-weight:700;
  padding:2px 9px; border-radius:999px; direction:ltr; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.thumb .done{ position:absolute; top:10px; inset-inline-start:10px; width:28px; height:28px; border-radius:50%; background:var(--forest); color:#fff;
  display:grid; place-items:center; box-shadow:0 6px 14px -6px rgba(0,0,0,.5); }
.thumb .done svg{ width:16px; height:16px; }
.thumb .bar{ position:absolute; bottom:0; inset-inline:0; height:4px; background:rgba(255,255,255,.35); }
.thumb .bar i{ display:block; height:100%; background:linear-gradient(90deg,var(--gold),var(--gold-2)); }
.card-body{ padding:12px 4px 0; }
.card h3{ font-size:1.04rem; font-weight:700; line-height:1.4; color:var(--text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card .sub{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:.86rem; color:var(--muted); margin-top:3px; }
.card .sub i{ width:3px; height:3px; border-radius:50%; background:currentColor; opacity:.6; }

/* ── Squelettes ─────────────────────────────────────────── */
.skel{ background:linear-gradient(90deg,var(--sk-a) 25%,var(--sk-b) 50%,var(--sk-a) 75%); background-size:200% 100%; animation:shimmer 1.5s ease-in-out infinite; border-radius:12px; }
@keyframes shimmer{ from{ background-position:100% 0; } to{ background-position:-100% 0; } }
.sk-hero{ height:420px; border-radius:34px; margin-bottom:46px; }
.sk-row{ margin-bottom:40px; }
.sk-title{ width:220px; height:28px; margin-bottom:18px; }
.sk-cards{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.sk-thumb{ aspect-ratio:16/9; border-radius:18px; }
.sk-line{ height:14px; width:82%; margin-top:14px; border-radius:7px; }
.sk-line.short{ width:46%; margin-top:8px; }
@media (max-width:760px){
  .sk-hero{ height:460px; border-radius:28px; }
  .sk-cards{ grid-template-columns:74% 74%; overflow:hidden; gap:14px; }
}

/* ── États vides, en-têtes de page ──────────────────────── */
.empty{ text-align:center; padding:64px 20px; color:var(--muted); }
.empty-mark{ width:84px; height:84px; margin:0 auto 18px; border-radius:50%; display:grid; place-items:center; color:var(--sage);
  background:var(--soft); box-shadow:0 0 0 10px color-mix(in srgb,var(--soft) 50%,transparent); animation:breath 5s ease-in-out infinite; }
[data-theme="dark"] .empty-mark{ color:var(--gold-2); }
.empty-mark svg{ width:40px; height:40px; }
.empty h2{ font-family:var(--serif); font-weight:500; color:var(--heading); font-size:1.6rem; margin-bottom:6px; }
.empty p{ max-width:420px; margin:0 auto; }
@keyframes breath{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.06); } }

.page-head{ margin:6px 0 28px; }
.page-head h1{ font-family:var(--serif); font-weight:500; font-size:clamp(2rem,4vw,2.7rem); line-height:1.15; color:var(--heading); }
.page-head p{ color:var(--muted); margin-top:6px; font-size:1.05rem; }
.back{ display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-weight:600; font-size:.95rem; text-decoration:none; margin-bottom:18px;
  padding:6px 14px 6px 10px; padding-inline:10px 16px; border-radius:999px; background:var(--soft); transition:background .2s, color .2s; }
.back:hover{ color:var(--text); background:var(--soft-2); }
.back svg{ width:17px; height:17px; }
.col-progress{ height:6px; border-radius:6px; background:var(--soft-2); margin:-12px 0 30px; max-width:420px; overflow:hidden; }
.col-progress i{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--gold),var(--gold-2)); }

/* ── Page vidéo ─────────────────────────────────────────── */
.watch{ display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:34px; align-items:start; }
@media (max-width:1000px){ .watch{ grid-template-columns:1fr; } }
.player-frame{ position:relative; isolation:isolate; }
.player-frame::before{ content:""; position:absolute; z-index:-1; inset:8% 4% -6%; border-radius:40px; filter:blur(50px); opacity:.55;
  background:linear-gradient(120deg,rgba(125,149,96,.7),rgba(201,168,106,.6)); }
.player{ position:relative; aspect-ratio:16/9; border-radius:24px; overflow:hidden; background:#0b100c; box-shadow:var(--shadow-lg);
  border:1px solid var(--glass-brd); }
.player iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.player .loading{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  color:rgba(255,255,255,.75); font-size:.95rem; }
.player .loading .boot-loader{ min-height:0; }
.player .loading .boot-loader span{ border-color:rgba(255,255,255,.15); border-top-color:var(--gold-2); }
.player .demo{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:24px;
  color:#fff; text-align:center; animation:fade .6s ease;
  background:radial-gradient(80% 90% at 50% 0%,rgba(201,168,106,.28),transparent 60%),linear-gradient(140deg,#4a6b41,#22311f); }
.demo-play{ width:78px; height:78px; border-radius:50%; display:grid; place-items:center; margin-bottom:8px;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.demo-play svg{ width:30px; height:30px; margin-left:4px; }
.player .demo b{ font-family:var(--serif); font-weight:500; font-size:1.35rem; }
.player .demo small{ opacity:.8; max-width:440px; line-height:1.55; }
.watch-head{ margin:26px 0 4px; }
.watch-head h1{ font-family:var(--serif); font-weight:500; font-size:clamp(1.6rem,3.4vw,2.3rem); line-height:1.25; color:var(--heading); margin:4px 0 10px; }
.watch .meta{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:999px; background:var(--soft); color:var(--text); font-size:.9rem; font-weight:600; }
.chip svg{ width:16px; height:16px; color:var(--muted); }
.chip.ok{ background:var(--ok-bg); color:var(--ok-text); }
.chip.ok svg{ color:inherit; }
.watch .actions{ display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.watch .desc{ white-space:pre-line; unicode-bidi:plaintext; background:var(--glass); border:1px solid var(--glass-brd); border-radius:22px; padding:20px 22px; color:var(--text); }
.side{ position:sticky; top:92px; background:var(--glass); border:1px solid var(--glass-brd); border-radius:26px; padding:20px 16px 14px; box-shadow:var(--shadow-sm); }
@media (max-width:1000px){ .side{ position:static; } }
.side h2{ font-family:var(--serif); font-weight:500; font-size:1.2rem; color:var(--heading); margin:0 6px 12px; }
.side-list{ display:flex; flex-direction:column; gap:4px; max-height:calc(100vh - 190px); overflow-y:auto; scrollbar-width:thin; }
@media (max-width:1000px){ .side-list{ max-height:none; } }
.side-item{ display:grid; grid-template-columns:24px 112px minmax(0,1fr); gap:12px; align-items:center; text-decoration:none; color:inherit;
  padding:8px; border-radius:16px; transition:background .2s; }
.side-item:hover{ background:var(--soft); }
.side-item.on{ background:var(--soft-2); }
.side-n{ display:grid; place-items:center; color:var(--muted); font-size:.85rem; font-weight:700; }
.side-item.on .side-n{ color:var(--gold-text); }
.side-n svg{ width:14px; height:14px; }
.side-item .thumb{ border-radius:11px; box-shadow:none; }
.side-item .thumb .ph svg{ width:24px; height:24px; }
.side-item .thumb .done{ width:22px; height:22px; top:6px; inset-inline-start:6px; }
.side-item .thumb .done svg{ width:13px; height:13px; }
.side-txt b{ font-size:.94rem; font-weight:700; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.side-txt small{ display:block; color:var(--muted); font-size:.84rem; margin-top:2px; }

/* ── Compte ─────────────────────────────────────────────── */
.account{ max-width:780px; margin:0 auto; display:flex; flex-direction:column; gap:20px; }
.profile{ position:relative; overflow:hidden; isolation:isolate; display:flex; align-items:center; gap:18px; padding:28px; border-radius:30px;
  background:var(--hero-bg); border:1px solid var(--glass-brd); box-shadow:var(--shadow); }
.profile::after{ content:""; position:absolute; z-index:-1; width:300px; height:300px; top:-150px; inset-inline-end:-80px; border-radius:50%;
  background:radial-gradient(circle,rgba(201,168,106,.3),transparent 70%); }
.avatar{ width:72px; height:72px; border-radius:50%; flex:none; display:grid; place-items:center; color:#fff; font-family:var(--serif); font-size:2rem;
  background:linear-gradient(140deg,var(--forest-2),var(--sage) 65%,var(--gold-2)); box-shadow:0 0 0 4px var(--glass-strong),0 16px 30px -14px rgba(63,90,58,.8); }
.profile-id{ min-width:0; flex:1; }
.profile-id h1{ font-family:var(--serif); font-weight:500; font-size:1.8rem; line-height:1.2; color:var(--heading); }
.profile-id p{ color:var(--muted); overflow:hidden; text-overflow:ellipsis; }
[dir="rtl"] .profile-id p{ text-align:right; }
.pill{ display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:999px; font-size:.86rem; font-weight:700; flex:none; }
.pill svg{ width:15px; height:15px; }
.pill.ok{ background:var(--ok-bg); color:var(--ok-text); }
.pill.off{ background:var(--err-bg); color:var(--err-text); }
.stats{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.stat{ background:var(--glass); border:1px solid var(--glass-brd); border-radius:22px; padding:18px 12px; text-align:center; box-shadow:var(--shadow-sm); }
.stat b{ display:block; font-family:var(--serif); font-weight:500; font-size:2.1rem; color:var(--heading); line-height:1.15; }
.stat span{ font-size:.86rem; color:var(--muted); }
.panel{ background:var(--glass); border:1px solid var(--glass-brd); border-radius:28px; padding:26px 28px; box-shadow:var(--shadow); }
.panel h2{ font-family:var(--serif); font-weight:500; font-size:1.3rem; color:var(--heading); margin-bottom:8px; }
.pref{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); }
.pref:last-child{ border-bottom:0; padding-bottom:4px; }
.pref > span{ font-weight:600; }
.kv{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.kv:last-of-type{ border-bottom:0; }
.kv > span:first-child{ color:var(--muted); }
.kv b{ word-break:break-all; font-weight:600; }
.gift-note{ margin:-4px 0 14px; color:var(--muted); font-size:.92rem; }
.stack{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.tip{ display:flex; gap:10px; align-items:flex-start; margin-top:18px; padding:14px 16px; border-radius:16px; background:var(--soft); color:var(--muted); font-size:.9rem; line-height:1.55; }
.tip svg{ width:18px; height:18px; flex:none; color:var(--gold); margin-top:2px; }
@media (max-width:560px){
  .profile{ padding:22px 18px; gap:14px; flex-wrap:wrap; }
  .avatar{ width:60px; height:60px; font-size:1.7rem; }
  .profile-id h1{ font-size:1.45rem; }
  .stats{ gap:10px; }
  .stat{ padding:14px 6px; }
  .stat b{ font-size:1.7rem; }
  .panel{ padding:20px 18px; }
  .stack .btn{ flex:1 1 100%; }
}

/* ── Notification ───────────────────────────────────────── */
.toast{ position:fixed; z-index:50; bottom:calc(var(--tabbar) + 26px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--glass-strong); color:var(--text); border:1px solid var(--glass-brd); box-shadow:var(--shadow-lg);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); padding:11px 22px; border-radius:999px; font-size:.95rem; font-weight:600;
  opacity:0; transition:opacity .35s, transform .35s var(--ease); pointer-events:none; max-width:calc(100vw - 32px); text-align:center; }
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
@media (min-width:761px){ .toast{ bottom:30px; } }

/* ── Mouvement réduit ───────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .orb, .auth-art img, .hero-media img{ animation:none !important; }
}
