.btn{position:relative;overflow:hidden;isolation:isolate;font-family:var(--font-body);font-weight:var(--fw-semibold);border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:none;white-space:nowrap;transition:box-shadow var(--dur-base) var(--ease-standard),transform 150ms cubic-bezier(0.34,1.56,0.64,1);}
.btn:active{transform:scale(0.96);}
.btn-sm{padding:8px 16px;font-size:var(--fs-sm);}
.btn-lg{padding:14px 28px;font-size:var(--fs-lg);}
.btn-primary{background:var(--brand-primary);color:#fff;}
.btn-primary:hover{background:var(--brand-primary-hover);box-shadow:0 6px 20px -6px color-mix(in oklab, var(--brand-primary) 55%, transparent);}
.btn-on-dark{background:transparent;color:var(--text-on-dark);border:1.5px solid var(--ink-600);}
.btn-on-dark:hover{background:var(--ink-800);}
.btn-violet{background:var(--brand-secondary);color:#fff;}
.btn-violet:hover{background:var(--brand-secondary-hover);box-shadow:0 6px 20px -6px color-mix(in oklab, var(--brand-secondary) 55%, transparent);}
.btn-secondary{background:transparent;color:var(--text-primary);border:1.5px solid var(--border-default);}
.btn-secondary:hover{background:var(--surface-sunken);}
.btn-magic{background:var(--ink-900);color:#fff;border:2px solid transparent;background-image:linear-gradient(var(--ink-900),var(--ink-900)),conic-gradient(from 0deg,var(--coral-500),var(--violet-500),var(--teal-500),var(--coral-500));background-origin:border-box;background-clip:padding-box,border-box;animation:btn-magic-spin 3.5s linear infinite;}
.btn-magic:hover{box-shadow:0 0 0 5px color-mix(in oklab, var(--violet-500) 20%, transparent),0 10px 32px -6px color-mix(in oklab, var(--coral-500) 55%, transparent);}
@keyframes btn-magic-spin{to{background-image:linear-gradient(var(--ink-900),var(--ink-900)),conic-gradient(from 360deg,var(--coral-500),var(--violet-500),var(--teal-500),var(--coral-500));}}

.card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px;transition:box-shadow 320ms var(--ease-standard),transform 320ms cubic-bezier(0.22,0.61,0.36,1);}
.card-hoverable:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.wash-violet{background:var(--wash-violet);}
.wash-teal{background:var(--wash-teal);}
.wash-coral{background:var(--wash-coral);}
.wash-amber{background:var(--wash-amber);}
.icon-tile{width:48px;height:48px;flex-shrink:0;aspect-ratio:1/1;border-radius:50%;display:flex;align-items:center;justify-content:center;}
