*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:Arial,sans-serif;
}

body{
  background:#0a0a0a;
  color:#fff;
  overflow-x:hidden;
}

/* HEADER */
.header{
  position:fixed;
  top:0;
  width:100%;
  height:70px;
  background:rgba(0,0,0,0.9);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1000;
}

.logo{
  color:#ff2a2a;
  letter-spacing:3px;
}

.menu-btn{
  position:absolute;
  right:20px;
  cursor:pointer;
}

.menu-btn span{
  display:block;
  width:25px;
  height:2px;
  margin:5px 0;
  background:#ff2a2a;
}

.header-line{
  position:absolute;
  bottom:0;
  width:100%;
  height:2px;
  background:linear-gradient(to right,#5a0000,#ff2a2a);
}

/* SIDE MENU */
.side-menu{
  position:fixed;
  top:0;
  right:-320px;
  width:300px;
  height:100%;
  background:rgba(0,0,0,0.95);
  padding:80px 30px;
  transition:0.4s;
  z-index:2000;
}

.side-menu.active{
  right:0;
}

.side-menu ul{
  list-style:none;
}

.side-menu li{
  margin:25px 0;
  color:#ff2a2a;
  cursor:pointer;
}

/* ★復活：×ボタン */
.close-btn{
  position:absolute;
  top:15px;
  right:20px;
  font-size:40px;
  color:#ff2a2a;
  cursor:pointer;
}

/* OVERLAY */
.overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.6);
  display:none;
  z-index:1500;
}

.overlay.active{
  display:block;
}

/* SECTIONS */
.section{
  padding:120px 40px;
}

.top{
  height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}

.top h1{
  font-size:60px;
  color:#ff2a2a;
}

.title-red{
  color:#ff2a2a;
  margin-bottom:20px;
}

/* GAME */
.game{
  border-bottom:1px solid #333;
  padding:15px 0;
  cursor:pointer;
}

.game-title{
  color:#ff2a2a;
}

.game-desc{
  max-height:0;
  overflow:hidden;
  transition:0.4s;
  color:#aaa;
}

.game.active .game-desc{
  max-height:120px;
  margin-top:10px;
}

/* MESSAGE */
.message-text{
  color:#ff2a2a;
  line-height:1.8;
}

/* VIDEO */
.main-video{
  width:100%;
  max-width:800px;
  margin-top:20px;
}

/* BACKGROUND */
.casino-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
  background:linear-gradient(180deg,#050505,#120000,#050505);
}

.floating-squares{
  position:absolute;
  width:100%;
  height:100%;
}

.floating-squares li{
  position:absolute;
  list-style:none;
  background:rgba(255,42,42,0.08);
  border:1px solid rgba(255,42,42,0.15);
  bottom:-150px;
  animation:float 25s linear infinite;
}

.floating-squares li:nth-child(1){left:10%;width:60px;height:60px;}
.floating-squares li:nth-child(2){left:20%;width:20px;height:20px;animation-delay:2s;}
.floating-squares li:nth-child(3){left:30%;width:90px;height:90px;animation-delay:4s;}
.floating-squares li:nth-child(4){left:40%;width:40px;height:40px;}
.floating-squares li:nth-child(5){left:50%;width:120px;height:120px;}
.floating-squares li:nth-child(6){left:60%;width:70px;height:70px;}
.floating-squares li:nth-child(7){left:70%;width:30px;height:30px;}
.floating-squares li:nth-child(8){left:80%;width:100px;height:100px;}
.floating-squares li:nth-child(9){left:15%;width:50px;height:50px;}
.floating-squares li:nth-child(10){left:85%;width:140px;height:140px;}

@keyframes float{
  0%{transform:translateY(0) rotate(0deg);opacity:0;}
  20%{opacity:1;}
  100%{transform:translateY(-1000px) rotate(720deg);opacity:0;}
}


/* =========================
MENU HOVER LINE ANIMATION
========================= */

.side-menu li{
  margin:25px 0;
  color:#ff2a2a;
  cursor:pointer;
  position:relative; /* ←重要 */
}

/* 下線（初期状態） */
.side-menu li::after{
  content:"";
  position:absolute;
  bottom:-6px;
  left:0;

  width:0%;
  height:2px;

  background:#ff2a2a;

  transition:0.3s ease;
}

/* ホバー時：左→右に伸びる */
.side-menu li:hover::after{
  width:100%;
}
.intro-text{
  padding:60px 40px;
  text-align:center;
}

.intro-text p{
  color:#aaa;
  font-size:18px;
  letter-spacing:1px;
}

.game-desc{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.6s ease;
  color:#ff2a2a;
}

.game.active .game-desc{
  max-height:2500px;
  margin-top:15px;
}

.game-desc h3{
  color:#ff2a2a;
  margin:20px 0 10px;
}

.game-desc p,
.game-desc li{
  line-height:1.8;
}

.game-flow{
  padding-left:20px;
}

.game-flow ul{
  margin-top:10px;
  padding-left:20px;
}

.poker-role-image{
  width:100%;
  max-width:500px;
  display:block;
  margin:20px auto;
  border:1px solid #ff2a2a;
}

.poker-reward{
  margin-top:15px;
  padding-left:20px;
}

.image-credit{
  margin-top:15px;
  font-size:14px;
  color:#888;
}
.blackjack-table{
  width:100%;
  border-collapse:collapse;
  margin-top:20px;
  color:#fff;
}

.blackjack-table th{
  background:#ff2a2a;
  color:#fff;
  padding:12px;
  border:1px solid #ff2a2a;
}

.blackjack-table td{
  padding:12px;
  border:1px solid #444;
  text-align:center;
}

.blackjack-table tr:hover{
  background:rgba(255,42,42,0.1);
}
.blackjack-card-table{
  border-collapse:collapse;
  margin:10px 0 20px;
}

.blackjack-card-table td{
  padding:4px 10px;
  color:#ff2a2a;
}

.blackjack-card-table td:first-child{
  width:140px;
}

.blackjack-card-table td:nth-child(2){
  width:40px;
  text-align:center;
}
#location p{
  color:#ff2a2a;
}
@media screen and (max-width: 768px) {

  .top h1 {
    font-size: 32px;
    text-align: center;
  }

  .top p {
    font-size: 14px;
  }

  .section {
    padding: 90px 20px;
  }

  .logo {
    font-size: 14px;
  }

  .side-menu {
    width: 240px;
  }

  .game-desc {
    font-size: 14px;
  }

  /* テーブル対策 */
  table {
    font-size: 12px;
    width: 100%;
  }

  .blackjack-table th,
  .blackjack-table td {
    padding: 8px;
  }
}
body {
  overflow-x: hidden;
}
.intro-text p{
  color:#ff2a2a;
  font-size:18px;
  letter-spacing:1px;
}

