.button{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md)var(--spacing-2xl);font-family:var(--font-family);font-size:var(--font-size-base);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);letter-spacing:.02em;border:none;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";background:#ffffff4d;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.button:active:before{width:400px;height:400px}.button-primary{color:#fff;background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%);border:1px solid #ffffff1a;box-shadow:0 4px 16px #0ea5e966,0 2px 8px #0ea5e933}.button-primary:hover{background:linear-gradient(135deg,#38bdf8 0%,#0ea5e9 100%);transform:translateY(-3px);box-shadow:0 8px 24px #0ea5e999,0 4px 12px #0ea5e94d,0 0 40px #0ea5e933}.button-primary:active{transform:translateY(-1px)}.button-secondary{color:var(--color-accent-light);border:2px solid var(--color-accent-primary);-webkit-backdrop-filter:blur(10px);background:#0ea5e91a}.button-secondary:hover{border-color:var(--color-accent-light);background:#0ea5e933;transform:translateY(-3px);box-shadow:0 8px 20px #0ea5e94d,0 0 30px #0ea5e926}.button-ghost{color:var(--color-text-secondary);border:1px solid var(--color-border-primary);background:0 0}.button-ghost:hover{color:var(--color-accent-light);border-color:var(--color-accent-primary);background:#0ea5e91a;transform:translateY(-2px);box-shadow:0 4px 12px #0ea5e933}.button-danger{color:#fff;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:1px solid #ffffff1a;box-shadow:0 4px 16px #ef444466}.button-danger:hover{background:linear-gradient(135deg,#f87171 0%,#ef4444 100%);transform:translateY(-3px);box-shadow:0 8px 24px #ef444499,0 0 40px #ef444433}.button-success{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:1px solid #ffffff1a;box-shadow:0 4px 16px #10b98166}.button-success:hover{background:linear-gradient(135deg,#34d399 0%,#10b981 100%);transform:translateY(-3px);box-shadow:0 8px 24px #10b98199,0 0 40px #10b98133}.button-premium{color:#fff;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border:1px solid #ffffff1a;position:relative;box-shadow:0 4px 16px #8b5cf666,0 2px 8px #8b5cf633}.button-premium:after{content:"";border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-base);background:linear-gradient(135deg,#fff3,#0000);position:absolute;inset:0}.button-premium:hover:after{opacity:1}.button-premium:hover{background:linear-gradient(135deg,#a78bfa 0%,#8b5cf6 100%);transform:translateY(-3px);box-shadow:0 8px 24px #8b5cf699,0 0 40px #8b5cf633}.button-sm{padding:var(--spacing-xs)var(--spacing-lg);font-size:var(--font-size-sm);border-radius:var(--radius-md)}.button-md{padding:var(--spacing-sm)var(--spacing-xl);font-size:var(--font-size-base);border-radius:var(--radius-lg)}.button-lg{padding:var(--spacing-md)var(--spacing-2xl);font-size:var(--font-size-lg);border-radius:var(--radius-lg);font-weight:700}.button-xl{padding:var(--spacing-lg)var(--spacing-3xl);font-size:var(--font-size-xl);border-radius:var(--radius-xl);font-weight:700}.button-full{width:100%}.button-icon{padding:var(--spacing-md);border-radius:var(--radius-md)}.button-icon svg{width:20px;height:20px}.button-loading{color:#0000;pointer-events:none;position:relative}.button-loading:after{content:"";border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-top:-8px;margin-left:-8px;animation:.6s linear infinite button-spin;position:absolute;top:50%;left:50%}@keyframes button-spin{to{transform:rotate(360deg)}}.button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.button:disabled:hover{box-shadow:none;transform:none}.button-group{gap:var(--spacing-sm);display:inline-flex}.button-group .button{margin:0}@media (max-width:768px){.button-lg{padding:var(--spacing-sm)var(--spacing-xl);font-size:var(--font-size-base)}.button-xl{padding:var(--spacing-md)var(--spacing-2xl);font-size:var(--font-size-lg)}}
