.btn::after,.btn::before{content:'';position:absolute;pointer-events:none}.btn,.btn-primary,.btn-secondary,.btn-tertiary{position:relative}.btn.loading,.btn::after,.btn::before{pointer-events:none}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;text-decoration:none;border:2px solid transparent;transition:.3s cubic-bezier(.4, 0, .2, 1);cursor:pointer;overflow:hidden;text-transform:none;letter-spacing:.3px}.btn::before{top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .6s}.btn:hover::before{left:100%}.btn::after{top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.3);transform:translate(-50%,-50%);transition:width .3s,height .3s;opacity:0}.btn:active::after{width:200px;height:200px;opacity:1;transition:width .15s,height .15s,opacity .15s}.btn-primary{background:linear-gradient(135deg,var(--purchase-color) 0,var(--purchase-hover) 100%);color:#fff;box-shadow:0 4px 12px var(--shadow-red),0 2px 6px rgba(220,53,69,.25);animation:3s ease-in-out infinite pulseGlow}.btn-primary::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 25px var(--shadow-red),0 4px 15px rgba(220,53,69,.35);background:linear-gradient(135deg,var(--purchase-hover) 0,#a71e2a 100%);animation:none}.btn-primary:active{transform:translateY(-1px) scale(1.01)}@keyframes pulseGlow{0%,100%{box-shadow:0 4px 12px var(--shadow-red),0 2px 6px rgba(220,53,69,.25)}50%{box-shadow:0 6px 18px var(--shadow-red),0 3px 10px rgba(220,53,69,.4)}}.btn-secondary{background:var(--background-secondary);color:var(--accent-color);border-color:var(--accent-color);box-shadow:0 2px 8px var(--shadow-light),inset 0 1px 0 rgba(255,255,255,.5)}.btn-secondary::before{background:linear-gradient(90deg,transparent,rgba(0,120,215,.3),transparent)}.btn-secondary:hover{background:var(--accent-color);color:#fff;transform:translateY(-2px) scale(1.01);box-shadow:0 6px 20px var(--shadow-medium),0 3px 12px rgba(0,120,215,.25);border-color:var(--accent-hover)}.btn-secondary:active{transform:translateY(-1px) scale(1.005)}.btn-tertiary{background:0 0;color:var(--text-secondary);border-color:var(--border-color);backdrop-filter:blur(10px)}.btn-tertiary::before{background:linear-gradient(90deg,transparent,rgba(0,120,215,.2),transparent)}.btn-tertiary:hover{background:var(--background-primary);color:var(--accent-color);border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 15px var(--shadow-light),0 2px 8px rgba(0,120,215,.15)}.btn-tertiary:active{transform:translateY(-1px)}.btn-icon{font-size:1.25rem;font-weight:700;filter:brightness(1.1);transition:transform .3s}.btn:hover .btn-icon{transform:scale(1.1) rotate(5deg)}.btn-primary .btn-icon{font-size:1.375rem;text-shadow:0 1px 2px rgba(0,0,0,.2)}.btn-primary:hover .btn-icon{transform:scale(1.15) rotate(-5deg);filter:brightness(1.2)}.btn.loading{opacity:.8}.btn.loading .btn-icon{animation:1s linear infinite spin}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.btn:focus{outline:0;box-shadow:0 0 0 3px rgba(0,120,215,.3),0 4px 12px var(--shadow-medium)}.btn-primary:focus{box-shadow:0 0 0 3px rgba(220,53,69,.3),0 4px 12px var(--shadow-red)}.btn.success{background:linear-gradient(135deg,#28a745,#20c997);animation:.6s successPulse}@keyframes successPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@media (max-width:768px){.btn{justify-content:center;padding:1rem 1.5rem;border-radius:10px}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.98)}.btn-primary{animation:none}}@media (prefers-contrast:high){.btn{border-width:3px}.btn::before{display:none}}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn::after,.btn::before{display:none}.btn-primary{animation:none}.btn:hover{transform:none}}