.btn{justify-content:center;align-items:center;gap:var(--space-xs);font-family:var(--font-body);letter-spacing:var(--tracking-wide);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-normal) var(--ease-out-quad), box-shadow var(--duration-normal) var(--ease-out-quad), transform var(--duration-fast) var(--ease-out-quad), opacity var(--duration-fast) var(--ease-out-quad);border:none;outline:none;font-weight:600;display:inline-flex;position:relative}.btn:focus-visible{box-shadow:0 0 0 3px #00000026}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--sm{height:36px;padding:0 var(--space-md);font-size:var(--text-caption)}.btn--md{height:48px;padding:0 var(--space-xl);font-size:var(--text-body-sm)}.btn--lg{height:56px;padding:0 var(--space-2xl);font-size:var(--text-body)}.btn--full{width:100%}.btn--primary{color:#000;transition:background-position .5s cubic-bezier(.19, 1, .22, 1), color .3s ease, transform var(--duration-fast) var(--ease-out-quad);background-color:#0000;background-image:linear-gradient(90deg,#000 50%,#0000 50%);background-position:100% 100%;background-size:200% 100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #000}.btn--primary:hover:not(:disabled){color:#fff;background-position:0 100%;box-shadow:inset 0 0 0 2px #000,0 8px 24px #0003}.btn--secondary{background-color:var(--snow-container-high);color:var(--text-primary)}.btn--secondary:hover:not(:disabled){background-color:var(--snow-highest);box-shadow:var(--shadow-sm)}.btn--ghost{color:var(--text-primary);background:0 0}.btn--ghost .btn__label{position:relative}.btn--ghost .btn__label:after{content:"";background-color:var(--onyx);width:0;height:2px;transition:width var(--duration-normal) var(--ease-out-expo);position:absolute;bottom:-2px;left:0}.btn--ghost:hover:not(:disabled) .btn__label:after{width:100%}.btn--danger{background:linear-gradient(135deg, var(--accent-red) 0%, #c0392b 100%);color:var(--snow-pure)}.btn--danger:hover:not(:disabled){box-shadow:0 0 0 2px #e74c3c40,0 8px 32px #e74c3c33}.btn__icon{align-items:center;font-size:1.15em;display:inline-flex}.btn--loading .btn__label{opacity:0}.btn__spinner{display:inline-flex;position:absolute}.btn__spinner-svg{width:20px;height:20px;animation:.8s linear infinite spin}.btn__spinner-svg circle{stroke:currentColor;stroke-dasharray:44;stroke-dashoffset:16px;stroke-linecap:round}.card{border-radius:var(--radius-super);transition:transform var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo)}.card--padded{padding:var(--space-xl)}.card--glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-md)}.card--lifted{background-color:var(--snow-pure);box-shadow:var(--shadow-md)}.card--surface{background-color:var(--snow-container-low)}.card--onyx{background:linear-gradient(145deg, var(--onyx) 0%, var(--onyx-dim) 100%);color:var(--text-on-onyx)}.card--onyx p,.card--onyx h1,.card--onyx h2,.card--onyx h3,.card--onyx h4{color:var(--text-on-onyx)}.card--onyx .text-caption,.card--onyx .text-overline{color:var(--text-on-onyx-muted)}.card--hoverable:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card--clickable{cursor:pointer}.theme-main .card{border:none;box-shadow:0 4px 24px #0000000a;background-color:var(--bg-container)!important}.theme-main .card--hoverable:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000014}@media (width<=640px){.card--padded{padding:var(--space-lg)}}
