.ui-button{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font-font-family-display);font-weight:var(--font-weight-bold);border-radius:var(--radius-md);white-space:nowrap;color:#fff;transition:transform .12s,filter .12s,opacity .12s;display:inline-flex}.ui-button:active{transform:translateY(1px)scale(.99)}.ui-button:disabled{opacity:.55;cursor:not-allowed}.ui-button--sm{font-size:var(--font-size-xs);padding:6px 12px}.ui-button--md{font-size:var(--font-size-sm);padding:10px 18px}.ui-button--lg{font-size:var(--font-size-md);padding:14px 22px}.ui-button--block{width:100%}.ui-button--primary{background:var(--color-primary)}.ui-button--primary:hover{filter:brightness(1.08)}.ui-button--gold{background:var(--gradient-gold);color:hsl(from #5a2a00 calc(h + var(--hue-brand)) calc(s * var(--sat-brand)) l)}.ui-button--gold:hover{filter:brightness(1.05)}.ui-button--ghost{background:#ffffff14}.ui-button--outline{border:1px solid var(--color-border);background:0 0}.smart-image{object-fit:cover;width:100%;height:100%;display:block}.smart-image--fallback{text-align:center;background:linear-gradient(135deg, var(--color-surface-alt), var(--color-surface));border:1px solid var(--color-border);color:var(--color-accent-soft);font-weight:var(--font-weight-bold);font-size:var(--font-size-xs);justify-content:center;align-items:center;padding:6px;line-height:1.2;display:flex;overflow:hidden}.smart-image--fallback span{-webkit-line-clamp:3;text-shadow:0 1px 2px #0009;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ui-badge{border-radius:var(--radius-pill);font-size:10px;font-weight:var(--font-weight-black);text-transform:uppercase;letter-spacing:.4px;justify-content:center;align-items:center;padding:2px 8px;line-height:1.4;display:inline-flex}.ui-badge--hot{background:hsl(from #ff3b2f calc(h + var(--hue-brand)) calc(s * var(--sat-brand)) l);color:#fff}.ui-badge--new{color:#fff;background:#2fbf5b}.ui-badge--gold{background:var(--gradient-gold);color:hsl(from #5a2a00 calc(h + var(--hue-brand)) calc(s * var(--sat-brand)) l)}.ui-badge--count{color:#fff;background:#00000059;min-width:34px}
