.gacha-container { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.9); z-index: 1000; cursor: pointer; } .card-final { position: relative; text-align: center; } .card-actions { position: absolute; bottom: -80px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; } .save-button { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; padding: 10px 20px; border-radius: 25px; font-size: 14px; font-weight: bold; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3); } .save-button:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4); } .save-button:disabled { opacity: 0.6; cursor: not-allowed; } .click-hint { color: white; font-size: 12px; background: rgba(0, 0, 0, 0.7); padding: 6px 12px; border-radius: 15px; animation: pulse 2s infinite; } @keyframes pulse { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } } .gacha-opening { position: relative; } .gacha-pack { width: 200px; height: 280px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 16px; position: relative; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); } .pack-glow { position: absolute; top: -20px; left: -20px; right: -20px; bottom: -20px; background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%); animation: glow-pulse 2s ease-in-out infinite; } /* Effect variations */ .effect-normal { background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 50%); } .effect-rare { background: radial-gradient(circle, rgba(74, 144, 226, 0.2) 0%, transparent 50%); } .effect-kira { background: radial-gradient(circle, rgba(255, 215, 0, 0.3) 0%, transparent 50%); } .effect-kira::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,'); background-size: 50px 50px; animation: sparkle 3s linear infinite; } .effect-unique { background: radial-gradient(circle, rgba(255, 0, 255, 0.4) 0%, transparent 50%); overflow: hidden; } .unique-effect { position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; } .unique-particles { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: radial-gradient(circle, #ff00ff 1px, transparent 1px), radial-gradient(circle, #00ffff 1px, transparent 1px); background-size: 50px 50px, 30px 30px; background-position: 0 0, 25px 25px; animation: particle-float 20s linear infinite; } .unique-burst { position: absolute; top: 50%; left: 50%; width: 300px; height: 300px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(255, 0, 255, 0.8) 0%, transparent 70%); animation: burst 1s ease-out; } /* Animations */ @keyframes glow-pulse { 0%, 100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } } @keyframes sparkle { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-100vh) rotate(360deg); } } @keyframes particle-float { 0% { transform: translate(0, 0); } 100% { transform: translate(-50px, -100px); } } @keyframes burst { 0% { transform: translate(-50%, -50%) scale(0); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(3); opacity: 0; } }