/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/components/BattleScreen.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/
.BattleScreen_container__LjgJE {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  padding: 1rem;
  max-width: 700px;
  margin: 0 auto;
  background: var(--bg-dark);
  color: var(--text-primary);
}

/* チームバー */
.BattleScreen_teamBar__9y7Lw {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.BattleScreen_teamIcons__TZDvS {
  display: flex;
  gap: 4px;
}

.BattleScreen_teamDot__RfQX6 {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 2px solid #555;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: all 0.2s;
}

.BattleScreen_teamDot__RfQX6.BattleScreen_active__MoY7P {
  border-color: var(--text-accent);
  box-shadow: 0 0 8px rgba(0, 212, 255, 0.5);
}

.BattleScreen_teamDot__RfQX6.BattleScreen_fainted__P9qHg {
  opacity: 0.3;
  filter: grayscale(1);
}

.BattleScreen_vsLabel__4bttK {
  font-weight: bold;
  color: #ff5252;
  font-size: 0.9rem;
}

/* バトルフィールド */
.BattleScreen_field__ZybVp {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1rem;
  background: linear-gradient(180deg, #1a2a4a 0%, #0d1b2a 100%);
  border-radius: 16px;
  min-height: 300px;
  position: relative;
  overflow: hidden;
}

/* デフォルト背景（夜空）*/
.BattleScreen_terrain_default__eJ43a {
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,0.15) 1px, transparent 1px),
    radial-gradient(circle at 45% 10%, rgba(255,255,255,0.2) 1px, transparent 1px),
    radial-gradient(circle at 75% 25%, rgba(255,255,255,0.1) 1px, transparent 1px),
    radial-gradient(circle at 85% 8%, rgba(255,255,255,0.18) 1px, transparent 1px),
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.12) 1px, transparent 1px),
    radial-gradient(ellipse at 50% 120%, rgba(20,60,100,0.5) 0%, transparent 60%),
    linear-gradient(180deg, #0a1628 0%, #162a4a 40%, #1a3355 100%);
}

/* 草原 */
.BattleScreen_terrain_grass__MVb_t {
  background:
    linear-gradient(180deg,
      hsl(200, 60%, 55%) 0%,
      hsl(200, 55%, 65%) 15%,
      hsl(195, 50%, 70%) 35%,
      hsl(120, 30%, 50%) 55%,
      hsl(110, 40%, 38%) 70%,
      hsl(100, 45%, 28%) 100%);
}
.BattleScreen_terrain_grass__MVb_t::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    /* 雲 */
    radial-gradient(ellipse 80px 30px at 20% 12%, rgba(255,255,255,0.25) 0%, transparent 100%),
    radial-gradient(ellipse 60px 22px at 65% 8%, rgba(255,255,255,0.2) 0%, transparent 100%),
    radial-gradient(ellipse 50px 18px at 80% 18%, rgba(255,255,255,0.15) 0%, transparent 100%),
    /* 太陽光 */
    radial-gradient(circle at 85% 5%, rgba(255,230,150,0.3) 0%, transparent 30%);
  pointer-events: none;
  z-index: 0;
}
.BattleScreen_terrain_grass__MVb_t::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 45%;
  background:
    /* 草のテクスチャ */
    repeating-linear-gradient(85deg,
      transparent 0px, transparent 12px,
      rgba(80,140,50,0.15) 12px, rgba(80,140,50,0.15) 14px),
    repeating-linear-gradient(95deg,
      transparent 0px, transparent 18px,
      rgba(60,120,40,0.1) 18px, rgba(60,120,40,0.1) 20px),
    /* 小花 */
    radial-gradient(circle 2px at 15% 75%, hsl(50, 90%, 70%) 0%, transparent 100%),
    radial-gradient(circle 2px at 35% 85%, hsl(340, 80%, 65%) 0%, transparent 100%),
    radial-gradient(circle 2px at 55% 70%, hsl(50, 90%, 70%) 0%, transparent 100%),
    radial-gradient(circle 2px at 75% 80%, hsl(280, 60%, 65%) 0%, transparent 100%),
    radial-gradient(circle 2px at 90% 90%, hsl(50, 90%, 70%) 0%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}

/* 砂浜 */
.BattleScreen_terrain_sand__Z99sl {
  background:
    linear-gradient(180deg,
      hsl(200, 70%, 60%) 0%,
      hsl(195, 65%, 70%) 20%,
      hsl(190, 55%, 75%) 40%,
      hsl(42, 55%, 70%) 55%,
      hsl(38, 50%, 65%) 70%,
      hsl(35, 45%, 55%) 100%);
}
.BattleScreen_terrain_sand__Z99sl::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    /* 太陽 */
    radial-gradient(circle 20px at 80% 10%, hsl(45, 100%, 85%) 0%, rgba(255,230,100,0.3) 60%, transparent 100%),
    /* 海の波 */
    repeating-linear-gradient(175deg,
      transparent 0px, transparent 8px,
      rgba(255,255,255,0.12) 8px, rgba(255,255,255,0.12) 10px),
    /* 雲 */
    radial-gradient(ellipse 70px 25px at 25% 15%, rgba(255,255,255,0.2) 0%, transparent 100%),
    radial-gradient(ellipse 55px 20px at 60% 10%, rgba(255,255,255,0.15) 0%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}
.BattleScreen_terrain_sand__Z99sl::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 45%;
  background:
    /* 砂粒テクスチャ */
    radial-gradient(circle 1px at 10% 60%, rgba(160,130,80,0.4) 0%, transparent 100%),
    radial-gradient(circle 1px at 25% 72%, rgba(140,120,70,0.3) 0%, transparent 100%),
    radial-gradient(circle 1px at 40% 55%, rgba(170,140,90,0.35) 0%, transparent 100%),
    radial-gradient(circle 1px at 60% 68%, rgba(150,125,75,0.3) 0%, transparent 100%),
    radial-gradient(circle 1px at 80% 80%, rgba(160,130,80,0.4) 0%, transparent 100%),
    /* 貝殻 */
    radial-gradient(circle 3px at 30% 90%, rgba(255,220,200,0.5) 0%, transparent 100%),
    radial-gradient(circle 3px at 70% 85%, rgba(240,210,190,0.4) 0%, transparent 100%),
    /* 波打ち際 */
    linear-gradient(180deg, rgba(150,210,230,0.15) 0%, transparent 30%);
  pointer-events: none;
  z-index: 0;
}

/* 道場 */
.BattleScreen_terrain_dojo___DbMC {
  background:
    linear-gradient(180deg,
      hsl(25, 20%, 18%) 0%,
      hsl(20, 25%, 22%) 30%,
      hsl(25, 30%, 25%) 100%);
}
.BattleScreen_terrain_dojo___DbMC::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    /* 木目の壁 */
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 40px,
      rgba(80,50,20,0.15) 40px, rgba(80,50,20,0.15) 42px),
    /* 提灯の光 */
    radial-gradient(circle at 15% 15%, rgba(255,150,50,0.15) 0%, transparent 25%),
    radial-gradient(circle at 85% 15%, rgba(255,150,50,0.15) 0%, transparent 25%),
    /* 屋根の梁 */
    linear-gradient(180deg, rgba(60,35,15,0.5) 0%, transparent 8%);
  pointer-events: none;
  z-index: 0;
}
.BattleScreen_terrain_dojo___DbMC::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 50%;
  background:
    /* 畳模様 */
    repeating-linear-gradient(0deg,
      rgba(120,140,60,0.12) 0px,
      rgba(110,130,55,0.08) 2px,
      rgba(120,140,60,0.12) 4px),
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 80px,
      rgba(90,70,30,0.2) 80px, rgba(90,70,30,0.2) 82px),
    repeating-linear-gradient(0deg,
      transparent 0px, transparent 44px,
      rgba(90,70,30,0.15) 44px, rgba(90,70,30,0.15) 46px),
    linear-gradient(180deg, hsl(70, 25%, 32%) 0%, hsl(65, 20%, 28%) 100%);
  pointer-events: none;
  z-index: 0;
}

.BattleScreen_enemySide__UExP8 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 1;
}

.BattleScreen_playerSide__SDfWh {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  z-index: 1;
}

.BattleScreen_infoBox__teXpb {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: rgba(0, 0, 0, 0.4);
  padding: 0.75rem 1rem;
  border-radius: 8px;
  min-width: 140px;
  width: 100%;
  max-width: 280px;
}

.BattleScreen_nameRow__0gEeZ {
  display: flex;
  align-items: center;
  gap: 8px;
}

.BattleScreen_bakemonName__J2gBq {
  font-weight: bold;
  font-size: 1.1rem;
}

.BattleScreen_levelTag__cj2re {
  font-size: 0.7rem;
  color: #ffd700;
  font-weight: bold;
}

.BattleScreen_typeTag__bRqeT {
  font-size: 0.65rem;
  padding: 1px 6px;
  border-radius: 6px;
  text-transform: uppercase;
  font-weight: bold;
}

.BattleScreen_typeTag__bRqeT[data-type="fire"] { background: var(--fire); color: #fff; }
.BattleScreen_typeTag__bRqeT[data-type="water"] { background: var(--water); color: #000; }
.BattleScreen_typeTag__bRqeT[data-type="grass"] { background: var(--grass); color: #000; }
.BattleScreen_typeTag__bRqeT[data-type="electric"] { background: var(--electric); color: #000; }
.BattleScreen_typeTag__bRqeT[data-type="normal"] { background: var(--normal); color: #000; }
.BattleScreen_typeTag__bRqeT[data-type="dark"] { background: var(--dark); color: #fff; }
.BattleScreen_typeTag__bRqeT[data-type="spirit"] { background: var(--spirit); color: #fff; }

.BattleScreen_hpBar__APNJh {
  width: 100%;
  height: 8px;
  background: #333;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
}

.BattleScreen_hpFill__vUvy_ {
  height: 100%;
  border-radius: 4px;
  transition: width 0.5s ease;
  background: #4caf50;
  min-width: 0;
  position: absolute;
  top: 0;
  left: 0;
}

.BattleScreen_hpText__ZLyZD {
  font-size: 0.8rem;
  color: #aaa;
}

/* 状態異常バッジ */
.BattleScreen_statusBadge__HdEpj {
  display: inline-block;
  font-size: 0.7rem;
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: bold;
  margin-left: 4px;
}
.BattleScreen_status_burn__aLFnw { background: #e53935; color: #fff; }
.BattleScreen_status_paralysis__Of0c9 { background: #fdd835; color: #333; }
.BattleScreen_status_poison__V3VnX { background: #8e24aa; color: #fff; }
.BattleScreen_status_badpoison__Ge__u { background: #6a1b9a; color: #fff; }

.BattleScreen_spriteEnemy__gOZKU,
.BattleScreen_spritePlayer__lKsFp {
  position: relative;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5));
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
}

.BattleScreen_spriteEnemy__gOZKU {
  animation: BattleScreen_floatEnemy___OR9R 3s ease-in-out infinite, BattleScreen_breathe__i8Yd0 2s ease-in-out infinite;
}

.BattleScreen_spritePlayer__lKsFp {
  animation: BattleScreen_floatPlayer__PSQ2_ 3s ease-in-out infinite 1.5s, BattleScreen_breathe__i8Yd0 2s ease-in-out infinite 1s;
}

@keyframes BattleScreen_floatEnemy___OR9R {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes BattleScreen_floatPlayer__PSQ2_ {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@keyframes BattleScreen_breathe__i8Yd0 {
  0%, 100% { scale: 1 1; }
  50% { scale: 1.02 0.98; }
}

/* 敵消滅アニメーション */
.BattleScreen_enemyDefeat__fvGfw {
  animation: BattleScreen_enemyVanish__Lw7ca 0.8s ease-in forwards !important;
}
@keyframes BattleScreen_enemyVanish__Lw7ca {
  0% { opacity: 1; transform: scale(1) translateY(0); filter: brightness(1); }
  30% { opacity: 1; transform: scale(1.1) translateY(-5px); filter: brightness(2); }
  100% { opacity: 0; transform: scale(0.3) translateY(40px); filter: brightness(3); }
}

/* 勝利テキスト演出 */
.BattleScreen_victoryText__uIDLA {
  animation: BattleScreen_victoryPop__O0RpB 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
  text-shadow: 0 0 10px gold, 0 0 20px orange;
  font-size: 2rem !important;
}
@keyframes BattleScreen_victoryPop__O0RpB {
  0% { opacity: 0; transform: scale(0.3); }
  60% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 1; transform: scale(1); }
}

/* ログボックス */
.BattleScreen_logBox__oAAVc {
  background: var(--bg-panel);
  border-radius: 8px;
  padding: 0.75rem;
  margin: 0.75rem 0;
  max-height: 120px;
  overflow-y: auto;
  font-size: 0.9rem;
}

.BattleScreen_logLine__3cqhd {
  padding: 2px 0;
}

.BattleScreen_logLine__3cqhd.BattleScreen_damage__0X4rp {
  color: #ff8a80;
}

.BattleScreen_logLine__3cqhd.BattleScreen_effective__bDL41 {
  color: var(--text-accent);
  font-style: italic;
}

.BattleScreen_logLine__3cqhd.BattleScreen_miss__xpwEa {
  color: #888;
}

.BattleScreen_logLine__3cqhd.BattleScreen_faint__A1Rq8 {
  color: #ffd54f;
  font-weight: bold;
}

.BattleScreen_logLine__3cqhd.BattleScreen_status__VJLX9 {
  color: #ce93d8;
}

.BattleScreen_logLine__3cqhd.BattleScreen_buff__2qGFB {
  color: #81c784;
}

/* 技ボタン */
.BattleScreen_actionRow__RWu0w {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}

.BattleScreen_moveGrid__wBI7z {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 0.5rem;
  gap: 0.5rem;
  flex: 1 1;
}

.BattleScreen_sideActions__LyyXJ {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.BattleScreen_swapToggle__TOMMF {
  padding: 0.4rem 0.6rem;
  background: var(--bg-card);
  border: 2px solid #666;
  border-radius: 8px;
  font-size: 0.8rem;
  color: #ccc;
  cursor: pointer;
  transition: all 0.15s;
  flex: 1 1;
}

.BattleScreen_swapToggle__TOMMF:hover:not(:disabled) {
  border-color: var(--text-accent);
  color: var(--text-accent);
}

.BattleScreen_swapToggle__TOMMF:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.BattleScreen_moveBtn__qDTdG {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0.75rem 1rem;
  background: var(--bg-card);
  border-radius: 8px;
  border: 2px solid transparent;
  transition: all 0.15s;
  text-align: left;
}

.BattleScreen_moveBtn__qDTdG:hover:not(:disabled) {
  border-color: var(--text-accent);
  background: #1a4a7a;
}

.BattleScreen_moveBtn__qDTdG[data-type="fire"]:hover:not(:disabled) { border-color: var(--fire); }
.BattleScreen_moveBtn__qDTdG[data-type="water"]:hover:not(:disabled) { border-color: var(--water); }
.BattleScreen_moveBtn__qDTdG[data-type="grass"]:hover:not(:disabled) { border-color: var(--grass); }
.BattleScreen_moveBtn__qDTdG[data-type="electric"]:hover:not(:disabled) { border-color: var(--electric); }
.BattleScreen_moveBtn__qDTdG[data-type="dark"]:hover:not(:disabled) { border-color: var(--dark); }
.BattleScreen_moveBtn__qDTdG[data-type="spirit"]:hover:not(:disabled) { border-color: var(--spirit); }

.BattleScreen_moveName__54RzX {
  font-weight: bold;
  font-size: 1rem;
  color: var(--text-primary);
}

.BattleScreen_moveInfo__WeKc6 {
  font-size: 0.7rem;
  color: #999;
  margin-top: 2px;
}

/* 結果表示 */
.BattleScreen_resultBox__rfBUJ {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
}

.BattleScreen_resultText__fcd6k {
  font-size: 2rem;
  font-weight: bold;
}

.BattleScreen_retryBtn__AqtjB {
  padding: 0.75rem 2rem;
  background: var(--text-accent);
  color: #000;
  font-size: 1rem;
  font-weight: bold;
  border-radius: 8px;
  transition: transform 0.1s;
}

.BattleScreen_retryBtn__AqtjB:hover {
  transform: scale(1.05);
}

/* 入れ替えメニュー */
.BattleScreen_swapMenu__LGl36 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  background: var(--bg-panel);
  border-radius: 12px;
  border: 2px solid var(--text-accent);
}

.BattleScreen_swapTitle__Pfyqw {
  font-size: 1.1rem;
  font-weight: bold;
  color: var(--text-accent);
}

.BattleScreen_swapGrid__TFPFM {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
}

.BattleScreen_swapBtn__vLFew {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 0.5rem 0.75rem;
  background: var(--bg-card);
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s;
  min-width: 80px;
}

.BattleScreen_swapBtn__vLFew:hover:not(:disabled) {
  border-color: var(--text-accent);
  background: #1a3a5a;
}

.BattleScreen_swapBtn__vLFew:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.BattleScreen_swapBtn__vLFew.BattleScreen_current__KiIj4 {
  border-color: #555;
}

.BattleScreen_swapName___GWcl {
  font-size: 0.8rem;
  font-weight: bold;
  color: #fff;
}

.BattleScreen_swapHp__0j0wP {
  font-size: 0.7rem;
  color: #aaa;
}

.BattleScreen_swapCancel__pbVVs {
  padding: 0.4rem 1.5rem;
  background: transparent;
  border: 1px solid #666;
  color: #aaa;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.85rem;
}

.BattleScreen_swapCancel__pbVVs:hover {
  border-color: #ff5252;
  color: #ff5252;
}

/* ── バケモンボール ── */
.BattleScreen_ballBtn__1O39I {
  padding: 0.4rem 0.6rem;
  background: linear-gradient(180deg, #ff5252 0%, #c62828 100%);
  border: 2px solid #ff8a80;
  border-radius: 8px;
  font-size: 0.8rem;
  color: #fff;
  cursor: pointer;
  transition: all 0.15s;
  font-weight: bold;
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.BattleScreen_ballBtn__1O39I:hover:not(:disabled) {
  background: linear-gradient(180deg, #ff6e6e 0%, #d32f2f 100%);
  transform: scale(1.03);
}
.BattleScreen_ballBtn__1O39I:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.BattleScreen_fleeBtn__FtMfR {
  padding: 0.4rem 0.6rem;
  background: var(--bg-card);
  border: 2px solid #666;
  border-radius: 8px;
  font-size: 0.8rem;
  color: #ccc;
  cursor: pointer;
  transition: all 0.15s;
  flex: 1 1;
}
.BattleScreen_fleeBtn__FtMfR:hover:not(:disabled) {
  border-color: #ffab40;
  color: #ffab40;
}
.BattleScreen_fleeBtn__FtMfR:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ── ボール投げアニメーション ── */
.BattleScreen_ballContainer__E_A3Q {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100px;
  height: 100px;
  position: relative;
}

.BattleScreen_ballFly__XFAob {
  animation: BattleScreen_ballThrow__FWbpi 0.5s ease-out forwards;
}

@keyframes BattleScreen_ballThrow__FWbpi {
  0% { transform: translate(-60px, 60px) scale(0.3); opacity: 0; }
  60% { transform: translate(0, -10px) scale(1.1); opacity: 1; }
  100% { transform: translate(0, 0) scale(1); opacity: 1; }
}

.BattleScreen_ballShake1__J_Gz9 {
  animation: BattleScreen_ballShakeAnim__RRuYg 0.6s ease-in-out;
}
.BattleScreen_ballShake2__SUAIn {
  animation: BattleScreen_ballShakeAnim2__B8FL_ 0.6s ease-in-out;
}
.BattleScreen_ballShake3__VZRXu {
  animation: BattleScreen_ballShakeAnim3__8Qimh 0.6s ease-in-out;
}

@keyframes BattleScreen_ballShakeAnim__RRuYg {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(20deg); }
  75% { transform: rotate(-20deg); }
}
@keyframes BattleScreen_ballShakeAnim2__B8FL_ {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-15deg); }
  75% { transform: rotate(15deg); }
}
@keyframes BattleScreen_ballShakeAnim3__8Qimh {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  75% { transform: rotate(-10deg); }
}

.BattleScreen_ballCaptured__HwW_Z .BattleScreen_ball__ENOGw {
  animation: BattleScreen_ballCapture__DIbFl 1s ease-in forwards;
}

@keyframes BattleScreen_ballCapture__DIbFl {
  0% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.2); filter: brightness(1.5); }
  100% { transform: scale(0.8); filter: brightness(1) drop-shadow(0 0 8px gold); }
}

/* ══════════ 攻撃エフェクト ══════════ */

/* ヒット時のシェイク */
.BattleScreen_hitShake__dVFoD {
  animation: BattleScreen_hitShakeAnim__wyhBZ 0.4s ease-out, BattleScreen_hitFlash__4ktXg 0.4s ease-out !important;
}
@keyframes BattleScreen_hitShakeAnim__wyhBZ {
  0% { transform: translateX(0); }
  15% { transform: translateX(-8px); }
  30% { transform: translateX(8px); }
  45% { transform: translateX(-6px); }
  60% { transform: translateX(6px); }
  75% { transform: translateX(-3px); }
  90% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes BattleScreen_hitFlash__4ktXg {
  0%, 100% { filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5)); }
  20% { filter: brightness(2) drop-shadow(0 0 12px #fff); }
  40% { filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5)); }
  60% { filter: brightness(1.5) drop-shadow(0 0 8px #fff); }
}

/* 攻撃突進アニメーション */
.BattleScreen_lungePlayer__R50dM {
  animation: BattleScreen_lungeForwardPlayer__aamdf 0.3s ease-out !important;
}
.BattleScreen_lungeEnemy__WY5Co {
  animation: BattleScreen_lungeForwardEnemy__AuupH 0.3s ease-out !important;
}
@keyframes BattleScreen_lungeForwardPlayer__aamdf {
  0% { transform: translate(0, 0) scale(1); }
  40% { transform: translate(30px, -10px) scale(1.1); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes BattleScreen_lungeForwardEnemy__AuupH {
  0% { transform: translate(0, 0) scale(1); }
  40% { transform: translate(-30px, 10px) scale(1.1); }
  100% { transform: translate(0, 0) scale(1); }
}

/* エフェクトオーバーレイ共通 */
.BattleScreen_attackEffect__aDR_q {
  position: absolute;
  inset: -10px;
  pointer-events: none;
  z-index: 10;
  animation: BattleScreen_effectFadeIn__YOkly 0.6s ease-out forwards;
  border-radius: 50%;
}
@keyframes BattleScreen_effectFadeIn__YOkly {
  0% { opacity: 0.9; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(1.5); }
}

/* 炎 */
.BattleScreen_effect_fire__aR0PN {
  background: radial-gradient(circle, rgba(255,100,0,0.7) 0%, rgba(255,60,0,0.3) 50%, transparent 70%);
  box-shadow: 0 0 30px rgba(255,80,0,0.6), inset 0 0 20px rgba(255,200,0,0.4);
}

/* 水 */
.BattleScreen_effect_water__M23sM {
  background: radial-gradient(circle, rgba(30,130,255,0.6) 0%, rgba(30,100,255,0.3) 50%, transparent 70%);
  box-shadow: 0 0 30px rgba(30,130,255,0.5), inset 0 0 20px rgba(100,200,255,0.4);
}

/* 草 */
.BattleScreen_effect_grass__JsiCx {
  background: radial-gradient(circle, rgba(60,200,60,0.6) 0%, rgba(40,180,40,0.3) 50%, transparent 70%);
  box-shadow: 0 0 30px rgba(60,200,60,0.5), inset 0 0 20px rgba(150,255,100,0.4);
}

/* 電気 */
.BattleScreen_effect_electric__muBos {
  background: radial-gradient(circle, rgba(255,230,0,0.7) 0%, rgba(255,200,0,0.3) 50%, transparent 70%);
  box-shadow: 0 0 35px rgba(255,230,0,0.7), inset 0 0 25px rgba(255,255,180,0.5);
  animation-name: BattleScreen_effectElectric__ey979;
}
@keyframes BattleScreen_effectElectric__ey979 {
  0% { opacity: 1; transform: scale(0.5) rotate(0deg); }
  25% { opacity: 0.8; transform: scale(1.1) rotate(15deg); }
  50% { opacity: 1; transform: scale(1.3) rotate(-10deg); }
  75% { opacity: 0.6; transform: scale(1.1) rotate(5deg); }
  100% { opacity: 0; transform: scale(1.5) rotate(0deg); }
}

/* ノーマル */
.BattleScreen_effect_normal__kKyrR {
  background: radial-gradient(circle, rgba(200,200,200,0.5) 0%, rgba(180,180,180,0.2) 50%, transparent 70%);
  box-shadow: 0 0 20px rgba(200,200,200,0.4);
}

/* 闇 */
.BattleScreen_effect_dark__QfJMN {
  background: radial-gradient(circle, rgba(80,0,120,0.7) 0%, rgba(40,0,80,0.3) 50%, transparent 70%);
  box-shadow: 0 0 30px rgba(80,0,120,0.6), inset 0 0 20px rgba(120,0,180,0.3);
}

/* 霊 */
.BattleScreen_effect_spirit__79QrB {
  background: radial-gradient(circle, rgba(100,60,180,0.6) 0%, rgba(80,40,150,0.3) 50%, transparent 70%);
  box-shadow: 0 0 30px rgba(100,60,180,0.5), inset 0 0 20px rgba(180,120,255,0.4);
  animation-name: BattleScreen_effectSpirit__TghfH;
}
@keyframes BattleScreen_effectSpirit__TghfH {
  0% { opacity: 0.8; transform: scale(0.6); filter: blur(0px); }
  40% { opacity: 1; transform: scale(1.2); filter: blur(2px); }
  100% { opacity: 0; transform: scale(1.6); filter: blur(4px); }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/components/FieldMap.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************/
.FieldMap_fieldContainer__po6dv {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100vw;
  height: 100vh;
  gap: 0;
  padding: 0;
  position: relative;
  overflow: hidden;
  background: #000;
}

/* ── ビューポートラッパー ── */
.FieldMap_viewportWrapper__QWBuY {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* ── ビューポート ── */
.FieldMap_viewport__DeAkI {
  border: none;
  border-radius: 0;
  overflow: hidden;
  position: relative;
  background: #060606;
  touch-action: none;
  flex-shrink: 0;
}

/* ビネット＋環境光（強化版） */
.FieldMap_viewport__DeAkI::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 50;
  background:
    radial-gradient(ellipse 100% 70% at 25% 15%, rgba(255,245,190,0.08) 0%, transparent 45%),
    radial-gradient(ellipse 80% 50% at 75% 85%, rgba(200,230,255,0.03) 0%, transparent 40%);
  box-shadow:
    inset 0 0 120px rgba(0, 0, 0, 0.6),
    inset 0 0 50px rgba(0, 0, 0, 0.35),
    inset 0 0 20px rgba(0, 0, 0, 0.15);
  border-radius: 11px;
}

/* 光条オーバーレイ（木漏れ日・強化版） */
.FieldMap_ambientLight__FJtws {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 45;
  background:
    /* 木漏れ日ビーム */
    linear-gradient(135deg,
      transparent 0%,
      rgba(255,245,200,0.035) 15%,
      transparent 25%,
      rgba(255,240,180,0.025) 35%,
      transparent 45%,
      transparent 60%,
      rgba(255,250,210,0.02) 75%,
      transparent 100%),
    /* 全体的な暖色調 */
    radial-gradient(ellipse 100% 80% at 30% 20%, rgba(255,240,200,0.04) 0%, transparent 60%);
  animation: FieldMap_lightShift__ah_0X 15s ease-in-out infinite;
}
@keyframes FieldMap_lightShift__ah_0X {
  0%, 100% { opacity: 1; }
  33% { opacity: 0.5; }
  66% { opacity: 0.8; }
}

/* パーティクル（胞子・蛍・花粉） */
.FieldMap_particles__JJHsn {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 40;
  overflow: hidden;
}
.FieldMap_particle__AGn_q {
  position: absolute;
  width: 2.5px;
  height: 2.5px;
  background: radial-gradient(circle, rgba(255,250,200,0.6) 30%, rgba(255,250,200,0) 70%);
  border-radius: 50%;
  animation: FieldMap_floatParticle__a6LmW 9s ease-in-out infinite;
}
.FieldMap_particle__AGn_q:nth-child(2) { width: 3.5px; height: 3.5px; background: radial-gradient(circle, rgba(180,255,150,0.4) 30%, transparent 70%); animation-duration: 13s; animation-delay: -3s; }
.FieldMap_particle__AGn_q:nth-child(3) { width: 2px; height: 2px; background: radial-gradient(circle, rgba(200,255,180,0.5) 30%, transparent 70%); animation-duration: 11s; animation-delay: -6s; }
.FieldMap_particle__AGn_q:nth-child(4) { width: 3px; height: 3px; background: radial-gradient(circle, rgba(255,240,160,0.35) 30%, transparent 70%); animation-duration: 15s; animation-delay: -2s; }
.FieldMap_particle__AGn_q:nth-child(5) { width: 2px; height: 2px; background: radial-gradient(circle, rgba(180,255,200,0.4) 30%, transparent 70%); animation-duration: 12s; animation-delay: -7s; }
.FieldMap_particle__AGn_q:nth-child(6) { width: 1.5px; height: 1.5px; background: radial-gradient(circle, rgba(255,250,200,0.5) 30%, transparent 70%); animation-duration: 17s; animation-delay: -4s; }
@keyframes FieldMap_floatParticle__a6LmW {
  0%   { transform: translate(0, 0) scale(0.5); opacity: 0; }
  8%   { opacity: 0.8; }
  25%  { transform: translate(25px, -40px) scale(1.2); opacity: 0.6; }
  50%  { transform: translate(50px, -70px) scale(1); opacity: 0.4; }
  75%  { transform: translate(65px, -100px) scale(0.8); opacity: 0.2; }
  100% { transform: translate(80px, -130px) scale(0.5); opacity: 0; }
}

.FieldMap_mapGrid__tslV8 {
  position: relative;
  will-change: transform;
}

/* ── タイル共通 ── */
.FieldMap_tile__wky91 {
  position: absolute;
  box-sizing: border-box;
  overflow: hidden;
  contain: strict;
  will-change: transform;
}
/* 木タイルはキャノピーがはみ出すのでclipしない */
.FieldMap_tile_3__nwBxb {
  overflow: visible;
}

/* ── ノイズ＆ライティングオーバーレイ ── */
.FieldMap_noiseOverlay____xHo {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 2;
  mix-blend-mode: overlay;
  opacity: 0.6;
}
.FieldMap_lightOverlay__8gNiL {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 3;
  mix-blend-mode: soft-light;
  opacity: 0.5;
}


/* =================================================================
   0: Path - 踏み固められた土道
   ================================================================= */
.FieldMap_tile_0__eGLbe {
  background:
    radial-gradient(ellipse 40% 40% at 20% 30%, rgba(160,130,80,0.12) 0%, transparent 100%),
    radial-gradient(ellipse 35% 35% at 70% 65%, rgba(130,105,60,0.1) 0%, transparent 100%),
    radial-gradient(circle 2px at 15% 45%, rgba(100,80,40,0.4) 30%, transparent 31%),
    radial-gradient(circle 1.5px at 55% 25%, rgba(100,80,40,0.3) 30%, transparent 31%),
    radial-gradient(circle 1px at 80% 75%, rgba(100,80,40,0.25) 30%, transparent 31%),
    radial-gradient(circle 2px at 35% 80%, rgba(100,80,40,0.2) 30%, transparent 31%),
    linear-gradient(175deg,
      hsl(38, 40%, 42%) 0%,
      hsl(35, 42%, 45%) 20%,
      hsl(40, 38%, 44%) 40%,
      hsl(36, 43%, 43%) 60%,
      hsl(33, 40%, 41%) 80%,
      hsl(38, 40%, 42%) 100%);
  background-size: 288px 288px;
}
/* 足跡テクスチャ */
.FieldMap_tile_0__eGLbe::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 3px 1.5px at 30% 50%, rgba(80,60,30,0.15) 50%, transparent 51%),
    radial-gradient(ellipse 3px 1.5px at 65% 55%, rgba(80,60,30,0.12) 50%, transparent 51%);
  pointer-events: none;
}


/* =================================================================
   1: Grass - 草原（モダンポケモン風・3Dグラス）
   ================================================================= */
.FieldMap_tile_1__pSEHc {
  background:
    linear-gradient(160deg,
      hsl(120, 52%, 28%) 0%,
      hsl(125, 50%, 32%) 25%,
      hsl(115, 55%, 30%) 50%,
      hsl(122, 48%, 34%) 75%,
      hsl(120, 52%, 28%) 100%);
  background-size: 288px 288px;
}
/* 草テクスチャ（軽量版） */
.FieldMap_tile_1__pSEHc::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 50% 40% at 30% 60%, rgba(40,110,20,0.3) 0%, transparent 100%),
    radial-gradient(ellipse 40% 50% at 75% 35%, rgba(60,130,30,0.2) 0%, transparent 100%);
  pointer-events: none;
}
/* 草ハイライト（軽量版） */
.FieldMap_tile_1__pSEHc::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, transparent 40%, rgba(150,230,80,0.08) 50%, transparent 60%);
  pointer-events: none;
}



/* =================================================================
   2: Water - 水面（リアル反射 + 波紋）
   ================================================================= */
.FieldMap_tile_2__3ITLy {
  background:
    linear-gradient(170deg,
      hsl(205, 70%, 28%) 0%,
      hsl(210, 75%, 35%) 30%,
      hsl(208, 72%, 38%) 50%,
      hsl(212, 68%, 32%) 70%,
      hsl(205, 70%, 28%) 100%);
  background-size: 288px 288px;
  box-shadow: inset 0 0 20px rgba(0,50,120,0.3);
}
/* 波紋レイヤー */
.FieldMap_tile_2__3ITLy::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 20% at 30% 30%, rgba(180,220,255,0.08) 0%, transparent 100%),
    radial-gradient(ellipse 60% 15% at 70% 65%, rgba(180,220,255,0.06) 0%, transparent 100%),
    radial-gradient(ellipse 90% 18% at 50% 48%, rgba(200,230,255,0.07) 0%, transparent 100%),
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 6px,
      rgba(255,255,255,0.015) 6px, rgba(255,255,255,0.015) 12px);
  pointer-events: none;
}
/* 反射きらめき */
.FieldMap_tile_2__3ITLy::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle 2.5px at 25% 22%, rgba(255,255,255,0.55) 30%, transparent 31%),
    radial-gradient(circle 1.5px at 58% 15%, rgba(255,255,255,0.4) 30%, transparent 31%),
    radial-gradient(circle 2px at 72% 52%, rgba(255,255,255,0.45) 30%, transparent 31%),
    radial-gradient(circle 1px at 38% 68%, rgba(255,255,255,0.3) 30%, transparent 31%),
    radial-gradient(circle 1.5px at 82% 78%, rgba(255,255,255,0.35) 30%, transparent 31%),
    radial-gradient(circle 2px at 15% 55%, rgba(255,255,255,0.25) 30%, transparent 31%);
  pointer-events: none;
}
@keyframes FieldMap_waterRipple__KW5nP {
  0%   { transform: translateX(0) translateY(0); }
  33%  { transform: translateX(1.5px) translateY(1px); }
  66%  { transform: translateX(-1px) translateY(0.5px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes FieldMap_waterSparkle__T1ulZ {
  0%, 100% { opacity: 0.2; }
  15% { opacity: 0.9; }
  30% { opacity: 0.1; }
  50% { opacity: 0.7; }
  70% { opacity: 0.15; }
  85% { opacity: 0.8; }
}


/* =================================================================
   3: Tree - 森/山壁（3Dキャノピー風）
   ================================================================= */
.FieldMap_tile_3__nwBxb {
  background:
    linear-gradient(145deg,
      hsl(130, 50%, 8%) 0%,
      hsl(135, 45%, 12%) 40%,
      hsl(125, 55%, 10%) 70%,
      hsl(130, 50%, 8%) 100%);
  background-size: 288px 288px;
}
/* 幹 + 影 */
.FieldMap_tile_3__nwBxb::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    /* 幹 */
    radial-gradient(ellipse 20% 45% at 50% 85%, hsl(25,35%,18%) 40%, transparent 41%),
    radial-gradient(ellipse 12% 30% at 30% 90%, hsl(28,30%,15%) 40%, transparent 41%),
    radial-gradient(ellipse 14% 35% at 72% 88%, hsl(22,32%,16%) 40%, transparent 41%),
    /* 葉陰 */
    radial-gradient(ellipse 70% 40% at 45% 50%, rgba(0,0,0,0.3) 0%, transparent 100%);
  pointer-events: none;
  z-index: 1;
}
/* キャノピー（葉の集合体） */
.FieldMap_tile_3__nwBxb::after {
  content: '';
  position: absolute;
  left: -20%;
  top: -30%;
  width: 140%;
  height: 120%;
  background:
    /* メイン葉群 */
    radial-gradient(ellipse 50% 42% at 50% 45%, hsl(128,55%,22%) 0%, hsl(125,50%,16%) 35%, transparent 58%),
    radial-gradient(ellipse 38% 32% at 25% 35%, hsl(132,52%,24%) 0%, transparent 48%),
    radial-gradient(ellipse 40% 35% at 78% 38%, hsl(120,48%,20%) 0%, transparent 48%),
    /* ハイライト */
    radial-gradient(ellipse 22% 18% at 38% 28%, rgba(100,200,60,0.3) 0%, transparent 100%),
    radial-gradient(ellipse 18% 16% at 68% 32%, rgba(120,210,70,0.2) 0%, transparent 100%),
    /* 影 */
    radial-gradient(ellipse 55% 35% at 50% 72%, rgba(0,20,0,0.45) 0%, transparent 100%);
  border-radius: 48% 52% 45% 55% / 42% 48% 52% 38%;
  pointer-events: none;
  z-index: 15;
  filter: blur(0.5px);
}
@keyframes FieldMap_canopySway__uZsQQ {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(0.5px, 0.3px) rotate(0.3deg); }
  50% { transform: translate(-0.3px, -0.2px) rotate(-0.2deg); }
  75% { transform: translate(0.4px, -0.1px) rotate(0.2deg); }
}


/* =================================================================
   4: Wall - 建物壁面（日本家屋風）
   ================================================================= */
.FieldMap_tile_4__jO5_m {
  background:
    /* 柱（縦線） */
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 10px,
      rgba(60,40,15,0.6) 10px, rgba(60,40,15,0.6) 12px,
      transparent 12px, transparent 22px),
    /* 横桁 */
    repeating-linear-gradient(0deg,
      transparent 0px, transparent 22px,
      rgba(50,35,12,0.45) 22px, rgba(50,35,12,0.45) 24px),
    /* 漆喰壁面 */
    linear-gradient(180deg,
      hsl(40, 15%, 75%) 0%,
      hsl(38, 12%, 78%) 10%,
      hsl(42, 10%, 80%) 50%,
      hsl(38, 12%, 78%) 90%,
      hsl(40, 15%, 75%) 100%);
  background-size: 22px 100%, 100% 24px, 100% 100%;
  box-shadow:
    inset 0 2px 6px rgba(0,0,0,0.2),
    inset 0 -2px 6px rgba(0,0,0,0.15);
}
/* 屋根テクスチャ（上辺） */
.FieldMap_tile_4__jO5_m::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 10px;
  background:
    linear-gradient(180deg,
      hsl(220, 10%, 25%) 0%,
      hsl(215, 12%, 30%) 50%,
      hsl(220, 8%, 35%) 100%);
  pointer-events: none;
  z-index: 1;
}
/* 軒下影 */
.FieldMap_tile_4__jO5_m::after {
  content: '';
  position: absolute;
  top: 10px;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, transparent 100%);
  pointer-events: none;
}


/* =================================================================
   5: Dojo Door - 道場入口（強化版）
   ================================================================= */
.FieldMap_tile_5__o94n3 {
  background:
    /* 門柱 */
    linear-gradient(90deg,
      hsl(0,30%,18%) 0%, hsl(0,35%,22%) 8%,
      transparent 8%, transparent 92%,
      hsl(0,35%,22%) 92%, hsl(0,30%,18%) 100%),
    /* 扉面 */
    repeating-linear-gradient(0deg,
      hsl(0, 55%, 25%) 0px,
      hsl(0, 60%, 30%) 4px,
      hsl(0, 55%, 25%) 8px),
    linear-gradient(180deg,
      hsl(0, 50%, 20%) 0%,
      hsl(0, 55%, 30%) 50%,
      hsl(0, 50%, 20%) 100%);
  background-size: 100% 100%, 100% 8px, 100% 100%;
  box-shadow:
    inset 0 0 24px rgba(255, 50, 50, 0.3),
    0 0 30px rgba(200, 30, 30, 0.2);
}
.FieldMap_tile_5__o94n3::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,80,50,0.2) 0%, transparent 60%),
    radial-gradient(circle 3px at 50% 50%, rgba(255,200,50,0.6) 40%, transparent 41%);
  animation: FieldMap_doorGlow__t6LMx 3s ease-in-out infinite;
  pointer-events: none;
}
.FieldMap_tile_5__o94n3::after {
  content: "🏯";
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
  animation: FieldMap_doorPulse__10tIK 3s ease-in-out infinite;
  filter: drop-shadow(0 0 8px rgba(255,80,80,0.6));
  z-index: 2;
}


/* =================================================================
   6: Shrine Door - 神社入口（強化版）
   ================================================================= */
.FieldMap_tile_6__qjOpv {
  background:
    /* 門柱 */
    linear-gradient(90deg,
      hsl(10,60%,25%) 0%, hsl(8,65%,30%) 8%,
      transparent 8%, transparent 92%,
      hsl(8,65%,30%) 92%, hsl(10,60%,25%) 100%),
    /* 扉面 */
    repeating-linear-gradient(0deg,
      hsl(20, 70%, 28%) 0px,
      hsl(18, 75%, 35%) 4px,
      hsl(20, 70%, 28%) 8px),
    linear-gradient(180deg,
      hsl(25, 65%, 22%) 0%,
      hsl(20, 70%, 32%) 50%,
      hsl(25, 65%, 22%) 100%);
  background-size: 100% 100%, 100% 8px, 100% 100%;
  box-shadow:
    inset 0 0 24px rgba(255, 120, 0, 0.3),
    0 0 30px rgba(220, 80, 0, 0.2);
}
.FieldMap_tile_6__qjOpv::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,160,40,0.2) 0%, transparent 60%),
    radial-gradient(circle 3px at 50% 50%, rgba(255,200,80,0.6) 40%, transparent 41%);
  animation: FieldMap_doorGlow__t6LMx 3s ease-in-out infinite;
  pointer-events: none;
}
.FieldMap_tile_6__qjOpv::after {
  content: "⛩️";
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
  animation: FieldMap_doorPulse__10tIK 3s ease-in-out infinite;
  filter: drop-shadow(0 0 8px rgba(255,140,40,0.6));
  z-index: 2;
}
@keyframes FieldMap_doorPulse__10tIK {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.06); }
}
@keyframes FieldMap_doorGlow__t6LMx {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}


/* =================================================================
   7: Flower - 花畑（リッチ版）
   ================================================================= */
.FieldMap_tile_7__7ojlS {
  background:
    radial-gradient(ellipse 50% 40% at 30% 70%, rgba(40,100,20,0.2) 0%, transparent 100%),
    linear-gradient(160deg,
      hsl(120, 50%, 30%) 0%,
      hsl(125, 48%, 34%) 50%,
      hsl(120, 50%, 30%) 100%);
  background-size: 288px 288px;
}
/* 花と草 */
.FieldMap_tile_7__7ojlS::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    /* 赤い花 */
    radial-gradient(circle 5px at 20% 28%, hsl(350, 80%, 55%) 35%, transparent 36%),
    radial-gradient(circle 2.5px at 16% 23%, hsl(350, 70%, 70%) 45%, transparent 46%),
    radial-gradient(circle 2.5px at 24% 23%, hsl(350, 70%, 70%) 45%, transparent 46%),
    radial-gradient(circle 2px at 20% 28%, hsl(48, 90%, 55%) 45%, transparent 46%),
    /* 紫の花 */
    radial-gradient(circle 4.5px at 60% 42%, hsl(280, 55%, 58%) 35%, transparent 36%),
    radial-gradient(circle 2px at 56% 38%, hsl(280, 45%, 72%) 45%, transparent 46%),
    radial-gradient(circle 2px at 64% 38%, hsl(280, 45%, 72%) 45%, transparent 46%),
    radial-gradient(circle 1.5px at 60% 42%, hsl(48, 80%, 60%) 45%, transparent 46%),
    /* 黄色い花 */
    radial-gradient(circle 4px at 78% 72%, hsl(48, 90%, 58%) 35%, transparent 36%),
    radial-gradient(circle 2px at 74% 68%, hsl(48, 80%, 70%) 45%, transparent 46%),
    radial-gradient(circle 2px at 82% 68%, hsl(48, 80%, 70%) 45%, transparent 46%),
    /* ピンクの花 */
    radial-gradient(circle 3.5px at 40% 75%, hsl(330, 70%, 65%) 35%, transparent 36%),
    radial-gradient(circle 2px at 36% 72%, hsl(330, 60%, 78%) 45%, transparent 46%),
    radial-gradient(circle 2px at 44% 72%, hsl(330, 60%, 78%) 45%, transparent 46%),
    /* 草の葉 */
    conic-gradient(from 80deg at 35% 50%, transparent 0deg, hsl(120,55%,38%) 3deg, transparent 6deg),
    conic-gradient(from 95deg at 50% 60%, transparent 0deg, hsl(118,50%,35%) 3deg, transparent 6deg);
  pointer-events: none;
}
/* 光る花粉 */
.FieldMap_tile_7__7ojlS::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle 1.5px at 22% 25%, rgba(255,255,180,0.6) 40%, transparent 41%),
    radial-gradient(circle 1px at 62% 40%, rgba(255,255,180,0.5) 40%, transparent 41%),
    radial-gradient(circle 1px at 80% 70%, rgba(255,255,180,0.45) 40%, transparent 41%),
    radial-gradient(circle 1.5px at 42% 73%, rgba(255,200,220,0.4) 40%, transparent 41%);
  pointer-events: none;
}
@keyframes FieldMap_flowerSway__65o2F {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(0.4px, 0.2px) rotate(0.3deg); }
  66% { transform: translate(-0.3px, 0.1px) rotate(-0.2deg); }
}
@keyframes FieldMap_pollenFloat__HbM8B {
  0%, 100% { opacity: 0.15; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-2px); }
}


/* =================================================================
   8: StonePath - 石畳の参道（高品質版）
   ================================================================= */
.FieldMap_tile_8__IiQLT {
  background:
    /* 石のグリッドパターン */
    repeating-linear-gradient(0deg,
      transparent 0px, transparent 10px,
      rgba(0,0,0,0.18) 10px, rgba(0,0,0,0.18) 11px,
      transparent 11px, transparent 22px,
      rgba(0,0,0,0.12) 22px, rgba(0,0,0,0.12) 23px),
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 14px,
      rgba(0,0,0,0.15) 14px, rgba(0,0,0,0.15) 15px,
      transparent 15px, transparent 30px,
      rgba(0,0,0,0.1) 30px, rgba(0,0,0,0.1) 31px),
    /* 石の色味 */
    linear-gradient(155deg,
      hsl(30, 8%, 42%) 0%,
      hsl(28, 10%, 46%) 30%,
      hsl(32, 7%, 48%) 55%,
      hsl(28, 10%, 44%) 75%,
      hsl(30, 8%, 42%) 100%);
  background-size: 23px 23px, 31px 31px, 288px 288px;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.15);
}
/* 石の凹凸ハイライト */
.FieldMap_tile_8__IiQLT::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 35% 12% at 25% 18%, rgba(255,255,240,0.08) 50%, transparent 51%),
    radial-gradient(ellipse 32% 10% at 72% 15%, rgba(255,255,240,0.06) 50%, transparent 51%),
    radial-gradient(ellipse 38% 12% at 48% 44%, rgba(255,255,240,0.07) 50%, transparent 51%),
    radial-gradient(ellipse 33% 10% at 20% 66%, rgba(255,255,240,0.06) 50%, transparent 51%),
    radial-gradient(ellipse 36% 11% at 75% 68%, rgba(255,255,240,0.05) 50%, transparent 51%);
  pointer-events: none;
}
/* 目地の苔 */
.FieldMap_tile_8__IiQLT::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle 1.5px at 47% 35%, hsl(120,40%,28%) 50%, transparent 51%),
    radial-gradient(circle 1px at 50% 65%, hsl(125,35%,30%) 50%, transparent 51%),
    radial-gradient(circle 1px at 25% 50%, hsl(115,38%,26%) 50%, transparent 51%);
  pointer-events: none;
}


/* =================================================================
   9: Bridge - 木橋（リアル版）
   ================================================================= */
.FieldMap_tile_9__KIfBR {
  /* 水が橋の下に見える */
  background:
    linear-gradient(170deg,
      hsl(210, 70%, 25%) 0%,
      hsl(208, 68%, 30%) 50%,
      hsl(210, 70%, 25%) 100%);
  background-size: 288px 288px;
}
.FieldMap_tile_9__KIfBR::before {
  content: '';
  position: absolute;
  inset: 4px 0;
  background:
    /* 木板の質感 */
    repeating-linear-gradient(0deg,
      hsl(30, 42%, 38%) 0px,
      hsl(28, 45%, 42%) 2px,
      hsl(32, 38%, 36%) 4px,
      hsl(30, 42%, 40%) 10px,
      hsl(28, 40%, 34%) 11px),
    /* 板間の隙間 */
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 6px,
      rgba(0,0,0,0.2) 6px, rgba(0,0,0,0.2) 7px);
  box-shadow:
    0 3px 10px rgba(0,0,0,0.5),
    inset 0 1px 2px rgba(255,255,200,0.08);
  pointer-events: none;
}
/* 手すり */
.FieldMap_tile_9__KIfBR::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background:
    linear-gradient(90deg,
      hsl(25, 35%, 25%) 0%, hsl(25, 35%, 25%) 4px,
      transparent 4px, transparent 10px,
      hsl(25, 35%, 25%) 10px, hsl(25, 35%, 25%) 14px,
      transparent 14px, transparent 34px,
      hsl(25, 35%, 25%) 34px, hsl(25, 35%, 25%) 38px,
      transparent 38px, transparent 44px,
      hsl(25, 35%, 25%) 44px, hsl(25, 35%, 25%) 48px);
  box-shadow:
    0 46px 0 0 hsl(25, 35%, 25%),
    4px 46px 0 0 transparent,
    10px 46px 0 0 hsl(25, 35%, 25%);
  pointer-events: none;
  z-index: 2;
}


/* ── プレイヤー ── */
.FieldMap_player__xs7lw {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: none;
}
/* 足元の影 */
.FieldMap_player__xs7lw::before {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 4%;
  width: 92%;
  height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.45) 30%, transparent 70%);
  border-radius: 50%;
  z-index: -1;
}

/* ── 歩行アニメーション ── */
.FieldMap_walking__oyuaG {
  animation: FieldMap_walkBounce__OnA3X 0.36s ease-in-out infinite;
}
.FieldMap_idle__Gn7pw .FieldMap_playerInner__7wwAA {
  animation: FieldMap_idleBreathe__Ks8p_ 3s ease-in-out infinite;
}

@keyframes FieldMap_walkBounce__OnA3X {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes FieldMap_idleBreathe__Ks8p_ {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.02); }
}

/* 影も歩行中に動く */
.FieldMap_walking__oyuaG::before {
  animation: FieldMap_shadowBounce__1OFXb 0.36s ease-in-out infinite;
}
@keyframes FieldMap_shadowBounce__1OFXb {
  0%   { transform: scaleX(1); opacity: 1; }
  50%  { transform: scaleX(0.85); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 1; }
}

.FieldMap_playerInner__7wwAA {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
}

/* ── 連れ歩きバケモン ── */
.FieldMap_followerBakemon__xVzVt {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9;
  animation: FieldMap_followerWobble__5SO0C 0.4s ease-in-out infinite;
}
.FieldMap_followerBakemon__xVzVt::before {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 10%;
  width: 80%;
  height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 30%, transparent 70%);
  border-radius: 50%;
  z-index: -1;
  animation: FieldMap_followerShadow__r213F 0.4s ease-in-out infinite;
}
.FieldMap_followerInner__0fnoG {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.4));
  animation: FieldMap_followerCrazy___68kp 0.28s linear infinite;
}

/* めちゃくちゃ変な歩き方 */
@keyframes FieldMap_followerWobble__5SO0C {
  0%   { transform: translateY(0) rotate(0deg); }
  15%  { transform: translateY(-6px) rotate(12deg); }
  30%  { transform: translateY(2px) rotate(-8deg); }
  50%  { transform: translateY(-9px) rotate(-15deg) scaleX(0.8); }
  65%  { transform: translateY(3px) rotate(10deg) scaleX(1.2); }
  80%  { transform: translateY(-4px) rotate(-5deg) scaleY(0.85); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes FieldMap_followerCrazy___68kp {
  0%   { transform: skewX(0deg) scaleY(1); }
  25%  { transform: skewX(15deg) scaleY(0.75); }
  50%  { transform: skewX(-10deg) scaleY(1.3); }
  75%  { transform: skewX(8deg) scaleY(0.85); }
  100% { transform: skewX(0deg) scaleY(1); }
}
@keyframes FieldMap_followerShadow__r213F {
  0%   { transform: scaleX(1) scaleY(1); opacity: 0.7; }
  25%  { transform: scaleX(0.5) scaleY(1.3); opacity: 0.3; }
  50%  { transform: scaleX(1.4) scaleY(0.6); opacity: 0.9; }
  75%  { transform: scaleX(0.7) scaleY(1.1); opacity: 0.4; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
}


/* ── エンカウントフラッシュ ── */
.FieldMap_encounterFlash__riLOg {
  position: absolute;
  inset: 0;
  z-index: 100;
  animation: FieldMap_encounterAnim__CrCZO 0.7s ease-out forwards;
}
@keyframes FieldMap_encounterAnim__CrCZO {
  0%   { background: transparent; }
  15%  { background: rgba(255, 255, 255, 0.95); }
  30%  { background: transparent; }
  45%  { background: rgba(255, 255, 255, 0.95); }
  60%  { background: transparent; }
  75%  { background: rgba(0, 0, 0, 0.85); }
  100% { background: rgba(0, 0, 0, 0.98); }
}


/* ── 情報バー（オーバーレイ） ── */
.FieldMap_infoBar__wKhWY {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  padding: 0.4rem 0.75rem;
  background: rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  z-index: 20;
}
.FieldMap_menuBtn__wStrl {
  padding: 0.4rem 0.8rem;
  background: var(--bg-panel);
  border: 1px solid #555;
  color: #ccc;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.85rem;
  transition: all 0.15s;
}
.FieldMap_menuBtn__wStrl:hover {
  border-color: var(--text-accent);
  color: var(--text-accent);
}
.FieldMap_areaLabel__rIArj {
  font-size: 0.85rem;
  color: #aaa;
  font-weight: bold;
}


/* ── ダッシュボタン（オーバーレイ） ── */
.FieldMap_dashBtn__pHAnE {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 20;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(30, 30, 40, 0.6);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  border: 3px solid rgba(120, 120, 140, 0.5);
  color: #ccc;
  font-size: 1.1rem;
  font-weight: bold;
  cursor: pointer;
  touch-action: manipulation;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  transition: all 0.15s;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}
.FieldMap_dashBtn__pHAnE:active,
.FieldMap_dashActive__t5iw9 {
  background: rgba(0, 200, 255, 0.25);
  border-color: var(--text-accent);
  color: var(--text-accent);
  transform: scale(0.93);
  box-shadow: 0 0 12px rgba(0, 200, 255, 0.4);
}

/* ── バーチャルスティック ── */
.FieldMap_stickBase__Q1Awh {
  position: absolute;
  bottom: 4.5rem;
  left: 2rem;
  z-index: 20;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: rgba(30, 30, 50, 0.4);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  border: 2px solid rgba(120, 120, 160, 0.35);
  touch-action: none;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.FieldMap_stickKnob__HP7xv {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 38%, rgba(180, 190, 220, 0.7), rgba(80, 90, 120, 0.6));
  border: 2px solid rgba(160, 170, 200, 0.5);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  pointer-events: none;
  transition: transform 0.05s ease-out;
}


/* ── パーティー表示 ── */
.FieldMap_partyBar__Ss3AE {
  display: flex;
  gap: 6px;
  align-items: center;
  position: absolute;
  bottom: 1.5rem;
  left: 1.5rem;
  z-index: 20;
  background: rgba(30, 30, 40, 0.6);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  padding: 4px 10px;
  border-radius: 8px;
  border: 1px solid rgba(120, 120, 140, 0.4);
}
.FieldMap_partyDot__bXv3a {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid #555;
}

/* ── 砂 (Tile 10) ── */
.FieldMap_tile_10__9P2jv {
  background:
    linear-gradient(155deg,
      hsl(42, 55%, 65%) 0%,
      hsl(38, 50%, 60%) 30%,
      hsl(40, 52%, 63%) 60%,
      hsl(44, 48%, 58%) 100%);
  background-size: 288px 288px;
}
.FieldMap_tile_10__9P2jv::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle 1px at 8px 12px, hsl(40, 40%, 50%) 0%, transparent 50%),
    radial-gradient(circle 1px at 20px 5px, hsl(38, 45%, 55%) 0%, transparent 50%),
    radial-gradient(circle 1px at 35px 30px, hsl(42, 38%, 48%) 0%, transparent 50%),
    radial-gradient(circle 1px at 44px 18px, hsl(36, 50%, 52%) 0%, transparent 50%),
    radial-gradient(circle 1px at 15px 40px, hsl(40, 42%, 50%) 0%, transparent 50%);
  opacity: 0.6;
  pointer-events: none;
}
.FieldMap_tile_10__9P2jv::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 0%, rgba(255,255,220,0.08) 50%, transparent 100%);
  pointer-events: none;
}

/* ── ワープポータル ── */
.FieldMap_warpPortal__bFqOi {
  position: absolute;
  border-radius: 50%;
  z-index: 5;
  pointer-events: none;
}

/* 右回り（時計回り）渦 */
.FieldMap_warpCW__1AnxB {
  background:
    conic-gradient(from 0deg,
      rgba(120, 80, 255, 0.8) 0deg,
      rgba(80, 200, 255, 0.6) 90deg,
      rgba(120, 80, 255, 0.2) 180deg,
      rgba(80, 200, 255, 0.6) 270deg,
      rgba(120, 80, 255, 0.8) 360deg);
  box-shadow:
    0 0 12px rgba(100, 140, 255, 0.6),
    0 0 24px rgba(80, 120, 220, 0.3);
  animation: FieldMap_spiralCW__fdvj5 3s linear infinite, FieldMap_portalPulse__pUDLf 2s ease-in-out infinite;
}

/* 左回り（反時計回り）渦 */
.FieldMap_warpCCW__6QwLl {
  background:
    conic-gradient(from 0deg,
      rgba(255, 80, 120, 0.8) 0deg,
      rgba(255, 180, 80, 0.6) 90deg,
      rgba(255, 80, 120, 0.2) 180deg,
      rgba(255, 180, 80, 0.6) 270deg,
      rgba(255, 80, 120, 0.8) 360deg);
  box-shadow:
    0 0 12px rgba(255, 100, 140, 0.6),
    0 0 24px rgba(220, 80, 100, 0.3);
  animation: FieldMap_spiralCCW__Hf1G4 3s linear infinite, FieldMap_portalPulse__pUDLf 2s ease-in-out infinite;
}

@keyframes FieldMap_spiralCW__fdvj5 {
  from { transform: rotate(0deg) scale(0.9); }
  to   { transform: rotate(360deg) scale(0.9); }
}

@keyframes FieldMap_spiralCCW__Hf1G4 {
  from { transform: rotate(0deg) scale(0.9); }
  to   { transform: rotate(-360deg) scale(0.9); }
}

@keyframes FieldMap_portalPulse__pUDLf {
  0%, 100% {
    opacity: 0.7;
  }
  50% {
    opacity: 1.0;
  }
}

/* ── フィールドボス ── */
.FieldMap_fieldBoss___iR3F {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 6;
  pointer-events: none;
  animation: FieldMap_bossBounce__npsp_ 2s ease-in-out infinite;
  filter: drop-shadow(0 0 6px rgba(255, 60, 60, 0.7));
}

.FieldMap_fieldBoss___iR3F::after {
  content: '⚔';
  position: absolute;
  top: -10px;
  right: -2px;
  font-size: 14px;
  animation: FieldMap_bossIcon__b5Udt 1.5s ease-in-out infinite;
}

@keyframes FieldMap_bossBounce__npsp_ {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@keyframes FieldMap_bossIcon__b5Udt {
  0%, 100% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
}

/* ── 宝箱 ── */
.FieldMap_fieldChest__9dnDm {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 6;
  pointer-events: none;
  animation: FieldMap_chestGlow__9eTUw 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 8px rgba(255, 215, 0, 0.8));
}

@keyframes FieldMap_chestGlow__9eTUw {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px rgba(255, 215, 0, 0.6)); }
  50% { transform: scale(1.1); filter: drop-shadow(0 0 14px rgba(255, 215, 0, 1)); }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/app/page.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************/
.page_main__GlU4n {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2rem;
  min-height: 100vh;
}

.page_title__3jonF {
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
  background: linear-gradient(135deg, var(--text-accent), #a855f7);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.page_subtitle__iAJUg {
  font-size: 1.1rem;
  color: #999;
  margin-bottom: 1rem;
}

/* ══════════ ポケモン風タイトル画面 ══════════ */
.page_titleScreen__RYN_n {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  width: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 30%, #2d1b69 60%, #1a0a3e 100%);
}

/* 背景の光エフェクト */
.page_titleScreen__RYN_n::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(ellipse at 50% 40%, rgba(120, 80, 255, 0.15) 0%, transparent 60%);
  animation: page_titleGlow__MSOO3 6s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes page_titleGlow__MSOO3 {
  0% { opacity: 0.5; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}

/* ロゴ */
.page_logoWrap__oA5Qv {
  position: relative;
  z-index: 2;
  margin-bottom: 0.5rem;
  text-align: center;
}

.page_titleArt__KbGxY {
  width: 100%;
  max-width: 420px;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), 0 0 40px rgba(100, 200, 255, 0.15);
  animation: page_ballFloat__CV9xL 4s ease-in-out infinite;
}

.page_logoMain__P9qSC {
  font-size: 3.2rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  color: #fff;
  text-shadow:
    0 0 10px rgba(100, 200, 255, 0.6),
    0 0 30px rgba(100, 200, 255, 0.3),
    0 4px 0 #1a3a6a,
    0 5px 0 #0e2a4e,
    0 6px 10px rgba(0, 0, 0, 0.5);
  line-height: 1.1;
}

.page_logoSub__UyhPD {
  display: block;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: #ffd700;
  text-shadow: 0 0 8px rgba(255, 215, 0, 0.5), 0 2px 4px rgba(0,0,0,0.5);
  margin-top: 0.3rem;
}

/* バージョンバッジ */
.page_versionBadge__8x3yb {
  display: inline-block;
  margin-top: 0.6rem;
  padding: 0.2rem 1rem;
  font-size: 0.7rem;
  font-weight: bold;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.6);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 12px;
  background: rgba(255,255,255,0.05);
}

/* カプセル風デコ */
.page_titleBall__rQ8JD {
  position: relative;
  z-index: 2;
  width: 44px;
  height: 90px;
  margin: 1.2rem auto 0.8rem;
  border-radius: 22px;
  background: linear-gradient(180deg, #ff4444 0%, #ff4444 46%, #eee 46%, #eee 54%, #ffffffcc 54%, #ffffffcc 100%);
  box-shadow:
    0 0 20px rgba(255, 68, 68, 0.3),
    0 0 40px rgba(255, 68, 68, 0.1),
    inset 0 0 15px rgba(0,0,0,0.15);
  animation: page_ballFloat__CV9xL 3s ease-in-out infinite;
  overflow: hidden;
}

/* 光沢ハイライト */
.page_titleBall__rQ8JD::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 8px;
  width: 14px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  transform: rotate(-20deg);
}

/* 中央の継ぎ目ライン */
.page_titleBall__rQ8JD::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 3px;
  background: rgba(200,200,200,0.6);
  transform: translateY(-50%);
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

/* 中央ボタン */
.page_titleBallButton__N3LOi {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #888;
  transform: translate(-50%, -50%);
  z-index: 3;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
}

@keyframes page_ballFloat__CV9xL {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* ステータスカード */
.page_titleStatusRow__eyU8x {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 1.2rem;
  margin-bottom: 1rem;
}

.page_titleStatCard___jqwr {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.5rem 1rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  min-width: 90px;
}

.page_titleStatLabel__DTpBH {
  font-size: 0.65rem;
  font-weight: bold;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
}

.page_titleStatValue__iTvWg {
  font-size: 1.5rem;
  font-weight: 900;
  color: #ffd700;
  text-shadow: 0 0 6px rgba(255, 215, 0, 0.3);
}

.page_titleStatValueSmall__GqIkc {
  font-size: 1rem;
  font-weight: 700;
  color: #88ccff;
}

.page_titleSeasonInfo__G7g0F {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.35);
  margin-top: 0.15rem;
}

/* メニューボタン群 */
.page_titleMenuButtons__awEa3 {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  width: 100%;
  max-width: 320px;
}

.page_menuBtnBase__QbTEt {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.8rem 1.2rem;
  border: none;
  border-radius: 12px;
  font-size: 0.95rem;
  font-weight: 700;
  color: #e0e0e0;
  cursor: pointer;
  transition: all 0.2s;
  overflow: hidden;
}

.page_menuBtnBase__QbTEt::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
  transition: left 0.4s;
}

.page_menuBtnBase__QbTEt:hover::before {
  left: 100%;
}

.page_menuBtnBase__QbTEt:hover {
  transform: translateX(4px);
  box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}

.page_menuBtnBase__QbTEt:active {
  transform: translateX(2px) scale(0.98);
}

.page_menuBtnIcon__prytX {
  font-size: 1.3rem;
  width: 2rem;
  text-align: center;
  flex-shrink: 0;
}

.page_menuBtnText__roLWI {
  flex: 1 1;
  text-align: left;
}

.page_menuBtnArrow__uDPNL {
  font-size: 0.8rem;
  opacity: 0.5;
  transition: opacity 0.2s;
}

.page_menuBtnBase__QbTEt:hover .page_menuBtnArrow__uDPNL {
  opacity: 1;
}

/* ボタン色バリエーション */
.page_btnField__NbNT2 {
  background: linear-gradient(135deg, #2d8a4e, #1a6b3a);
  color: #e0ffe0;
  border-left: 4px solid #4ade80;
}

.page_btnParty__PTufy {
  background: linear-gradient(135deg, #2d5a8a, #1a3a6b);
  color: #d0e8ff;
  border-left: 4px solid #60a5fa;
}

.page_btnCpu__EWxkk {
  background: linear-gradient(135deg, #6b3a8a, #4a1a6b);
  color: #e8d0ff;
  border-left: 4px solid #a78bfa;
}

.page_btnOnline__gPYch {
  background: linear-gradient(135deg, #8a5a2d, #6b3a1a);
  color: #ffe8d0;
  border-left: 4px solid #fbbf24;
}

.page_btnGacha__uLcNU {
  background: linear-gradient(135deg, #c2410c, #991b1b);
  color: #fff;
  border-left: 4px solid #f87171;
  position: relative;
}

.page_btnBack__CevDp {
  background: linear-gradient(135deg, #444, #333);
  color: #fff;
  border-left: 4px solid #888;
}

.page_btnGacha__uLcNU:not(:disabled)::after {
  content: '';
  position: absolute;
  top: -1px;
  right: -1px;
  width: 10px;
  height: 10px;
  background: #fbbf24;
  border-radius: 50%;
  animation: page_gachaPulse__srCJR 1.5s infinite;
}

@keyframes page_gachaPulse__srCJR {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
}

.page_btnGacha__uLcNU:disabled {
  background: linear-gradient(135deg, #333, #222) !important;
  color: #666 !important;
  border-left-color: #444 !important;
  cursor: not-allowed;
}

.page_btnGacha__uLcNU:disabled::after {
  display: none;
}

/* フッター */
.page_titleFooter__w025K {
  position: relative;
  z-index: 2;
  margin-top: 1rem;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.25);
  text-align: center;
  line-height: 1.6;
}

/* パーティクル(星) */
.page_titleParticles__k3iUt {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.page_star__v4NEN {
  position: absolute;
  width: 2px;
  height: 2px;
  background: #fff;
  border-radius: 50%;
  animation: page_starTwinkle__cl5Cf 3s infinite;
}

@keyframes page_starTwinkle__cl5Cf {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 0.8; }
}

/* ── メニュー ── */
.page_menuButtons__25Kee {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 2rem;
}

/* ── ロビー ── */
.page_lobbyBox___945S {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2rem;
  padding: 2rem;
  background: var(--bg-panel);
  border-radius: 16px;
  max-width: 400px;
  width: 100%;
}

.page_lobbyInput__xbiuO {
  width: 100%;
  padding: 0.7rem 1rem;
  border-radius: 8px;
  border: 2px solid #555;
  background: rgba(255,255,255,0.05);
  color: #fff;
  font-size: 1rem;
  text-align: center;
  outline: none;
  transition: border-color 0.2s;
}

.page_lobbyInput__xbiuO:focus {
  border-color: var(--text-accent);
}

.page_lobbyActions__DSNK_ {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 100%;
}

.page_lobbyJoin___DxT0 {
  display: flex;
  gap: 0.5rem;
  width: 100%;
}

.page_lobbyJoin___DxT0 .page_lobbyInput__xbiuO {
  flex: 1 1;
}

.page_roomCode__udBpL {
  font-size: 3rem;
  font-weight: bold;
  letter-spacing: 0.5rem;
  color: var(--text-accent);
  background: var(--bg-panel);
  padding: 1rem 2rem;
  border-radius: 16px;
  text-align: center;
}

/* ── チームスロット ── */
.page_teamSlots__Xr8z4 {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.page_teamSlot__PTS7a {
  width: 80px;
  height: 80px;
  border: 2px dashed #555;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.03);
  transition: all 0.2s;
  position: relative;
}

.page_teamSlot__PTS7a.page_filled__X_zyw {
  border-color: var(--text-accent);
  background: rgba(0, 212, 255, 0.08);
  cursor: -webkit-grab;
  cursor: grab;
}

.page_teamSlot__PTS7a.page_filled__X_zyw:active {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

.page_teamSlot__PTS7a.page_swapSelected__RG5V3 {
  border-color: #FFD700;
  background: rgba(255, 215, 0, 0.2);
  box-shadow: 0 0 12px rgba(255, 215, 0, 0.6);
  animation: page_swapPulse__b90vC 0.6s infinite alternate;
}

@keyframes page_swapPulse__b90vC {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}

.page_teamSlot__PTS7a.page_pickSlot__HjHsT {
  width: 90px;
  height: 90px;
  border-color: #a855f7;
}

.page_teamSlot__PTS7a.page_pickSlot__HjHsT.page_filled__X_zyw {
  border-color: #a855f7;
  background: rgba(168, 85, 247, 0.1);
}

.page_slotName__7tR_r {
  font-size: 0.65rem;
  color: #ccc;
  margin-top: 2px;
  text-align: center;
  max-width: 76px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.page_slotEmpty__S_YV0 {
  font-size: 1.5rem;
  color: #555;
}

/* ── 確定ボタン ── */
.page_confirmBtn__CMn9K {
  padding: 0.75rem 2.5rem;
  background: var(--text-accent);
  color: #000;
  font-size: 1rem;
  font-weight: bold;
  border-radius: 8px;
  margin-bottom: 1.5rem;
  transition: all 0.15s;
}

.page_confirmBtn__CMn9K:disabled {
  background: #444;
  color: #888;
  cursor: not-allowed;
}

.page_confirmBtn__CMn9K:not(:disabled):hover {
  transform: scale(1.05);
  box-shadow: 0 4px 20px rgba(0, 212, 255, 0.4);
}

.page_backBtn__e4W4f {
  margin-top: 1rem;
  padding: 0.6rem 1.5rem;
  background: rgba(40, 40, 60, 0.8);
  border: 1px solid rgba(150, 150, 180, 0.5);
  color: #ddd;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
}

.page_backBtn__e4W4f:hover {
  background: rgba(60, 60, 90, 0.9);
  border-color: var(--text-accent);
  color: var(--text-accent);
}

/* ── グリッド (100体) ── */
.page_grid__f5Kdy {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  grid-gap: 0.75rem;
  gap: 0.75rem;
  max-width: 1200px;
  width: 100%;
  max-height: 55vh;
  overflow-y: auto;
  padding: 0.5rem;
}

/* ── ピックグリッド (6体) ── */
.page_pickLayout__akmSD {
  display: flex;
  gap: 1.5rem;
  width: 100%;
  max-width: 750px;
  margin-bottom: 1rem;
}

.page_pickColumn__5C1TD {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.page_columnLabel__2ZHyO {
  font-size: 0.95rem;
  color: #ccc;
  text-align: center;
  margin-bottom: 0.3rem;
}

/* 自分の行（クリック可能） */
.page_pickRow__kq26f {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.5rem;
  background: var(--bg-panel);
  border: 2px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s;
  position: relative;
  text-align: left;
}

.page_pickRow__kq26f:hover {
  border-color: #a855f7;
  background: rgba(168, 85, 247, 0.08);
}

.page_pickRow__kq26f.page_selected__GuR9L {
  border-color: #a855f7;
  background: rgba(168, 85, 247, 0.15);
  box-shadow: 0 0 10px rgba(168, 85, 247, 0.25);
}

.page_pickCheck__sA2Ex {
  position: absolute;
  top: 4px;
  right: 8px;
  font-size: 1.1rem;
  color: #a855f7;
  font-weight: bold;
}

/* 敵の行（クリック不可） */
.page_pickRowEnemy__WyLJT {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.5rem;
  background: rgba(255, 50, 50, 0.06);
  border: 1px solid rgba(255, 80, 80, 0.15);
  border-radius: 10px;
}

.page_pickRowSprite__irai1 {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page_pickRowInfo__QWaYP {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.page_pickRowName__ctx8D {
  font-size: 0.85rem;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 選出スロット＆決定ボタン */
.page_pickBottom__K2oJp {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

/* ── カード ── */
.page_card__QV0Om {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  padding: 0.75rem 0.5rem;
  background: rgba(30, 45, 80, 0.9);
  border: 2px solid rgba(100, 120, 160, 0.3);
  border-radius: 10px;
  transition: all 0.2s;
  cursor: pointer;
  position: relative;
}

.page_card__QV0Om:hover {
  border-color: var(--text-accent);
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 212, 255, 0.2);
}

.page_card__QV0Om.page_selected__GuR9L {
  border-color: var(--text-accent);
  background: rgba(0, 212, 255, 0.1);
  box-shadow: 0 0 15px rgba(0, 212, 255, 0.3);
}

.page_checkMark__GFX1W {
  position: absolute;
  top: 4px;
  right: 6px;
  font-size: 1.1rem;
  color: var(--text-accent);
  font-weight: bold;
}

.page_sprite__knsKj {
  display: flex;
  align-items: center;
  justify-content: center;
}

.page_name__eOmhd {
  font-size: 0.95rem;
  font-weight: bold;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
}

.page_type__yDatk {
  font-size: 0.85rem;
  width: 1.6rem;
  height: 1.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  line-height: 1;
}

.page_type__yDatk[data-type="fire"] { background: var(--fire); color: #fff; }
.page_type__yDatk[data-type="water"] { background: var(--water); color: #000; }
.page_type__yDatk[data-type="grass"] { background: var(--grass); color: #000; }
.page_type__yDatk[data-type="electric"] { background: var(--electric); color: #000; }
.page_type__yDatk[data-type="normal"] { background: var(--normal); color: #000; }
.page_type__yDatk[data-type="dark"] { background: var(--dark); color: #fff; }
.page_type__yDatk[data-type="spirit"] { background: var(--spirit); color: #fff; }

.page_stats__L5b4y {
  display: flex;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #ccc;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}

/* ── ホーム画面: レート表示 (旧・互換用) ── */
.page_homeRate__wciIH {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  margin-bottom: 0.5rem;
}

.page_rateCard__KRmXY {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  background: var(--bg-panel);
  padding: 0.6rem 1.5rem;
  border-radius: 12px;
  border: 1px solid rgba(255, 215, 0, 0.3);
}

.page_rateLabel__ju_NO {
  font-size: 0.85rem;
  color: #999;
  font-weight: bold;
  letter-spacing: 0.1em;
}

.page_rateValue__jFXYI {
  font-size: 2rem;
  font-weight: bold;
  color: #ffd700;
}

.page_seasonInfo__81No8 {
  font-size: 0.8rem;
  color: #888;
}

.page_ownedCount__JXdbp {
  font-size: 0.9rem;
  color: #aaa;
  margin-bottom: 0.5rem;
}

/* ── ガチャボタン ── */
.page_gachaBtn__bSCSW {
  background: linear-gradient(135deg, #f59e0b, #ef4444) !important;
  color: #fff !important;
}

.page_gachaBtn__bSCSW:disabled {
  background: #444 !important;
  color: #888 !important;
}

.page_gachaNote__DZnY0 {
  font-size: 0.75rem;
  color: #666;
  margin-top: 0.5rem;
}

/* ── ガチャ演出 ── */
.page_gachaBox__r7LmY {
  display: flex;
  justify-content: center;
  margin-top: 3rem;
}

.page_gachaEgg__Zehz3 {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  animation: page_eggBounce__syjoQ 0.8s ease-in-out infinite;
}

@keyframes page_eggBounce__syjoQ {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-15px) rotate(3deg); }
}

.page_gachaEggIcon__uf94Q {
  font-size: 8rem;
}

.page_gachaHint__4b6gR {
  font-size: 1rem;
  color: #aaa;
  margin-top: 1rem;
  animation: page_pulse__U_e85 1.5s ease-in-out infinite;
}

@keyframes page_pulse__U_e85 {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.page_gachaReveal__TmDw7 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-top: 2rem;
  animation: page_revealPop__J8psc 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes page_revealPop__J8psc {
  0% { transform: scale(0); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

.page_gachaNewSprite__n_le6 {
  filter: drop-shadow(0 0 20px rgba(255, 215, 0, 0.6));
}

.page_gachaNewName__r7TyU {
  font-size: 1.8rem;
  color: #fff;
  margin: 0;
}

.page_gachaGetText__R3V2B {
  font-size: 1.5rem;
  font-weight: bold;
  color: #ffd700;
  text-shadow: 0 0 15px rgba(255, 215, 0, 0.5);
}

/* ── バトル結果パネル ── */
.page_resultPanel__lBTKw {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2rem;
  padding: 2rem 3rem;
  background: var(--bg-panel);
  border-radius: 16px;
}

.page_resultBig__esYr4 {
  font-size: 2.5rem;
  font-weight: bold;
  margin: 0;
}

.page_dropPanel__iqvRQ {
  background: rgba(255, 215, 0, 0.1);
  border: 1px solid rgba(255, 215, 0, 0.3);
  border-radius: 12px;
  padding: 1rem 1.5rem;
  text-align: center;
}

.page_dropTitle__Mbq_H {
  font-size: 1.2rem;
  font-weight: bold;
  margin: 0 0 0.5rem;
  color: #ffd700;
}

.page_dropItem__4dNmg {
  font-size: 1.1rem;
  margin: 0.3rem 0;
}

.page_dropList__dV2yO {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  background: rgba(255, 255, 255, 0.05);
  padding: 0.8rem 1.2rem;
  border-radius: 8px;
}

.page_rateDeltaBox__ucV3y {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
}

.page_ratePlus__lqkvG {
  font-size: 1.5rem;
  font-weight: bold;
  color: #22c55e;
}

.page_rateMinus__erTsH {
  font-size: 1.5rem;
  font-weight: bold;
  color: #ef4444;
}

/* ── エンカウント演出画面 ── */
.page_encounterScreen__Fiq4r {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-top: 4rem;
  animation: page_encounterAppear___RlW_ 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes page_encounterAppear___RlW_ {
  0% { transform: scale(0) rotate(-10deg); opacity: 0; }
  60% { transform: scale(1.1) rotate(3deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

.page_encounterSpriteBox__sxyw5 {
  filter: drop-shadow(0 0 25px rgba(255, 50, 50, 0.5));
  animation: page_encounterPulse___s_g3 1.2s ease-in-out infinite;
}

@keyframes page_encounterPulse___s_g3 {
  0%, 100% { filter: drop-shadow(0 0 25px rgba(255, 50, 50, 0.5)); }
  50% { filter: drop-shadow(0 0 40px rgba(255, 50, 50, 0.8)); }
}

.page_encounterText__k3zjx {
  font-size: 1.6rem;
  color: #ff4444;
  text-shadow: 0 0 10px rgba(255, 50, 50, 0.3);
  text-align: center;
  margin: 0;
}

/* ── ボスエンカウント ── */
.page_bossEncounterTitle___guxv {
  font-size: 2rem;
  font-weight: bold;
  color: #ff2222;
  text-shadow: 0 0 20px rgba(255, 0, 0, 0.6), 0 0 40px rgba(255, 0, 0, 0.3);
  letter-spacing: 0.3em;
  animation: page_bossFlash__Rv2H_ 1s ease-in-out infinite alternate;
}
@keyframes page_bossFlash__Rv2H_ {
  0% { color: #ff2222; text-shadow: 0 0 20px rgba(255, 0, 0, 0.6); }
  100% { color: #ff8800; text-shadow: 0 0 30px rgba(255, 136, 0, 0.8); }
}
.page_bossEncounterFloor__kQbBt {
  font-size: 1.2rem;
  color: #ffcc00;
  font-weight: bold;
  text-shadow: 0 0 8px rgba(255, 204, 0, 0.4);
}

/* ── 野生バトル結果 ── */
.page_wildCaptureBox__CVFow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
}

.page_captureSuccess__7r1ms {
  font-size: 1.3rem;
  font-weight: bold;
  color: #22c55e;
  margin: 0;
}

.page_captureInfo__D9vXw {
  font-size: 1.1rem;
  color: #888;
  margin: 0;
}

.page_captureEscaped__HOepd {
  font-size: 1.1rem;
  color: #ff9800;
  margin: 0;
}

/* ── 重複バケモン比較UI ── */
.page_dupCompare__xD_MK {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  margin: 1rem 0;
}
.page_dupColumn__PXof4 {
  background: rgba(255,255,255,0.04);
  border: 1px solid #444;
  border-radius: 10px;
  padding: 0.8rem 1.2rem;
  min-width: 120px;
  text-align: center;
}
.page_dupColumn__PXof4 h3 {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  color: #ddd;
}
.page_dupColumn__PXof4 p {
  margin: 0.2rem 0;
  font-size: 0.9rem;
  color: #bbb;
}
.page_dupActions__XATf3 {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-top: 1rem;
  align-items: center;
}

/* ── ミュートボタン ── */
.page_muteBtn__q7BZi {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 999;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.3);
  background: rgba(0,0,0,0.5);
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  transition: background 0.2s;
}
.page_muteBtn__q7BZi:hover {
  background: rgba(0,0,0,0.7);
}

/* ── お気に入りパーティ ── */
.page_favSection__DBCHa {
  margin: 0.5rem 0;
  padding: 0.5rem 0.75rem;
  background: rgba(255, 215, 0, 0.05);
  border: 1px solid rgba(255, 215, 0, 0.2);
  border-radius: 10px;
}

.page_favTitle__k_By7 {
  font-size: 0.8rem;
  color: #ffd700;
  margin-bottom: 0.4rem;
  font-weight: bold;
}

.page_favSlots__FzgMQ {
  display: flex;
  gap: 6px;
}

.page_favSlot__ZY97O {
  flex: 1 1;
  display: flex;
  gap: 2px;
}

.page_favLoadBtn__XSOtn {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 6px 4px;
  background: rgba(255, 215, 0, 0.12);
  border: 1px solid rgba(255, 215, 0, 0.3);
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  transition: background 0.2s;
  font-size: 0.65rem;
}
.page_favLoadBtn__XSOtn:hover {
  background: rgba(255, 215, 0, 0.25);
}

.page_favLabel__wZDC_ {
  font-weight: bold;
  color: #ffd700;
  font-size: 0.75rem;
}

.page_favNames__9coy3 {
  color: #ccc;
  font-size: 0.55rem;
  line-height: 1.2;
  text-align: center;
  word-break: break-all;
}

.page_favDeleteBtn__TblcG {
  padding: 2px 6px;
  background: rgba(255, 80, 80, 0.15);
  border: 1px solid rgba(255, 80, 80, 0.3);
  border-radius: 6px;
  color: #ff5252;
  cursor: pointer;
  font-size: 0.7rem;
  align-self: center;
  transition: background 0.2s;
}
.page_favDeleteBtn__TblcG:hover {
  background: rgba(255, 80, 80, 0.35);
}

.page_favSaveBtn__iZBRk {
  flex: 1 1;
  padding: 6px 4px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px dashed rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  color: #888;
  cursor: pointer;
  font-size: 0.7rem;
  transition: background 0.2s, color 0.2s;
}
.page_favSaveBtn__iZBRk:hover:not(:disabled) {
  background: rgba(255, 215, 0, 0.1);
  color: #ffd700;
}
.page_favSaveBtn__iZBRk:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

/* ── ソートバー ── */
.page_sortBar__oKik7 {
  display: flex;
  gap: 6px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 12px 0 8px;
}
.page_sortBtn__hj7WC {
  padding: 4px 10px;
  border: 1px solid #555;
  border-radius: 14px;
  background: rgba(255,255,255,0.05);
  color: #aaa;
  font-size: 0.75rem;
  cursor: pointer;
  transition: all 0.2s;
}
.page_sortBtn__hj7WC:hover { background: rgba(255,255,255,0.1); color: #fff; }
.page_sortActive__cgvcA {
  background: rgba(100,180,255,0.2) !important;
  border-color: #4af !important;
  color: #4af !important;
  font-weight: bold;
}

/* ── レアリティバッジ ── */
.page_rarityBadge__Y6Joh {
  font-size: 0.65rem;
  letter-spacing: -1px;
  display: block;
  line-height: 1;
  margin-top: -2px;
}

/* ── 属性相性図 ── */
.page_chartWrap__Ygans {
  overflow-x: auto;
  margin: 1rem auto;
  max-width: 100%;
}
.page_chartTable__4AziB {
  border-collapse: collapse;
  margin: 0 auto;
  font-size: 0.8rem;
}
.page_chartTable__4AziB th, .page_chartTable__4AziB td {
  border: 1px solid #444;
  padding: 6px 8px;
  text-align: center;
  min-width: 48px;
}
.page_chartCorner__iEb4i {
  background: #222;
  color: #888;
  font-size: 0.65rem;
  line-height: 1.2;
}
.page_chartHead__mj5ZL {
  background: #1a1a2e;
  color: #ccc;
  font-size: 0.7rem;
  line-height: 1.3;
}
.page_chartRowHead__WEL59 {
  background: #1a1a2e;
  color: #ccc;
  font-size: 0.7rem;
  text-align: left !important;
  white-space: nowrap;
}
.page_chartNormal__ZYYkU { background: #1a1a1a; color: #666; }
.page_chartSuper__rG13I { background: rgba(255,80,80,0.15); color: #ff6666; font-weight: bold; }
.page_chartWeak__PHdWG { background: rgba(100,150,255,0.1); color: #6688cc; }
.page_chartImmune__51_Is { background: rgba(100,100,100,0.15); color: #555; }

/* ── 相性図ボタン ── */
.page_btnChart__OFh8J {
  background: linear-gradient(135deg, #2d3a4a 0%, #1a2530 100%) !important;
  border-color: #4a6a8a !important;
}

/* ── ステータスボタン ── */
.page_btnStatus__KavZk {
  background: linear-gradient(135deg, #3a2d4a 0%, #251a30 100%) !important;
  border-color: #7a4aaa !important;
}

/* ══════════ ステータス・宝珠画面 ══════════ */

/* 所持宝珠バー（一覧上部） */
.page_statusMaterialBar__BCOQW {
  display: flex; gap: 0.6rem; flex-wrap: wrap;
  justify-content: center; margin-bottom: 1rem;
}
.page_statusMaterialTag__uJSHb {
  background: #1a1a2e; border: 1px solid #333;
  border-radius: 1rem; padding: 0.25rem 0.7rem;
  font-size: 0.85rem; color: #ccc;
}

/* カードグリッド */
.page_statusGrid__FS1il {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  grid-gap: 0.6rem;
  gap: 0.6rem; width: 100%; max-width: 600px;
}
.page_statusCard__WOBix {
  display: flex; flex-direction: column; align-items: center;
  background: #141428; border: 1px solid #2a2a4a;
  border-radius: 0.75rem; padding: 0.5rem;
  cursor: pointer; transition: border-color 0.2s, transform 0.15s;
}
.page_statusCard__WOBix:hover {
  border-color: #7a4aaa; transform: translateY(-2px);
}
.page_statusCardName__Hs7D1 {
  font-size: 0.72rem; margin-top: 0.2rem;
  text-align: center; line-height: 1.2;
}
.page_statusCardIv__eatA2 {
  font-size: 0.7rem; color: #888; margin-top: 0.15rem;
}
.page_statusCardBoost__H_3qF {
  color: #a8e6cf; font-weight: bold; margin-left: 0.2em;
}

/* 詳細画面 */
.page_statusDetail__fIzGx {
  display: flex; gap: 1.5rem; align-items: flex-start;
  flex-wrap: wrap; justify-content: center;
  margin: 1rem 0; width: 100%; max-width: 540px;
}
.page_statusSpriteWrap__rjGX_ {
  display: flex; flex-direction: column; align-items: center;
  gap: 0.3rem;
}
.page_statusName__fqX2i {
  font-size: 1.1rem; font-weight: bold; margin-top: 0.3rem;
}
.page_statusAwake__nLgK9 {
  font-size: 0.85rem; color: #aaa;
}

/* ステータス行 */
.page_statusStats__7d2MX {
  flex: 1 1; min-width: 250px;
}
.page_statusStatRow__l0Z6h {
  display: flex; align-items: center; gap: 0.4rem;
  padding: 0.35rem 0; border-bottom: 1px solid #222;
}
.page_statusStatLabel__9mFxp {
  width: 5em; font-size: 0.85rem; color: #bbb;
}
.page_statusStatIv__M5pHN {
  width: 2em; text-align: right; font-weight: bold;
  color: #e0e0e0; font-size: 0.9rem;
}
.page_statusStatBoost__3cnnO {
  color: #a8e6cf; font-weight: bold; font-size: 0.85rem;
  min-width: 2.5em;
}
.page_statusStatEff__olMD8 {
  color: #8888cc; font-size: 0.85rem; min-width: 3em;
}
.page_statusJewelBtn__lSf_y {
  background: #1e1e3a; border: 1px solid #444;
  border-radius: 0.4rem; padding: 0.15rem 0.5rem;
  font-size: 0.8rem; cursor: pointer; color: #eee;
  transition: background 0.15s;
}
.page_statusJewelBtn__lSf_y:hover:not(:disabled) {
  background: #2a2a5a;
}
.page_statusJewelBtn__lSf_y:disabled {
  opacity: 0.3; cursor: not-allowed;
}
.page_statusMinusBtn__t6vuU {
  background: #2a1a1a; border: 1px solid #553333;
  border-radius: 0.4rem; padding: 0.15rem 0.5rem;
  font-size: 0.85rem; cursor: pointer; color: #ff8888;
  transition: background 0.15s;
}
.page_statusMinusBtn__t6vuU:hover:not(:disabled) {
  background: #3a2020;
}
.page_statusMinusBtn__t6vuU:disabled {
  opacity: 0.3; cursor: not-allowed;
}

.page_statusBoostTotal__TmFoj {
  font-size: 0.8rem; color: #888; margin-top: 0.5rem;
  text-align: right;
}
.page_statusResetBtn__ALVcU {
  background: #331a1a; border: 1px solid #663333;
  border-radius: 0.5rem; padding: 0.4rem 1rem;
  color: #ff8888; font-size: 0.8rem;
  cursor: pointer; margin-top: 0.5rem;
  transition: background 0.15s;
}
.page_statusResetBtn__ALVcU:hover:not(:disabled) {
  background: #441a1a;
}
.page_statusResetBtn__ALVcU:disabled {
  opacity: 0.3; cursor: not-allowed;
}

/* 所持宝珠一覧（詳細下部） */
.page_statusMaterials__myZG1 {
  width: 100%; max-width: 540px;
  margin-top: 1rem; padding: 0.7rem;
  background: #0e0e1e; border: 1px solid #222;
  border-radius: 0.6rem;
}
.page_statusMaterials__myZG1 h3 {
  font-size: 0.85rem; color: #999; margin: 0 0 0.4rem;
}
.page_statusMaterialList__MAnJq {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
}
.page_statusMaterialItem__D2coW {
  font-size: 0.8rem; color: #ccc;
  background: #1a1a30; padding: 0.2rem 0.6rem;
  border-radius: 0.4rem;
}

