/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TOKENS — Fresh Rose × Soft Dark ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
:root {
  --void:    #1e1828;   /* ソフトダークパープル（深すぎない） */
  --abyss:   #251f30;   /* ミッドパープル */
  --dark:    #2e2840;   /* ライトパープル */
  --velvet:  #3a3050;   /* ベルベットミッド */
  --crimson: #8c3060;   /* コーラルクリムゾン */
  --blood:   #b04070;   /* コーラルローズ */
  --rose:    #d0608a;   /* フレッシュローズ（メインアクセント） */
  --blush:   #e880a8;   /* ライトピンク */
  --gold:    #c8a8b0;   /* ローズシルバー */
  --gilded:  #e8c8d4;   /* ソフトピンクゴールド */
  --silver:  #b0a0b8;   /* ライラックシルバー */
  --cream:   #faf5f8;   /* クリーンホワイト */
  --white:   #ffffff;   /* ピュアホワイト */
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ RESET ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
  background: var(--void);
  color: var(--cream);
  font-family: 'Noto Serif JP', serif;
  overflow-x: hidden;
  /* 日本語テキストの折り返しを文節単位に */
  word-break: keep-all;
  overflow-wrap: break-word;
  line-break: strict;
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='4' fill='none' stroke='%23d0608a' stroke-width='1.5'/%3E%3Cline x1='10' y1='0' x2='10' y2='7' stroke='%23d0608a' stroke-width='1'/%3E%3Cline x1='10' y1='13' x2='10' y2='20' stroke='%23d0608a' stroke-width='1'/%3E%3Cline x1='0' y1='10' x2='7' y2='10' stroke='%23d0608a' stroke-width='1'/%3E%3Cline x1='13' y1='10' x2='20' y2='10' stroke='%23d0608a' stroke-width='1'/%3E%3C/svg%3E") 10 10, crosshair;
}

/* テキスト全般の折り返し設定 */
p, h1, h2, h3, h4, h5, h6, li, td, th, span, div {
  word-break: keep-all;
  overflow-wrap: break-word;
  line-break: strict;
}

/* grain overlay */
body::after {
  content:'';
  position:fixed; inset:0; z-index:9998;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23f)' opacity='1'/%3E%3C/svg%3E");
  opacity:0.035; pointer-events:none;
}

img { max-width:100%; display:block; }
a  { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { cursor:pointer; border:none; background:none; font:inherit; }


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ AGE GATE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#age-gate {
  position:fixed; inset:0; z-index:10000;
  background:var(--void);
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:2rem;
  animation: none;
}
#age-gate.hide {
  animation: gateOut 0.8s ease forwards;
}
@keyframes gateOut {
  to { opacity:0; pointer-events:none; }
}
.gate-symbol {
  font-size:3rem;
  color:var(--blood);
  animation:glowPulse 2s ease-in-out infinite;
}
@keyframes glowPulse {
  0%,100%{ text-shadow:0 0 20px rgba(176,64,112,0.4); }
  50%    { text-shadow:0 0 50px rgba(176,64,112,0.9), 0 0 100px rgba(176,64,112,0.3); }
}
.gate-title {
  font-family:'Playfair Display', serif;
  font-size:clamp(1.2rem,3vw,1.8rem);
  letter-spacing:0.2em;
  color:var(--cream);
  text-align:center;
}
.gate-sub {
  font-size:0.8rem;
  color:var(--silver);
  letter-spacing:0.25em;
  text-align:center;
}
.gate-btns {
  display:flex; gap:1.5rem; margin-top:1rem;
}
.gate-btn {
  padding:0.9rem 2.8rem;
  font-family:'Noto Serif JP',serif;
  font-size:0.85rem;
  letter-spacing:0.2em;
  border:1px solid;
  transition:all 0.3s;
}
.gate-btn-yes {
  border-color:var(--blood);
  color:var(--cream);
  background:rgba(176,64,112,0.15);
}
.gate-btn-yes:hover { background:var(--blood); }
.gate-btn-no {
  border-color:rgba(160,152,152,0.3);
  color:var(--silver);
}
.gate-btn-no:hover { border-color:var(--silver); }


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ HEADER / NAV ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
header {
  position:fixed; top:0; left:0; right:0; z-index:900;
  padding:1.4rem 3rem;
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(to bottom, rgba(3,0,10,0.96) 0%, transparent 100%);
  transition:background 0.4s;
}
header.scrolled {
  background:rgba(3,0,10,0.97);
  border-bottom:1px solid rgba(201,168,76,0.12);
}

.header-logo {
  display:flex; align-items:baseline; gap:0.6rem;
}
.logo-jp {
  font-family:'IM Fell English',serif;
  font-size:1.15rem;
  letter-spacing:0.05em;
  color:var(--gilded);
  line-height:1;
}
.logo-en {
  font-size:0.6rem;
  color:var(--silver);
  letter-spacing:0.35em;
  text-transform:uppercase;
}

/* hamburger */
.nav-toggle {
  display:none;
  width:32px; height:20px;
  flex-direction:column; justify-content:space-between;
  cursor:pointer; padding:2px 0;
}
.nav-toggle span {
  display:block; height:1px;
  background:var(--cream);
  transition:all 0.35s;
  transform-origin:center;
}
.nav-toggle.open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

nav {
  display:flex; align-items:center; gap:2.8rem;
}
nav a {
  font-family:'Cormorant',serif;
  font-size:0.78rem;
  letter-spacing:0.25em;
  text-transform:uppercase;
  color:var(--silver);
  position:relative;
  transition:color 0.3s;
}
nav a::after {
  content:'';
  position:absolute; bottom:-3px; left:0; right:0; height:1px;
  background:var(--rose);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.3s;
}
nav a:hover { color:var(--cream); }
nav a:hover::after { transform:scaleX(1); }

.nav-reserve {
  padding:0.55rem 1.6rem;
  border:1px solid var(--blood);
  color:var(--cream) !important;
  font-size:0.72rem !important;
  letter-spacing:0.25em;
  transition:background 0.3s, color 0.3s !important;
}
.nav-reserve:hover { background:var(--blood); }
.nav-reserve::after { display:none; }

/* mobile drawer */
.nav-drawer {
  display:none;
  position:fixed; top:0; right:0; bottom:0;
  width:min(320px,80vw);
  background:rgba(7,3,15,0.98);
  border-left:1px solid rgba(201,168,76,0.15);
  z-index:800;
  transform:translateX(100%);
  transition:transform 0.4s ease;
  flex-direction:column;
  padding:6rem 2.5rem 3rem;
  gap:0.5rem;
}
.nav-drawer.open {
  transform:translateX(0);
}
.nav-drawer a {
  font-family:'Noto Serif JP',serif;
  font-size:0.9rem;
  color:var(--silver);
  letter-spacing:0.15em;
  padding:0.8rem 0;
  border-bottom:1px solid rgba(201,168,76,0.08);
  display:block;
  transition:color 0.3s, padding-left 0.3s;
}
.nav-drawer a:hover { color:var(--cream); padding-left:0.5rem; }


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ HERO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#hero {
  position:relative;
  min-height:100svh;
  display:grid;
  place-items:center;
  overflow:hidden;
}

/* animated bg */
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 60% 30%, rgba(140,48,96,0.38) 0%, transparent 60%),
    radial-gradient(ellipse 50% 50% at 15% 70%, rgba(140,48,96,0.2) 0%, transparent 55%),
    radial-gradient(ellipse 30% 40% at 85% 80%, rgba(58,48,80,0.6) 0%, transparent 50%),
    var(--abyss);
  animation:bgBreath 8s ease-in-out infinite;
}
@keyframes bgBreath {
  0%,100%{ filter:brightness(1); }
  50%    { filter:brightness(1.12); }
}

/* decorative SVG lines */
.hero-lines {
  position:absolute; inset:0; pointer-events:none;
}

/* floating particles */
.particles {
  position:absolute; inset:0; overflow:hidden; pointer-events:none;
}
.particle {
  position:absolute;
  width:1px; height:1px;
  background:var(--gold);
  border-radius:50%;
  animation:float linear infinite;
  opacity:0;
}
@keyframes float {
  0%   { transform:translateY(100vh) translateX(0); opacity:0; }
  10%  { opacity:0.6; }
  90%  { opacity:0.3; }
  100% { transform:translateY(-10vh) translateX(30px); opacity:0; }
}

.hero-content {
  position:relative; z-index:2;
  text-align:center;
  padding:2rem;
  max-width:900px;
}

.hero-kicker {
  font-family:'Cormorant', serif;
  font-style:italic;
  font-size:clamp(0.9rem,2vw,1.1rem);
  letter-spacing:0.5em;
  color:var(--gold);
  margin-bottom:2.5rem;
  opacity:0;
  animation:revealUp 1s 0.3s ease forwards;
}

.hero-title {
  font-family:'IM Fell English', serif;
  font-size:clamp(3rem,10vw,8.5rem);
  line-height:0.92;
  letter-spacing:-0.01em;
  color:var(--white);
  text-shadow: 0 0 80px rgba(176,64,112,0.4), 0 4px 8px rgba(0,0,0,0.6);
  opacity:0;
  animation:revealUp 1.2s 0.5s ease forwards;
}
.hero-title em {
  font-style:italic;
  color:var(--rose);
  display:block;
  font-size:0.55em;
  letter-spacing:0.08em;
  text-shadow: 0 0 40px rgba(208,96,138,0.6);
}

.hero-ornament {
  margin:2rem auto;
  display:flex; align-items:center; justify-content:center; gap:1.5rem;
  opacity:0;
  animation:revealFade 1s 1s ease forwards;
}
.hero-ornament::before, .hero-ornament::after {
  content:'';
  width:120px; height:1px;
  background:linear-gradient(to right, transparent, var(--gold));
}
.hero-ornament::after {
  background:linear-gradient(to left, transparent, var(--gold));
}
.hero-ornament-sym {
  color:var(--blood);
  font-size:1.2rem;
}

.hero-catch {
  font-family:'Noto Serif JP', serif;
  font-weight:300;
  font-size:clamp(0.85rem,2vw,1rem);
  line-height:2.4;
  letter-spacing:0.2em;
  color:rgba(240,235,224,0.75);
  margin-bottom:3.5rem;
  opacity:0;
  animation:revealUp 1s 1.2s ease forwards;
}

.hero-ctas {
  display:flex; gap:1.5rem; justify-content:center; flex-wrap:wrap;
  opacity:0;
  animation:revealUp 1s 1.5s ease forwards;
}

.btn {
  display:inline-flex; align-items:center; gap:0.7rem;
  padding:1rem 2.5rem;
  font-family:'Noto Serif JP', serif;
  font-size:0.82rem;
  letter-spacing:0.25em;
  transition:all 0.35s;
  position:relative; overflow:hidden;
}
.btn::before {
  content:'';
  position:absolute; inset:0;
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.4s ease;
  z-index:-1;
}
.btn-primary {
  background:var(--blood);
  color:var(--cream);
  border:1px solid var(--rose);
}
.btn-primary::before { background:var(--rose); }
.btn-primary:hover { letter-spacing:0.35em; }
.btn-primary:hover::before { transform:scaleX(1); }

.btn-ghost {
  border:1px solid rgba(201,168,76,0.4);
  color:var(--gold);
}
.btn-ghost::before { background:rgba(201,168,76,0.08); }
.btn-ghost:hover { border-color:var(--gold); }
.btn-ghost:hover::before { transform:scaleX(1); }

/* scroll indicator */
.hero-scroll {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:0.8rem;
  opacity:0; animation:revealFade 1s 2s ease forwards;
}
.hero-scroll span {
  font-size:0.6rem; letter-spacing:0.4em; color:var(--silver); text-transform:uppercase;
}
.scroll-line {
  width:1px; height:60px;
  background:linear-gradient(to bottom, var(--gold), transparent);
  animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine {
  0%,100%{ transform:scaleY(1); transform-origin:top; }
  50%    { transform:scaleY(0.3); transform-origin:top; }
}

@keyframes revealUp {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes revealFade {
  from { opacity:0; }
  to   { opacity:1; }
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MARQUEE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.marquee-strip {
  background:var(--crimson);
  border-top:1px solid rgba(201,168,76,0.2);
  border-bottom:1px solid rgba(201,168,76,0.2);
  overflow:hidden;
  padding:0.8rem 0;
  white-space:nowrap;
}
.marquee-inner {
  display:inline-flex; gap:4rem;
  animation:marquee 20s linear infinite;
}
@keyframes marquee {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}
.marquee-item {
  font-family:'Cormorant', serif;
  font-size:0.75rem;
  letter-spacing:0.3em;
  text-transform:uppercase;
  color:rgba(240,235,224,0.85);
  display:flex; align-items:center; gap:1rem;
}
.marquee-item::before {
  content:'✦';
  color:var(--gilded);
  font-size:0.6rem;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ SECTIONS COMMON ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.section { padding:7rem 2rem; }
.container { max-width:1140px; margin:0 auto; }

.sec-label {
  font-family:'Cormorant', serif;
  font-style:italic;
  font-size:0.75rem;
  letter-spacing:0.5em;
  color:var(--rose);
  text-transform:uppercase;
  margin-bottom:1rem;
  display:flex; align-items:center; gap:1.2rem;
}
.sec-label::before {
  content:'';
  width:30px; height:1px;
  background:var(--rose);
}

.sec-title {
  font-family:'Playfair Display', serif;
  font-size:clamp(1.8rem,4vw,3rem);
  font-weight:700;
  color:var(--white);
  line-height:1.2;
  margin-bottom:1.5rem;
}
.sec-title em {
  font-style:italic;
  color:var(--rose);
}

.sec-rule {
  width:50px; height:1px;
  background:linear-gradient(to right, var(--gold), transparent);
  margin-bottom:3rem;
}

/* reveal on scroll */
.js-reveal {
  opacity:0; transform:translateY(40px);
  transition:opacity 0.85s ease, transform 0.85s ease;
}
.js-reveal.revealed {
  opacity:1; transform:none;
}
.js-reveal-delay-1 { transition-delay:0.15s; }
.js-reveal-delay-2 { transition-delay:0.3s; }
.js-reveal-delay-3 { transition-delay:0.45s; }
.js-reveal-delay-4 { transition-delay:0.6s; }


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CONCEPT ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#concept {
  background:
    linear-gradient(to bottom right, rgba(26,10,46,0.5) 0%, transparent 50%),
    var(--void);
  border-top:1px solid rgba(201,168,76,0.08);
}

.concept-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6rem;
  align-items:center;
}

.concept-visual {
  position:relative;
  aspect-ratio:3/4;
  max-height:560px;
}
.concept-frame {
  position:absolute; inset:0;
  border:1px solid rgba(201,168,76,0.2);
}
.concept-frame::before {
  content:'';
  position:absolute; inset:12px;
  border:1px solid rgba(176,64,112,0.3);
}
.concept-bg {
  width:100%; height:100%;
  background:
    radial-gradient(ellipse at 40% 30%, rgba(140,48,96,0.5) 0%, transparent 60%),
    var(--dark);
  display:flex; align-items:center; justify-content:center;
}
.concept-glyph {
  font-size:8rem;
  color:rgba(176,64,112,0.2);
  user-select:none;
  font-family:'IM Fell English',serif;
}
.concept-badge {
  position:absolute; bottom:-1.5rem; right:-1.5rem;
  width:90px; height:90px;
  border-radius:50%;
  background:var(--blood);
  border:2px solid var(--rose);
  display:flex; align-items:center; justify-content:center;
  flex-direction:column;
  text-align:center;
}
.badge-num {
  font-family:'Playfair Display',serif;
  font-size:1.4rem;
  color:var(--white);
  line-height:1;
}
.badge-txt {
  font-size:0.5rem;
  letter-spacing:0.15em;
  color:rgba(240,235,224,0.7);
  margin-top:2px;
}

.concept-text p {
  font-family:'Noto Serif JP',serif;
  font-weight:300;
  font-size:0.95rem;
  line-height:2.6;
  color:rgba(240,235,224,0.8);
  margin-bottom:1.5rem;
}

.concept-tags {
  display:flex; flex-wrap:wrap; gap:0.7rem;
  margin-top:2.5rem;
}
.concept-tag {
  border:1px solid rgba(176,64,112,0.4);
  color:var(--rose);
  font-size:0.68rem;
  letter-spacing:0.2em;
  padding:0.35rem 0.9rem;
  transition:all 0.3s;
}
.concept-tag:hover {
  background:rgba(176,64,112,0.15);
  border-color:var(--rose);
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FEATURES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#features {
  background:var(--abyss);
  border-top:1px solid rgba(201,168,76,0.06);
  border-bottom:1px solid rgba(201,168,76,0.06);
}

.features-header { text-align:center; margin-bottom:5rem; }

.features-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
}

.feature-card {
  background:rgba(15,10,26,0.7);
  padding:3rem 2.5rem;
  border:1px solid rgba(201,168,76,0.07);
  position:relative;
  overflow:hidden;
  transition:border-color 0.4s, background 0.4s;
}
.feature-card::before {
  content:'';
  position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(to right, transparent, var(--blood), transparent);
  transform:scaleX(0);
  transition:transform 0.5s ease;
}
.feature-card:hover {
  background:rgba(26,10,46,0.5);
  border-color:rgba(176,64,112,0.3);
}
.feature-card:hover::before { transform:scaleX(1); }

.feature-num {
  font-family:'Playfair Display',serif;
  font-size:4rem;
  color:rgba(176,64,112,0.12);
  line-height:1;
  margin-bottom:1.5rem;
  font-style:italic;
}
.feature-icon {
  font-size:1.8rem;
  color:var(--gold);
  margin-bottom:1.2rem;
  display:block;
}
.feature-title {
  font-family:'Noto Serif JP',serif;
  font-size:1rem;
  font-weight:500;
  color:var(--cream);
  margin-bottom:0.8rem;
  letter-spacing:0.1em;
}
.feature-desc {
  font-size:0.82rem;
  line-height:2.2;
  color:var(--silver);
  letter-spacing:0.05em;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CAST TEASER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#cast {
  background:linear-gradient(135deg, var(--void) 0%, var(--velvet) 100%);
}

.cast-header {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:3rem;
  flex-wrap:wrap; gap:1.5rem;
}
.cast-more {
  font-family:'Cormorant',serif;
  font-size:0.8rem;
  letter-spacing:0.3em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex; align-items:center; gap:0.6rem;
  transition:gap 0.3s;
}
.cast-more:hover { gap:1rem; }
.cast-more::after { content:'→'; }

/* tab bar */
.cast-tabs {
  display:flex; gap:0; margin-bottom:2.5rem;
  border-bottom:1px solid rgba(201,168,76,0.15);
}
.cast-tab {
  font-family:'Cormorant',serif;
  font-size:0.8rem;
  letter-spacing:0.3em;
  text-transform:uppercase;
  color:var(--silver);
  padding:0.7rem 2rem;
  cursor:pointer;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:color 0.3s, border-color 0.3s;
  background:none;
}
.cast-tab.active {
  color:var(--gold);
  border-bottom-color:var(--blood);
}
.cast-tab:hover:not(.active) { color:var(--cream); }

/* slider wrapper */
.cast-stage {
  position:relative;
  overflow:hidden;
}

/* progress bar */
.cast-progress {
  height:1px;
  background:rgba(201,168,76,0.15);
  margin-bottom:2rem;
  position:relative;
  overflow:hidden;
}
.cast-progress-fill {
  position:absolute; left:0; top:0; bottom:0;
  background:linear-gradient(to right, var(--crimson), var(--blood));
  width:0%;
  transition:width 0.1s linear;
}

/* grid */
.cast-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.5rem;
  transition:opacity 0.5s ease, transform 0.5s ease;
}
.cast-grid.fade-out {
  opacity:0; transform:translateY(10px);
}
.cast-grid.fade-in {
  opacity:1; transform:translateY(0);
}

.cast-card {
  position:relative; overflow:hidden;
  border:1px solid rgba(201,168,76,0.1);
  transition:border-color 0.4s, transform 0.4s;
  cursor:pointer;
}
.cast-card:hover {
  border-color:rgba(176,64,112,0.5);
  transform:translateY(-6px);
}
.cast-card a { display:block; }

.cast-photo {
  aspect-ratio:3/4;
  background:linear-gradient(160deg, #200010, #0a0018);
  overflow:hidden; position:relative;
}
.cast-photo img {
  width:100%; height:100%;
  object-fit:cover; object-position:top center;
  transition:transform 0.6s ease;
}
.cast-card:hover .cast-photo img { transform:scale(1.04); }
.cast-photo-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(3,0,10,0.92) 0%, transparent 50%);
}

.cast-status {
  position:absolute; top:1rem; left:1rem; z-index:2;
  font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase;
  background:var(--blood);
  color:var(--white);
  padding:0.25rem 0.7rem;
}
.cast-region {
  position:absolute; top:1rem; right:1rem; z-index:2;
  font-size:0.55rem; letter-spacing:0.15em;
  background:rgba(0,0,0,0.6);
  border:1px solid rgba(201,168,76,0.3);
  color:var(--gold);
  padding:0.2rem 0.6rem;
}

.cast-info {
  padding:1.2rem;
  background:rgba(7,3,15,0.92);
}
.cast-name {
  font-family:'Playfair Display',serif;
  font-size:1rem;
  color:var(--cream);
  margin-bottom:0.25rem;
}
.cast-meta {
  font-size:0.68rem;
  color:var(--silver);
  letter-spacing:0.12em;
  margin-bottom:0.7rem;
}
.cast-skills {
  display:flex; flex-wrap:wrap; gap:0.3rem;
}
.cast-skill {
  font-size:0.58rem;
  letter-spacing:0.1em;
  color:rgba(208,96,138,0.8);
  border:1px solid rgba(208,96,138,0.3);
  padding:0.12rem 0.45rem;
}

/* counter */
.cast-counter {
  text-align:center;
  margin-top:2rem;
  font-family:'Cormorant',serif;
  font-size:0.72rem;
  letter-spacing:0.3em;
  color:var(--silver);
}
.cast-counter strong { color:var(--gold); }


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BEGINNER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#beginner {
  background:var(--void);
  border-top:1px solid rgba(201,168,76,0.06);
}

.beginner-layout {
  display:grid;
  grid-template-columns:5fr 4fr;
  gap:5rem;
  align-items:center;
}

.beginner-steps {
  display:flex; flex-direction:column; gap:0;
}
.step-item {
  display:grid;
  grid-template-columns:60px 1fr;
  gap:0 1.5rem;
  padding-bottom:2.5rem;
  position:relative;
}
.step-item:not(:last-child)::after {
  content:'';
  position:absolute;
  left:29px; top:50px; bottom:0;
  width:1px;
  background:linear-gradient(to bottom, rgba(176,64,112,0.5), rgba(176,64,112,0.1));
}
.step-num {
  width:58px; height:58px;
  border-radius:50%;
  border:1px solid var(--blood);
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif;
  font-size:1.3rem;
  color:var(--rose);
  flex-shrink:0;
  background:rgba(176,64,112,0.05);
}
.step-body { padding-top:0.8rem; }
.step-title {
  font-family:'Noto Serif JP',serif;
  font-size:0.9rem;
  font-weight:500;
  color:var(--cream);
  margin-bottom:0.5rem;
  letter-spacing:0.1em;
}
.step-desc {
  font-size:0.8rem;
  line-height:2.2;
  color:var(--silver);
}

.beginner-aside {
  background:rgba(26,10,46,0.3);
  border:1px solid rgba(201,168,76,0.12);
  padding:3rem;
  position:relative;
}
.beginner-aside::before {
  content:'';
  position:absolute; top:-1px; left:10%; right:10%; height:2px;
  background:linear-gradient(to right, transparent, var(--gold), transparent);
}
.aside-title {
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:1.2rem;
  color:var(--gilded);
  margin-bottom:2rem;
  text-align:center;
}
.aside-list {
  display:flex; flex-direction:column; gap:1rem;
}
.aside-item {
  display:flex; gap:1rem; align-items:flex-start;
  font-size:0.82rem;
  line-height:1.9;
  color:rgba(240,235,224,0.75);
}
.aside-item::before {
  content:'✦';
  color:var(--blood);
  font-size:0.55rem;
  flex-shrink:0;
  margin-top:0.35rem;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CTA BAND ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#cta-band {
  position:relative; overflow:hidden;
  background:var(--crimson);
  padding:6rem 2rem;
  text-align:center;
}
#cta-band::before {
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(0,0,0,0.4) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 50%, rgba(0,0,0,0.3) 0%, transparent 60%);
}
#cta-band > * { position:relative; z-index:1; }

.cta-label {
  font-family:'Cormorant',serif;
  font-style:italic;
  font-size:0.9rem;
  letter-spacing:0.5em;
  color:rgba(240,235,224,0.6);
  margin-bottom:1rem;
}
.cta-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(1.8rem,4vw,3rem);
  font-weight:900;
  color:var(--white);
  margin-bottom:0.5rem;
  letter-spacing:0.05em;
}
.cta-sub {
  font-family:'Noto Serif JP',serif;
  font-weight:200;
  font-size:0.9rem;
  letter-spacing:0.25em;
  color:rgba(240,235,224,0.7);
  margin-bottom:3rem;
}
.cta-btns {
  display:flex; gap:1.5rem; justify-content:center; flex-wrap:wrap;
}
.cta-btns .btn-light {
  background:var(--white);
  color:var(--crimson);
  border:none;
  padding:1.1rem 3rem;
  font-family:'Noto Serif JP',serif;
  font-size:0.85rem;
  letter-spacing:0.25em;
  transition:all 0.3s;
}
.cta-btns .btn-light:hover { background:var(--cream); letter-spacing:0.35em; }
.cta-btns .btn-outline-w {
  border:1px solid rgba(250,248,245,0.5);
  color:var(--white);
  padding:1.1rem 3rem;
  font-family:'Noto Serif JP',serif;
  font-size:0.85rem;
  letter-spacing:0.25em;
  transition:all 0.3s;
}
.cta-btns .btn-outline-w:hover { background:rgba(250,248,245,0.1); }

.cta-line {
  display:flex; align-items:center; gap:1.5rem;
  margin:3rem auto 0;
  max-width:400px;
}
.cta-line::before, .cta-line::after {
  content:''; flex:1; height:1px;
  background:rgba(250,248,245,0.2);
}
.cta-line-text {
  font-size:0.7rem;
  letter-spacing:0.3em;
  color:rgba(240,235,224,0.5);
  white-space:nowrap;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ NEWS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#news {
  background:var(--abyss);
  padding:5rem 2rem;
  border-top:1px solid rgba(201,168,76,0.06);
}
.news-layout {
  display:grid;
  grid-template-columns:200px 1fr;
  gap:4rem;
  align-items:start;
}
.news-label-side {
  font-family:'Playfair Display',serif;
  font-size:2.5rem;
  font-style:italic;
  color:rgba(201,168,76,0.2);
  writing-mode:vertical-rl;
  text-orientation:mixed;
  letter-spacing:0.1em;
}
.news-list { display:flex; flex-direction:column; }
.news-item {
  display:grid;
  grid-template-columns:110px 1fr;
  gap:2rem;
  padding:1.5rem 0;
  border-bottom:1px solid rgba(201,168,76,0.07);
  align-items:baseline;
  transition:background 0.3s;
}
.news-item:hover { background:rgba(201,168,76,0.02); padding-left:0.5rem; }
.news-date {
  font-family:'Cormorant',serif;
  font-size:0.75rem;
  letter-spacing:0.2em;
  color:var(--silver);
}
.news-cat {
  font-size:0.58rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  background:rgba(176,64,112,0.2);
  color:var(--rose);
  padding:0.15rem 0.5rem;
  margin-right:0.8rem;
}
.news-title-text {
  font-size:0.85rem;
  letter-spacing:0.05em;
  color:rgba(240,235,224,0.8);
  line-height:1.7;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
footer {
  background:#020008;
  border-top:1px solid rgba(201,168,76,0.12);
}

.footer-top {
  padding:5rem 2rem 4rem;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:4rem;
  max-width:1140px;
  margin:0 auto;
}

.footer-brand .logo-jp { font-size:1.5rem; display:block; margin-bottom:0.4rem; }
.footer-brand p {
  font-size:0.75rem;
  color:var(--silver);
  line-height:2.2;
  letter-spacing:0.1em;
  margin-top:1.2rem;
}

.footer-nav-title {
  font-family:'Cormorant',serif;
  font-size:0.72rem;
  letter-spacing:0.4em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.5rem;
}
.footer-nav-list { display:flex; flex-direction:column; gap:0.8rem; }
.footer-nav-list a {
  font-size:0.78rem;
  color:var(--silver);
  letter-spacing:0.1em;
  transition:color 0.3s, padding-left 0.3s;
}
.footer-nav-list a:hover { color:var(--cream); padding-left:0.3rem; }

.footer-contact { display:flex; flex-direction:column; gap:1rem; }
.footer-contact-item {
  display:flex; align-items:center; gap:0.8rem;
  font-size:0.78rem;
  color:var(--silver);
  letter-spacing:0.1em;
}
.footer-contact-item .icon { color:var(--rose); font-size:1rem; width:20px; text-align:center; }

.footer-line-btn {
  display:inline-flex; align-items:center; gap:0.6rem;
  margin-top:1.5rem;
  padding:0.8rem 1.8rem;
  background:rgba(6,199,85,0.15);
  border:1px solid rgba(6,199,85,0.4);
  color:rgba(6,199,85,0.9);
  font-size:0.78rem;
  letter-spacing:0.2em;
  transition:all 0.3s;
}
.footer-line-btn:hover { background:rgba(6,199,85,0.25); }

.footer-bottom {
  border-top:1px solid rgba(201,168,76,0.06);
  padding:1.5rem 2rem;
  display:flex; justify-content:space-between; align-items:center;
  max-width:1140px; margin:0 auto;
  flex-wrap:wrap; gap:1rem;
}
.footer-copy {
  font-size:0.68rem;
  color:rgba(160,152,152,0.5);
  letter-spacing:0.15em;
}
.footer-legal {
  display:flex; gap:2rem;
}
.footer-legal a {
  font-size:0.68rem;
  color:rgba(160,152,152,0.4);
  letter-spacing:0.1em;
  transition:color 0.3s;
}
.footer-legal a:hover { color:var(--silver); }


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ GALLERY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
#gallery {
  background: var(--abyss);
  border-top: 1px solid rgba(201,168,76,0.08);
  border-bottom: 1px solid rgba(201,168,76,0.08);
  overflow: hidden;
}

.gallery-header { text-align:center; margin-bottom:3.5rem; }

/* masonry-style fixed grid */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(3, 220px);
  gap: 6px;
}

/* layout map */
.gitem:nth-child(1)  { grid-column: 1 / 6;  grid-row: 1 / 3; }  /* tall left */
.gitem:nth-child(2)  { grid-column: 6 / 9;  grid-row: 1 / 2; }
.gitem:nth-child(3)  { grid-column: 9 / 13; grid-row: 1 / 2; }
.gitem:nth-child(4)  { grid-column: 6 / 10; grid-row: 2 / 3; }
.gitem:nth-child(5)  { grid-column: 10 / 13;grid-row: 2 / 3; }
.gitem:nth-child(6)  { grid-column: 1 / 4;  grid-row: 3 / 4; }
.gitem:nth-child(7)  { grid-column: 4 / 8;  grid-row: 3 / 4; }
.gitem:nth-child(8)  { grid-column: 8 / 13; grid-row: 3 / 4; }

.gitem {
  position: relative;
  overflow: hidden;
  background: var(--dark);
  cursor: zoom-in;
}

.gitem img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.7s ease, filter 0.5s ease;
  filter: brightness(0.82) saturate(0.9);
  display: block;
}

.gitem:hover img {
  transform: scale(1.06);
  filter: brightness(0.95) saturate(1.1);
}

/* caption overlay */
.gitem-cap {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(3,0,10,0.85) 0%, transparent 55%);
  display: flex; align-items: flex-end; padding: 1.2rem 1.4rem;
  opacity: 0;
  transition: opacity 0.4s;
}
.gitem:hover .gitem-cap { opacity: 1; }
.gitem-cap span {
  font-family: 'Cormorant', serif;
  font-size: 0.72rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cream);
}

/* red corner accent on hover */
.gitem::after {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 0; height: 0;
  border-top: 3px solid var(--blood);
  border-left: 3px solid var(--blood);
  transition: width 0.4s, height 0.4s;
  pointer-events: none;
}
.gitem:hover::after { width: 30px; height: 30px; }

/* lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(3,0,10,0.96);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.35s;
}
.lightbox.open { opacity: 1; pointer-events: all; }
.lightbox img {
  max-width: min(90vw, 900px);
  max-height: 85vh;
  object-fit: contain;
  border: 1px solid rgba(201,168,76,0.2);
  box-shadow: 0 0 80px rgba(176,64,112,0.3);
}
.lb-close {
  position: absolute; top: 2rem; right: 2.5rem;
  font-size: 2rem; color: var(--silver);
  cursor: pointer; line-height: 1;
  transition: color 0.3s;
}
.lb-close:hover { color: var(--rose); }
.lb-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  font-size: 2.5rem; color: var(--silver);
  cursor: pointer; padding: 1rem;
  transition: color 0.3s;
  user-select: none;
}
.lb-arrow:hover { color: var(--cream); }
.lb-prev { left: 2rem; }
.lb-next { right: 2rem; }
.lb-counter {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  font-family: 'Cormorant', serif;
  font-size: 0.75rem; letter-spacing: 0.4em;
  color: var(--silver);
}

@media (max-width: 900px) {
  .gallery-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(4, 180px);
  }
  .gitem:nth-child(1) { grid-column: 1 / 4; grid-row: 1 / 3; }
  .gitem:nth-child(2) { grid-column: 4 / 7; grid-row: 1 / 2; }
  .gitem:nth-child(3) { grid-column: 4 / 7; grid-row: 2 / 3; }
  .gitem:nth-child(4) { grid-column: 1 / 4; grid-row: 3 / 4; }
  .gitem:nth-child(5) { grid-column: 4 / 7; grid-row: 3 / 4; }
  .gitem:nth-child(6) { grid-column: 1 / 3; grid-row: 4 / 5; }
  .gitem:nth-child(7) { grid-column: 3 / 5; grid-row: 4 / 5; }
  .gitem:nth-child(8) { grid-column: 5 / 7; grid-row: 4 / 5; }
}

@media (max-width: 600px) {
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(5, 160px);
  }
  .gitem:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 2; }
  .gitem:nth-child(2) { grid-column: 1 / 2; grid-row: 2 / 3; }
  .gitem:nth-child(3) { grid-column: 2 / 3; grid-row: 2 / 3; }
  .gitem:nth-child(4) { grid-column: 1 / 2; grid-row: 3 / 4; }
  .gitem:nth-child(5) { grid-column: 2 / 3; grid-row: 3 / 4; }
  .gitem:nth-child(6) { grid-column: 1 / 2; grid-row: 4 / 5; }
  .gitem:nth-child(7) { grid-column: 2 / 3; grid-row: 4 / 5; }
  .gitem:nth-child(8) { grid-column: 1 / 3; grid-row: 5 / 6; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ RESPONSIVE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (max-width:1024px) {
  .cast-grid { grid-template-columns:repeat(2,1fr); }
  .features-grid { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .cast-grid { grid-template-columns:repeat(2,1fr); gap:1rem; }
}

@media (max-width:768px) {
  header { padding:1.2rem 1.5rem; }
  nav { display:none; }
  .nav-toggle { display:flex; }
  .nav-drawer { display:flex; }

  .concept-layout,
  .beginner-layout { grid-template-columns:1fr; gap:3rem; }
  .concept-visual { max-height:300px; }

  .cast-grid { grid-template-columns:repeat(2,1fr); }
  .features-grid { grid-template-columns:1fr; }

  .news-layout { grid-template-columns:1fr; gap:2rem; }
  .news-label-side { writing-mode:horizontal-tb; font-size:1.5rem; }

  .footer-top { grid-template-columns:1fr; gap:3rem; }
  .footer-bottom { flex-direction:column; text-align:center; }

  .hero-ctas { flex-direction:column; align-items:center; }
  .cta-btns { flex-direction:column; align-items:center; }
}

@media (max-width:480px) {
  .cast-grid { grid-template-columns:1fr; }
  .cast-header { flex-direction:column; align-items:flex-start; }
  .news-item { grid-template-columns:1fr; gap:0.5rem; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ INNER PAGES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* Page Hero (サブページ用ヒーロー) */
.page-hero {
  position: relative;
  min-height: 280px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  padding-top: 80px;
}
.page-hero-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 80% 80% at 50% 0%, rgba(140,48,96,0.4) 0%, transparent 65%),
    var(--abyss);
  animation: bgBreath 8s ease-in-out infinite;
}
.page-hero-lines {
  position: absolute; inset: 0; pointer-events: none;
}
.page-hero-content {
  position: relative; z-index: 2;
  text-align: center; padding: 2rem;
}
.page-hero-kicker {
  font-family: 'Cormorant', serif;
  font-style: italic;
  font-size: 0.8rem;
  letter-spacing: 0.5em;
  color: var(--gold);
  margin-bottom: 1rem;
}
.page-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 5vw, 3.5rem);
  font-weight: 700;
  color: var(--white);
  text-shadow: 0 0 60px rgba(176,64,112,0.4);
  line-height: 1.2;
}
.page-hero-rule {
  width: 50px; height: 1px;
  background: linear-gradient(to right, transparent, var(--gold), transparent);
  margin: 1.5rem auto 0;
}

/* Page Main */
.page-main {
  background: var(--void);
  min-height: 60vh;
}
.page-container {
  max-width: 900px;
  margin: 0 auto;
  padding: 5rem 2rem 6rem;
}

/* Content blocks */
.page-block {
  background: rgba(15,10,26,0.6);
  border: 1px solid rgba(201,168,76,0.1);
  padding: 2.5rem;
  margin-bottom: 2rem;
  position: relative;
  transition: border-color 0.3s;
}
.page-block::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(to right, transparent, rgba(176,64,112,0.5), transparent);
}
.page-block:hover { border-color: rgba(176,64,112,0.3); }

.page-block h2, .page-block h3 {
  font-family: 'Playfair Display', serif;
  color: var(--gilded);
  margin-bottom: 1.2rem;
  letter-spacing: 0.05em;
}
.page-block h2 { font-size: 1.3rem; }
.page-block h3 { font-size: 1.1rem; color: var(--gold); }

.page-block p {
  font-family: 'Noto Serif JP', serif;
  font-weight: 300;
  font-size: 0.92rem;
  line-height: 2.5;
  color: rgba(240,235,224,0.82);
  margin-bottom: 1rem;
}
.page-block p:last-child { margin-bottom: 0; }

/* Step list */
.page-steps { display: flex; flex-direction: column; gap: 0; }
.page-step {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 1.5rem;
  padding-bottom: 2.5rem;
  position: relative;
}
.page-step:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 27px; top: 52px; bottom: 0; width: 1px;
  background: linear-gradient(to bottom, rgba(176,64,112,0.4), transparent);
}
.page-step-num {
  width: 54px; height: 54px; border-radius: 50%;
  border: 1px solid var(--blood);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif;
  font-size: 1.2rem; color: var(--rose);
  background: rgba(176,64,112,0.05);
  flex-shrink: 0;
}
.page-step-body { padding-top: 0.8rem; }
.page-step-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 0.95rem; font-weight: 500;
  color: var(--cream);
  margin-bottom: 0.5rem; letter-spacing: 0.1em;
}
.page-step-desc {
  font-size: 0.85rem; line-height: 2.2; color: var(--silver);
}

/* Can / Cannot table */
.can-table {
  width: 100%; border-collapse: collapse; margin: 1.5rem 0;
}
.can-table th {
  padding: 0.8rem 1.2rem;
  font-family: 'Cormorant', serif;
  font-size: 0.75rem; letter-spacing: 0.3em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(176,64,112,0.4);
}
.can-table th.ok  { color: var(--gold); text-align: left; width: 50%; }
.can-table th.ng  { color: var(--silver); text-align: left; }
.can-table td {
  padding: 0.6rem 1.2rem;
  font-size: 0.82rem; line-height: 1.9;
  color: rgba(240,235,224,0.8);
  vertical-align: top;
  border-bottom: 1px solid rgba(201,168,76,0.06);
}
.can-table td.ok::before { content: '✦ '; color: var(--blood); font-size: 0.6rem; }
.can-table td.ng::before { content: '✕ '; color: var(--silver); font-size: 0.7rem; }

/* Price table */
.price-tbl {
  width: 100%; border-collapse: collapse; margin: 1.5rem 0;
}
.price-tbl th {
  background: rgba(176,64,112,0.2);
  color: var(--gold);
  font-family: 'Cormorant', serif;
  font-size: 0.72rem; letter-spacing: 0.25em;
  padding: 0.9rem 1.2rem; text-align: left;
  border-bottom: 1px solid var(--blood);
}
.price-tbl td {
  padding: 0.85rem 1.2rem;
  border-bottom: 1px solid rgba(201,168,76,0.07);
  font-family: 'Cormorant', serif;
  font-size: 1rem; color: rgba(240,235,224,0.85);
}
.price-tbl tr:hover td { background: rgba(176,64,112,0.07); }
.price-tbl .price-val {
  font-family: 'Playfair Display', serif;
  font-size: 1.15rem; color: var(--gilded);
}
.price-tbl .price-special td { color: var(--rose); }

/* Play list grid */
.play-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem 2rem;
  margin: 1rem 0;
}
.play-item {
  font-size: 0.82rem;
  color: rgba(240,235,224,0.75);
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(201,168,76,0.06);
  display: flex; align-items: center; gap: 0.5rem;
}
.play-item::before {
  content: '★';
  color: var(--blood); font-size: 0.55rem; flex-shrink: 0;
}

/* Notice box */
.notice-box {
  border: 1px solid rgba(176,64,112,0.35);
  background: rgba(176,64,112,0.07);
  padding: 1.5rem 2rem;
  margin: 2rem 0;
}
.notice-box p {
  font-size: 0.82rem;
  line-height: 2.2;
  color: rgba(240,235,224,0.75);
  margin-bottom: 0.5rem;
}
.notice-box p:last-child { margin-bottom: 0; }
.notice-box p::before { content: '※ '; color: var(--silver); }

/* Reserve form */
.reserve-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}
.reserve-form .form-group { display: flex; flex-direction: column; gap: 0.5rem; }
.reserve-form .form-group.full { grid-column: span 2; }
.reserve-form label {
  font-size: 0.7rem; letter-spacing: 0.25em;
  color: var(--silver); text-transform: uppercase;
}
.reserve-form input,
.reserve-form select,
.reserve-form textarea {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(201,168,76,0.2);
  color: var(--cream);
  padding: 0.85rem 1rem;
  font-family: 'Noto Serif JP', serif;
  font-size: 0.88rem;
  outline: none;
  transition: border-color 0.3s;
  -webkit-appearance: none;
}
.reserve-form select option { background: #0a0005; }
.reserve-form input:focus,
.reserve-form select:focus,
.reserve-form textarea:focus {
  border-color: var(--blood);
  background: rgba(176,64,112,0.05);
}
.reserve-form textarea { resize: vertical; min-height: 120px; }
.reserve-form .btn-submit {
  width: 100%; padding: 1rem;
  background: var(--blood); color: #fff;
  border: none;
  font-family: 'Playfair Display', serif;
  font-size: 0.9rem; letter-spacing: 0.3em;
  cursor: pointer; margin-top: 0.5rem;
  transition: background 0.3s;
}
.reserve-form .btn-submit:hover { background: var(--rose); }

.form-success {
  display: none;
  background: rgba(176,64,112,0.12);
  border: 1px solid var(--blood);
  padding: 1.5rem; text-align: center;
  margin-top: 1.5rem;
  font-family: 'Cormorant', serif;
  font-size: 1.05rem; color: var(--gold);
  letter-spacing: 0.1em;
}

/* recruit page */
.recruit-points {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1.5rem; margin: 2rem 0;
}
.recruit-point {
  border: 1px solid rgba(201,168,76,0.12);
  background: rgba(10,0,5,0.5);
  padding: 2rem 1.5rem; text-align: center;
  transition: border-color 0.3s;
}
.recruit-point:hover { border-color: var(--blood); }
.recruit-point-icon { font-size: 2rem; margin-bottom: 1rem; }
.recruit-point-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 0.9rem; color: var(--cream);
  margin-bottom: 0.5rem;
}
.recruit-point-desc {
  font-size: 0.78rem; line-height: 2; color: var(--silver);
}

/* contact */
.contact-methods {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 2rem 0;
}
.contact-method {
  border: 1px solid rgba(201,168,76,0.12);
  padding: 2rem; text-align: center;
  transition: border-color 0.3s, background 0.3s;
}
.contact-method:hover { border-color: var(--blood); background: rgba(176,64,112,0.05); }
.contact-method-icon { font-size: 2.5rem; margin-bottom: 1rem; }
.contact-method-title {
  font-family: 'Playfair Display', serif;
  font-size: 1rem; color: var(--cream); margin-bottom: 0.5rem;
}
.contact-method a {
  color: var(--gold); font-size: 0.88rem;
  letter-spacing: 0.1em; display: block; margin-top: 0.5rem;
  transition: color 0.3s;
}
.contact-method a:hover { color: var(--gilded); }

/* Responsive */
@media (max-width: 768px) {
  .page-container { padding: 3rem 1.5rem 4rem; }
  .reserve-form { grid-template-columns: 1fr; }
  .reserve-form .form-group.full { grid-column: span 1; }
  .recruit-points { grid-template-columns: 1fr; }
  .contact-methods { grid-template-columns: 1fr; }
  .play-grid { grid-template-columns: 1fr; }
}

/* ── コンセプト画像差し替え対応 ── */
.concept-bg--img {
  padding: 0;
  background: var(--dark);
}
.concept-bg--img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  filter: brightness(0.88) saturate(0.9);
  transition: filter 0.5s ease;
}
.concept-visual:hover .concept-bg--img img {
  filter: brightness(0.95) saturate(1.05);
}

/* ── Recruit section responsive ── */
@media (max-width: 768px) {
  #recruit .container > div {
    grid-template-columns: 1fr !important;
    gap: 3rem !important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PAGE NAV BAR ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.page-nav-bar {
  background: rgba(30, 24, 40, 0.98);
  border-top: 1px solid rgba(208, 96, 138, 0.1);
  border-bottom: 1px solid rgba(208, 96, 138, 0.18);
  position: sticky;
  top: 0;
  z-index: 500;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.page-nav-bar::-webkit-scrollbar { display: none; }

.page-nav-inner {
  display: flex;
  align-items: stretch;
  justify-content: center;   /* 中央揃え */
  min-width: max-content;
  margin: 0 auto;
  padding: 0;
}

.page-nav-item {
  display: flex;
  flex-direction: row;       /* アイコンなし・横並び */
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0.85rem 1.2rem;
  text-decoration: none;
  color: var(--cream);       /* デフォルトをクリームに（見やすく） */
  border-right: 1px solid rgba(196, 160, 144, 0.08);
  transition: background 0.25s, color 0.25s;
  position: relative;
  white-space: nowrap;
  min-width: auto;
}

.page-nav-item::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: var(--rose);
  transform: scaleX(0);
  transition: transform 0.25s ease;
}

.page-nav-item:hover {
  background: rgba(208, 96, 138, 0.12);
  color: var(--white);
}
.page-nav-item:hover::after { transform: scaleX(1); }

.page-nav-item--reserve {
  background: rgba(176, 64, 112, 0.2);
  color: var(--blush);
  border: none;
  position: relative;
  font-weight: 500;
}
.page-nav-item--reserve::before {
  content: '';
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(208, 96, 138, 0.4);
  pointer-events: none;
}
.page-nav-item--reserve:hover {
  background: rgba(176, 64, 112, 0.35);
  color: var(--white);
}

/* アイコンを非表示 */
.page-nav-icon {
  display: none;
}

.page-nav-label {
  font-family: 'Noto Serif JP', serif;
  font-size: 0.78rem;        /* 大きく見やすく */
  letter-spacing: 0.06em;
  line-height: 1;
  text-align: center;
  color: inherit;
}

/* ── layout-header.php にも同じナビを使う場合のスタイル共有 ── */

/* 現在ページのナビアイテムをハイライト */
.page-nav-item--active {
  background: rgba(208, 96, 138, 0.15);
  color: var(--rose) !important;
}
.page-nav-item--active::after {
  transform: scaleX(1) !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ EMPATHY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.empathy-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin: 2.5rem 0;
}
.empathy-item {
  border: 1px solid rgba(196,160,144,0.12);
  background: rgba(46,40,64,0.6);
  padding: 2rem 1.5rem;
  text-align: center;
  transition: border-color 0.3s, transform 0.3s;
}
.empathy-item:hover {
  border-color: rgba(208,96,138,0.4);
  transform: translateY(-4px);
}
.empathy-icon {
  font-size: 2rem;
  display: block;
  margin-bottom: 1rem;
}
.empathy-item p {
  font-family: 'Noto Serif JP', serif;
  font-size: 0.85rem;
  line-height: 2;
  color: rgba(248,242,245,0.75);
}
.empathy-answer {
  text-align: center;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: clamp(1.2rem, 3vw, 1.8rem);
  color: var(--gilded);
  letter-spacing: 0.1em;
  margin-top: 1rem;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MINI CTA ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.mini-cta {
  background: rgba(140,48,96,0.15);
  border-top: 1px solid rgba(208,96,138,0.2);
  border-bottom: 1px solid rgba(208,96,138,0.2);
  padding: 1.2rem 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
}
.mini-cta p {
  font-family: 'Noto Serif JP', serif;
  font-size: 0.85rem;
  color: var(--silver);
  letter-spacing: 0.15em;
}
.mini-cta-btn {
  display: inline-block;
  padding: 0.65rem 1.8rem;
  background: var(--blood);
  color: var(--cream);
  font-family: 'Noto Serif JP', serif;
  font-size: 0.82rem;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: background 0.3s, letter-spacing 0.3s;
}
.mini-cta-btn:hover {
  background: var(--rose);
  letter-spacing: 0.28em;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ RECRUIT DUAL ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.recruit-dual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.recruit-card {
  border: 1px solid rgba(196,160,144,0.15);
  background: rgba(37,31,48,0.8);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: border-color 0.3s, transform 0.3s;
}
.recruit-card:hover {
  border-color: rgba(208,96,138,0.4);
  transform: translateY(-4px);
}

.recruit-card-head {
  padding: 2rem 2rem 1.5rem;
  border-bottom: 1px solid rgba(196,160,144,0.08);
  position: relative;
}
.recruit-card--kansai .recruit-card-head {
  background: linear-gradient(135deg, rgba(140,48,96,0.3) 0%, transparent 70%);
}
.recruit-card--national .recruit-card-head {
  background: linear-gradient(135deg, rgba(30,20,80,0.4) 0%, transparent 70%);
}

.recruit-badge {
  display: inline-block;
  font-family: 'Cormorant', serif;
  font-size: 0.62rem;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  background: var(--blood);
  color: var(--cream);
  padding: 0.25rem 0.8rem;
  margin-bottom: 0.8rem;
}
.recruit-badge--national {
  background: rgba(50,30,120,0.8);
  border: 1px solid rgba(150,130,255,0.4);
}

.recruit-card-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  color: var(--cream);
  line-height: 1.3;
}
.recruit-card-title small {
  display: block;
  font-size: 0.72rem;
  font-family: 'Noto Serif JP', serif;
  font-weight: 300;
  color: var(--silver);
  letter-spacing: 0.15em;
  margin-top: 0.3rem;
}

.recruit-card-body {
  padding: 1.5rem 2rem;
  flex: 1;
}

.recruit-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
.recruit-tag {
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  border: 1px solid rgba(208,96,138,0.35);
  color: var(--rose);
  padding: 0.2rem 0.6rem;
}

.recruit-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.recruit-list li {
  font-size: 0.82rem;
  color: rgba(248,242,245,0.75);
  line-height: 1.8;
  padding-left: 1.2rem;
  position: relative;
}
.recruit-list li::before {
  content: '✦';
  position: absolute;
  left: 0;
  color: var(--blood);
  font-size: 0.55rem;
  top: 0.3rem;
}

.recruit-card-foot {
  padding: 1.5rem 2rem;
  border-top: 1px solid rgba(196,160,144,0.08);
}

.recruit-btn {
  display: block;
  text-align: center;
  padding: 0.9rem 1rem;
  font-family: 'Noto Serif JP', serif;
  font-size: 0.82rem;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: all 0.3s;
}
.recruit-btn--primary {
  background: var(--blood);
  color: var(--cream);
}
.recruit-btn--primary:hover { background: var(--rose); }
.recruit-btn--national {
  background: rgba(50,30,120,0.5);
  border: 1px solid rgba(150,130,255,0.4);
  color: rgba(200,190,255,0.9);
}
.recruit-btn--national:hover {
  background: rgba(50,30,120,0.8);
}

@media (max-width: 768px) {
  .empathy-grid { grid-template-columns: 1fr 1fr; }
  .recruit-dual { grid-template-columns: 1fr; }
  #x-feed .container > div { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
}
@media (max-width: 480px) {
  .empathy-grid { grid-template-columns: 1fr; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ RECRUIT LINK BUTTONS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.recruit-btns-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  max-width: 760px;
  margin: 0 auto;
}

.recruit-link-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 2.5rem 2rem;
  text-decoration: none;
  border: 1px solid rgba(196,160,144,0.2);
  position: relative;
  overflow: hidden;
  transition: transform 0.3s, border-color 0.3s;
  text-align: center;
}
.recruit-link-btn::before {
  content: '';
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 0;
}
.recruit-link-btn:hover { transform: translateY(-4px); }
.recruit-link-btn:hover::before { opacity: 1; }
.recruit-link-btn > * { position: relative; z-index: 1; }

.recruit-link-btn--kansai {
  background: rgba(140,48,96,0.15);
  border-color: rgba(208,96,138,0.3);
}
.recruit-link-btn--kansai::before {
  background: rgba(140,48,96,0.25);
}
.recruit-link-btn--kansai:hover { border-color: var(--rose); }

.recruit-link-btn--national {
  background: rgba(30,20,80,0.2);
  border-color: rgba(130,110,220,0.3);
}
.recruit-link-btn--national::before {
  background: rgba(30,20,80,0.35);
}
.recruit-link-btn--national:hover { border-color: rgba(150,130,255,0.7); }

.recruit-link-icon {
  font-size: 2.2rem;
  display: block;
}
.recruit-link-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  color: var(--cream);
  display: block;
  letter-spacing: 0.05em;
}
.recruit-link-sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 0.72rem;
  color: var(--silver);
  letter-spacing: 0.12em;
  display: block;
}
.recruit-link-btn--kansai .recruit-link-title { color: var(--gilded); }
.recruit-link-btn--national .recruit-link-title { color: rgba(200,190,255,0.95); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MOBILE OPTIMIZATION ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (max-width: 768px) {

  /* ヘッダー */
  header { padding: 1rem 1.2rem; }

  /* ヒーロー */
  .hero-title { font-size: clamp(2.4rem,12vw,4rem); }
  .hero-catch { font-size: 0.82rem; }
  .hero-ctas { flex-direction: column; align-items: center; gap: 1rem; }
  .btn { width: 100%; max-width: 280px; justify-content: center; }

  /* 共感エリア */
  .empathy-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .empathy-item { padding: 1.2rem 1rem; }

  /* コンセプト */
  .concept-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .concept-visual { max-height: 260px; }

  /* 特徴 */
  .features-grid { grid-template-columns: 1fr; gap: 1rem; }
  .feature-card { padding: 1.8rem 1.5rem; }

  /* キャスト */
  .cast-grid { grid-template-columns: repeat(2,1fr); gap: 1rem; }
  .cast-header { flex-direction: column; gap: 1rem; align-items: flex-start; }

  /* 料金テーブル */
  .price-tbl th, .price-tbl td { padding: 0.7rem 0.8rem; font-size: 0.82rem; }

  /* 流れ */
  .step-item { grid-template-columns: 48px 1fr; gap: 0 1rem; }
  .step-num { width: 46px; height: 46px; font-size: 1.1rem; }

  /* X・Twitter */
  #x-feed .container > div { grid-template-columns: 1fr !important; gap: 2rem !important; }

  /* 求人ボタン */
  .recruit-btns-wrap { grid-template-columns: 1fr; gap: 1rem; }
  .recruit-link-btn { padding: 1.8rem 1.5rem; }

  /* CTA */
  .cta-btns { flex-direction: column; align-items: center; gap: 1rem; }
  .cta-btns .btn-light,
  .cta-btns .btn-outline-w { width: 100%; max-width: 280px; text-align: center; }

  /* フッター */
  .footer-top { grid-template-columns: 1fr; gap: 2.5rem; padding: 3rem 1.5rem; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 0.8rem; }

  /* セクション余白 */
  .section { padding: 4rem 1.2rem; }
  .page-container { padding: 2.5rem 1.2rem 4rem; }

  /* ページナビ */
  .page-nav-item { min-width: 76px; padding: 0.8rem 0.9rem; }
  .page-nav-label { font-size: 0.56rem; }
  .page-nav-icon { font-size: 0.95rem; }

  /* 内部ページ */
  .beginner-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .reserve-form { grid-template-columns: 1fr; }
  .reserve-form .form-group.full { grid-column: span 1; }
  .recruit-points { grid-template-columns: 1fr; }
  .contact-methods { grid-template-columns: 1fr; }
  .play-grid { grid-template-columns: 1fr; }
  .price-tbl { font-size: 0.8rem; }
  .page-steps .page-step { grid-template-columns: 48px 1fr; }
}

@media (max-width: 480px) {
  .empathy-grid { grid-template-columns: 1fr; }
  .cast-grid { grid-template-columns: repeat(2,1fr); }
  .hero-title { font-size: clamp(2rem,10vw,3rem); }
  .sec-title { font-size: clamp(1.4rem,6vw,2rem); }
  .news-item { grid-template-columns: 1fr; gap: 0.4rem; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CAST LIST GRID（一覧ページ） ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.cast-list-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1100px;
  margin: 2rem auto 0;
  padding: 0 2rem;
}

.cast-list-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(208,96,138,0.15);
  background: rgba(37,31,48,0.8);
  overflow: hidden;
  transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
}
.cast-list-card:hover {
  transform: translateY(-6px);
  border-color: rgba(208,96,138,0.5);
  box-shadow: 0 12px 32px rgba(140,48,96,0.2);
}

.cast-list-photo {
  aspect-ratio: 3/4;
  overflow: hidden;
  position: relative;
  background: linear-gradient(160deg, #2e2840, #1e1828);
}
.cast-list-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.5s ease;
}
.cast-list-card:hover .cast-list-photo img {
  transform: scale(1.04);
}

.cast-list-info {
  padding: 1rem 1.1rem;
  background: rgba(30,24,40,0.95);
}

/* スマホ対応 */
@media (max-width: 1024px) {
  .cast-list-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .cast-list-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    padding: 0 1rem;
  }
  .cast-list-card { border-radius: 4px; }
}
@media (max-width: 400px) {
  .cast-list-grid { gap: 0.7rem; padding: 0 0.8rem; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CAST PROFILE PAGE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* SWELLプロフィールページ: 白背景に黒系文字で上書き */
.l-main, .l-main *,
.p-article, .p-article *,
.e-content, .e-content *,
article.p-article, article.p-article * {
  color: #1a1a2e !important;
}
.e-content h1,.e-content h2,.e-content h3,.e-content h4,
.p-article h1,.p-article h2,.p-article h3,.p-article h4 {
  color: #3a0030 !important;
  font-weight: 700;
}
.e-content strong,.e-content b,
.p-article strong,.p-article b { color: #8c3060 !important; }
.e-content a,.p-article a { color: #b04070 !important; }
.e-content table td,.e-content table th,
.p-article table td,.p-article table th {
  border: 1px solid rgba(140,48,96,0.25) !important;
  color: #1a1a2e !important;
  padding: 0.7rem 1rem;
}
.e-content table th,.p-article table th {
  background: rgba(140,48,96,0.08) !important;
  font-weight: 600;
}
.cast-profile-content,
.cast-profile-content p,
.cast-profile-content li,
.cast-profile-content td,
.cast-profile-content th,
.cast-profile-content span,
.cast-profile-content div {
  color: #1a1a2e !important;
  font-family: 'Noto Serif JP', serif;
  font-size: 0.92rem;
  line-height: 2.4;
}
.cast-profile-content h1,.cast-profile-content h2,
.cast-profile-content h3,.cast-profile-content h4 {
  color: #3a0030 !important;
  margin: 1.5rem 0 0.8rem;
  font-weight: 700;
}
.cast-profile-content strong,.cast-profile-content b { color: #8c3060 !important; }
.cast-profile-content a { color: #b04070 !important; }
.cast-profile-content table { width:100%; border-collapse:collapse; margin:1rem 0; }
.cast-profile-content table td,
.cast-profile-content table th {
  border: 1px solid rgba(140,48,96,0.25);
  padding: 0.7rem 1rem;
  color: #1a1a2e !important;
}
.cast-profile-content img {
  max-width: 100%; height: auto; display: block; margin: 1rem auto;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PC ONLY（スマホ非表示） ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (max-width: 768px) {
  .pc-only {
    display: none !important;
  }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ X FEED LAYOUT ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.x-feed-layout {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 4rem;
  align-items: start;
}
.x-timeline-box {
  border: 1px solid rgba(196,160,144,0.15);
  overflow: hidden;
  background: rgba(20,16,30,.6);
  min-height: 400px;
  border-radius: 2px;
}
@media (max-width: 768px) {
  .x-feed-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/* キャストバッジ（No.1・NEW）非表示 */
.cast-status { display: none !important; }

/* X フォールバック表示 */
.x-fallback {
  padding: 3rem 2rem;
  text-align: center;
}
.x-fallback p {
  color: var(--silver);
  font-size: 0.85rem;
  margin-bottom: 1rem;
}
.x-fallback a {
  color: var(--rose);
  font-size: 0.9rem;
  letter-spacing: 0.1em;
}
.x-fallback-embed {
  min-height: 400px;
}
/* oEmbedで返ってくるiframeのスタイル調整 */
#x-embed-wrap iframe {
  width: 100% !important;
  border: none !important;
}
