.button{justify-content:center;align-items:center;gap:var(--spacing-2);border-radius:var(--radius-lg);font-family:var(--font-family-primary);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap;padding:var(--spacing-0_5);border:none;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.button:disabled,.button--disabled{opacity:.5;cursor:not-allowed}.button--primary{background:var(--gradient-rainbow);color:#fff;box-shadow:var(--shadow-lg);background-size:200% 200%;animation:3s ease-in-out infinite gradient-shift;position:relative}.button--primary:not(.button--fill){background-position:100%;animation:none}.button--primary:before{content:"";background:var(--gradient-rainbow);border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-normal);filter:blur(15px);z-index:-1;background-size:200% 200%;animation:3s ease-in-out infinite gradient-shift;position:absolute;inset:-3px}.button--primary:hover:not(:disabled){animation:3s ease-in-out infinite gradient-shift;transform:translateY(-2px)}.button--secondary{background:var(--gradient-accent);color:#fff;box-shadow:var(--shadow-lg);position:relative}.button--secondary:before{content:"";background:linear-gradient(135deg, var(--color-accent), var(--color-primary));border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-normal);filter:blur(12px);z-index:-1;position:absolute;inset:-2px}.button--secondary:hover:not(:disabled){box-shadow:var(--shadow-xl);transform:translateY(-2px)}.button--secondary:hover:not(:disabled):before{opacity:.7}.button--outline{color:var(--color-text-primary);background:0 0;background-image:linear-gradient(var(--color-background), var(--color-background)),var(--gradient-rainbow);background-size:100% 100%,200% 200%;background-origin:border-box;background-clip:content-box,border-box;border:1px solid #0000;position:relative}.button--outline:before{content:"";background:var(--gradient-rainbow);border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-normal);filter:blur(20px);z-index:-1;background-size:200% 200%;animation:3s ease-in-out infinite gradient-shift;position:absolute;inset:-4px}.button--outline:hover:not(:disabled){color:var(--color-text-primary);background-size:100% 100%,200% 200%;animation:3s ease-in-out infinite gradient-shift;transform:translateY(-2px)}.button--outline:hover:not(:disabled):before{opacity:.8;animation:2s ease-in-out infinite rainbow-border-glow}.button--ghost{color:var(--color-text-secondary);background:0 0;position:relative}.button--ghost:before{content:"";background:var(--gradient-rainbow);border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-normal);filter:blur(10px);z-index:-1;position:absolute;inset:-2px}.button--ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.button--ghost:hover:not(:disabled):before{opacity:.3}.button--light-red{color:#f2e3c2;background:#631818;border:2.5px solid #ff1b1b;border-radius:12px;font-size:18px;font-weight:800;box-shadow:0 0 24px #ff1b1b}.button--light-red .button__content{background-color:#0000;border-radius:12px}.button--light-red:hover:not(:disabled){background-color:#a81919}.button--light-red:active:not(:disabled){background-color:#ff1b1b}.button--light-green{color:#f2e3c2;background:#10630c;border:2.5px solid #5dd856;border-radius:12px;font-size:18px;font-weight:800;box-shadow:0 0 24px #5dd856}.button--light-green .button__content{background-color:#0000;border-radius:12px}.button--light-green:hover:not(:disabled){background-color:#40923b}.button--light-green:active:not(:disabled){background-color:#5dd856}.button--fill .button__content{background:0 0}.button--xs .button__content{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-xs)}.button--sm .button__content{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm)}.button--md .button__content{padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base)}.button--lg .button__content{padding:var(--spacing-4) var(--spacing-8);font-size:var(--font-size-lg)}.button__content{justify-content:center;align-items:center;gap:var(--spacing-1);border-radius:var(--radius-lg);background:var(--color-background);width:100%;transition:all var(--transition-fast);display:flex}.button:not(.button--disabled):not(.button--loading):hover .button__content{background:0 0}.button--full-width{width:100%}.button__icon--left{margin-right:var(--spacing-1)}.button__icon--right{margin-left:var(--spacing-1)}.button__spinner{width:16px;height:16px;margin-right:var(--spacing-2);border:2px solid #0000;border-top-color:currentColor;border-radius:50%;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button{will-change:transform;transform:translateZ(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.button--loading{pointer-events:none}.button--loading .button__content{opacity:.8}@media (prefers-contrast:high){.button--outline{border-color:currentColor}.button--ghost{border:1px solid}}@media (prefers-reduced-motion:reduce){.button,.button:before,.button__content,.button__spinner{transition:none;animation:none}.button--primary:before,.button--outline:before{animation:none}}
