.card-rating{gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--accent-line,var(--line));border-radius:var(--radius-lg);box-sizing:border-box;flex-direction:column;min-block-size:3.25rem;display:flex;position:relative;overflow:hidden}.card-rating--expect-daily{min-block-size:5.5rem}.card-rating__daily-banner{align-items:center;gap:var(--space-1);padding:2px var(--space-2);margin-inline:calc(var(--space-3) * -1);background:var(--state-active);color:var(--accent-ink,var(--bg));border-block-end:1px solid var(--ink-1);border-start-start-radius:calc(-1px + var(--radius-lg));border-start-end-radius:calc(-1px + var(--radius-lg));margin-block-start:calc(var(--space-2) * -1);display:flex}.card-rating__daily-banner-icon{color:var(--accent-ink,var(--bg));flex:none;place-items:center;display:grid}.card-rating__daily-banner-text{min-inline-size:0;font-size:var(--text-micro);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;flex:auto;font-weight:800;overflow:hidden}.card-rating__daily-banner-bonus{flex:none;align-items:flex-end;gap:2px;display:inline-flex}.card-rating__daily-banner-bonus--pulse{animation:card-rating-exp-pulse 1.6s var(--ease-out-expo) infinite}.card-rating__daily-banner-plus{font-weight:800;font-size:var(--text-caption);color:var(--accent-ink,var(--bg));line-height:1}@keyframes card-rating-exp-pulse{0%,to{opacity:1;transform:scale(1)}45%{opacity:.88;transform:scale(1.08)}}.card-rating__row{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-block-size:2rem;display:flex}.card-rating__interactive{flex:none;align-items:center;gap:0;display:inline-flex}.card-rating__aggregate{align-items:baseline;gap:var(--space-1);min-inline-size:0;display:inline-flex}.card-rating__score{font-size:var(--text-h3);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:800;line-height:1}.card-rating__count{font-size:var(--text-micro);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.card-rating__exp-chip{flex:none;align-items:flex-end;gap:2px;min-block-size:1.75rem;min-inline-size:5.5rem;display:inline-flex}.card-rating__exp-plus{font-weight:800;font-size:var(--text-caption);color:var(--state-active);line-height:1}.card-rating__action-text{min-inline-size:0;font-size:var(--text-micro);color:var(--ink-2);flex-wrap:wrap;align-items:flex-end;gap:0 4px;font-weight:600;line-height:1.25;display:inline-flex}.card-rating--rated .card-rating__action-text{color:var(--ink-2);font-weight:500}.card-rating--celebrate .card-rating__star--committed{animation:card-rating-star-burst var(--motion-slow,.6s) var(--ease-out-expo)}.card-rating--celebrate:after{content:"";pointer-events:none;background:color-mix(in srgb,var(--brand) 18%,transparent);opacity:0;animation:card-rating-flash var(--motion-slow,.6s) var(--ease-out-expo);position:absolute;inset:0}@keyframes card-rating-star-burst{0%{transform:scale(1)}35%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes card-rating-flash{0%{opacity:.55}to{opacity:0}}@media (prefers-reduced-motion:reduce){.card-rating--celebrate .card-rating__star--committed,.card-rating--celebrate:after,.card-rating__daily-banner-bonus--pulse{animation:none}}.card-rating__star{block-size:32px;inline-size:32px;color:var(--ink-4);cursor:pointer;transition:transform var(--motion-fast) var(--ease-out-expo);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.card-rating__star:before{content:"";position:absolute;inset:-6px}.card-rating__star-svg{block-size:20px;inline-size:20px;display:block}.card-rating__star-outline{stroke:var(--ink-4)}.card-rating__star-fill{fill:var(--state-active)}.card-rating__star--committed .card-rating__star-outline{stroke:var(--state-active);stroke-width:1.4px}.card-rating__star:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius);outline:none}@media (hover:hover){.card-rating__star:not(:disabled):hover{transform:scale(1.12)}}.card-rating__star:active:not(:disabled){transform:scale(.94)}.card-rating--offline .card-rating__star,.card-rating__star:disabled{cursor:not-allowed}.card-rating__nudge{align-items:center;gap:var(--space-2);font-size:var(--text-micro);color:var(--ink-2);flex-wrap:wrap;margin:0;display:inline-flex}.card-rating__nudge--error{color:var(--state-error,var(--ink-2))}.card-rating__link{color:var(--state-active);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:700;text-decoration:underline}.card-rating__link:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}@media (prefers-reduced-motion:reduce){.card-rating__star{transition:none}.card-rating__star:active:not(:disabled),.card-rating__star:hover{transform:none}}.card-rating--stack{align-items:stretch;padding-inline:0}.card-rating--stack .card-rating__daily-banner{gap:var(--space-1);box-sizing:border-box;inline-size:calc(100% + 2px);max-inline-size:none;padding-inline:var(--space-2);border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg);flex-wrap:nowrap;margin-block-start:calc(-1px + var(--space-2) * -1);margin-inline:-1px}.card-rating--stack .card-rating__daily-banner-bonus{flex:none;max-inline-size:38%}.card-rating--stack .card-rating__daily-banner-bonus :is(.level-display__digit,.level-display__word){block-size:1rem}.card-rating--stack .card-rating__action-text,.card-rating--stack .card-rating__nudge,.card-rating--stack .card-rating__row{padding-inline:var(--space-2);box-sizing:border-box}.card-rating--stack .card-rating__row{justify-content:center;align-items:center;gap:var(--space-1);flex-flow:column;inline-size:100%}.card-rating--stack .card-rating__interactive{justify-content:center;margin-inline:auto}.card-rating--stack .card-rating__aggregate,.card-rating--stack .card-rating__exp-chip{justify-content:center}.card-rating--stack .card-rating__exp-chip :is(.level-display__digit,.level-display__word){block-size:1rem}.card-rating--stack .card-rating__action-text,.card-rating--stack .card-rating__nudge{text-align:center;justify-content:center;inline-size:100%}
