.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);font-family:var(--font-display);font-weight:600;text-align:center;white-space:nowrap;border-radius:var(--radius-full);transition:all var(--transition-base);overflow:hidden;cursor:pointer}.btn,.btn__text{position:relative}.btn__text{z-index:1}.btn__icon{width:1.25em;height:1.25em;transition:transform var(--transition-base)}.btn:hover .btn__icon{transform:translateX(4px)}.btn--sm{padding:var(--space-2) var(--space-5);font-size:var(--text-sm)}.btn--md{padding:var(--space-4) var(--space-8);font-size:var(--text-base)}.btn--lg{padding:var(--space-5) var(--space-10);font-size:var(--text-lg)}.btn--xl{padding:var(--space-6) var(--space-12);font-size:var(--text-xl)}.btn--primary{background:var(--gradient-primary);background-size:200% 200%;color:var(--color-light);box-shadow:0 4px 20px rgba(99,102,241,.4)}.btn--primary:hover{animation:gradient 3s ease infinite;box-shadow:0 8px 30px rgba(99,102,241,.5);transform:translateY(-2px)}.btn--primary:active{transform:translateY(0)}.btn--secondary{background:var(--color-dark);color:var(--color-light);border:1px solid var(--color-dark-tertiary)}.btn--secondary:hover{background:var(--color-dark-secondary);border-color:var(--color-accent-primary);box-shadow:0 0 20px rgba(99,102,241,.2)}.btn--outline{background:transparent;color:var(--color-text-primary);border:2px solid var(--color-dark)}.btn--outline:hover{background:var(--color-dark);color:var(--color-light)}.btn--ghost{background:transparent;color:var(--color-text-primary)}.btn--ghost:hover{background:var(--color-light-secondary)}.btn--light{background:var(--color-light);color:var(--color-dark);box-shadow:var(--shadow-lg)}.btn--light:hover{box-shadow:var(--shadow-xl);transform:translateY(-2px)}.btn--dark{background:var(--color-dark);color:var(--color-light)}.btn--dark:before{content:"";position:absolute;inset:0;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base)}.btn--dark:hover:before{opacity:1}.btn--gradient-border{background:var(--color-light);color:var(--color-dark);position:relative;z-index:1}.btn--gradient-border:before{inset:-2px;background:var(--gradient-primary)}.btn--gradient-border:after,.btn--gradient-border:before{content:"";position:absolute;border-radius:inherit;z-index:-1}.btn--gradient-border:after{inset:0;background:var(--color-light);transition:opacity var(--transition-base)}.btn--gradient-border:hover:after{opacity:0}.btn--gradient-border:hover{color:var(--color-light)}