.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);font-family:inherit;font-weight:600;text-decoration:none;border:2px solid transparent;border-radius:var(--border-radius-md);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);outline:none;overflow:hidden;white-space:nowrap;user-select:none;-webkit-tap-highlight-color:transparent;z-index:1;transform-origin:center}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:.875rem;border-radius:var(--border-radius)}.btn-md{padding:var(--space-sm) var(--space-lg);font-size:1rem}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:1.125rem;border-radius:var(--border-radius-lg)}.btn-xl{padding:var(--space-lg) calc(var(--space-xl) * 1.5);font-size:1.25rem;border-radius:var(--border-radius-lg)}.btn-primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-light));color:#fff;border-color:var(--color-accent);box-shadow:0 4px 15px var(--color-accent-alpha-10)}.btn-primary:hover:not(.btn-disabled):not(.btn-loading){background:linear-gradient(135deg,var(--color-accent-dark),var(--color-accent));border-color:var(--color-accent-dark);box-shadow:0 8px 25px var(--color-accent-alpha-30)}.btn-primary:active:not(.btn-disabled):not(.btn-loading){transform:translateY(1px) scale(.98);box-shadow:0 4px 15px var(--color-accent-alpha-10)}.btn-secondary{background:var(--color-white-alpha-90);color:var(--color-accent);border-color:var(--color-white-alpha-70);backdrop-filter:blur(10px);box-shadow:0 4px 15px var(--color-black-alpha-10);position:relative;overflow:hidden}.btn-secondary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--color-white-alpha-30),transparent);transition:left .5s ease}.btn-secondary:hover:not(.btn-disabled):not(.btn-loading){background:#fff;border-color:var(--color-accent-alpha-30);color:var(--color-accent);box-shadow:0 8px 25px var(--color-black-alpha-10)}.btn-secondary:hover:not(.btn-disabled):not(.btn-loading):before{left:100%}.btn-secondary:active:not(.btn-disabled):not(.btn-loading){transform:translateY(1px) scale(.98);box-shadow:0 4px 15px var(--color-black-alpha-10)}.btn-outline{background:transparent;color:var(--color-accent);border-color:var(--color-accent)}.btn-outline:hover:not(.btn-disabled):not(.btn-loading){background:var(--color-accent);color:#fff;box-shadow:0 8px 25px var(--color-accent-alpha-10)}.btn-outline:active:not(.btn-disabled):not(.btn-loading){transform:translateY(1px) scale(.98);box-shadow:0 4px 15px var(--color-accent-alpha-10)}.btn-ghost{background:transparent;color:var(--color-text);border-color:transparent}.btn-ghost:hover:not(.btn-disabled):not(.btn-loading){background:var(--color-accent-alpha-10);color:var(--color-accent);border-color:var(--color-accent-alpha-10)}.btn-ghost:active:not(.btn-disabled):not(.btn-loading){background:var(--color-accent-alpha-10)}.btn-cta{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-light));color:#fff;border-color:var(--color-accent);border-radius:2rem;padding:.7rem 1.6rem;font-weight:600;letter-spacing:.02em;box-shadow:0 3px 12px var(--color-accent-alpha-10)}.btn-cta:hover:not(.btn-disabled):not(.btn-loading){background:linear-gradient(135deg,var(--color-accent-dark),var(--color-accent));box-shadow:0 6px 24px var(--color-accent-alpha-30)}.btn-cta:active:not(.btn-disabled):not(.btn-loading){transform:translateY(1px) scale(.98);box-shadow:0 4px 18px var(--color-accent-alpha-30)}.btn-dark .btn-secondary{background:var(--color-surface);color:var(--color-accent);border-color:var(--color-border);box-shadow:0 4px 15px var(--color-black-alpha-10)}.btn-dark .btn-secondary:hover:not(.btn-disabled):not(.btn-loading){background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 8px 25px var(--color-accent-alpha-10)}.btn-light .btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent);box-shadow:0 4px 15px var(--color-accent-alpha-10)}.btn-light .btn-primary:hover:not(.btn-disabled):not(.btn-loading){background:var(--color-accent-light);border-color:var(--color-accent-light);box-shadow:0 8px 25px var(--color-accent-alpha-10)}.btn-full-width{width:100%}.btn-disabled,.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-disabled:hover,.btn:disabled:hover{transform:none!important;box-shadow:none!important}.btn-loading{cursor:wait;position:relative}.btn-spinner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}.btn-text-hidden{opacity:0}.btn-text{display:inline-flex;align-items:center;gap:.5rem}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn:hover:not(.btn-disabled):not(.btn-loading){transition:all .3s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion: reduce){.btn{transition:color .2s ease,background-color .2s ease}.btn:hover:not(.btn-disabled):not(.btn-loading){transform:none!important}.animate-spin{animation:none}}@media (max-width: 768px){.btn-lg{padding:var(--space-sm) var(--space-lg);font-size:1rem}.btn-xl{padding:var(--space-md) var(--space-xl);font-size:1.125rem}}@media (prefers-contrast: high){.btn{border-width:3px}.btn-primary{background:var(--color-accent);border-color:var(--color-accent)}.btn-secondary{background:#fff;border-color:var(--color-accent);color:var(--color-accent)}}
