.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-family:var(--font-heading);font-weight:var(--fw-semibold);border-radius:var(--radius-full);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);white-space:nowrap;text-decoration:none;letter-spacing:.01em;position:relative}.btn--sm{padding:.55rem 1.25rem;font-size:var(--fs-body-sm)}.btn--md{padding:.75rem 1.75rem;font-size:var(--fs-body)}.btn--lg{padding:1rem 2.25rem;font-size:var(--fs-body-lg)}.btn--primary{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);color:var(--color-white);border:1px solid var(--color-primary);box-shadow:0 4px 16px rgba(37,99,235,.25)}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,99,235,.35)}.btn--primary:active{transform:translateY(0);box-shadow:0 2px 8px rgba(37,99,235,.2)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.btn--secondary:hover{border-color:var(--color-primary-light);color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn--ghost{background:transparent;color:var(--color-text-secondary);border:1px solid transparent}.btn--ghost:hover{color:var(--color-primary);background:var(--color-primary-ghost)}.btn--white{background:var(--color-white);color:var(--color-primary-dark);border:1px solid var(--color-white);box-shadow:0 4px 16px rgba(0,0,0,.1)}.btn--white:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.15)}.btn--outline-white{background:rgba(255,255,255,.08);color:var(--color-white);border:1px solid rgba(255,255,255,.25)}.btn--outline-white:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.5);transform:translateY(-2px)}