.btn{--btn-ring:#ffffff2e;height:32px;font:inherit;letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:background-color var(--t-quick) ease, box-shadow var(--t-quick) ease, color var(--t-quick) ease, opacity var(--t-quick) ease, scale var(--t-move) var(--ease);border:0;border-radius:999px;place-items:center;padding:0 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-grid;position:relative}.btn>*{grid-area:1/1}.btn:active:not(:disabled){transition:background-color var(--t-quick) ease, box-shadow var(--t-quick) ease, color var(--t-quick) ease, scale .15s var(--ease);scale:.97}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{cursor:default;opacity:.4}.btn.is-loading:disabled{cursor:progress;opacity:.9}.btn-full{width:100%}.btn-sm{height:26px;padding:0 11px;font-size:12px}.btn-lg{height:40px;padding:0 20px;font-size:14px}.btn-primary{--btn-ring:color-mix(in srgb, var(--accent) 45%, transparent);background-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--accent), #fff 8%)}.btn-primary:focus-visible{outline-color:var(--text)}.btn-secondary{color:var(--text);background-color:#ffffff0f;box-shadow:inset 0 0 0 1px #ffffff12}.btn-secondary:hover:not(:disabled){background-color:#ffffff1a}.btn-tertiary{--btn-ring:#ffffff1f;color:var(--muted);background-color:#0000}.btn-tertiary:hover:not(:disabled){color:var(--text);background-color:#ffffff0f}.btn-danger{--btn-ring:color-mix(in srgb, var(--danger) 45%, transparent);background-color:var(--danger);color:var(--accent-ink)}.btn-danger:hover:not(:disabled){background-color:color-mix(in srgb, var(--danger), #fff 8%)}.btn-danger:focus-visible{outline-color:var(--text)}.btn-content{transition:opacity var(--t-quick) ease 80ms, scale var(--t-move) var(--ease);align-items:center;gap:6px;display:inline-flex}.btn-icon{transition:translate var(--t-move) var(--ease);flex-shrink:0}.btn:hover:not(:disabled) .btn-icon-right{translate:2px}.btn-ring{border-radius:inherit;pointer-events:none;animation:btn-ring var(--t-slow) var(--ease) forwards;position:absolute;inset:0}@keyframes btn-ring{0%{box-shadow:0 0 0 0 var(--btn-ring)}to{box-shadow:0 0 0 8px #0000}}.btn-dots{opacity:0;transition:opacity var(--t-quick) ease, scale var(--t-move) var(--ease);align-items:center;gap:5px;display:inline-flex;scale:.6}.btn-dots i{background:currentColor;border-radius:50%;width:5px;height:5px}.is-loading .btn-content{opacity:0;transition:opacity var(--t-quick) ease, scale var(--t-move) var(--ease);scale:.6}.is-loading .btn-dots{opacity:1;transition:opacity var(--t-move) ease .1s, scale var(--t-move) var(--ease) .1s;scale:1}.is-loading .btn-dots i{animation:1.6s ease-in-out infinite btn-breathe}.is-loading .btn-dots i:nth-child(2){animation-delay:.2s}.is-loading .btn-dots i:nth-child(3){animation-delay:.4s}@keyframes btn-breathe{0%,to{opacity:.3}40%{opacity:1}}@media (prefers-reduced-motion:reduce){.btn-ring,.is-loading .btn-dots i{animation:none}.btn:active{scale:none}}
