/* skin.css — the GUI Pro: Casual Game skin, applied one component at a time so each can be judged on its own.
   Converted so far:
     1. bottom bar: DROP (with the shot clock), SHAKE, drop pips
     2. score strip: CSS in the pack's palette (navy well, blue / red / yellow cells), streak well tinted by streak colour
     3. prizes: the pack's gems (one per colour, a coin for gold) with the chip value on top; the flying copy is the same gem
     4. card icons: the pack's item icons in the tray, the pack offer and My Cards
     5. card frames: offer cards and My Cards on the pack's card frames by rarity (grey / blue / purple) with a rarity badge; two cards per row everywhere; tray colours match
     6. panel buttons: TAP TO START (green), TRY AGAIN / BACK (yellow), MY CARDS (blue) and the title toggles on the pack's button sprites
     7. panels: overlays on the pack's navy popup, the level-cleared label on the yellow ribbon, the title on the blue flag; text in the pack's light blues
     8. HUD: progress bar on the pack's yellow slider fill in a dark well, round sound button with the pack's speaker icons, labels in light blue
     9. pit and frame: the pack's navy palette for the pit, app background, HUD, tray and bar; a soft glow behind the pile
    10. claw: redrawn on the canvas in the pack's cartoon style (navy outline, steel fill, yellow head plate); see drawClaw in game.js
    11. font: Lilita One on display text (score, labels, buttons, strip numbers, card names, badges, canvas numbers); body text stays system
    12. main menu: START / SETTINGS / MANUAL / CREDITS; how-to text lives in the manual
    13. multi-pick packs: a KEEP 2 label above the cards once the pack is open
    14. pause (HUD menu button, Escape) with RESUME / MY CARDS / MAIN MENU; MAIN MENU on the pack screen too
   Load order must be style.css, then assets/ui/sprites.css, then skin.css: style.css uses the `border` shorthand, which resets border-image. A sprite element carries `class="s s-<name>"`; --k scales the
   sprite's caps to the element's height. Never use the `border` shorthand on a sprite element (it resets border-image). */

/* ---------- 1. bottom bar ---------- */
.bar-row { display: flex; gap: 10px; }
.shake-btn, .drop-btn, .drop-btn.ready { --k: 0.34; appearance: none; border-radius: 0; background: none; box-shadow: none; color: #fff; text-shadow: 0 2px 0 rgba(0,0,0,0.35); }
.shake-btn { font-size: 15px; letter-spacing: 0.1em; }
.shake-btn:disabled { opacity: 0.55; border-image-source: url('assets/ui/btn-gray-l.png'); }
.shake-btn:not(:disabled):active, .drop-btn.ready:active { transform: translateY(2px); box-shadow: none; }
.drop-btn { position: relative; overflow: visible; font-size: 26px; letter-spacing: 0.16em; }
.drop-btn .lbl { position: relative; z-index: 1; }
.drop-btn:not(.ready) { border-image-source: url('assets/ui/btn-gray-l.png'); color: #c9d9ee; }
/* the shot clock: the drained part of the button is the same yellow sprite, darkened, revealed from the right */
.drop-btn .clock { position: absolute; inset: 0; z-index: 0; border: 0; border-image: url('assets/ui/btn-yellow-l.png') 28 31 166 32 fill; border-image-width: 9.5px 10.5px 56.4px 10.9px; clip-path: inset(0 0 0 var(--clock, 100%)); pointer-events: none; filter: brightness(0.5) saturate(0.7); }
.drop-btn:not(.ready) .clock { display: none; }
.drop-btn.ready.urgent { animation: urgent 0.35s ease-in-out infinite; }
/* drops left: lit pips are sprite segments, spent pips a dark well */
#drops { gap: 5px; height: 12px; }
#drops i { border-radius: 6px; background: #0a0720; box-shadow: inset 0 2px 4px rgba(0,0,0,0.6); transition: none; }
#drops i.on { --k: 0.6; border-radius: 0; background: none; box-shadow: none; }

/* ---------- 2. score strip ---------- */
/* The pack's panels and small buttons carry a 3D bottom lip that reads wrong on a display strip (dead space under the
   numbers), so the strip is CSS in the pack's palette: a navy well and coloured cells with the same highlight/shade bands. */
.pv { position: relative; z-index: 0; padding: 8px; gap: 5px; margin: 6px 0 2px; font-size: 18px; border: 0; border-radius: 14px;
  background: #0f3564; box-shadow: inset 0 3px 0 rgba(255,255,255,0.08), inset 0 -4px 0 rgba(0,0,0,0.35), 0 3px 0 rgba(0,0,0,0.25); }
.pv-chips, .pv-mult, .pv-total, .pv-streak { border-radius: 9px; color: #fff; padding: 9px 4px; line-height: 1; text-shadow: 0 2px 0 rgba(0,0,0,0.35);
  box-shadow: inset 0 3px 0 rgba(255,255,255,0.22), inset 0 -3px 0 rgba(0,0,0,0.22); }
.pv-chips { background: #2f7de1; }
.pv-mult { background: #ef4a4a; }
.pv-total { flex: 1.45 1 0; font-size: 19px; background: #ffc933; color: #0b2a52; text-shadow: 0 1px 0 rgba(255,255,255,0.35); }
.pv-streak { flex: 0.7 1 0; background: #163b6b; color: #7fa3cf; text-shadow: none; box-shadow: inset 0 3px 0 rgba(255,255,255,0.06), inset 0 -3px 0 rgba(0,0,0,0.3); }
.pv-op { color: #8fb8e8; font-size: 13px; text-shadow: none; }
/* numbers grow with the level; shrink a size early so eight-digit totals fit */
.pv .long { font-size: 14px; } .pv .longer { font-size: 11px; }
.pv-total.long { font-size: 15px; } .pv-total.longer { font-size: 12px; }
/* streak colour: the well fills, the strip gets a ring */
.pv.tint .pv-streak.on { background: var(--sc); color: #fff; text-shadow: 0 2px 0 rgba(0,0,0,0.35); }
.pv.rainbow .pv-streak.on { background: #a9a6bf; color: #0b2a52; text-shadow: none; }
.pv.tint { background: #0f3564; box-shadow: inset 0 3px 0 rgba(255,255,255,0.08), inset 0 -4px 0 rgba(0,0,0,0.35), 0 0 0 3px var(--sc), 0 0 14px color-mix(in srgb, var(--sc) 70%, transparent); }
.pv.glow { box-shadow: inset 0 3px 0 rgba(255,255,255,0.08), inset 0 -4px 0 rgba(0,0,0,0.35), 0 0 0 3px var(--sc), 0 0 18px var(--sc); }
.pv.rainbow { background: #0f3564; box-shadow: inset 0 3px 0 rgba(255,255,255,0.08), inset 0 -4px 0 rgba(0,0,0,0.35), 0 0 14px rgba(255,255,255,0.3); }
.pv.rainbow::after { content: ''; position: absolute; inset: -4px; z-index: 1; border-radius: 18px; padding: 4px; pointer-events: none; background: linear-gradient(90deg, #ff4d5a, #ffd23f, #3ddc84, #3d8bff, #b56bff);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude; }
.pv.land { animation: pvland 0.55s ease-out; }
@keyframes pvland { 0% { transform: scale(1); } 25% { transform: scale(1.1); } 100% { transform: scale(1); } }

/* ---------- 3. prizes ---------- */
/* the copy that flies from the claw into the strip is the gem sprite, not a shaded circle */
.fly { border-radius: 0; box-shadow: none; color: #fff; -webkit-text-stroke: 0; text-shadow: 0 0 3px rgba(8,10,40,0.9), 0 0 3px rgba(8,10,40,0.9), 0 1px 0 rgba(8,10,40,0.9); }

/* ---------- 4. card icons ---------- */
.tcard img.ticon { width: 34px; height: 34px; display: block; }
.card-icon img { width: 46px; height: 46px; display: block; margin: 0 auto; filter: drop-shadow(0 3px 0 rgba(0,0,0,0.25)); }
.cards-row.five .card-icon img { width: 34px; height: 34px; }
.mini .card-icon img { width: 30px; height: 30px; }

/* ---------- 5. card frames ---------- */
/* Solid CSS frames coloured by rarity (common grey, uncommon blue, rare purple) with the pack's highlight band and bottom
   lip, so all three rarities share one shape; the pack's card sprites carry a two-tone header that read as a second colour.
   Two cards per row, so they stay big enough to read; the stage grows to fit (3 cards: 2 + 1, Jumbo: 2 + 2 + 1). */
.pack-stage { height: auto; min-height: 250px; display: block; }
.pack-stage:not(.open) { display: flex; }
.cards-row { width: 100%; display: flex; flex-wrap: wrap; gap: 14px 12px; justify-content: center; align-items: stretch; padding: 10px 0 4px; }
.card3 { flex: 0 0 auto; width: 150px; height: 196px; }
.cards-row.five { gap: 12px 10px; }
.cards-row.five .card3 { width: 140px; height: 172px; }
.card-face { --c: #8a919e; --c-dark: #5f6673; border: 0; border-radius: 16px; background: var(--c); padding: 16px 8px 14px; gap: 4px; overflow: visible;
  box-shadow: 0 4px 0 var(--c-dark), 0 8px 16px rgba(0,0,0,0.35); } /* one flat colour; depth comes from the shadow under the card, not bands on it */
.card-face.uncommon { --c: #2f9bff; --c-dark: #1a6fd0; }
.card-face.rare { --c: #b558ff; --c-dark: #7f2fd6; }
.card-back { --k: 1.36; border: 0; border-radius: 0; background: none; color: #8fb8e8; }
.cards-row.five .card-face { padding: 14px 6px 12px; gap: 3px; border-radius: 14px; }
.cards-row.five .card-back { --k: 1.17; }
/* the rarity badge sits on the card's top edge */
.card-badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); padding: 3px 9px; border-radius: 999px; background: #fff; font-size: 9px; font-weight: 900; letter-spacing: 0.14em; white-space: nowrap; border: 2px solid #1a1338; box-shadow: 0 3px 8px rgba(0,0,0,0.45); text-shadow: none; }
.card-badge.common { color: #5b6270; } .card-badge.uncommon { color: #1f7fe0; } .card-badge.rare { color: #9a3ff0; }
.card-icon img { width: 56px; height: 56px; }
.cards-row.five .card-icon img { width: 42px; height: 42px; }
.card-name { color: #fff; font-size: 14px; text-shadow: 0 2px 0 rgba(0,0,0,0.35); }
.card-rarity { color: #fff; font-size: 9px; opacity: 0.85; }
.card-desc { color: #fff; font-weight: 600; font-size: 12px; line-height: 1.25; }
.cards-row.five .card-name { font-size: 12px; }
.cards-row.five .card-desc { font-size: 10.5px; }
/* the picked card glows along its own outline, not a rectangle around it */
.card3.picked .card-face { box-shadow: none; filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 10px rgba(255,255,255,0.85)); }
/* My Cards: the same cards as the offer, two per row, scrolling; the stack count is a badge on the frame */
/* Scrolls vertically only, and the scrollbar is a thin overlay rather than a gutter that eats the width the two cards need */
.collection { display: flex; max-height: 58vh; overflow-y: auto; overflow-x: hidden; margin: 10px 0 4px; padding: 12px 2px 10px 0; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.35) transparent; }
.collection .card3 { width: 146px; }
.panel.hist-run .collection { max-height: 34vh; } /* the stats table and BACK sit under the grid */ /* two cards + gap + a 6px bar fit the 320px the panel gives */
.collection::-webkit-scrollbar { width: 6px; height: 0; }
.collection::-webkit-scrollbar-track { background: transparent; }
.collection::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.35); border-radius: 3px; }
.collection::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.55); }
/* the panel itself never scrolls sideways either */
.panel { overflow-x: hidden; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.35) transparent; }
.panel::-webkit-scrollbar { width: 6px; height: 0; }
.panel::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.35); border-radius: 3px; }
.collection .card3 { cursor: default; }
.collection .card3.owned .card-inner { transform: none; animation: none; }
.card-count { position: absolute; top: -8px; right: -8px; background: #ffd23f; color: #1a1338; font-size: 12px; font-weight: 900; border-radius: 999px; padding: 3px 8px; border: 2px solid #1a1338; box-shadow: 0 3px 8px rgba(0,0,0,0.5); text-shadow: none; }
/* the tray and its tooltip follow the same rarity colours */
.tcard.common { border-color: #6b7280; } .tcard.uncommon { border-color: #3d8bff; } .tcard.rare { border-color: #b56bff; }
.tcard.ping.common { box-shadow: 0 0 18px rgba(200,205,220,0.85); border-color: #e5e7eb; }
.tcard.ping.uncommon { box-shadow: 0 0 18px rgba(61,139,255,0.95); border-color: #9cc4ff; }
.tcard.ping.rare { box-shadow: 0 0 20px rgba(181,107,255,1); border-color: #e2c8ff; }
.tping.rare { color: #d9b8ff; } .tping.uncommon { color: #8fbcff; }
.ttip.uncommon { border-color: #3d8bff; } .ttip.rare { border-color: #b56bff; }
.ttip-rarity.common { color: #9ca3af; } .ttip-rarity.uncommon { color: #3d8bff; } .ttip-rarity.rare { color: #b56bff; }

/* ---------- 6. panel buttons ---------- */
/* The big buttons and the title toggles use the pack's 9-slice buttons. Each rule restates the whole border-image
   (the `border` shorthand would reset it), and the state variants swap only the image. */
button.big { --k: 0.34; appearance: none; border-radius: 0; background: none; box-shadow: none; color: #fff; text-shadow: 0 2px 0 rgba(0,0,0,0.35); height: 66px; padding: 14px;
  border: 0; border-image: url('assets/ui/btn-yellow-l.png') 28 31 166 32 fill; border-image-width: calc(28px * var(--k)) calc(31px * var(--k)) calc(166px * var(--k)) calc(32px * var(--k)); border-image-repeat: stretch; }
button.big:active { transform: translateY(2px); box-shadow: none; }
button.big.secondary { background: none; color: #fff; box-shadow: none; border: 0; border-image: url('assets/ui/btn-blue-l.png') 30 30 164 33 fill; border-image-width: calc(30px * var(--k)) calc(30px * var(--k)) calc(164px * var(--k)) calc(33px * var(--k)); }
.panel.title button.big { border-image: url('assets/ui/btn-green-l.png') 30 31 164 32 fill; border-image-width: calc(30px * var(--k)) calc(31px * var(--k)) calc(164px * var(--k)) calc(32px * var(--k)); }
.pack-panel button.big.secondary { height: 56px; padding: 10px; font-size: 14px; }
.toggle { --k: 0.3; border-radius: 0; background: none; color: #fff; opacity: 1; text-shadow: 0 2px 0 rgba(0,0,0,0.35); padding: 11px 16px;
  border: 0; border-image: url('assets/ui/btn-blue-s.png') 32 27 112 27 fill; border-image-width: calc(32px * var(--k)) calc(27px * var(--k)) calc(112px * var(--k)) calc(27px * var(--k)); border-image-repeat: stretch; }
.toggle.off { opacity: 1; color: #d9dde8; border-image: url('assets/ui/btn-gray-s.png') 30 27 114 27 fill; border-image-width: calc(30px * var(--k)) calc(27px * var(--k)) calc(114px * var(--k)) calc(27px * var(--k)); }

/* ---------- 7. panels ---------- */
#overlay { background: rgba(3, 10, 30, 0.84); }
.panel { --k: 1; background: none; border-radius: 0; padding: 24px 28px 22px; box-shadow: 0 16px 40px rgba(0,0,0,0.5); color: #e6f0ff;
  border: 0; border-image: url('assets/ui/panel-navy.png') 25 25 38 26 fill; border-image-width: 25px 25px 38px 26px; border-image-repeat: stretch; }
.panel h2 { color: #fff; font-size: 26px; letter-spacing: 0.04em; text-shadow: 0 2px 0 rgba(0,0,0,0.35); }
.panel p, .panel .sub, .panel .muted, .panel ol.steps { color: #b7d2f2; }
.panel .label { display: inline-block; --k: 0.3; padding: 9px 26px 11px; margin-bottom: 10px; color: #0b2a52; font-size: 12px; letter-spacing: 0.16em; font-weight: 800;
  border: 0; border-image: url('assets/ui/ribbon-yellow.png') 0 127 0 129 fill; border-image-width: calc(0px * var(--k)) calc(127px * var(--k)) calc(0px * var(--k)) calc(129px * var(--k)); border-image-repeat: stretch; }
.panel h1 { font-size: 44px; color: #fff; text-shadow: 0 4px 0 rgba(0,0,0,0.4); background: url('assets/ui/flag-blue.png') center / 100% 100% no-repeat; padding: 18px 10px 32px; margin: -6px -8px 4px; }
.howto { color: #d8e9ff; }
.howto b { color: #ffd23f; }
.best { color: #7dff6a; } .best.new { color: #ffd23f; }
table.reward { color: #b7d2f2; }
table.reward td:last-child { color: #fff; }
table.reward tr.total td { border-top-color: #2c6cb0; color: #ffd23f; }
.score-line { color: #fff; }

/* ---------- 8. HUD ---------- */
#hud-level { color: #b7d2f2; }
#hud-target { color: #8fb8e8; }
#hud-bar { height: 18px; border-radius: 9px; background: #0a0720; box-shadow: inset 0 3px 5px rgba(0,0,0,0.6), 0 1px 0 rgba(255,255,255,0.06); margin: 6px 0; padding: 3px; overflow: hidden; }
#hud-bar-fill { height: 100%; min-width: 14px; border-radius: 6px; overflow: hidden; background: none; border: 0; border-image: url('assets/ui/bar-yellow.png') 0 17 0 17 fill; border-image-width: 0 6px 0 6px; border-image-repeat: stretch; transition: width 0.25s ease-out; }
/* the pill well and the fill share one outline: the fill is clipped to the well's inner radius */
#hud-bar-fill { clip-path: inset(0 round 6px); }
.hud-btn, #hud-sound { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: url('assets/ui/circle-dark.png') center / 100% no-repeat; display: inline-flex; align-items: center; justify-content: center; opacity: 1; text-decoration: none; }
.hud-btn img, #hud-sound img { width: 17px; height: 17px; display: block; }
#hud-sound.off { opacity: 1; text-decoration: none; }
#hud-sound.off img { opacity: 0.5; }

/* ---------- 9. pit and frame ---------- */
html, body { background: #0a2a54; }
body { background: radial-gradient(ellipse at 50% 15%, #2a7fd0 0%, #14508f 45%, #0a2a54 100%); }
#app { background: linear-gradient(180deg, #1b64b0 0%, #0f3d75 55%, #0a2a54 100%); }
@media (min-width: 600px) and (min-height: 700px) {
  body { background: radial-gradient(circle at 50% 30%, #1d5a9c, #061a36 70%); }
  #app { border-color: #08203f; box-shadow: 0 30px 80px rgba(0,0,0,0.7), inset 0 0 0 1px #2c6cb0; }
}
#hud { background: transparent; border-bottom: 0; }
#hud-score { color: #fff; }
#pit { background: #0c3466; }
#tray { background: rgba(6, 24, 50, 0.55); border-bottom: 2px solid rgba(255,255,255,0.08); }
.hist { background: rgba(6, 24, 50, 0.55); border-color: rgba(255,255,255,0.12); } .hist:active { background: rgba(6, 24, 50, 0.85); }
.hist-date, .hist-more, .hist-rank { color: #8fb8e8; }
.hist.you { border-color: #ffd23f; box-shadow: 0 0 10px rgba(255,210,63,0.35); }
.tray-empty { color: #8fb8e8; }
#bar { background: rgba(6, 24, 50, 0.7); border-top: 2px solid rgba(255,255,255,0.08); }
#drops i { background: #0a2244; box-shadow: inset 0 2px 4px rgba(0,0,0,0.55); }
#hud-bar { background: #0a2244; box-shadow: inset 0 3px 5px rgba(0,0,0,0.55), 0 1px 0 rgba(255,255,255,0.08); }
.pv-streak { background: #163b6b; color: #7fa3cf; }

/* ---------- 11. font ---------- */
@font-face { font-family: 'Lilita One'; src: url('assets/fonts/LilitaOne-Regular.ttf') format('truetype'); font-display: swap; }
/* the display face has one weight, so weight is reset and spacing opened a touch */
#hud-score, #hud-level, #hud-target, .drop-btn, .shake-btn, button.big, .toggle, .panel h1, .panel h2, .panel .label,
.pv-chips, .pv-mult, .pv-streak, .pv-total, .card-name, .card-badge, .card-count, .tcount, .tping, .hist-level, .ttip b, .best, .score-line, .pack-name, .pack-twist {
  font-family: 'Lilita One', -apple-system, system-ui, sans-serif; font-weight: 400; letter-spacing: 0.04em; }
#hud-score { font-size: 40px; letter-spacing: 0.02em; }
#hud-level { font-size: 15px; letter-spacing: 0.08em; }
#hud-target { font-size: 18px; }
.drop-btn { font-size: 30px; letter-spacing: 0.18em; }
.shake-btn { font-size: 17px; letter-spacing: 0.12em; }
button.big { font-size: 22px; letter-spacing: 0.12em; }
.toggle { font-size: 13px; letter-spacing: 0.1em; }
.panel h1 { font-size: 48px; letter-spacing: 0.1em; }
.panel h2 { font-size: 30px; letter-spacing: 0.06em; }
.panel .label { font-size: 14px; letter-spacing: 0.18em; }
.pv { font-size: 20px; } .pv-total { font-size: 21px; }
.pv .long { font-size: 16px; } .pv .longer { font-size: 12px; }
.pv-total.long { font-size: 17px; } .pv-total.longer { font-size: 13px; }
.card-name { font-size: 16px; } .cards-row.five .card-name { font-size: 14px; }
.card-badge { font-size: 10px; letter-spacing: 0.16em; }
.tping { font-size: 15px; }
.best { font-size: 15px; letter-spacing: 0.16em; } .best.new { font-size: 19px; }
/* the pack's signature outlined type on the biggest items */
#hud-score, .drop-btn, .panel h1 { -webkit-text-stroke: 1.5px #0b2a52; paint-order: stroke fill; }

/* ---------- 12. main menu and sub-screens ---------- */
.panel.menu button.big { margin-top: 10px; }
.panel.menu button.big.secondary { height: 58px; font-size: 19px; border-image-source: url('assets/ui/btn-blue-l.png'); } /* START is the green one; the rest are blue */
.panel.menu button.big.secondary.danger { border-image-source: url('assets/ui/btn-red-l.png'); } /* ABANDON is the red one */
.panel.menu .best { margin: 4px 0 8px; }
.settings-list { display: flex; flex-direction: column; gap: 0; margin-bottom: 6px; }
.settings-list button.big.secondary { height: 58px; font-size: 18px; }
.settings-list button.big.secondary.off { color: #9fb8d8; border-image-source: url('assets/ui/btn-gray-l.png'); }
.settings-list button.danger, .panel button.big.danger { border-image-source: url('assets/ui/btn-red-l.png'); }
.pack-panel button.big.danger { height: 50px; padding: 8px; font-size: 13px; margin-top: 8px; }
.manual { max-height: 60vh; overflow-y: auto; overflow-x: hidden; text-align: left; padding: 0 2px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.35) transparent; }
.manual::-webkit-scrollbar { width: 6px; } .manual::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.35); border-radius: 3px; }
.manual .howto { margin: 0 0 12px; padding-left: 18px; font-size: 13px; }
.manual .label { display: block; margin: 6px auto 8px; width: max-content; }
.manual-cards { display: flex; flex-direction: column; gap: 6px; }
.manual-card { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 12px; background: rgba(0,0,0,0.22); }
.manual-card .card-icon img { width: 34px; height: 34px; }
.manual-text { flex: 1; font-size: 12px; line-height: 1.3; color: #d8e9ff; }
.manual-text b { font-family: 'Lilita One', -apple-system, system-ui, sans-serif; font-weight: 400; font-size: 14px; color: #fff; margin-right: 6px; }
.manual-text .card-badge { position: static; transform: none; display: inline-block; vertical-align: middle; font-size: 8px; padding: 2px 6px; box-shadow: none; }
.credits { text-align: left; }
.credits p { margin: 8px 0; font-size: 13px; line-height: 1.4; }
.credits b { font-family: 'Lilita One', -apple-system, system-ui, sans-serif; font-weight: 400; color: #ffd23f; letter-spacing: 0.06em; }

/* ---------- 13. multi-pick packs ---------- */
.keep { height: 0; }
.keep.on { height: auto; margin: -2px auto 8px; width: max-content; padding: 6px 16px; border-radius: 999px; background: #ffd23f; color: #0b2a52; font-family: 'Lilita One', -apple-system, system-ui, sans-serif; font-size: 15px; letter-spacing: 0.14em; box-shadow: 0 3px 0 #b8901a; }
.card3.picked.instant, .card3.picked { z-index: 2; }
