/* ============================================================
   スロット 固有スタイル（games.css を土台に盤面のみ）
   ============================================================ */
.slot-machine{ width:100%; max-width:360px; margin:8px auto 4px; box-sizing:border-box;
  background:linear-gradient(160deg,#2b1233,#43124a 60%,#1a0a1f);
  border:3px solid #7B1FA2; border-radius:22px; padding:16px 14px 18px;
  box-shadow:0 0 0 4px rgba(123,31,162,.25), 0 14px 40px rgba(0,0,0,.6); }

.slot-marquee{ text-align:center; font-weight:900; letter-spacing:2px; font-size:1rem;
  color:#FFD54F; text-shadow:0 0 10px rgba(255,213,79,.7); margin-bottom:12px; }

.slot-reels{ position:relative; display:flex; gap:8px; justify-content:center;
  width:100%; box-sizing:border-box;
  background:#0c0710; border-radius:14px; padding:14px 10px; border:2px solid #111; }
/* 中央のペイライン */
.slot-reels::after{ content:''; position:absolute; left:6px; right:6px; top:50%; height:3px;
  transform:translateY(-50%); background:linear-gradient(90deg,transparent,#FF5252,transparent); opacity:.65; pointer-events:none; }

.slot-reel{ flex:1; height:84px; background:linear-gradient(#fff,#f0e9f5);
  border-radius:10px; display:flex; align-items:center; justify-content:center;
  font-size:48px; line-height:1; overflow:hidden; box-shadow:inset 0 6px 10px rgba(0,0,0,.25), inset 0 -6px 10px rgba(0,0,0,.25); }
.slot-reel .sym{ display:block; width:100%; height:56px; text-align:center;
  background-position:center; background-repeat:no-repeat; background-size:52px; image-rendering:pixelated; }
.slot-reel.spinning .sym{ animation:slotBlur .12s linear infinite; }
@keyframes slotBlur{ 0%{ transform:translateY(-6px); filter:blur(1px);} 100%{ transform:translateY(6px); filter:blur(1px);} }
.slot-reel.stopped{ animation:slotThunk .22s ease; }
@keyframes slotThunk{ 0%{ transform:translateY(-8px);} 60%{ transform:translateY(3px);} 100%{ transform:translateY(0);} }
.slot-reel.win{ box-shadow:inset 0 0 0 3px #4CAF50, inset 0 6px 10px rgba(0,0,0,.2); background:linear-gradient(#E8F5E9,#C8E6C9); }

.slot-result{ font-size:22px; font-weight:800; min-height:34px; margin-top:12px; text-align:center; }
.slot-result.win{ color:#69F0AE; } .slot-result.lose{ color:#9aa; }

/* 配当表 */
.slot-paytable{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:14px; }
.slot-pt{ background:#141414; border:1px solid #2a2a2a; border-radius:10px; padding:7px 4px; text-align:center; font-size:.78rem; color:#ccc; }
.slot-pt b{ display:block; font-size:1.3rem; line-height:1.4; }
.slot-pt span{ color:#FFD54F; font-weight:800; }

/* リーチ演出（2つ揃い→第3リール焦らし） */
.slot-reel.reach{ box-shadow:inset 0 0 0 3px #FFD54F, 0 0 14px rgba(255,213,79,.55); animation:slotReachPulse .5s ease-in-out infinite alternate; }
@keyframes slotReachPulse{ 0%{ box-shadow:inset 0 0 0 3px #FFD54F, 0 0 8px rgba(255,213,79,.35);} 100%{ box-shadow:inset 0 0 0 3px #FFD54F, 0 0 20px rgba(255,213,79,.8);} }
.slot-result.reach{ color:#FFD54F; animation:slotReachTxt .4s ease-in-out infinite alternate; }
@keyframes slotReachTxt{ 0%{ opacity:.65; transform:scale(1);} 100%{ opacity:1; transform:scale(1.08);} }
