/* ============================================================
   LEGENDARY VICTORY — Gameplay board & cards
   ============================================================ */

.play{position:absolute;inset:0;display:flex;flex-direction:column;background:
  radial-gradient(120% 70% at 50% -10%, #16204a, transparent 60%),
  linear-gradient(180deg,#0c1327 0%, #0b1020 40%, #070b16 100%);}

/* ---------- Play top HUD ---------- */
.hud{padding:calc(var(--safe-t) + 10px) 14px 6px;position:relative;z-index:3;}
.hud__top{display:flex;align-items:center;gap:10px;}
.hud__lvl{flex:1;min-width:0;}
.hud__lvl .k{font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--tx-3);}
.hud__lvl .t{font-size:16px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hud__obj{margin-top:10px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-md);
  background:linear-gradient(90deg,rgba(224,30,43,.16),rgba(224,30,43,.04));border:1px solid rgba(224,30,43,.32);}
.hud__obj svg{width:22px;height:22px;color:var(--red-400);flex:none;}
.hud__obj .ot{font-size:12.5px;font-weight:800;}
.hud__obj .op{font-size:11px;color:var(--tx-2);}
.hud__stats{display:flex;gap:8px;margin-top:10px;}
.hud-stat{flex:1;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 6px;text-align:center;position:relative;overflow:hidden;}
.hud-stat .v{font-size:18px;font-weight:900;line-height:1;}
.hud-stat .l{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--tx-3);margin-top:3px;}
.hud-stat.warn .v{color:var(--red-500);animation:pulseWarn .6s infinite;}
@keyframes pulseWarn{0%,100%{opacity:1;}50%{opacity:.5;}}
.hud-stat.combo .v{color:var(--gold);}

/* timer bar */
.timer-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:8px;}
.timer-bar > i{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--gold));transition:width .3s linear;}
.timer-bar.low > i{background:linear-gradient(90deg,var(--red-500),#ff8a3d);}

/* ---------- Board ---------- */
.board-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 12px;}
.board{display:grid;gap:8px;width:100%;max-width:460px;margin:0 auto;}
.board.tight{gap:6px;}

/* ---------- Card ---------- */
.card{position:relative;aspect-ratio:3/4;border-radius:14px;perspective:800px;cursor:pointer;}
.card__inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .42s cubic-bezier(.3,1.1,.4,1);border-radius:inherit;}
.card.flipped .card__inner,.card.matched .card__inner{transform:rotateY(180deg);}
.card__face{position:absolute;inset:0;border-radius:inherit;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  display:grid;place-items:center;overflow:hidden;box-shadow:var(--sh-2);}
/* back (face-down) */
.card__back{background:linear-gradient(160deg,var(--red-600),var(--red-900));border:2px solid rgba(255,255,255,.18);}
.card__back::before{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 8px,transparent 8px 16px);}
.card__back .logo{width:52%;height:52%;opacity:.92;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));position:relative;z-index:1;}
/* front (face-up) */
.card__front{transform:rotateY(180deg);background:linear-gradient(180deg,#fbfdff,#dfe6f2);border:2px solid rgba(255,255,255,.6);}
.card__front .art{width:66%;height:66%;}
.card__front .nm{position:absolute;bottom:5px;left:0;right:0;text-align:center;font-size:9px;font-weight:900;color:#2a3350;letter-spacing:.3px;text-transform:uppercase;}

/* states */
.card.matched{animation:cardMatch .5s ease;}
.card.matched .card__front{background:linear-gradient(180deg,#d8ffe8,#a7f0c6);border-color:var(--green);box-shadow:0 0 0 2px var(--green),0 8px 20px rgba(55,214,122,.5);}
@keyframes cardMatch{0%{transform:scale(1);}40%{transform:scale(1.12);}100%{transform:scale(1);}}
.card.wrong .card__front{background:linear-gradient(180deg,#ffdede,#ffb3b8);border-color:var(--red-500);animation:shake .4s;}
@keyframes shake{0%,100%{transform:translateX(0);}20%{transform:translateX(-6px);}40%{transform:translateX(6px);}60%{transform:translateX(-4px);}80%{transform:translateX(4px);}}
.card.cleared{animation:cardClear .45s ease forwards;pointer-events:none;}
@keyframes cardClear{to{transform:scale(.2) rotate(18deg);opacity:0;}}
.card.reveal-peek .card__inner{transform:rotateY(180deg);}
.card.hint-glow .card__front{box-shadow:0 0 0 3px var(--gold),0 0 18px var(--gold);}

/* special card decorations (shown on front) */
.card.k-wild .card__front{background:linear-gradient(180deg,#fff2c9,#ffd66b);}
.card.k-wild .card__front .nm{color:#5a3d00;}
.card.k-bonus .card__front{background:linear-gradient(180deg,#d6f0ff,#a9deff);}
.card .special-tag{position:absolute;top:4px;left:4px;z-index:2;width:18px;height:18px;}
.card .special-tag svg{width:100%;height:100%;}

/* blocked/locked overlay (face-down obstacle) */
.card.blocked .card__back{background:linear-gradient(160deg,#3a4568,#232c4a);}
.card.blocked .obstacle,.card.locked-card .obstacle{position:absolute;inset:0;display:grid;place-items:center;z-index:2;background:rgba(6,9,18,.4);}
.card.blocked .obstacle svg{width:40%;height:40%;color:#9fb0d6;}
.card.locked-card .obstacle svg{width:40%;height:40%;color:var(--gold);}
.card .obstacle .cnt{position:absolute;bottom:3px;right:5px;font-size:11px;font-weight:900;color:#fff;background:rgba(0,0,0,.5);border-radius:8px;padding:0 5px;}

/* ---------- Booster bar ---------- */
.booster-bar{display:flex;gap:8px;padding:10px 14px calc(var(--safe-b) + 12px);position:relative;z-index:3;
  background:linear-gradient(180deg,transparent,rgba(7,11,22,.7));}
.booster{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;border-radius:var(--r-md);
  background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .12s;}
.booster:active{transform:scale(.92);}
.booster svg{width:24px;height:24px;color:var(--gold);}
.booster .bl{font-size:9.5px;font-weight:800;color:var(--tx-2);}
.booster .bcount{position:absolute;top:-6px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;
  background:linear-gradient(180deg,var(--red-500),var(--red-700));color:#fff;font-size:11px;font-weight:900;display:grid;place-items:center;border:2px solid var(--bg-1);}
.booster.empty{opacity:.5;}
.booster.empty .bcount{background:var(--surface-3);}
.booster.active{border-color:var(--gold);box-shadow:var(--sh-gold);}

/* ---------- Combo popup ---------- */
.combo-pop{position:absolute;top:32%;left:50%;transform:translateX(-50%);z-index:8;text-align:center;pointer-events:none;
  animation:comboPop .9s ease forwards;}
.combo-pop .cx{font-size:44px;font-weight:900;color:var(--gold);text-shadow:0 4px 16px rgba(0,0,0,.6),0 0 30px var(--gold);line-height:1;}
.combo-pop .cl{font-size:14px;font-weight:900;letter-spacing:2px;color:#fff;text-transform:uppercase;}
@keyframes comboPop{0%{opacity:0;transform:translateX(-50%) scale(.4);}25%{opacity:1;transform:translateX(-50%) scale(1.15);}70%{opacity:1;transform:translateX(-50%) scale(1);}100%{opacity:0;transform:translateX(-50%) scale(1.05) translateY(-24px);}}

/* ---------- Result overlays (victory/defeat) ---------- */
.result{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;overflow-y:auto;
  background:radial-gradient(600px 400px at 50% 30%,rgba(224,30,43,.28),rgba(4,6,14,.92) 70%);}
.result.defeat{background:radial-gradient(600px 400px at 50% 30%,rgba(40,50,80,.5),rgba(4,6,14,.94) 70%);}
.result__ribbon{font-size:12px;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:var(--gold);}
.result__title{font-size:34px;font-weight:900;line-height:1;text-shadow:0 6px 24px rgba(0,0,0,.6);animation:modalIn .5s;}
.result__stars{display:flex;gap:10px;margin:4px 0;}
.result__stars svg{width:52px;height:52px;}
.result__stars .s{opacity:0;transform:scale(0);animation:starDrop .5s cubic-bezier(.2,1.4,.4,1) forwards;}
.result__stars .s:nth-child(1){animation-delay:.15s;} .result__stars .s:nth-child(2){animation-delay:.35s;} .result__stars .s:nth-child(3){animation-delay:.55s;}
@keyframes starDrop{from{opacity:0;transform:scale(0) rotate(-40deg);}to{opacity:1;transform:none;}}
.result__trophy{width:110px;height:110px;animation:bootPop .6s both, floaty 3s ease-in-out .6s infinite;filter:drop-shadow(0 12px 30px var(--red-glow));}
.result__score{font-size:15px;color:var(--tx-1);font-weight:800;}
.result__score b{color:var(--gold);font-size:22px;display:block;}
.result__rewards{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:4px 0;}
.result__btns{width:100%;max-width:320px;display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.result__btns .row{gap:10px;}
.result__btns .row .btn{flex:1;}

/* Pause sheet */
.pause-sheet{position:absolute;inset:0;z-index:22;display:flex;align-items:center;justify-content:center;padding:28px;overflow-y:auto;
  background:rgba(4,6,14,.8);backdrop-filter:blur(4px);}
.pause-card{width:100%;max-width:320px;background:linear-gradient(180deg,var(--surface-2),var(--surface));
  border:1px solid var(--line-2);border-radius:var(--r-2xl);box-shadow:var(--sh-3);padding:22px;text-align:center;animation:modalIn .3s;}
.pause-card h3{margin:0 0 16px;font-size:22px;font-weight:900;}

/* ---------- Cosmetic card backs ---------- */
body[data-cardback="back_gold"] .card__back{background:linear-gradient(160deg,#ffd873,#b8860b);border-color:rgba(255,255,255,.55);}
body[data-cardback="back_crimson"] .card__back{background:linear-gradient(160deg,#ff2a3a,#5e0a12);}

/* mistakes hearts */
.hearts{display:inline-flex;gap:4px;}
.hearts svg{width:18px;height:18px;color:var(--red-500);}
.hearts .lost{color:rgba(255,255,255,.15);}
