/* Game sound and motion, shared by Word Skill (#281) and Gramma Ana (#312): flying tiles, toasts, floating scores. */
.ws-flyer { position: fixed; z-index: 100; pointer-events: none; transform-origin: 0 0; }
.ws-flyer .ws-tile { position: absolute; inset: 0; }

.ws-toast {
  position: fixed; left: 50%; top: calc(env(safe-area-inset-top, 0px) + 10px); z-index: 120;
  transform: translate(-50%, -160%);
  background: #1c2a4d; color: #fff; font-size: 13px; font-weight: 700; line-height: 1.2;
  padding: 8px 14px; border-radius: 99px; white-space: nowrap; max-width: calc(100vw - 32px);
  overflow: hidden; text-overflow: ellipsis;
  box-shadow: 0 6px 18px -6px rgba(20, 30, 60, 0.45);
  transition: transform 0.35s cubic-bezier(.2, .9, .3, 1.3);
  pointer-events: none;
}
.ws-toast.on { transform: translate(-50%, 0); }

@media (prefers-reduced-motion: reduce) {
  .ws-toast { transition: opacity 0.2s ease; opacity: 0; transform: translate(-50%, 0); }
  .ws-toast.on { opacity: 1; }
}

/* "+N" floating up from a score chip (Gramma Ana S4). */
.fx-float {
  position: fixed; z-index: 110; pointer-events: none; transform: translate(-50%, -50%);
  font-weight: 800; font-size: 18px; color: #1f7a4d; white-space: nowrap;
  text-shadow: 0 2px 0 #fff, 0 0 12px rgba(255, 255, 255, .9);
}
.fx-float.down { color: #c4462f; }

/* A big play (Gramma Ana S11, #313): a violet stamp over the screen. */
.fx-stamp {
  position: fixed; left: 50%; top: 42%; z-index: 115; pointer-events: none;
  width: 150px; height: 150px; border-radius: 50%; transform: translate(-50%, -50%) rotate(-6deg);
  background: #7c3aed; color: #fff; display: grid; place-content: center; text-align: center;
  font-family: "Manrope", system-ui, sans-serif; font-weight: 800; font-size: 13px; letter-spacing: .08em; line-height: 1.25;
  box-shadow: 0 0 0 7px rgba(124, 58, 237, .25), 0 6px 18px rgba(60, 20, 120, .4);
}
.fx-stamp b { display: block; font-family: "Fraunces", Georgia, serif; font-size: 30px; letter-spacing: 0; }
