/* MemeMaster V10 — loaded last, after refit.css. Scoped additions only. */
:root{--v10-gold:#d8b66a;--v10-mint:#89e6b5;--v10-ruby:#f4769c;--v10-cyan:#75f5dd;--v10-lav:#be9aef;--v10-panel:#1c1727;--v10-raised:#251d32;--v10-line:#382c48}

/* ---------- Cards ---------- */
/* The class slot of the V4/V6 frames sits at x 722–840 / y 898–1016 of 900 × 1200. */
.meme-card.card-v7.card-refit .card-stats.single-power>.role-chip{inset:74.83% auto auto 80.22%!important;width:13.11%!important;height:9.83%!important;padding:0!important;display:grid!important;place-items:center!important}
.meme-card.card-v7.card-refit .role-chip>.mm-role-emblem{width:9.6cqw!important;height:9.6cqw!important;margin:0!important}
/* Secret: solid black frame, golden inscriptions. */
.meme-card.card-refit.rarity-secret .rarity-badge,.meme-card.card-refit.rarity-secret .card-v7-header h3,.meme-card.card-refit.rarity-secret .card-stats>span:first-child,.meme-card.card-refit.rarity-secret.variant-shiny .card-v7-header h3{color:var(--v10-gold)!important}
.meme-card.card-refit.rarity-secret .gold-star{-webkit-text-stroke:.2cqw #d8b66a88!important}
.meme-card.card-refit.rarity-secret .gold-star.earned{color:var(--v10-gold)!important;-webkit-text-stroke:0!important}
.meme-card.card-refit.rarity-secret .role-chip .mm-role-emblem{color:var(--v10-gold)!important}
.meme-card.card-refit.rarity-secret .card-image{background:#000}
/* Archive tiles for cards whose verified image is not in the prototype yet. */
.meme-card.card-v7 .card-placeholder.archive-art,.card-placeholder.archive-art{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:2cqw;background:radial-gradient(circle at 30% 20%,hsl(var(--art-hue) 70% 72% / .55),transparent 55%),linear-gradient(145deg,hsl(var(--art-hue) 45% 28%),hsl(calc(var(--art-hue) + 40) 42% 14%));color:#fff}
.card-placeholder.archive-art b{font:22cqw/1 var(--display);letter-spacing:-.5cqw;text-shadow:0 1.2cqw 0 #0005}
.card-placeholder.archive-art small{font:700 3.6cqw Inter,sans-serif;letter-spacing:.5cqw;text-transform:uppercase;opacity:.82}
.meme-card.variant-shiny .card-placeholder.archive-art{filter:sepia(1) saturate(1.8) hue-rotate(1deg)}
.battle-archive-art{display:grid;place-items:center;width:100%;height:100%;font:28px/1 var(--display);color:#fff;background:linear-gradient(145deg,#4b3a6b,#1d1628)}
/* Shine: grids run no light loops. Hovering or focusing a Legendary+ or Shiny card sends one sweep
   across it; leaving fades the light where it is, then resets it unseen. Transitions only, so no
   card keeps an animation (or a compositing layer) while nobody looks at it. */
.meme-card.card-refit .card-shine,.meme-card.card-refit:is(.rarity-legendary,.rarity-mythic,.rarity-iridescent,.rarity-prismatic,.rarity-celestial,.rarity-diamond,.rarity-secret,.variant-shiny) .card-shine{animation:none!important;opacity:0;transform:translateX(-70%);transition:opacity .4s ease,transform 0s linear .4s}
.meme-card.card-refit:is(.rarity-legendary,.rarity-mythic,.rarity-iridescent,.rarity-prismatic,.rarity-celestial,.rarity-diamond,.rarity-secret,.variant-shiny):is(:hover,:focus-visible) .card-shine{opacity:var(--shine-intensity,.4);transform:translateX(30%);transition:opacity .25s ease,transform 1.3s cubic-bezier(.3,.55,.25,1)}
.meme-card.card-refit.rarity-legendary .card-shine{--shine-intensity:.4}.meme-card.card-refit.rarity-mythic .card-shine{--shine-intensity:.52}.meme-card.card-refit.rarity-iridescent .card-shine{--shine-intensity:.66}.meme-card.card-refit.rarity-prismatic .card-shine{--shine-intensity:.8}.meme-card.card-refit.variant-shiny .card-shine{--shine-intensity:.85}.meme-card.card-refit.rarity-secret .card-shine{--shine-intensity:.6;background:linear-gradient(112deg,transparent 36%,#d8b66a22 44%,#f5e1a6aa 50%,#d8b66a22 56%,transparent 64%)!important}
/* One focused card may keep a slow sweep: the detail view and a fresh reveal. */
:is(.detail-art,.stack-front,.bulk-discovery,.forge-result-card,.tradeup-result-card,.enchant-target) .meme-card.card-refit:is(.rarity-legendary,.rarity-mythic,.rarity-iridescent,.rarity-prismatic,.rarity-celestial,.rarity-diamond,.rarity-secret,.variant-shiny) .card-shine{animation:refit-shine 6.5s linear infinite!important;transition:none}
@media(prefers-reduced-motion:reduce){.meme-card.card-refit .card-shine,.meme-card.card-refit:is(.rarity-legendary,.rarity-mythic,.rarity-iridescent,.rarity-prismatic,.rarity-celestial,.rarity-diamond,.rarity-secret,.variant-shiny) .card-shine,:is(.detail-art,.stack-front,.bulk-discovery,.forge-result-card,.tradeup-result-card,.enchant-target) .meme-card.card-refit .card-shine{animation:none!important;transition:none!important;opacity:0!important}}
.reduce-motion .meme-card.card-refit .card-shine,.reduce-motion .meme-card.card-refit:is(.rarity-legendary,.rarity-mythic,.rarity-iridescent,.rarity-prismatic,.rarity-celestial,.rarity-diamond,.rarity-secret,.variant-shiny) .card-shine,.reduce-motion :is(.detail-art,.stack-front,.bulk-discovery,.forge-result-card,.tradeup-result-card,.enchant-target) .meme-card.card-refit .card-shine{animation:none!important;transition:none!important;opacity:0!important}

/* ---------- Navigation & PRO ---------- */
.nav-counter.nav-fresh{background:var(--v10-ruby);color:#1b0f17;font-weight:800}
.pro-tag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:6px;background:linear-gradient(135deg,#f6e3a1,#c9a14a);color:#3a2708;font:800 10px/1.4 Inter,sans-serif;font-style:normal;letter-spacing:.06em;vertical-align:middle}
.pro-status-card{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid #d8b66a55;background:linear-gradient(135deg,#2c2338,#1f1929);color:var(--text);text-align:left;margin-bottom:8px;cursor:pointer}
.pro-status-card img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 2px 6px #0008)}
.pro-status-card b{display:block;font-size:13px}.pro-status-card small{color:#e8cf8e;font-size:11px}
.avatar-wrap{position:relative;display:inline-flex;flex-shrink:0}.avatar-wrap>.avatar{flex-shrink:0;overflow:hidden}.avatar-pro-crown{position:absolute;right:-6px;top:-8px;width:18px!important;height:18px!important;object-fit:contain!important;border-radius:0!important;filter:drop-shadow(0 1px 2px #000a)}
.local-pill.is-pro{border-color:#d8b66a77;color:#f0d995}
/* The shop is one click away from every page. */
.topbar-shop{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:12px;border:1px solid #be9aef88;background:linear-gradient(135deg,#6f4bb3,#9a6fe0);color:#fff;font:700 13px Inter,sans-serif;cursor:pointer;box-shadow:0 6px 16px #6f4bb355;white-space:nowrap}
.topbar-shop .icon{width:17px;height:17px}
.topbar-shop:hover{filter:brightness(1.1)}.topbar-shop.active{box-shadow:0 0 0 2px #fff4,0 6px 16px #6f4bb355}
@media(max-width:640px){.topbar-shop span{display:none}.topbar-shop{padding:0 10px}}
.demo-badge,.you-badge{display:inline-block;padding:1px 6px;border-radius:5px;background:#ffffff14;color:var(--muted);font:700 9.5px/1.5 Inter,sans-serif;letter-spacing:.06em;vertical-align:middle}
.you-badge{background:#be9aef33;color:#dcc6ff}
.btn.btn-small{padding:6px 10px;font-size:12px;min-height:0}

/* ---------- Random finds: an actionable card in the corner ---------- */
.drop-card{pointer-events:auto;display:flex;align-items:center;gap:14px;width:min(380px,calc(100vw - 32px));padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#2e2340f7,#1f1929f7);border:1px solid #be9aef88;box-shadow:0 18px 40px #000a,0 0 0 1px #be9aef22,0 0 30px #be9aef33;color:var(--text);animation:v10-drop-in .5s cubic-bezier(.2,1.2,.4,1) both}
.drop-card.is-special{border-color:#f3d88c;box-shadow:0 18px 40px #000a,0 0 36px #f3d88c55;background:linear-gradient(135deg,#3a2c14f7,#1f1929f7)}
.drop-card .drop-art{width:74px;height:86px;flex-shrink:0;display:grid;place-items:center}
.drop-card .drop-art .booster-art{width:62px!important;height:84px!important;margin:0!important}
.drop-card .drop-art .case-art,.drop-card .drop-art .packaged-crate{width:84px!important;max-width:84px!important;height:auto!important;aspect-ratio:18/13;margin:0!important;transform:none!important;scale:1.15!important;rotate:none!important;flex-shrink:0}
.drop-card .drop-art img{width:100%;height:100%;object-fit:contain}
.drop-copy{display:grid;gap:3px;min-width:0}
.drop-copy .eyebrow{font-size:10px;color:#dcc6ff}.drop-card.is-special .drop-copy .eyebrow{color:#f3d88c}
.drop-copy b{font:18px/1.15 var(--display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drop-copy small{color:var(--muted);font-size:11px}
.drop-actions{display:flex;gap:8px;margin-top:6px}
@keyframes v10-drop-in{from{opacity:0;transform:translateX(40px) scale(.96)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.drop-card{animation:none}}
.reduce-motion .drop-card{animation:none}
[data-theme="light"] .drop-card{background:#fbf8fe;color:#30253d;border-color:#b79ce0}
[data-theme="light"] .drop-copy .eyebrow{color:#70459f}
/* ---------- Discovery toast (ordinary bonus finds) ---------- */
.toast.discovery-toast{display:flex;align-items:center;gap:12px;min-width:280px;cursor:pointer;text-align:left}
.discovery-toast .discovery-art{width:58px;height:58px;display:grid;place-items:center;flex-shrink:0}
.discovery-toast .discovery-art img{width:100%;height:100%;object-fit:contain}
.discovery-toast .discovery-art .booster-art{width:44px!important;height:58px!important}
.discovery-toast b{display:block}.discovery-toast small{display:block;color:var(--muted)}

/* ---------- Packaging art (V6) ---------- */
.packaged-crate{display:grid;place-items:center;width:100%;aspect-ratio:18/13}
.packaged-crate img,.clan-display-v10 img{width:100%;height:100%;object-fit:contain;display:block}
.clan-display-v10{width:100%;max-width:220px;aspect-ratio:3/4;margin:0 auto}
/* Inventory: slightly larger slots; crates fill theirs (their art has ~25% transparent margins). */
.inventory-grid-v9{grid-template-columns:repeat(auto-fill,minmax(196px,1fr))!important}
.inventory-slot .inventory-art{display:grid!important;place-items:center;width:100%;height:178px!important;overflow:visible}
.inventory-slot.inventory-crate .inventory-art .case-art.packaged-crate{width:100%!important;max-width:176px!important;height:auto!important;aspect-ratio:18/13!important;margin:0 auto!important;transform:none!important;rotate:none!important;scale:1.2!important;transform-origin:50% 62%;flex-shrink:0}
.inventory-slot.inventory-crate .inventory-art .case-art.packaged-crate img{width:100%!important;height:100%!important;object-fit:contain}
.inventory-slot.inventory-display .inventory-art .clan-display-v10{width:128px;max-width:100%}
.inventory-slot .inventory-art .booster-art{height:164px!important;width:auto!important;aspect-ratio:3/4}
.case-art.case-art-v10{max-width:300px;margin:0 auto}
.vault-product .case-art.case-art-v10{max-width:260px}
.inventory-slot.is-fresh{border-color:var(--v10-ruby);box-shadow:0 0 0 1px #f4769c55,0 10px 26px #f4769c1a}
.inventory-new{position:absolute;left:10px;top:9px;z-index:6;padding:2px 7px;border-radius:6px;background:var(--v10-ruby);color:#1b0f17;font:800 10px/1.4 Inter,sans-serif;letter-spacing:.08em}
.vault-product{position:relative}.vault-product.is-fresh{border-color:var(--v10-ruby)}
.mega-crate-v10{max-width:320px;margin:0 auto}

/* ---------- Opening: no frame. The page dims behind the booster; the end fades back to the menu. ---------- */
dialog#modal.opening-v10{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;inset:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:24px 16px!important;overflow:hidden auto!important;color:#f5f2fb}
dialog#modal.opening-v10[open]{display:flex!important;flex-direction:column;align-items:center;justify-content:safe center}
dialog#modal.opening-v10>:not(.modal-close){width:min(1120px,100%);flex-shrink:0}
dialog#modal.opening-v10 .opening-summary{display:flex!important;flex-wrap:wrap;justify-content:center;gap:14px;height:auto!important;margin:18px auto 22px}
dialog#modal.opening-v10 .opening-summary .summary-slot{width:clamp(120px,15vw,180px);flex:none}
dialog#modal.opening-v10 .opening-continue{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;height:auto!important}
dialog#modal.opening-v10 .opening-continue>p{flex-basis:100%;text-align:center;margin:0}
dialog#modal.opening-v10 .opening-continue>.reserve-panel{display:none}
dialog#modal.opening-v10 .opening-continue>.opening-tradeup-ready{flex-basis:auto;max-width:420px}
dialog#modal.opening-v10::backdrop{background:rgba(7,5,12,.86);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:v10-fade-in .35s ease both}
dialog#modal.opening-v10.is-entering>*:not(.modal-close){animation:v10-rise-in .42s cubic-bezier(.2,.8,.3,1) both}
dialog#modal.opening-v10.is-leaving,dialog#modal.opening-v10.is-leaving::backdrop{animation:v10-fade-out .32s ease forwards}
dialog#modal.opening-v10>.modal-close{position:fixed!important;top:18px!important;right:18px!important;z-index:30;background:#ffffff14;border:1px solid #ffffff26;color:#fff}
dialog#modal.opening-v10 :is(.opening-intro,.stack-stage,.opening-header,.opening-summary,.opening-continue,.stack-controls,.bulk-opening){background:transparent!important;border-color:transparent;box-shadow:none}
dialog#modal.opening-v10 .opening-continue{max-width:720px;margin:0 auto}
.opening-close-hint{margin:10px 0 0;color:#cfc5e0;opacity:.75;font-size:12px;text-align:center}
[data-theme="light"] dialog#modal.opening-v10 :is(.opening-header p,.opening-continue>p,.tear-caption,.stack-remaining,.stack-status,.reveal-status,.opening-close-hint,.bulk-opening-toolbar){color:#d9d0e8!important}
[data-theme="light"] dialog#modal.opening-v10 .opening-header h2{color:#fff!important}
@keyframes v10-fade-in{from{opacity:0}to{opacity:1}}
@keyframes v10-fade-out{from{opacity:1}to{opacity:0}}
@keyframes v10-rise-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){dialog#modal.opening-v10::backdrop,dialog#modal.opening-v10.is-entering>*,dialog#modal.opening-v10.is-leaving{animation:none!important}}
.reduce-motion dialog#modal.opening-v10::backdrop,.reduce-motion dialog#modal.opening-v10.is-entering>*{animation:none!important}
/* The tear gesture owns the pack: no text selection, no image dragging, no scrolling. */
.tear-pack-stage,.tear-pack-stage *{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
.tear-pack-stage img{pointer-events:none}
.tear-intro.is-ready .tear-pack-stage{cursor:grab}.tear-pack-stage.is-pulling{cursor:grabbing}
.tear-glow{position:absolute;left:14%;right:14%;top:8%;bottom:4%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--pack-glow,#be9aef) 70%,transparent) 0%,transparent 68%);filter:blur(18px);opacity:.55;transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.tear-pack-stage.is-torn .tear-glow{opacity:1;transform:scale(1.15)}
/* ---------- Opening: tear and impact ---------- */
.opening-v10 .tear-intro{display:grid;justify-items:center;align-content:center;gap:14px;padding:6px 0 4px}
.tear-pack-stage{position:relative;width:min(300px,62vw);aspect-ratio:3/4;touch-action:none}
.tear-pack-stage>.tear-pack{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer}
.tear-pack-stage .booster-art{display:block;width:100%!important;height:100%!important;margin:0!important}
.tear-body,.tear-strip{position:absolute;inset:0;display:block;pointer-events:none}
/* Only the crimped strip inside the pack's own width tears away; the glow, particles and shadow
   around the pack stay in the body layer, so the light behind it is never cut. */
.tear-body{clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,18.6% 0,18.6% 21.5%,81% 21.5%,81% 0,18.6% 0)}
.tear-strip{clip-path:inset(0 19% 78.5% 18.6%);transform-origin:12% 20%;transform:translate(calc(var(--tear,0) * 26px),calc(var(--tear,0) * -22px)) rotate(calc(var(--tear,0) * -9deg));transition:transform .08s linear;filter:drop-shadow(0 4px 6px #0006)}
.tear-pack-stage.is-torn .tear-strip{transition:transform .7s cubic-bezier(.3,.6,.2,1),opacity .7s;transform:translate(170px,-180px) rotate(-38deg);opacity:0}
.tear-pack-stage.is-torn .tear-body{animation:v10-pack-burst .9s ease-out forwards}
@keyframes v10-pack-burst{0%{transform:none;filter:none}35%{transform:scale(1.05);filter:brightness(1.5) drop-shadow(0 0 30px #f5e6ff)}100%{transform:translateY(40px) scale(.9);opacity:0}}
.tear-zone{position:absolute;left:15%;right:17%;top:10%;height:15%;border:0;background:transparent;cursor:ew-resize;border-radius:10px}
.tear-zone:focus-visible{outline:2px solid var(--v10-lav);outline-offset:4px}
.tear-line{position:absolute;left:6%;right:8%;top:62%;height:0;border-top:2px dashed #fff9;filter:drop-shadow(0 0 4px #be9aef)}
.tear-hint{position:absolute;left:50%;top:-34px;transform:translateX(-50%);white-space:nowrap;padding:5px 12px;border-radius:999px;background:#120f1bdd;border:1px solid #be9aef66;color:#f3e9ff;font:700 12px Inter,sans-serif;animation:v10-hint 1.6s ease-in-out infinite}
.tear-hint .icon{width:14px;height:14px;vertical-align:-2px}
.tear-pack-stage.is-pulling .tear-hint,.tear-pack-stage.is-torn .tear-hint{opacity:0}
@keyframes v10-hint{0%,100%{transform:translateX(-50%)}50%{transform:translateX(calc(-50% + 10px))}}
.opening-modal .tear-intro>p.tear-caption{display:block;margin:0;color:var(--muted);font-size:13px}
.tear-actions{display:flex;gap:10px;min-height:40px}
.tear-intro:not(.is-ready) .tear-pack-stage{animation:v10-float 3.2s ease-in-out infinite}
@keyframes v10-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
/* A rare card announces itself: trembling back, rising glow. */
.stack-card.is-charging{animation:v10-charge .09s linear infinite;filter:drop-shadow(0 0 18px var(--charge-color,#f4c95d)) drop-shadow(0 0 42px var(--charge-color,#f4c95d))}
.stack-stage.is-charging:before{content:'';position:absolute;inset:-18%;border-radius:50%;background:radial-gradient(circle,var(--rarity) 0%,transparent 60%);opacity:.35;animation:v10-pulse .5s ease-in-out infinite alternate;pointer-events:none}
@keyframes v10-charge{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(-2px,1px) rotate(-.6deg)}50%{transform:translate(2px,-1px) rotate(.5deg)}75%{transform:translate(-1px,-2px) rotate(-.3deg)}100%{transform:translate(0,0)}}
@keyframes v10-pulse{from{transform:scale(.92);opacity:.22}to{transform:scale(1.08);opacity:.5}}
.reveal-impact{position:absolute;inset:-30% -40%;pointer-events:none;display:grid;place-items:center;z-index:0}
.impact-rays{position:absolute;width:140%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--rarity) 55%,transparent) 0deg 7deg,transparent 7deg 22deg);mask:radial-gradient(circle,#000 18%,transparent 62%);-webkit-mask:radial-gradient(circle,#000 18%,transparent 62%);animation:v10-rays 9s linear infinite;opacity:.75}
/* The rarity word lands on the card like a stamp, holds, then lifts away so the card stays readable. */
.impact-banner{position:absolute;top:50%;left:50%;z-index:6;transform:translate(-50%,-50%);font:clamp(30px,5.2vw,58px)/1 var(--display);color:var(--rarity);-webkit-text-stroke:2px #140f1d;paint-order:stroke fill;text-shadow:0 0 22px var(--rarity),0 5px 0 #000a;white-space:nowrap;pointer-events:none;animation:v10-stamp 2s cubic-bezier(.2,1.3,.4,1) both}
.impact-banner.impact-shiny{color:#ffe8a3}
.impact-secret .impact-rays{background:repeating-conic-gradient(from 0deg,#d8b66a88 0deg 5deg,transparent 5deg 20deg)}
.impact-banner.impact-secret{color:#f3dd9a;text-shadow:0 0 24px #d8b66a,0 5px 0 #000}
@keyframes v10-rays{to{transform:rotate(360deg)}}
@keyframes v10-stamp{0%{transform:translate(-50%,-50%) scale(.25) rotate(-9deg);opacity:0}14%{transform:translate(-50%,-50%) scale(1.16) rotate(-4deg);opacity:1}24%{transform:translate(-50%,-50%) scale(1) rotate(-4deg);opacity:1}74%{transform:translate(-50%,-50%) scale(1) rotate(-4deg);opacity:1}100%{transform:translate(-50%,-95%) scale(.9) rotate(-4deg);opacity:0}}
.impact-banner.impact-mythic{animation-duration:2.4s}.impact-banner:is(.impact-iridescent,.impact-prismatic,.impact-celestial,.impact-diamond){animation-duration:2.8s}.impact-banner.impact-secret{animation-duration:3.2s}
.bulk-discovery .impact-banner{font-size:clamp(24px,4vw,40px)}
.stack-stage.is-revealed .stack-card{position:relative;z-index:2}
.impact-flash{position:fixed;inset:0;z-index:40;pointer-events:none;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--rarity) 85%,#fff) 0%,color-mix(in srgb,var(--rarity) 35%,transparent) 35%,transparent 70%);animation:v10-flash 1.2s ease-out forwards}
@keyframes v10-flash{0%{opacity:0}12%{opacity:.95}100%{opacity:0}}
#modal.impact-shake{animation:v10-shake .45s cubic-bezier(.36,.07,.19,.97) both}
#modal.impact-shake.impact-heavy{animation:v10-shake-heavy .8s cubic-bezier(.36,.07,.19,.97) both}
@keyframes v10-shake{10%,90%{transform:translate(-1px,0)}20%,80%{transform:translate(3px,-1px)}30%,50%,70%{transform:translate(-5px,2px)}40%,60%{transform:translate(5px,-2px)}}
@keyframes v10-shake-heavy{10%,90%{transform:translate(-2px,1px)}20%,80%{transform:translate(6px,-3px)}30%,50%,70%{transform:translate(-9px,4px)}40%,60%{transform:translate(9px,-4px)}}
.opening-summary .summary-slot{position:relative}
.opening-summary .summary-slot.is-high{filter:drop-shadow(0 0 14px color-mix(in srgb,var(--rarity) 60%,transparent))}
.summary-new{position:absolute;left:6px;top:6px;z-index:5;padding:1px 6px;border-radius:5px;background:var(--v10-mint);color:#10241a;font:800 9px/1.5 Inter,sans-serif}
.bulk-dealt-card.is-high{filter:drop-shadow(0 0 10px var(--rarity))}
.bulk-discovery{position:relative}.bulk-discovery .reveal-impact{inset:-35% -60%}
@media(prefers-reduced-motion:reduce){.tear-hint,.tear-intro .tear-pack-stage,.impact-rays,.stack-card.is-charging,.stack-stage.is-charging:before,#modal.impact-shake{animation:none!important}.impact-flash,.impact-banner{display:none}}
.reduce-motion :is(.tear-hint,.tear-intro .tear-pack-stage,.impact-rays,.stack-card.is-charging,.stack-stage.is-charging:before),.reduce-motion #modal.impact-shake{animation:none!important}
.reduce-motion :is(.impact-flash,.impact-banner){display:none}

/* ---------- Forge: the upgraded card pops and its new star spins in ---------- */
.forge-input.just-forged .forge-three{position:relative}
.forge-input.just-forged .forge-three .meme-card{animation:v10-forge-pop .75s cubic-bezier(.2,1.4,.4,1) both}
.forge-input.just-forged .gold-star.star-new{display:inline-block;color:#ffd35a!important;-webkit-text-stroke:0!important;text-shadow:0 0 10px #ffd35a,0 0 22px #ffb31e;animation:v10-star-pop 1.1s cubic-bezier(.2,1.6,.4,1) .3s both}
.forge-pop{position:absolute;left:50%;top:38%;z-index:8;transform:translate(-50%,-50%);font:34px/1 var(--display);color:#ffd35a;-webkit-text-stroke:2px #2a1a05;paint-order:stroke fill;text-shadow:0 0 18px #ffb31e;pointer-events:none;animation:v10-forge-plus 1.4s ease-out .15s both}
.forge-input.just-forged>.eyebrow{color:#ffd35a}
@keyframes v10-forge-pop{0%{transform:scale(1)}32%{transform:scale(1.08);filter:brightness(1.4) drop-shadow(0 0 24px var(--rarity))}100%{transform:scale(1);filter:none}}
@keyframes v10-star-pop{0%{transform:scale(0) rotate(-120deg);opacity:0}55%{transform:scale(2.3) rotate(12deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes v10-forge-plus{0%{transform:translate(-50%,-10%) scale(.4);opacity:0}25%{transform:translate(-50%,-50%) scale(1.15);opacity:1}70%{opacity:1}100%{transform:translate(-50%,-140%) scale(1);opacity:0}}
@media(prefers-reduced-motion:reduce){.forge-input.just-forged .forge-three .meme-card,.forge-input.just-forged .gold-star.star-new,.forge-pop{animation:none!important}.forge-pop{display:none}}
.reduce-motion :is(.forge-input.just-forged .forge-three .meme-card,.forge-input.just-forged .gold-star.star-new){animation:none!important}.reduce-motion .forge-pop{display:none}
/* ---------- Inline results (forge, trade-up) ---------- */
.forge-result-inline,.tradeup-result{display:flex;align-items:center;gap:26px;padding:22px 26px;margin-bottom:18px;border-color:color-mix(in srgb,var(--rarity) 55%,transparent)!important;background:radial-gradient(ellipse at 15% 50%,color-mix(in srgb,var(--rarity) 22%,transparent),transparent 60%),var(--surface,#191620)}
.forge-result-inline .forge-result-card,.tradeup-result .tradeup-result-card{position:relative;width:150px;flex-shrink:0}
.forge-result-inline h2,.tradeup-result h2{font:28px/1.1 var(--display);margin:6px 0}
.forge-result-inline p,.tradeup-result p{color:var(--muted);margin:0 0 10px}
@media(max-width:640px){.forge-result-inline,.tradeup-result{flex-direction:column;text-align:center}}

/* ---------- Battle ---------- */
.turn-banner{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px auto 8px;padding:10px 18px;max-width:560px;border-radius:14px;font:22px/1 var(--display);letter-spacing:.02em;border:1px solid}
.turn-banner.is-mine{color:#b9f5d2;background:linear-gradient(90deg,transparent,#89e6b51f,transparent);border-color:#89e6b555}
.turn-banner.is-enemy{color:#ffc2d1;background:linear-gradient(90deg,transparent,#f4769c1f,transparent);border-color:#f4769c55}
.turn-arrow{display:inline-block;font-size:20px;animation:v10-arrow 1s ease-in-out infinite}
.turn-banner.is-enemy .turn-arrow{animation-name:v10-arrow-up}
@keyframes v10-arrow{0%,100%{transform:translateY(-3px)}50%{transform:translateY(4px)}}
@keyframes v10-arrow-up{0%,100%{transform:translateY(3px)}50%{transform:translateY(-4px)}}
.turn-banner .ar-turn-clock{position:static!important;display:inline-flex;align-items:baseline;gap:2px;padding:4px 10px;border-radius:10px;background:#0006;font:700 16px Inter,sans-serif;color:var(--text);box-shadow:none;transform:none}
.turn-banner .ar-turn-clock.urgent{color:#ffb4c4;animation:v10-pulse .5s ease-in-out infinite alternate}
.turn-auto{padding:2px 8px;border-radius:6px;background:#be9aef33;color:#e3d2ff;font:800 11px Inter,sans-serif;font-style:normal}
.battle-unit .battle-status{display:flex;gap:4px;flex-wrap:wrap}
.unit-badge{position:relative;display:inline-flex;align-items:center;gap:2px;padding:2px 5px;border-radius:999px;font:800 10px/1.2 Inter,sans-serif;background:#0b0912cc;border:1px solid #fff2;color:#fff}
.unit-badge .icon{width:13px;height:13px}
.badge-shield{color:#7fe0ff;border-color:#7fe0ff66}
.badge-shield.is-spent{color:#8d8a99;border-color:#ff6b8a99}
.badge-shield.is-spent i{position:absolute;inset:3px 4px;background:linear-gradient(45deg,transparent 45%,#ff5d7e 45%,#ff5d7e 57%,transparent 57%),linear-gradient(-45deg,transparent 45%,#ff5d7e 45%,#ff5d7e 57%,transparent 57%)}
.badge-poison{color:#d9ff7a;border-color:#b6e81799;background:#1f2a07dd;animation:v10-poison 1.4s ease-in-out infinite}
.badge-poison .mm-emblem{width:15px!important;height:15px!important}
.badge-taunt{color:#ffd9a6;border-color:#e3ad6877}
@keyframes v10-poison{0%,100%{box-shadow:0 0 0 0 #b6e81700}50%{box-shadow:0 0 10px 1px #b6e81766}}
.battle-unit.is-poisoned .battle-card{box-shadow:inset 0 0 0 2px #b6e81766,0 0 16px #b6e8172a}
.battle-unit.is-low .battle-health i{background:linear-gradient(90deg,#ff5d7e,#ff9a6b)!important}
.battle-unit.is-hit{animation:none}
.battle-unit.is-hit-heavy .battle-card{box-shadow:0 0 0 2px #fff,0 0 30px #ff5d7e}
.battle-role-icon{display:grid!important;place-items:center!important}
.combat-callout{position:absolute;left:50%;top:18%;z-index:30;transform:translateX(-50%);white-space:nowrap;pointer-events:none;font:26px/1 var(--display);text-shadow:0 3px 0 #000a,0 0 16px currentColor;animation:v10-callout 1.4s cubic-bezier(.2,1.3,.4,1) forwards}
.combat-callout.is-crit{color:#ffe07a;font-size:34px}
.combat-callout.is-double{color:#ffb070;font-size:32px}
.combat-callout.is-blocked{color:#7fe0ff}
.combat-callout.is-heal{color:#8dffbb}
.combat-callout.is-poison{color:#d9ff7a;font-size:22px}
@keyframes v10-callout{0%{transform:translate(-50%,10px) scale(.4);opacity:0}25%{transform:translate(-50%,-6px) scale(1.25);opacity:1}70%{transform:translate(-50%,-16px) scale(1);opacity:1}100%{transform:translate(-50%,-34px) scale(.95);opacity:0}}
.battle-preview.combat-float.is-big{font-size:1.35em}
.crit-flash{position:absolute;inset:0;z-index:25;pointer-events:none;background:radial-gradient(circle,#fff6 0%,#ffe07a33 40%,transparent 70%);animation:v10-flash .6s ease-out forwards}
.ar-match{position:relative}
/* Intro: two trainers, five cards in view, three hidden balls each. */
.ar-intro.ar-intro-v10{display:grid;gap:16px;padding:22px}
.trainer{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:16px;align-items:center}
.trainer-player{grid-template-columns:1fr minmax(200px,260px)}
.trainer-player .trainer-card{order:2}
.trainer-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:#ffffff08;border:1px solid var(--v10-line)}
.trainer-card strong{display:block;font:20px/1.1 var(--display)}.trainer-card small{color:var(--muted)}
.trainer-avatar{width:54px;height:54px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#0006}
.trainer-avatar img,.trainer-avatar .battle-archive-art{width:100%;height:100%;object-fit:cover;font-size:20px}
.trainer-party{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.trainer-player .trainer-party{justify-content:flex-end}
.party-slot{animation:v10-party .45s cubic-bezier(.2,1.2,.4,1) both;animation-delay:calc(var(--i) * 90ms)}
.trainer-opponent .party-slot{animation-name:v10-party-left}
.party-slot .ar-scout-card{width:108px}
.party-reserve{display:grid;gap:8px;padding:6px;border-radius:12px;background:#ffffff08;border:1px dashed var(--v10-line)}
.party-ball{width:34px;height:34px;border-radius:50%;background:linear-gradient(#d9c8ff 0 46%,#1b1426 46% 54%,#f1ecf8 54%);border:2px solid #1b1426;position:relative;box-shadow:0 4px 10px #0007;animation:v10-party .45s cubic-bezier(.2,1.2,.4,1) both;animation-delay:calc(var(--i) * 90ms)}
.party-ball i{position:absolute;left:50%;top:50%;width:11px;height:11px;border-radius:50%;background:#f1ecf8;border:2px solid #1b1426;transform:translate(-50%,-50%)}
@keyframes v10-party{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes v10-party-left{from{transform:translateX(-40px);opacity:0}to{transform:none;opacity:1}}
.ar-intro-versus{display:grid;justify-items:center;gap:6px;padding:6px 0;text-align:center}
.ar-intro-versus>b{font:40px/1 var(--display);color:var(--v10-lav)}
.ar-intro-versus small{color:var(--muted)}
.coin-flip{perspective:600px;width:86px;height:86px;margin:4px 0}
.coin{position:relative;display:block;width:86px;height:86px;transform-style:preserve-3d;animation:v10-coin-heads 2.4s cubic-bezier(.2,.8,.25,1) forwards}
.coin.lands-tails{animation-name:v10-coin-tails;transform:rotateY(180deg)}
.coin-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;backface-visibility:hidden;background:radial-gradient(circle at 35% 30%,#fff6c8,#e6b949 55%,#9c6f16);border:3px solid #7a5410;color:#4a3208;font:800 13px/1 Inter,sans-serif;letter-spacing:.04em;box-shadow:inset 0 0 0 5px #f4d57e66}
.coin-tails{transform:rotateY(180deg)}
@keyframes v10-coin-heads{0%{transform:rotateY(0)}100%{transform:rotateY(1800deg)}}
@keyframes v10-coin-tails{0%{transform:rotateY(0)}100%{transform:rotateY(1980deg)}}
@media(max-width:820px){.trainer,.trainer-player{grid-template-columns:1fr}.trainer-player .trainer-card{order:0}.trainer-player .trainer-party{justify-content:flex-start}.party-slot .ar-scout-card{width:86px}}
/* Result on the board. */
.battle-result-v10{text-align:center;padding:26px 22px;margin:12px auto;max-width:720px;border-radius:20px;border:1px solid var(--v10-line);background:radial-gradient(ellipse at 50% 0%,#89e6b51f,transparent 60%),var(--v10-panel)}
.battle-result-v10.is-loss{background:radial-gradient(ellipse at 50% 0%,#f4769c1f,transparent 60%),var(--v10-panel)}
.battle-result-v10 h2{font:clamp(40px,7vw,68px)/1 var(--display);margin:10px 0 4px;color:var(--v10-mint)}
.battle-result-v10.is-loss h2{color:var(--v10-ruby)}.battle-result-v10.is-draw h2{color:var(--v10-lav)}
.battle-result-v10 .result-emblem{width:64px;height:64px;margin:8px auto 0;display:grid;place-items:center;border-radius:18px;background:#ffffff0d;border:1px solid var(--v10-line)}
.result-subtitle{color:var(--muted);margin:0 0 16px}
.result-gains{display:flex;justify-content:center;gap:0;margin:0 auto 14px}
.result-gains>div{padding:0 26px;border-left:1px solid var(--v10-line)}.result-gains>div:first-child{border-left:0}
.result-gains strong{display:block;font:38px/1 var(--display)}.result-gains strong.is-negative{color:var(--v10-ruby)}
.result-gains small{font:700 11px Inter,sans-serif;letter-spacing:.12em;color:var(--muted)}
.battle-result-v10 .result-rank{display:flex;align-items:center;gap:16px;text-align:left;max-width:540px;margin:0 auto 12px;padding:14px 18px;border-radius:14px;border:1px solid var(--v10-line);background:#0003}
.battle-result-v10 .result-rank>div{flex:1}
.result-rank-line{display:flex;justify-content:space-between;margin-bottom:6px}
.battle-result-v10 .sr-breakdown{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.battle-result-v10 .sr-breakdown span{padding:6px 12px;border-radius:10px;border:1px solid var(--v10-line);font-size:12px}
.battle-result-v10 .ar-earned-items.is-grand{padding:12px;border-radius:14px;border:1px solid #d8b66a66;background:#d8b66a12}
.battle-result-v10 .battle-result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.log-crit{color:#ffe07a}
/* Plain combat card back: the logo and nothing else (hidden reserves, intro, deployment). */
.mm-simple-back{display:grid;place-items:center;width:100%;height:100%;aspect-ratio:3/4;border-radius:10%/7.5%;background:radial-gradient(circle at 50% 42%,#3a2b55 0%,#1d1629 62%,#141019 100%);border:2px solid #6d56a0;box-shadow:inset 0 0 0 3px #1411209c,0 4px 12px #0007}
.mm-simple-back img{width:42%;height:auto;opacity:.92;filter:drop-shadow(0 2px 6px #0009);-webkit-user-drag:none;user-select:none}
.battle-bank .hidden-reserve{display:block;width:100%;max-width:120px;margin:0 auto 8px}
.battle-bank .hidden-reserve .mm-simple-back{max-height:150px}
.party-back{display:block;width:34px;height:46px;animation:v10-party .45s cubic-bezier(.2,1.2,.4,1) both;animation-delay:calc(var(--i) * 90ms)}
.party-back .mm-simple-back{border-width:1.5px;border-radius:6px}
.ar-deploy-rival .ar-hidden-card{display:inline-block;width:44px;background:none;border:0}
/* Role badge in the combat portrait: the emblem sits exactly in the middle of its tile. */
.battle-unit .battle-role-icon{display:grid!important;place-items:center!important;padding:0!important;line-height:0!important}
.battle-unit .battle-role-icon>.mm-role-emblem{margin:0!important;position:static!important;transform:none!important}
/* The four V10 silhouettes fill ~88% of their canvas against ~63% for the others: match their weight. */
.mm-role-emblem:is(.mm-emblem-slasher,.mm-emblem-crusher,.mm-emblem-pyromaniac,.mm-emblem-omen)>i{-webkit-mask-size:74%;mask-size:74%}
/* Crusher stun and Slasher extra strike. */
.badge-stun{color:#ffe7a8;border-color:#c99a5b99;background:#2a1d0ddd}
.badge-stun .icon{width:12px;height:12px}
.battle-unit.is-stunned .battle-card{filter:saturate(.45) brightness(.8)}
.battle-unit.is-stunned .battle-portrait:after{content:'';position:absolute;inset:0;background:repeating-conic-gradient(from 0deg at 50% 50%,#ffe7a81f 0 12deg,transparent 12deg 30deg);animation:v10-rays 6s linear infinite;pointer-events:none}
.battle-unit.is-striker .battle-card{box-shadow:0 0 0 2px #ff4f9a,0 0 26px #ff4f9a88!important}
.ar-action-bar.followup{border-color:#ff4f9a77!important;background:linear-gradient(90deg,#ff4f9a1f,transparent)!important}
/* Omen's last strike: the fallen card stays in its lane, enemies glow as targets. */
.battle-unit.is-omen-dying .battle-card{box-shadow:0 0 0 2px #6f6bff,0 0 28px #6f6bff99!important}
.battle-unit.is-omen-dying .battle-portrait img,.battle-unit.is-omen-dying .battle-portrait .mm-simple-back{filter:grayscale(.85) brightness(.75)}
.battle-unit.is-omen-dying .battle-power b{color:#b9b6ff}
.battle-unit.omen-target .battle-card{box-shadow:0 0 0 2px #8f8cff,0 0 22px #6f6bff77!important}
.battle-unit.omen-target .battle-card:hover,.battle-unit.omen-target .battle-card:focus-visible{box-shadow:0 0 0 3px #b9b6ff,0 0 30px #6f6bffaa!important}
.ar-action-bar.omen{border-color:#6f6bff88!important;background:linear-gradient(90deg,#6f6bff26,transparent)!important}
@media (prefers-reduced-motion:no-preference){.battle-unit.is-omen-dying .battle-card{animation:v10-omen-pulse 1.6s ease-in-out infinite}}
@keyframes v10-omen-pulse{0%,100%{box-shadow:0 0 0 2px #6f6bff,0 0 18px #6f6bff66}50%{box-shadow:0 0 0 2px #8f8cff,0 0 34px #6f6bffbb}}
/* Damage numbers rise from the card and fade; a skull marks a knockout. */
.battle-unit{position:relative}
.damage-float{position:absolute;left:50%;top:34%;z-index:40;transform:translate(-50%,0);font:900 clamp(20px,2.4vw,30px)/1 var(--display);letter-spacing:.02em;white-space:nowrap;pointer-events:none;-webkit-text-stroke:1.5px #12091a;paint-order:stroke fill;text-shadow:0 3px 0 #000a;animation:v10-damage-rise 1.25s cubic-bezier(.2,.7,.3,1) both}
.damage-float.is-damage{color:#ff5d6e}.damage-float.is-heal{color:#6ff0a0}.damage-float.is-poison{color:#c9f24b}
@keyframes v10-damage-rise{0%{transform:translate(-50%,10px) scale(.6);opacity:0}15%{transform:translate(-50%,-6px) scale(1.18);opacity:1}40%{transform:translate(-50%,-18px) scale(1);opacity:1}100%{transform:translate(-50%,-64px) scale(.96);opacity:0}}
.ko-skull{position:absolute;left:50%;top:42%;z-index:41;width:46%;max-width:74px;aspect-ratio:1;color:#f4eefb;transform:translate(-50%,-50%);filter:drop-shadow(0 0 10px #ff5d6e) drop-shadow(0 4px 0 #0009);pointer-events:none;animation:v10-skull 1.15s cubic-bezier(.2,1.5,.4,1) both}
.ko-skull svg{width:100%;height:100%;display:block}
@keyframes v10-skull{0%{transform:translate(-50%,-50%) scale(.2) rotate(-12deg);opacity:0}22%{transform:translate(-50%,-50%) scale(1.25) rotate(4deg);opacity:1}38%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}80%{opacity:1}100%{transform:translate(-50%,-70%) scale(1);opacity:0}}
.battle-unit.is-burning .battle-card{animation:v10-burn .9s ease-out}
@keyframes v10-burn{0%{box-shadow:0 0 0 0 #ff5a1f00}30%{box-shadow:0 0 0 3px #ff5a1f,0 0 34px #ff5a1fbb;filter:brightness(1.4) sepia(.4)}100%{box-shadow:0 0 0 0 #ff5a1f00;filter:none}}
.combat-callout.is-blaze{color:#ff8a4d;font-size:34px;top:40%}
.combat-callout.is-stun{color:#ffe7a8;font-size:24px;top:52%}
.combat-callout.is-omen{color:#a6a3ff;font-size:24px;top:28%}
.combat-callout.is-slash{color:#ff7ab5;font-size:24px;top:10%}
.ar-field-side{position:relative}
/* Leaving asks first; forfeits are announced plainly. */
.btn.btn-danger{background:#e2476b;color:#fff;border:0}.btn.btn-danger:hover{background:#f05b7d}
/* Small confirmations: sized to their content and centred. A modal dialog stretches to the full
   viewport height when its height is auto, so fit-content is required; the old .simple-modal
   min-width (490px) no longer pushes the text off-centre inside the 460px box. */
dialog#modal:is(.confirm-modal,.forfeit-modal){width:min(460px,calc(100vw - 32px))!important;max-width:460px!important;height:fit-content!important;min-height:0!important;max-height:calc(100dvh - 32px)!important;padding:0!important;scrollbar-gutter:auto!important}
dialog#modal:is(.confirm-modal,.forfeit-modal)>.simple-modal{padding:40px 28px 28px;min-width:0;width:100%;max-width:none;box-sizing:border-box}
dialog#modal:is(.confirm-modal,.forfeit-modal)>.simple-modal>.eyebrow{display:block;text-align:center}
.leave-confirm,.forfeit-modal{text-align:center;max-width:420px;margin:0 auto}
.forfeit-modal p.forfeit-sr{font:40px/1 var(--display);margin:8px 0 18px}
.leave-confirm h2,.forfeit-modal h2{font:30px/1.1 var(--display);margin:8px 0}
.leave-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.forfeit-modal.is-loss h2{color:var(--v10-ruby)}.forfeit-modal.is-win h2{color:var(--v10-mint)}
.forfeit-sr{font:34px/1 var(--display);margin:6px 0 14px;color:var(--v10-mint)}.forfeit-sr.is-negative{color:var(--v10-ruby)}
@media(prefers-reduced-motion:reduce){.damage-float,.ko-skull,.battle-unit.is-burning .battle-card,.battle-unit.is-stunned .battle-portrait:after,.party-back{animation:none!important}.damage-float,.ko-skull{display:none}}
.reduce-motion :is(.damage-float,.ko-skull){display:none}
.reduce-motion :is(.battle-unit.is-burning .battle-card,.battle-unit.is-stunned .battle-portrait:after,.party-back){animation:none!important}
/* Phones read the board top to bottom: rival reserve, both fields, then your reserve under your field. */
@media(max-width:760px){.arena-v6 .battle-layout>.enemy-bank{grid-row:1}.arena-v6 .battle-layout>.battle-centre{grid-row:2}.arena-v6 .battle-layout>.your-bank{grid-row:3}.turn-banner{font-size:18px;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){.turn-arrow,.badge-poison,.coin,.party-slot,.party-ball,.combat-callout{animation:none!important}}
.reduce-motion :is(.turn-arrow,.badge-poison,.coin,.party-slot,.party-ball,.combat-callout){animation:none!important}
.reduce-motion .coin.lands-tails{transform:rotateY(180deg)}

/* ---------- Memefinity Tower ---------- */
.tower-stats{display:flex;gap:10px;flex-wrap:wrap}
.tower-stats span{display:grid;padding:10px 16px;border-radius:12px;border:1px solid var(--v10-line);background:#ffffff08;text-align:center}
.tower-stats b{font:26px/1 var(--display)}.tower-stats small{font:700 10px Inter,sans-serif;letter-spacing:.12em;color:var(--muted)}
.tower-auto-toggle{margin-left:auto}
.tower-layout{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:18px;align-items:start}
.tower-shaft{padding:14px;position:relative;background:linear-gradient(180deg,#2a1f3a 0%,#1a1424 100%)}
.tower-floors{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tower-floor{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;border:1px solid var(--v10-line);background:#ffffff06}
.tower-floor-number{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#0005;font:20px/1 var(--display)}
.tower-floor-number .icon{width:14px;height:14px;color:var(--v10-gold)}
.tower-floor-copy b{display:block;font-size:13px}.tower-floor-copy small{color:var(--muted);font-size:11px}
.tower-floor-state{font:800 10px Inter,sans-serif;letter-spacing:.08em;color:var(--muted)}
.tower-floor.is-cleared{opacity:.6}
.tower-floor.is-current{border-color:var(--v10-lav);background:#be9aef1a;box-shadow:0 0 0 1px #be9aef55,0 0 24px #be9aef22}
.tower-floor.is-current .tower-floor-state{color:#e7d6ff}
.tower-floor.is-boss{border-color:#d8b66a77;background:linear-gradient(90deg,#d8b66a1f,transparent)}
.tower-floor.is-boss .tower-floor-number{background:linear-gradient(135deg,#f6e3a1,#b8862f);color:#3a2708}
.tower-floor.is-boss .tower-floor-state{color:#f0d995}
.tower-base{margin-top:10px;text-align:center;color:var(--muted);font-size:12px}
.tower-side{display:grid;gap:16px}
.tower-run,.tower-picker{padding:20px}
.tower-run h2{font:32px/1.05 var(--display);margin:6px 0}
.tower-run-squad,.tower-squad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0}
.tower-run-actions{display:flex;gap:10px;flex-wrap:wrap}
.tower-slot{display:grid;place-items:center;aspect-ratio:3/4;border-radius:12px;border:1px dashed var(--v10-line);color:var(--muted);font-size:26px;background:#ffffff05;padding:0}
.tower-slot small{font-size:11px}
.tower-slot.filled{border:0;background:none;cursor:pointer}
.tower-start{width:100%;margin:6px 0 14px}
.tower-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;max-height:520px;overflow:auto;padding:4px}
.tower-library-card{padding:0;border:0;background:none;border-radius:10px;cursor:pointer}
.tower-library-card.selected{outline:2px solid var(--v10-mint);outline-offset:2px}
.tower-rewards{padding:20px}
.tower-reward-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tower-reward{padding:14px;border-radius:12px;border:1px solid var(--v10-line);background:#ffffff06}
.tower-reward.is-big{border-color:#d8b66a77;background:linear-gradient(135deg,#d8b66a1a,transparent)}
.tower-reward.is-claimed{opacity:.6}
.tower-reward span{font:700 12px Inter,sans-serif;letter-spacing:.06em}
.tower-reward ul{margin:8px 0 0;padding-left:16px;color:var(--muted);font-size:12px}
.tower-note{margin-top:12px}
@media(max-width:980px){.tower-layout{grid-template-columns:1fr}.tower-run-squad,.tower-squad{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Enchantment ---------- */
.enchant-stage{display:grid;grid-template-columns:1fr minmax(260px,320px) 1fr;gap:18px;align-items:center;padding:22px;background:radial-gradient(ellipse at 50% 50%,#7b4ac21f,transparent 65%),var(--v10-panel)}
.enchant-centre{display:grid;justify-items:center;gap:12px;text-align:center}
.enchant-dial{position:relative;width:250px;height:250px;border-radius:50%;display:grid;place-items:center}
.enchant-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#b485ff 0deg,#e77bd9 calc(var(--chance-deg) * .6),#ffd36b var(--chance-deg),var(--ring-empty,#2a2238) var(--chance-deg) 360deg);mask:radial-gradient(circle,transparent 62%,#000 63%);-webkit-mask:radial-gradient(circle,transparent 62%,#000 63%);box-shadow:0 0 30px #9a6ef233}
.enchant-dial:before{content:'';position:absolute;inset:-8px;border-radius:50%;border:2px solid #be9aef33}
.enchant-needle{position:absolute;left:50%;top:6px;width:4px;height:50%;margin-left:-2px;border-radius:3px;background:linear-gradient(#fff,#ff5d7e);transform-origin:50% 100%;transform:rotate(var(--needle,0deg));box-shadow:0 0 8px #ff5d7e}
.enchant-dial.is-spinning .enchant-needle{animation:v10-needle 3.2s cubic-bezier(.12,.72,.18,1) forwards}
@keyframes v10-needle{from{transform:rotate(0deg)}to{transform:rotate(var(--needle,0deg))}}
.enchant-core{position:relative;display:grid;justify-items:center;gap:4px;width:150px}
.enchant-core b{font:34px/1 var(--display)}
.enchant-core small{color:var(--muted);font:700 10px Inter,sans-serif;letter-spacing:.12em}
.enchant-dial.is-win .enchant-ring{filter:drop-shadow(0 0 22px #89e6b5)}
.enchant-dial.is-loss .enchant-ring{filter:grayscale(.7) brightness(.7)}
.enchant-verdict{font:30px/1 var(--display)!important}
.enchant-dial.is-win .enchant-verdict{color:var(--v10-mint);text-shadow:0 0 16px #89e6b5}
.enchant-dial.is-loss .enchant-verdict{color:var(--v10-ruby);text-shadow:0 0 16px #f4769c}
.enchant-roll{min-width:220px}
.enchant-rules{max-width:300px;color:var(--muted);font-size:12px;margin:0}
.enchant-issue{display:flex;align-items:center;gap:6px;max-width:320px;margin:0;padding:8px 12px;border-radius:10px;border:1px solid #f4769c66;background:#f4769c14;color:#ffc2d1;font-size:12px;text-align:left}
.enchant-issue .icon{width:14px;height:14px;flex-shrink:0}
[data-theme="light"] .enchant-issue{color:#a3284b;background:#fbe7ee}
.enchant-side{display:grid;gap:10px;justify-items:center;text-align:center}
.enchant-target .meme-card{width:170px}
.enchant-empty{display:grid;justify-items:center;gap:8px;color:var(--muted);padding:30px 10px;border:1px dashed var(--v10-line);border-radius:14px;width:100%}
.enchant-gain-tag{color:var(--v10-mint);font-weight:700}
.enchant-tray{width:100%;display:grid;gap:10px}
.enchant-tray-head{display:flex;gap:10px;align-items:baseline;justify-content:center;flex-wrap:wrap}
.enchant-tray-head span{color:var(--muted);font-size:12px}
.enchant-tray-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px;width:100%}
.enchant-tray-cards>p{grid-column:1/-1;margin:0;text-align:center;line-height:1.5}
.enchant-side{align-self:stretch;align-content:center}.enchant-side>.enchant-tray{max-width:100%}
.enchant-chip{position:relative;padding:0;border:0;background:none;cursor:pointer}
.enchant-chip>b{position:absolute;right:4px;bottom:4px;padding:1px 6px;border-radius:6px;background:#000c;font-size:11px}
.enchant-pick{margin-top:22px}
.enchant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px}
.enchant-option{display:grid;gap:6px;padding:6px;border-radius:12px;border:1px solid transparent;background:none;color:var(--text);cursor:pointer;text-align:center}
.enchant-option:hover{border-color:var(--v10-line);background:#ffffff06}
.enchant-option.selected{border-color:var(--v10-lav);background:#be9aef14}
.enchant-option.not-owned .meme-card{opacity:.72}
.enchant-option span b{display:block;font-size:12px}.enchant-option span small{color:var(--muted);font-size:11px}
.enchant-footnote{margin-top:14px}
@media(max-width:980px){.enchant-stage{grid-template-columns:1fr}.enchant-stage .enchant-centre{order:-1}}
/* Owner layout: the cards you wager on the left, the cards you can win on the right, under the tray
   and the target they feed. Each list scrolls on its own and keeps its place between renders. */
.enchant-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:22px;align-items:start}
.enchant-columns>.enchant-filters{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:end;gap:10px 14px}
.enchant-columns>.enchant-filters>small{padding-bottom:9px;font-size:12px}
.enchant-columns .enchant-pick{margin-top:0;padding:16px 14px 14px;border-radius:18px;min-width:0}
.enchant-columns .enchant-pick .section-title{margin-bottom:12px}
.enchant-columns .enchant-pick h2{font-size:22px}
.enchant-pick-target{border-color:color-mix(in srgb,var(--v10-lav) 30%,var(--v10-line))}
.enchant-scroll{max-height:min(920px,calc(100dvh - 190px));overflow-y:auto;overscroll-behavior:contain;padding:2px 6px 2px 2px;scrollbar-gutter:stable}
.enchant-columns .enchant-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
@media(max-width:980px){.enchant-columns{grid-template-columns:minmax(0,1fr)}.enchant-scroll{max-height:none;overflow:visible;padding:0}}
@media(prefers-reduced-motion:reduce){.enchant-dial.is-spinning .enchant-needle{animation:none}}

/* ---------- Player profiles & community ---------- */
.player-hero{display:flex;align-items:center;gap:18px;padding:20px;flex-wrap:wrap}
.player-avatar{width:92px;height:92px;border-radius:20px;overflow:hidden;flex-shrink:0}
.player-avatar img{width:100%;height:100%;object-fit:cover}
.player-identity{flex:1;min-width:220px}.player-identity h2{font:34px/1 var(--display);margin:6px 0}
.player-identity p{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);margin:0}
.player-actions{display:flex;gap:8px;flex-wrap:wrap}
.player-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0}
.player-stats>div{padding:14px 16px}.player-stats small{display:block;font:700 10px Inter,sans-serif;letter-spacing:.12em;color:var(--muted)}.player-stats b{font:24px/1.2 var(--display)}
.player-showcase{padding:20px;margin-bottom:14px}
.player-showcase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,190px));gap:14px}
.player-deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.player-face{width:42px;height:42px;border-radius:12px;overflow:hidden;flex-shrink:0;display:grid;place-items:center;background:#be9aef33;font:18px/1 var(--display)}
.player-face img{width:100%;height:100%;object-fit:cover}
.friend-row{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #ffffff10;flex-wrap:wrap}
.friend-copy{flex:1;min-width:160px}.friend-copy b{display:block}.friend-copy small{color:var(--muted)}
.friend-actions{display:flex;gap:6px;flex-wrap:wrap}
.friend-suggestions{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:10px}
.friend-suggestions article{display:grid;justify-items:center;gap:6px;padding:14px;border-radius:14px;border:1px solid var(--v10-line);text-align:center}
.friend-suggestions small{color:var(--muted)}
.ladder .leaderboard-row{display:grid;grid-template-columns:62px 34px 1fr auto auto auto;align-items:center;gap:12px;padding:10px 6px}
.ladder .leaderboard-row.is-you{background:#be9aef1a;border-radius:12px;border:1px solid #be9aef55}
.ladder .leaderboard-row.mega-zone{box-shadow:inset 3px 0 0 #d8b66a88}
.view-profile .icon{width:14px;height:14px;vertical-align:-2px}
.clan-war{padding:22px;margin-bottom:18px;border-color:#d8b66a44!important}
.clan-mega-preview{display:flex;align-items:center;gap:16px;margin-top:12px}
.clan-mega-preview .mega-crate-v10{width:180px;margin:0}
.clan-member-row.is-invited{opacity:.85}
@media(max-width:720px){.ladder .leaderboard-row{grid-template-columns:52px 1fr auto}.ladder .leaderboard-row>:nth-child(2),.ladder .leaderboard-row>:nth-child(4){display:none}}

/* ---------- Leaderboards: standing, podium, one clean table ---------- */
.lb-tabs button{display:grid;gap:1px;text-align:left;padding:10px 16px}
.lb-tabs button b{font-size:14px}.lb-tabs button small{font-size:11px;color:var(--muted);font-weight:500}
.lb-standing{display:flex;align-items:center;gap:18px;padding:18px 22px;margin:4px 0 16px;border-color:#be9aef55!important;background:linear-gradient(90deg,#be9aef14,transparent 60%),var(--v10-panel)}
.lb-standing-emblem{flex-shrink:0;display:grid;place-items:center}
.lb-standing-copy{flex:1;min-width:0}.lb-standing-copy strong{display:block;font:32px/1.05 var(--display);margin:4px 0}.lb-standing-copy p{margin:0;color:var(--muted);font-size:13px}
.lb-standing-value{text-align:right}.lb-standing-value b{display:block;font:30px/1 var(--display)}.lb-standing-value small{font:700 11px Inter,sans-serif;letter-spacing:.12em;color:var(--muted)}
.lb-panel{padding:20px 22px}
.lb-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;max-width:620px;margin:6px auto 18px}
.lb-step{display:grid;justify-items:center;gap:5px;padding:14px 10px 12px;border-radius:16px;border:1px solid var(--v10-line);background:#ffffff08;color:var(--text);cursor:pointer;text-align:center;min-width:0}
.lb-step b{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-step small{color:var(--muted);font-weight:700}
.lb-step.step-1{padding-top:22px;border-color:#f3d88c88;background:linear-gradient(180deg,#f3d88c1f,transparent)}
.lb-step.step-2{border-color:#d5dce188}.lb-step.step-3{border-color:#d9824d88}
.lb-step .player-face{width:54px;height:54px;border-radius:14px}
.lb-medal{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font:800 13px Inter,sans-serif;color:#1b1206;background:#d5dce1}
.step-1 .lb-medal{background:linear-gradient(135deg,#fff1b5,#e2b64a)}.step-3 .lb-medal{background:linear-gradient(135deg,#f3b58d,#b86a3c)}
.lb-table{display:grid}
.lb-head,.lb-row{display:grid;grid-template-columns:64px 44px minmax(0,1.4fr) minmax(0,1fr) 150px 26px;align-items:center;gap:12px;padding:10px 12px}
.lb-head{padding-top:4px;padding-bottom:8px;border-bottom:1px solid var(--v10-line);font:800 10px Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lb-head span:nth-child(5){text-align:right}
.lb-row{width:100%;border:0;border-bottom:1px solid #ffffff0d;background:none;color:var(--text);text-align:left;font:inherit;border-radius:10px}
button.lb-row{cursor:pointer}button.lb-row:hover,button.lb-row:focus-visible{background:#be9aef12}
.lb-row.is-you{background:#be9aef1c;border:1px solid #be9aef66}
.lb-pos{font:800 15px Inter,sans-serif;color:var(--muted)}
.lb-pos.medal-1{color:#f3d88c}.lb-pos.medal-2{color:#d5dce1}.lb-pos.medal-3{color:#e39a6c}
.lb-avatar{display:grid;place-items:center}.lb-avatar .player-face{width:36px;height:36px;border-radius:10px}
.lb-name{display:flex;align-items:center;gap:8px;min-width:0}.lb-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-sample{font:600 10px Inter,sans-serif;color:var(--muted);opacity:.75}
.lb-detail{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-value{text-align:right;font:800 15px Inter,sans-serif}.lb-value small{margin-left:4px;font-size:10px;color:var(--muted);letter-spacing:.08em}
.lb-go{color:var(--muted);display:grid;place-items:center}.lb-go .icon{width:16px;height:16px}
.lb-gap{text-align:center;color:var(--muted);letter-spacing:.4em;padding:2px 0}
.lb-cutoff{display:flex;align-items:center;gap:10px;margin:6px 0;color:#f3d88c;font:800 10px Inter,sans-serif;letter-spacing:.12em}
.lb-cutoff:before,.lb-cutoff:after{content:'';flex:1;border-top:1px dashed #f3d88c77}
.clan-face{background:#be9aef33}.clan-face b{font-size:12px!important}
.lb-footnote{margin-top:12px}
@media(max-width:720px){.lb-head,.lb-row{grid-template-columns:48px 36px minmax(0,1fr) 96px 18px}.lb-head span:nth-child(4),.lb-row .lb-detail{display:none}.lb-standing{flex-wrap:wrap}.lb-podium{gap:8px}}
/* ---------- Clan: identity, this week, the war, displays, members ---------- */
.clan-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px 18px;padding:22px}
.clan-tag-big{display:grid;place-items:center;width:68px;height:68px;border-radius:18px;background:linear-gradient(135deg,#6f4bb3,#be9aef);color:#fff;font:22px/1 var(--display)}
.clan-hero-copy h2{font:32px/1.05 var(--display);margin:4px 0}.clan-hero-copy p{margin:0;color:var(--muted);font-size:12px}
.clan-leave{align-self:start}
.clan-hero-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.clan-hero-stats>div{padding:12px 14px;border-radius:12px;border:1px solid var(--v10-line);background:#ffffff06}
.clan-hero-stats b{display:block;font:24px/1.1 var(--display)}.clan-hero-stats small{font:700 10px Inter,sans-serif;letter-spacing:.12em;color:var(--muted)}
.clan-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.clan-card{padding:20px;display:grid;gap:10px;align-content:start}
.clan-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.clan-card h3{font:22px/1.15 var(--display);margin:0}
.clan-meter{height:10px;border-radius:999px;background:#ffffff12;overflow:hidden}.clan-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#be9aef,#89e6b5)}
.clan-checks{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13px;color:var(--muted)}
.clan-checks li{display:flex;align-items:center;gap:8px}.clan-checks .icon{width:15px;height:15px;flex-shrink:0}
.clan-checks li.is-done{color:#b9f5d2}
.clan-card-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.clan-war-row{display:flex;align-items:center;gap:14px}.clan-war-row .mega-crate-v10{width:150px;flex-shrink:0;margin:0}
.clan-tiers{padding:20px}
.clan-tier-track{display:grid;grid-template-columns:repeat(9,minmax(92px,1fr));gap:10px;overflow-x:auto;padding-bottom:4px}
.clan-tier-node{display:grid;justify-items:center;gap:3px;padding:10px 6px;border-radius:14px;border:1px solid var(--v10-line);background:#ffffff06;color:var(--text);cursor:pointer;text-align:center}
.clan-tier-art{width:62px;height:82px;display:grid;place-items:center}.clan-tier-art .clan-display-v10{width:62px;max-width:62px}
.clan-tier-node b{font-size:12px}.clan-tier-node small{font-size:11px;color:var(--muted)}
.clan-tier-node em{font:800 10px Inter,sans-serif;font-style:normal;letter-spacing:.08em;color:var(--muted)}
.clan-tier-node.is-open{border-color:var(--display-color);box-shadow:0 0 0 1px color-mix(in srgb,var(--display-color) 40%,transparent),0 0 18px color-mix(in srgb,var(--display-color) 25%,transparent)}
.clan-tier-node.is-open em{color:var(--display-color)}
.clan-tier-node.is-claimed{opacity:.6}.clan-tier-node.is-claimed em{color:#b9f5d2}
.clan-tier-node.is-locked .clan-tier-art{filter:grayscale(.8) brightness(.7)}
.clan-members{padding:20px;margin:16px 0}
.clan-member-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #ffffff0d}
.clan-member-row small{display:block;color:var(--muted)}
.clan-how{padding:14px 20px}.clan-how summary{cursor:pointer;font-weight:700}.clan-how ul{margin:10px 0 0;padding-left:18px;color:var(--muted);font-size:13px;display:grid;gap:6px}
.clan-join-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px;align-items:start}
.clan-directory{display:grid;gap:10px}
.clan-dir-card{display:flex;align-items:center;gap:14px;padding:16px}
.clan-dir-card>div{flex:1;min-width:0}.clan-dir-card h3{margin:0;font:20px/1.1 var(--display)}.clan-dir-card p{margin:4px 0;color:var(--muted);font-size:13px}.clan-dir-card small{color:var(--muted)}
.clan-create{padding:20px}.clan-create h3{font:22px/1.1 var(--display);margin:4px 0 10px}
@media(max-width:900px){.clan-duo,.clan-join-layout{grid-template-columns:1fr}.clan-hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.clan-hero{grid-template-columns:auto 1fr}.clan-leave{grid-column:1/-1;justify-self:start}}
[data-theme="light"] :is(.lb-step,.clan-hero-stats>div,.clan-tier-node){background:#fbf8fe;border-color:#d9cde5}
[data-theme="light"] .lb-row.is-you{background:#eadff7;border-color:#b79ce0}
[data-theme="light"] .clan-checks li.is-done{color:#226c43}
/* ---------- Collector trades ---------- */
.trade-builder{padding:20px;margin-bottom:18px}
.trade-builder-row{display:grid;grid-template-columns:170px auto 170px 1fr;gap:16px;align-items:center;margin:14px 0}
.trade-pick{display:grid;gap:6px;justify-items:center;text-align:center}.trade-pick small{color:var(--muted)}
.trade-empty{display:grid;place-items:center;gap:6px;width:150px;aspect-ratio:3/4;border-radius:12px;border:1px dashed var(--v10-line);color:var(--muted)}
.trade-builder-actions{display:grid;gap:8px;justify-items:start}.trade-builder-actions small{color:var(--muted)}
.trade-step{margin:18px 0 10px;font-size:14px}
.trade-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;max-height:470px;overflow:auto;padding:4px}
.trade-option{display:grid;gap:4px;padding:5px;border-radius:12px;border:1px solid transparent;background:none;color:var(--text);cursor:pointer;text-align:center}
.trade-option small{color:var(--muted);font-size:11px}
.trade-option.selected{border-color:var(--v10-lav);background:#be9aef14}
.trade-option.is-missing small{color:var(--v10-mint)}
.trade-offers{padding:20px;margin-bottom:18px}
.trade-offer-list{display:grid;gap:10px}
.trade-offer{display:flex;align-items:center;gap:16px;padding:12px;border-radius:14px;border:1px solid var(--v10-line);flex-wrap:wrap}
.trade-offer.is-accepted{border-color:#89e6b577;background:#89e6b50f}
.trade-offer-cards{display:flex;align-items:center;gap:8px}.trade-offer-cards .meme-card{width:78px}
.trade-offer-copy{display:grid;gap:4px}.trade-offer-copy small{color:var(--muted)}
@media(max-width:820px){.trade-builder-row{grid-template-columns:1fr auto 1fr}.trade-builder-actions{grid-column:1/-1}}

/* ---------- Memepedia progress ---------- */
.archive-progress{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:16px 24px;padding:22px;margin-bottom:16px}
.archive-main strong{display:block;font:54px/1 var(--display)}.archive-main strong small{font-size:26px;color:var(--muted)}
.archive-main p{margin:4px 0 10px;color:var(--muted)}
.archive-bar{height:10px;border-radius:999px;background:#ffffff12;overflow:hidden}
.archive-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#be9aef,#89e6b5)}
.archive-figures{display:flex;gap:10px;flex-wrap:wrap;align-content:start}
.archive-figures>div{padding:12px 16px;border-radius:12px;border:1px solid var(--v10-line);text-align:center;min-width:110px}
.archive-figures b{display:block;font:26px/1.1 var(--display)}.archive-figures small{font:700 10px Inter,sans-serif;letter-spacing:.12em;color:var(--muted)}
.archive-secret{border-color:#d8b66a77!important;background:#000!important;color:var(--v10-gold)}
.archive-rarities{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.archive-rarities span{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--v10-line);font-size:12px}
.archive-rarities i{width:8px;height:8px;border-radius:50%;background:var(--rarity)}
@media(max-width:720px){.archive-progress{grid-template-columns:1fr}}

/* ---------- Daily ---------- */
.daily-mini-row{display:flex;align-items:center;gap:12px;margin:8px 0 12px}
.daily-mini-art{width:62px;height:82px;flex-shrink:0}
.daily-mini-art .booster-art{width:100%!important;height:100%!important;margin:0!important}
.daily-mini-row b{display:block;font-size:14px}.daily-mini-row span{display:block;color:var(--muted);font-size:13px}
.daily-mini-pro{margin-top:4px;color:#f0d995!important}
.daily-mini-cta{width:100%}
.daily-mini-track{display:flex;gap:5px;margin:10px 0 6px}
.daily-mini-track i{flex:1;height:5px;border-radius:3px;background:#ffffff14}
.daily-mini-track i.done{background:var(--v10-mint)}.daily-mini-track i.current{background:var(--v10-lav)}
.daily-card.daily-mini.is-ready{border-color:#be9aef77;box-shadow:0 0 0 1px #be9aef44,0 14px 30px #be9aef1c}
.daily-pro-line{display:flex;align-items:center;gap:6px;margin-top:8px;padding:6px 8px;border-radius:10px;border:1px dashed #d8b66a55;font-size:11px;color:var(--muted);opacity:.7}
.daily-pro-line.is-active{opacity:1;border-style:solid;background:#d8b66a14;color:#f0d995}
.daily-claim-banner{display:flex;align-items:center;gap:18px}
.daily-claim-banner>div:first-child{flex:1}
.daily-banner-art{width:66px;height:88px}.daily-banner-art .booster-art{width:100%!important;height:100%!important}
.daily-claim-banner.is-pro{border-color:#d8b66a55}
.daily-pro{display:grid;justify-items:center;text-align:center;gap:8px;padding:26px}
.daily-pro-crown{width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 6px 16px #0008)}
.daily-pro-track{padding:20px;margin-top:14px}
.daily-pro-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.daily-pro-grid>div{display:grid;gap:3px;padding:12px;border-radius:12px;border:1px solid #d8b66a44;background:#d8b66a0d}
.daily-pro-grid>div.current{border-color:#d8b66a;box-shadow:0 0 0 1px #d8b66a66}
.daily-pro-grid span{color:#f0d995;font-weight:700}.daily-pro-grid small{color:var(--muted)}
.pro-badge{border-color:#d8b66a66!important;color:#f0d995!important}

/* ---------- Meme Conqueror page ---------- */
.commerce-pro-crest img{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 10px 22px #000a)}
.pro-reserve-comparison article{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;text-align:center!important;gap:6px!important}
.pro-reserve-comparison article .booster-art{margin:0 auto 6px!important;float:none!important}
.pro-reserve-comparison article :is(h3,span,b){text-align:center!important;width:100%}
.pro-reserve-comparison article b{font-size:15px!important}
/* Only the Classic reserve changes with Meme Conqueror: its card sits centred. */
.pro-reserve-comparison{grid-template-columns:repeat(auto-fit,minmax(220px,300px))!important;justify-content:center}
.commerce-comparison .commerce-comparison-row{padding:18px 22px!important;font-size:16px!important;align-items:center}
.commerce-comparison .commerce-comparison-row>span:first-child{font-size:16px!important;color:var(--text)!important}
.commerce-comparison .commerce-comparison-row strong{font-size:18px!important;color:#e9d7ff}
.commerce-comparison .commerce-comparison-row.is-head{padding:10px 22px!important;font:800 11px Inter,sans-serif!important;letter-spacing:.12em;color:var(--muted)!important}
.commerce-comparison .commerce-comparison-row.is-head>:is(span,strong,b){font:inherit!important;color:inherit!important}

/* ---------- Settings backups ---------- */
.extra-backups{margin-bottom:18px}
.extra-backup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #ffffff10}
.extra-backup-row .icon{width:15px;height:15px;vertical-align:-2px;margin-right:4px}

/* ---------- Light theme ---------- */
[data-theme="light"] :is(.battle-result-v10,.enchant-stage,.tower-shaft,.trainer-card,.tower-floor,.tower-reward,.trade-offer,.archive-figures>div,.daily-pro-grid>div,.friend-suggestions article){background:#fbf8fe;color:#30253d;border-color:#d9cde5}
[data-theme="light"] :is(.tower-floor-number,.result-rank,.turn-banner .ar-turn-clock){background:#efe7f7;color:#30253d}
[data-theme="light"] .tower-floor.is-current{background:#eadff7}
[data-theme="light"] .tower-floor.is-boss{background:linear-gradient(90deg,#f5e7c4,#fbf8fe)}
[data-theme="light"] .tower-floor.is-boss .tower-floor-state,[data-theme="light"] .tower-reward.is-big span{color:#7a5a1a}
[data-theme="light"] .tower-floor.is-current .tower-floor-state{color:#5b3190}
[data-theme="light"] .turn-banner.is-mine{color:#226c43}[data-theme="light"] .turn-banner.is-enemy{color:#a3284b}
[data-theme="light"] .enchant-ring{box-shadow:none;--ring-empty:#e2d7ee}
[data-theme="light"] :is(.demo-badge,.you-badge){background:#efe7f7;color:#5d4b70}
[data-theme="light"] .pro-status-card{background:#f7efd9;color:#3a2708;border-color:#d8b66a}
[data-theme="light"] .pro-status-card small{color:#7a5a1a}
[data-theme="light"] .daily-pro-line.is-active,[data-theme="light"] .daily-pro-grid span,[data-theme="light"] .daily-mini-pro{color:#7a5a1a!important}
[data-theme="light"] .commerce-comparison .commerce-comparison-row strong{color:#5b3190}
[data-theme="light"] .battle-result-v10 h2{color:#1f7a4a}[data-theme="light"] .battle-result-v10.is-loss h2{color:#a3284b}
[data-theme="light"] .archive-secret{background:#1b1406!important}

/* ---------- V10.2: no selection, centred impacts, light from the cut, frameless large openings ---------- */
/* Game surfaces never show the browser's blue selection: cards, packs, art and labels. */
/* Dialogs sit in the top layer, where browsers restore text selection: block it there too. */
:is(body,dialog,[popover]){-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
:is(input,textarea,select,[contenteditable]:not([contenteditable="false"]),.allow-select,.allow-select *){-webkit-user-select:text;user-select:text}
img,svg{-webkit-user-drag:none}
/* Secret: the Power sits on the gold-outlined plate drawn by the frame. */
.meme-card.card-refit.rarity-secret .card-stats.single-power>span:first-child{position:absolute!important;left:4.667%!important;top:74.875%!important;right:auto!important;bottom:auto!important;width:43.667%!important;height:9.75%!important;margin:0!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;transform:none!important}
/* The impact flash covers the visible dialog and is centred on the revealed card (see impactBurst). */
.impact-flash{position:absolute;left:0;right:auto;bottom:auto;width:100%;background:radial-gradient(circle at var(--fx,50%) var(--fy,45%),color-mix(in srgb,var(--rarity) 85%,#fff) 0%,color-mix(in srgb,var(--rarity) 35%,transparent) 35%,transparent 70%)}
/* Tear: a larger booster. The light stays on the cut, in the pack's own colour (set from its artwork),
   and travels and fades with the lower part of the pack. Gradients fade out before their edges. */
.tear-pack-stage{width:min(390px,74vw,calc((100dvh - 200px)*.75))}
.tear-glow{display:none}
.tear-pack-stage.is-torn :is(.tear-body,.tear-light){animation:v10-pack-open .9s ease-out forwards}
@keyframes v10-pack-open{0%{transform:none;filter:none;opacity:1}35%{transform:scale(1.04);filter:brightness(1.2);opacity:1}100%{transform:translateY(40px) scale(.9);opacity:0}}
.tear-light{position:absolute;inset:0;z-index:2;pointer-events:none}
.tear-light>i{position:absolute;display:block;pointer-events:none}
.tear-light-bloom{left:12%;right:13%;top:calc(21.5% - 48px);height:96px;background:radial-gradient(closest-side,color-mix(in srgb,var(--pack-glow,#be9aef) 70%,#fff) 0%,color-mix(in srgb,var(--pack-glow,#be9aef) 55%,transparent) 38%,color-mix(in srgb,var(--pack-glow,#be9aef) 18%,transparent) 68%,transparent 100%);opacity:calc(var(--tear,0) * .9);transform:scaleY(calc(.45 + var(--tear,0) * .55));transition:opacity .12s linear,transform .12s linear;mix-blend-mode:screen}
.tear-light-core{left:18.6%;right:19%;top:calc(21.5% - 1.5px);height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pack-glow,#be9aef) 35%,#fff) 14%,color-mix(in srgb,var(--pack-glow,#be9aef) 35%,#fff) 86%,transparent);filter:blur(.4px);transform:scaleX(var(--tear,0));opacity:min(1,calc(var(--tear,0) * 3));transition:transform .08s linear}
.tear-pack-stage.is-torn .tear-light-core{transform:scaleX(1);opacity:1}
.tear-pack-stage.is-torn .tear-light-bloom{opacity:1;animation:v10-cut-glow .9s ease-out forwards}
@keyframes v10-cut-glow{0%{transform:scaleY(1);filter:brightness(1)}30%{transform:scaleY(1.35);filter:brightness(1.35)}100%{transform:scaleY(1.1);filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.tear-pack-stage.is-torn :is(.tear-light-core,.tear-light-bloom){animation:none!important}}
.reduce-motion .tear-pack-stage.is-torn :is(.tear-light-core,.tear-light-bloom){animation:none!important}
/* Tear v3. The cut follows each pack's own outline, measured from its artwork (fitTearStage), since
   clan, rank and themed packs are framed differently. The light rises from the cut in a saturated
   version of the pack's colour, never white. Artwork with a painted halo is shown solid while the
   pack is handled, and a live glow follows both pieces instead of the halo being sliced. */
.tear-pack-stage{--pack-l:18.6%;--pack-r:81%;--pack-t:14.2%;--cut:21.5%}
.tear-layers{position:absolute;inset:0;display:block;pointer-events:none}
.tear-body{clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,var(--pack-l) 0,var(--pack-l) var(--cut),var(--pack-r) var(--cut),var(--pack-r) 0,var(--pack-l) 0)}
.tear-strip{clip-path:inset(0 calc(100% - var(--pack-r)) calc(100% - var(--cut)) var(--pack-l))}
.tear-pack-stage.has-halo :is(.tear-body,.tear-strip) img{filter:url(#mm-pack-solid)}
.tear-pack-stage.has-halo .tear-layers{filter:drop-shadow(0 0 14px color-mix(in srgb,var(--pack-glow) 45%,transparent))}
.tear-zone{left:calc(var(--pack-l) - 3.5%);right:calc(100% - var(--pack-r) - 2%);top:calc(var(--pack-t) - 4%);height:calc(var(--cut) - var(--pack-t) + 7%)}
.tear-light-core{left:var(--pack-l);right:calc(100% - var(--pack-r));top:calc(var(--cut) - 1.5px);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pack-glow) 60%,#fff) 14%,color-mix(in srgb,var(--pack-glow) 60%,#fff) 86%,transparent)}
.tear-light-bloom{left:calc(var(--pack-l) - 8%);right:calc(100% - var(--pack-r) - 8%);top:calc(var(--cut) - 100px);height:100px;transform-origin:50% 100%;mix-blend-mode:normal;background:radial-gradient(ellipse 50% 100% at 50% 100%,color-mix(in srgb,var(--pack-glow) 88%,#fff) 0%,color-mix(in srgb,var(--pack-glow) 52%,transparent) 22%,color-mix(in srgb,var(--pack-glow) 15%,transparent) 55%,transparent 100%)}
@keyframes v10-cut-glow{0%{transform:scaleY(1);filter:brightness(1)}30%{transform:scaleY(1.3);filter:brightness(1.12)}100%{transform:scaleY(1.08);filter:brightness(1)}}
@keyframes v10-pack-open{0%{transform:none;filter:none;opacity:1}35%{transform:scale(1.04);filter:brightness(1.06);opacity:1}100%{transform:translateY(40px) scale(.9);opacity:0}}
/* Large openings: one frameless grid of small cards, dealt in place. */
dialog#modal.opening-v10 .bulk-opening{height:auto;min-height:0;display:flex;flex-direction:column;align-items:center;gap:12px}
dialog#modal.opening-v10 .bulk-opening-toolbar{display:flex;align-items:center;justify-content:center;gap:14px;padding:0;width:auto}
dialog#modal.opening-v10 .bulk-opening-toolbar b{font:700 13px Inter,sans-serif;color:#f5f2fb;min-width:64px;text-align:center}
dialog#modal.opening-v10 .bulk-table{display:grid;grid-template-columns:repeat(var(--grid-cols,6),var(--grid-card,120px));gap:var(--grid-gap,12px);justify-content:center;align-content:start;padding:8px;overflow:visible;background:none;border-radius:0;flex:none;min-height:0}
dialog#modal.opening-v10 .bulk-dealt-card{position:relative;width:var(--grid-card,120px);aspect-ratio:3/4;perspective:900px;animation:v10-deal .26s ease-out both}
dialog#modal.opening-v10 .bulk-flip{transition:transform var(--flip-ms,.45s) cubic-bezier(.25,.8,.25,1),scale .35s cubic-bezier(.2,.9,.3,1.2)}
.bulk-dealt-card.is-spotlight{z-index:8}
.bulk-dealt-card.is-spotlight .bulk-flip{scale:1.3}
.bulk-dealt-card.spotlight-out .bulk-flip{scale:1}
.bulk-dealt-card>.reveal-impact{inset:-55% -75%;z-index:-1;transition:opacity .4s ease}
.bulk-dealt-card>.impact-banner{font-size:clamp(18px,2.4vw,32px);z-index:9}
.bulk-dealt-card>.reveal-particles{transition:opacity .4s ease}
.bulk-dealt-card.spotlight-out>:is(.reveal-impact,.reveal-particles){opacity:0}
@keyframes v10-deal{from{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){dialog#modal.opening-v10 .bulk-dealt-card{animation:none}}
.reduce-motion dialog#modal.opening-v10 .bulk-dealt-card{animation:none}
/* Summaries: a compact grid fitted to the window. */
dialog#modal.opening-v10 .opening-summary.is-fitted{display:grid!important;grid-template-columns:repeat(var(--grid-cols),var(--grid-card))!important;gap:var(--grid-gap)!important;justify-content:center;margin:14px auto 18px;max-height:none!important;overflow:visible!important;padding:4px!important}
dialog#modal.opening-v10 .opening-summary.is-fitted .summary-slot{width:var(--grid-card)}
/* Vaults open in the same frameless layer as boosters. */
dialog#modal.opening-v10 :is(.case-opening,.case-result){background:transparent!important;border:0!important;box-shadow:none!important}
.tear-pack-stage.is-torn .tear-line{opacity:0;transition:opacity .2s}
dialog#modal.opening-v10 .opening-summary.is-fitted .summary-slot{min-width:0!important;max-width:none!important;flex:none!important}dialog#modal.opening-v10 .opening-summary.is-fitted .summary-slot .meme-card{width:100%!important;min-width:0!important;max-width:none!important;height:auto!important}
/* The impact flash always covers the whole visible layer (the 1120 px content width does not apply to it). */
dialog#modal.opening-v10>.impact-flash{width:100%!important;max-width:none!important;flex-shrink:0}
/* Card detail: sourced facts from the meme database. */
.detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 4px}.detail-facts>div{background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;padding:8px 10px;min-width:0}.detail-facts dt{font:700 9px Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.detail-facts dd{margin:3px 0 0;font:700 14px Inter,sans-serif;overflow-wrap:anywhere}.detail-facts-note{display:block;color:var(--muted);font-size:11px;margin-top:2px}
[data-theme="light"] .detail-facts>div{background:#2a1d3a0a;border-color:#2a1d3a1f}
/* Secret reveal (owner request, 2026-09-24). Three beats: the screen falls to black while gold cracks
   split the card back and embers are drawn in; a held breath; then a white-gold blast with shockwaves,
   black-and-gold rays and SECRET slammed in. Reduced motion shows only the still result. */
#modal.opening-v10:is(.secret-omen,.secret-reveal)::backdrop{background:#000;transition:background .6s ease}
#modal.secret-omen :is(.stack-layer,.stack-remaining,.stack-controls,.modal-close){opacity:0!important;transition:opacity .5s ease}
.secret-omen-fx{position:absolute;inset:0;z-index:4;pointer-events:none;transition:opacity .2s ease}
.secret-omen-fx.is-done{opacity:0}
/* Drawn on the card back: the cracks tremble with the card, stay inside its edges and turn away with it. */
.stack-back>.secret-cracks{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:hidden}
.secret-cracks path{fill:none;stroke:#ffe6a6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 4px #ffd36b) drop-shadow(0 0 12px #d8b66a);animation:mm-secret-crack .55s cubic-bezier(.6,0,.4,1) forwards;animation-delay:calc(.35s + var(--i) * .27s)}
@keyframes mm-secret-crack{to{stroke-dashoffset:0}}
.secret-embers{position:absolute;left:50%;top:50%;width:0;height:0}
.secret-embers i{position:absolute;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#ffe39a;box-shadow:0 0 8px #ffcd62,0 0 18px #d8b66a;opacity:0;transform:rotate(var(--a)) translateX(var(--r));animation:mm-secret-ember 1.05s cubic-bezier(.55,0,1,.45) infinite;animation-delay:var(--d)}
@keyframes mm-secret-ember{0%{opacity:0;transform:rotate(var(--a)) translateX(var(--r)) scale(.6)}25%{opacity:1}100%{opacity:0;transform:rotate(calc(var(--a) + 40deg)) translateX(14px) scale(1.4)}}
.stack-card.is-secret-charging{animation:mm-secret-tremble 2.7s linear forwards!important}
@keyframes mm-secret-tremble{
  0%{transform:none;filter:drop-shadow(0 0 6px #d8b66a)}
  8%{transform:translate(-1px,1px)}12%{transform:translate(1px,-1px)}16%{transform:translate(-1px,0)}
  24%{transform:translate(2px,1px) rotate(.3deg)}28%{transform:translate(-2px,-1px) rotate(-.3deg);filter:drop-shadow(0 0 14px #d8b66a)}
  36%{transform:translate(3px,-2px) rotate(.6deg)}40%{transform:translate(-3px,2px) rotate(-.6deg)}
  48%{transform:translate(4px,1px) rotate(.9deg)}52%{transform:translate(-4px,-2px) rotate(-.9deg);filter:drop-shadow(0 0 26px #e7c77a) drop-shadow(0 0 60px #d8b66a)}
  60%{transform:translate(5px,-3px) rotate(1.2deg)}64%{transform:translate(-6px,3px) rotate(-1.3deg)}
  70%{transform:translate(6px,2px) rotate(1.5deg)}74%{transform:translate(-7px,-3px) rotate(-1.6deg)}
  78%{transform:translate(7px,3px) rotate(1.6deg)}81%{transform:translate(-6px,-2px) rotate(-1.2deg)}
  84%,100%{transform:scale(1.05);filter:brightness(1.35) drop-shadow(0 0 34px #ffe3a0) drop-shadow(0 0 90px #d8b66a)}
}
.secret-shockwave{position:absolute;left:50%;top:50%;width:0;height:0;z-index:5;pointer-events:none}
.secret-shockwave i{position:absolute;left:-40px;top:-40px;width:80px;height:80px;border-radius:50%;border:3px solid #ffe3a0;box-shadow:0 0 24px #d8b66a,inset 0 0 18px #ffe3a066;opacity:0;animation:mm-secret-wave 1.3s cubic-bezier(.1,.7,.3,1) forwards}
.secret-shockwave i:nth-child(2){border-color:#fff;animation-delay:.12s}
.secret-shockwave i:nth-child(3){border-color:#8a6a2c;border-width:6px;animation-delay:.26s}
@keyframes mm-secret-wave{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(15)}}
.secret-rays-back{position:absolute;left:50%;top:50%;width:260%;aspect-ratio:1;translate:-50% -50%;z-index:-1;pointer-events:none;border-radius:50%;background:repeating-conic-gradient(from 8deg,#000 0deg 9deg,#d8b66a44 9deg 13deg,#000 13deg 24deg);-webkit-mask:radial-gradient(circle,#000 18%,transparent 68%);mask:radial-gradient(circle,#000 18%,transparent 68%);animation:mm-secret-spin 14s linear infinite reverse,mm-secret-fade-in 1s ease-out both}
@keyframes mm-secret-spin{to{rotate:360deg}}
@keyframes mm-secret-fade-in{from{opacity:0}}
.stack-stage.rarity-pop-secret .stack-card{filter:drop-shadow(0 0 16px #d8b66a) drop-shadow(0 0 44px #d8b66a99)}
.impact-banner.impact-secret{font-size:clamp(46px,8vw,96px);letter-spacing:.12em;color:transparent;background:linear-gradient(180deg,#fff6d8 0%,#f3d88c 45%,#b98a36 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:2px #1a1206;text-shadow:none;filter:drop-shadow(0 6px 0 #000) drop-shadow(0 0 26px #d8b66a);animation:mm-secret-slam 3.4s cubic-bezier(.2,1.4,.3,1) both!important}
@keyframes mm-secret-slam{0%{opacity:0;transform:translate(-50%,-50%) scale(2.6);letter-spacing:.9em}14%{opacity:1;transform:translate(-50%,-50%) scale(.94);letter-spacing:.1em}20%{transform:translate(-50%,-50%) scale(1.04)}26%,82%{opacity:1;transform:translate(-50%,-50%) scale(1);letter-spacing:.12em}100%{opacity:0;transform:translate(-50%,-50%) scale(1.08);letter-spacing:.2em}}
@media(prefers-reduced-motion:reduce){.secret-omen-fx,.secret-cracks,.secret-shockwave,.secret-rays-back{display:none}.stack-card.is-secret-charging{animation:none!important}}
.reduce-motion :is(.secret-omen-fx,.secret-cracks,.secret-shockwave,.secret-rays-back){display:none}
.reduce-motion .stack-card.is-secret-charging{animation:none!important}
/* V11 Enchantment (owner request 2026-09-25): the rule is shown with its live numbers, wager cards keep
   their place and carry a "Selected" badge, and a sticky bar keeps the sum and the spin button in reach. */
.enchant-v11 .enchant-stage{grid-template-columns:minmax(0,1fr) minmax(300px,380px) minmax(0,1fr);align-items:start}
.enchant-v11 .enchant-side{align-content:start}
.enchant-v11 .enchant-tray-head{justify-content:space-between;align-items:center;width:100%}
.enchant-v11 .enchant-tray-head span b{color:var(--text)}
.enchant-v11 .enchant-tray-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.enchant-v11 .enchant-chip,.enchant-v11 .enchant-slot{display:block;aspect-ratio:3/4;min-width:0}
.enchant-v11 .enchant-chip .meme-card{width:100%}
.enchant-v11 .enchant-slot{border:1px dashed var(--v10-line);border-radius:8px;background:#ffffff05}
.enchant-v11 .enchant-tray-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.45;text-align:center}
.enchant-equation{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;flex-wrap:nowrap}
.enchant-equation>span{display:grid;justify-items:center;gap:3px;min-width:0}
.enchant-equation b{font:28px/1 var(--display);letter-spacing:0;white-space:nowrap}
.enchant-equation small{color:var(--muted);font:700 9px Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.enchant-equation>i{font:700 22px/1 Inter,sans-serif;font-style:normal;color:var(--v10-lav)}
.enchant-equation-chance b{color:var(--v10-gold)}
.enchant-equation.is-example{opacity:.6}
.enchant-v11 .enchant-dial{width:220px;height:220px}
.enchant-v11 .enchant-rules{max-width:340px;line-height:1.5}
.enchant-v11 .enchant-rules b{color:var(--text)}
.enchant-note{display:flex;align-items:center;gap:6px;max-width:340px;margin:0;padding:8px 12px;border-radius:10px;border:1px solid #89e6b566;background:#89e6b514;color:#c9f4dc;font-size:12px;text-align:left}
.enchant-note .icon{width:14px;height:14px;flex-shrink:0}
.enchant-scale{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px;padding-top:14px;border-top:1px solid var(--v10-line)}
.enchant-scale>span:not(.eyebrow){display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:#ffffff08;border:1px solid var(--v10-line);font-size:11px;color:var(--muted)}
.enchant-scale>span>i{width:7px;height:7px;border-radius:50%;background:var(--rarity)}
.enchant-scale>span b{color:var(--text)}
.enchant-scale>.eyebrow{margin-right:4px}
.enchant-v11 .enchant-filters{display:flex;flex-wrap:wrap;align-items:end;gap:10px 14px;margin-top:22px}
.enchant-v11 .enchant-filters{align-items:flex-end}.enchant-v11 .enchant-filters .search-field{min-width:220px;flex:1 1 220px;max-width:340px;margin:0}.enchant-v11 .enchant-filters .ar-filter-bar{margin:0}
.enchant-v11 .enchant-columns{grid-template-columns:minmax(0,5fr) minmax(0,7fr);margin-top:14px}
.enchant-v11 .enchant-scroll{max-height:min(900px,calc(100dvh - 210px))}
.enchant-v11 .enchant-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px 10px;padding:6px 4px 2px}
.enchant-v11 .enchant-option{position:relative;display:grid;gap:5px;padding:0;border:0;background:none;border-radius:0}
.enchant-v11 .enchant-option:hover{background:none}
.enchant-option-main{position:relative;display:block;width:100%;padding:0;border:0;background:none;color:inherit;cursor:pointer;border-radius:10px}
.enchant-option-main:disabled{cursor:default}
.enchant-option-main .meme-card{width:100%;transition:transform .15s ease}
.enchant-option-main:not(:disabled):hover .meme-card{transform:translateY(-2px)}
.enchant-v11 .enchant-option.in-wager .meme-card{box-shadow:0 0 0 2px var(--v10-lav),0 0 18px #be9aef66!important}
.enchant-v11 .enchant-option.selected .meme-card{box-shadow:0 0 0 2px var(--v10-gold),0 0 18px #d8b66a66!important}
.enchant-v11 .enchant-option.is-spent .meme-card{opacity:.55}
.enchant-picked{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:5;display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;background:var(--v10-lav);color:#1b1226;font:800 11px/1 Inter,sans-serif;white-space:nowrap;box-shadow:0 4px 14px #0007;pointer-events:none}
.enchant-picked .icon{width:12px;height:12px}
.enchant-option.selected .enchant-picked{background:var(--v10-gold)}
.enchant-unpick{position:absolute;right:-4px;top:-4px;z-index:6;width:26px;height:26px;border-radius:50%;border:2px solid var(--v10-panel);background:var(--v10-ruby);color:#1b1226;font:900 16px/1 Inter,sans-serif;display:grid;place-items:center;cursor:pointer;box-shadow:0 3px 8px #0006;padding:0}
.enchant-option-meta{display:grid;gap:1px;text-align:center}
.enchant-option-meta b{font-size:12px}.enchant-option-meta small{color:var(--muted);font-size:11px}
.enchant-more{display:block;margin:14px auto 4px}
.enchant-bar{position:sticky;bottom:12px;z-index:30;display:flex;align-items:center;gap:14px;margin-top:16px;padding:10px 12px 10px 18px;border-radius:18px;border:1px solid color-mix(in srgb,var(--v10-lav) 35%,var(--v10-line));background:var(--v10-panel);box-shadow:0 -6px 24px #0007,0 12px 32px #000a}
.enchant-bar>i{font:700 20px/1 Inter,sans-serif;font-style:normal;color:var(--v10-lav)}
.enchant-bar-part{display:grid;gap:2px;min-width:0}
.enchant-bar-part small{color:var(--muted);font:700 9px Inter,sans-serif;letter-spacing:.12em}
.enchant-bar-part b{font:20px/1.05 var(--display);white-space:nowrap}
.enchant-bar-part span{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.enchant-bar-target{display:flex;align-items:center;gap:10px}
.enchant-bar-target>div{display:grid;gap:2px;min-width:0}
.enchant-bar-thumb{width:38px;flex:none}
.enchant-bar-thumb .meme-card{width:100%}
.enchant-bar-chance b{color:var(--v10-gold);font-size:26px}
.enchant-bar .enchant-roll{margin-left:auto;min-width:190px}
.enchant-bar.is-idle{opacity:.85}
@media(max-width:1180px){.enchant-v11 .enchant-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.enchant-v11 .enchant-centre{order:0}.enchant-v11 .enchant-target{order:1}.enchant-v11 .enchant-stage>.enchant-side:first-child{grid-column:1/-1;order:2}.enchant-v11 .enchant-scale{order:3}}
@media(max-width:980px){.enchant-v11 .enchant-stage{grid-template-columns:minmax(0,1fr)}.enchant-v11 .enchant-stage>*{grid-column:1/-1}.enchant-v11 .enchant-columns{grid-template-columns:minmax(0,1fr)}.enchant-v11 .enchant-scroll{max-height:min(640px,70dvh);overflow-y:auto}}
@media(max-width:640px){.enchant-equation b{font-size:21px}.enchant-equation{gap:6px}.enchant-v11 .enchant-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.enchant-bar{gap:8px;padding:8px 8px 8px 12px;bottom:8px}.enchant-bar-thumb,.enchant-bar-part span,.enchant-bar-part small{display:none}.enchant-bar-part b{font-size:15px}.enchant-bar-chance b{font-size:18px}.enchant-bar>i{font-size:15px}.enchant-bar .enchant-roll{min-width:0;padding-inline:12px}}
[data-theme="light"] .enchant-bar{background:#fbf8fe;border-color:#d9cde5;box-shadow:0 12px 28px #3a28551f}
[data-theme="light"] .enchant-note{color:#1f6b45;background:#e6f7ee}
[data-theme="light"] .enchant-slot{background:#0000000a;border-color:#cdbfdd}
[data-theme="light"] .enchant-unpick{border-color:#fbf8fe}
/* V11 auction lot (owner request 2026-09-25): frameless like a booster opening; the card keeps the size it
   has in the auction grid and nothing scrolls inside the card. */
.auction-lot>.auction-lot-card{display:block;align-self:center;width:min(100%,240px);padding:0;border:0;background:none;cursor:pointer;border-radius:12px}
.auction-lot>.auction-lot-card .meme-card{width:100%;transition:transform .15s ease}
.auction-lot>.auction-lot-card:hover .meme-card{transform:translateY(-3px)}
dialog#modal.lot-v11-modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;inset:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:24px 16px!important;overflow:hidden auto!important;scrollbar-gutter:auto;color:#f5f2fb;display:grid;place-items:center}
dialog#modal.lot-v11-modal::backdrop{background:rgba(7,5,12,.86);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
dialog#modal.lot-v11-modal>.modal-close{position:fixed;top:18px;right:18px}
.lot-v11{display:grid;grid-template-columns:240px minmax(0,360px);gap:32px;align-items:center;justify-content:center;width:100%;max-width:680px}
.lot-v11-card{width:240px}
.lot-v11-card .meme-card{width:240px}
.lot-v11-panel{display:grid;gap:12px;min-width:0}
.lot-v11-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.lot-v11-head b{font:700 13px Inter,sans-serif;color:var(--v10-gold)}
.lot-v11-panel h2{margin:0;font:30px/1.05 var(--display);overflow-wrap:anywhere}
.lot-v11-meta{margin:0;color:#b9acc6;font-size:12px}
.lot-v11-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lot-v11-prices>div{display:grid;gap:4px;padding:10px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff14}
.lot-v11-prices span{color:#b9acc6;font:700 9px Inter,sans-serif;letter-spacing:.1em}
.lot-v11-prices .coin-inline{font:700 15px Inter,sans-serif}
.lot-v11-bid{display:grid;gap:6px}
.lot-v11-bid label{color:#d0bbdf;font-size:12px;font-weight:700}
.lot-v11-bid-row{display:flex;gap:8px}
.lot-v11-bid input{flex:1;min-width:0;padding:12px 14px;border-radius:12px;border:1px solid #59436d;background:#1d1627;color:#f3eaff;font:700 18px Inter,sans-serif}
.lot-v11-bid input:focus{outline:2px solid var(--v10-lav);outline-offset:1px}
.lot-v11-bid small,.lot-v11-short{color:#b9acc6;font-size:11px}
.lot-v11-buy{width:100%;justify-content:center}
.lot-v11-note{margin:0;color:#b9acc6;font-size:12px;line-height:1.55}
@media(max-width:640px){.lot-v11{grid-template-columns:minmax(0,1fr);gap:16px;justify-items:center}.lot-v11-card,.lot-v11-card .meme-card{width:190px}.lot-v11-panel{width:100%;max-width:420px}.lot-v11-panel h2{font-size:24px;text-align:center}.lot-v11-head{justify-content:center}.lot-v11-meta{text-align:center}}
[data-theme="light"] dialog#modal.lot-v11-modal{color:#30253d}
[data-theme="light"] dialog#modal.lot-v11-modal::backdrop{background:rgba(245,240,250,.9)}
[data-theme="light"] .lot-v11-prices>div{background:#fff;border-color:#d9cde5}
[data-theme="light"] .lot-v11-bid input{background:#fff;color:#30253d;border-color:#cebadc}
[data-theme="light"] :is(.lot-v11-meta,.lot-v11-note,.lot-v11-bid small,.lot-v11-short,.lot-v11-prices span){color:#6b5a7d}
/* V11 bulk recycling in My collection (owner request 2026-09-25). */
.collection-heading-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.recycle-panel{padding:20px;margin-top:18px}
.recycle-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.recycle-head h2{margin:4px 0 6px;font:26px/1.1 var(--display)}
.recycle-head p{margin:0;max-width:720px;color:var(--muted);font-size:13px;line-height:1.55}
.recycle-rates{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--v10-line)}
.recycle-rates>span:not(.eyebrow){display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:#ffffff08;border:1px solid var(--v10-line);font-size:11px;color:var(--muted)}
.recycle-rates>span>i{width:7px;height:7px;border-radius:50%;background:var(--rarity)}
.recycle-rates>span b{color:var(--text)}
.recycle-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:16px 0 14px;color:var(--muted);font-size:12px}
.recycle-tools>span{margin-right:auto}
.recycle-grid{gap:14px 12px}
.recycle-option{position:relative;display:grid;gap:5px;min-width:0}
.recycle-option-main{position:relative;display:block;width:100%;padding:0;border:0;background:none;color:inherit;cursor:pointer;border-radius:10px}
.recycle-option-main:disabled{cursor:default}
.recycle-option-main .meme-card{width:100%;transition:transform .15s ease}
.recycle-option-main:not(:disabled):hover .meme-card{transform:translateY(-2px)}
.recycle-option.is-picked .meme-card{box-shadow:0 0 0 2px var(--v10-mint),0 0 18px #89e6b566!important}
.recycle-option.is-spent .meme-card{opacity:.55}
.recycle-picked{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:5;display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;background:var(--v10-mint);color:#10251a;font:800 11px/1 Inter,sans-serif;white-space:nowrap;box-shadow:0 4px 14px #0007;pointer-events:none}
.recycle-picked .icon{width:12px;height:12px}
.recycle-unpick{position:absolute;right:-4px;top:-4px;z-index:6;width:26px;height:26px;padding:0;border-radius:50%;border:2px solid var(--v10-panel);background:var(--v10-ruby);color:#1b1226;font:900 16px/1 Inter,sans-serif;display:grid;place-items:center;cursor:pointer;box-shadow:0 3px 8px #0006}
.recycle-meta{display:grid;gap:1px;text-align:center}.recycle-meta b{font-size:12px}.recycle-meta small{color:var(--muted);font-size:11px}
.recycle-more{display:block;margin:16px auto 0}
.recycle-bar{position:sticky;bottom:12px;z-index:30;display:flex;align-items:center;gap:22px;margin-top:16px;padding:10px 12px 10px 20px;border-radius:18px;border:1px solid color-mix(in srgb,var(--v10-mint) 35%,var(--v10-line));background:var(--v10-panel);box-shadow:0 -6px 24px #0007,0 12px 32px #000a}
.recycle-bar>div{display:grid;gap:2px}
.recycle-bar small{color:var(--muted);font:700 9px Inter,sans-serif;letter-spacing:.12em}
.recycle-bar b{font:20px/1.05 var(--display);white-space:nowrap}
.recycle-bar-sparks{color:var(--v10-mint)}
.recycle-bar .btn{margin-left:auto}
.recycle-bar.is-idle{opacity:.85}
.recycle-confirm-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
@media(max-width:640px){.recycle-head{flex-direction:column}.recycle-bar{gap:12px;padding:8px 8px 8px 14px;bottom:8px}.recycle-bar b{font-size:15px}.collection-heading-actions{justify-content:flex-start}}
[data-theme="light"] .recycle-bar{background:#fbf8fe;border-color:#d9cde5;box-shadow:0 12px 28px #3a28551f}
[data-theme="light"] .recycle-unpick{border-color:#fbf8fe}
[data-theme="light"] .recycle-bar-sparks{color:#1f7a4d}
/* V11 clans (owner request 2026-09-25): "Find a clan" and "Create a clan", Clash of Clans style profiles. */
.clan-badge{display:grid;place-items:center;flex:none;width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--clan,#be9aef) 55%,#1b1226),var(--clan,#be9aef));color:#140f1c;font:20px/1 var(--display);letter-spacing:0;box-shadow:inset 0 0 0 2px #ffffff33,0 6px 18px color-mix(in srgb,var(--clan,#be9aef) 30%,transparent);overflow:hidden;text-overflow:clip;white-space:nowrap}
.clan-hero .clan-badge.clan-tag-big{width:72px;height:72px;font-size:22px;color:#140f1c;background:linear-gradient(135deg,color-mix(in srgb,var(--clan,#be9aef) 55%,#1b1226),var(--clan,#be9aef))}
.clan-facts{display:flex;flex-wrap:wrap;gap:6px 8px;margin:8px 0 6px;padding:0;list-style:none}
.clan-facts li{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:#ffffff08;border:1px solid var(--v10-line);color:var(--muted);font-size:11px}
.clan-facts .icon{width:12px;height:12px;flex:none;color:var(--clan,#be9aef)}
.clan-hero-description{color:var(--text)!important;font-size:13px!important;margin:2px 0 0!important}
.clan-find{padding:18px}
.clan-find-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.clan-find-bar .search-field{flex:1 1 260px;margin:0;min-width:0}
.clan-find-bar select{min-width:170px}
.clan-joinable{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap;cursor:pointer}
.clan-find-note{margin:12px 0 0;color:var(--muted);font-size:12px}
.clan-find-note b{color:var(--text)}
.clan-find-empty{margin-top:18px}
.clan-results{margin-top:16px}
.clan-list-v11{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:14px;margin-top:10px}
.clan-card-v11{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;padding:16px;border-color:color-mix(in srgb,var(--clan,#be9aef) 25%,var(--v10-line))}
.clan-card-main{min-width:0}
.clan-card-main h3{margin:0;font:22px/1.1 var(--display);overflow-wrap:anywhere}
.clan-card-main p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45;min-height:0}
.clan-card-main p:empty{display:none}
.clan-demo-note{color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.clan-card-v11>.btn{align-self:center;white-space:nowrap}
.clan-create-v11{padding:22px}
.clan-create-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);gap:28px;align-items:start}
.clan-create-fields{display:grid;gap:14px}
.clan-create-fields h2{margin:0;font:28px/1.1 var(--display)}
.clan-create-fields label,.clan-create-fields legend{display:grid;gap:6px;color:#d0bbdf;font-size:12px;font-weight:700}
.clan-create-fields input:not([type=radio]),.clan-create-fields select{width:100%;min-width:0;padding:11px 12px;border-radius:10px;border:1px solid #59436d;background:#1d1627;color:#f3eaff;font:500 14px Inter,sans-serif;box-sizing:border-box}
.clan-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.clan-field-row .clan-tag-field{max-width:none}
.clan-create-fields fieldset{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:8px}
.clan-create-fields fieldset legend{width:100%;margin-bottom:6px}
.clan-type-field label{display:block;cursor:pointer}
.clan-type-field input{position:absolute;opacity:0;pointer-events:none}
.clan-type-field span{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;border:1px solid var(--v10-line);background:#ffffff06;color:var(--muted);font-size:12px;font-weight:700}
.clan-type-field span .icon{width:14px;height:14px}
.clan-type-field input:checked+span{border-color:var(--v10-lav);background:#be9aef1f;color:var(--text)}
.clan-type-field input:focus-visible+span{outline:2px solid var(--v10-lav);outline-offset:2px}
.clan-color-field label{display:block;cursor:pointer}
.clan-color-field input{position:absolute;opacity:0;pointer-events:none}
.clan-color-field span{display:block;width:30px;height:30px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 2px #0003}
.clan-color-field input:checked+span{box-shadow:0 0 0 2px var(--v10-panel),0 0 0 4px var(--swatch)}
.clan-color-field input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}
.clan-create-side{display:grid;gap:12px;position:sticky;top:90px}
.clan-create-side .clan-card-v11{grid-template-columns:auto minmax(0,1fr)}
.clan-create-side .muted{margin:0;font-size:12px;line-height:1.5}
.clan-create-submit{justify-content:center}
@media(max-width:900px){.clan-create-grid{grid-template-columns:minmax(0,1fr)}.clan-create-side{position:static}.clan-list-v11{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.clan-card-v11{grid-template-columns:auto minmax(0,1fr)}.clan-card-v11>.btn{grid-column:1/-1;width:100%;justify-content:center}.clan-field-row{grid-template-columns:minmax(0,1fr)}.clan-badge{width:52px;height:52px;font-size:16px}}
[data-theme="light"] .clan-create-fields input:not([type=radio]),[data-theme="light"] .clan-create-fields select{background:#fff;color:#30253d;border-color:#cebadc}
[data-theme="light"] .clan-create-fields label,[data-theme="light"] .clan-create-fields legend{color:#604370}
[data-theme="light"] .clan-facts li{background:#fff;border-color:#d9cde5}
/* V11 notification center (owner request 2026-09-25): friend requests, 1v1 invitations, trade answers. */
.notif-bell{position:relative}
.notif-count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--v10-ruby);color:#1b1226;font:800 10px/18px Inter,sans-serif;text-align:center;box-shadow:0 0 0 2px var(--bg,#120e19)}
.notif-bell.has-news .icon{animation:notif-ring 1.8s ease 1}
@keyframes notif-ring{0%,100%{transform:none}15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-4deg)}}
@media(prefers-reduced-motion:reduce){.notif-bell.has-news .icon{animation:none}}
.reduce-motion .notif-bell.has-news .icon{animation:none}
dialog#modal.notif-modal{width:min(520px,calc(100vw - 24px))!important;max-width:520px!important;height:min(680px,calc(100dvh - 24px))!important;max-height:calc(100dvh - 24px)!important;margin:12px 12px auto auto!important;padding:0!important;border-radius:20px;scrollbar-gutter:auto!important}
.notif-center{display:grid;gap:14px;padding:26px 22px 20px}
.notif-head h2{margin:4px 0 0;font:26px/1.1 var(--display)}
.notif-section{display:grid;gap:8px}
.notif-section h3{margin:0;color:var(--muted);font:700 11px Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.notif-note{margin:-2px 0 2px;color:var(--muted);font-size:11px}
.notif-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:#ffffff07;border:1px solid var(--v10-line)}
.notif-row.is-incoming,.notif-row.is-ready{border-color:color-mix(in srgb,var(--v10-lav) 45%,var(--v10-line));background:#be9aef12}
.notif-row.is-new{border-color:color-mix(in srgb,var(--v10-mint) 40%,var(--v10-line))}
.notif-face{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;overflow:hidden;background:#2a2238;flex:none}
.notif-face img{width:100%;height:100%;object-fit:cover}
.notif-face b{font:14px var(--display)}
.notif-copy{display:grid;gap:2px;min-width:0}
.notif-copy b{font-size:13px}
.notif-copy span{color:var(--muted);font-size:12px;line-height:1.4}
.notif-copy time{color:var(--v10-gold);font-weight:700}
.notif-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.notif-empty{display:grid;justify-items:center;gap:8px;padding:30px 10px;color:var(--muted);text-align:center;border:1px dashed var(--v10-line);border-radius:14px}
.notif-empty .icon{width:26px;height:26px}
.notif-footer{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.friend-requests .section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.friend-requests h3{margin:4px 0 0}
.friend-row.is-request{border-color:color-mix(in srgb,var(--v10-lav) 40%,var(--v10-line))}
@media(max-width:560px){dialog#modal.notif-modal{margin:auto!important;height:calc(100dvh - 24px)!important}.notif-row{grid-template-columns:auto minmax(0,1fr)}.notif-actions{grid-column:1/-1;justify-content:stretch}.notif-actions .btn{flex:1;justify-content:center}}
[data-theme="light"] .notif-row{background:#fff;border-color:#d9cde5}
[data-theme="light"] .notif-row.is-incoming,[data-theme="light"] .notif-row.is-ready{background:#f4ecfd}
[data-theme="light"] .notif-face{background:#eee6f7}
/* V11 openings (owner request 2026-09-25): tap-or-tear switch, a stack that slides instead of jumping,
   and the recap of cards left unrevealed when an opening is cut short. */
.tear-mode-switch{display:block;margin:14px auto 0;padding:6px 10px;border:0;border-radius:999px;background:#ffffff0d;color:#cfc3de;font:600 12px Inter,sans-serif;cursor:pointer}
.tear-mode-switch:hover{background:#ffffff1a;color:#fff}
.opening-v10 .stack-stage .stack-layer{transition:transform .24s cubic-bezier(.2,.8,.2,1)}
.opening-v10 .stack-stage.is-advancing .stack-layer{transform:translate(calc((var(--layer) - 1)*var(--stack-step)),calc((var(--layer) - 1)*var(--stack-step)*-.7))}
.opening-v10 .stack-stage.is-advancing .stack-card{transition:transform .26s cubic-bezier(.4,0,.6,1),opacity .22s ease .04s!important;transform:translate(-18%,-4%) rotate(-7deg) scale(.96);opacity:0}
.opening-v10 .stack-stage.is-advancing :is(.reveal-impact,.impact-banner,.reveal-particles){opacity:0;transition:opacity .2s ease}
.reduce-motion .opening-v10 .stack-stage .stack-layer{transition:none}
dialog#modal.unseen-modal{width:min(640px,calc(100vw - 32px))!important;max-width:640px!important}
.unseen-recap{text-align:center}
.unseen-recap-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:16px 0 18px}
.unseen-recap-slot{width:var(--recap-card,110px);flex:none}
.unseen-recap-slot .meme-card{width:100%}
[data-theme="light"] .tear-mode-switch{background:#0000000a;color:#5b4a6d}

/* V11: inline forms (friend search) wrap on phones instead of pushing the page sideways. */
.extra-inline{flex-wrap:wrap}.extra-inline>label{flex:0 1 auto;min-width:0}.extra-inline>label input{min-width:0;max-width:100%}.extra-inline>.btn{flex:0 0 auto}
.collection-more{display:block;margin:18px auto 4px}
/* Admin ladder test packs (2026-09-25): two buttons side by side, wrapping on narrow screens. */
.admin-ladder-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-ladder-actions .btn{flex:1 1 auto;min-width:0}
@media(max-width:1100px){.admin-tool .admin-ladder-actions{grid-column:2}.admin-ladder-actions .btn{flex:0 1 auto}}
/* Local admin: tabs and the card control room (2026-09-25). Tables scroll inside their own frame, so the
   page never scrolls sideways on a phone. */
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.admin-tabs .btn{flex:0 0 auto}
.control-room{display:grid;gap:14px;min-width:0}
.control-intro{padding:18px 20px}.control-intro h2{margin:4px 0 6px}.control-intro p{margin:0;max-width:880px;color:var(--muted,#b9b0c8)}
.control-summary-wrap,.control-table-wrap{overflow-x:auto;border:1px solid #ffffff14;border-radius:14px;background:#15111c}
.control-summary,.control-table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.control-summary th,.control-table th{position:sticky;top:0;z-index:1;background:#1d1726;color:#cbbfdc;font-weight:700;text-align:left;padding:9px 10px;white-space:nowrap;border-bottom:1px solid #ffffff14}
.control-summary td,.control-table td{padding:8px 10px;border-bottom:1px solid #ffffff0d;vertical-align:middle;white-space:nowrap}
.control-table td small{display:block;color:#9d93ad;font-size:11px;margin-top:2px}
.control-table tr:hover td{background:#ffffff06}
.control-card{display:flex;align-items:center;gap:10px;min-width:230px;max-width:340px;white-space:normal!important}
.control-card b{display:block;line-height:1.2}.control-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.control-thumb{flex:0 0 44px;width:44px;height:36px;border-radius:7px;overflow:hidden;background:#221b2c;box-shadow:0 0 0 2px var(--rarity)}
.control-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.control-rarity{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:color-mix(in srgb,var(--rarity),#fff 25%)}
.control-rarity:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--rarity);box-shadow:0 0 6px var(--rarity)}
.control-count{margin:0;color:#9d93ad;font-size:12.5px}
.control-filters{flex-wrap:wrap}
[data-theme="light"] :is(.control-summary-wrap,.control-table-wrap){background:#fff;border-color:#0000001a}
[data-theme="light"] :is(.control-summary th,.control-table th){background:#f1ecf7;color:#4b3f5c}
[data-theme="light"] .control-table td small{color:#6f647f}
/* Stale tab notice (2026-09-25): shown when a newer build of the game runs in another tab. */
.stale-tab-banner{position:fixed;left:50%;top:14px;transform:translateX(-50%);z-index:9999;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;max-width:min(680px,calc(100vw - 32px));padding:12px 16px;border-radius:14px;background:#2a1830;border:1px solid #f4769c88;box-shadow:0 12px 32px #000a;color:#fbeef6}
.stale-tab-banner b{flex-basis:100%}.stale-tab-banner span{flex:1 1 240px;color:#e9cfe0;font-size:13px}
/* Vault hover (owner request 2026-09-25): the case lifts and tilts a little, its glow breathes in the edition's
   colour and one light sweeps across the case itself (masked by its own art). Leaving settles it back
   smoothly. Nothing moves with reduced motion. */
.vault-product .case-art-v10{position:relative;transition:transform .45s cubic-bezier(.2,.8,.25,1),filter .45s ease;transform-origin:50% 70%}
.vault-product .case-art-v10:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 38%,#ffffff70 50%,transparent 62%) no-repeat;background-size:250% 100%;background-position:120% 0;-webkit-mask:var(--case-mask) center/contain no-repeat;mask:var(--case-mask) center/contain no-repeat;opacity:0;transition:opacity .3s ease}
.vault-product:is(:hover,:focus-within) .case-art-v10{transform:translateY(-7px) rotate(-1.4deg) scale(1.04);filter:drop-shadow(0 14px 24px color-mix(in srgb,var(--case-accent,#b89cff) 42%,transparent))}
.vault-product:is(:hover,:focus-within) .case-art-v10:after{opacity:1;animation:vault-sweep 1.5s cubic-bezier(.35,.1,.25,1) .1s both}
@keyframes vault-sweep{from{background-position:120% 0}to{background-position:-40% 0}}
@media(prefers-reduced-motion:reduce){.vault-product .case-art-v10{transition:none;animation:none!important;transform:none!important}.vault-product .case-art-v10:after{display:none}}
.reduce-motion .vault-product .case-art-v10{transition:none;animation:none!important;transform:none!important}.reduce-motion .vault-product .case-art-v10:after{display:none}
/* Ten vault editions (2026-09-25): three or four per row on a computer, one per row on a phone. */
.vault-v6 .vault-shop-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr))}
.vault-v6 .vault-shop-grid .vault-product{padding-left:18px;padding-right:18px}
.vault-v6 .vault-shop-grid .case-odds-inline dl{column-gap:12px}
/* Local admin: Open anything (2026-09-25). One tile per openable item; the art keeps its own proportions. */
.admin-open{display:grid;gap:18px}.admin-open-group{display:grid;gap:10px}
.admin-open-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}.admin-open-head h2{margin:0;font-size:20px}.admin-open-head span{color:#9d93ad;font-size:12.5px}
.admin-open-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,168px),1fr));gap:12px}
.admin-open-tile{display:grid;justify-items:center;align-content:start;gap:6px;padding:12px 10px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--open-color) 35%,#ffffff14);background:radial-gradient(ellipse at 50% 20%,color-mix(in srgb,var(--open-color) 16%,transparent),transparent 70%),#15111c;text-align:center;min-width:0}
.admin-open-art{display:grid;place-items:center;width:100%;height:132px;overflow:visible}
.admin-open-art>*{max-width:132px!important;max-height:132px;width:100%!important;margin:0!important;transform:none!important;scale:1!important}
.admin-open-art .packaging-image,.admin-open-art img{max-height:132px;width:auto;max-width:100%;object-fit:contain}
.admin-open-tile b{font-size:13px;line-height:1.2}.admin-open-tile small{color:#9d93ad;font-size:11px}
