/* ============================================================
   Laxdx ミニゲーム共通スタイル（スロット/ハイ&ロー/マインズ/クラッシュ）
   じゃんけん(janken.css)の世界観を汎用化。ダーク・モバイル先行。
   ============================================================ */
.gc-wrap{ max-width:520px; margin:0 auto; padding:12px 10px 80px; color:#fff;
  -webkit-tap-highlight-color:transparent; }

/* 上部: 所持pt（右上HUD） */
.gc-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.gc-back{ flex-shrink:0; color:#aaa; text-decoration:none; font-size:.8rem; background:#1a1a1a; border:1px solid #333;
  border-radius:12px; padding:7px 12px; }
.gc-back:active{ background:#222; }
.gc-balance-pill{ flex-shrink:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  white-space:nowrap; background:#1a1a1a; border:1px solid #3a3a3a; border-radius:14px; padding:6px 16px; line-height:1.15; }
.gc-bal-label{ font-size:.55rem; color:#aaa; font-weight:700; letter-spacing:.3px; }
.gc-bal-val{ font-size:1.2rem; font-weight:800; color:#fff; }
.gc-bal-val small{ font-size:.6rem; margin-left:1px; color:#aaa; }

/* タイトル（映えるヒーロー見出し） */
.gc-hero{ text-align:center; margin-bottom:14px; }
.gc-title{ margin:0; font-size:1.5rem; font-weight:900; line-height:1.35; letter-spacing:.2px;
  background:linear-gradient(120deg,#9575CD 0%,#F06292 55%,#FFD54F 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
  filter:drop-shadow(0 2px 10px rgba(216,27,96,.4)); }
.gc-sub{ color:#999; font-size:.82rem; margin:4px 0 0; }
@media (min-width:420px){ .gc-title{ font-size:1.8rem; } }

/* ポイント説明 */
.gc-info-box{ background:rgba(255,213,79,.08); border:1px solid rgba(255,213,79,.3); border-radius:12px;
  padding:10px 14px; margin-bottom:12px; font-size:.78rem; color:#ddd; line-height:1.7; }
.gc-info-box b{ color:#FFD54F; }

/* あそびかた（各ゲームの分かりやすい説明） */
.gc-howto{ background:linear-gradient(135deg,rgba(124,77,255,.14),rgba(0,0,0,.15));
  border:1px solid rgba(149,117,205,.45); border-radius:14px; padding:11px 14px 12px; margin-bottom:14px; }
.gc-howto-title{ font-weight:800; color:#B39DDB; font-size:.9rem; margin-bottom:6px; }
.gc-howto ol{ margin:0; padding-left:1.25em; color:#e6e6e6; font-size:.84rem; line-height:1.85; }
.gc-howto li{ margin-bottom:1px; }
.gc-howto b{ color:#FFD54F; }
.gc-howto .ok{ color:#69F0AE; font-weight:800; }
.gc-howto .ng{ color:#FF8A80; font-weight:800; }
/* 操作説明（famicom.js fcController がここに注入・タッチ＋PCキー） */
.gc-howto-ctrl{ list-style:none; margin:7px 0 0 -1.25em; padding:7px 10px 8px;
  background:rgba(0,0,0,.28); border:1px dashed rgba(149,117,205,.5); border-radius:10px; color:#d7cdee; }
.gc-howto-ctrl b{ color:#B39DDB; }

/* ステップ番号ガイド（1️⃣えらぶ→2️⃣押す、を明示） */
.gc-step-label{ margin:0 2px 6px; color:#9a9a9a; font-size:.75rem; font-weight:800; letter-spacing:.3px; }

/* タブ / モード選択（セグメント切替。プレイボタンと見分くよう小さめ・凹み背景） */
.gc-tabs{ display:flex; gap:4px; margin-bottom:14px; background:#101010; border:1px solid #2c2c2c; border-radius:14px; padding:4px; }
.gc-tab{ flex:1; display:flex; flex-direction:column; align-items:center; gap:1px; padding:7px 4px; border-radius:10px; border:none; background:transparent; color:#8a8a8a;
  font-weight:800; font-size:.88rem; line-height:1.3; cursor:pointer; transition:.15s; }
.gc-tab-sub{ font-size:.6rem; font-weight:600; opacity:.7; }
.gc-tab.active{ color:#fff; }
.gc-tab.active[data-tab="free"]{ background:linear-gradient(135deg,#9575CD,#5E35B1); box-shadow:0 2px 10px rgba(94,53,177,.5); }
.gc-tab.active[data-tab="paid"]{ background:linear-gradient(135deg,#F06292,#D81B60); box-shadow:0 2px 10px rgba(216,27,96,.5); }
.gc-mode-card{ background:#141414; border:1px solid #2a2a2a; border-radius:14px; padding:16px; text-align:center; margin-bottom:12px; }
.gc-mode-emoji{ font-size:42px; line-height:1; }
.gc-mode-card p{ margin:8px 0 0; font-size:.9rem; color:#eee; line-height:1.6; }
.gc-note{ font-size:.72rem; color:#888; line-height:1.6; }
.gc-note-warn{ color:#FFD54F; }

/* ベット入力 */
.gc-bet-row{ display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:12px; }
.gc-step{ width:48px; height:48px; border-radius:50%; border:none; background:#2a2a2a; color:#fff; font-size:1.6rem; font-weight:800; cursor:pointer; }
.gc-step:active{ transform:scale(.9); }
.gc-bet-display{ display:flex; align-items:baseline; gap:5px; }
.gc-bet-display input{ width:110px; background:transparent; border:none; border-bottom:2px solid #444; color:#fff;
  font-size:2.1rem; font-weight:800; text-align:center; outline:none; }
.gc-bet-display span{ color:#aaa; font-size:.9rem; }
.gc-chips{ display:flex; gap:8px; justify-content:center; margin-bottom:14px; flex-wrap:wrap; }
.gc-chip{ padding:7px 14px; border-radius:999px; border:1px solid #3a3a3a; background:#1e1e1e; color:#ccc; font-weight:700; cursor:pointer; }
.gc-chip:active{ background:#D81B60; color:#fff; }

/* ボタン */
.gc-btn{ display:block; width:100%; border:none; border-radius:14px; padding:15px; font-size:1.05rem; font-weight:800; cursor:pointer; color:#fff; transition:.12s; }
.gc-btn:disabled{ opacity:.5; cursor:not-allowed; }
.gc-btn:active{ transform:translateY(2px); }
.gc-btn-free{ background:linear-gradient(135deg,#9575CD,#5E35B1); }
.gc-btn-start{ background:linear-gradient(135deg,#F06292,#D81B60); }
.gc-btn-cash{ background:linear-gradient(135deg,#43A047,#1B5E20); }
/* 主役のプレイボタン（これを押せば始まる、が一目で分かる大きさ＋鼓動） */
.gc-btn-play{ padding:18px 15px; font-size:1.12rem; border-radius:16px; }
.gc-btn-play:not(:disabled){ animation:gcPlayPulse 2s infinite; }
@keyframes gcPlayPulse{ 0%{ box-shadow:0 0 0 0 rgba(255,255,255,.3);} 70%{ box-shadow:0 0 0 9px rgba(255,255,255,0);} 100%{ box-shadow:0 0 0 0 rgba(255,255,255,0);} }
.gc-login-hint{ margin-top:16px; padding:13px; border-radius:12px; background:rgba(244,143,177,.1); border:1px solid rgba(244,143,177,.3); color:#F8BBD0; font-size:.82rem; text-align:center; }

/* ゲーム盤の共通コンテナ（黒背景） */
.gc-board{ position:relative; overflow:hidden; background:#000; color:#fff; border-radius:16px;
  padding:14px 12px 18px; display:flex; flex-direction:column; align-items:center; }
.gc-board-head{ text-align:center; width:100%; margin-bottom:6px; }
.gc-mode-badge{ display:inline-block; font-size:13px; font-weight:800; color:#fff; margin-bottom:6px; padding:5px 16px; border-radius:999px; }
.gc-mode-badge.mode-free{ background:linear-gradient(135deg,#9575CD,#5E35B1); }
.gc-mode-badge.mode-paid{ background:linear-gradient(135deg,#F06292,#D81B60); }

/* 倍率/スコアカード */
.gc-score-card{ background:rgba(255,255,255,0.08); border:2px solid rgba(255,255,255,0.18); border-radius:20px;
  padding:7px 28px 10px; margin:6px auto 4px; display:inline-block; min-width:200px; text-align:center; }
.gc-score-cap{ font-size:12px; color:rgba(255,255,255,0.6); font-weight:600; margin-bottom:1px; letter-spacing:.3px; }
.gc-score{ font-size:36px; font-weight:900; color:#fff; letter-spacing:1px; line-height:1.15; transition:color .3s; }
.gc-score.up{ color:#69F0AE; } .gc-score.down{ color:#FFB74D; }

/* 勝敗フラッシュ */
@keyframes gcFlashWin{ 0%{background:#000;} 50%{background:#1b5e20;} 100%{background:#000;} }
@keyframes gcFlashLose{ 0%{background:#000;} 50%{background:#b71c1c;} 100%{background:#000;} }
.gc-board.flash-win{ animation:gcFlashWin .5s ease; }
.gc-board.flash-lose{ animation:gcFlashLose .5s ease; }

/* サマリー（結果オーバーレイ） */
.gc-summary{ position:absolute; inset:0; background:rgba(0,0,0,.96); color:#fff; display:none; flex-direction:column;
  align-items:center; justify-content:center; z-index:100; padding:20px; text-align:center; }
.gc-summary h2{ font-size:1.25rem; font-weight:bold; margin:0 0 12px; }
.gc-final{ font-size:1.4rem; font-weight:bold; margin-bottom:16px; }
.gc-final.win{ color:#69F0AE; } .gc-final.lose{ color:#EF5350; } .gc-final.zero{ color:#FFB74D; }
.gc-summary .gc-btn{ max-width:300px; }

/* 紙吹雪 */
.gc-particle{ position:fixed; top:100vh; pointer-events:none; z-index:600; animation:gcFloat linear forwards; }
@keyframes gcFloat{ 0%{transform:translateY(0) rotate(0); opacity:1;} 100%{transform:translateY(-118vh) rotate(680deg); opacity:0;} }

/* ゲスト誘導バー（下部固定） */
.gc-cta{ position:fixed; left:0; right:0; bottom:0; z-index:500;
  display:flex; align-items:center; gap:10px; padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:linear-gradient(135deg,#7B1FA2,#D81B60); box-shadow:0 -4px 18px rgba(0,0,0,.5); }
.gc-cta-txt{ flex:1; color:#fff; font-size:.82rem; line-height:1.45; }
.gc-cta-txt b{ color:#FFE082; }
.gc-cta-btn{ flex-shrink:0; background:#fff; color:#C2185B; border:none; border-radius:999px;
  padding:11px 18px; font-weight:900; font-size:.9rem; cursor:pointer; animation:gcPulse 1.8s infinite; }
.gc-cta-btn:active{ transform:scale(.95); }
@keyframes gcPulse{ 0%{box-shadow:0 0 0 0 rgba(255,255,255,.5);} 70%{box-shadow:0 0 0 10px rgba(255,255,255,0);} 100%{box-shadow:0 0 0 0 rgba(255,255,255,0);} }
/* CTAバーぶん下に余白（最後の要素が隠れないよう） */
.gc-wrap{ padding-bottom:96px; }

/* トースト */
.gc-toast{ position:fixed; left:50%; top:70px; transform:translate(-50%,-16px); z-index:700;
  background:#1b5e20; color:#fff; font-weight:800; font-size:.9rem; padding:12px 20px; border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.5); opacity:0; transition:opacity .35s, transform .35s; max-width:92vw; text-align:center; }
.gc-toast.show{ opacity:1; transform:translate(-50%,0); }
