/* Spore — design system (tokens issus de « Spora — Design », Claude Design)
   Polices : Fraunces (display, axe SOFT), DM Sans (interface), Newsreader italique (noms latins). */
:root{
  --font-display:"Fraunces",Georgia,serif; --font-ui:"DM Sans",system-ui,sans-serif; --font-latin:"Newsreader",Georgia,serif;
  --r-xs:6px; --r-sm:10px; --r-md:16px; --r-lg:24px; --r-pill:999px; --tap:44px;
  --ease-out:cubic-bezier(.2,.8,.2,1); --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --dur-fast:120ms; --dur-base:220ms; --dur-slow:420ms;
}
/* Thème clair : carnet de sous-bois */
:root,[data-theme="light"]{
  --bg:#F5EEDC; --surface:#FFFBF0; --surface-2:#EBE2CB; --line:#DCCFB0;
  --text:#231A12; --text-2:#5A4B3C; --on-accent:#FFFFFF;
  --accent:#4F7A3A; --accent-press:#3F6330; --accent-ring:rgba(79,122,58,.22); --cep:#9A5526; --forest:#1F3A2D; --gold:#C9A24B;
  --edible:#2F7D4A; --edible-bg:#DDEFD9; --toxic:#B3261E; --toxic-bg:#F8DAD5;
  --deadly:#14100E; --deadly-accent:#8E0F1F; --deadly-bg:#2A1214; --on-deadly:#FFFFFF;
  --lookalike:#F2B134; --lookalike-bg:#FBEBC8; --lookalike-text:#6B4300; --info:#2B6C99; --info-bg:#D8E8F3;
  --paper:#FFFEF8;
  --shadow-1:0 1px 2px rgba(35,26,18,.08),0 2px 8px rgba(35,26,18,.06);
  --shadow-2:0 4px 12px rgba(35,26,18,.12),0 12px 32px rgba(35,26,18,.10);
  --shadow-card:0 6px 14px rgba(35,26,18,.22),0 18px 40px rgba(35,26,18,.18);
  color-scheme:light;
}
/* Thème sombre : sous-bois de nuit */
[data-theme="dark"]{
  --bg:#0F1A14; --surface:#172720; --surface-2:#1F3329; --line:#2C4538;
  --text:#EFE8D6; --text-2:#B8B09C; --on-accent:#0F1A14;
  --accent:#8DBB6A; --accent-press:#A6CF86; --accent-ring:rgba(141,187,106,.25); --cep:#D98B4F; --forest:#0A120E; --gold:#E6C46E;
  --edible:#6FCB8A; --edible-bg:#17331F; --toxic:#FF8A7D; --toxic-bg:#3A1814;
  --deadly:#000000; --deadly-accent:#FF4D5E; --deadly-bg:#2A0D12; --on-deadly:#FFFFFF;
  --lookalike:#F2B134; --lookalike-bg:#3A2A0A; --lookalike-text:#F7D58A; --info:#7FB8E0; --info-bg:#14293A;
  --paper:#F3ECDA;
  --shadow-1:0 1px 2px rgba(0,0,0,.4); --shadow-2:0 6px 24px rgba(0,0,0,.5);
  --shadow-card:0 8px 20px rgba(0,0,0,.6),0 0 40px rgba(141,187,106,.08);
  color-scheme:dark;
}
@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur-base:0ms;--dur-slow:0ms}}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font-ui);font-size:16px;line-height:1.5;background:#E6DDC6;color:var(--text);display:flex;justify-content:center;
  -webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-font-smoothing:antialiased}
[data-theme="dark"] body{background:#081009}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
a{color:inherit}
svg{flex:none}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.t{font-family:var(--font-display);font-weight:600;font-variation-settings:'SOFT' 100}
.la{font-family:var(--font-latin);font-style:italic}
.muted{color:var(--text-2)}
.ov{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--cep)}
.h3{font-size:16px;font-weight:800;margin-bottom:6px}
.center-text{text-align:center;font-size:15px}

/* ---------- Téléphone ---------- */
.phone{width:100%;max-width:430px;height:100vh;height:100dvh;position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);color:var(--text)}
@media (min-width:520px){
  body{align-items:center;padding:24px}
  .phone{width:390px;height:min(844px,calc(100vh - 48px));border-radius:38px;border:1px solid var(--line);box-shadow:var(--shadow-2)}
}
main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(env(safe-area-inset-bottom) + 96px)}
.no-nav main{padding-bottom:24px}
.page{padding:20px 20px 0;display:flex;flex-direction:column;gap:12px}
#topbar + main .page{padding-top:4px}
.page-title{font-size:30px;line-height:1.08}
.empty{text-align:center;color:var(--text-2);padding:30px 0;line-height:1.6}
.empty .mascot{margin:0 auto 8px}
.loading{display:grid;place-items:center;gap:14px;padding-top:140px;color:var(--text-2);text-align:center}
.loading span{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Rangée du haut : retour + action */
header#topbar{display:flex;align-items:center;justify-content:space-between;height:44px;margin:calc(env(safe-area-inset-top) + 16px) 20px 0;flex:none}
.no-head header#topbar{display:none}
.icon-btn{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--text);flex:none;margin-left:-8px}
.icon-btn svg{width:28px;height:28px}
#back[hidden]{display:grid!important;visibility:hidden}
.hr-text{font-size:13px;font-weight:700;color:var(--text-2)}
.hr-link{font-size:14px;font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap}

/* Barre du bas (détermination, leçons) */
.bottombar{padding:12px 20px calc(env(safe-area-inset-bottom) + 22px);border-top:1px solid var(--line);background:var(--surface);display:flex;align-items:center;gap:14px;flex:none}
.bb-count{font-size:13px;line-height:1.2;color:var(--text-2);flex:none}
.bb-count b{font-size:24px;color:var(--text)}

/* ---------- Boutons, champs, puces ---------- */
.btn{height:52px;border-radius:14px;font:700 16px var(--font-ui);border:0;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:var(--on-accent);
  width:100%;cursor:pointer;text-decoration:none;flex:none}
.bottombar .btn,.btns .btn{flex:1}
.btn:active{background:var(--accent-press)}
.btn:disabled{opacity:.45;cursor:default}
.btn svg{width:22px;height:22px}
.btn2{background:transparent;color:var(--text);border:2px solid var(--line)}
.btn.dark{background:var(--text);color:var(--bg)}
.btn.small{height:44px;border-radius:12px;font-size:14.5px;padding:0 16px;width:auto;gap:8px}
.btn.small svg{width:18px;height:18px}
.link{font-weight:700;color:var(--accent);text-decoration:none;height:44px;display:flex;align-items:center;justify-content:center}
.link.small{font-size:14px;height:28px;justify-content:flex-start}
.link.inline{display:inline;height:auto}
.lab{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.inp{height:52px;width:100%;border-radius:12px;border:2px solid var(--line);background:var(--surface);padding:0 14px;font:500 16px var(--font-ui);color:var(--text);outline:0}
.inp:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}
.field{position:relative}
.field .show{position:absolute;right:6px;top:30px;height:44px;padding:0 8px;font-size:13px;font-weight:700;color:var(--accent)}
.err{font-size:13px;color:var(--toxic);font-weight:600}
.err:empty{display:none}
.chip{height:40px;padding:0 14px;border-radius:999px;border:2px solid var(--line);background:var(--surface);color:var(--text);font:600 14px var(--font-ui);
  display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;flex:none;text-decoration:none;white-space:nowrap}
.chip svg{width:16px;height:16px}
.chip small{color:var(--text-2);font-weight:500}
.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;margin-right:-20px;padding-right:20px;scrollbar-width:none}
.chips.scroll::-webkit-scrollbar{display:none}
.seg{display:flex;background:var(--surface-2);border-radius:14px;padding:4px}
.seg a,.seg button{flex:1;height:40px;border-radius:11px;display:grid;place-items:center;font-weight:600;color:var(--text-2);text-decoration:none}
.seg .on{background:var(--surface);box-shadow:var(--shadow-1);color:var(--text);font-weight:700}
.bar{height:10px;border-radius:5px;background:var(--surface-2);overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--gold))}
.bar.plain i{background:var(--accent)}

/* ---------- Encarts ---------- */
.alert{display:flex;gap:12px;border-radius:16px;padding:12px 14px;border:2px solid;line-height:1.4;font-size:13.5px;color:var(--text)}
.alert > svg{width:22px;height:22px;flex:none;margin-top:1px}
.alert b{display:block;font-weight:800;font-size:15px}
.alert a{font-weight:700}
.alert.col{flex-direction:column;gap:4px}
.al-title{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px}
.alert.edible{background:var(--edible-bg);border-color:var(--edible)}
.alert.toxic{background:var(--toxic-bg);border-color:var(--toxic)}
.alert.toxic > svg,.alert.toxic b{color:var(--toxic)}
.alert.lookalike{background:var(--lookalike-bg);border-color:var(--lookalike);color:var(--lookalike-text)}
.alert.lookalike > svg{color:var(--lookalike-text)}
.alert.info{background:var(--info-bg);border-color:var(--info)}
.alert.neutral{background:var(--surface);border-color:var(--line)}
.lbl-word{display:flex;flex-direction:column;align-items:center;gap:2px;flex:none;max-width:84px;text-align:center}
.lbl-word span{font-size:10px;font-weight:800;line-height:1.1}
.w-edible{color:var(--edible)} .w-toxic{color:var(--toxic)} .w-deadly{color:#FF8A93} .w-neutral{color:var(--text-2)} .w-sosie{color:var(--lookalike-text)}

/* ---------- Listes ---------- */
.list{display:flex;flex-direction:column;gap:8px}
.row{display:flex;gap:12px;align-items:center;padding:8px 10px;border-radius:16px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--text)}
.row.deadly{background:var(--deadly);border:2px solid var(--deadly-accent);color:#fff}
.row.deadly .la{color:#D9D2BE}
.row.deadly .th{background:#2A1214}
.th{width:48px;height:48px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;flex:none}
.row-text{flex:1;min-width:0}
.row-text .t{display:block;font-size:16px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-text .t b{color:var(--accent)}
.row.deadly .row-text .t b{color:#FF8A93}
.row-text .la{display:block;font-size:12.5px;color:var(--text-2)}
.row-text small{font-size:11.5px;color:var(--text-2);font-style:italic}
.found{font-size:13px;font-weight:800;color:var(--accent);background:var(--surface-2);border-radius:9px;padding:4px 9px}
.more{display:block;width:100%;height:48px;border-radius:14px;background:var(--surface-2);font-weight:700;color:var(--accent)}
.search-fake,.search-box{height:52px;border-radius:14px;background:var(--surface);border:2px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--text-2);
  font-size:15px;text-decoration:none;min-width:0;flex:none}
.search-row .search-box{flex:1}
.search-fake svg,.search-box svg{width:22px;height:22px}
.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}
.search-box input{flex:1;min-width:0;border:0;outline:0;background:none;font:500 16px var(--font-ui);color:var(--text);height:100%}
.search-row{display:flex;gap:10px;align-items:center}

/* ---------- Accueil ---------- */
.home-head{display:flex;align-items:center;justify-content:space-between;padding-top:env(safe-area-inset-top)}
.home-head .t{font-size:27px;line-height:1.1}
.home-head p{font-size:14px;color:var(--text-2);margin-top:4px}
.collection{display:block;border-radius:20px;background:var(--forest);color:#F5EEDC;padding:14px 16px;text-decoration:none}
.collection .top{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;font-weight:600;color:#D9D2BE}
.collection .top em{font-style:normal;font-size:12px;font-weight:700;color:#E6C46E}
.collection .num{display:flex;align-items:baseline;gap:6px;margin:2px 0 8px;font-size:15px;color:#D9D2BE}
.collection .num .t{font-size:32px;color:#F5EEDC}
.collection .bar{background:rgba(255,255,255,.18)}
.collection .bar i{background:linear-gradient(90deg,#8DBB6A,#E6C46E)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{height:70px;border-radius:16px;background:var(--surface);border:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;justify-content:space-between;
  text-decoration:none;color:var(--text)}
.tile svg{width:24px;height:24px}
.tile b{font-size:15px}
.tile.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.sec{font-size:17px;font-weight:700;display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}
.sec a{font-size:13px;color:var(--accent);text-decoration:none}
.carousel{display:flex;gap:10px;overflow-x:auto;margin-right:-20px;padding-right:20px;scrollbar-width:none}
.carousel::-webkit-scrollbar{display:none}
.season{flex:none;width:124px;border-radius:16px;padding:8px;background:var(--surface);text-decoration:none;color:var(--text)}
.season.edible{background:var(--edible-bg)} .season.lookalike{background:var(--lookalike-bg)} .season.toxic{background:var(--toxic-bg)}
.season.deadly{background:var(--deadly);color:#fff}
.season-art{height:56px;border-radius:10px;background:var(--surface);display:grid;place-items:center}
.season .t{font-size:14px;margin-top:6px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.challenge{border-radius:16px;background:var(--surface);border:1px solid var(--line);padding:10px 14px;display:flex;align-items:center;gap:12px}
.challenge > div:first-child{flex:1}
.challenge .ov{font-size:12px;letter-spacing:.06em}
.challenge p{font-size:14px;font-weight:600;margin-top:2px}
.cbar{width:56px;height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.cbar i{display:block;height:100%;background:var(--cep)}
.mini-cards{display:flex;gap:10px;overflow-x:auto;margin-right:-20px;padding:2px 20px 6px 0;scrollbar-width:none}
.mini-cards::-webkit-scrollbar{display:none}
.mini-cards a{flex:0 0 104px;text-decoration:none}

/* ---------- Navigation ---------- */
nav.tabs{position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);border-radius:24px;background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--shadow-2);display:flex;justify-content:space-around;padding:8px 2px;z-index:5}
nav.tabs button{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:56px;font-size:11px;font-weight:600;color:var(--text-2)}
nav.tabs button svg{width:26px;height:26px;fill:currentColor;fill-opacity:0}
nav.tabs button[aria-selected="true"]{color:var(--accent);font-weight:800}
nav.tabs button[aria-selected="true"] svg{fill-opacity:.18}
.no-nav nav.tabs{display:none}

/* ---------- Détermination ---------- */
.crumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;font-weight:700}
.crumbs a{padding:6px 12px;border-radius:999px;background:var(--surface-2);text-decoration:none;display:flex;align-items:center;gap:6px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumbs .dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--text);flex:none}
.crumbs .sep{color:var(--text-2)}
.q-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.q-head .t{font-size:30px;line-height:1.1;padding-top:6px}
.aide{font-size:14px;color:var(--text-2);line-height:1.5}
.sch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sch-list{display:flex;flex-direction:column;gap:10px}
.sch{border-radius:18px;border:2px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:128px;
  font-weight:700;font-size:15px;padding:8px;color:var(--text);text-align:center}
.sch[aria-pressed="true"]{border:3px solid var(--accent);box-shadow:var(--shadow-1);color:var(--accent)}
.sch-fig{width:84px;height:84px;border-radius:12px;background:var(--paper);display:grid;place-items:center;overflow:hidden}
.sch-fig svg{width:100%;height:100%}
.sch-list .sch{flex-direction:row;justify-content:flex-start;text-align:left;min-height:60px;padding:10px 14px;gap:12px}
.sch-list .sch-fig{width:56px;height:56px}
.sch-txt b{display:block;font-size:15px;line-height:1.3}
.sch-txt small{display:block;font-size:13px;color:var(--text-2);font-weight:500;margin-top:2px;line-height:1.35}
.sch .swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--text);flex:none}
.unsure{height:52px;border-radius:16px;border:2px dashed var(--line);display:grid;place-items:center;font-weight:700;color:var(--text-2);text-decoration:none}
.learn-inline{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--accent);font-size:15px;min-height:32px;text-decoration:none}
.learn-inline svg{width:20px;height:20px}
.hint{font-size:13.5px;color:var(--text-2);text-align:center;line-height:1.4}
.wheel-box{display:grid;place-items:center}
.wheel{width:100%;max-width:352px;height:auto;overflow:visible;touch-action:manipulation;font-family:var(--font-ui)}
.wheel .sector{cursor:pointer}
.wheel .sector:active path{opacity:.6}
.wheel text{pointer-events:none}
.wheel .center{cursor:pointer}
.deadly-box{border-radius:18px;background:var(--deadly);border:3px solid var(--deadly-accent);padding:12px 14px;display:flex;gap:12px;color:#fff}
.ov-deadly{font-size:13px;font-weight:800;letter-spacing:.1em;color:#FF8A93}
.deadly-box p{font-size:14px;line-height:1.4;margin-top:3px}
.deadly-box a{color:#fff;font-weight:700}
.sel-count{font-size:14px;font-weight:700;color:var(--text-2)}

/* ---------- Fiche espèce ---------- */
.toprow{display:flex;justify-content:space-between;align-items:center;width:100%;height:44px}
.toprow .icon-btn{margin:0 -8px}
.heart.on{color:#E0432A}
.hero{display:flex;flex-direction:column;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 16px) 20px 18px}
.hero.edible{background:linear-gradient(180deg,var(--edible-bg),var(--bg))}
.hero.toxic{background:linear-gradient(180deg,var(--toxic-bg),var(--bg))}
.hero.neutral{background:linear-gradient(180deg,var(--surface-2),var(--bg))}
.hero + .page{padding-top:0}
.fiche-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.fiche-title .t{font-size:27px;line-height:1.05}
.fiche-title .la{font-size:16px;color:var(--text-2)}
.lbls-row{display:flex;gap:4px;padding-top:4px;flex-wrap:wrap}
.deadly-band{background:var(--deadly);border-bottom:4px solid var(--deadly-accent);color:#fff;padding:calc(env(safe-area-inset-top) + 14px) 20px 14px;display:flex;flex-direction:column;gap:6px}
.deadly-band .icon-btn{color:#fff}
.db-title{display:flex;align-items:center;gap:12px}
.db-title .t{font-size:34px;letter-spacing:.04em;line-height:1}
.db-title p{font-size:13.5px;color:#FFB3BA;margin-top:2px}
.deadly-band + .page{padding-top:16px}
.deadly-top{display:flex;gap:14px;align-items:center}
.stack{display:flex;flex-direction:column;gap:12px;padding:0 20px}
.page + .stack{margin-top:12px}
.months{display:flex;gap:3px}
.mo{flex:1;height:30px;border-radius:7px;display:grid;place-items:center;font-size:11px;font-weight:800;background:var(--surface-2);color:var(--text-2)}
.mo.on{background:var(--accent);color:var(--on-accent)}
main > .h3,main > .secx,main > .facts,main > .list,main > .sources{margin-left:20px;margin-right:20px}
.facts{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;font-size:14px}
.facts dt{color:var(--text-2)}
.facts dt::first-letter{text-transform:uppercase}
.facts.small{border:0;padding:0 0 8px;background:none;font-size:13px}
.facts .gem{margin-right:6px}
.secx{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-top:8px}
.secx summary{min-height:52px;padding:0 16px;font-weight:700;cursor:pointer;list-style:none;display:flex;align-items:center;font-size:15px}
.secx summary::-webkit-details-marker{display:none}
.secx summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:2px solid var(--text-2);border-bottom:2px solid var(--text-2);transform:rotate(45deg)}
.secx[open] summary::after{transform:rotate(-135deg)}
.secx > p,.secx > dl{padding:0 16px 14px;font-size:14.5px;line-height:1.6}
.enc{padding:10px 6px 10px 16px}
.enc .icon-btn svg{width:20px;height:20px;color:var(--text-2)}
.sources{font-size:12.5px;color:var(--text-2);margin-top:18px;margin-bottom:12px;line-height:1.6}

/* ---------- Classeur ---------- */
.page-head{display:flex;align-items:center;justify-content:space-between;padding-top:env(safe-area-inset-top)}
.page-head .t{font-size:30px;line-height:1.05}
.page-head p{font-size:14px;color:var(--text-2);margin-top:4px}
.page-head p b{color:var(--text)}
.binder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}

/* ---------- Cartes de collection (cotes exactes de « Spora — Design ») ---------- */
.lbl{border-radius:50%;display:inline-grid;place-items:center;box-sizing:border-box;flex:none}
.lbl.dashed{width:24px;height:24px;border:2px dashed #8A7E66}
.gem{display:inline-block;vertical-align:-2px;margin-right:6px}
.card{position:relative;width:252px;height:352px;border-radius:16px;padding:9px;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;flex:none;
  font-family:var(--font-ui);color:#231A12;text-align:left;box-shadow:0 6px 14px rgba(35,26,18,.22),0 18px 40px rgba(35,26,18,.18);cursor:pointer}
.card.f-comestible{background:#3E7A4F}
.card.f-toxique{background:#B3261E}
.card.f-neutre{background:#7C8A74}
.card.f-mortel{background:#14100E;border:3px solid #8E0F1F}
.card .band{background:#FFFBF0;border-radius:8px;padding:5px 8px;height:42px;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;gap:6px;flex:none}
.card .band > div:first-child{min-width:0}
.card .nm{font-family:var(--font-display);font-weight:600;font-size:16px;line-height:1.1;font-variation-settings:'SOFT' 100;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .cla{font-family:var(--font-latin);font-style:italic;font-size:11.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .lbls{display:flex;gap:3px;flex:none}
.card .art{margin:6px 0;height:158px;border-radius:6px;display:grid;place-items:center;position:relative;overflow:hidden;flex:none}
.card .typ{background:#FFFBF0;border-radius:6px;height:22px;padding:0 8px;display:flex;align-items:center;font-size:11px;font-weight:700;flex:none;white-space:nowrap;overflow:hidden}
.card .txt{margin-top:6px;background:#FFFBF0;border-radius:6px;height:72px;padding:6px 8px;box-sizing:border-box;font-size:10.5px;line-height:1.35;overflow:hidden;flex:none}
.card .foot{margin-top:6px;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;color:#fff;height:16px;flex:none}
.card.f-mortel .band{border-radius:6px}
.card.f-mortel .typ{background:#8E0F1F;color:#fff}
.card.f-mortel .txt{background:#2A1214;color:#fff}
/* UR : or intégral */
.card.v-or{background:linear-gradient(135deg,#F3D77A,#B8872B 45%,#F7E39A 70%,#A77A22)}
.card.v-or .band,.card.v-or .typ,.card.v-or .txt{background:linear-gradient(180deg,#FFF3C4,#EBCB74);color:#231A12}
.card.v-or .foot{color:#3E2A05}
.card.v-or.f-mortel .typ{background:#8E0F1F;color:#fff}
/* Effets */
.holo{position:absolute;inset:0;pointer-events:none;mix-blend-mode:color-dodge;opacity:.55;z-index:3;
  background:linear-gradient(115deg,transparent 15%,rgba(255,80,200,.7) 30%,rgba(80,220,255,.7) 45%,rgba(255,240,120,.7) 60%,transparent 75%);background-size:260% 260%;animation:sh 5s ease-in-out infinite}
.sweep{position:absolute;inset:0;pointer-events:none;mix-blend-mode:overlay;z-index:3;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.85) 50%,transparent 65%);background-size:300% 100%;animation:sw 4.5s ease-in-out infinite}
@keyframes sh{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}
@keyframes sw{0%{background-position:120% 0}100%{background-position:-120% 0}}
@media (prefers-reduced-motion:reduce){.holo,.sweep{animation:none}}
/* Rare : full art */
.card.v-full_art{padding:0}
.card .fa-bg{position:absolute;inset:0}
.card .fa-art{position:absolute;left:0;right:0;top:34px;display:grid;place-items:center}
.card .fa-frame{position:absolute;inset:0;border:4px solid;border-radius:16px;box-sizing:border-box;pointer-events:none}
.card .fa-band{position:absolute;left:12px;right:12px;top:12px}
.card .glass{background:rgba(255,251,240,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.card .fa-panel{position:absolute;left:12px;right:12px;bottom:36px;border-radius:8px;padding:6px 8px;font-size:10.5px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.card .fa-panel b{font-size:11px}
.card .fa-panel.deadly{background:rgba(42,18,20,.85);color:#fff}
.card .fa-foot{position:absolute;left:12px;right:12px;bottom:12px}
.card .fa-foot .foot{margin:0;text-shadow:0 1px 3px rgba(0,0,0,.6)}
/* Silhouette */
.card.sil{background:#CFC5AC;border:2px dashed #8A7E66;box-shadow:none}
.card.sil .band,.card.sil .art,.card.sil .typ,.card.sil .txt{background:#E4DBC3;color:#8A7E66}
.card.sil .nm,.card.sil .cla{color:#8A7E66}
.card.sil .txt,.card.sil .foot{color:#6B5A48}
.card.sil .art svg,.mk.sil svg{filter:brightness(0) invert(.6) sepia(.35)}
/* Format fiche : 158×221 */
.card.mc{width:158px;height:221px;border-radius:12px;padding:6px;gap:4px;box-shadow:0 8px 16px rgba(0,0,0,.25),0 20px 36px rgba(0,0,0,.18)}
.card.mc .band{height:34px;padding:3px 6px;border-radius:6px}
.card.mc .nm{font-size:12.5px}
.card.mc .cla{font-size:9px}
.card.mc .lbls{gap:2px}
.card.mc .art{flex:1;height:auto;margin:0;border-radius:5px}
.card.mc .typ{height:16px;font-size:8.5px;padding:0 6px;border-radius:5px}
.card.mc .foot{margin:0;font-size:9px;height:auto}
.card.mc .gem{margin-right:4px;vertical-align:-1px}
.card.mc.f-mortel{border-width:3px}
.card.mc.v-full_art{padding:0}
.card.mc .fa-art{top:22px}
.card.mc .fa-frame{border-width:3px;border-radius:12px}
.card.mc .fa-band{left:8px;right:8px;top:8px}
.card.mc .fa-panel{left:8px;right:8px;bottom:24px;font-size:8.5px;padding:4px 6px}
.card.mc .fa-panel b{font-size:8.5px}
.card.mc .fa-foot{left:8px;right:8px;bottom:7px}
.card.mc.small{transform:scale(.76);transform-origin:top left;margin:0 -38px -53px 0}
/* Mini-carte du classeur */
.mk{position:relative;border-radius:9px;padding:4px;box-sizing:border-box;aspect-ratio:63/88;display:flex;flex-direction:column;gap:3px;overflow:hidden;cursor:pointer;text-align:left}
.mk-name{background:#FFFBF0;border-radius:4px;height:17px;padding:0 4px;display:flex;align-items:center;font:800 8.5px var(--font-display);color:#231A12;white-space:nowrap;overflow:hidden;flex:none}
.mk-art{flex:1;border-radius:4px;display:grid;place-items:center;overflow:hidden;min-height:0}
.mk-art svg{width:78%;height:auto}
.mk-foot{display:flex;justify-content:space-between;align-items:center;font-size:8px;font-weight:800;color:#fff;flex:none}
.mk-foot .gem{margin:0}
.mk-no{opacity:.85;letter-spacing:.02em}
.tri{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:2px 0 10px;font-size:13px}
.tri .lab{margin:0;color:var(--muted,#7b715f)}
.mk.f-mortel{border:2px solid #8E1D14}
.mk.v-or .mk-name{background:#FFF3C4}
.mk.v-or .mk-foot{color:#3E2A05}
.mk.sil{background:#CFC5AC;border:2px dashed #8A7E66}
.mk.sil .mk-name{background:#E4DBC3;color:#8A7E66}
.mk.sil .mk-art{background:#E4DBC3}
.mk.sil .mk-foot{color:#6B5A48}
.mk .own{position:absolute;right:5px;top:24px;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;border:2px solid var(--bg);z-index:4}

/* ---------- Apprendre ---------- */
.ls{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;border:1px solid var(--line);background:var(--surface);min-height:60px;text-decoration:none;color:var(--text)}
.ls.cur{border:2px solid var(--cep)}
.ls > div{flex:1;min-width:0}
.ls b{display:block;font-size:15.5px}
.ls small{display:block;font-size:12.5px;color:var(--text-2)}
.ls > svg{width:20px;height:20px;color:var(--text-2)}
.lnum{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;flex:none;background:var(--surface-2);color:var(--text-2)}
.lnum.done{background:var(--accent);color:var(--on-accent)}
.lnum.cur{background:var(--cep);color:var(--on-accent)}
.ldots{display:flex;gap:5px}
.ldots span{width:6px;height:6px;border-radius:3px;background:var(--line)}
.ldots span.done{background:var(--accent)}
.ldots span.cur{width:22px;background:var(--cep)}
.lesson p{font-size:15px;line-height:1.55}
.plate{border-radius:18px;background:#FBF5E6;border:1px solid var(--line);padding:10px 6px 6px}
[data-theme="dark"] .plate{background:#F3ECDA}
.plate .schema{max-height:240px}
.retenir{border-radius:16px;background:var(--info-bg);border:2px solid var(--info);padding:12px 14px;color:var(--text)}
.retenir b{font-weight:800;color:var(--info)}
.retenir p{font-size:14px;line-height:1.45;margin-top:3px}
.lesson-sec{display:flex;flex-direction:column;gap:8px;margin-top:6px}

.schema{display:block;width:100%;height:auto}
.schema .lbl{font-family:var(--font-ui);font-size:6px;font-weight:700;fill:#5a5040}
.intro{font-size:15px;color:var(--text-2);line-height:1.55;margin-bottom:16px}
.lessons{display:flex;flex-direction:column;gap:10px}
.lesson-card{display:flex;align-items:center;gap:14px;padding:10px 14px 10px 10px;border-radius:18px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--text)}
.lesson-card:active{background:var(--surface-2)}
.lesson-fig{width:76px;height:76px;flex:none;border-radius:14px;background:var(--paper);display:grid;place-items:center;overflow:hidden}
.lesson-fig svg{width:100%;height:100%}
.lesson-card .t{display:block;font-size:17px;line-height:1.2;margin-top:2px}
.lesson-card p{font-size:13px;color:var(--text-2);line-height:1.4;margin-top:3px}
.toc{display:flex;gap:8px;overflow-x:auto;margin:0 -20px 6px;padding:2px 20px 8px;scrollbar-width:none}
.toc::-webkit-scrollbar{display:none}
.lesson-sec p{font-size:15px;line-height:1.6;margin-bottom:10px}
.figs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 12px}
.figs.one{grid-template-columns:1fr}
.figs figure{background:var(--paper);border-radius:16px;padding:8px 8px 10px;border:1px solid var(--line)}
.figs figcaption{font-size:12.5px;line-height:1.4;color:#5A4B3C;text-align:center;margin-top:4px}
.nuancier{display:flex;flex-direction:column;gap:8px;margin:4px 0 12px}
.nuance{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.nuance i{width:38px;height:38px;border-radius:50%;flex:none;border:2px solid var(--text)}
.nuance b{display:block;font-size:15px}
.nuance small{font-size:13px;color:var(--text-2);line-height:1.4}
.next-lesson{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;margin-top:14px;padding:14px 16px;border-radius:18px;background:var(--surface);
  border:1px solid var(--line);text-decoration:none;color:var(--text)}
.next-lesson .t{grid-row:2;font-size:18px}
.next-lesson svg{grid-row:1/3;grid-column:2;width:22px;height:22px;color:var(--text-2)}

/* ---------- Compte ---------- */
.auth{min-height:100%;display:flex;flex-direction:column;gap:14px;padding:calc(env(safe-area-inset-top) + 40px) 24px 24px}
#topbar:not([hidden]) + main .auth{padding-top:12px}
.auth.center{align-items:center;text-align:center;gap:12px}
.splash{background:radial-gradient(circle at 50% 28%,var(--surface),var(--bg) 70%);padding:calc(env(safe-area-inset-top) + 28px) 28px 32px}
.splash .brand{font-size:46px;margin-top:6px}
.splash .la{font-size:20px;color:var(--text-2);line-height:1.3;max-width:300px}
.grow{flex:1}
.dots{display:flex;gap:8px;justify-content:center}
.dots span{width:6px;height:6px;border-radius:3px;background:var(--line)}
.dots span.on{width:22px;background:var(--accent)}
.auth-head{display:flex;align-items:center;gap:14px}
.auth-head .t,.auth h2.t{font-size:28px;line-height:1.1}
.auth h2.t{font-size:30px}
.auth form{display:flex;flex-direction:column;gap:14px}
.or{display:flex;align-items:center;gap:12px;color:var(--text-2);font-size:13px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.avatars{display:flex;gap:12px}
.av{width:68px;height:68px;border-radius:50%;background:var(--surface-2);border:3px solid transparent;display:grid;place-items:center;position:relative}
.av[aria-pressed="true"]{border-color:var(--accent);background:var(--surface)}
.av[aria-pressed="true"]::after{content:"";position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;border-radius:50%;
  background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.rule{display:flex;gap:12px;align-items:flex-start;border-radius:16px;background:var(--lookalike-bg);border:2px solid var(--lookalike);padding:12px 14px;color:var(--lookalike-text);
  font-size:14px;line-height:1.4;font-weight:600;cursor:pointer;text-align:left}
.rule input{appearance:none;-webkit-appearance:none;width:26px;height:26px;border-radius:7px;border:2px solid var(--lookalike-text);flex:none;margin-top:2px;cursor:pointer}
.rule input:checked{background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;border-color:var(--accent)}
.steps{width:100%;border-radius:18px;background:var(--surface);border:1px solid var(--line);padding:14px 16px;display:flex;flex-direction:column;gap:12px;text-align:left;margin-top:6px}
.steps > div{display:flex;align-items:center;gap:12px}
.steps i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:none}
.steps i svg{width:16px;height:16px}
.steps small{display:block;font-size:13px;color:var(--text-2)}
.steps .done{background:var(--accent);color:var(--on-accent)}
.steps .wait{background:var(--lookalike);color:#14100E}
.steps .todo{border:2px dashed var(--line)}
.demo-note{font-size:12.5px;color:var(--text-2);text-align:center;line-height:1.45;margin-bottom:8px}

/* ---------- Profil, amis ---------- */
.profile-head{display:flex;align-items:center;gap:14px;padding-top:env(safe-area-inset-top)}
.avatar-big{width:92px;height:92px;border-radius:50%;background:radial-gradient(circle at 50% 35%,var(--surface),var(--surface-2));border:3px solid var(--gold);
  display:grid;place-items:center;overflow:hidden;flex:none}
.avatar-big .mascot{margin-top:14px}
.profile-head > div:last-child{flex:1;min-width:0}
.profile-head .t{font-size:26px;line-height:1.1}
.lvl{font-size:14px;color:var(--cep);font-weight:800}
.profile-head .bar{margin-top:8px}
.profile-head small{font-size:12px;color:var(--text-2)}
.st{border-radius:16px;background:var(--surface);border:1px solid var(--line);padding:10px 12px}
.st .t{font-size:28px;display:flex;align-items:center;gap:6px;line-height:1.2}
.st .t .gem{margin:0}
.st small{font-size:12.5px;color:var(--text-2)}
.growth{display:flex;align-items:flex-end;justify-content:space-around;padding:10px 6px 8px}
.growth > div{display:flex;flex-direction:column;align-items:center;gap:2px;opacity:.55;font-size:10.5px;font-weight:700}
.growth > div.me{opacity:1;color:var(--accent);font-weight:800}
.crowned{position:relative;display:block}
.crown{position:absolute;left:50%;top:-12px;transform:translateX(-50%)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.badge{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11.5px;font-weight:700;text-align:center;color:var(--text-2)}
.badge.on{color:var(--text)}
.sets{border-top:1px solid var(--line);margin-top:4px}
.set{display:flex;justify-content:space-between;align-items:center;height:48px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;width:100%;text-align:left;
  color:var(--text);text-decoration:none}
.set.danger{color:var(--toxic)}
.friend-req{border-radius:18px;background:var(--forest);color:#F5EEDC;padding:12px 14px;display:flex;gap:12px;align-items:center}
.friend-req small{display:block;font-size:12.5px;color:#D9D2BE}

/* ---------- Feuilles, révélation, toasts ---------- */
.sheet-bg{position:absolute;inset:0;z-index:20;background:rgba(15,10,5,.5);display:flex;align-items:flex-end;animation:fade var(--dur-base)}
@keyframes fade{from{opacity:0}}
.sheet{width:100%;background:var(--bg);border-radius:28px 28px 0 0;padding:10px 20px calc(env(safe-area-inset-bottom) + 22px);animation:up var(--dur-base) var(--ease-out);display:flex;flex-direction:column;gap:12px}
@keyframes up{from{transform:translateY(40px);opacity:0}}
.grab{width:40px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 2px}
.sheet h2{font-family:var(--font-display);font-variation-settings:'SOFT' 100;font-size:24px}
.sheet form{display:flex;flex-direction:column;gap:12px}
.btns{display:flex;gap:10px;margin-top:4px}
.reveal-bg{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top) + 40px) 24px 24px;gap:10px;
  background:radial-gradient(circle at 50% 30%,#FFF0C0,#F5EEDC 70%);color:var(--text);text-align:center;overflow-y:auto}
[data-theme="dark"] .reveal-bg{background:radial-gradient(circle at 50% 30%,#2A2670,#0F1A14 72%)}
.reveal-bg .ov{font-size:12px;font-weight:800;letter-spacing:.18em;color:var(--cep)}
[data-theme="dark"] .reveal-bg .ov{color:#E6C46E}
/* Révélation : dos de carte → charge → retournement (planche « Mouvement ») */
.reveal-stage{position:relative;width:232px;height:324px;margin-top:8px;flex:none;perspective:1000px}
.burst{position:absolute;inset:-60px;border-radius:50%;background:radial-gradient(circle,var(--glow) 0%,transparent 62%);opacity:0;transform:scale(.6);pointer-events:none}
.flip{position:relative;width:100%;height:100%;transform-style:preserve-3d;padding:0;border:0;background:none;cursor:pointer;
  opacity:0;transform:translateY(40px) scale(.7)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d}
.face *{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.face.back{transform:rotateY(0deg) translateZ(1px)}
.face.front{transform:rotateY(180deg) translateZ(1px)}
.face.front .card{transform:scale(.9206);transform-origin:top left}
.card-back{position:absolute;inset:0;border-radius:15px;background:radial-gradient(circle at 50% 50%,#2F5A44,#12261C);display:grid;place-items:center;overflow:hidden;
  box-shadow:0 10px 22px rgba(0,0,0,.35),0 28px 60px rgba(0,0,0,.25)}
.cb-frame{position:absolute;inset:10px;border:2px solid #C9A24B;border-radius:10px}
.cb-frame2{position:absolute;inset:18px;border:1px solid rgba(201,162,75,.5);border-radius:8px}
.tap-hint{font-size:13.5px;opacity:0;transition:opacity .6s}
.after{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s var(--ease-out);pointer-events:none}
.after-btns{width:100%;gap:10px}
/* 1. arrivée du dos */
.reveal-bg.in .flip{opacity:1;transform:none;transition:opacity .6s,transform .6s var(--ease-spring)}
/* 2. charge : la carte tremble de plus en plus, le halo grandit */
.reveal-bg.charging .flip{animation:charge 3.2s ease-in forwards}
.reveal-bg.charging .burst{animation:glow 3.2s ease-in forwards}
.reveal-bg.charging .tap-hint{opacity:.75;transition-delay:.8s}
@keyframes charge{
  0%{transform:rotate(0) scale(1)}
  20%{transform:rotate(-1deg) scale(1.01)} 25%{transform:rotate(1deg)} 30%{transform:rotate(-1deg)}
  50%{transform:rotate(1.5deg) scale(1.02)} 53%{transform:rotate(-1.5deg)} 56%{transform:rotate(1.5deg)} 59%{transform:rotate(-1.5deg)}
  75%{transform:rotate(2.5deg) scale(1.04)} 77%{transform:rotate(-2.5deg)} 79%{transform:rotate(2.5deg)} 81%{transform:rotate(-2.5deg)} 83%{transform:rotate(2.5deg)}
  92%{transform:rotate(-3deg) scale(1.06)} 94%{transform:rotate(3deg)} 96%{transform:rotate(-3deg)} 98%{transform:rotate(3deg)} 100%{transform:rotate(0) scale(1.06)}}
@keyframes glow{0%{opacity:.15;transform:scale(.6)}100%{opacity:.9;transform:scale(1.05)}}
/* 3. retournement lent, avec un petit grossissement à mi-course */
.reveal-bg.turning .flip{animation:turn 1.4s cubic-bezier(.2,.8,.2,1) forwards}
.reveal-bg.turning .burst{animation:flash 1.4s ease-out forwards}
.reveal-bg.turning .tap-hint{opacity:0;transition-delay:0s}
@keyframes turn{0%{transform:rotateY(0) scale(1.06)}45%{transform:rotateY(150deg) scale(1.12)}100%{transform:rotateY(180deg) rotate(2deg) scale(1)}}
@keyframes flash{0%{opacity:.9;transform:scale(1.05)}35%{opacity:1;transform:scale(1.5)}100%{opacity:.35;transform:scale(1.15)}}
/* 4. le reste apparaît */
.reveal-bg.revealed .after{opacity:1;transform:none;pointer-events:auto}
.reveal-bg.revealed .after-btns{transition-delay:.35s}
.reveal-bg.revealed .flip{transform:rotateY(180deg) rotate(2deg)}
.reveal-bg.lvl-ur.revealed .burst,.reveal-bg.lvl-rare.revealed .burst{animation:shine 3s ease-in-out infinite}
@keyframes shine{0%,100%{opacity:.35;transform:scale(1.1)}50%{opacity:.6;transform:scale(1.2)}}
@media (prefers-reduced-motion:reduce){.flip,.after,.burst{animation:none!important;transition:none!important}}
.reveal-bg .big{font-size:32px;margin-top:4px}
.reveal-bg p{font-size:14.5px;color:var(--text-2)}
.reveal-bg .btn{flex:none}
.toast{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 100px);transform:translateX(-50%);background:var(--text);color:var(--bg);
  padding:11px 18px;border-radius:14px;font-size:14px;font-weight:600;z-index:30;white-space:nowrap;animation:up var(--dur-base)}

/* ---------- Affinage guidé ---------- */
.guide-tag{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--cep);
  background:var(--surface-2);border-radius:999px;padding:5px 12px}
.guide-tag svg{width:14px;height:14px}
.swatch-lg{width:60px;height:60px;border-radius:50%;border:2px solid var(--text);flex:none;box-shadow:inset 0 2px 4px rgba(255,255,255,.35)}
.opt-ico{width:60px;height:60px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center;color:var(--text);flex:none}
.sch[aria-pressed="true"] .opt-ico{background:var(--accent);color:var(--on-accent)}
.sch .sch-txt small{color:var(--text-2);font-weight:600}
.sch-list .swatch-lg,.sch-list .opt-ico{width:44px;height:44px}
.sch-months{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sch-months .sch{min-height:88px}
.sch-months .sch-txt b{display:none}
.opt-month{font-family:var(--font-display);font-size:20px;font-weight:600;font-variation-settings:'SOFT' 100;color:var(--accent)}

/* ---------- Photos ---------- */
.th{position:relative;overflow:hidden}
.th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:12px;background:var(--surface-2)}
.photos .h3{margin-bottom:8px}
.photo-strip{display:flex;gap:10px;overflow-x:auto;margin-right:-20px;padding-right:20px;scroll-snap-type:x mandatory;scrollbar-width:none}
.photo-strip::-webkit-scrollbar{display:none}
.photo{flex:none;width:78%;max-width:300px;scroll-snap-align:start;border-radius:16px;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--surface-2)}
.photo figcaption{font-size:11.5px;color:var(--text-2);padding:6px 10px 8px;line-height:1.3}
.photo figcaption a{color:var(--accent);font-weight:700}

/* ---------- Apprendre : liste et fiches de leçon ---------- */
.learn-prog{margin:-2px 0 14px}
.learn-prog small{display:block;margin-top:6px;font-size:13px;color:var(--text-2)}
.hero-lesson{display:flex;flex-direction:column;border-radius:24px;overflow:hidden;text-decoration:none;color:var(--text);margin-bottom:22px;
  background:color-mix(in srgb,var(--lc) 16%,var(--surface));border:2px solid color-mix(in srgb,var(--lc) 55%,transparent);box-shadow:0 8px 24px color-mix(in srgb,var(--lc) 18%,transparent)}
.hl-plate{background:var(--paper);padding:14px 10px 6px;border-bottom:2px solid color-mix(in srgb,var(--lc) 40%,transparent)}
.hl-plate .schema{max-height:170px;margin:0 auto}
.hl-txt{padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px}
.hl-txt .ov{color:var(--lc)}
.hl-txt h3{font-size:24px;line-height:1.1}
.hl-txt p{font-size:14.5px;color:var(--text-2);line-height:1.45}
.hl-go{display:inline-flex;align-items:center;gap:6px;margin-top:8px;align-self:flex-start;background:var(--lc);color:#fff;font-weight:800;font-size:14px;padding:9px 14px;border-radius:999px}
.hl-go svg{width:16px;height:16px}
.path{position:relative;display:flex;flex-direction:column;gap:12px;margin-top:8px}
.lc{position:relative;display:grid;grid-template-columns:76px 1fr;column-gap:12px;align-items:center;padding:10px 12px 10px 10px;border-radius:20px;
  background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--lc);text-decoration:none;color:var(--text)}
.lc:active{background:var(--surface-2)}
.lc.cur{background:color-mix(in srgb,var(--lc) 10%,var(--surface));border-color:var(--lc)}
.lc-no{position:absolute;left:-14px;top:-8px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;
  background:var(--lc);color:#fff;border:3px solid var(--bg)}
.lc.done .lc-no{background:var(--accent);color:var(--on-accent)}
.lc .lesson-fig{width:76px;height:76px}
.lc-txt{min-width:0;display:flex;flex-direction:column;gap:2px}
.lc-txt b{font-size:17px;line-height:1.15}
.lc-txt small{font-size:13px;color:var(--text-2);line-height:1.35}
.lc-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.lc-meta i{font-style:normal;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-2)}
.lc-meta .st{background:color-mix(in srgb,var(--lc) 18%,var(--surface));color:var(--lc)}
.lc.done .lc-meta .st{background:var(--accent-ring);color:var(--accent)}

.lesson-hero{border-radius:24px;padding:14px 14px 12px;background:color-mix(in srgb,var(--lc) 14%,var(--surface));border:2px solid color-mix(in srgb,var(--lc) 45%,transparent)}
.lh-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lh-meta .ov{color:var(--lc);margin-right:auto}
.lh-chip{font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--text-2)}
.lesson-hero .page-title{margin:8px 0 2px}
.lh-sub{font-size:14.5px;color:var(--text-2);line-height:1.45;margin-bottom:10px}
.lesson-hero .plate{border-color:color-mix(in srgb,var(--lc) 35%,var(--line))}
.lesson .toc{margin-top:12px}
.toc .chip b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--lc);color:#fff;font-size:11px;margin-right:6px}
.lesson-intro{margin-top:12px}
.lesson-intro p{font-size:16px;line-height:1.6;margin-bottom:10px}
.retenir{display:flex;gap:12px;align-items:flex-start;margin:6px 0 16px;background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 22%,var(--surface)),var(--surface));border:2px solid var(--gold);border-radius:18px}
.retenir b{color:var(--cep);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.retenir p{font-size:15px;font-weight:600}
.rt-ico{flex:none;width:44px;height:44px;border-radius:50%;background:var(--surface);display:grid;place-items:center;border:2px solid var(--gold)}
.lesson-sec{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:14px 14px 6px;margin-top:12px;gap:0}
.sec-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.sec-h h3{font-size:19px;line-height:1.2}
.sn{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--lc);color:#fff;font-weight:800;font-size:14px}
.learn-cta{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px;border-radius:18px;background:var(--lc);color:#fff;text-decoration:none}
.learn-cta svg{width:26px;height:26px;flex:none}
.learn-cta div{flex:1}.learn-cta b{display:block;font-size:16px}.learn-cta small{font-size:13px;opacity:.9}
.learn-next{display:block;margin-top:12px;padding:12px 14px;border-radius:16px;border:1px dashed var(--line);text-decoration:none;color:var(--text)}
.learn-next small{display:block;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}
.learn-next b{font-size:17px}

/* ---------- Déterminer : questions plus lisibles ---------- */
.steps-bar{display:flex;gap:5px;margin:2px 0 -2px}
.steps-bar i{flex:1;height:6px;border-radius:3px;background:var(--line)}
.steps-bar i.done{background:var(--accent)}
.steps-bar i.cur{background:var(--cep)}
.aide{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--info-bg);border:1px solid var(--info);color:var(--text);font-size:14px;line-height:1.45}
.aide svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--info)}
.sch{position:relative;transition:transform .12s ease,border-color .12s,background .12s}
.sch:active{transform:scale(.985)}
.sch[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.sch[aria-pressed="true"]::after{content:"✓";position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:13px;font-weight:800}
.sch-list .sch{padding:10px 40px 10px 10px;gap:14px}
.sch-list .sch-fig{width:76px;height:76px;flex:none;border-radius:14px}
.sch-list .sch-txt{flex:1;min-width:0}
.sch-list .sch-txt b{font-size:15.5px}
.sch-grid .sch-fig{width:100%;max-width:120px;height:auto;aspect-ratio:1}
.sch-grid .sch{padding:10px 8px 12px}
.sch-grid .sch-txt b{font-size:14.5px}
.unsure{height:auto;min-height:56px;padding:10px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;margin-top:4px}
.unsure b{font-size:15px;color:var(--text)}
.unsure small{font-size:12.5px;font-weight:500;color:var(--text-2)}

/* ---------- Lien « mortels » (accueil, fiches) ---------- */
.deadly-link{display:flex;align-items:center;gap:12px;margin:14px 0 4px;padding:12px 14px;border-radius:18px;text-decoration:none;color:#fff;
  background:linear-gradient(135deg,#1B1311,#2A1411);border:2px solid #8E1D14}
.deadly-link b{display:block;font-size:15.5px}
.deadly-link small{display:block;font-size:12.5px;color:#FFB3B8;margin-top:1px}
.deadly-link > div{flex:1;min-width:0}
.deadly-link > svg:last-child{width:20px;height:20px;color:#FFB3B8;flex:none}

/* ---------- Page des champignons mortels ---------- */
.deadly-page{gap:14px}
.dp-hero{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 16px;border-radius:22px;color:#fff;
  background:radial-gradient(circle at 85% 0%,#4A1612 0,#1B1311 60%);border:2px solid #8E1D14}
.dp-hero .t{font-size:28px;line-height:1.08}
.dp-hero p{font-size:14.5px;line-height:1.5;color:#FFD9DB}
.dp-reflexes{list-style:none;display:flex;flex-direction:column;gap:8px;padding:0;margin:0}
.dp-reflexes li{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.dp-reflexes .n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#8E1D14;color:#fff;font-weight:800;font-size:14px}
.dp-reflexes b{display:block;font-size:15px}
.dp-reflexes small{display:block;font-size:13px;color:var(--text-2);line-height:1.4;margin-top:2px}
.deadly-page .toc .chip{border-color:#8E1D14}
.dgroup{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:20px;background:var(--surface);border:1px solid var(--line);border-top:5px solid #8E1D14;scroll-margin-top:12px}
.dg-head h3{font-size:21px;line-height:1.15}
.dg-head p{font-size:14px;color:var(--text-2);line-height:1.45;margin-top:3px}
.dg-sub{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#B3261E;margin-top:10px}
.dp-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:5px}
.dp-list li{font-size:14.5px;line-height:1.45}
.dg-rule{margin-top:10px;padding:10px 12px;border-radius:14px;background:#1B1311;color:#fff;border-left:5px solid #E0432A}
.dg-rule b{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#FFB3B8}
.dg-rule p{font-size:15px;font-weight:700;line-height:1.4;margin-top:2px}

/* ---------- Où et quand ---------- */
.ou-page{gap:12px}
.ou-plus{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-2)}
.ou-plus input{width:20px;height:20px;accent-color:var(--accent)}
.ou-list{display:flex;flex-direction:column;gap:12px}
.ou-card{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:20px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--text)}
.ou-top{display:flex;gap:12px;align-items:center}
.ou-name{min-width:0;display:flex;flex-direction:column}
.ou-name b{font-size:17px;line-height:1.15}
.ou-name .la{font-size:13px;color:var(--text-2);font-style:italic}
.ou-biomes{display:flex;flex-wrap:wrap;gap:6px}
.ou-b{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--surface-2)}
.ou-b svg{color:var(--accent)}
.ou-arbres{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2)}
.ou-arbres svg{width:16px;height:16px;flex:none;color:var(--accent)}
.ou-months{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}
.ou-months i{height:26px;border-radius:6px;background:var(--surface-2);display:grid;place-items:center;font-style:normal;font-size:10.5px;font-weight:800;color:var(--text-2)}
.ou-months i.on{background:color-mix(in srgb,var(--accent) 45%,var(--surface-2));color:var(--text)}
.ou-months i.pic{background:var(--accent);color:var(--on-accent)}
.ou-months i.now{outline:2px solid var(--cep);outline-offset:1px}
.ou-note{font-size:13.5px;line-height:1.45;color:var(--text-2)}
.ou-danger{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:12px;background:var(--lookalike-bg);color:var(--lookalike-text);font-size:13px;font-weight:700}
.ou-danger.dead{background:#1B1311;color:#FFB3B8;border:1px solid #8E1D14}
.ou-danger svg{width:16px;height:16px;flex:none}
.ou-approx{font-size:11.5px;color:var(--text-2)}

.ou-legend{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);flex-wrap:wrap}
.ou-legend i{width:16px;height:16px;border-radius:5px;background:var(--surface-2);display:inline-block;margin-left:8px}
.ou-legend i:first-child{margin-left:0}
.ou-legend i.on{background:color-mix(in srgb,var(--accent) 45%,var(--surface-2))}
.ou-legend i.pic{background:var(--accent)}
.ou-legend i.now{outline:2px solid var(--cep);outline-offset:1px}

/* ---------- Filtres : segmenté, interrupteur, bouton de filtre, sélecteur, mois, milieux ---------- */
.seg2{display:flex;gap:3px;padding:4px;border-radius:16px;background:var(--surface-2)}
.seg2 button{flex:1;min-height:46px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  font:700 13.5px var(--font-ui);color:var(--text-2);transition:background .15s,color .15s,box-shadow .15s}
.seg2 button small{font-size:11px;font-weight:600;opacity:.8}
.seg2 button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}
.seg2 button.t-comestible.on{box-shadow:inset 0 -3px 0 #3E7A4F,var(--shadow-1)}
.seg2 button.t-toxique.on{box-shadow:inset 0 -3px 0 #B3261E,var(--shadow-1)}
.seg2 button.t-mortel.on{box-shadow:inset 0 -3px 0 #14100E,var(--shadow-1)}
[data-theme="dark"] .seg2 button.t-mortel.on{box-shadow:inset 0 -3px 0 #8E1D14,var(--shadow-1)}

.tgl{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:6px 14px;border-radius:16px;
  border:2px solid var(--line);background:var(--surface);cursor:pointer}
.tgl input{position:absolute;opacity:0;pointer-events:none}
.tgl-t{display:flex;flex-direction:column;min-width:0}
.tgl-t b{font-size:14.5px}
.tgl-t small{font-size:12px;color:var(--text-2)}
.tgl-sw{flex:none;width:46px;height:28px;border-radius:14px;background:var(--surface-2);border:2px solid var(--line);position:relative;transition:background .15s,border-color .15s}
.tgl-sw::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--text-2);transition:transform .15s,background .15s}
.tgl input:checked + .tgl-sw{background:var(--accent);border-color:var(--accent)}
.tgl input:checked + .tgl-sw::after{transform:translateX(18px);background:var(--on-accent)}
.tgl:has(input:checked){border-color:var(--accent)}
.tgl:has(input:focus-visible){outline:3px solid var(--accent-ring)}

.fbar .tgl-t b{white-space:nowrap}
.fbar{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;align-items:stretch}
.fbar .tgl{padding:6px 12px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fbtn{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 10px 8px 12px;border-radius:16px;border:2px solid var(--line);background:var(--surface);
  color:var(--text);text-align:left;min-width:0}
.fbtn.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.fb-i{flex:none;display:grid;place-items:center;color:var(--accent)}
.fb-i svg{width:22px;height:22px}
.fb-t{flex:1;min-width:0;display:flex;flex-direction:column}
.fb-t small{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2)}
.fb-t b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-c{flex:none;display:grid;place-items:center;color:var(--text-2)}
.fb-c svg{width:18px;height:18px;transform:rotate(90deg)}
.fnote{font-size:13.5px;margin:-2px 0 0}
.fhead{display:flex;align-items:center;justify-content:space-between}
.mini-link{font:700 13.5px var(--font-ui);padding:6px 12px;border-radius:999px;border:2px solid var(--line);color:var(--text-2);background:var(--surface)}
.mini-link.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mcell{min-height:54px;border-radius:14px;border:2px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  font:700 14px var(--font-ui);color:var(--text);position:relative}
.mcell small{font-size:11px;font-weight:600;color:var(--text-2)}
.mcell.zero{opacity:.5}
.mcell.cur::after{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--cep)}
.mcell.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.mcell.on small{color:var(--on-accent);opacity:.85}
.btiles{display:flex;gap:10px;overflow-x:auto;margin-right:-20px;padding:2px 20px 4px 0;scrollbar-width:none}
.btiles::-webkit-scrollbar{display:none}
.btile{flex:none;width:86px;min-height:76px;padding:10px 6px;border-radius:16px;border:2px solid var(--line);background:var(--surface);color:var(--text);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:700 12.5px var(--font-ui)}
.btile svg{width:26px;height:26px;color:var(--accent)}
.btile.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}

.pk-search{margin-top:-2px}
.pk-list{display:flex;flex-direction:column;gap:6px;max-height:min(56vh,460px);overflow-y:auto;margin:0 -6px;padding:0 6px}
.pk-opt{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 12px;border-radius:16px;border:2px solid transparent;background:var(--surface);color:var(--text);text-align:left}
.pk-opt.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.pk-i{flex:none;display:grid;place-items:center;color:var(--accent)}
.pk-t{flex:1;min-width:0;display:flex;flex-direction:column}
.pk-t b{font-size:15px}
.pk-t small{font-size:12.5px;color:var(--text-2)}
.pk-opt em{font-style:normal;font-weight:800;font-size:13px;color:var(--text-2);background:var(--surface-2);padding:2px 9px;border-radius:999px}
.pk-r{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line)}
.pk-opt.on .pk-r{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 0 45%,transparent 50%)}

/* ---------- Profil : niveaux et badges à paliers ---------- */
.next-title{display:block;margin-top:2px;color:var(--cep);font-weight:700}
.badges{grid-template-columns:repeat(3,1fr);gap:10px}
.badge{padding:10px 4px 8px;border-radius:16px;background:var(--surface);border:1px solid var(--line);gap:3px;color:var(--text-2)}
.badge.on{border-color:color-mix(in srgb,var(--gold) 60%,var(--line))}
.badge .bn{font-size:12px;font-weight:800;line-height:1.15;color:var(--text)}
.badge:not(.on) .bn{color:var(--text-2)}
.badge small{font-size:11px;font-weight:600;color:var(--text-2)}
.pips{display:flex;gap:3px;justify-content:center;min-height:8px}
.pips i{width:8px;height:8px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line)}
.bd-now{font:800 30px var(--font-display);display:flex;align-items:baseline;gap:10px}
.bd-now small{font:600 13.5px var(--font-ui);color:var(--text-2)}
.bd-tiers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.bd-tiers li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);opacity:.65}
.bd-tiers li.ok{opacity:1;border-color:var(--accent)}
.bd-tiers li i{width:16px;height:16px;border-radius:50%;flex:none}
.bd-tiers li b{flex:1}
.bd-tiers li span{font-weight:800;color:var(--text-2)}
.bd-tiers li svg{width:18px;height:18px;color:var(--accent)}

/* ---------- Administration ---------- */
.adm-row{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.adm-row.wait{border-color:var(--lookalike);background:color-mix(in srgb,var(--lookalike) 10%,var(--surface))}
.adm-top{display:flex;align-items:center;gap:10px}
.adm-id{flex:1;min-width:0;display:flex;flex-direction:column}
.adm-id b{font-size:16px}
.adm-id small{font-size:12.5px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-tag{flex:none;font-size:11.5px;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--text-2)}
.adm-tag.ok{background:var(--accent-ring);color:var(--accent)}
.adm-tag.wait{background:var(--lookalike-bg);color:var(--lookalike-text)}
.adm-tag.admin{background:#1B1311;color:#FFB3B8}
.adm-btns{display:flex;gap:8px;flex-wrap:wrap}
.adm-btns .btn{flex:1 1 auto;min-width:0;height:44px;font-size:14px}
.danger-b{color:#B3261E;border-color:#B3261E}

/* ---------- Illustrations (images) sur les cartes ---------- */
.il{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.mk-art,.card .art{position:relative}
.card.has-il .fa-art{display:none}
.fa-bg{position:absolute;inset:0;overflow:hidden}
.card.v-full_art .fa-bg .il{z-index:0}
.il-note{font-size:12.5px;color:var(--text-2);text-align:center;margin-top:6px}

/* ---------- Mes 100 cartes ---------- */
.bascule{display:flex;gap:3px;padding:4px;border-radius:16px;background:var(--surface-2)}
.bascule a{flex:1;min-height:42px;border-radius:12px;display:grid;place-items:center;font:700 14px var(--font-ui);color:var(--text-2);text-decoration:none;text-align:center}
.bascule a.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}
.lvl-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.lvl-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border-radius:14px;border:2px solid var(--line);background:var(--surface);color:var(--text)}
.lvl-chip b{font-size:12.5px}
.lvl-chip small{font-size:11.5px;color:var(--text-2);font-weight:700}
.lvl-chip.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.mk.nom{background:transparent;border:2px dashed var(--line);box-shadow:none;align-items:center;justify-content:center;text-align:center;padding:8px}
.mk.nom span{font:600 12.5px/1.25 var(--font-display);color:var(--text-2)}
.goal100{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:16px;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--line)}
.goal100 .g-t{font-weight:700;font-size:14px}
.goal100 .g-n{font-size:13px;color:var(--text-2);margin-top:-2px}
.goal100 .g-n b{color:var(--text);font-size:17px}

/* =====================================================================
   Cartes : finitions « carte à collectionner » (cadres, plaques, fenêtre d'illustration, effets)
   Le CADRE dit le danger, la MATIÈRE dit la rareté. Les couleurs de danger ne changent jamais.
   ===================================================================== */
.card{border-radius:14px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;will-change:transform;touch-action:pan-y pinch-zoom;
  box-shadow:0 2px 3px rgba(0,0,0,.35),0 10px 22px rgba(0,0,0,.3),0 24px 44px rgba(0,0,0,.22)}
.card.tilt:not(.small){transition:transform .06s linear,box-shadow .2s;
  transform:perspective(650px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.035);
  box-shadow:0 4px 6px rgba(0,0,0,.35),0 18px 34px rgba(0,0,0,.4),0 34px 60px rgba(0,0,0,.28)}
/* double filet intérieur */
.card::before{content:"";position:absolute;inset:2px;border-radius:12px;pointer-events:none;z-index:6;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.42),inset 0 0 0 2px rgba(0,0,0,.3),inset 0 0 0 3px rgba(255,255,255,.14)}
.card.f-mortel::before{box-shadow:inset 0 0 0 1px rgba(255,120,120,.5),inset 0 0 0 2px rgba(0,0,0,.55),inset 0 0 0 3px rgba(142,15,31,.7)}
.card.f-comestible{background:linear-gradient(160deg,#4E8E5F,#2F6A40 55%,#3E7A4F)}
.card.f-toxique{background:linear-gradient(160deg,#C9362D,#9B1F18 55%,#B3261E)}
.card.f-neutre{background:linear-gradient(160deg,#8D9A85,#6B795F 55%,#7C8A74)}
.card.f-mortel{background:linear-gradient(160deg,#241C19,#0C0908 55%,#171210)}
/* plaque de titre */
.card .band{position:relative;z-index:2;background:linear-gradient(180deg,#FFFDF6 0%,#F4EACF 100%);border-radius:5px 15px 5px 15px;
  box-shadow:0 0 0 1px rgba(95,70,30,.65),inset 0 0 0 2px #FFFDF6,inset 0 0 0 3px rgba(150,115,55,.55),0 2px 3px rgba(0,0,0,.4)}
.card .nm{letter-spacing:.01em;text-shadow:0 1px 0 rgba(255,255,255,.75)}
.card.f-mortel .band{border-radius:5px 15px 5px 15px}
/* fenêtre d'illustration : filets, ombre intérieure, léger éclat */
.card .art{margin:6px 3px;height:156px;border-radius:3px;box-shadow:0 0 0 1px rgba(80,58,22,.85),0 0 0 3px #EAD9A8,0 0 0 4px rgba(80,58,22,.8),0 4px 8px rgba(0,0,0,.45)}
.card .art::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;box-shadow:inset 0 0 16px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.12)}
.card .art .il{filter:saturate(1.1) contrast(1.05)}
/* ligne de type */
.card .typ{background:linear-gradient(180deg,#FFFDF6,#EFE3C2);border-radius:3px 10px 3px 10px;position:relative;z-index:2;
  box-shadow:0 0 0 1px rgba(95,70,30,.6),inset 0 0 0 2px rgba(255,253,246,.9),inset 0 0 0 3px rgba(150,115,55,.4);gap:6px}
.card .typ::before,.card .typ::after{content:"◆";font-size:6px;opacity:.5;flex:none}
.card .typ > span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:center}
/* encadré de texte : parchemin */
.card .txt{height:70px;margin-top:6px;background:linear-gradient(180deg,#FFFBEF,#F3E8CB);border-radius:4px;padding:5px 10px;font-family:var(--font-latin);font-size:10.8px;line-height:1.34;
  box-shadow:0 0 0 1px rgba(95,70,30,.55),inset 0 0 0 3px rgba(255,253,246,.8),inset 0 0 0 4px rgba(150,115,55,.3);overflow:hidden}
.card .txt > span{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.card .fa-panel{padding-bottom:0}
.card.f-mortel .typ{background:linear-gradient(180deg,#A4162A,#7A0F1F);box-shadow:0 0 0 1px #000,inset 0 0 0 2px rgba(255,255,255,.18),inset 0 0 0 3px rgba(0,0,0,.35)}
.card.f-mortel .txt{background:linear-gradient(180deg,#3A1A1D,#25100F);box-shadow:0 0 0 1px #000,inset 0 0 0 3px rgba(255,255,255,.07),inset 0 0 0 4px rgba(142,15,31,.55)}
.card .foot{position:relative;z-index:2;padding:0 4px}
/* OR : or gravé, reflet spéculaire qui suit le doigt */
.card.v-or{background:repeating-linear-gradient(45deg,rgba(255,255,255,.28) 0 1px,transparent 1px 6px),repeating-linear-gradient(-45deg,rgba(90,60,10,.2) 0 1px,transparent 1px 6px),linear-gradient(135deg,#F9E7A0 0%,#C99B35 26%,#FFF2BA 46%,#B88A2C 68%,#F4D879 100%);
  box-shadow:0 0 0 1px #5E4210,0 2px 3px rgba(0,0,0,.35),0 14px 30px rgba(190,140,30,.45),0 26px 50px rgba(0,0,0,.25)}
.card.v-or.f-mortel{background:linear-gradient(135deg,#E9CB6A 0%,#9C6F1E 30%,#F6E08C 50%,#8A5E14 72%,#DDBA55 100%)}
.card.v-or::before{box-shadow:inset 0 0 0 1px rgba(255,248,210,.75),inset 0 0 0 2px rgba(90,60,10,.55),inset 0 0 0 3px rgba(255,248,210,.35)}
.card.v-or .band,.card.v-or .typ,.card.v-or .txt{background:linear-gradient(180deg,#FFF8DA,#EBCE78);box-shadow:0 0 0 1px #6A4A12,inset 0 0 0 2px #FFF8DA,inset 0 0 0 3px rgba(140,100,25,.6),0 2px 3px rgba(0,0,0,.35)}
.card.v-or .art{box-shadow:0 0 0 1px #5E4210,0 0 0 3px #FFE9A0,0 0 0 4px #6A4A12,0 4px 8px rgba(0,0,0,.45)}
.card.v-or.f-mortel .typ{background:linear-gradient(180deg,#A4162A,#7A0F1F);color:#fff}
.gleam{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:5;mix-blend-mode:soft-light;opacity:.9;
  background:radial-gradient(circle at var(--mx,28%) var(--my,18%),rgba(255,255,255,.95) 0,rgba(255,255,255,.35) 28%,transparent 55%)}
.gleam.soft{opacity:.45}
.sweep{mix-blend-mode:overlay;opacity:.9;animation-duration:3.4s}
/* HOLO : feuille irisée sur l'illustration + liseré arc-en-ciel autour de la carte */
.holo{position:absolute;inset:0;pointer-events:none;z-index:3;mix-blend-mode:color-dodge;opacity:.5;
  background:radial-gradient(circle at var(--mx,30%) var(--my,22%),rgba(255,255,255,.9) 0,rgba(255,255,255,0) 30%),
    repeating-linear-gradient(115deg,#ff2d95 0%,#ff9a00 8%,#ffee32 16%,#2dff8e 24%,#2dd9ff 32%,#8a5cff 40%,#ff2d95 48%);
  background-size:100% 100%,330% 330%;background-position:0 0,var(--bx,0%) var(--by,0%);
  filter:saturate(1.35) contrast(1.1) brightness(.78);animation:holoDrift 6.5s ease-in-out infinite}
@keyframes holoDrift{0%{background-position:0 0,0% 10%}50%{background-position:0 0,100% 90%}100%{background-position:0 0,0% 10%}}
.glitter{position:absolute;inset:0;pointer-events:none;z-index:3;mix-blend-mode:overlay;opacity:.9;
  background-image:radial-gradient(circle,#fff 0 1.1px,transparent 1.8px),radial-gradient(circle,#fff 0 .8px,transparent 1.4px);
  background-size:13px 13px,19px 19px;background-position:0 0,6px 9px;animation:twinkle 2.6s ease-in-out infinite alternate}
@keyframes twinkle{from{opacity:.35;filter:brightness(1)}to{opacity:1;filter:brightness(1.8)}}
.foil-edge{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:7;padding:3px;opacity:.95;
  background:linear-gradient(120deg,#ff2d95,#ff9a00,#ffee32,#2dff8e,#2dd9ff,#8a5cff,#ff2d95);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:edgeHue 5s linear infinite}
@keyframes edgeHue{to{filter:hue-rotate(360deg)}}
.card.tilt .holo,.card.tilt .sweep{animation:none}
.card.tilt .holo{opacity:.7}
/* mini-cartes : mêmes effets, en plus discret */
.mk .holo{opacity:.45}.mk .glitter{background-size:9px 9px,13px 13px}
.mk .foil-edge{padding:2px}
/* full art : verre dépoli plus soigné */
.card .glass{background:linear-gradient(180deg,rgba(255,252,243,.86),rgba(246,236,210,.74));box-shadow:0 0 0 1px rgba(95,70,30,.5),inset 0 0 0 2px rgba(255,253,246,.7),0 3px 8px rgba(0,0,0,.35)}
.card .fa-frame{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),inset 0 0 0 3px rgba(0,0,0,.28)}
@media (prefers-reduced-motion:reduce){.holo,.glitter,.sweep,.foil-edge{animation:none}.card.tilt:not(.small){transform:none}}

/* =====================================================================
   Cartes : texte toujours entier (jamais de « … »), pied discret, série X/N,
   Holo sur fond neutre argenté, Or intégral sans rouge, Full art orné
   ===================================================================== */
.card .nm,.card .cla,.card .typ > span{text-overflow:clip}
.card .txt > span{display:block;overflow:visible;-webkit-line-clamp:unset}
.card .txt{display:flex;align-items:center}
.card .fa-panel{display:block;overflow:hidden;-webkit-line-clamp:unset}
.mk-name{white-space:normal;line-height:1.02;text-overflow:clip}
/* pied : rareté toute petite à gauche, rang dans la série à droite */
.card .foot{font-size:9px;letter-spacing:.02em}
.card .foot .rar{display:inline-flex;align-items:center;gap:4px;font-weight:600;text-transform:uppercase;font-size:7.5px;letter-spacing:.09em;opacity:.92}
.card .foot .rar .gem{margin:0}
.card .foot .cnt{font-style:normal;font-weight:800;opacity:.9;letter-spacing:0;text-transform:none;font-size:9px}
.card .foot .ser{font-size:10.5px;font-weight:800;letter-spacing:.04em;font-variant-numeric:tabular-nums;padding:1px 7px;border-radius:9px;background:rgba(0,0,0,.34);color:#fff}
.card.mc .foot .rar{font-size:6.5px}.card.mc .foot .ser{font-size:8.5px;padding:0 5px}
.card.v-full_art .fa-foot .foot .ser{text-shadow:none}

/* HOLO : cadre neutre argenté (le danger reste porté par la ligne de type, les badges et le liseré) */
.card.v-holo{background:repeating-linear-gradient(100deg,rgba(255,255,255,.16) 0 1px,transparent 1px 4px),linear-gradient(145deg,#F3F4F7 0%,#B4BAC5 22%,#EEF0F4 40%,#98A0AD 62%,#E4E7EC 82%,#A8AFBB 100%)}
.card.v-holo::before{box-shadow:inset 0 0 0 1px rgba(255,255,255,.85),inset 0 0 0 2px rgba(70,78,92,.55),inset 0 0 0 3px rgba(255,255,255,.4)}
.card.v-holo .foot{color:#2B313C}
.card.v-holo .foot .ser{background:rgba(35,42,56,.82);color:#fff}
.card.v-holo.f-mortel{background:repeating-linear-gradient(100deg,rgba(255,255,255,.08) 0 1px,transparent 1px 4px),linear-gradient(145deg,#2B2B2F 0%,#0E0D0F 40%,#34353A 70%,#121114 100%);border:0}
.card.v-holo.f-mortel .foot{color:#DADDE3}
.card.v-holo.f-mortel .foot .ser{background:rgba(255,255,255,.16)}
.card.v-holo.f-mortel::before{box-shadow:inset 0 0 0 1px rgba(205,210,220,.7),inset 0 0 0 2px rgba(0,0,0,.6),inset 0 0 0 3px rgba(150,156,168,.45)}
.card.v-holo.f-comestible .typ{background:linear-gradient(180deg,#4E8E5F,#2F6A40);color:#fff}
.card.v-holo.f-toxique .typ{background:linear-gradient(180deg,#C9362D,#9B1F18);color:#fff}
.card.v-holo.f-neutre .typ{background:linear-gradient(180deg,#8D9A85,#6B795F);color:#fff}
.card.v-holo .typ::before,.card.v-holo .typ::after{color:#fff}
.mk.v-holo{background:linear-gradient(145deg,#F3F4F7,#B4BAC5 30%,#EEF0F4 50%,#98A0AD 75%,#E4E7EC)!important}
.mk.v-holo .mk-foot{color:#2B313C}
.mk.v-holo.f-mortel{background:linear-gradient(145deg,#2B2B2F,#0E0D0F 50%,#34353A)!important;border:0}
.mk.v-holo.f-mortel .mk-foot{color:#DADDE3}

/* OR : tout est doré, y compris les textes. Aucun rouge : seul le badge dit le danger */
.card.v-or,.card.v-or.f-mortel,.card.v-or.f-toxique{border:0}
.card.v-or::before,.card.v-or.f-mortel::before{box-shadow:inset 0 0 0 1px rgba(255,248,210,.8),inset 0 0 0 2px rgba(110,74,12,.6),inset 0 0 0 3px rgba(255,248,210,.4)}
.card.v-or .band,.card.v-or .typ,.card.v-or .txt,.card.v-or.f-mortel .band,.card.v-or.f-mortel .typ,.card.v-or.f-mortel .txt,.card.v-or.f-toxique .typ{
  background:linear-gradient(180deg,#FBE7A0 0%,#E6BF55 52%,#F3D77C 100%);color:#4A3008;
  box-shadow:0 0 0 1px #6A4A12,inset 0 0 0 2px #FFF1BE,inset 0 0 0 3px rgba(140,100,25,.65),0 2px 3px rgba(0,0,0,.35)}
.card.v-or .nm{color:#3F2706;text-shadow:0 1px 0 rgba(255,244,196,.9),0 0 1px rgba(255,244,196,.6)}
.card.v-or .cla{color:#6A4710}
.card.v-or .typ::before,.card.v-or .typ::after{color:#7A5416}
.card.v-or .txt{color:#46300A}
.card.v-or .foot{color:#4A3008}
.card.v-or .foot .ser{background:linear-gradient(180deg,#6A4710,#3F2706);color:#FFE9A0}
.card.v-or.f-mortel .typ{font-weight:800;letter-spacing:.06em}
.mk.v-or,.mk.v-or.f-mortel{border:0}
.mk.v-or .mk-name{background:linear-gradient(180deg,#FBE7A0,#E6BF55);color:#3F2706}

/* FULL ART : bordure fantaisie dorée (argentée pour le mortel : sobre, sans fioriture vive) */
.card .fa-orn{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;color:#F2D580;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.65))}
.card .fa-orn .lf{fill:currentColor;stroke:none}
.card.v-full_art.f-mortel .fa-orn{color:#C9CDD4}
.card.v-full_art .fa-band{left:16px;right:16px;top:16px}
.card.v-full_art .fa-panel{left:16px;right:16px}
.card.v-full_art .fa-foot{left:18px;right:18px;bottom:15px}
.card.mc.v-full_art .fa-band{left:10px;right:10px;top:10px}
.card.mc.v-full_art .fa-panel{left:10px;right:10px}
.card.mc.v-full_art .fa-foot{left:11px;right:11px;bottom:9px}
.card.mc .fa-orn{opacity:.9}
.mk .fa-orn{display:none}

.card.v-full_art .fa-band,.card.v-full_art .fa-panel,.card.v-full_art .fa-foot{z-index:2}
.card .fa-panel{padding:6px 9px 7px;font-size:10px;bottom:38px}
.card.mc .fa-panel{padding:4px 6px 5px;bottom:26px}
.apercu{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin:10px 0 24px}

.zoom-bg{position:fixed;inset:0;z-index:300;background:rgba(10,8,6,.86);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.zoom-box{position:relative}
.zoom-box .card{cursor:default}
.zoom-hint{margin:0;color:#e9e1cf;font-size:13px;opacity:.8}
.card.mc:not(.sil){cursor:zoom-in}

/* Classeur : 2 colonnes, chaque carte montre son texte */
.binder{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.binder .mk{aspect-ratio:63/92;padding:5px;gap:4px}
.mk-name{height:22px;font-size:11px;padding:0 6px}
.mk-txt{flex:none;height:46px;box-sizing:border-box;background:#FFFBF0;border-radius:4px;padding:3px 6px;display:flex;align-items:center;color:#231A12;overflow:hidden;font:8.2px/1.3 var(--font-latin)}
.mk-txt > span{display:block}
.mk.v-or .mk-txt{background:linear-gradient(180deg,#FBE7A0,#E6BF55);color:#46300A}
.mk.f-mortel .mk-txt{background:#2A1214;color:#fff}
.mk.v-or.f-mortel .mk-txt{background:linear-gradient(180deg,#FBE7A0,#E6BF55);color:#46300A}
.mk-foot{font-size:9.5px}
.mk.sil .mk-txt,.mk.nom .mk-txt{display:none}
/* fiche : carte entière, centrée ; version réduite à côté du titre pour les mortels */
.card.full.small{transform:scale(.62);transform-origin:top left;margin:0 -96px -134px 0}
