/* game_tgn_0034 — Neon Arcade */

:root {
  --g34-bg-primary: #0a0a0f;
  --g34-bg-secondary: #12121a;
  --g34-accent-primary: #ff006e;
  --g34-accent-secondary: #00f5d4;
  --g34-text-primary: #ffffff;
  --g34-text-secondary: #b0b0b0;
  --g34-text-muted: #666666;
  --g34-neon-glow: 0 0 10px var(--g34-accent-primary), 0 0 20px var(--g34-accent-primary), 0 0 30px rgba(255, 0, 110, 0.4);
  --g34-crt-scanline: repeating-linear-gradient(0deg, rgba(0,0,0,0.15), rgba(0,0,0,0.15) 1px, transparent 1px, transparent 2px);
  --g34-font: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --g34-font-pixel: ui-monospace, 'Cascadia Code', 'Segoe UI Mono', 'Roboto Mono', Menlo, Consolas, monospace;
  --g34-font-mono: ui-monospace, 'Cascadia Code', 'Segoe UI Mono', 'Roboto Mono', Menlo, Consolas, monospace;
  --g34-max: 1200px;
  --g34-nav-h: 64px;
  --g34-mob-h: 56px;
  --g34-star-full: #ffd700;
  --g34-star-empty: rgba(102, 102, 102, 0.5);
  --g34-star-glow: rgba(255, 215, 0, 0.45);
  --g34-border: rgba(255, 0, 110, 0.25);
  --g34-accent-text: #ff3388;
  --ink-muted: #94a3b8;
  --ink-on-light: #475569;
  /* aliases for member CSS */
  --star-white: var(--g34-text-primary);
  --space-dark: var(--g34-bg-primary);
  --space-blue: var(--g34-bg-secondary);
  --g34-ink: var(--g34-text-primary);
  --g34-paper: var(--g34-bg-secondary);
  --g34-paper-deep: var(--g34-bg-primary);
  --g34-member-accent: var(--g34-accent-primary);
  --nebula-pink: var(--g34-accent-primary);
  --comet-cyan: var(--g34-accent-secondary);
  --transition-fast: 0.2s ease;
  --line-soft: rgba(255, 0, 110, 0.25);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }

body.g34-body,
body.g34-page {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: var(--g34-bg-primary);
  color: var(--g34-text-primary);
  font-family: var(--g34-font);
  line-height: 1.6;
  overflow-x: hidden;
  position: relative;
  padding-top: calc(var(--g34-nav-h) + env(safe-area-inset-top, 0px));
  padding-bottom: var(--g34-mob-h);
}

@media (min-width: 768px) {
  body.g34-body, body.g34-page { padding-bottom: 0; }
}

/* CRT scanlines — avoid SVG feTurbulence noise (main-thread paint cost) */
body.g34-body::before,
body.g34-page::before {
  content: '';
  position: fixed;
  inset: 0;
  background: var(--g34-crt-scanline);
  pointer-events: none;
  z-index: 9999;
  opacity: 0.22;
  contain: strict;
}

@media (prefers-reduced-motion: reduce) {
  .g34-blink { animation: none; }
  html { scroll-behavior: auto; }
  body.g34-body::before,
  body.g34-page::before { opacity: 0.08; }
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { margin-top: 0; }

.g34-font-pixel {
  font-family: var(--g34-font-pixel);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.5;
}
.g34-font-mono { font-family: var(--g34-font-mono); }

.g34-neon-text {
  color: var(--g34-accent-primary);
  text-shadow: var(--g34-neon-glow);
}

.g34-neon-box {
  box-shadow: var(--g34-neon-glow);
  border: 2px solid var(--g34-accent-primary);
}

@keyframes g34-blink {
  0%, 50%, 100% { opacity: 1; }
  25%, 75% { opacity: 0.5; }
}
.g34-blink { animation: g34-blink 1s infinite; }

.g34-page-wrap {
  width: 100%;
  max-width: var(--g34-max);
  margin: 0 auto;
  padding-left: max(16px, env(safe-area-inset-left));
  padding-right: max(16px, env(safe-area-inset-right));
  min-width: 0;
}

.g34-main { flex: 1; }

.g34-ad-slot {
  /* Only vertical padding — keep .g34-page-wrap horizontal inset */
  padding-top: 12px;
  padding-bottom: 12px;
  overflow: hidden;
  width: 100%;
  max-width: var(--g34-max);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.g34-ad-slot--top { padding-top: 16px; }

/* Nav */
.g34-nav {
  background: linear-gradient(180deg, #12121a, #0a0a0f);
  border-bottom: 3px solid var(--g34-accent-primary);
  padding-top: max(12px, env(safe-area-inset-top, 0px));
  padding-bottom: 12px;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}

.g34-ico {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

.g34-nav-container {
  max-width: var(--g34-max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 40px;
}

.g34-nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.g34-nav-logo img {
  height: 32px;
  width: auto;
  max-width: 96px;
  object-fit: contain;
  flex-shrink: 0;
}

.g34-logo-text {
  display: block;
  font-size: clamp(0.75rem, 1.1vw, 0.95rem);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.g34-nav-menu {
  display: none;
  align-items: center;
  gap: 18px;
  flex: 1;
  justify-content: center;
  min-width: 0;
}

@media (min-width: 768px) {
  .g34-nav-menu { display: flex; }
}

.g34-nav-menu li { list-style: none; }
.g34-nav-menu li.is-overflow-hidden { display: none; }

.g34-nav-link {
  color: var(--g34-text-primary);
  font-family: var(--g34-font-pixel);
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  line-height: 1.3;
  transition: color 0.3s;
  white-space: nowrap;
}

.g34-nav-link:hover,
.g34-nav-link.active {
  color: var(--g34-accent-primary);
  text-shadow: var(--g34-neon-glow);
}

.g34-nav-user { flex-shrink: 0; }

.g34-nav-user-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--g34-accent-secondary);
  font-size: 0.75rem;
}

.g34-nav-signin-li,
.g34-nav-link--signin,
.g34-nav-user-row { display: none; }

@media (min-width: 768px) {
  .g34-nav-user-link { display: none; }
  .g34-nav-signin-li { display: list-item; margin-left: auto; }
  .g34-nav-link--signin { display: inline-block; }
  .g34-nav-user-row { display: flex; align-items: center; gap: 8px; margin-left: auto; }
}

.nav-more {
  position: relative;
  flex-shrink: 0;
}

.g34-nav-menu .nav-more-toggle {
  display: inline-block;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  font-family: var(--g34-font-pixel);
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  line-height: 1.3;
  color: var(--g34-text-primary);
  white-space: nowrap;
  transition: color 0.3s;
}

.g34-nav-menu .nav-more-toggle:hover,
.nav-more.active .nav-more-toggle {
  color: var(--g34-accent-primary);
  text-shadow: var(--g34-neon-glow);
}

.nav-more-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: var(--g34-bg-secondary);
  border: 2px solid var(--g34-accent-primary);
  padding: 8px;
  min-width: 140px;
  display: none;
  z-index: 1200;
}

.nav-more.active .nav-more-menu {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nav-more-menu .g34-nav-link,
.nav-more-menu .nav-link {
  display: block;
  padding: 6px 8px;
}

/* Mobile bar */
.g34-mobile-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  background: var(--g34-bg-secondary);
  border-top: 2px solid var(--g34-accent-primary);
  z-index: 1000;
  padding-bottom: env(safe-area-inset-bottom);
}

@media (min-width: 768px) {
  .g34-mobile-bar { display: none; }
}

.g34-mobile-bar .mobile-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 4px;
  font-size: 0.65rem;
  color: var(--g34-text-secondary);
}

.g34-mobile-bar .mobile-nav-item.active { color: var(--g34-accent-primary); }

/* Hero */
.g34-hero { padding: 32px 0; }

.g34-crt-frame {
  background: linear-gradient(145deg, #2a2a35, #1a1a20);
  border-radius: 20px;
  padding: 20px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.5);
  border: 4px solid #3a3a45;
}

.g34-crt-screen {
  background: #000;
  border-radius: 10px;
  padding: 32px 24px;
  position: relative;
  overflow: hidden;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.g34-crt-scanlines {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.1), rgba(0,0,0,0.1) 1px, transparent 1px, transparent 3px);
  pointer-events: none;
}

.g34-hero-content { text-align: center; z-index: 1; position: relative; }

.g34-hero-coin {
  font-size: clamp(0.75rem, 3vw, 1.25rem);
  margin: 0 0 16px;
}

.g34-hero-slogan {
  font-size: clamp(1rem, 2.5vw, 1.35rem);
  font-weight: 700;
  color: var(--g34-accent-secondary);
  margin: 0 0 8px;
}

.g34-hero-sub {
  color: var(--g34-text-secondary);
  font-size: 0.9rem;
  margin-bottom: 24px;
}

.g34-arcade-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 24px;
}

.g34-joystick {
  width: 56px;
  height: 56px;
  background: radial-gradient(circle at 30% 30%, #555, #222);
  border-radius: 50%;
  border: 4px solid #333;
  box-shadow: 0 4px 0 #111;
  flex-shrink: 0;
}

.g34-button-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: center;
}

.g34-hero-search {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.g34-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

.g34-search-input {
  padding: 12px 16px;
  border: 2px solid #333;
  border-radius: 8px;
  background: var(--g34-bg-secondary);
  color: var(--g34-text-primary);
  font-family: var(--g34-font-mono);
  min-width: 180px;
}

.g34-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  font-family: var(--g34-font-pixel);
  font-size: 0.55rem;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: transform 0.1s;
  text-transform: uppercase;
  text-decoration: none;
  color: #fff;
}

.g34-btn-red {
  background: linear-gradient(145deg, #ff3366, #cc0044);
  box-shadow: 0 4px 0 #990033;
}
.g34-btn-red:active { box-shadow: 0 2px 0 #990033; transform: translateY(2px); }

.g34-btn-blue {
  background: linear-gradient(145deg, #33ccff, #0099cc);
  box-shadow: 0 4px 0 #006699;
}
.g34-btn-blue:active { box-shadow: 0 2px 0 #006699; transform: translateY(2px); }

/* Hero — compact on mobile so games appear above the fold */
@media (max-width: 767px) {
  :root { --g34-nav-h: 72px; }

  .g34-page-wrap {
    padding-left: max(10px, env(safe-area-inset-left, 0px));
    padding-right: max(10px, env(safe-area-inset-right, 0px));
  }

  .g34-nav {
    padding-top: max(16px, env(safe-area-inset-top, 0px));
    padding-bottom: 14px;
  }

  .g34-nav-logo img { height: 28px; max-width: 72px; }

  .g34-logo-text { font-size: 0.7rem; }

  .g34-hero { padding: 10px 0 6px; }

  .g34-crt-frame {
    padding: 6px;
    border-radius: 10px;
    border-width: 2px;
  }

  .g34-crt-screen {
    padding: 10px;
    min-height: 0;
    border-radius: 6px;
  }

  .g34-hero-coin {
    font-size: 0.7rem;
    margin: 0 0 8px;
  }

  .g34-hero-slogan {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 8px;
    line-height: 1.35;
  }

  .g34-hero-sub {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    font-size: 0.9rem;
    line-height: 1.45;
    margin-bottom: 12px;
  }

  .g34-arcade-controls {
    gap: 0;
    margin-top: 0;
  }

  .g34-joystick { display: none; }

  .g34-button-group { width: 100%; }

  .g34-hero-search {
    width: 100%;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;
  }

  .g34-search-input {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    padding: 10px 12px;
    font-size: 0.9375rem;
  }

  .g34-hero-search .g34-btn {
    flex: 0 0 auto;
    padding: 10px 16px;
    font-size: 0.55rem;
  }

  .g34-categories-track { padding: 6px 0; }

  .g34-cat-chip { padding: 6px 10px; font-size: 0.85rem; }

  .g34-ad-slot {
    padding-top: 8px;
    padding-bottom: 8px;
  }
}

/* Categories track */
.g34-categories-track { padding: 16px 0; }

.g34-cat-rail {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: thin;
}

.g34-cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--g34-bg-secondary);
  border: 2px solid #333;
  border-radius: 8px;
  font-size: 0.85rem;
  white-space: nowrap;
  flex-shrink: 0;
  transition: border-color 0.2s, transform 0.2s;
}

.g34-cat-chip:hover {
  border-color: var(--g34-accent-primary);
  transform: translateY(-2px);
}

.g34-cat-num { color: var(--g34-accent-secondary); font-size: 0.75rem; }

/* Modules — skip content-visibility on above-the-fold main stage (LCP) */
.g34-module {
  padding: 32px 0;
}
.g34-module:not(.g34-module-main-stage) {
  content-visibility: auto;
  contain-intrinsic-size: auto 400px;
}

@media (max-width: 767px) {
  .g34-module { padding: 8px 0; }

  .g34-module-desc,
  .module-description {
    margin: 0 0 8px;
    font-size: 0.8rem;
  }
}

.g34-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .g34-section-head {
    margin-bottom: 6px;
    gap: 6px;
  }
}

.g34-section-title { font-size: clamp(0.65rem, 2.5vw, 0.85rem); margin: 0; }

.g34-more, .module-link-more {
  font-family: var(--g34-font-mono);
  font-size: 0.8rem;
  color: var(--g34-accent-secondary);
}

.g34-more:hover { text-shadow: 0 0 8px var(--g34-accent-secondary); }

.g34-module-desc, .module-description {
  color: var(--ink-muted);
  margin: 0 0 16px;
  font-size: 0.9rem;
}

/* Arcade machine — key 0 */
.g34-arcade-machine {
  background: linear-gradient(180deg, #2a2a35 0%, #1a1a20 100%);
  border-radius: 20px 20px 10px 10px;
  padding: 20px;
  border: 4px solid #3a3a45;
}

.g34-arcade-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 12px;
  margin-bottom: 16px;
}

.g34-marquee {
  flex: 1 1 200px;
  min-width: 0;
  background: linear-gradient(90deg, #1a1a1a, #2a2a2a, #1a1a1a);
  padding: 16px;
  text-align: center;
  border-radius: 10px;
}

/* Mobile: outer page gutters keep safe distance; inner machine padding stays tight */
@media (max-width: 767px) {
  .g34-arcade-machine {
    padding: 8px 4px;
    border-width: 2px;
    border-radius: 10px 10px 8px 8px;
  }

  .g34-arcade-top {
    flex-wrap: nowrap;
    margin-bottom: 8px;
    gap: 8px;
  }

  .g34-marquee {
    flex: 1 1 auto;
    min-width: 0;
    padding: 8px;
  }

  .g34-hot-grid {
    gap: 4px;
  }
}

.g34-marquee .g34-font-pixel { font-size: clamp(0.55rem, 2vw, 0.75rem); margin: 0; }

.g34-arcade-top .g34-more {
  flex-shrink: 0;
  white-space: nowrap;
}

/* Arcade stage — uniform hot grid (same card structure everywhere) */
.g34-arcade-body { min-width: 0; }

.g34-hot-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.g34-badge-hot {
  display: inline-block;
  width: fit-content;
  margin-bottom: 4px;
  padding: 3px 10px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--g34-accent-primary);
  color: #fff;
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(255, 0, 110, 0.45);
}

/* Desktop: first card as wide featured strip */
@media (min-width: 768px) {
  .g34-hot-grid .g34-is-hot {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr);
    grid-template-rows: 1fr auto;
    align-items: stretch;
  }

  .g34-hot-grid .g34-is-hot .g34-card-thumb {
    grid-row: 1 / -1;
    aspect-ratio: auto;
    min-height: 220px;
    height: 100%;
  }

  .g34-hot-grid .g34-is-hot .g34-card-info {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    background: linear-gradient(135deg, rgba(255, 0, 110, 0.12), transparent 70%);
  }

  .g34-hot-grid .g34-is-hot .g34-card-play {
    grid-column: 2;
    grid-row: 2;
  }
}

@media (max-width: 1024px) {
  .g34-hot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .g34-hot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
  }

  .g34-hot-grid .g34-is-hot {
    grid-column: auto;
  }

  .g34-hot-grid .g34-card-thumb {
    aspect-ratio: 16 / 10;
  }

  .g34-hot-grid .g34-badge-hot,
  .g34-hot-grid .g34-card-tags,
  .g34-hot-grid .g34-card-play {
    display: none;
  }

  .g34-hot-grid .g34-card-info {
    padding: 6px 8px 8px;
  }

  .g34-hot-grid .g34-card-title {
    font-size: 0.75rem;
    margin: 0 0 2px;
    line-height: 1.25;
  }

  .g34-hot-grid .game-star { font-size: 0.65rem; margin: 0 0 2px; }

  .g34-hot-grid .brief-comment-game {
    font-size: 0.7rem;
    margin: 0;
    -webkit-line-clamp: 1;
  }
}

/* Game cards */
.g34-game-card {
  display: flex;
  flex-direction: column;
  background: var(--g34-bg-secondary);
  border: 2px solid #333;
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.3s, transform 0.3s;
  cursor: pointer;
  position: relative;
  min-width: 0;
}

@media (max-width: 767px) {
  .g34-game-card,
  .g34-zig-row {
    border-width: 1px;
    border-radius: 6px;
  }
}

.g34-game-card:hover {
  border-color: var(--g34-accent-primary);
  box-shadow: 0 0 20px rgba(255, 0, 110, 0.3);
  transform: translateY(-4px);
}

/* Shared compact 2-col rules for other grids */
@media (max-width: 768px) {
  .g34-module-grid .g34-game-grid {
    gap: 4px;
  }

  .g34-module-grid .g34-card-thumb,
  .g34-tags-content .g34-card-thumb {
    aspect-ratio: 16 / 10;
  }

  .g34-module-grid .g34-card-info {
    padding: 6px 8px 8px;
  }

  .g34-module-grid .g34-card-title,
  .g34-tags-content .g34-card-title,
  .g34-tags-content .g34-game-grid:not(.list-view) .game-title,
  .g34-tags-content .g34-game-grid:not(.list-view) .card-title {
    font-size: 0.75rem;
    margin: 0 0 2px;
    line-height: 1.25;
  }

  .g34-module-grid .g34-card-tags,
  .g34-tags-content .g34-game-grid:not(.list-view) .g34-card-tags,
  .g34-module-grid .g34-card-play,
  .g34-tags-content .g34-game-grid:not(.list-view) .g34-card-play {
    display: none;
  }

  .g34-module-grid .brief-comment-game,
  .g34-tags-content .g34-game-grid:not(.list-view) .brief-comment-game {
    font-size: 0.7rem;
    margin: 2px 0 0;
  }

  .g34-module-grid .game-star,
  .g34-tags-content .g34-game-grid:not(.list-view) .game-star {
    font-size: 0.65rem;
    margin: 0 0 2px;
  }

  /* Grid: title → stars tight; stars live inside .card-meta */
  .g34-tags-content .g34-game-grid:not(.list-view) .g34-card-info,
  .g34-tags-content .g34-game-grid:not(.list-view) .special-card-content {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 6px 8px 8px;
  }

  .g34-tags-content .g34-game-grid:not(.list-view) .card-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
  }
}

.g34-card-thumb {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #1a1a1a;
}

.g34-card-thumb img, .g34-img-ph {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #1a1a1a;
}

.g34-card-info { padding: 12px 14px 8px; min-width: 0; }

.g34-card-title {
  font-size: 0.875rem;
  font-weight: 700;
  margin: 0 0 4px;
}

.g34-card-meta, .brief-comment-game {
  font-size: 0.75rem;
  color: var(--g34-text-secondary);
  margin: 4px 0 0;
}

/* 列表简介：统一最多 2 行省略（首页 / 分类页 / 推荐区） */
.brief-comment-game {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 2;
  min-width: 0;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: break-word;
}


.g34-card-tags {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  margin-top: 6px;
  min-width: 0;
  overflow: hidden;
}

.g34-tag-chip {
  flex-shrink: 0;
  font-size: 0.65rem;
  padding: 2px 8px;
  border: 1px solid var(--g34-border);
  border-radius: 4px;
  color: var(--g34-accent-secondary);
  font-family: var(--g34-font-mono);
  white-space: nowrap;
}

@media (min-width: 768px) {
  .g34-main .g34-card-tags {
    flex-wrap: wrap;
    overflow: visible;
  }
}

.g34-card-play {
  display: block;
  width: 100%;
  padding: 10px;
  background: var(--g34-accent-primary);
  color: #fff;
  border: none;
  font-family: var(--g34-font-pixel);
  font-size: 0.5rem;
  text-align: center;
  transition: background 0.2s;
}

.g34-game-card:hover .g34-card-play {
  background: #ff3388;
  box-shadow: 0 0 15px var(--g34-accent-primary);
}

/* Grid module — key 1 */
.g34-module-grid .g34-module-header {
  text-align: center;
  margin-bottom: 24px;
}

.g34-module-grid .g34-module-name {
  display: block;
  color: var(--g34-text-secondary);
  font-size: 0.85rem;
  margin-top: 8px;
}

.g34-module-grid .g34-game-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

@media (max-width: 1024px) {
  .g34-module-grid .g34-game-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .g34-module-grid .g34-game-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
  }

  .g34-module-grid .g34-module-header {
    margin-bottom: 6px;
  }
}

/* Zigzag — even modules */
.g34-zigzag { display: flex; flex-direction: column; gap: 16px; }

.g34-zig-row {
  display: flex;
  flex-direction: column;
  background: var(--g34-bg-secondary);
  border: 2px solid #333;
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.3s;
}

@media (max-width: 767px) {
  .g34-zigzag { gap: 4px; }
}

@media (max-width: 639px) {
  .g34-zigzag {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
  }

  .g34-zig-row { min-width: 0; }

  .g34-zig-body {
    padding: 6px 8px 8px;
  }

  .g34-zig-body .game-title {
    margin: 0 0 2px;
    font-size: 0.75rem;
    line-height: 1.25;
  }

  .g34-zig-body .game-star {
    margin: 0 0 2px;
    font-size: 0.65rem;
  }

  .g34-zig-body .g34-card-tags {
    display: none;
  }

  .g34-zig-body .brief-comment-game {
    font-size: 0.7rem;
    margin: 0;
    -webkit-line-clamp: 1;
  }

  .g34-zig-index { display: none; }

  .g34-zig-thumb { aspect-ratio: 4 / 3; }
}

@media (min-width: 640px) {
  .g34-zig-row { flex-direction: row; }
  .g34-zig-row--flip { flex-direction: row-reverse; }
}

.g34-zig-row:hover { border-color: var(--g34-accent-primary); }

.g34-zig-thumb {
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 16/10;
}

@media (min-width: 640px) {
  .g34-zig-thumb { width: 40%; aspect-ratio: auto; min-height: 160px; }
}

.g34-zig-body { flex: 1; padding: 12px 14px 16px; min-width: 0; }

.g34-zig-index {
  color: var(--g34-accent-secondary);
  font-size: 0.75rem;
  display: block;
  margin-bottom: 4px;
}

/* Tape carousel — odd modules */
.g34-tape-carousel {
  display: flex;
  align-items: center;
  gap: 10px;
}

.g34-tape-shelf {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  flex: 1;
  padding: 4px 0;
  scrollbar-width: thin;
}

.g34-tape-card {
  flex: 0 0 220px;
  scroll-snap-align: start;
  max-width: 220px;
}

@media (max-width: 767px) {
  .g34-tape-carousel { gap: 6px; }

  .g34-tape-shelf {
    gap: 4px;
    align-items: flex-start;
  }

  .g34-tape-card {
    flex: 0 0 calc(50% - 2px);
    max-width: calc(50% - 2px);
  }

  .g34-tape-card .g34-card-play { display: none; }

  .g34-tape-card .brief-comment-game {
    font-size: 0.7rem;
    margin: 0;
  }

  .g34-tape-card .special-card-content,
  .g34-tape-card .g34-card-info {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 2px;
    flex: 0 0 auto;
    padding: 6px 8px 8px;
  }

  .g34-tape-card .game-title {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.25;
  }

  .g34-tape-card .game-star {
    margin: 0;
  }

  .g34-tape-btn {
    width: 32px;
    height: 32px;
  }
}

.g34-tape-btn {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: 2px solid var(--g34-accent-primary);
  background: var(--g34-bg-secondary);
  color: var(--g34-accent-primary);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}

.g34-tape-btn:hover:not(:disabled) {
  background: var(--g34-accent-primary);
  color: #fff;
}

.g34-tape-btn:disabled { opacity: 0.35; cursor: default; }

/* Directory */
.g34-directory { padding: 32px 0 48px; }

.g34-directory-list { display: flex; flex-direction: column; gap: 8px; }

.g34-directory-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--g34-bg-secondary);
  border: 2px solid #333;
  border-radius: 8px;
  transition: border-color 0.2s, transform 0.2s;
}

.g34-directory-row:hover {
  border-color: var(--g34-accent-secondary);
  transform: translateX(4px);
}

.g34-directory-num { color: var(--g34-accent-primary); font-size: 0.8rem; }
.g34-directory-name { flex: 1; }
.g34-directory-go { color: var(--g34-accent-secondary); }

/* Star ratings — tight box; don't inherit body line-height:1.6 */
.game-star {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 2px;
  margin: 0;
  padding: 0;
  width: auto;
  max-width: 100%;
  min-height: 0;
  line-height: 1;
  font-size: 0.75rem;
}

.game-star .star-full,
.game-star .star-empty,
.game-star .star-half,
.game-star i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  margin: 0;
  padding: 0;
  line-height: 1;
  font-size: 1em;
  font-style: normal;
}

.game-star .star-icon::before,
.game-star .star-full::before,
.game-star .fa-star::before,
.star-rating .star-full::before {
  content: '★';
  color: var(--g34-star-full);
  text-shadow: 0 0 6px var(--g34-star-glow);
  font-size: 1em;
  line-height: 1;
}

.game-star .star-half::before,
.star-rating .star-half::before {
  content: '★';
  color: var(--g34-star-full);
  opacity: 0.55;
  text-shadow: 0 0 4px var(--g34-star-glow);
}

.game-star .star-empty::before,
.game-star .fa-star-o::before,
.game-star .far.fa-star::before,
.star-rating .star-empty::before {
  content: '☆';
  color: var(--g34-star-empty);
  text-shadow: none;
  font-size: 1em;
  line-height: 1;
}

.special-card-content .game-star,
.g34-card-info .game-star {
  margin: 0 0 2px;
}

.game-star--detail-hero {
  font-size: 1rem;
}

.game-star--detail-hero .star-full::before,
.game-star--detail-hero .star-empty::before { font-size: 1em; }

/* List title ellipsis */
.article-list .game-title,
.article-list .card-title,
.special-card .game-title,
.game-card .card-title,
.carousel-card .game-title {
  display: block;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.special-card-content,
.card-content { min-width: 0; }

.article-list .special-card-content,
.article-list .carousel-card-content {
  padding: 12px 14px 16px;
}

@media (max-width: 768px) {
  .article-list .g34-hot-grid .special-card-content,
  .article-list .g34-module-grid .special-card-content,
  .article-list .g34-game-grid .special-card-content,
  .g34-tags-content .article-list .special-card-content,
  .article-list .g34-zigzag .special-card-content,
  .article-list .g34-tape-card .special-card-content {
    padding: 6px 8px 8px;
  }

  .article-list .g34-tape-card .special-card-content {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 2px;
    flex: 0 0 auto;
  }

  .article-list .g34-tape-card .game-title {
    margin: 0;
    line-height: 1.25;
  }

  .article-list .g34-tape-card .game-star {
    margin: 0;
  }

  .g34-tags-content .g34-game-grid:not(.list-view) .g34-card-tags,
  .g34-tags-content .g34-game-grid:not(.list-view) .g34-card-play {
    display: none;
  }
}

.g34-pick-section { background: transparent; }

/* Tags page */
.g34-tags-page { flex: 1; }

.g34-page-header { margin-bottom: 24px; }

.g34-tags-head-wrap { padding-top: 20px; }

.g34-tags-head h1 { font-size: clamp(0.75rem, 3vw, 1rem); margin-bottom: 8px; }

.tag-h2 {
  font-size: 0.85rem;
  color: var(--g34-text-secondary);
  font-weight: 400;
  margin: 0 0 16px;
}

.g34-sidebar-link.active,
.g34-drawer-link.active {
  border-color: var(--g34-accent-primary);
  color: var(--g34-accent-primary);
}

.g34-tags-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.g34-view-toggle { display: flex; gap: 8px; }

.g34-btn-view {
  padding: 8px 16px;
  font-family: var(--g34-font-pixel);
  font-size: 0.45rem;
  background: var(--g34-bg-secondary);
  border: 2px solid #333;
  color: var(--g34-text-primary);
  border-radius: 6px;
  cursor: pointer;
}

.g34-btn-view.active {
  border-color: var(--g34-accent-primary);
  color: var(--g34-accent-primary);
}

.g34-tags-layout {
  display: flex;
  gap: 24px;
  padding-bottom: 40px;
}

.g34-sidebar {
  width: 250px;
  flex-shrink: 0;
  display: none;
}

@media (min-width: 769px) {
  .g34-sidebar { display: block; }
  .g34-filter-btn { display: none; }
}

.g34-sidebar-card {
  background: var(--g34-bg-secondary);
  border: 2px solid #333;
  padding: 16px;
  border-radius: 8px;
  position: sticky;
  top: calc(var(--g34-nav-h) + 16px);
}

.g34-sidebar-card h3 { font-size: 0.55rem; margin-bottom: 12px; }

.g34-sidebar-nav { display: flex; flex-direction: column; gap: 6px; }

.g34-sidebar-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 0.85rem;
  border: 1px solid transparent;
  transition: border-color 0.2s;
}

.g34-sidebar-link:hover { border-color: var(--g34-border); }

.g34-tags-content { flex: 1; min-width: 0; }

.g34-tags-content .g34-game-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

@media (max-width: 768px) {
  .g34-tags-content .g34-game-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
  }
}

.g34-tags-content .g34-game-grid.list-view {
  grid-template-columns: 1fr;
  gap: 12px;
}

.g34-tags-content .g34-game-grid.list-view .g34-game-card {
  flex-direction: row;
  align-items: stretch;
  min-height: 0;
}

.g34-tags-content .g34-game-grid.list-view .g34-card-thumb {
  width: 132px;
  flex: 0 0 132px;
  aspect-ratio: 4 / 3;
  align-self: stretch;
  height: auto;
}

.g34-tags-content .g34-game-grid.list-view .g34-card-thumb img {
  height: 100%;
}

.g34-tags-content .g34-game-grid.list-view .g34-card-info,
.g34-tags-content .g34-game-grid.list-view .special-card-content {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 12px 14px;
}

.g34-tags-content .g34-game-grid.list-view .game-title,
.g34-tags-content .g34-game-grid.list-view .card-title {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.3;
}

.g34-tags-content .g34-game-grid.list-view .card-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  min-width: 0;
}

.g34-tags-content .g34-game-grid.list-view .game-star {
  margin: 2px 0;
}

.g34-tags-content .g34-game-grid.list-view .g34-card-tags {
  margin-top: 0;
}

.g34-tags-content .g34-game-grid.list-view .brief-comment-game {
  margin: 0;
  -webkit-line-clamp: 1;
}

.g34-tags-content .g34-game-grid.list-view .g34-card-play {
  flex: 0 0 48px;
  width: 48px;
  max-width: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 4px;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: 0.12em;
  line-height: 1;
}

@media (max-width: 768px) {
  .g34-tags-content .g34-game-grid.list-view {
    gap: 8px;
  }

  .g34-tags-content .g34-game-grid.list-view .g34-game-card {
    min-height: 84px;
  }

  .g34-tags-content .g34-game-grid.list-view .g34-card-thumb {
    width: 92px;
    flex: 0 0 92px;
    aspect-ratio: auto;
    align-self: stretch;
    min-height: 84px;
  }

  .g34-tags-content .g34-game-grid.list-view .g34-card-info,
  .g34-tags-content .g34-game-grid.list-view .special-card-content,
  .article-list.list-view .g34-game-card .special-card-content {
    gap: 6px;
    padding: 10px 12px;
  }

  .g34-tags-content .g34-game-grid.list-view .game-title,
  .g34-tags-content .g34-game-grid.list-view .card-title {
    font-size: 0.84rem;
    line-height: 1.25;
  }

  .g34-tags-content .g34-game-grid.list-view .card-meta {
    gap: 6px;
  }

  .g34-tags-content .g34-game-grid.list-view .game-star {
    font-size: 0.65rem;
    margin: 2px 0;
  }

  .g34-tags-content .g34-game-grid.list-view .g34-card-tags {
    gap: 4px;
    max-height: 1.3rem;
  }

  .g34-tags-content .g34-game-grid.list-view .g34-tag-chip {
    font-size: 0.58rem;
    padding: 1px 5px;
  }

  /* Whole card is a link — drop wide PLAY strip so title gets the width */
  .g34-tags-content .g34-game-grid.list-view .g34-card-play {
    display: none;
  }

  /* Brief eats horizontal/vertical room; tags + title carry the browse scan */
  .g34-tags-content .g34-game-grid.list-view .brief-comment-game {
    display: none;
  }
}

/* Mobile drawer */
.g34-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 1100;
  border: none;
  cursor: pointer;
}

.g34-tags-drawer {
  position: fixed;
  inset: 0;
  z-index: 1101;
  pointer-events: none;
}

body.g34-drawer-open .g34-tags-drawer { pointer-events: none; }
body.g34-drawer-open .g34-drawer-panel { pointer-events: auto; }

.g34-drawer-panel {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(300px, 85vw);
  background: var(--g34-bg-secondary);
  border-right: 3px solid var(--g34-accent-primary);
  transform: translateX(-100%);
  transition: transform 0.25s ease;
  overflow-y: auto;
  z-index: 1102;
}

body.g34-drawer-open .g34-drawer-panel { transform: translateX(0); }

.g34-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  border-bottom: 2px solid #333;
}

.g34-drawer-head h2 { font-size: 0.55rem; margin: 0; }

.g34-drawer-close {
  background: none;
  border: none;
  color: var(--g34-text-primary);
  font-size: 1.5rem;
  cursor: pointer;
  line-height: 1;
}

.g34-drawer-list { padding: 12px; display: flex; flex-direction: column; gap: 4px; }

.g34-drawer-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  font-size: 0.85rem;
}

/* Footer */
.g34-footer {
  background: #0a0a0f;
  border-top: 3px solid var(--g34-accent-secondary);
  padding: 40px 20px;
  margin-top: 40px;
}

.g34-footer-container { max-width: var(--g34-max); margin: 0 auto; text-align: center; }

.g34-footer-gameover { margin-bottom: 24px; }
.g34-footer-gameover .g34-font-pixel { font-size: clamp(0.65rem, 2.5vw, 0.85rem); }

.g34-footer-desc { color: var(--g34-text-secondary); font-size: 0.9rem; margin-bottom: 16px; }

.g34-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 20px;
  margin-bottom: 16px;
}

.g34-footer-links a {
  font-family: var(--g34-font-mono);
  font-size: 0.8rem;
  color: var(--g34-text-secondary);
  transition: color 0.2s;
}

.g34-footer-links a:hover { color: var(--g34-accent-primary); }

.g34-social-icon {
  font-size: 1.5rem;
  margin: 0 8px;
  display: inline-block;
  transition: transform 0.2s;
}

.g34-social-icon:hover { transform: scale(1.3); }

.g34-footer-copy { color: var(--g34-text-muted); font-size: 0.8rem; margin-top: 16px; }

/* Back to top */
.g34-back-top, .back-to-top {
  position: fixed;
  bottom: calc(var(--g34-mob-h) + 16px);
  right: 16px;
  width: 44px;
  height: 44px;
  border: 2px solid var(--g34-accent-primary);
  background: var(--g34-bg-secondary);
  color: var(--g34-accent-primary);
  border-radius: 50%;
  cursor: pointer;
  z-index: 900;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 768px) {
  .g34-back-top, .back-to-top { bottom: 24px; }
}

.g34-back-top.show, .back-to-top.show { opacity: 1; visibility: visible; }

/* Legal / empty */
.g34-legal {
  padding: 32px 0 48px;
  color: var(--g34-text-secondary);
  line-height: 1.7;
}

.g34-legal h1, .g34-legal h2, .g34-legal h3 { color: var(--g34-text-primary); }

/* Override common/* 800px so legal copy matches .g34-page-wrap / ad width */
.g34-body .g34-legal .contact-container,
.g34-body .g34-legal .policy-content,
.g34-body .g34-legal .disclaimer-container,
.g34-body .g34-legal .terms-content {
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

.game-empty, .g34-empty-inline, .g34-empty-detail {
  text-align: center;
  padding: 48px 24px;
  color: var(--g34-text-secondary);
}

.game-empty-title { font-size: 1rem; margin-bottom: 12px; }

.g34-auth-page {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
}

.g34-auth-card {
  width: 100%;
  max-width: 420px;
  background: var(--g34-bg-secondary);
  padding: 32px 24px;
  border-radius: 12px;
}

.g34-auth-head { text-align: center; font-size: 0.75rem; margin-bottom: 20px; }

.g34-profile-page { flex: 1; padding: 24px 0 48px; }

.g34-profile-layout {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

@media (min-width: 768px) {
  .g34-profile-layout { flex-direction: row; align-items: flex-start; }
  .g34-profile-sidebar { width: 260px; flex-shrink: 0; padding: 20px; border-radius: 12px; }
  .g34-profile-main { flex: 1; min-width: 0; }
}

.g34-profile-card { padding: 20px; border-radius: 12px; margin-bottom: 16px; }

.g34-profile-card-title { font-size: 0.65rem; margin: 0; }

.g34-related { padding: 32px 0; content-visibility: auto; contain-intrinsic-size: auto 280px; }

.g34-related .g34-section-title {
  font-size: clamp(0.55rem, 2.2vw, 0.75rem);
  margin: 0;
  line-height: 1.45;
}

@media (max-width: 767px) {
  .g34-related { padding: 20px 0 28px; }

  .g34-related .g34-section-head { margin-bottom: 12px; }

  .g34-related .g34-section-title {
    font-size: 0.55rem;
    letter-spacing: 0.02em;
  }

  .g34-related .g34-tape-carousel { gap: 8px; }
}

/* Detail page */
body.g34-body--detail { padding-top: calc(var(--g34-nav-h) + env(safe-area-inset-top, 0px)); }
.g34-detail-article { padding-bottom: 40px; }

.g34-detail-banner {
  position: relative;
  min-height: min(48vw, 440px);
  max-height: 480px;
  overflow: hidden;
  background: var(--g34-bg-primary);
}

.g34-detail-banner-img {
  width: 100%;
  height: 100%;
  min-height: min(48vw, 440px);
  object-fit: cover;
  object-position: center 30%;
}

.g34-detail-banner-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,10,15,0.75) 0%, rgba(10,10,15,0.2) 30%, rgba(10,10,15,0.85) 80%, rgba(10,10,15,0.98) 100%);
  pointer-events: none;
}

.g34-detail-banner-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 28px;
  z-index: 2;
}

.g34-detail-crumb .breadcrumb-list { margin: 0 0 12px; }
.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: 0.76rem;
  font-family: var(--g34-font-mono);
}

.breadcrumb-item a,
.breadcrumb-item span[aria-current="page"] {
  color: rgba(255,255,255,0.88);
  text-shadow: 0 1px 3px rgba(0,0,0,0.65);
}

.breadcrumb-item a:hover { color: var(--g34-accent-secondary); }
.breadcrumb-separator { color: rgba(255,255,255,0.45); }

.g34-detail-banner-content h1 {
  font-size: clamp(0.65rem, 3vw, 1rem);
  margin: 0 0 8px;
  text-shadow: var(--g34-neon-glow);
}

.g34-detail-sheet {
  position: relative;
  z-index: 3;
  margin-top: -28px;
  padding-bottom: 16px;
}

.g34-detail-panel {
  border-radius: 12px;
  overflow: hidden;
  background: var(--g34-bg-secondary);
}

.g34-detail-hero-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 2px solid #333;
}

.g34-detail-tags { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; min-width: 0; }

.g34-detail-hint {
  margin: 8px 0 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
  width: 100%;
}

.g34-detail-facts {
  padding: 12px 20px;
  font-size: 0.8rem;
  color: var(--g34-text-secondary);
  border-bottom: 1px solid #333;
}

.g34-detail-prose { padding: 20px; }

.g34-detail-block {
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #333;
}

.g34-detail-block h2 {
  font-size: 0.6rem;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.g34-detail-block-num { color: var(--g34-accent-secondary); }

.g34-detail-quote {
  color: var(--g34-text-secondary);
  font-style: italic;
  margin: 0;
}

.rich-content { color: var(--g34-text-secondary); line-height: 1.7; }
.rich-content a { color: var(--g34-accent-secondary); }

@media (max-width: 767px) {
  .g34-detail-banner { min-height: 240px; }
  .g34-detail-banner-img { min-height: 240px; }
  .g34-detail-sheet { margin-top: -16px; }

  .g34-detail-hero-bar {
    padding: 14px 16px;
    gap: 10px;
  }

  /* Tags on their own row; cap at 2 so they never stretch the play row */
  .g34-detail-tags {
    flex: 1 1 100%;
    flex-wrap: nowrap;
    gap: 6px;
    overflow: hidden;
  }

  .g34-detail-tags .g34-tag-chip:nth-child(n + 3),
  .g34-detail-tags .tag-pill:nth-child(n + 3),
  .g34-detail-tags .g34-tag-chip--desk {
    display: none;
  }

  .g34-detail-hero-bar .action-buttons,
  .g34-detail-hero-bar .detail-play-cta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
  }

  .g34-detail-facts { padding: 12px 16px; }
  .g34-detail-prose { padding: 16px; }
}

/* Ad slots: match content column width (override CMS full-bleed / min-width:300px) */
.g34-body .g34-page-wrap.g34-ad-slot,
.g34-page .g34-page-wrap.g34-ad-slot {
  display: block;
  width: 100%;
  max-width: var(--g34-max);
  box-sizing: border-box;
  overflow: hidden;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
}

.g34-body .g34-legal-ad.g34-ad-slot,
.g34-page .g34-legal-ad.g34-ad-slot {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

@media (max-width: 767px) {
  .g34-body .g34-page-wrap.g34-ad-slot,
  .g34-page .g34-page-wrap.g34-ad-slot {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
  }
}

.g34-body .g34-page-wrap.g34-ad-slot .container,
.g34-body .g34-page-wrap.g34-ad-slot .ad-container,
.g34-body .g34-page-wrap.g34-ad-slot .banner-ad,
.g34-body .g34-page-wrap.g34-ad-slot .ad-content,
.g34-body .g34-page-wrap.g34-ad-slot > div,
.g34-body .g34-legal-ad .container,
.g34-body .g34-legal-ad .ad-container,
.g34-body .g34-legal-ad .ad-content,
.g34-page .g34-page-wrap.g34-ad-slot .container,
.g34-page .g34-page-wrap.g34-ad-slot .ad-container,
.g34-page .g34-page-wrap.g34-ad-slot .banner-ad,
.g34-page .g34-page-wrap.g34-ad-slot .ad-content,
.g34-page .g34-page-wrap.g34-ad-slot > div {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.g34-body .g34-page-wrap.g34-ad-slot .container,
.g34-body .g34-page-wrap.g34-ad-slot .ad-container,
.g34-body .g34-legal-ad .container,
.g34-body .g34-legal-ad .ad-container,
.g34-page .g34-page-wrap.g34-ad-slot .container,
.g34-page .g34-page-wrap.g34-ad-slot .ad-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.g34-body .g34-page-wrap.g34-ad-slot .ad-content,
.g34-body .g34-legal-ad .ad-content,
.g34-page .g34-page-wrap.g34-ad-slot .ad-content {
  display: block !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.g34-body .g34-page-wrap.g34-ad-slot iframe,
.g34-body .g34-page-wrap.g34-ad-slot ins,
.g34-body .g34-page-wrap.g34-ad-slot .ad-container > div,
.g34-page .g34-page-wrap.g34-ad-slot iframe,
.g34-page .g34-page-wrap.g34-ad-slot ins,
.g34-page .g34-page-wrap.g34-ad-slot .ad-container > div {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 767px) {
  .g34-body .g34-page-wrap.g34-ad-slot .ad-content,
  .g34-page .g34-page-wrap.g34-ad-slot .ad-content {
    min-height: 100px !important;
  }
}
