/* WikiCards dans le navigateur (10/10/2026) : la vraie app, ecran par ecran, en pages web.
   Tout vient de lib/ (tokens.dart, holo.dart, stage.dart, nav.dart, card_face.dart, pack_stock.dart, main.dart PackSleeve,
   arena.dart, profile_page.dart, battle_ui.dart, market_ui.dart) : memes mesures, memes couleurs, memes dessins.
   Aucun canvas : du texte, des images, des degrades et les glyphes du sprite. */
:root{--night:#121826;--deep:#0B0F19;--lift:#1B2335;--ink:#202122;--inkSoft:#54595D;--paper:#fff;--tint:#F8F9FA;--hairline:#EAECF0;--ruleGrey:#A2A9B1;
--on:#ECEFF4;--onv:#A9B0BE;--outline:#7A8294;--outlineV:#343D50;--sLow:#171E2D;--sHigh:#222B3E;--sHighest:#2A3447;--secondary:#88A3E8;--tertiary:#F08BC4;--error:#FD7865;--errC:#4A1F1B;--onErrC:#FFD8D2;
--link:#3366CC;--green:#14866D;--red:#D73333;--gold:#E2BC55;--goldInk:#976A00;--goldPale:#FFF4CF;
--r-common:#72777D;--r-uncommon:#14866D;--r-rare:#3366CC;--r-epic:#7B4CC4;--r-legendary:#976A00;
--n0:#2EC5FF;--n1:#6E8BFF;--n2:#B07BFF;--n3:#FF6FC3;--n4:#5FE0C6;
--holo:linear-gradient(100deg,#8FD8FF,#AFC0FF,#DDB8FF,#FFB9DD,#FFD9B0,#FFF1A6,#B9F3D6,#8FD8FF);
--holoQ:linear-gradient(90deg,#6FB8E8,#8E9BF2,#B98BE6,#E48DBE);
--chrome-silver:linear-gradient(135deg,#FCFDFE 0%,#C5CBD3 28%,#F3F5F8 50%,#A9B0BA 74%,#E8EBF0 100%);
--chrome-gold:linear-gradient(135deg,#FFF3C4 0%,#D9A93A 28%,#FFEAA8 50%,#B07A12 74%,#F1CF6E 100%);
--serif:'Libertinus Serif',Georgia,'Times New Roman',serif;--sans:'Libertinus Sans','Gill Sans','Segoe UI',system-ui,sans-serif;--mark:'WikiCardsMark',var(--serif);
--m:24px;--bar:72px;--tabs:56px;--enter:cubic-bezier(.33,1,.68,1);--exit:cubic-bezier(.32,0,.67,0);--pop:cubic-bezier(.34,1.56,.64,1);--rail:0px}
/* ---- la page : la scene de nuit de l'app (stage.dart) ---- */
body[data-app]{background:var(--night);color:var(--on);font:15px/1.5 var(--sans);overflow-x:hidden}
body[data-app]::before{display:none}
body[data-app] .sky{display:none}
body[data-app] main.wrap{max-width:none;padding:0;min-height:100vh;position:relative;z-index:1;overflow-x:clip}
body[data-app] .bar-cta{display:none}
:where(body[data-app]) :where(button){font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
body[data-app] footer{display:none}
body[data-app] .appbar{display:none!important}
.stage{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:linear-gradient(180deg,var(--night) 0,var(--deep) 36%,#151c2b 100%)}
.stage::before{content:"";position:absolute;inset:0;background:radial-gradient(72% 72% at 50% 50%,transparent 55%,rgba(0,0,0,.3) 100%)}
.stage .light{position:absolute;inset:0;opacity:0;transition:opacity .48s var(--enter)}
.stage.lit .light{opacity:1}
.stage .light::before{content:"";position:absolute;left:50%;top:31%;width:150vmin;height:150vmin;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(110,139,255,.30) 0,rgba(110,139,255,.10) 42%,rgba(110,139,255,0) 100%);animation:breath 4.4s ease-in-out infinite alternate}
.stage .light::after{content:"";position:absolute;left:72%;top:37%;width:84vmin;height:84vmin;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,111,195,.12),rgba(255,111,195,0) 70%)}
@keyframes breath{from{transform:translate(-50%,-50%) scale(1);opacity:.9}to{transform:translate(-50%,-50%) scale(1.09);opacity:1}}
.dust{position:absolute;inset:0;overflow:hidden}
.dust i{position:absolute;display:block;border-radius:50%;background:#fff;animation:rise var(--t,24s) linear infinite,twinkle var(--k,3s) ease-in-out infinite alternate;will-change:transform,opacity}
.dust i.s{border-radius:0;background:none;width:0;height:0}
.dust i.s::before{content:"";position:absolute;left:-4px;top:-4px;width:8px;height:8px;background:var(--c,#fff);clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%)}
@keyframes rise{from{transform:translateY(0)}to{transform:translateY(-110vh)}}
@keyframes twinkle{from{opacity:.12}to{opacity:var(--a,.6)}}
/* ---- le gabarit d'un onglet : TopFloat + marge 24 + pied libre pour la barre flottante ---- */
.screen{position:relative;z-index:1;min-height:100vh;padding:calc(var(--bar) + 24px + 16px) var(--m) calc(var(--tabs) + 12px + 32px);max-width:calc(620px + 2 * var(--m));margin:0 auto}
.screen.wide{max-width:calc(720px + 2 * var(--m))}
.screen.read{max-width:calc(640px + 2 * var(--m))}
.screen.gridpage{max-width:none}
.screen.pushed{padding-top:calc(var(--bar) + 24px)}
/* ---- la barre d'un ecran pousse (AppBar laisse descendre de 24) ---- */
.abar{display:flex;align-items:center;gap:4px;min-height:56px;margin:0 -8px 8px}
.abar .back{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:24px;color:var(--on)}
.abar .back:hover{background:rgba(236,239,244,.06);text-decoration:none}
.abar h1{font:600 23px/1.2 var(--serif);margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--on)}
.abar .act{font:700 13px/1.2 var(--sans);color:var(--secondary);padding:12px 12px;border-radius:12px}
.abar .act:hover{background:rgba(136,163,232,.08);text-decoration:none}
.abar .fig{font:400 15px/1.2 var(--sans);font-variant-numeric:tabular-nums;padding:0 20px 0 8px}
/* ---- glyphes ---- */
.g{width:24px;height:24px;display:inline-block;vertical-align:middle;flex:none;color:inherit}
.g.s20{width:20px;height:20px}.g.s22{width:22px;height:22px}.g.s18{width:18px;height:18px}.g.s16{width:16px;height:16px}
/* ---- la barre flottante (nav.dart FloatingTabs) ---- */
.ftabs{position:fixed;left:50%;bottom:max(12px,calc(env(safe-area-inset-bottom,0px) + 8px));z-index:60;transform:translateX(-50%);width:min(calc(100vw - 2 * var(--m)),328px);height:var(--tabs);border-radius:28px;background:rgba(27,35,53,.80);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 24px rgba(0,0,0,.5);display:grid;grid-template-columns:repeat(4,1fr)}
.ftabs .lightp{position:absolute;top:7px;left:calc((100% / 4) * (var(--i) + .5) - 24px);width:48px;height:40px;border-radius:20px;background:linear-gradient(90deg,rgba(46,197,255,.5),rgba(110,139,255,.5),rgba(176,123,255,.5),rgba(255,111,195,.5));transition:left .24s var(--enter)}
.ftabs a{position:relative;display:flex;align-items:center;justify-content:center;color:rgba(169,176,190,.85);transition:transform .12s var(--enter)}
.ftabs a:active{transform:scale(.92)}
.ftabs a[aria-current]{color:var(--on)}
.ftabs a:hover{text-decoration:none}
.ftabs a .g{transition:transform .24s var(--enter),opacity .24s}
/* ---- les deux pilules de verre (nav.dart GlassPill, ProfilePeek, KnowledgeChip) ---- */
.topfloat{position:fixed;top:calc(var(--bar) + 24px);left:calc(var(--m) - 8px);right:calc(var(--m) - 8px);z-index:50;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;pointer-events:none}
.topfloat>*{pointer-events:auto}
.gpill{display:inline-flex;align-items:center;height:40px;border-radius:20px;background:rgba(27,35,53,.80);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);box-shadow:0 6px 16px rgba(0,0,0,.4);color:var(--on);transition:transform .12s var(--enter)}
.gpill:active{transform:scale(.97)}
a.gpill:hover{text-decoration:none}
.peek{max-width:calc(70vw - 24px);padding:0 12px 0 4px;gap:8px}
.peek .pphoto{flex:none}
.peek .pn{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.peek .pn b{font:700 13px/1.15 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}
.peek .pn span{font:400 13px/1.15 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums;white-space:nowrap}
.peek.plus .pn span{color:var(--gold)}
.lore{padding:0 16px;gap:4px;font:700 15px/1 var(--sans);font-variant-numeric:tabular-nums}
.lore .wait{color:var(--secondary)}
.coin{display:inline-block;width:17px;height:17px;border-radius:50%;background:linear-gradient(135deg,#F1E2B4,#CDAE62 50%,#94762F);box-shadow:inset 0 0 0 1px #E6CC86,inset 0 0 0 3px rgba(95,74,26,.0),inset -1px -1px 2px rgba(95,74,26,.35),inset 1.5px 1.5px 1.5px rgba(255,248,230,.9);vertical-align:-3px;flex:none;position:relative}
.coin::after{content:"";position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(95,74,26,.5);border-bottom-color:rgba(255,246,222,.7);border-right-color:rgba(255,246,222,.7)}
.coin.s14{width:14px;height:14px}.coin.s14::after{inset:2.5px}
.coin.s22{width:22px;height:22px}
.flag{display:inline-block;height:12px;aspect-ratio:4/3;border-radius:2px;box-shadow:0 0 0 1px rgba(162,169,177,.55);object-fit:cover;vertical-align:-1px}
.flag.s16{height:16px}.flag.s10{height:10.5px}
/* la photo du joueur : son anneau de metal, la carte avatar ou le camee (profile_account.dart) */
.pphoto{position:relative;display:inline-block;border-radius:50%;background:var(--chrome-silver);padding:5.5%;box-shadow:0 3px 8px rgba(27,37,51,.15);flex:none;box-sizing:border-box}
.pphoto.Legendary,.pphoto.gold{background:var(--chrome-gold)}
.pphoto.Epic{background:linear-gradient(135deg,#C0A1E8 0%,#A392D1 28%,#BBA1E3 50%,#9686C2 74%,#B9A4E2 100%)}
.pphoto.Rare{background:linear-gradient(135deg,#B0B8EC 0%,#8E9BE0 28%,#A5B2EB 50%,#7E8ED2 74%,#A0ACE6 100%)}
.pphoto.Uncommon{background:linear-gradient(135deg,#B8DFD3 0%,#8EBEB3 28%,#B1DBCE 50%,#7FB1A8 74%,#A9D4C9 100%)}
.pphoto>span{display:block;width:100%;height:100%;border-radius:50%;overflow:hidden;background:var(--paper)}
.pphoto img{width:100%;height:100%;object-fit:cover;display:block}
.pphoto .cameo{width:100%;height:100%;display:block}
.pphoto.noring{padding:0;background:none;box-shadow:none}
/* ---- titres de section, regles, boutons de l'app ---- */
.wh{display:flex;align-items:flex-end;gap:12px;margin:0;padding:0 0 6px;border-bottom:1px solid var(--outline);font:600 23px/1.2 var(--serif);color:var(--on)}
.wh.md{font-size:19px;line-height:1.25}
.wh.xl{font:400 29px/1.15 var(--serif)}
.wh .tr{margin-left:auto;font:400 13px/1.2 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums}
.wh .g{margin-left:auto;color:var(--onv)}
.caps{font:700 13px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--onv)}
.caps.s11{font-size:11px;letter-spacing:.11em}
.muted{color:var(--onv)}
.small{font-size:13px;line-height:1.35;color:var(--onv)}
.fig{font:700 15px/1 var(--sans);font-variant-numeric:tabular-nums}
.fb{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:0 24px;border:0;border-radius:16px;background:#EAECF0;color:var(--ink);font:700 15px/1.2 var(--sans);cursor:pointer;transition:transform .12s var(--enter),opacity .24s;text-align:center;position:relative;overflow:hidden}
.fb:active{transform:scale(.97)}.fb[disabled]{opacity:.45;pointer-events:none}
a.fb:hover{text-decoration:none}
.ob{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:0 20px;border:1px solid var(--outline);border-radius:14px;background:transparent;color:var(--on);font:700 15px/1.2 var(--sans);cursor:pointer;transition:transform .12s var(--enter)}
.ob:active{transform:scale(.97)}.ob[disabled]{opacity:.45;pointer-events:none}
.ob.danger{color:var(--error);border-color:rgba(253,120,101,.5)}
.tb{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;border:0;background:none;color:var(--secondary);font:700 13px/1.2 var(--sans);cursor:pointer;border-radius:12px}
.tb:hover{background:rgba(136,163,232,.08);text-decoration:none}
.tb.danger{color:var(--error)}
.tb[disabled]{opacity:.45;pointer-events:none}
.inote{font-size:13px;line-height:1.4;color:var(--error);margin:8px 0 0;min-height:0}
.inote.ok{color:var(--onv)}
.ledger{border-top:1px solid var(--outlineV)}
.lrow{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--outlineV);color:var(--on);text-align:left;width:100%;background:none;border-left:0;border-right:0;border-top:0;font:inherit;cursor:default}
a.lrow,button.lrow{cursor:pointer}
a.lrow:hover{text-decoration:none}
.lrow .lead{width:56px;display:flex;justify-content:center;flex:none}
.lrow .body{flex:1;min-width:0}
.lrow .body b{display:block;font:400 15px/1.3 var(--sans);color:var(--on)}
.lrow .body b.done{color:var(--onv)}
.lrow .body small{display:block;font:400 13px/1.35 var(--sans);color:var(--onv);margin-top:2px}
.lrow .tail{flex:none;display:flex;align-items:center;gap:6px;color:var(--onv)}
.lrow .tail b{font:700 15px/1 var(--sans);color:var(--on);font-variant-numeric:tabular-nums}
.lrow .tail b.gold{color:var(--gold)}
.goldrule{height:4px;border-radius:4px;background:var(--sHighest);overflow:hidden}
.goldrule i{display:block;height:100%;border-radius:4px;background:var(--gold);min-width:4px;transition:width .48s var(--enter)}
.goldrule.quiet i{background:var(--holoQ)}
.ruled{display:flex;gap:22px;border-bottom:1px solid var(--outlineV);overflow-x:auto;scrollbar-width:none}
.ruled::-webkit-scrollbar{display:none}
.ruled a,.ruled button{flex:none;min-height:48px;padding:12px 2px 10px;border:0;border-bottom:2px solid transparent;background:none;color:var(--onv);font:400 15px/1.2 var(--sans);cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-bottom:-1px}
.ruled [aria-current],.ruled [aria-pressed=true]{color:var(--on);font-weight:700;border-bottom-color:var(--on)}
.ruled a:hover{text-decoration:none}
.wordstrip{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none}
.wordstrip::-webkit-scrollbar{display:none}
.wordstrip button{flex:none;display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 0;border:0;background:none;color:var(--onv);font:400 16px/1.2 var(--serif);cursor:pointer}
.wordstrip.small button{font:400 13px/1.2 var(--sans)}
.wordstrip button i{display:block;height:1.6px;width:0;background:var(--chrome-gold);transition:width .24s var(--enter)}
.wordstrip button[aria-pressed=true]{color:var(--on);font-weight:700}
.wordstrip button[aria-pressed=true] i{width:22px}
.sq{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}
.sq::before{content:"";flex:none;width:5px;height:5px;margin:9px 0 0 2px;background:var(--on)}
.field{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.field label{font:700 13px/1.2 var(--sans);color:var(--onv)}
.field input,.field select{min-height:48px;padding:0 14px;border-radius:3px;border:1px solid var(--outline);background:var(--night);color:var(--on);font:400 15px/1.2 var(--sans)}
.field input:focus{outline:0;border:2px solid var(--link)}
.field select option{color:var(--ink)}
/* ---- la carte (card_face.dart) ---- */
.card{position:relative;container-type:inline-size;--w:100cqw;--frame:clamp(4px,4.5cqw,8px);--inset:clamp(3px,3.5cqw,6px);--pad:clamp(7px,6.5cqw,16px);--title:clamp(12.5px,9.8cqw,26px);--label:clamp(7.5px,5.2cqw,11px);--mk:clamp(8.5px,6.8cqw,15px);--axis:clamp(15px,13cqw,34px);--rc:var(--r-common)}
.card.large{--frame:10px;--inset:8px}
.card.Uncommon{--rc:var(--r-uncommon)}.card.Rare{--rc:var(--r-rare)}.card.Epic{--rc:var(--r-epic)}.card.Legendary{--rc:var(--r-legendary)}
.card .fr{position:relative;border-radius:16px;padding:var(--frame);background:var(--chrome-silver);box-shadow:inset 0 0 0 1px rgba(53,60,70,.25),0 2px 6px rgba(27,37,51,.1);transition:transform .24s var(--enter),box-shadow .24s var(--enter)}
.card.large .fr{box-shadow:inset 0 0 0 1px rgba(53,60,70,.25),0 14px 28px rgba(27,37,51,.2)}
.card.Common .fr{background:linear-gradient(135deg,#E4E6EA 0%,#C3C8CF 28%,#D9DCE1 50%,#B4BAC3 74%,#D2D6DC 100%)}
.card.Uncommon .fr{background:linear-gradient(135deg,#B6D8CF 0%,#90BDB4 28%,#B1D3CA 50%,#7CAFA7 74%,#A8CFC7 100%)}
.card.Rare .fr{background:linear-gradient(135deg,#B0BCE9 0%,#8D9BD9 28%,#A9B6E5 50%,#7B8ECB 74%,#A1AFE0 100%)}
.card.Epic .fr{background:linear-gradient(135deg,#C0A9E3 0%,#A290CC 28%,#BBA6DE 50%,#9382BF 74%,#B6A2DB 100%)}
.card.Legendary .fr{background:var(--chrome-gold)}
.card .fr::before{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;background:var(--holo);background-size:240% 240%;background-position:calc(50% + var(--lx,-.35) * 35%) calc(50% + var(--ly,-.55) * 35%);opacity:0;mix-blend-mode:soft-light;transition:background-position .4s var(--enter)}
.card.Rare .fr::before{opacity:.5}.card.Epic .fr::before{opacity:.62}.card.Legendary .fr::before{opacity:.3}
.card.Rare .fr::after,.card.Epic .fr::after,.card.Legendary .fr::after{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.55) 38%,transparent 52%);opacity:.9}
.card.Legendary .fr{background-image:repeating-linear-gradient(135deg,rgba(122,82,0,0) 0,rgba(122,82,0,.2) 1.3px,rgba(122,82,0,0) 2.6px),var(--chrome-gold)}
.card .en{position:absolute;inset:calc(var(--frame) * .58);border-radius:calc(16px - var(--frame) * .4);border:1px solid var(--rc);pointer-events:none;opacity:.95;display:none}
.card .en2{inset:calc(var(--frame) * .22);border-width:.6px;border-radius:calc(16px - var(--frame) * .15);opacity:.8}
.card.Uncommon .en,.card.Rare .en,.card.Epic .en,.card.Epic .en2,.card.Legendary .en,.card.Legendary .en2{display:block}
.card.Legendary .en,.card.Legendary .en2{border-color:var(--goldInk)}
.card .in{position:relative;border-radius:max(4px,calc(16px - var(--frame) * .7));background:var(--paper);box-shadow:0 0 0 1.2px rgba(255,255,255,.9),inset 0 0 0 .8px rgba(53,60,70,.2);display:flex;flex-direction:column;overflow:hidden;z-index:1}
.card .in::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 55% at calc(50% + var(--lx,-.35) * 55%) calc(50% + var(--ly,-.55) * 55%),rgba(255,255,255,var(--glare,.1)),rgba(255,255,255,0) 70%)}
.card.Uncommon{--glare:.125}.card.Rare{--glare:.15}.card.Epic{--glare:.175}.card.Legendary{--glare:.2}
.card .ph{position:relative;margin:var(--inset) var(--inset) 0;border-radius:max(3px,calc(16px - var(--frame) * .7 - var(--inset) * .6));overflow:hidden;background:var(--tint);aspect-ratio:3/4;flex:1 1 auto;box-shadow:inset 0 0 0 .8px rgba(32,33,34,.18)}
.card.Uncommon .ph,.card.Rare .ph{box-shadow:inset 0 0 0 1.2px color-mix(in srgb,var(--rc) 75%,transparent)}
.card.Epic .ph{box-shadow:inset 0 0 0 1.6px color-mix(in srgb,var(--rc) 75%,transparent)}
.card.Legendary .ph{box-shadow:inset 0 0 0 1.6px var(--gold)}
.card .ph img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.card .ph .wm{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:300 26px/1 var(--mark);color:var(--ruleGrey)}
.card .pfoil{position:absolute;inset:0;pointer-events:none;display:none;background:linear-gradient(115deg,rgba(143,216,255,.22),rgba(175,192,255,.22) 18%,rgba(221,184,255,.22) 34%,rgba(255,185,221,.22) 50%,rgba(255,217,176,.22) 66%,rgba(255,241,166,.22) 80%,rgba(185,243,214,.22)),linear-gradient(100deg,transparent 30%,rgba(255,255,255,.3) 45%,transparent 60%)}
.card.Epic .pfoil,.card.Legendary .pfoil{display:block}
.card.Legendary .pfoil{background:radial-gradient(70% 70% at 25% 20%,rgba(255,211,107,.2),rgba(255,211,107,0) 70%),linear-gradient(115deg,rgba(143,216,255,.14),rgba(175,192,255,.14) 18%,rgba(221,184,255,.14) 34%,rgba(255,185,221,.14) 50%,rgba(255,217,176,.14) 66%,rgba(255,241,166,.14) 80%,rgba(185,243,214,.14)),linear-gradient(100deg,transparent 30%,rgba(255,255,255,.3) 45%,transparent 60%)}
.card .pfoil svg{position:absolute;inset:0;width:100%;height:100%}
.card .axes{position:absolute;left:calc(var(--pad) * .5);top:calc(var(--pad) * .5);display:flex;gap:calc(var(--axis) * .2);z-index:2}
.ax{position:relative;width:var(--axis);height:var(--axis);display:inline-block;flex:none}
.ax svg{width:100%;height:100%;display:block;position:relative;z-index:1}
.ax::after{content:"";position:absolute;inset:4%;border-radius:50%;border:1.5px solid transparent;background:conic-gradient(from calc(var(--lx,-.35) * 80deg - 120deg),#8FD8FF,#AFC0FF,#DDB8FF,#FFB9DD,#FFD9B0,#FFF1A6,#B9F3D6,#8FD8FF) border-box;-webkit-mask:linear-gradient(#000,#000) padding-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;z-index:2;pointer-events:none}
.ax.k::after{border-radius:0;clip-path:polygon(29.3% 0,70.7% 0,100% 29.3%,100% 70.7%,70.7% 100%,29.3% 100%,0 70.7%,0 29.3%)}
.card.Rare .ax::after,.card.Epic .ax::after,.card.Legendary .ax::after{opacity:.75}
.card .cnt{position:absolute;left:0;bottom:0;z-index:2;padding:calc(var(--label) * .3) calc(var(--label) * .75);border-radius:0 calc(var(--label) * .8) 0 0;background:rgba(32,33,34,.86);color:var(--paper);font:700 calc(var(--label) + 1.5px)/1.15 var(--sans);font-variant-numeric:tabular-nums}
.card .credit{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:calc(var(--label) * 1.8) 7px 5px 6px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.35));color:rgba(255,255,255,.92);font:600 calc(var(--label) * .82)/1.2 var(--sans);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 3px rgba(0,0,0,.6);display:none}
.card.large .credit{display:block}
.card .ribbon{--rw:clamp(9px,8.5cqw,22px);position:absolute;top:0;right:calc(var(--pad) * .55);z-index:3;width:var(--rw);height:calc(var(--rw) * 1.9);background:linear-gradient(180deg,rgba(0,0,0,.2) 0 28%,transparent 28%),linear-gradient(90deg,#6FB8E8 0,#8E9BF2 33%,#B98BE6 66%,#E48DBE 100%) 0 0/20% 85% no-repeat,var(--link);clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - var(--rw) * .42),0 100%);filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.4));display:flex;align-items:center;justify-content:center;padding:calc(var(--rw) * .28) 0 calc(var(--rw) * .42) calc(var(--rw) * .2);box-sizing:border-box}
.card .ribbon span{color:rgba(255,255,255,.95);font:400 calc(var(--rw) * .3)/1 var(--sans);letter-spacing:0;white-space:nowrap}
@container (max-width:210px){.card .ribbon{align-items:center}.card .ribbon span{writing-mode:vertical-rl;font-size:calc(var(--rw) * .6);letter-spacing:.02em}}
.card .ti{padding:calc(var(--pad) * .6) var(--pad) calc(var(--pad) * .78)}
.card h3{margin:0;font:600 var(--title)/1.08 var(--serif);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:balance}
.card .rule{margin:calc(var(--pad) * .38) 0 calc(var(--pad) * .45);height:.8px;background:var(--ruleGrey)}
.card.large .rule{height:1px}
.card.Uncommon .rule,.card.Rare .rule{height:1.12px;background:var(--rc)}
.card.large.Uncommon .rule,.card.large.Rare .rule{height:1.4px}
.card.Epic .rule,.card.Legendary .rule{height:auto;background:none;border-top:1.3px solid var(--rc);border-bottom:.65px solid var(--rc);padding-top:1px}
.card.large.Epic .rule,.card.large.Legendary .rule{border-top-width:1.6px;border-bottom-width:.8px;padding-top:1.2px}
.card.Legendary .rule{border-top-color:var(--gold);border-bottom-color:var(--goldInk)}
.card .st{display:flex;align-items:center;gap:calc(var(--mk) * .45);min-height:calc(var(--label) * 1.75)}
.card .st .rm{flex:none;height:var(--mk);width:auto}
.card .st .rn{font:700 var(--label)/1 var(--sans);letter-spacing:.9px;text-transform:uppercase;color:var(--rc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;flex:0 1 auto;min-width:0}
@container (min-width:160px){.card .st .rn{display:block}}
.card.large .st .rn{display:block}
.card .st .sp{flex:1 0 0;min-width:0}
.card .st .atk,.card .st .def{display:inline-flex;align-items:baseline;gap:.18em;white-space:nowrap;flex:none}
.card .st .atk{margin-left:auto}
.card .st .def{margin-left:calc(var(--pad) * .4)}
.card .st .atk i,.card .st .def i{font:700 var(--label)/1 var(--sans);letter-spacing:.5px;color:var(--inkSoft);font-style:normal}
.card .st .atk b,.card .st .def b{font:700 calc(var(--label) * 1.75)/1 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}
.card .spk{position:absolute;z-index:2;width:calc(var(--frame) * 1.1);height:calc(var(--frame) * 1.1);background:#F1E8FF;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);display:none}
.card.Epic .spk.tl,.card.Epic .spk.tr,.card.Legendary .spk{display:block}
.card.Legendary .spk{background:#fff;width:calc(var(--frame) * 1.4);height:calc(var(--frame) * 1.4)}
.card .spk.tl{left:calc(var(--frame) * .3);top:calc(var(--frame) * .3)}.card .spk.tr{right:calc(var(--frame) * .3);top:calc(var(--frame) * .3)}.card .spk.bl{left:calc(var(--frame) * .3);bottom:calc(var(--frame) * .3)}.card .spk.br{right:calc(var(--frame) * .3);bottom:calc(var(--frame) * .3)}
.card a.cover{position:absolute;inset:0;z-index:4;border-radius:16px}
.card a.cover:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}
.card.locked .in{filter:grayscale(1) brightness(.4)}
.card.press:active .fr{transform:scale(.97)}
/* une petite carte serre ses chiffres, comme le FittedBox de l'app */
@container (max-width:130px){.card .st{gap:calc(var(--mk) * .25)}.card .st .atk i,.card .st .def i{letter-spacing:.1px;font-size:calc(var(--label) * .85)}.card .st .def{margin-left:calc(var(--pad) * .2)}.card .st .atk b,.card .st .def b{font-size:calc(var(--label) * 1.35)}}
.card .st.fit{transform-origin:100% 50%;display:flex}

/* le dos d'une carte (holo.dart CardBack) */
.cback{position:relative;container-type:inline-size;aspect-ratio:.68;border-radius:16px;padding:clamp(4px,4.5cqw,10px);background:linear-gradient(135deg,#B0BCE9 0%,#8D9BD9 28%,#A9B6E5 50%,#7B8ECB 74%,#A1AFE0 100%);box-shadow:inset 0 0 0 1px rgba(53,60,70,.25),0 3cqw 8cqw rgba(27,37,51,.14);box-sizing:border-box}
.cback.Uncommon{background:linear-gradient(135deg,#B6D8CF 0%,#90BDB4 28%,#B1D3CA 50%,#7CAFA7 74%,#A8CFC7 100%)}
.cback.Epic{background:linear-gradient(135deg,#C0A9E3 0%,#A290CC 28%,#BBA6DE 50%,#9382BF 74%,#B6A2DB 100%)}
.cback.Common{background:linear-gradient(135deg,#E4E6EA 0%,#C3C8CF 28%,#D9DCE1 50%,#B4BAC3 74%,#D2D6DC 100%)}
.cback::before{content:"";position:absolute;inset:0;border-radius:16px;background:var(--holo);background-size:220% 220%;opacity:.45;mix-blend-mode:soft-light;pointer-events:none}
.cback>span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:max(4px,calc(16px - 4.5cqw * .7));background:var(--paper);box-shadow:0 0 0 1.2px rgba(255,255,255,.9),inset 0 0 0 .8px rgba(53,60,70,.2);font:300 calc(50cqw * .656)/1 var(--mark);color:var(--ink);position:relative;overflow:hidden}
.cback>span::before{content:"";position:absolute;inset:0;background:var(--holo);opacity:.14;mix-blend-mode:normal;pointer-events:none}
.cback>span::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 55% at 32% 22%,rgba(255,255,255,.16),rgba(255,255,255,0) 70%);pointer-events:none}
.cback .mk2{position:absolute;bottom:8cqw;width:clamp(22px,20cqw,40px);height:clamp(22px,20cqw,40px);border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font:700 clamp(14px,12cqw,24px)/1 var(--sans)}
/* la petite carte photo (battle_ui.dart _MiniCard) : cadre, photo, les axes */
.mini{position:relative;container-type:inline-size;border-radius:12px;padding:4px;background:var(--chrome-silver);box-shadow:inset 0 0 0 1px rgba(53,60,70,.25);box-sizing:border-box;aspect-ratio:.68;overflow:hidden}
.mini.Common{background:linear-gradient(135deg,#E4E6EA 0%,#C3C8CF 28%,#D9DCE1 50%,#B4BAC3 74%,#D2D6DC 100%)}
.mini.Uncommon{background:linear-gradient(135deg,#B6D8CF 0%,#90BDB4 28%,#B1D3CA 50%,#7CAFA7 74%,#A8CFC7 100%)}
.mini.Rare{background:linear-gradient(135deg,#B0BCE9 0%,#8D9BD9 28%,#A9B6E5 50%,#7B8ECB 74%,#A1AFE0 100%)}
.mini.Epic{background:linear-gradient(135deg,#C0A9E3 0%,#A290CC 28%,#BBA6DE 50%,#9382BF 74%,#B6A2DB 100%)}
.mini.Legendary{background:var(--chrome-gold)}
.mini.Rare::before,.mini.Epic::before,.mini.Legendary::before{content:"";position:absolute;inset:0;border-radius:12px;background:var(--holo);background-size:220% 220%;opacity:.45;mix-blend-mode:soft-light;pointer-events:none}
.mini>.photo{position:absolute;inset:4px;border-radius:9px;overflow:hidden;background:var(--tint);display:block}
.mini img{width:100%;height:100%;object-fit:cover;display:block}
.mini .axes{position:absolute;left:4px;top:4px;display:flex;gap:3px}
.mini .ax{width:clamp(14px,19cqw,18px);height:clamp(14px,19cqw,18px)}
@container (max-width:63px){.mini .axes{display:none}}
/* la miniature d'une carte (welcome_quest.dart MiniCard) : cadre 3, papier, photo */
.thumb{position:relative;container-type:inline-size;border-radius:6px;padding:3px;background:var(--chrome-silver);box-shadow:0 3px 6px rgba(0,0,0,.35);box-sizing:border-box;aspect-ratio:.68;transform:rotate(-.05rad)}
.thumb.Common{background:linear-gradient(135deg,#E4E6EA 0%,#C3C8CF 28%,#D9DCE1 50%,#B4BAC3 74%,#D2D6DC 100%)}
.thumb.Uncommon{background:linear-gradient(135deg,#B6D8CF 0%,#90BDB4 28%,#B1D3CA 50%,#7CAFA7 74%,#A8CFC7 100%)}
.thumb.Rare{background:linear-gradient(135deg,#B0BCE9 0%,#8D9BD9 28%,#A9B6E5 50%,#7B8ECB 74%,#A1AFE0 100%)}
.thumb.Epic{background:linear-gradient(135deg,#C0A9E3 0%,#A290CC 28%,#BBA6DE 50%,#9382BF 74%,#B6A2DB 100%)}
.thumb.Legendary{background:var(--chrome-gold)}
.thumb>.photo{display:block;width:100%;height:100%;border-radius:4px;background:var(--paper);padding:2px 2px 8px;box-sizing:border-box}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;border-radius:2px}
/* ---- la marque de rarete (svg de da.py) ---- */
.rm{display:inline-block;vertical-align:middle}
/* ---- PACKS : la scene (pack_stock.dart PackScene) ---- */
.pscene{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - var(--bar) - 40px - var(--tabs) - 44px - 48px);padding:24px 0}
.pscene .aura{position:absolute;left:50%;top:50%;width:min(118vw,620px);aspect-ratio:1;transform:translate(-50%,-56%);border-radius:50%;pointer-events:none;opacity:.3;transition:opacity .48s;-webkit-mask:radial-gradient(circle,#000 0,rgba(0,0,0,.55) 45%,transparent 72%);mask:radial-gradient(circle,#000 0,rgba(0,0,0,.55) 45%,transparent 72%)}
.pscene.ready .aura{opacity:.62}
.pscene .aura::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(46,197,255,.34),rgba(110,139,255,.34),rgba(176,123,255,.34),rgba(255,111,195,.34),rgba(95,224,198,.34),rgba(46,197,255,.34),rgba(110,139,255,.34),rgba(176,123,255,.34),rgba(255,111,195,.34),rgba(95,224,198,.34),rgba(46,197,255,.34));animation:spin 60s linear infinite}
.pscene.still .aura::before{animation:none}
.pscene .aura::after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 3deg,rgba(255,255,255,.07) 0 2.6deg,transparent 2.6deg 20deg),radial-gradient(circle,rgba(11,15,25,.45) 0,rgba(11,15,25,0) 62%)}
@keyframes spin{to{transform:rotate(360deg)}}
.pouch{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;width:calc(224px * var(--s,1) + 80px);height:calc(298px * var(--s,1) + 60px);transition:transform .12s var(--enter);border:0;background:none;padding:0;outline:none}
.pouch:active{transform:scale(.96)}
.pouch:focus-visible .sleeve.main{outline:3px solid var(--secondary);outline-offset:8px}
.pouch.shake{animation:shake .45s}
@keyframes shake{20%{transform:rotate(-3deg)}40%{transform:rotate(3deg)}60%{transform:rotate(-2deg)}80%{transform:rotate(2deg)}}
.sleeve{position:absolute;left:50%;top:50%;width:224px;height:298px;margin:-149px 0 0 -112px;transform:scale(var(--s,1)) translate(var(--dx,0px),var(--dy,0px)) rotate(var(--rot,0deg));transform-origin:50% 50%}
.sleeve .glow{position:absolute;left:50%;top:50%;width:430px;height:430px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(110,139,255,var(--gs,.3)) 0,rgba(110,139,255,calc(var(--gs,.3) * .35)) 45%,rgba(110,139,255,0) 100%);pointer-events:none}
.sleeve.gold .glow{background:radial-gradient(circle,rgba(226,188,85,var(--gs,.3)) 0,rgba(226,188,85,calc(var(--gs,.3) * .35)) 45%,rgba(226,188,85,0) 100%)}
.sleeve .shape{position:absolute;inset:0;clip-path:path("M0 3.5 L3.5 0 L7 3.5 L10.5 0 L14 3.5 L17.5 0 L21 3.5 L24.5 0 L28 3.5 L31.5 0 L35 3.5 L38.5 0 L42 3.5 L45.5 0 L49 3.5 L52.5 0 L56 3.5 L59.5 0 L63 3.5 L66.5 0 L70 3.5 L73.5 0 L77 3.5 L80.5 0 L84 3.5 L87.5 0 L91 3.5 L94.5 0 L98 3.5 L101.5 0 L105 3.5 L108.5 0 L112 3.5 L115.5 0 L119 3.5 L122.5 0 L126 3.5 L129.5 0 L133 3.5 L136.5 0 L140 3.5 L143.5 0 L147 3.5 L150.5 0 L154 3.5 L157.5 0 L161 3.5 L164.5 0 L168 3.5 L171.5 0 L175 3.5 L178.5 0 L182 3.5 L185.5 0 L189 3.5 L192.5 0 L196 3.5 L199.5 0 L203 3.5 L206.5 0 L210 3.5 L213.5 0 L217 3.5 L220.5 0 L224 3.5 L224 294.5 L220.5 298 L217 294.5 L213.5 298 L210 294.5 L206.5 298 L203 294.5 L199.5 298 L196 294.5 L192.5 298 L189 294.5 L185.5 298 L182 294.5 L178.5 298 L175 294.5 L171.5 298 L168 294.5 L164.5 298 L161 294.5 L157.5 298 L154 294.5 L150.5 298 L147 294.5 L143.5 298 L140 294.5 L136.5 298 L133 294.5 L129.5 298 L126 294.5 L122.5 298 L119 294.5 L115.5 298 L112 294.5 L108.5 298 L105 294.5 L101.5 298 L98 294.5 L94.5 298 L91 294.5 L87.5 298 L84 294.5 L80.5 298 L77 294.5 L73.5 298 L70 294.5 L66.5 298 L63 294.5 L59.5 298 L56 294.5 L52.5 298 L49 294.5 L45.5 298 L42 294.5 L38.5 298 L35 294.5 L31.5 298 L28 294.5 L24.5 298 L21 294.5 L17.5 298 L14 294.5 L10.5 298 L7 294.5 L3.5 298 L0 294.5 Z");filter:none}
.sleeve .foil{position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.16) 0 .6px,transparent .6px 2.8px),linear-gradient(100deg,transparent 28%,rgba(255,255,255,.6) 40%,transparent 52%),radial-gradient(60% 55% at 32% 22%,rgba(255,255,255,.45),rgba(255,255,255,0) 70%),linear-gradient(118deg,rgba(143,216,255,.55),rgba(175,192,255,.55) 14%,rgba(221,184,255,.55) 28%,rgba(255,185,221,.55) 42%,rgba(255,217,176,.55) 56%,rgba(255,241,166,.55) 70%,rgba(185,243,214,.55) 84%,rgba(143,216,255,.55)),linear-gradient(135deg,#F7F9FC 0%,#CBD1DA 28%,#FDFEFF 50%,#B4BBC6 74%,#EDF0F4 100%)}
.sleeve.gold .foil{background:repeating-linear-gradient(135deg,rgba(255,255,255,.16) 0 .6px,transparent .6px 2.8px),linear-gradient(100deg,transparent 28%,rgba(255,255,255,.6) 40%,transparent 52%),radial-gradient(60% 55% at 32% 22%,rgba(255,255,255,.45),rgba(255,255,255,0) 70%),linear-gradient(118deg,rgba(143,216,255,.22),rgba(175,192,255,.22) 14%,rgba(221,184,255,.22) 28%,rgba(255,185,221,.22) 42%,rgba(255,217,176,.22) 56%,rgba(255,241,166,.22) 70%,rgba(185,243,214,.22) 84%,rgba(143,216,255,.22)),linear-gradient(135deg,#FFF6D8 0%,#D9B456 28%,#FFFBEA 50%,#C39A35 74%,#F6E3A4 100%)}
.sleeve .seal{position:absolute;left:0;right:0;height:22px;background:repeating-linear-gradient(90deg,rgba(142,150,163,.38) 0 1px,transparent 1px 1.2px,rgba(255,255,255,.7) 1.2px 2.2px,transparent 2.2px 3.5px)}
.sleeve .seal.t{top:0;border-bottom:1px solid rgba(111,119,132,.45)}.sleeve .seal.b{bottom:0;border-top:1px solid rgba(111,119,132,.45)}
.sleeve .dots{position:absolute;left:5px;right:4px;top:26px;height:2px;background-image:radial-gradient(circle at 1px 1px,rgba(32,33,34,.35) .9px,transparent 1.2px);background-size:7px 2px;background-repeat:repeat-x}
.sleeve .tear{position:absolute;left:0;top:27px;height:0;width:calc(var(--cut,0) * 100%);pointer-events:none}
.sleeve .tear::before{content:"";position:absolute;left:0;right:0;top:-4.5px;height:9px;background:linear-gradient(90deg,#2EC5FF,#8C7BFF,#FF6FC3,#FFB341,#5FE0C6);filter:blur(4px);opacity:.9}
.sleeve .tear::after{content:"";position:absolute;left:0;right:0;top:-1.1px;height:2.2px;background:rgba(32,33,34,.85);box-shadow:0 -1.6px 0 #fff}
.sleeve .tear i{position:absolute;right:-10px;top:-10px;width:20px;height:20px;background:#fff;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);filter:drop-shadow(0 0 6px rgba(176,123,255,.9))}
.sleeve .print{position:absolute;inset:34px 20px;display:flex;flex-direction:column;align-items:center}
.sleeve .print .wn{font:400 27px/1 var(--serif);color:var(--ink)}
.sleeve .print .tag{margin-top:5px;font:700 8.5px/1.2 var(--sans);letter-spacing:1.6px;color:var(--inkSoft);text-transform:uppercase}
.sleeve .fan{position:relative;flex:1;width:150px;display:flex;align-items:center;justify-content:center}
.sleeve .fan .cback{position:absolute;left:50%;top:50%;width:82px;margin:-52px 0 0 -41px}
.sleeve .fan .cback.l{transform:translate(-24px,6px) rotate(-.2rad)}.sleeve .fan .cback.r{transform:translate(24px,6px) rotate(.2rad)}
.sleeve .fan .cback.f{width:90px;margin:-63px 0 0 -45px;z-index:1}
.sleeve .print .band{padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.86);border:1px solid #fff;font:700 9px/1.2 var(--sans);letter-spacing:1.6px;color:var(--ink);white-space:nowrap}
.sleeve .print .band.first{color:var(--r-epic)}.sleeve .print .band.gold{color:var(--goldInk)}
.sleeve .veil{position:absolute;inset:0;background:rgba(16,20,24,.12);pointer-events:none}
.sleeve.dim .veil{background:rgba(16,20,24,.36)}
.sleeve .sheen{position:absolute;inset:-40% 0;width:26%;left:-45%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(46,197,255,.18) 30%,rgba(255,255,255,.62) 50%,rgba(255,111,195,.18) 70%,rgba(255,255,255,0));transform:skewX(-23deg);animation:sheen 5.6s linear infinite;pointer-events:none}
@keyframes sheen{0%{left:-45%;opacity:0}5%{opacity:1}35%{opacity:1}40%{left:145%;opacity:0}100%{left:145%;opacity:0}}
.sleeve.main{z-index:2;animation:sway 6s ease-in-out infinite alternate}
@keyframes sway{from{transform:scale(var(--s,1)) rotate(-1.7deg)}to{transform:scale(var(--s,1)) rotate(.3deg)}}
.sleeve.main.dim{animation:none}
.sleeve.wait{z-index:1;animation:wait 6s ease-in-out infinite}
.sleeve.wait.w2{animation-delay:-2.2s}
@keyframes wait{0%{transform:scale(calc(var(--s,1) * .96)) translate(var(--dx),calc(var(--dy) + 2px)) rotate(var(--rot))}50%{transform:scale(calc(var(--s,1) * .96)) translate(var(--dx),calc(var(--dy) - 2.6px)) rotate(calc(var(--rot) + 1.2deg))}100%{transform:scale(calc(var(--s,1) * .96)) translate(var(--dx),calc(var(--dy) + 2px)) rotate(var(--rot))}}
.sleeve.flat{position:relative;left:auto;top:auto;margin:0;transform:none;animation:none}
.stock{display:flex;align-items:center;gap:8px;margin-top:8px;justify-content:center}
.stock .slot{width:20px;height:28px;position:relative;flex:none}
.stock .slot svg{width:100%;height:100%;display:block;overflow:visible}
.stock .fig{font:400 13px/1.2 var(--sans);color:var(--on);font-variant-numeric:tabular-nums}
.stock-line{margin-top:8px;text-align:center;font:400 13px/1.25 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums}
.stock-line.on{color:var(--on)}
.pscene .duelline{margin-top:4px}
/* ---- le rituel d'ouverture (pack_reveal.dart _PackRitual) ---- */
.ritual{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:32px}
.ritual .aurasp{position:absolute;left:50%;top:40%;width:min(120vw,700px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;opacity:.8;-webkit-mask:radial-gradient(circle,#000 0,rgba(0,0,0,.5) 50%,transparent 70%);mask:radial-gradient(circle,#000 0,rgba(0,0,0,.5) 50%,transparent 70%);background:conic-gradient(from 0deg,rgba(46,197,255,.3),rgba(110,139,255,.3),rgba(176,123,255,.3),rgba(255,111,195,.3),rgba(95,224,198,.3),rgba(46,197,255,.3),rgba(110,139,255,.3),rgba(176,123,255,.3),rgba(255,111,195,.3),rgba(95,224,198,.3),rgba(46,197,255,.3))}
.ritual h1{font:400 36px/1.08 var(--serif);margin:0 0 8px;color:var(--on)}
.ritual .lead{color:var(--onv);margin:0 0 24px}
.ritual .hold{position:relative;width:320px;height:368px;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.ritual .hold .sleeve{--s:1.1}
.ritual .hold .strip{position:absolute;left:50%;top:50%;width:224px;height:298px;margin:-149px 0 0 -112px;transform:scale(1.1);transform-origin:50% 50%;clip-path:inset(0 -20px calc(298px - 29.7px / 1.1) -20px);transition:transform .62s var(--exit),opacity .62s}
.ritual .hold .rest{clip-path:inset(27px -20px 0 -20px);transition:transform .62s var(--exit),opacity .62s}
.ritual.torn .hold .strip{transform:scale(1.1) translate(100px,-136px) rotate(40deg);opacity:0}
.ritual.torn .hold .rest{transform:scale(1.1) translateY(55px);opacity:0}
.ritual .hint{position:absolute;left:8px;top:calc(50% - 149px * 1.1 + 29.7px - 12px);width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.9);border:1.5px solid rgba(32,33,34,.5);box-shadow:0 3px 8px rgba(0,0,0,.25);animation:finger 1.9s ease-in-out infinite;pointer-events:none}
@keyframes finger{0%{left:48px;opacity:0}10%{opacity:1}75%{left:248px;opacity:1}100%{left:248px;opacity:0}}
.ritual.torn .hint,.ritual.cut .hint{display:none}
.ritual .rise{position:absolute;left:50%;top:calc(50% - 149px * 1.1 + 30px + 29.7px);width:88px;height:129px;margin-left:-44px;opacity:0;transform:translateY(0);transition:transform .7s var(--pop) .25s,opacity .4s .25s}
.ritual.torn .rise{opacity:1;transform:translateY(-124px)}
.ritual .rise .card{position:absolute;inset:0;transform:translate(calc(var(--k) * -2.2px),calc(var(--k) * 2.6px)) rotate(calc(var(--k) * -1.6deg))}
.ritual .burst{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none}
.ritual.torn .burst i{position:absolute;left:0;top:0;width:12px;height:12px;margin:-6px;background:var(--c,#fff);clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);animation:burst .9s var(--enter) forwards;animation-delay:.3s;opacity:0}
@keyframes burst{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--x),var(--y)) scale(.45);opacity:0}}
.ritual .capsl{margin:8px 0 20px;font:700 13px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--on)}
.ritual .fb{max-width:440px}
/* ---- la pile de revelation (pack_reveal.dart _CardPile, _RevealStage) ---- */
.reveal{min-height:100vh;transition:background .6s var(--enter)}
.reveal.Epic{background:#120C22}.reveal.Legendary{background:#0B0906}
.reveal .rglow{position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(55% 55% at 50% 42%,var(--rg,rgba(138,148,166,.08)),rgba(0,0,0,0) 100%);transition:background .6s}
.reveal.Rare .rglow{--rg:rgba(110,139,255,.2)}.reveal.Epic .rglow{--rg:rgba(176,123,255,.3)}.reveal.Legendary .rglow{--rg:rgba(226,188,85,.34)}
.reveal .stars{position:fixed;inset:0;pointer-events:none;z-index:0}
.reveal .stars i{position:absolute;border-radius:50%;background:var(--c,#fff);opacity:0;animation:starOn .5s ease-out forwards}
@keyframes starOn{from{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.8)}to{opacity:var(--a,.6);transform:scale(1)}}
.segs{display:flex;gap:6px;margin:0 0 14px}
.segs i{flex:1;height:4px;border-radius:4px;background:var(--outlineV)}
.segs i.on{background:#EAECF0}
.pile{position:relative;height:clamp(280px,58vh,470px);margin:0 30px 18px;touch-action:none;user-select:none;-webkit-user-select:none}
.pile .pc{position:absolute;left:50%;top:50%;width:min(100%,calc((clamp(280px,58vh,470px) - 18px) * .68));aspect-ratio:.68;transform:translate(-50%,-50%) translate(var(--px,0px),var(--py,0px)) rotate(var(--pr,0deg)) scale(var(--ps,1));transform-origin:50% 50%;will-change:transform}
.pile .pc.under{--px:calc(var(--k) * 3px);--py:calc(var(--k) * 5px);--pr:calc(var(--k) * -1.2deg);--ps:calc(1 - var(--k) * .03);transition:transform .32s var(--enter)}
.pile .pc.top{cursor:grab;z-index:5;animation:land .48s var(--enter) both}
.pile .pc.top.held{cursor:grabbing;transition:none}
.pile .pc.top.home{transition:transform .5s var(--pop)}
.pile .pc.top.fly{transition:transform .26s ease-out,opacity .26s ease-out;opacity:0}
.pile .pc.top .card{animation:popin var(--pt,.42s) ease-out both}
@keyframes land{from{opacity:0;transform:translate(-50%,-50%) translateY(-26px)}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}
@keyframes popin{50%{transform:scale(var(--pp,1.018))}}
.pile .pc.top .sweep{position:absolute;inset:0;border-radius:16px;overflow:hidden;pointer-events:none;z-index:6;display:none}
.pile .pc.top.foil .sweep{display:block}
.pile .pc.top .sweep::before{content:"";position:absolute;top:-20%;bottom:-20%;width:32%;left:-60%;background:linear-gradient(90deg,rgba(255,255,255,0),var(--sw,rgba(255,255,255,.55)),rgba(255,255,255,0));transform:skewX(-20deg);animation:cardsweep .9s var(--enter) .1s forwards}
.pile .pc.top.Legendary .sweep::before{--sw:rgba(255,231,163,.7)}
@keyframes cardsweep{to{left:160%}}
.pile .burst{position:absolute;left:50%;top:46%;width:0;height:0;pointer-events:none;z-index:4}
.pile .burst i{position:absolute;left:0;top:0;width:10px;height:10px;margin:-5px;background:var(--c,#fff);clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);animation:burst 1s var(--enter) forwards;opacity:0}
.pile .rays{position:absolute;left:50%;top:46%;width:150%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;z-index:1;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.14) 0 5deg,transparent 5deg 30deg);-webkit-mask:radial-gradient(circle,#000 0,transparent 65%);mask:radial-gradient(circle,#000 0,transparent 65%);animation:rays 2.4s var(--enter) forwards}
@keyframes rays{from{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.6)}30%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(28deg) scale(1.1)}}
.pull{display:inline-flex;align-items:center;justify-content:center;padding:1.2px;border-radius:999px;background:var(--ruleGrey)}
.pull.foil{background:linear-gradient(90deg,#8FD8FF,#AFC0FF,#DDB8FF,#FFB9DD,#FFD9B0,#FFF1A6,#B9F3D6,#8FD8FF)}
.pull span{display:block;padding:7px 14px;border-radius:999px;background:var(--paper);font:700 13px/1.2 var(--sans);letter-spacing:.8px;color:var(--rc,var(--r-common));text-align:center}
.pulled{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;min-height:120px;animation:fadein .24s var(--enter)}
@keyframes fadein{from{opacity:0}}
.pulled .reads{font:400 13px/1.3 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums}
.pulled .excerpt{margin-top:6px;font:400 15px/1.5 var(--sans);color:var(--on)}
.pulled .swipe{font:400 13px/1.3 var(--sans);color:var(--onv);margin-top:4px}
.reveal .acts{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:20px}
.reveal .acts .links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 4px}
/* ---- le contenu du pack (pack_reveal.dart _PackSummary) ---- */
.summary .best{margin-top:10px;border-radius:24px;padding:28px 24px 24px;display:flex;justify-content:center;position:relative;overflow:hidden;background:var(--deep)}
.summary .best::before{content:"";position:absolute;inset:-20%;background:conic-gradient(from 0deg,rgba(46,197,255,.34),rgba(110,139,255,.34),rgba(176,123,255,.34),rgba(255,111,195,.34),rgba(95,224,198,.34),rgba(46,197,255,.34),rgba(110,139,255,.34),rgba(176,123,255,.34),rgba(255,111,195,.34),rgba(95,224,198,.34),rgba(46,197,255,.34))}
.summary .best::after{content:"";position:absolute;inset:0;background:repeating-conic-gradient(from 3deg,rgba(255,255,255,.07) 0 2.5deg,transparent 2.5deg 20deg),radial-gradient(circle at 50% 50%,var(--tint2,rgba(0,0,0,0)) 0,rgba(0,0,0,0) 75%),radial-gradient(circle at 50% 50%,rgba(11,15,25,.45) 0,rgba(11,15,25,0) 62%)}
.summary .best.Rare{--tint2:rgba(51,102,204,.22)}.summary .best.Epic{--tint2:rgba(123,76,196,.22)}.summary .best.Legendary{--tint2:rgba(151,106,0,.22)}
.summary .best .card{position:relative;z-index:1;width:min(100%,250px);animation:landup .6s var(--pop) both}
@keyframes landup{from{opacity:0;transform:translateY(40px) scale(.92)}}
.summary .rest{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 12px;margin-top:20px}
.summary .rest .card{animation:landup .5s var(--pop) both;animation-delay:calc(var(--k) * 80ms)}
.summary .xpchip{display:inline-block;margin-top:12px;padding:6px 12px;border-radius:999px;background:#EAECF0;color:var(--ink);font:700 13px/1.2 var(--sans)}
.summary .lvl{margin-top:16px;padding:14px 16px;border-radius:16px;background:var(--sLow);border:1px solid var(--outlineV);font:600 19px/1.25 var(--serif)}
.foot{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:28px var(--m) max(8px,env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(18,24,38,0),rgba(18,24,38,.92) 30%,var(--night))}
.foot .in{max-width:620px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:4px}
.foot .team{display:flex;gap:10px;justify-content:center;margin-bottom:12px}
.foot .team .mini{width:52px}
.summary .screen{padding-bottom:160px}
/* ---- COLLECTION (main.dart CollectionScreen) ---- */
.bbar{display:flex;align-items:center;height:44px;gap:0}
.bbar h1{font:600 19px/1.25 var(--serif);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
.bbar .prog{margin-left:12px;font:400 13px/1.2 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums;white-space:nowrap;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.bbar .bg{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:22px;color:var(--on);background:none;border:0;cursor:pointer;flex:none;transition:transform .12s var(--enter)}
.bbar .bg:active{transform:scale(.92)}
.bbar .bg:hover{background:rgba(236,239,244,.06);text-decoration:none}
.bbar details{position:relative;flex:none}
.bbar summary{list-style:none;display:flex;align-items:center;gap:0;height:44px;padding-left:8px;cursor:pointer;font:700 13px/1.2 var(--sans);color:var(--on);user-select:none}
.bbar summary::-webkit-details-marker{display:none}
.bbar summary .g{color:var(--onv)}
.bbar summary.r-Common{color:var(--r-common)}.bbar summary.r-Uncommon{color:#5FD0B0}.bbar summary.r-Rare{color:#8FB0FF}.bbar summary.r-Epic{color:#C3A2FF}.bbar summary.r-Legendary{color:var(--gold)}
.bbar .menu{position:absolute;right:0;top:44px;z-index:30;min-width:200px;padding:8px 0;border-radius:4px;background:var(--sHigh);box-shadow:0 8px 24px rgba(0,0,0,.5)}
.bbar .menu button{display:block;width:100%;height:40px;padding:0 16px;border:0;background:none;color:var(--on);font:400 15px/1 var(--sans);text-align:left;cursor:pointer}
.bbar .menu button:hover{background:rgba(236,239,244,.06)}
.bbar .menu button.on{font-weight:700}
.bbar .menu hr{border:0;border-top:1px solid var(--outlineV);margin:8px 0}
.bbar .menu button.r-Uncommon{color:#5FD0B0}.bbar .menu button.r-Rare{color:#8FB0FF}.bbar .menu button.r-Epic{color:#C3A2FF}.bbar .menu button.r-Legendary{color:var(--gold)}.bbar .menu button.r-Common{color:var(--r-common)}
.bbar .search{flex:1;display:flex;align-items:center;gap:0}
.bbar .search input{flex:1;min-width:0;height:40px;padding:0 12px;border-radius:3px;border:1px solid var(--outline);background:var(--night);color:var(--on);font:400 15px/1.2 var(--sans)}
.bbar .search input:focus{outline:0;border:2px solid var(--link)}
.themes{display:flex;gap:0;margin:0 calc(-1 * var(--m) + 8px);padding:0 calc(var(--m) - 8px);border-bottom:1px solid var(--outlineV);overflow-x:auto;scrollbar-width:none}
.themes::-webkit-scrollbar{display:none}
.themes button{flex:none;display:flex;flex-direction:column;align-items:stretch;padding:0 8px;border:0;background:none;color:var(--onv);font:400 15px/1.2 var(--sans);cursor:pointer;border-radius:8px}
.themes button>span{display:flex;align-items:center;gap:6px;height:34px;white-space:nowrap}
.themes button .ax{width:18px;height:18px;opacity:.72}
.themes button i{display:block;height:2.5px;background:transparent;margin:0 -8px}
.themes button[aria-pressed=true]{color:var(--on);font-weight:700}
.themes button[aria-pressed=true] .ax{opacity:1}
.themes button[aria-pressed=true] i{background:var(--on)}
.binder{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:12px 8px;padding:12px 0 28px;margin:0 -8px}
.binder .card{animation:arrive .48s var(--enter) both}
@keyframes arrive{from{opacity:0;transform:translateY(12px)}}
.emptyfan{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 32px 24px;gap:10px}
.emptyfan .fanw{position:relative;width:180px;height:122px;margin-bottom:12px}
.emptyfan .fanw .cback{position:absolute;left:50%;top:50%;width:70px;margin:-49px 0 0 -35px}
.emptyfan .fanw .cback.l{transform:translate(-46px,8px) rotate(-.26rad)}.emptyfan .fanw .cback.r{transform:translate(46px,8px) rotate(.26rad)}.emptyfan .fanw .cback.f{width:78px;margin:-55px 0 0 -39px;z-index:1}
.emptyfan h2{font:600 23px/1.2 var(--serif);margin:0;border:0;padding:0}
.emptyfan p{color:var(--onv);margin:0}
.emptyfan .fb{width:auto;margin-top:14px}
/* ---- la fiche d'une carte (main.dart DetailScreen) ---- */
.detail .held{position:relative;margin:0 calc(-1 * var(--m));padding:24px 32px 28px;display:flex;justify-content:center;overflow:hidden;background:var(--deep)}
.detail .held::before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 0deg,rgba(46,197,255,.34),rgba(110,139,255,.34),rgba(176,123,255,.34),rgba(255,111,195,.34),rgba(95,224,198,.34),rgba(46,197,255,.34),rgba(110,139,255,.34),rgba(176,123,255,.34),rgba(255,111,195,.34),rgba(95,224,198,.34),rgba(46,197,255,.34));opacity:var(--au,.6)}
.detail .held.Rare,.detail .held.Epic,.detail .held.Legendary{--au:1}
.detail .held::after{content:"";position:absolute;inset:0;background:repeating-conic-gradient(from 3deg,rgba(255,255,255,.07) 0 2.5deg,transparent 2.5deg 20deg),radial-gradient(circle at 50% 50%,var(--tint2,rgba(0,0,0,0)) 0,rgba(0,0,0,0) 75%),radial-gradient(circle at 50% 50%,rgba(11,15,25,.45) 0,rgba(11,15,25,0) 62%)}
.detail .held.Rare{--tint2:rgba(51,102,204,.22)}.detail .held.Epic{--tint2:rgba(123,76,196,.22)}.detail .held.Legendary{--tint2:rgba(151,106,0,.22)}
.detail .held .card{position:relative;z-index:1;width:min(100%,300px)}
.infobox{border:.8px solid var(--outline);border-radius:6px;background:var(--sLow);overflow:hidden;margin-top:24px}
.infobox .acc{height:4px;background:var(--rc,var(--r-common))}
.infobox .row{display:flex;gap:10px;padding:9px 14px;border-top:.6px solid var(--outlineV);font-size:13px;line-height:1.4}
.infobox .row:first-of-type{border-top:0}
.infobox .row b{flex:0 0 132px;font-weight:700}
.infobox .row .v{flex:1;min-width:0}
.infobox .row .v .big{font:700 19px/1.2 var(--sans);font-variant-numeric:tabular-nums}
.infobox .row .v .big+small{font-size:13px;color:var(--onv);margin-left:8px}
.infobox .row .v .rar{font-weight:700;color:var(--rc2)}
.infobox .axv{display:inline-flex;align-items:center;gap:8px}.infobox .axv .ax{width:22px;height:22px}
.detail .desc{margin-top:18px;font:400 17px/1.5 var(--sans)}
.detail .notes{margin-top:14px;font-size:13px;line-height:1.5}
.detail .sell{margin-top:24px;padding:16px;border:1px solid var(--outlineV);border-radius:16px;background:var(--sLow)}
.detail .sell h3{margin:0 0 4px;font:600 19px/1.25 var(--serif)}
.detail .sell .row2{display:flex;gap:12px;align-items:flex-end;margin-top:8px}
.detail .sell .field{flex:1;margin:0}
.credits{margin-top:32px}
.credits p{font-size:13px;line-height:1.5;color:var(--onv);margin:6px 0 0;white-space:pre-line}
/* ---- COMBATS : l'arene (arena.dart) ---- */
.ahead{display:flex;align-items:center;gap:16px;padding:4px 0;color:var(--on);text-decoration:none;border-radius:16px}
a.ahead:hover{text-decoration:none}
.rankframe{position:relative;width:88px;height:88px;flex:none;display:flex;align-items:center;justify-content:center}
.rankframe.big{width:168px;height:168px}
.rankframe svg.rf{position:absolute;inset:0;width:100%;height:100%}
.rankframe .pphoto{position:relative;z-index:1}
.ahead .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ahead .elo{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.ahead .elo b{font:400 29px/1.1 var(--serif);font-variant-numeric:tabular-nums}
.ahead .tier{white-space:nowrap}
.fit{white-space:nowrap;display:inline-block;max-width:100%;vertical-align:bottom}
.ahead .cap{font:400 13px/1.35 var(--sans);color:var(--onv)}
.ahead>.g{color:var(--onv);width:20px;height:20px}
.tier.unranked{color:#A2A9B1}.tier.bronze{color:#E3AC7C}.tier.silver{color:#D5DAE1}.tier.gold{color:var(--gold)}.tier.prism{color:#AFC0FF}
.hand{position:relative;margin:24px auto 0;max-width:360px;cursor:pointer;transition:transform .12s var(--enter)}
.hand:active{transform:scale(.985)}
.hand .floor{position:absolute;inset:0;pointer-events:none}
.hand .floor::before{content:"";position:absolute;left:-5%;top:-10%;width:110%;height:110%;border-radius:50%;background:radial-gradient(ellipse at center,var(--hg,rgba(138,148,166,.2)),rgba(0,0,0,0) 70%)}
.hand .floor svg{position:absolute;left:0;bottom:0;width:100%;height:24px;overflow:visible}
.hand .slots{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-bottom:24px}
.hand .slots>*{aspect-ratio:.68;animation:dealin .5s var(--enter) both;animation-delay:calc(var(--k) * 80ms)}
@keyframes dealin{from{opacity:0;transform:translateY(24px)}}
.hand .mini{box-shadow:0 14px 28px rgba(27,37,51,.25)}
.ghost{position:relative;border-radius:16px;border:1px solid rgba(226,188,85,.4);background:rgba(255,255,255,.03)}
.ghost::before{content:"";position:absolute;left:10%;top:10%;width:80%;height:55%;border:1px dashed rgba(255,255,255,.18)}
.ghost b{position:absolute;left:10%;top:10%;width:80%;height:55%;display:flex;align-items:center;justify-content:center;font:400 22cqw var(--serif);color:rgba(226,188,85,.55)}
.ghost i{position:absolute;left:10%;width:80%;height:1px;background:rgba(255,255,255,.12)}
.ghost i.a{top:75%}.ghost i.b{top:82%;width:48%}
.ghost{container-type:inline-size}
.deckline{display:flex;align-items:baseline;gap:8px;margin-top:0}
.deckline .n{font:400 19px/1.2 var(--serif);font-variant-numeric:tabular-nums}
.deckline .tb{margin-left:auto;font:700 13px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.abtn{position:relative;display:block;width:100%;height:64px;border:0;border-radius:16px;padding:0 48px;background:linear-gradient(180deg,#fff,#F3F1EA);color:var(--ink);cursor:pointer;box-shadow:0 6px 14px rgba(226,188,85,.22);transition:transform .12s var(--enter),opacity .24s;overflow:hidden}
.abtn.sub{height:72px}
.abtn:active{transform:scale(.97)}
.abtn[disabled]{opacity:.45;pointer-events:none;box-shadow:none}
.abtn::before{content:"";position:absolute;inset:4px;border-radius:12px;border:1.4px solid transparent;background:var(--chrome-gold) border-box;-webkit-mask:linear-gradient(#000,#000) padding-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.abtn::after{content:"";position:absolute;inset:7px;border-radius:9px;border:.7px solid rgba(151,106,0,.45);pointer-events:none}
.abtn .loz{position:absolute;top:50%;width:7px;height:10px;margin-top:-5px;background:rgba(151,106,0,.85);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.abtn .loz.l{left:18.5px}.abtn .loz.r{right:18.5px}
.abtn .loz::after{content:"";position:absolute;top:50%;width:11px;height:1px;background:rgba(151,106,0,.5);margin-top:-.5px}
.abtn .loz.l::after{left:11px}.abtn .loz.r::after{right:11px}
.abtn b{display:block;font:600 19px/1.2 var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.abtn small{display:block;margin-top:2px;font:700 13px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--goldInk)}
.abtn .shine{position:absolute;top:0;bottom:0;width:120px;left:-40%;background:linear-gradient(100deg,rgba(175,192,255,0),rgba(175,192,255,.33),rgba(255,185,221,.4),rgba(255,217,176,.33),rgba(255,217,176,0));animation:plateshine 1.4s ease-in-out .6s forwards;pointer-events:none}
@keyframes plateshine{to{left:140%}}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
.mode{display:flex;flex-direction:column;align-items:stretch;padding:16px;border-radius:16px;border:.8px solid var(--outlineV);background:var(--lift);color:var(--on);text-align:left;cursor:pointer;font:inherit;transition:transform .12s var(--enter),opacity .24s;min-height:160px}
.mode:active{transform:scale(.97)}
.mode[disabled],.mode.off{opacity:.45;pointer-events:none}
a.mode:hover{text-decoration:none}
.mode .art{height:64px;display:flex;align-items:center;justify-content:space-between}
.mode .art>.g{color:var(--onv);width:18px;height:18px}
.mode b{display:block;margin-top:12px;font:400 19px/1.2 var(--serif)}
.mode small{display:block;margin-top:auto;padding-top:4px;font:700 13px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--onv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.backfan{position:relative;height:62px;width:72px}
.backfan .cback{position:absolute;width:30px;top:4px}
.backfan .cback:nth-child(1){left:8px;transform:rotate(-4.3deg);top:6.4px}.backfan .cback:nth-child(2){left:26.6px}.backfan .cback:nth-child(3){left:45.2px;transform:rotate(4.3deg);top:6.4px}
.friendsart{position:relative;width:104px;height:44px}
.friendsart i{position:absolute;top:0;width:44px;height:44px;border-radius:50%;border:1px dashed rgba(226,188,85,.45)}
.friendsart i:nth-child(1){left:0}.friendsart i:nth-child(2){left:30px}.friendsart i:nth-child(3){left:60px}
.friendsart .plus{position:absolute;left:52px;top:22px;width:12px;height:12px;margin:-6px}
.friendsart .plus::before,.friendsart .plus::after{content:"";position:absolute;background:rgba(226,188,85,.85);border-radius:1px}
.friendsart .plus::before{left:0;right:0;top:5.2px;height:1.6px}.friendsart .plus::after{top:0;bottom:0;left:5.2px;width:1.6px}
.rulesline{display:flex;align-items:center;gap:8px;min-height:48px;font:400 13px/1.4 var(--sans);color:var(--onv);cursor:pointer;background:none;border:0;width:100%;text-align:left;padding:0}
.rulesline span{flex:1}.rulesline b{color:var(--secondary)}.rulesline .g{color:var(--secondary);width:20px;height:20px;transition:transform .24s var(--enter)}
.rulesline[aria-expanded=true] .g{transform:rotate(180deg)}
.rulesbody{display:none;font:400 13px/1.4 var(--sans);color:var(--onv)}
.rulesbody p{margin:0 0 8px}
.rulesline[aria-expanded=true]+.rulesbody{display:block}
.bstats{display:flex;margin-top:24px}
.bstats div{flex:1;padding:12px 6px;border-top:1px solid var(--outlineV);border-bottom:1px solid var(--outlineV);text-align:center}
.bstats b{display:block;font:700 29px/1.15 var(--sans);font-variant-numeric:tabular-nums}
.bstats span{display:block;margin-top:2px;font:400 13px/1.3 var(--sans);color:var(--onv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* l'adversaire sur sa scene (battle_ui.dart _OpponentStage) */
.ostage{position:relative;padding:24px 16px 16px;margin-top:16px;border-radius:24px;overflow:hidden;background:var(--deep)}
.ostage::before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 0deg,rgba(46,197,255,.2),rgba(110,139,255,.2),rgba(176,123,255,.2),rgba(255,111,195,.2),rgba(95,224,198,.2),rgba(46,197,255,.2),rgba(110,139,255,.2),rgba(176,123,255,.2),rgba(255,111,195,.2),rgba(95,224,198,.2),rgba(46,197,255,.2))}
.ostage::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(11,15,25,.45) 0,rgba(11,15,25,0) 62%)}
.ostage>*{position:relative;z-index:1}
.ostage .bf6{position:relative;height:120px;display:flex;justify-content:center}
.ostage .bf6 .cback{position:absolute;width:56px;top:10px}
.ostage .name{text-align:center;font:600 23px/1.2 var(--serif);margin-top:12px}
.ostage .quip{position:relative;margin:12px auto 0;max-width:320px;padding:10px 14px;border-radius:14px;background:var(--paper);color:var(--ink);font:400 15px/1.4 var(--sans);text-align:center}
.ostage .quip::before{content:"";position:absolute;left:50%;top:-8px;margin-left:-8px;border:8px solid transparent;border-top:0;border-bottom-color:var(--paper)}
.ostage .acc{text-align:center;margin-top:10px;font:400 13px/1.3 var(--sans);color:var(--onv)}
/* ---- le duel (battle_ui.dart DuelScreen, _Arena, _Fighter) ---- */
.arena2{display:flex;align-items:flex-start;gap:6px;position:relative}
.fighter{flex:1;min-width:0;display:flex;flex-direction:column}
.fighter .nm{display:flex;align-items:center;gap:6px;min-height:20px}
.fighter .nm b{font:700 13px/1.2 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 3 auto}
.fighter .nm .r{font:400 13px/1.2 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums}
.fighter .nm .left{margin-left:auto;width:13px;height:17px;border-radius:2.5px;background:var(--secondary);color:var(--paper);font:700 13px/17px var(--sans);text-align:center;font-variant-numeric:tabular-nums;flex:none}
.fighter.foe .nm .left{background:var(--tertiary)}
.fighter .nm .flame{display:inline-flex;align-items:center;gap:3px;font:700 12px/1 var(--sans);color:#FFB341;flex:0 2 auto;white-space:nowrap}
.fighter .cw{position:relative;margin:6px auto 0;width:100%;max-width:var(--cw,170px)}
.fighter .cw .card{animation:slidein .32s var(--enter) both}
.fighter.foe .cw .card{animation-name:slideinr}
@keyframes slidein{from{opacity:0;transform:translateX(-25%)}}
@keyframes slideinr{from{opacity:0;transform:translateX(25%)}}
.fighter .cw.hit .card{animation:hitshake .48s ease-out var(--d,0ms) both}
@keyframes hitshake{20%{transform:translate(-6px,2px)}40%{transform:translate(5px,-2px)}60%{transform:translate(-3px,1px)}80%{transform:translate(2px,0)}}
.fighter .cw.lunge .card{animation:lunge .36s var(--enter) var(--d,0ms) both}
.fighter.foe .cw.lunge .card{animation-name:lungel}
@keyframes lunge{0%{transform:translateX(0)}40%{transform:translateX(16%)}100%{transform:translateX(0)}}
@keyframes lungel{0%{transform:translateX(0)}40%{transform:translateX(-16%)}100%{transform:translateX(0)}}
.fighter .cw.ko .card .in{animation:fallen .96s ease-out var(--d,0ms) forwards}
@keyframes fallen{to{filter:grayscale(.85)}}
.fighter .dmg{position:absolute;top:8px;right:8px;z-index:5;font:700 23px/1 var(--sans);color:var(--paper);text-shadow:0 1px 2px rgba(0,0,0,.6),0 0 10px rgba(0,0,0,.4);animation:pop .9s var(--pop) var(--d,0ms) both;font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:flex-end}
.fighter .dmg.crit{color:#FFE08A}
.fighter .dmg small{font:700 10px/1 var(--sans);letter-spacing:1.2px;margin-top:3px}
@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.7)}30%{opacity:1;transform:translateY(0) scale(1.15)}70%{transform:translateY(-2px) scale(1)}100%{opacity:1}}
.fighter .kost{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;pointer-events:none}
.fighter .kost span{padding:6px 12px;border:3px solid var(--red);border-radius:6px;color:var(--red);font:700 23px/1 var(--sans);letter-spacing:2px;background:rgba(255,255,255,.85);transform:rotate(-12deg);animation:stamp .5s var(--pop) var(--d,0ms) both}
@keyframes stamp{from{opacity:0;transform:rotate(-12deg) scale(2.2)}to{opacity:1;transform:rotate(-12deg) scale(1)}}
.fighter .bubble{position:absolute;left:-4px;right:-4px;bottom:10px;z-index:5;padding:8px 10px;border-radius:12px;background:var(--paper);color:var(--ink);font:400 12px/1.3 var(--sans);text-align:center;animation:fadein .3s var(--enter) var(--d,200ms) both;box-shadow:0 4px 12px rgba(0,0,0,.3)}
.fighter .hpr{display:flex;align-items:center;gap:6px;margin-top:6px}
.fighter .hp{flex:1;height:8px;border-radius:8px;background:var(--sHighest);overflow:hidden;position:relative}
.fighter .hp i{position:absolute;left:0;top:0;bottom:0;display:block;border-radius:8px}
.fighter .hp .ghost{background:rgba(215,51,51,.38);transition:width .54s cubic-bezier(.65,0,.35,1) calc(var(--d,0ms) + 360ms);border:0}
.fighter .hp .front{background:var(--secondary);transition:width .24s var(--enter) var(--d,0ms)}
.fighter.foe .hp .front{background:var(--tertiary)}
.fighter .hp .front.low{background:color-mix(in srgb,var(--secondary) 45%,var(--red))}
.fighter.foe .hp .front.low{background:color-mix(in srgb,var(--tertiary) 45%,var(--red))}
.fighter .hpn{font:700 13px/1 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.vs{flex:none;align-self:flex-start;margin-top:calc(22px + var(--cw,170px) / .68 / 2 - 16px);padding:1.6px;border-radius:50%;background:conic-gradient(#8FD8FF,#AFC0FF,#DDB8FF,#FFB9DD,#FFD9B0,#FFF1A6,#B9F3D6,#8FD8FF)}
.vs span{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--paper);font:700 13px/1 var(--sans)}
.lastcard{position:absolute;left:0;right:0;top:-8px;display:flex;justify-content:center;z-index:7}
.lastcard span{padding:3px 8px;border-radius:6px;background:var(--red);color:var(--paper);font:700 10px/1.2 var(--sans);letter-spacing:1.2px}
.timer{display:flex;align-items:center;gap:12px;margin:12px 0 16px}
.timer .bar{flex:1;height:8px;border-radius:6px;background:var(--sHighest);overflow:hidden}
.timer .bar i{display:block;height:100%;width:100%;background:#EAECF0;transform-origin:0 50%;will-change:transform}
.timer .bar i.combo{background:var(--holo)}
.timer .bar i.warn{background:#F2A989}.timer .bar i.danger{background:var(--error)}
.timer b{width:56px;text-align:right;font:700 15px/1 var(--sans);font-variant-numeric:tabular-nums;transform-origin:100% 50%}
.timer b.warn{color:var(--error);animation:beat 1s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.vignette{position:fixed;inset:0;pointer-events:none;z-index:30;box-shadow:inset 0 0 80px rgba(215,51,51,0);animation:vig 1s ease-in-out infinite}
@keyframes vig{50%{box-shadow:inset 0 0 90px rgba(215,51,51,var(--v,.35))}}
.prompt{font:600 23px/1.2 var(--serif);margin:0}
.clue{margin:12px 0 0;padding:4px 0 4px 16px;border-left:3px solid var(--outline);font:400 15px/1.45 var(--sans)}
.qphoto{position:relative;margin-top:12px;height:var(--qh,160px);border-radius:14px;overflow:hidden;border:1px solid var(--outlineV)}
.qphoto img{width:100%;height:100%;object-fit:cover;display:block}
.qphoto .t{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;background:linear-gradient(180deg,rgba(16,20,24,0),rgba(16,20,24,.8));font:400 19px/1.2 var(--serif);color:var(--paper);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.answers{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.ans{display:flex;align-items:center;gap:12px;min-height:56px;padding:14px 16px;border-radius:14px;border:1px solid var(--outlineV);background:var(--sLow);color:var(--on);text-align:left;font:400 15px/1.4 var(--sans);cursor:pointer;transition:transform .12s var(--enter)}
.ans:active{transform:scale(.97)}
.ans[disabled]{cursor:default}
.ans .l{width:28px;flex:none;font:700 19px/1 var(--sans)}
.ans .l .g{width:22px;height:22px}
.ans span{flex:1}
.ans.long{padding:10px 16px;font-size:13.5px;line-height:1.3;font-weight:500}
.ans.short span{font-size:17px;font-weight:600}
.ans.sel span{font-weight:700}
.ans.right{background:#0F2E27;border:2px solid #3FBF9B;color:#9EE8D1}.ans.right span{font-weight:700}.ans.right .l{color:#3FBF9B}
.ans.wrong{background:var(--errC);border:2px solid var(--error);color:var(--onErrC);animation:wrongshake .64s}
.ans.wrong .l{color:var(--error)}
@keyframes wrongshake{15%{transform:translateX(-9px)}30%{transform:translateX(8px)}45%{transform:translateX(-6px)}60%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.pics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.pic{position:relative;padding:4px;border-radius:14px;border:1px solid var(--outlineV);background:var(--sLow);color:var(--on);text-align:left;cursor:pointer;font:400 13px/1.3 var(--sans);transition:transform .12s var(--enter)}
.pic:active{transform:scale(.97)}
.pic .im{position:relative;aspect-ratio:1.15;border-radius:10px;overflow:hidden;background:var(--tint)}
.pic .im img{width:100%;height:100%;object-fit:cover;display:block}
.pic .im .l{position:absolute;left:6px;top:6px;width:26px;height:26px;border-radius:50%;background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;font:700 13px/1 var(--sans)}
.pic .t{display:block;padding:6px 6px 4px}
.pic.right{border:3px solid #3FBF9B}.pic.right .im .l{background:#3FBF9B;color:var(--paper)}.pic.right .t{font-weight:700}
.pic.wrong{border:3px solid var(--error)}.pic.wrong .im .l{background:var(--error);color:var(--paper)}
.outcome{margin-top:4px}
.outcome p{display:flex;gap:12px;align-items:flex-start;margin:0 0 8px;font:400 15px/1.5 var(--sans)}
.outcome p::before{content:"";flex:none;width:6px;height:6px;margin:8px 0 0 2px;background:var(--on)}
.outcome p.mine{font-weight:700}.outcome p.mine::before{background:#EAECF0}.outcome p.foe::before{background:var(--tertiary)}
.expl{margin:8px 0 0;font:400 15px/1.5 var(--sans)}
.nextb{position:relative;overflow:hidden}
.nextb i{position:absolute;left:0;bottom:0;height:3px;background:rgba(32,33,34,.55);animation:count var(--cd,2.4s) linear forwards;width:0}
@keyframes count{to{width:100%}}
/* le resultat (battle_ui.dart _DuelResult) */
.result{text-align:center;display:flex;flex-direction:column;align-items:center;padding-top:16px}
.result .emblem{width:176px;height:152px;animation:landup .6s var(--pop) both}
.result .emblem .g{width:100%;height:100%}
.result .emblem.win{color:#fff}
.result h1{font:400 36px/1.08 var(--serif);margin:24px 0 0;animation:fadein .5s .2s both}
.result .starsrow{display:flex;gap:8px;height:56px;align-items:center;justify-content:center;margin-top:12px}
.result .starsrow .g{width:40px;height:40px;color:var(--gold);animation:starin .5s var(--pop) both}
.result .starsrow .g:nth-child(2){animation-delay:.15s}.result .starsrow .g:nth-child(3){animation-delay:.3s}
.result .starsrow .g.off{color:var(--outlineV)}
@keyframes starin{from{opacity:0;transform:scale(.3) rotate(-30deg)}}
.result .sum{margin-top:12px;animation:fadein .5s .3s both}
.result .sum p{margin:4px 0 0}
.result .earn{display:flex;gap:32px;justify-content:center;align-items:center;margin-top:24px;font:600 23px/1.2 var(--serif);font-variant-numeric:tabular-nums;animation:fadein .5s .8s both}
.result .earn .cf{display:inline-flex;align-items:center;gap:6px;font:700 23px/1 var(--sans)}
.result .rating{display:flex;align-items:baseline;gap:12px;justify-content:center;margin-top:12px;font:400 15px/1 var(--sans);color:var(--onv);animation:fadein .5s 1s both}
.result .rating b{font:700 23px/1 var(--sans);color:var(--on);font-variant-numeric:tabular-nums}
.result .rating .up{color:var(--green)}.result .rating .down{color:var(--error)}
.result .xpline{width:100%;margin-top:16px;animation:fadein .5s .9s both}
.result .xpline .goldrule{margin:6px 0}
.result .xpline small{display:flex;justify-content:space-between;font:400 13px/1.3 var(--sans);color:var(--onv)}
.result .note{margin-top:16px;color:var(--onv);font-size:15px}
.result .btns{width:100%;margin-top:32px;display:flex;flex-direction:column;gap:12px}
.result.win .wreath{position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(55% 55% at 50% 32%,rgba(226,188,85,.22),rgba(226,188,85,0) 100%)}
.leaves{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.leaves i{position:absolute;top:-20px;width:10px;height:5px;border-radius:50%;background:var(--c,#DDB8FF);animation:leaffall var(--t,2.6s) linear var(--d,0s) forwards;opacity:.9}
@keyframes leaffall{to{transform:translateY(110vh) rotate(540deg);opacity:0}}
/* ---- le classement (battle_ui.dart LeaderboardScreen) ---- */
.rank .lrow{padding:12px 0}
.rank .n{width:34px;flex:none;font:400 15px/1.2 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums}
.rank .pphoto{width:36px;height:36px}
.rank .body b{display:flex;align-items:center;gap:8px;font-weight:700}
.rank .lrow.me .body b,.rank .lrow.me .tail b{color:var(--secondary)}
/* ---- PROFIL (profile_page.dart) ---- */
.phero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.phero .edit{position:absolute;right:0;top:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:0;background:none;cursor:pointer;color:var(--on)}
.phero .edit span{width:40px;height:40px;border-radius:50%;background:var(--lift);border:1px solid var(--outlineV);display:flex;align-items:center;justify-content:center}
.phero .edit .g{width:20px;height:20px}
.lvlseal{position:absolute;left:50%;bottom:4px;width:40px;height:40px;margin-left:-20px;border-radius:50%;background:var(--night);display:flex;align-items:center;justify-content:center;z-index:2}
.lvlseal span{width:35px;height:35px;border-radius:50%;background:linear-gradient(135deg,#fff,#E9E4D8);box-shadow:inset 0 0 0 1px var(--night),inset 0 0 0 2.2px var(--ink),inset 0 0 0 3.2px transparent,inset 0 0 0 3.9px rgba(32,33,34,.9);display:flex;align-items:center;justify-content:center;font:700 17.6px/1 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}
.lvlseal.gold span{background:linear-gradient(135deg,#F7E09A,#E2BC55,#CB9530);color:#5C3D00;box-shadow:inset 0 0 0 1px var(--night),inset 0 0 0 2.2px #5C3D00,inset 0 0 0 3.2px transparent,inset 0 0 0 3.9px rgba(92,61,0,.9)}
.phero .nm{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;max-width:100%}
.phero .nm b{font:400 29px/1.2 var(--serif);white-space:nowrap;max-width:100%}
.phero .ttl{margin-top:4px}
.phero .ttl .t{color:var(--tc,#A2A9B1)}
.phero .xp{width:192px;margin-top:16px}
.phero .xp small{display:block;margin-top:8px;font:400 13px/1.3 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums}
.phero .bio{margin-top:16px;line-height:1.5}
.showcase{position:relative;margin-top:24px}
.showcase .fanw{position:relative;height:var(--fh,300px)}
.showcase .fanw::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,var(--hg,rgba(138,148,166,.16)),rgba(0,0,0,0) 70%)}
.showcase .fanw>*{position:absolute;top:24px;width:var(--sw);transform-origin:50% 50%;animation:fanin .96s var(--enter) both}
.showcase .fanw>.c0{left:50%;top:0;width:var(--cw);margin-left:calc(var(--cw) / -2);z-index:2}
.showcase .fanw>.c1{left:calc(50% - var(--spread));margin-left:calc(var(--sw) / -2);transform:rotate(-5.7deg)}
.showcase .fanw>.c2{left:calc(50% + var(--spread));margin-left:calc(var(--sw) / -2);transform:rotate(5.7deg)}
@keyframes fanin{from{transform:translate(0,0) rotate(0)}}
.showcase .fanw .card{box-shadow:0 14px 28px rgba(27,37,51,.25);border-radius:16px;cursor:pointer}
.showcase .fanw .card.standin .fr{opacity:1}
.showcase p{margin:16px 0 0;text-align:center;font:400 13px/1.35 var(--sans);color:var(--onv)}
.showcase .ghost{aspect-ratio:.68}
.apanel{margin-top:16px}
.apanel .head{display:flex;align-items:center;gap:16px}
.apanel .shield{width:72px;height:81px;flex:none}
.apanel .shield svg{width:100%;height:100%}
.apanel .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.apanel .txt .elo{color:var(--onv)}.apanel .txt .elo b{font:400 29px/1.2 var(--serif);color:var(--on);font-variant-numeric:tabular-nums}
.figs{display:flex;margin-top:24px}
.figs div{flex:1;text-align:center;border-left:1px solid var(--outlineV);padding:0 4px}
.figs div:first-child{border-left:0}
.figs b{display:block;font:600 23px/1.2 var(--serif);font-variant-numeric:tabular-nums}
.figs small{display:block;margin-top:4px;font:700 11px/1.2 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--onv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strongest{display:flex;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--outlineV);border-bottom:1px solid var(--outlineV);margin-top:16px;color:var(--on)}
a.strongest:hover{text-decoration:none}
.strongest .lead{width:56px;display:flex;justify-content:center;flex:none}
.strongest .lead .thumb{width:40px}
.strongest .body{flex:1;min-width:0}
.strongest .body b{display:block;font:700 15px/1.3 var(--sans);margin-top:4px}
.strongest .body small{display:block;font:700 13px/1.3 var(--sans);font-variant-numeric:tabular-nums}
.strongest>.g{color:var(--onv)}
.shelf .count{display:flex;align-items:baseline;gap:8px;margin-top:16px}
.shelf .count b{font:400 29px/1.2 var(--serif);font-variant-numeric:tabular-nums}
.shelf .count span{color:var(--onv);font-variant-numeric:tabular-nums}
.shelf .goldrule{margin-top:8px;margin-bottom:16px}
.world{display:flex;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--outlineV);color:var(--on);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;font:inherit;text-align:left;cursor:pointer}
.world:first-of-type{border-top:0}
.world .dial{position:relative;width:56px;height:56px;flex:none;display:flex;align-items:center;justify-content:center}
.world .dial svg{position:absolute;inset:0;width:100%;height:100%}
.world .dial .ax{width:40px;height:40px;position:relative;z-index:1}
.world .body{flex:1;min-width:0}
.world .body b{display:block;font:600 19px/1.2 var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.world .body small{display:block;margin-top:4px;font:400 13px/1.3 var(--sans);color:var(--onv);font-variant-numeric:tabular-nums}
.minifan{position:relative;width:58px;height:48px;flex:none}
.minifan .thumb{position:absolute;top:2px;width:30px;transform:none}
.minifan .thumb.i0{right:0;top:0;z-index:3}.minifan .thumb.i1{right:14px;transform:rotate(-4.6deg);z-index:2}.minifan .thumb.i2{right:28px;transform:rotate(-9.2deg)}
.world>.g{color:var(--onv)}
.plusband{position:relative;margin-top:32px;padding:20px 20px 20px;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,rgba(226,188,85,.16),rgba(226,188,85,.04));border:1px solid rgba(226,188,85,.45)}
.plusband .orn{display:flex;align-items:center;gap:10px;color:var(--gold);font:700 12px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.plusband .orn::before,.plusband .orn::after{content:"";width:8px;height:8px;background:var(--gold);transform:rotate(45deg);flex:none}
.plusband p{margin:12px 0 0;color:var(--onv);font-size:15px;line-height:1.5}
.plusband .fb{margin-top:16px;background:linear-gradient(135deg,#FFF3C4,#E2BC55 45%,#B07A12);color:#2A1E00}
.setlist{margin-top:32px}
.setlist .lrow{cursor:pointer}
/* ---- MARKETPLACE (market_ui.dart) ---- */
.stalls{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:24px 12px;margin-top:16px}
.stall{display:flex;flex-direction:column;gap:8px;text-align:center;color:var(--on);cursor:pointer;transition:transform .12s var(--enter)}
.stall:active{transform:scale(.97)}
a.stall:hover{text-decoration:none}
.ptag{position:relative;height:56px;border-radius:16px;background:linear-gradient(180deg,#fff,#F3F1EA);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0 8px;box-shadow:0 3px 5px rgba(0,0,0,.2)}
.ptag::before{content:"";position:absolute;inset:3px;border-radius:13px;border:1.2px solid transparent;background:var(--chrome-gold) border-box;-webkit-mask:linear-gradient(#000,#000) padding-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.ptag::after{content:"";position:absolute;inset:5.5px;border-radius:10px;border:.6px solid rgba(151,106,0,.4);pointer-events:none}
.ptag .pr{display:inline-flex;align-items:center;gap:4px;font:700 15px/1 var(--sans);font-variant-numeric:tabular-nums}
.ptag .wd{display:inline-flex;align-items:center;gap:3px;font:700 11px/1.2 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--goldInk);white-space:nowrap}
.ptag .wd .g{width:12px;height:12px}
.ptag.sold{background:linear-gradient(180deg,#F2FAF6,#E4F3EC)}
.ptag.sold::before{background:linear-gradient(135deg,#B6D8CF,#90BDB4 28%,#B1D3CA 50%,#7CAFA7 74%,#A8CFC7) border-box}
.ptag.sold .wd{color:var(--green)}
.stall small{font:400 12px/1.2 var(--sans);color:var(--onv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.listing .held{margin-top:0}
.listing .seller{display:flex;align-items:center;gap:12px;margin-top:16px}
.listing .bigtag{height:72px;margin-top:16px}
.listing .bigtag .pr{font-size:23px}
/* ---- le bureau : le rail de l'app sur grand ecran (main.dart Home, wide >= 700) ---- */
@media (min-width:1030px){
 :root{--rail:200px}
 .ftabs{left:calc(var(--m));bottom:auto;top:calc(var(--bar) + 40px);transform:none;width:168px;height:auto;display:flex;flex-direction:column;padding:12px 8px;gap:4px;border-radius:24px}
 .ftabs .lightp{display:none}
 .ftabs a{justify-content:flex-start;gap:12px;height:48px;padding:0 14px;border-radius:14px;font:700 14px/1 var(--sans)}
 .ftabs a[aria-current]{background:linear-gradient(90deg,rgba(46,197,255,.28),rgba(110,139,255,.28),rgba(176,123,255,.28),rgba(255,111,195,.28))}
 .ftabs a span{display:inline}
 .screen{margin-left:max(var(--m),calc(50% - 310px))}
 .screen.wide{margin-left:max(var(--m),calc(50% - 360px))}
 .screen.read{margin-left:max(var(--m),calc(50% - 320px))}
 .screen.gridpage{margin-left:calc(var(--m) + 192px);margin-right:var(--m);max-width:none}
 .screen.gridpage.full{margin-left:var(--m)}
 .topfloat{left:auto;right:var(--m);width:auto;justify-content:flex-end}
 .topfloat .peek{display:none}
 .pscene{min-height:calc(100vh - var(--bar) - 40px - 48px)}
 .pscene .pouch{--s:1.2}
 .binder{--cols:6}
 .stalls{--cols:6}
 .summary .rest{grid-template-columns:repeat(4,1fr)}
 .foot{left:calc(var(--m) + 192px);right:var(--m)}
 .pile{height:470px}
}
@media (max-width:1029px){.ftabs a span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media (max-width:1029px) and (min-width:700px){.binder{--cols:5}.stalls{--cols:5}}
@media (max-width:699px) and (min-width:560px){.binder{--cols:4}.stalls{--cols:4}}
@media (max-width:559px){.binder{--cols:3}.stalls{--cols:3}}
@media (max-width:860px){:root{--m:24px}}
@media (prefers-reduced-motion:reduce){.stage .light::before,.dust i,.pscene .aura::before,.sleeve.main,.sleeve.wait,.sleeve .sheen,.abtn .shine,.ritual .hint{animation:none!important}}
[hidden]{display:none!important}
