.star-rating{gap:5px}.star-rating,.star-rating__stars{display:inline-flex;align-items:center}.star-rating__stars{gap:2px}.star-rating__star{transition:transform .15s ease-out,filter .15s ease-out;flex-shrink:0}@media (prefers-reduced-motion:reduce){.star-rating__star{transition:none}}.star-rating__star--active{filter:drop-shadow(0 0 3px rgba(245,158,11,.4))}.star-rating--interactive .star-rating__touch-target:hover .star-rating__star{transform:scale(1.1)}.star-rating__value{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;color:hsla(0,0%,100%,.6);margin-left:3px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.star-rating__touch-target{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}.star-rating__half-btn{position:absolute;top:0;width:50%;height:100%;background:none;border:none;padding:0;margin:0;cursor:pointer;z-index:1;outline:none;min-height:44px}.star-rating__half-btn--left{left:0}.star-rating__half-btn--right{right:0}.star-rating__half-btn:focus-visible{outline:2px solid #f59e0b;outline-offset:2px;border-radius:4px}.star-rating--saving{opacity:.6;pointer-events:none}.star-rating--saving .star-rating__star{animation:star-pulse 1s ease-in-out infinite}@keyframes star-pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.star-rating--saving .star-rating__star{animation:none;opacity:.5}}.star-rating--sm .star-rating__touch-target{min-width:22px;min-height:22px}.star-rating--sm .star-rating__value{font-size:10px}.star-rating--lg .star-rating__touch-target{min-width:34px;min-height:34px}.star-rating--lg .star-rating__value{font-size:14px}.star-rating--readonly .star-rating__stars{gap:1px}.star-rating--readonly .star-rating__star{filter:none}