/* 🧁 말랑이 쌓기 */
.stack-stage { cursor: grab; }
.stack-stage:active { cursor: grabbing; }
.hud-tl { top: 10px; left: 10px; flex-wrap: wrap; max-width: 60%; }
.hud-tr { top: 10px; right: 10px; }
.hud-bl { left: 10px; bottom: 10px; }
.hud-br { right: 10px; bottom: 10px; }
.pill-best.is-new { animation: best-pop .9s var(--lp-ease); }
@keyframes best-pop { 0% { transform: scale(1); } 30% { transform: scale(1.25); background: #fde68a; color: #6b4a00; } 100% { transform: scale(1); } }
.stack-hint { position: absolute; left: 50%; top: 56px; transform: translateX(-50%); margin: 0; padding: 8px 14px; border-radius: 999px;
  background: var(--hud-bg); color: var(--stage-ink); font-size: 14px; font-weight: 700; white-space: nowrap; pointer-events: none;
  transition: opacity .6s; }
.stack-hint.is-gone { opacity: 0; }
@media (max-width: 400px) { .stack-hint { font-size: 12.5px; top: 98px; } .hud-tl { max-width: 70%; } }
.over { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(255, 255, 255, .25); }
.over[hidden] { display: none; }
.over-card { background: var(--lp-card); color: var(--lp-ink); border: 1px solid var(--lp-line); border-radius: 24px; padding: 22px 24px; text-align: center;
  box-shadow: var(--lp-shadow-lg); max-width: 320px; animation: over-in .5s var(--lp-ease); }
@keyframes over-in { from { transform: translateY(16px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
.over-e { font-size: 36px; margin: 0; }
.over-t { font-size: 19px; font-weight: 800; margin: 6px 0 4px; letter-spacing: -.02em; }
.over-m { color: var(--lp-soft); margin: 0 0 16px; line-height: 1.5; }
:root[data-theme="dark"] .over { background: rgba(11, 16, 48, .35); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .over { background: rgba(11, 16, 48, .35); } }
