/* ===== RESET & BASE ===== */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans JP",sans-serif;
  background:#f5f5f5;
  color:#1f2a24;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}

/* ===== PHONE FRAME ===== */
.frame{
  max-width:430px;
  margin:0 auto;
  background:#fff;
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
}

/* PC時はフレームをカード風に */
@media(min-width:431px){
  body{
    background:#e8ecf0;
    min-height:100vh;
  }
  .frame{
    box-shadow:0 0 40px rgba(0,0,0,.15);
  }
}

/* ===== HEADER ===== */
.header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:2px solid #f0f0f0;
  padding:10px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.logo{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:900;
  font-size:18px;
  color:#1f2a24;
  letter-spacing:-.02em;
}
.logo-mark{
  width:36px;
  height:36px;
  border-radius:12px;
  background:linear-gradient(135deg,#ff5a5f,#ff8c61);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  box-shadow:0 4px 12px rgba(255,90,95,.35);
}
/* ===== HAMBURGER BUTTON (メーター風) ===== */
.hamburger{
  width:44px;
  height:44px;
  border-radius:50%;
  background:#fff;
  border:2.5px solid #f0f0f0;
  box-shadow:0 3px 10px rgba(0,0,0,.10);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  cursor:pointer;
  position:relative;
  transition:.25s cubic-bezier(.4,0,.2,1);
  overflow:hidden;
}
/* メーター風の弧（SVGで描画） */
.hamburger::before{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:50%;
  border:2px solid transparent;
  border-top-color:#ff5a5f;
  border-right-color:#ff5a5f;
  opacity:.35;
  transition:.25s;
}
.hamburger.is-open{
  background:#ff5a5f;
  border-color:#ff5a5f;
  box-shadow:0 4px 16px rgba(255,90,95,.45);
}
.hamburger.is-open::before{
  border-top-color:#fff;
  border-right-color:#fff;
  opacity:.5;
}
.hamburger-line{
  width:18px;
  height:2.5px;
  border-radius:999px;
  background:#1f2a24;
  transition:.25s cubic-bezier(.4,0,.2,1);
  transform-origin:center;
}
.hamburger.is-open .hamburger-line{background:#fff}
/* 開いたとき × に変形 */
.hamburger.is-open .hamburger-line:nth-child(1){
  transform:translateY(7.5px) rotate(45deg);
}
.hamburger.is-open .hamburger-line:nth-child(2){
  opacity:0;
  transform:scaleX(0);
}
.hamburger.is-open .hamburger-line:nth-child(3){
  transform:translateY(-7.5px) rotate(-45deg);
}

/* ===== MOBILE MENU ===== */
.mobile-menu-overlay{
  position:fixed;
  top:58px;
  left:0;right:0;bottom:0;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;
  pointer-events:none;
  transition:opacity .3s;
  z-index:99;
}
.mobile-menu-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}
.mobile-menu{
  position:fixed;
  top:58px;
  right:0;
  width:72%;
  max-width:300px;
  height:calc(100% - 58px);
  background:#fff;
  z-index:99;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  display:flex;
  flex-direction:column;
  overflow-y:auto;
}
.mobile-menu.is-open{
  transform:translateX(0);
}
/* メニュー上部のメーター風デコ */
.menu-header{
  padding:24px 20px 20px;
  background:linear-gradient(135deg,#ff5a5f,#ff8c61);
  position:relative;
  overflow:hidden;
}
.menu-header::before{
  content:"";
  position:absolute;
  width:140px;
  height:140px;
  border-radius:50%;
  border:14px solid rgba(255,255,255,.12);
  right:-40px;
  top:-40px;
}
.menu-header::after{
  content:"";
  position:absolute;
  width:80px;
  height:80px;
  border-radius:50%;
  border:10px solid rgba(255,255,255,.10);
  left:-20px;
  bottom:-20px;
}
/* メーター風SVGアーク */
.menu-meter{
  display:block;
  margin:0 auto 12px;
  position:relative;
  z-index:1;
}
.menu-header-title{
  font-size:15px;
  font-weight:900;
  color:#fff;
  text-align:center;
  position:relative;
  z-index:1;
  letter-spacing:.05em;
}
.menu-header-sub{
  font-size:10px;
  color:rgba(255,255,255,.8);
  text-align:center;
  margin-top:3px;
  position:relative;
  z-index:1;
  letter-spacing:.08em;
}
.menu-nav{
  flex:1;
  padding:12px 0;
}
.menu-nav-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 20px;
  font-size:14px;
  font-weight:700;
  color:#1f2a24;
  border-bottom:1px solid #f5f5f5;
  transition:.15s;
  cursor:pointer;
}
.menu-nav-item:active{background:#fff8f8}
.menu-nav-item:last-child{border-bottom:none}
.menu-nav-icon{
  width:36px;
  height:36px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  flex-shrink:0;
}
.menu-nav-arrow{
  margin-left:auto;
  color:#ccc;
  font-size:12px;
}
.menu-footer{
  padding:16px 20px 24px;
  border-top:1px solid #f0f0f0;
  text-align:center;
  font-size:11px;
  color:#bbb;
}

/* ===== HERO ===== */
.hero{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#1a1a2e;
}
.hero__bg{
  width:100%;
  height:auto;
  display:block;
}
.hero__overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.hero__btn{
  position:absolute;
  left:0;
  right:0;
  margin:0 auto;
  top:71%;
  width:88%;
  pointer-events:auto;
  display:block;
  transition:.15s;
}
.hero__btn:active{transform:scale(.97)}
.hero__btn img{
  width:100%;
  height:auto;
  display:block;
}

/* ===== SECTION BASE ===== */
.section{
  padding:32px 16px;
}
.section-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 12px;
  border-radius:999px;
  background:#fff0f0;
  color:#ff5a5f;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  margin-bottom:10px;
}
.section-label::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:#ff5a5f;
}
.section-title{
  font-size:22px;
  font-weight:900;
  line-height:1.3;
  letter-spacing:-.02em;
  margin-bottom:6px;
}
.section-sub{
  font-size:13px;
  color:#888;
  margin-bottom:20px;
}

/* ===== DIVIDER ===== */
.divider{
  height:8px;
  background:#f5f5f5;
}

/* ===== 遊び方3軸（ゲームフレームカード） ===== */
.mood-section{
  padding:36px 0;
  background:#fff;
}
.mood-section-inner{
  padding:0 16px;
}
/* ゲームサイト風見出し */
.mood-heading{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}
.mood-heading-label{
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  color:#ff5a5f;
  text-transform:uppercase;
}
.mood-heading-line{
  flex:1;
  height:1px;
  background:linear-gradient(90deg,#ff5a5f 0%,rgba(255,90,95,0) 100%);
}
.mood-title{
  font-size:22px;
  font-weight:900;
  letter-spacing:-.02em;
  color:#1f2a24;
  margin-bottom:4px;
  line-height:1.25;
}
/* タイトル下の装飾ライン */
.mood-title-deco{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:20px;
}
.mood-title-deco span:nth-child(1){
  display:block;
  width:28px;
  height:3px;
  background:#ff5a5f;
}
.mood-title-deco span:nth-child(2){
  display:block;
  width:8px;
  height:3px;
  background:#ffd84d;
}
.mood-title-deco span:nth-child(3){
  display:block;
  width:4px;
  height:3px;
  background:#18c989;
}

.mood-grid{
  display:grid;
  gap:0;
  padding:0 16px;
}
/* ゲームフレームカード本体 — 角丸なし */
.mood-card{
  position:relative;
  overflow:hidden;
  background:#111;
  padding:12px;
}

/* イラスト 100%幅・縦横比そのまま */
.mood-card__img{
  width:100%;
  height:auto;
  display:block;
}

/* 暗めグラデオーバーレイ */
.mood-card__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0) 35%,
    rgba(0,0,0,.78) 100%
  );
  pointer-events:none;
}

/* カラーアクセントライン（上辺） */
.mood-card.red-accent  .mood-card__line{background:linear-gradient(90deg,#ff5a5f,#ff8c61)}
.mood-card.green-accent .mood-card__line{background:linear-gradient(90deg,#18c989,#6de5b8)}
.mood-card.yellow-accent .mood-card__line{background:linear-gradient(90deg,#ffd84d,#ffb300)}
.mood-card__line{
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  z-index:4;
}

/* ゲームフレーム風の四隅コーナー */
.mood-card::before,
.mood-card::after{
  content:"";
  position:absolute;
  width:20px;
  height:20px;
  z-index:3;
  pointer-events:none;
}
.mood-card::before{
  top:18px;
  left:18px;
  border-top:2.5px solid rgba(255,255,255,.75);
  border-left:2.5px solid rgba(255,255,255,.75);
}
.mood-card::after{
  top:18px;
  right:18px;
  border-top:2.5px solid rgba(255,255,255,.75);
  border-right:2.5px solid rgba(255,255,255,.75);
}
.mood-card__corner-bl,
.mood-card__corner-br{
  position:absolute;
  width:20px;
  height:20px;
  z-index:3;
  pointer-events:none;
  bottom:18px;
}
.mood-card__corner-bl{
  left:18px;
  border-bottom:2.5px solid rgba(255,255,255,.75);
  border-left:2.5px solid rgba(255,255,255,.75);
}
.mood-card__corner-br{
  right:18px;
  border-bottom:2.5px solid rgba(255,255,255,.75);
  border-right:2.5px solid rgba(255,255,255,.75);
}

/* カード間の区切り線 */
.mood-card + .mood-card{
  border-top:2px solid #e8e8e8;
}

/* テキストエリア */
.mood-card__body{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:16px 16px 18px;
  z-index:2;
}
/* ナンバーバッジ */
.mood-card__num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:2px 8px;
  font-size:9px;
  font-weight:900;
  color:#fff;
  margin-bottom:6px;
  letter-spacing:.14em;
  text-transform:uppercase;
  clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%);
}
.red-accent    .mood-card__num{background:#ff5a5f}
.green-accent  .mood-card__num{background:#18c989}
.yellow-accent .mood-card__num{background:#ffd84d;color:#7a5000}

/* ゲームサイト風タイトル */
.mood-card__body h3{
  font-size:20px;
  font-weight:900;
  color:#fff;
  margin-bottom:5px;
  letter-spacing:-.01em;
  line-height:1.2;
  text-shadow:0 2px 10px rgba(0,0,0,.6);
  /* 左に細いカラーボーダー */
  padding-left:10px;
  position:relative;
}
.red-accent    .mood-card__body h3::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;background:#ff5a5f}
.green-accent  .mood-card__body h3::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;background:#18c989}
.yellow-accent .mood-card__body h3::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;background:#ffd84d}

.mood-card__body p{
  font-size:12px;
  font-weight:700;
  color:#fff;
  line-height:1.6;
  text-shadow:0 1px 6px rgba(0,0,0,.7);
  padding-left:10px;
}

/* ===== PICKUP ===== */
.pickup-section{
  padding:32px 16px;
  background:#fff;
}

/* グリッド：1位大＋2・3位を横並び小 */
.pickup-grid{
  display:grid;
  gap:12px;
}

/* ── 共通カードスタイル ── */
.pickup-card{
  display:block;
  background:#fff;
  border-radius:0;
  overflow:hidden;
  border:2.5px solid #1f2a24;
  box-shadow:5px 5px 0 #1f2a24;
  transition:.15s cubic-bezier(.4,0,.2,1);
  text-decoration:none;
  color:inherit;
}
.pickup-card:active{
  transform:translate(3px,3px);
  box-shadow:2px 2px 0 #1f2a24;
}

/* ── 1位（大）専用 ── */
.pickup-card--main .pickup-visual img{
  width:100%;
  height:auto;
  display:block;
}

/* ── 2・3位（小）横並びラッパー ── */
.pickup-sub-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

/* 小カード：画像を固定高さでトリミング */
.pickup-card--sub .pickup-visual img{
  width:100%;
  height:130px;
  object-fit:cover;
  object-position:center top;
  display:block;
}

/* ── ビジュアル共通 ── */
.pickup-visual{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#f5f5f5;
}

/* カラーアクセントバー */
.pickup-card--main .pickup-visual::before{background:#ff5a5f}
.pickup-sub-row .pickup-card:nth-child(1) .pickup-visual::before{background:#ffd84d}
.pickup-sub-row .pickup-card:nth-child(2) .pickup-visual::before{background:#18c989}
.pickup-visual::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  z-index:2;
}

/* バッジ */
.pickup-badge{
  position:absolute;
  top:8px;
  left:8px;
  z-index:3;
  background:#ff5a5f;
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
  padding:4px 9px;
  border:2px solid #1f2a24;
  border-radius:0;
  box-shadow:2px 2px 0 #1f2a24;
  line-height:1;
}
.pickup-sub-row .pickup-card:nth-child(1) .pickup-badge{background:#ffd84d;color:#1f2a24}
.pickup-sub-row .pickup-card:nth-child(2) .pickup-badge{background:#18c989}

/* ── テキストエリア共通 ── */
.pickup-body{
  padding:12px 14px 14px;
  border-top:2.5px solid #1f2a24;
}
.pickup-card--sub .pickup-body{
  padding:8px 10px 10px;
}

/* タグ */
.pickup-tags{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-bottom:6px;
}
.tag{
  display:inline-block;
  padding:3px 8px;
  border-radius:0;
  font-size:10px;
  font-weight:900;
  border:1.5px solid currentColor;
  line-height:1.4;
}
.tag-red{color:#ff5a5f;background:#fff0f0}
.tag-green{color:#18a96a;background:#e8faf2}
.tag-yellow{color:#b07800;background:#fff9e0}
.tag-blue{color:#2f7fd4;background:#e8f3ff}
.tag-dark{color:#1f2a24;background:#f0f0f0}

/* タイトル */
.pickup-body h3{
  font-size:17px;
  font-weight:900;
  line-height:1.25;
  margin-bottom:4px;
  color:#1f2a24;
  letter-spacing:-.02em;
}
.pickup-card--sub .pickup-body h3{
  font-size:13px;
  margin-bottom:3px;
}

/* コピー */
.pickup-body p{
  font-size:12px;
  color:#666;
  line-height:1.55;
  margin-bottom:12px;
}
.pickup-card--sub .pickup-body p{
  font-size:10px;
  margin-bottom:8px;
  line-height:1.5;
}

/* 遊ぶボタン */
.play-btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:9px 20px;
  border-radius:0;
  background:#ff5a5f;
  color:#fff;
  font-size:13px;
  font-weight:900;
  border:2px solid #1f2a24;
  box-shadow:3px 3px 0 #1f2a24;
  letter-spacing:.02em;
  transition:.15s;
}
.play-btn:active{
  transform:translate(2px,2px);
  box-shadow:1px 1px 0 #1f2a24;
}
.pickup-card--sub .play-btn{
  font-size:11px;
  padding:7px 12px;
  box-shadow:2px 2px 0 #1f2a24;
  width:100%;
  justify-content:center;
}

/* ===== RANKING ===== */
.rank-section{
  padding:32px 16px;
  background-color:#ff5a5f;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.12) 1.5px, transparent 1.5px),
    radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size:24px 24px, 12px 12px;
  background-position:0 0, 6px 6px;
}
.rank-section .mood-heading-label{color:#fff;opacity:.85}
.rank-section .mood-heading-line{background:linear-gradient(90deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,0) 100%)}
.rank-section .mood-title{color:#fff}
.rank-section .mood-title-deco span:nth-child(1){background:#fff}
.rank-section .mood-title-deco span:nth-child(2){background:rgba(255,255,255,.6)}
.rank-section .mood-title-deco span:nth-child(3){background:rgba(255,255,255,.4)}

/* リスト全体 — PICKUPと同じ太アウトライン＋フラットシャドウ */
.rank-list{
  display:grid;
  gap:12px;
}

/* 各行カード */
.rank-item{
  display:grid;
  grid-template-columns:56px 88px 1fr;
  align-items:center;
  gap:0;
  background:#fff;
  border:2.5px solid #1f2a24;
  box-shadow:5px 5px 0 #1f2a24;
  text-decoration:none;
  color:inherit;
  transition:.15s cubic-bezier(.4,0,.2,1);
  min-height:88px;
  overflow:hidden;
}
.rank-item:active{
  transform:translate(3px,3px);
  box-shadow:2px 2px 0 #1f2a24;
}

/* 1〜3位：左辺にカラーアクセントライン */
.rank-item:nth-child(1){border-left:5px solid #ff5a5f}
.rank-item:nth-child(2){border-left:5px solid #ffd84d}
.rank-item:nth-child(3){border-left:5px solid #18c989}

/* 順位番号エリア */
.rank-no-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  min-height:88px;
  border-right:2px solid #e8e8e8;
  flex-shrink:0;
}
.rank-no{
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:20px;
  color:#1f2a24;
  background:none;
}
/* 1〜3位は色付きバッジ */
.rank-item:nth-child(1) .rank-no{
  color:#fff;
  background:#ff5a5f;
  box-shadow:2px 2px 0 #1f2a24;
}
.rank-item:nth-child(2) .rank-no{
  color:#7a5000;
  background:#ffd84d;
  box-shadow:2px 2px 0 #1f2a24;
}
.rank-item:nth-child(3) .rank-no{
  color:#fff;
  background:#18c989;
  box-shadow:2px 2px 0 #1f2a24;
}

/* サムネイルエリア */
.rank-thumb-wrap{
  width:88px;
  height:88px;
  overflow:hidden;
  border-right:2px solid #e8e8e8;
  flex-shrink:0;
  background:#f5f5f5;
  display:flex;
  align-items:center;
  justify-content:center;
}
.rank-thumb-wrap img{
  width:88px;
  height:88px;
  object-fit:cover;
  display:block;
}

/* テキストエリア */
.rank-copy{
  padding:0 14px;
  min-width:0;
}
.rank-copy h3{
  font-size:15px;
  font-weight:900;
  margin-bottom:4px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#1f2a24;
}
.rank-copy p{
  font-size:12px;
  color:#999;
  line-height:1.5;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ジャンルタグ — PICKUPのtagと同スタイル */
.rank-pill{
  padding:5px 9px;
  border-radius:0;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
  margin-right:12px;
  border:1.5px solid currentColor;
  letter-spacing:.04em;
  color:#666;
  background:#f5f5f5;
}
.rank-item:nth-child(1) .rank-pill{color:#ff5a5f;background:#fff0f0}
.rank-item:nth-child(2) .rank-pill{color:#b07800;background:#fff9e0}
.rank-item:nth-child(3) .rank-pill{color:#18a96a;background:#e8faf2}

/* ===== CATEGORY SECTION ===== */
.cat-section{
  padding:32px 16px;
  background:#fff;
}

/* カテゴリブロック */
.cat-block{
  margin-bottom:28px;
}
.cat-block:last-child{margin-bottom:0}

/* カテゴリヘッダー行 */
.cat-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
  padding-bottom:8px;
  border-bottom:2.5px solid #1f2a24;
}
.cat-header-left{
  display:flex;
  align-items:center;
  gap:8px;
}
.cat-icon{
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  border:2px solid #1f2a24;
  flex-shrink:0;
}
.cat-name{
  font-size:16px;
  font-weight:900;
  letter-spacing:.02em;
  color:#1f2a24;
}
/* もっと見るリンク */
.cat-more{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:5px 12px;
  font-size:11px;
  font-weight:900;
  color:#ff5a5f;
  border:2px solid #ff5a5f;
  background:#fff;
  text-decoration:none;
  transition:.15s;
  white-space:nowrap;
  box-shadow:2px 2px 0 #ff5a5f;
}
.cat-more:active{
  transform:translate(2px,2px);
  box-shadow:none;
}

/* ゲームグリッド 3列 */
.game-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.game-item{
  display:block;
  background:#fff;
  border:2.5px solid #1f2a24;
  box-shadow:3px 3px 0 #1f2a24;
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  transition:.15s cubic-bezier(.4,0,.2,1);
}
.game-item:active{
  transform:translate(2px,2px);
  box-shadow:1px 1px 0 #1f2a24;
}
.game-item-thumb{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  display:block;
}
.game-item-thumb-placeholder{
  width:100%;
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
}
.game-item-body{
  padding:6px 8px 8px;
  border-top:2px solid #1f2a24;
}
.game-item-body h3{
  font-size:11px;
  font-weight:900;
  line-height:1.3;
  color:#1f2a24;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ===== EASY ===== */
.easy-section{
  padding:32px 16px;
  background-color:#ff5a5f;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.12) 1.5px, transparent 1.5px),
    radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size:24px 24px, 12px 12px;
  background-position:0 0, 6px 6px;
  position:relative;
}
.easy-section .mood-heading-label{color:#fff;opacity:.85}
.easy-section .mood-heading-line{background:linear-gradient(90deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,0) 100%)}
.easy-section .mood-title{color:#fff}
.easy-section .mood-title-deco span:nth-child(1){background:#fff}
.easy-section .mood-title-deco span:nth-child(2){background:rgba(255,255,255,.6)}
.easy-section .mood-title-deco span:nth-child(3){background:rgba(255,255,255,.4)}

/* 3カード縦積み */
.easy-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

/* カード：太アウトライン＋フラットシャドウで統一 */
.easy-card{
  background:#fff;
  border:2.5px solid #1f2a24;
  box-shadow:4px 4px 0 #1f2a24;
  padding:16px 18px;
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:52px 1fr;
  align-items:center;
  gap:14px;
  text-align:left;
}
/* カード左辺カラーライン */
.easy-card:nth-child(1){border-left:5px solid #ffd84d}
.easy-card:nth-child(2){border-left:5px solid #18c989}
.easy-card:nth-child(3){border-left:5px solid #6bbcff}

/* アイコン枠 */
.easy-icon-wrap{
  width:52px;
  height:52px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  border:2px solid rgba(0,0,0,.15);
  position:relative;
  z-index:1;
  background:rgba(255,255,255,.9);
}

/* h3とpをまとめて右カラムに収める */
.easy-card-text{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.easy-card h3{
  font-size:14px;
  font-weight:900;
  color:#1f2a24;
  line-height:1.4;
  margin:0;
  position:relative;
  z-index:1;
}
.easy-card p{
  font-size:11px;
  color:#666;
  line-height:1.5;
  position:relative;
  z-index:1;
  margin:0;
}

/* キャリアバッジ行 */
.easy-carriers{
  display:flex;
  gap:6px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:20px;
  padding-top:16px;
  border-top:2px solid #f0f0f0;
}
.easy-carrier{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 12px;
  font-size:11px;
  font-weight:900;
  color:#1f2a24;
  border:2px solid #1f2a24;
  box-shadow:2px 2px 0 #1f2a24;
  background:#fff;
  letter-spacing:.03em;
}
.easy-carrier-note{
  font-size:10px;
  color:#999;
  text-align:center;
  margin-top:8px;
  line-height:1.5;
}

/* ===== HOW TO PLAY ===== */
.howto-section{
  padding:32px 16px;
  background:#fff;
}
.howto-steps{
  display:grid;
  gap:0;
  position:relative;
}
/* ステップ間の矢印ライン */
.howto-steps::before{
  content:"";
  position:absolute;
  left:27px;
  top:52px;
  bottom:52px;
  width:2px;
  background:repeating-linear-gradient(
    to bottom,
    #ff5a5f 0px, #ff5a5f 6px,
    transparent 6px, transparent 12px
  );
  z-index:0;
}
.howto-step{
  display:grid;
  grid-template-columns:56px 1fr;
  align-items:center;
  gap:14px;
  padding:14px 0;
  position:relative;
  z-index:1;
}
.howto-step + .howto-step{
  border-top:1px dashed #f0f0f0;
}
/* 番号バッジ */
.howto-num{
  width:56px;
  height:56px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:2.5px solid #1f2a24;
  box-shadow:3px 3px 0 #1f2a24;
  flex-shrink:0;
  position:relative;
  z-index:2;
}
.howto-num-label{
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
  color:#ff5a5f;
  line-height:1;
  margin-bottom:2px;
}
.howto-num-no{
  font-size:22px;
  font-weight:900;
  color:#1f2a24;
  line-height:1;
}
/* 1〜3でアクセントカラー変化 */
.howto-step:nth-child(1) .howto-num{border-color:#ff5a5f;box-shadow:3px 3px 0 #ff5a5f}
.howto-step:nth-child(1) .howto-num-no{color:#ff5a5f}
.howto-step:nth-child(2) .howto-num{border-color:#18c989;box-shadow:3px 3px 0 #18c989}
.howto-step:nth-child(2) .howto-num-no{color:#18c989}
.howto-step:nth-child(2) .howto-num-label{color:#18c989}
.howto-step:nth-child(3) .howto-num{border-color:#ffd84d;box-shadow:3px 3px 0 #ffd84d}
.howto-step:nth-child(3) .howto-num-no{color:#ffd84d}
.howto-step:nth-child(3) .howto-num-label{color:#ffd84d}

.howto-body h3{
  font-size:17px;
  font-weight:900;
  color:#1f2a24;
  margin-bottom:3px;
  letter-spacing:-.01em;
}
.howto-body p{
  font-size:12px;
  color:#888;
  line-height:1.55;
  margin:0;
}

/* ===== CTA ===== */
/* ---- キーフレーム ---- */
@keyframes cta-pulse{
  0%,100%{box-shadow:7px 7px 0 #1f2a24,0 0 0 0 rgba(255,90,95,.5)}
  50%{box-shadow:7px 7px 0 #1f2a24,0 0 0 12px rgba(255,90,95,0)}
}
@keyframes cta-btn-pulse{
  0%,100%{box-shadow:4px 4px 0 #1f2a24,0 0 0 0 rgba(255,255,255,.7)}
  55%{box-shadow:4px 4px 0 #1f2a24,0 0 0 14px rgba(255,255,255,0)}
}
@keyframes cta-btn-arrow{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(6px)}
}
.cta-btn-arrow{
  display:inline-block;
  animation:cta-btn-arrow .7s ease-in-out infinite;
}
@keyframes eyebrow-blink{
  0%,90%,100%{opacity:1}
  95%{opacity:.3}
}
@keyframes badge-pop{
  0%{transform:scale(1)}
  40%{transform:scale(1.12)}
  70%{transform:scale(.96)}
  100%{transform:scale(1)}
}
@keyframes cta-img-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}
/* スクロールで出現 */
@keyframes fade-up{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
.cta-animate{
  opacity:0;
}
.cta-animate.is-visible{
  animation:fade-up .55s cubic-bezier(.4,0,.2,1) forwards;
}
.cta-animate:nth-child(2){animation-delay:.1s}
.cta-animate:nth-child(3){animation-delay:.2s}
.cta-animate:nth-child(4){animation-delay:.3s}

.cta-section{
  padding:0 16px 40px;
  background:#fff;
}

/* 外枠：パルスグロー */
.cta-box{
  position:relative;
  overflow:hidden;
  border:3px solid #1f2a24;
  box-shadow:7px 7px 0 #1f2a24;
  background:#ff5a5f;
  animation:cta-pulse 2.4s ease-in-out infinite;
}

/* 挿絵：ふわふわ浮遊 */
.cta-img{
  width:100%;
  display:block;
  height:auto;
  border-bottom:3px solid #1f2a24;
  animation:cta-img-float 3.5s ease-in-out infinite;
}

.cta-body{
  padding:24px 20px 28px;
  position:relative;
  z-index:1;
  text-align:center;
}

/* eyebrow：点滅 */
.cta-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 12px;
  background:#1f2a24;
  color:#ffd84d;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  margin-bottom:12px;
  animation:eyebrow-blink 2s ease-in-out infinite;
}

.cta-box h2{
  font-size:26px;
  font-weight:900;
  color:#fff;
  line-height:1.25;
  margin-bottom:6px;
  letter-spacing:-.02em;
  text-shadow:3px 3px 0 rgba(0,0,0,.2);
}

/* バッジ：時差ポップ */
.cta-badges{
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:nowrap;
  margin:12px 0 20px;
}
/* バッジ：斜めカットのゲームフレーム */
.cta-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:8px 0;
  flex:1;
  font-size:11px;
  font-weight:900;
  color:#fff;
  text-decoration:none;
  letter-spacing:.03em;
  white-space:nowrap;
  clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
}
.cta-badge:nth-child(1){
  background:#18c989;
  animation:badge-pop 2.2s ease-in-out .0s infinite;
}
.cta-badge:nth-child(2){
  background:#1f2a24;
  animation:badge-pop 2.2s ease-in-out .3s infinite;
}
.cta-badge:nth-child(3){
  background:#ffd84d;
  color:#1f2a24;
  animation:badge-pop 2.2s ease-in-out .6s infinite;
}

/* ボタン：パルスグロー */
.cta-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:16px 0;
  width:100%;
  background:#fff;
  color:#ff5a5f;
  font-weight:900;
  font-size:17px;
  border:2.5px solid #1f2a24;
  box-shadow:4px 4px 0 #1f2a24;
  letter-spacing:.02em;
  text-decoration:none;
  transition:.15s;
  animation:cta-btn-pulse 1.8s ease-in-out infinite;
}
.cta-btn:active{
  transform:translate(3px,3px);
  box-shadow:1px 1px 0 #1f2a24;
}

/* ===== BATTLE SECTION ===== */
.battle-section{
  padding:32px 16px 36px;
  background:#0d0d1a;
  position:relative;
  overflow:hidden;
}
.battle-section::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:radial-gradient(circle,rgba(255,90,95,.15) 1.5px,transparent 1.5px);
  background-size:18px 18px;
  pointer-events:none;
}
/* 見出し（白文字版） */
.battle-section .mood-heading{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.battle-section .mood-heading-label{font-size:11px;font-weight:900;letter-spacing:.12em;color:rgba(255,255,255,.5);text-transform:uppercase;white-space:nowrap;}
.battle-section .mood-heading-line{flex:1;height:2px;background:rgba(255,255,255,.12);}
.battle-section .mood-title{font-size:22px;font-weight:900;color:#fff;line-height:1.3;letter-spacing:-.01em;margin-bottom:4px;}
.battle-section .mood-title-deco{display:flex;gap:5px;margin-bottom:20px;}
.battle-section .mood-title-deco span{width:8px;height:8px;border-radius:50%;}
.battle-section .mood-title-deco span:nth-child(1){background:#ff5a5f;}
.battle-section .mood-title-deco span:nth-child(2){background:#ffd84d;}
.battle-section .mood-title-deco span:nth-child(3){background:#18c989;}

/* ===== アリーナ共通 ===== */
.battle-arena{
  position:relative;
  background:#12122a;
  border:2.5px solid rgba(255,255,255,.12);
  box-shadow:6px 6px 0 rgba(255,90,95,.5);
  overflow:hidden;
  min-height:420px;
}

/* ===== 画面切り替え共通 ===== */
.battle-screen{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:24px 20px;
  gap:16px;
  transition:opacity .35s ease, transform .35s ease;
}
.battle-screen.hidden{
  opacity:0;
  pointer-events:none;
  transform:scale(.95);
}
.battle-screen.visible{
  opacity:1;
  pointer-events:auto;
  transform:scale(1);
}

/* ===== START画面 ===== */
#bsStart{
  text-align:center;
  background:radial-gradient(ellipse at 50% 60%, rgba(255,90,95,.18) 0%, transparent 70%);
}
.bs-start-monster{
  font-size:90px;
  line-height:1;
  animation:start-float 2.4s ease-in-out infinite;
  filter:drop-shadow(0 8px 24px rgba(255,90,95,.5));
}
@keyframes start-float{
  0%,100%{transform:translateY(0) rotate(-3deg);}
  50%{transform:translateY(-12px) rotate(3deg);}
}
.bs-start-title{
  font-size:20px;
  font-weight:900;
  color:#fff;
  letter-spacing:.04em;
  text-shadow:0 2px 12px rgba(255,90,95,.6);
}
.bs-start-sub{
  font-size:12px;
  color:rgba(255,255,255,.55);
  letter-spacing:.06em;
  line-height:1.6;
}
.bs-start-btn{
  width:100%;
  padding:18px 0;
  background:#ff5a5f;
  color:#fff;
  font-size:22px;
  font-weight:900;
  border:3px solid #fff;
  box-shadow:0 0 0 3px #ff5a5f, 6px 6px 0 #1f2a24;
  letter-spacing:.06em;
  cursor:pointer;
  border-radius:0;
  -webkit-tap-highlight-color:transparent;
  animation:start-btn-pulse 1.6s ease-in-out infinite;
  transition:.1s;
}
.bs-start-btn:active{transform:translate(4px,4px);box-shadow:0 0 0 3px #ff5a5f,2px 2px 0 #1f2a24;}
@keyframes start-btn-pulse{
  0%,100%{box-shadow:0 0 0 3px #ff5a5f,6px 6px 0 #1f2a24,0 0 0 0 rgba(255,90,95,0);}
  50%{box-shadow:0 0 0 3px #ff5a5f,6px 6px 0 #1f2a24,0 0 20px 8px rgba(255,90,95,.35);}
}
.bs-monster-hp-preview{
  font-size:11px;
  color:rgba(255,255,255,.4);
  letter-spacing:.05em;
}

/* ===== BATTLE画面 ===== */
#bsBattle{
  justify-content:flex-start;
  padding:16px 16px 20px;
  gap:10px;
}

/* HPバー */
.battle-hp-wrap{width:100%;}
.battle-hp-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.battle-hp-name{font-size:13px;font-weight:900;color:#ff5a5f;letter-spacing:.05em;}
.battle-hp-val{font-size:12px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;}
.battle-hp-bar{
  width:100%;height:16px;
  background:rgba(255,255,255,.08);
  border:2px solid rgba(255,255,255,.18);
  overflow:hidden;position:relative;
}
.battle-hp-fill{
  height:100%;
  background:linear-gradient(90deg,#ff5a5f,#ff8c61);
  transition:width .2s ease;
  position:relative;
}
.battle-hp-fill::after{
  content:'';position:absolute;
  top:2px;left:6px;right:6px;height:3px;
  background:rgba(255,255,255,.3);border-radius:2px;
}

/* モンスターエリア */
.battle-stage{
  width:100%;
  height:180px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
/* 背景エフェクト */
.battle-stage-bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 60%, rgba(255,90,95,.12) 0%, transparent 65%);
  pointer-events:none;
}
.battle-monster{
  width:120px;height:120px;
  border-radius:50%;
  border:3px solid rgba(255,255,255,.15);
  background:#1a1a2e;
  display:flex;align-items:center;justify-content:center;
  font-size:64px;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 4px 16px rgba(255,90,95,.4));
  transition:transform .06s;
}
.battle-monster.hit{animation:mon-hit .18s ease;}
.battle-monster.critical{animation:mon-critical .3s ease;}
.battle-monster.danger-pulse{animation:mon-danger .5s ease-in-out infinite;}
.battle-monster.dead{animation:mon-dead .55s ease forwards;}
@keyframes mon-hit{
  0%{transform:translate(0,0) scale(1);}
  30%{transform:translate(-8px,4px) scale(.93) rotate(-5deg);}
  60%{transform:translate(6px,-3px) scale(.96) rotate(3deg);}
  100%{transform:translate(0,0) scale(1);}
}
@keyframes mon-critical{
  0%{transform:scale(1) rotate(0);filter:drop-shadow(0 4px 16px rgba(255,90,95,.4));}
  20%{transform:scale(1.18) rotate(-8deg);filter:drop-shadow(0 0 30px rgba(255,220,0,1));}
  40%{transform:scale(.88) rotate(6deg);filter:drop-shadow(0 0 20px rgba(255,90,95,.8));}
  70%{transform:scale(1.06) rotate(-3deg);}
  100%{transform:scale(1) rotate(0);filter:drop-shadow(0 4px 16px rgba(255,90,95,.4));}
}
@keyframes mon-danger{
  0%,100%{filter:drop-shadow(0 4px 16px rgba(255,90,95,.4));}
  50%{filter:drop-shadow(0 0 24px rgba(255,50,50,1)) brightness(1.3);}
}
@keyframes mon-dead{
  0%{transform:scale(1) rotate(0);opacity:1;}
  25%{transform:scale(1.25) rotate(-12deg);opacity:.9;}
  60%{transform:scale(.5) rotate(25deg);opacity:.5;}
  100%{transform:scale(0) rotate(40deg);opacity:0;}
}

/* ダメージ数字 */
.battle-dmg{
  position:absolute;
  font-weight:900;
  pointer-events:none;
  z-index:10;
  text-shadow:0 2px 8px rgba(0,0,0,.8);
  white-space:nowrap;
  animation:dmg-up .75s ease forwards;
}
.battle-dmg.normal{font-size:24px;color:#fff;}
.battle-dmg.critical{font-size:34px;color:#ffd84d;animation:dmg-critical .75s ease forwards;}
@keyframes dmg-up{
  0%{opacity:1;transform:translateY(0) scale(1);}
  20%{transform:translateY(-10px) scale(1.1);}
  100%{opacity:0;transform:translateY(-55px) scale(.8);}
}
@keyframes dmg-critical{
  0%{opacity:1;transform:translateY(0) scale(1.4) rotate(-5deg);}
  20%{transform:translateY(-14px) scale(1.6) rotate(3deg);}
  100%{opacity:0;transform:translateY(-65px) scale(.9) rotate(0);}
}

/* CRITICAL テキスト */
.battle-critical-text{
  position:absolute;
  top:10px;left:50%;
  transform:translateX(-50%);
  font-size:18px;font-weight:900;
  color:#ffd84d;
  letter-spacing:.1em;
  text-shadow:0 0 16px rgba(255,220,0,.8),0 2px 4px rgba(0,0,0,.8);
  pointer-events:none;
  z-index:11;
  animation:crit-text .7s ease forwards;
}
@keyframes crit-text{
  0%{opacity:0;transform:translateX(-50%) scale(.5);}
  30%{opacity:1;transform:translateX(-50%) scale(1.2);}
  70%{opacity:1;transform:translateX(-50%) scale(1);}
  100%{opacity:0;transform:translateX(-50%) scale(.9) translateY(-20px);}
}

/* ヒットフラッシュ */
.battle-flash{
  position:absolute;inset:0;
  pointer-events:none;z-index:9;
  border-radius:0;
  opacity:0;
}
.battle-flash.hit-flash{animation:hit-flash .2s ease;}
.battle-flash.crit-flash{animation:crit-flash .3s ease;}
@keyframes hit-flash{
  0%{opacity:.35;background:#fff;}
  100%{opacity:0;}
}
@keyframes crit-flash{
  0%{opacity:.6;background:#ffd84d;}
  50%{opacity:.3;background:#ff5a5f;}
  100%{opacity:0;}
}

/* パーティクル */
.battle-particle{
  position:absolute;
  border-radius:50%;
  pointer-events:none;z-index:8;
  animation:particle-burst .65s ease forwards;
  transform-origin:center;
}
@keyframes particle-burst{
  0%{opacity:1;transform:translate(0,0) scale(1);}
  100%{opacity:0;transform:translate(var(--px,40px),var(--py,-40px)) scale(0);}
}

/* コンボ */
.battle-combo-wrap{
  min-height:28px;
  display:flex;align-items:center;justify-content:center;
  width:100%;
}
.battle-combo{
  font-size:14px;font-weight:900;
  color:#ffd84d;letter-spacing:.06em;
  transition:.15s;
}
.battle-combo.lv1{font-size:14px;color:#fff;}
.battle-combo.lv2{font-size:16px;color:#18c989;animation:combo-pop .25s ease;}
.battle-combo.lv3{font-size:20px;color:#ffd84d;animation:combo-pop .25s ease;}
.battle-combo.lv4{font-size:24px;color:#ff5a5f;animation:combo-pop .25s ease;text-shadow:0 0 12px rgba(255,90,95,.7);}
@keyframes combo-pop{
  0%{transform:scale(1.5);}
  100%{transform:scale(1);}
}

/* 連打ボタン */
.battle-btn{
  width:100%;padding:18px 0;
  background:#ff5a5f;color:#fff;
  font-size:22px;font-weight:900;
  border:2.5px solid #fff;
  box-shadow:0 0 0 2.5px #ff5a5f, 5px 5px 0 #1f2a24;
  letter-spacing:.05em;
  cursor:pointer;
  user-select:none;-webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
  border-radius:0;
  transition:.08s;
  position:relative;
  overflow:hidden;
}
.battle-btn::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,transparent 60%);
  pointer-events:none;
}
.battle-btn:active{
  transform:translate(4px,4px);
  box-shadow:0 0 0 2.5px #ff5a5f,1px 1px 0 #1f2a24;
}
.battle-btn:disabled{
  background:#444;color:#888;
  box-shadow:none;transform:none;border-color:#555;
}

/* ===== RESULT画面 ===== */
#bsResult{
  justify-content:flex-start;
  padding:20px 16px 24px;
  gap:14px;
  background:radial-gradient(ellipse at 50% 0%, rgba(255,220,0,.12) 0%, transparent 60%);
}
.bs-result-fanfare{
  font-size:13px;font-weight:900;
  color:#ffd84d;letter-spacing:.1em;
  text-align:center;
  animation:fanfare-in .5s ease;
}
@keyframes fanfare-in{
  0%{opacity:0;transform:scale(.6);}
  60%{transform:scale(1.1);}
  100%{opacity:1;transform:scale(1);}
}
.bs-result-stars{
  display:flex;gap:6px;justify-content:center;
  animation:stars-in .6s ease .1s both;
}
@keyframes stars-in{
  0%{opacity:0;transform:translateY(10px);}
  100%{opacity:1;transform:translateY(0);}
}
.bs-result-star{
  font-size:22px;
  animation:star-spin .5s ease forwards;
}
.bs-result-star:nth-child(2){animation-delay:.1s;}
.bs-result-star:nth-child(3){animation-delay:.2s;}
@keyframes star-spin{
  0%{opacity:0;transform:scale(0) rotate(-180deg);}
  100%{opacity:1;transform:scale(1) rotate(0);}
}
.bs-result-card{
  width:100%;
  background:#fff;
  border:2.5px solid #1f2a24;
  box-shadow:6px 6px 0 rgba(255,90,95,.6);
  display:flex;align-items:stretch;
  overflow:hidden;
  text-decoration:none;color:#1f2a24;
  transition:.1s;
  animation:card-in .45s ease .15s both;
  min-height:100px;
  max-height:120px;
}
@keyframes card-in{
  0%{opacity:0;transform:translateY(20px) scale(.95);}
  100%{opacity:1;transform:translateY(0) scale(1);}
}
.bs-result-card:active{transform:translate(4px,4px);box-shadow:2px 2px 0 rgba(255,90,95,.6);}
.bs-result-thumb{width:100px;height:100%;min-height:100px;flex-shrink:0;overflow:hidden;}
.bs-result-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.bs-result-body{flex:1;min-width:0;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:5px;overflow:hidden;}
.bs-result-badge{
  display:inline-block;background:#ff5a5f;color:#fff;
  font-size:10px;font-weight:900;padding:3px 10px;
  letter-spacing:.06em;align-self:flex-start;
  white-space:nowrap;
}
.bs-result-name{
  font-size:15px;font-weight:900;line-height:1.3;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.bs-result-desc{
  font-size:11px;color:#666;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.bs-result-play{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 0;width:100%;
  background:#ff5a5f;color:#fff;
  font-size:16px;font-weight:900;
  border:2.5px solid #1f2a24;
  box-shadow:5px 5px 0 #1f2a24;
  letter-spacing:.04em;
  text-decoration:none;
  transition:.1s;
  animation:play-btn-in .4s ease .3s both;
}
@keyframes play-btn-in{
  0%{opacity:0;transform:scale(.9);}
  100%{opacity:1;transform:scale(1);}
}
.bs-result-play:active{transform:translate(4px,4px);box-shadow:1px 1px 0 #1f2a24;}
.bs-result-retry{
  background:transparent;
  border:2px solid rgba(255,255,255,.3);
  color:rgba(255,255,255,.65);
  font-size:13px;font-weight:700;
  padding:10px 24px;
  cursor:pointer;letter-spacing:.05em;
  transition:.15s;border-radius:0;
  animation:play-btn-in .4s ease .45s both;
}
.bs-result-retry:active{border-color:rgba(255,255,255,.7);color:#fff;}

/* ===== FOOTER ===== */

/* ===== STICKY CTA BUTTON ===== */
.sticky-cta{
  position:fixed;
  bottom:20px;
  left:50%;
  transform:translateX(-50%) translateY(80px);
  z-index:90;
  width:calc(100% - 32px);
  max-width:398px;
  opacity:0;
  pointer-events:none;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), opacity .3s ease;
}
.sticky-cta.show{
  transform:translateX(-50%) translateY(0);
  opacity:1;
  pointer-events:auto;
}
.sticky-cta-inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 20px;
  background:#ff5a5f;
  color:#fff;
  font-size:16px;
  font-weight:900;
  letter-spacing:.04em;
  border:2.5px solid #1f2a24;
  box-shadow:4px 4px 0 #1f2a24, 0 8px 24px rgba(255,90,95,.45);
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  transition:.1s;
}
.sticky-cta-inner:active{
  transform:translate(3px,3px);
  box-shadow:1px 1px 0 #1f2a24;
}
.sticky-cta-arrow{
  font-size:13px;
  animation:sticky-arrow .8s ease-in-out infinite;
}
@keyframes sticky-arrow{
  0%,100%{transform:translateX(0);}
  50%{transform:translateX(5px);}
}

/* ===== LP FOOTER（既存クラスと完全に独立） ===== */
.lp-footer{
  background:#1a1a2e;
  padding:0 0 24px;
  font-family:inherit;
}
.lp-footer__list{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  display:block !important;
  flex-flow:unset !important;
  flex-wrap:unset !important;
  justify-content:unset !important;
  border-top:2px solid rgba(255,255,255,.08);
}
.lp-footer__item{
  display:block !important;
  border-bottom:1px solid rgba(255,255,255,.07);
  width:100% !important;
}
.lp-footer__link{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  padding:13px 20px !important;
  font-size:13px !important;
  font-weight:700 !important;
  color:rgba(255,255,255,.8) !important;
  text-decoration:none !important;
  letter-spacing:.02em;
  transition:.15s;
  -webkit-tap-highlight-color:transparent;
}
.lp-footer__link::after{
  content:'>';
  font-size:14px;
  color:rgba(255,255,255,.3);
  flex-shrink:0;
}
.lp-footer__link:active{
  background:rgba(255,255,255,.06);
  color:#fff !important;
}
.lp-footer__copy{
  text-align:center;
  padding:20px 16px 8px;
  font-size:11px;
  color:rgba(255,255,255,.3);
  letter-spacing:.05em;
}

/* ===== BG COLORS for placeholders ===== */
.bg-green{background:linear-gradient(135deg,#cafbe4,#85e8bd)}
.bg-yellow{background:linear-gradient(135deg,#fff0aa,#ffcd58)}
.bg-pink{background:linear-gradient(135deg,#ffd2e0,#ff8cb2)}
.bg-blue{background:linear-gradient(135deg,#d7e8ff,#77b8ff)}
.bg-purple{background:linear-gradient(135deg,#ece2ff,#ab98ff)}
.bg-orange{background:linear-gradient(135deg,#ffe4c4,#ffb366)}