/* Plush Link (Tsum-style) */

.plush-main { padding-left: 0 !important; padding-right: 0 !important; display: flex; flex-direction: column; align-items: center; }

.plush-hud { width: 360px; margin: 0.5rem auto; display: flex; justify-content: space-between; gap: 8px; }
.plush-hud .hud-item { flex: 1; background: #333; border: 2px solid #777; padding: 6px; font-size: 10px; text-align: center; }

.plush-board { position: relative; width: 364px; height: 448px; /* staggered width: 6*56 + 28 */ background: #0f141b; border: 2px solid #777; border-radius: 8px; overflow: hidden; touch-action: none; }

.plush-tile { position: absolute; width: 56px; height: 56px; left: 0; top: 0; background-size: cover; background-position: center; border-radius: 50%; border: 1px solid #222; transition: left 120ms ease, top 120ms ease, transform 80ms ease, opacity 160ms ease; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.08), 0 2px 6px rgba(0,0,0,0.5); transform: translate(var(--jx,0px), var(--jy,0px)); }
.plush-tile::after { content: ''; position: absolute; left:0; top:0; right:0; bottom:0; border-radius: 50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.65), rgba(255,255,255,0.0) 45%); pointer-events: none; }

.plush-sel { outline: 2px solid #ffcc00; filter: brightness(1.2); transform: translate(var(--jx,0px), var(--jy,0px)) scale(1.06); }
.plush-dim { opacity: 0.35; }
.plush-vanish { opacity: 0; transform: translate(var(--jx,0px), var(--jy,0px)) scale(0.2); }

.link-line { position: absolute; height: 4px; background: linear-gradient(90deg, #66ccff, #aaddff); border-radius: 4px; pointer-events: none; opacity: 0.9; transform-origin: 0 50%; z-index: 5; }

/* Shuffle banner */
.shuffle-banner { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 10px 16px; background: rgba(0,0,0,0.75); color: #fff; border: 2px solid #fff; border-radius: 8px; font-weight: 700; z-index: 10; letter-spacing: 1px; }
