.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-weight:var(--font-semibold);border-radius:var(--radius-full);transition:all var(--duration-normal) var(--ease-out-expo);white-space:nowrap;position:relative;overflow:hidden;cursor:pointer;text-decoration:none}.btn--primary{background:var(--gradient-brand);color:white;box-shadow:var(--shadow-button);letter-spacing:var(--tracking-label)}.btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-button-rose-hover)}.btn--accent,.btn--primary:hover{background:var(--gradient-brand-hover)}.btn--accent{color:white;box-shadow:var(--shadow-button-rose);letter-spacing:var(--tracking-label)}.btn--accent:hover{background:var(--gradient-brand);transform:translateY(-2px);box-shadow:var(--shadow-button-hover)}.btn--outline{background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border);letter-spacing:var(--tracking-label)}.btn--outline:hover{border-color:var(--color-vury-rose);color:var(--color-vury-rose);transform:translateY(-2px);box-shadow:0 4px 12px rgba(183,110,121,.12)}.btn--outline-white{background:transparent;color:white;border:2px solid rgba(255,255,255,.25)}.btn--outline-white:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.08);transform:translateY(-2px)}.btn--ghost{background:transparent;color:var(--color-text-secondary);letter-spacing:var(--tracking-label)}.btn--ghost:hover{color:var(--color-vury-rose);background:var(--color-warm-ivory)}.btn--white{background:white;color:var(--color-neutral-900);box-shadow:var(--shadow-sm)}.btn--white:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn--sm{padding:var(--space-2) var(--space-5);font-size:var(--text-sm)}.btn--md{padding:var(--space-3) var(--space-8);font-size:var(--text-base)}.btn--lg{padding:14px var(--space-10);font-size:var(--text-lg)}.btn__icon{display:flex;align-items:center}