/* A handbell rests above the machine's right knob; only a matching submission lifts it. */
.desk-bell { position:absolute; z-index:8; right:1%; bottom:calc(min(100cqw,calc((100svh - 360px) * 1.5),1000px) * .554297); width:clamp(84px,14%,160px); aspect-ratio:2/3;
  pointer-events:none; user-select:none; }
.desk-bell .sentence-bell { position:relative; display:block; width:100%; height:100%; object-fit:contain;
  aspect-ratio:2/3; transform-origin:50% 16%; filter:drop-shadow(3px 5px 3px #160b0755); }
.desk-bell::after { content:''; position:absolute; z-index:-1; width:60%; height:7%; left:20%; bottom:8%;
  background:#140a0780; border-radius:50%; filter:blur(5px); transform:scaleY(.45); }
.desk-bell.is-ringing .sentence-bell { animation:sentence-bell-ring 1.6s ease-in-out; }
.desk-bell.is-ringing::after { animation:sentence-bell-shadow 1.6s ease-in-out; }
@keyframes sentence-bell-ring {
  0%,100% { transform:translateY(0) rotate(0); }
  10% { transform:translateY(-9%) rotate(-9deg); }
  23% { transform:translateY(-9%) rotate(22deg); }
  40% { transform:translateY(-8%) rotate(-18deg); }
  57% { transform:translateY(-7%) rotate(12deg); }
  72% { transform:translateY(-5%) rotate(-6deg); }
  86% { transform:translateY(-2%) rotate(2deg); }
}
@keyframes sentence-bell-shadow {
  0%,100% { opacity:1; transform:scaleY(.45); }
  18%,55% { opacity:.45; transform:scale(.8,.35); }
}
[data-motion="reduced"] .desk-bell.is-ringing .sentence-bell,
[data-motion="reduced"] .desk-bell.is-ringing::after { animation:none; }
@media (prefers-reduced-motion:reduce) {
  .desk-bell.is-ringing .sentence-bell,.desk-bell.is-ringing::after { animation:none; }
}
@media (min-width:1100px) and (min-aspect-ratio:5/4) {
  .desk-bell { bottom:calc(var(--desk-machine-width) * .554297); }
}

