.gacha-overlay{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(0,0,0,.8);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;overflow:hidden}.gacha-overlay.open{opacity:1;visibility:visible}.gacha-card-container{perspective:1000px;position:relative;width:300px;height:420px}.gacha-card{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.22,1,.36,1);transform:rotateY(180deg)}.gacha-card-container.revealed .gacha-card{transform:rotateY(0deg)}.card-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;border-radius:.5rem;box-shadow:0 10px 30px rgba(0,0,0,.5)}.card-front{transform:rotateY(0deg);background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--accent)))}.card-front img{filter:brightness(.9)}.card-back{transform:rotateY(180deg);background:linear-gradient(135deg,#444,#222);border:2px solid hsl(var(--primary)/.5)}.gacha-card-container.revealed .card-glow{position:absolute;inset:-2px;border-radius:.5rem;background:radial-gradient(circle at 50% 50%,hsl(var(--primary)/.5),transparent 70%);animation:glow-pulse 2s infinite alternate}.gacha-card-container.revealed .card-flare{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(0deg,transparent 40%,rgba(255,255,255,.4) 48%,rgba(255,255,255,.4) 52%,transparent 60%);transform:rotate(25deg);animation:flare-sweep 3s ease-in-out -1s infinite;animation-play-state:running;opacity:.2}@keyframes glow-pulse{0%{opacity:.6;transform:scale(.98)}to{opacity:1;transform:scale(1.02)}}@keyframes flare-sweep{0%{transform:translateY(-100%) rotate(25deg)}to{transform:translateY(100%) rotate(25deg)}}.gacha-reveal-text{margin-top:2rem;text-align:center;opacity:0;transform:translateY(20px);animation:fade-in-up .5s 1s forwards}@keyframes fade-in-up{to{opacity:1;transform:translateY(0)}}.gacha-confetti{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;width:8px;height:16px;background:#f00;top:-20px;opacity:0}.gacha-card-container.revealed .confetti-piece{animation:drop-and-spin 3s ease-out forwards}@keyframes drop-and-spin{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.confetti-piece:nth-child(10n+1){background:#ff0;animation-delay:0s;left:10%}.confetti-piece:nth-child(10n+2){background:#0f0;animation-delay:.1s;left:20%}.confetti-piece:nth-child(10n+3){background:#0ff;animation-delay:.2s;left:30%}.confetti-piece:nth-child(10n+4){background:#00f;animation-delay:.3s;left:40%}.confetti-piece:nth-child(10n+5){background:#f0f;animation-delay:.4s;left:50%}.confetti-piece:nth-child(10n+6){background:#ff4d4d;animation-delay:.5s;left:60%}.confetti-piece:nth-child(10n+7){background:#4dff4d;animation-delay:.6s;left:70%}.confetti-piece:nth-child(10n+8){background:#4d4dff;animation-delay:.7s;left:80%}.confetti-piece:nth-child(10n+9){background:#ff4dff;animation-delay:.8s;left:90%}.confetti-piece:nth-child(10n+0){background:#ffff4d;animation-delay:.9s;left:5%}.confetti-piece:nth-child(odd){animation-duration:4s}.confetti-piece:nth-child(2n){animation-duration:2s;height:10px;width:10px}.confetti-piece:nth-child(3n){animation-duration:5s}