.feedback-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  contain: layout style paint;
}
.feedback-slot {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
}
.feedback-ring, .feedback-float {
  position: absolute;
  display: block;
  opacity: 0;
  will-change: transform, opacity;
}
.feedback-ring {
  box-sizing: border-box;
  width: var(--feedback-ring-size);
  height: var(--feedback-ring-size);
  border: var(--feedback-ring-border) solid var(--feedback-color);
  border-radius: 50%;
}
.feedback-float {
  color: var(--feedback-color);
  font-family: inherit;
  font-size: var(--feedback-score-size);
  font-weight: var(--feedback-score-weight);
  font-variant-numeric: tabular-nums;
  line-height: 1;
  white-space: nowrap;
}
.feedback-particle { position:absolute; width:var(--feedback-particle-size); height:var(--feedback-particle-size); opacity:0; will-change:transform,opacity; }
.feedback-particle.star { clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%); }
.feedback-particle.paper { border-radius:1px; }
.feedback-glow { position:absolute; inset:0; opacity:0; background:radial-gradient(ellipse at 50% 65%,transparent 50%,color-mix(in srgb,var(--feedback-color) 16%,transparent)); }
.feedback-banner, .feedback-progress { position:absolute; inset-inline:12px; text-align:center; color:#fff5db; opacity:0; text-shadow:0 2px 8px #122a24; font-variant-numeric:tabular-nums; }
.feedback-banner { top:16%; font-size:clamp(24px,7vw,48px); font-weight:850; letter-spacing:.04em; line-height:1.15; }
.feedback-progress { bottom:24%; font-size:clamp(14px,3vw,19px); font-weight:650; }
.feedback-result { position:absolute; inset:15% 12px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; padding:16px; color:#fff8e9; text-align:center; border:1px solid #fcf5db45; border-radius:22px; background:#16352ff5; opacity:0; }
.feedback-result-label { font-size:clamp(14px,3.5vw,20px); font-weight:600; }
.feedback-result-score { font-size:clamp(38px,12vw,72px); line-height:1.1; font-variant-numeric:tabular-nums; letter-spacing:-.05em; }
.feedback-result-combo { font-size:15px; font-variant-numeric:tabular-nums; }
