/* Local accents only. No panels, borders, layout changes, or input interception. */
.feedback-vfx {
  position: fixed !important;
  inset: auto;
  display: block !important;
  pointer-events: none !important;
  z-index: 2147483000;
  overflow: hidden;
  contain: strict;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.feedback-vfx::before, .feedback-vfx::after { content: none !important; }
.feedback-vfx::backdrop { background: transparent; pointer-events: none; }
.feedback-vfx > i {
  position: absolute;
  display: block;
  left: var(--fv-x);
  top: var(--fv-y);
  width: 3px;
  height: 3px;
  border: 0;
  box-shadow: none;
  outline: 0;
  padding: 0;
  margin: 0;
  border-radius: 50%;
  background: var(--fv-color);
  opacity: 0;
  pointer-events: none;
  animation: feedback-mote var(--fv-duration) ease-out var(--fv-delay) both;
}
.feedback-vfx > i::before, .feedback-vfx > i::after { content: none !important; }
.feedback-vfx--silk > i {
  width: 26px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--fv-color), transparent);
}
.feedback-vfx--ember > i { width: 3px; height: 5px; }
.feedback-vfx--dust > i {
  width: 16px;
  height: 10px;
  background: radial-gradient(ellipse, var(--fv-color), transparent 70%);
}
.feedback-vfx--ink > i {
  width: 7px;
  height: 5px;
  background: radial-gradient(ellipse, var(--fv-color), transparent 68%);
}
@keyframes feedback-mote {
  0% { opacity: 0; transform: translate3d(0, 5px, 0) scale(.55); }
  22% { opacity: .9; }
  100% { opacity: 0; transform: translate3d(var(--fv-dx), var(--fv-dy), 0) scale(1.1); }
}
@media (max-width:700px) {
  .feedback-vfx--silk > i { width: 11px; }
  .feedback-vfx--dust > i { width: 11px; height: 7px; }
}
@media (prefers-reduced-motion:reduce) { .feedback-vfx { display:none !important; } }

/* Local light follows the card surface; no added panel or border. */
.feedback-vfx .feedback-bloom,.feedback-vfx .feedback-gleam{position:absolute;display:block;pointer-events:none;border:0;box-shadow:none;margin:0;padding:0;}
.feedback-vfx .feedback-bloom{inset:0;background:radial-gradient(ellipse at 50% 70%,color-mix(in srgb,var(--fv-color) 30%,transparent),transparent 68%);animation:feedback-bloom var(--fv-duration) ease-out both;}
.feedback-vfx .feedback-gleam{inset:0;background:linear-gradient(115deg,transparent 32%,color-mix(in srgb,var(--fv-color) 23%,transparent) 47%,#fff8df60 50%,transparent 57%);animation:feedback-gleam var(--fv-duration) ease-out both;}
@keyframes feedback-bloom{0%{opacity:0;transform:scale(.6)}25%{opacity:1}100%{opacity:0;transform:scale(1.2)}}
@keyframes feedback-gleam{0%{opacity:0;transform:translateX(-90%)}18%{opacity:.8}70%,100%{opacity:0;transform:translateX(90%)}}

/* Desktop effects keep their presence against the large scene illustration. */
.feedback-vfx[data-size="desktop"]>i{filter:drop-shadow(0 0 4px var(--fv-color))}
.feedback-vfx[data-size="desktop"].feedback-vfx--silk>i{width:42px;height:3px}
.feedback-vfx[data-size="desktop"].feedback-vfx--ember>i{width:5px;height:8px}
.feedback-vfx[data-size="desktop"] .feedback-bloom{background:radial-gradient(ellipse at 50% 70%,color-mix(in srgb,var(--fv-color) 44%,transparent),transparent 74%)}
.feedback-vfx[data-size="desktop"] .feedback-gleam{background:linear-gradient(115deg,transparent 28%,color-mix(in srgb,var(--fv-color) 30%,transparent) 45%,#fff8df88 50%,transparent 59%)}
