/*
 * GamesDen 16.28.74 Settings Contract
 * Single owner for Customizer-controlled runtime behavior. Loaded after main.css.
 */

:root {
  --gd-ease-ui: cubic-bezier(.22, .61, .36, 1);
  --gd-ease-premium: cubic-bezier(.19, 1, .22, 1);
  --gd-ease-out: cubic-bezier(.16, 1, .3, 1);
  --gd-motion-fast: .22s;
  --gd-motion-base: .34s;
  --gd-motion-card: .48s;
  --gd-motion-image: .62s;
  --gd-motion-panel: .34s;
  --gd-motion-nav: .26s;
  --gd-mobile-header-h: clamp(62px, var(--gd-header-h, 76px), 88px);
  --gd-sticky-offset: var(--gd-header-h);
  --gd-card-hover-shadow: 0 26px 72px rgba(0,0,0,.36), 0 0 30px color-mix(in srgb, var(--gd-accent) 7%, transparent);
  --gd-card-hover-transform: translate3d(0,-2px,0);
  --gd-button-hover-transform: translate3d(0,-1px,0);
  --gd-nav-hover-transform: translate3d(0,-1px,0);
  --gd-card-hover-border: color-mix(in srgb, var(--gd-accent) 32%, var(--gd-border));
  --gd-card-hover-glow-opacity: .42;
}

/* Dynamic variable consumers. */
.gd-shell { width: min(100% - 40px, var(--gd-shell)); }
.gd-site-main .gd-game-grid:not(.gd-related-grid) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--gd-card-min)), 1fr));
}
.gd-game-card,
.gd-post-card {
  border-radius: var(--gd-card-radius);
  box-shadow: var(--gd-style-card-shadow, var(--gd-card-shadow));
}
.gd-panel,
.gd-page-card,
.gd-empty-state,
.gd-archive-hero,
.gd-page-header,
.gd-post-hero,
.gd-storefront-panels > *,
.gd-filter-bar,
.gd-filter-pro,
.gd-download-card,
.gd-app-summary-panel,
.gd-overview-panel,
.gd-requirements-panel,
.gd-install-panel,
.gd-fallback-media {
  border-radius: var(--gd-radius);
  border-color: var(--gd-border);
  box-shadow: var(--gd-style-panel-shadow, var(--gd-panel-shadow));
}
.gd-card-media,
.gd-game-card .gd-card-media,
.gd-post-card .gd-card-media {
  display: block;
  aspect-ratio: var(--gd-card-image-ratio);
  border-radius: var(--gd-card-radius) var(--gd-card-radius) 0 0;
  border-bottom: 0;
  box-shadow: none;
  overflow: hidden;
  contain: paint;
  line-height: 0;
  margin-bottom: -1px;
  isolation: isolate;
  background-clip: padding-box;
  transform: translateZ(0);
}
.gd-card-media img,
.gd-game-card .gd-card-media img,
.gd-post-card .gd-card-media img {
  display: block;
  width: 100%;
  height: calc(100% + 1px);
  max-width: none;
  object-fit: var(--gd-card-image-fit);
  object-position: center center;
  border-radius: inherit;
  backface-visibility: hidden;
  transform: translateZ(0) scale(1.0001);
}

.gd-card-media::before,
.gd-card-media::after,
.gd-game-card .gd-card-media::before,
.gd-game-card .gd-card-media::after,
.gd-post-card .gd-card-media::before,
.gd-post-card .gd-card-media::after {
  content: none;
  display: none;
}
.gd-btn,
.gd-header-cta,
.gd-card-cta,
.gd-filter-actions button,
.gd-filter-actions a,
.gd-download-buttons a,
.gd-download-buttons button,
.gd-text-link,
button.gd-btn,
input[type="submit"],
button[type="submit"] { border-radius: var(--gd-button-radius); }
.gd-header-search,
.gd-header-search input,
.gd-header-search button,
.gd-hero-search,
.gd-hero-search input,
.gd-hero-search button,
.gd-filter-field,
.gd-filter-field input,
.gd-filter-field select,
input[type="search"],
input[type="text"],
input[type="email"],
input[type="url"],
select,
textarea { border-radius: var(--gd-input-radius); }
.gd-featured-hero,
.gd-home-slider,
.gd-home-slide,
.gd-home-slides { border-radius: var(--gd-hero-radius); }
.gd-app-media-card,
.gd-media-slider,
.gd-media-stage-wrap,
.gd-media-stage,
.gd-media-frame,
.gd-media-image,
.gd-video-stage,
.gd-lightbox-dialog,
.gd-lightbox-frame {
  border-radius: var(--gd-media-radius);
  box-shadow: var(--gd-style-media-shadow, var(--gd-media-shadow));
}
.gd-media-thumb,
.gd-media-thumb-art,
.gd-lightbox-close,
.gd-lightbox-nav,
.gd-media-nav,
.gd-home-nav { border-radius: min(var(--gd-media-radius), 999px); }
.gd-featured-hero .gd-hero-title,
.gd-home-slide .gd-hero-title { font-size: min(clamp(36px, 6.7vw, 72px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale))); }
.gd-section-head h2,
.gd-media-head h2 { font-size: clamp(28px, 3.3vw, calc(var(--gd-section-title-max) * var(--gd-heading-scale))); }
.gd-archive-hero h1,
.gd-page-header h1 { font-size: clamp(38px, 5vw, calc(var(--gd-archive-title-max) * var(--gd-heading-scale))); }
.gd-single-steam .gd-app-titlebar h1,
.gd-post-hero h1 { font-size: clamp(34px, 5vw, calc(var(--gd-single-title-max) * var(--gd-heading-scale))); }
.gd-card-title { font-size: var(--gd-card-title-size); }
body[class*="gd-site-preset-"] { background: var(--gd-page-bg, var(--gd-bg)); }


/* Card seam guard. Prevents subpixel lines between scaled media and the card body. */
.gd-game-card .gd-card-body,
.gd-post-card .gd-card-body {
  margin-top: 0;
  background-clip: padding-box;
  overflow: visible;
}
.gd-card-badges {
  overflow: visible;
  min-height: 0;
  padding-block: 2px;
  align-items: flex-start;
}
.gd-card-badges .gd-badge {
  box-sizing: border-box;
  flex: 0 1 auto;
  max-width: 100%;
  transform: translateZ(0);
}
.gd-card-badges .gd-badge:hover,
.gd-card-badges .gd-badge:focus-visible {
  transform: translateZ(0);
}

/* Background effects. */
body.gd-no-background-effects { background: var(--gd-bg); }
body.gd-no-background-effects::before { display: none; content: none; background: none; }
body.gd-no-background-effects .gd-section-muted,
body.gd-no-background-effects .gd-featured-hero,
body.gd-no-background-effects .gd-game-card,
body.gd-no-background-effects .gd-post-card,
body.gd-no-background-effects .gd-panel,
body.gd-no-background-effects .gd-app-media-card,
body.gd-no-background-effects .gd-home-slides { background-image: none; }

/* Motion.
 * Smooth motion is the default baseline. The Customizer setting disables it
 * with body.gd-no-motion. This keeps the control reliable on fresh installs,
 * cached pages, and Customizer preview refreshes.
 */
body.gd-motion-on {
  scroll-behavior: smooth;
}

.gd-btn,
.gd-header-cta,
.gd-card-cta,
.gd-card-overlay,
.gd-filter-actions a,
.gd-filter-actions button,
.gd-filter-clear,
.gd-download-buttons a,
.gd-download-buttons button,
.gd-text-link,
.gd-menu a,
.gd-menu .sub-menu,
.gd-menu-toggle span:not(.screen-reader-text),
.gd-submenu-toggle::before,
.gd-card-footer a,
.gd-category-cloud a,
.gd-category-cloud .gd-badge,
.gd-badge,
.gd-card-chip,
.gd-media-thumb,
.gd-media-thumb::before,
.gd-home-nav,
.gd-media-nav,
.gd-related-nav,
.gd-lightbox-nav,
.gd-filter-field,
.gd-filter-field input,
.gd-filter-field select,
.page-numbers,
input,
select,
textarea,
button {
  transition-property: color, background-color, background, border-color, box-shadow, opacity, transform, filter, visibility;
  transition-duration: var(--gd-motion-fast);
  transition-timing-function: var(--gd-ease-ui);
}

.gd-game-card,
.gd-post-card,
.gd-panel,
.gd-page-card,
.gd-download-card,
.gd-app-summary-panel,
.gd-app-media-card,
.gd-filter-bar,
.gd-filter-pro,
.gd-media-stage-wrap {
  transform: translate3d(0,0,0);
  transition-property: transform, border-color, box-shadow, background-color, background, opacity, filter;
  transition-duration: var(--gd-motion-card);
  transition-timing-function: var(--gd-ease-premium);
}

.gd-card-media img,
.gd-card-image,
.gd-card-placeholder,
.gd-summary-poster-img,
.gd-media-backdrop,
.gd-media-frame img,
.gd-media-image img {
  transform-origin: center center;
  transition-property: transform, filter, opacity;
  transition-duration: var(--gd-motion-image);
  transition-timing-function: var(--gd-ease-premium);
}

.gd-game-card::before,
.gd-game-card::after,
.gd-post-card::before,
.gd-post-card::after,
.gd-card-shade,
.gd-home-slide,
.gd-media-slide,
.gd-lightbox,
.gd-nav.gd-menu-panel {
  transition-property: opacity, visibility, transform, background, border-color, box-shadow;
  transition-duration: var(--gd-motion-panel);
  transition-timing-function: var(--gd-ease-out);
  transition-behavior: allow-discrete;
}

.gd-home-nav,
.gd-media-nav,
.gd-related-nav,
.gd-lightbox-nav {
  transition-duration: var(--gd-motion-nav);
}

.gd-filter-pro .gd-filter-actions button::after {
  transition: transform var(--gd-motion-base) var(--gd-ease-out);
}

body.gd-motion-on .gd-game-card:hover,
body.gd-motion-on .gd-post-card:hover,
body.gd-motion-on .gd-card-media:hover img,
body.gd-motion-on .gd-btn:hover,
body.gd-motion-on .gd-download-buttons a:hover,
body.gd-motion-on .gd-media-thumb:hover {
  will-change: transform;
}

.gd-btn:hover,
.gd-download-buttons a:hover,
.gd-text-link:hover,
.gd-filter-clear:hover,
.gd-category-cloud a:hover,
.gd-category-cloud .gd-badge:hover,
.gd-media-thumb:hover {
  transform: var(--gd-button-hover-transform);
}
.gd-menu a:hover,
.gd-menu .current-menu-item > a,
.gd-menu .current-menu-ancestor > a {
  transform: var(--gd-nav-hover-transform);
}
.gd-related-nav:hover {
  transform: var(--gd-button-hover-transform);
}
.gd-home-nav:hover,
.gd-home-nav:focus-visible,
.gd-home-nav:active {
  transform: translateY(-50%);
}
.gd-media-stage .gd-media-nav:hover,
.gd-media-stage .gd-media-nav:focus-visible,
.gd-media-stage .gd-media-nav:active,
.gd-media-nav:hover,
.gd-media-nav:focus-visible,
.gd-media-nav:active {
  transform: translateY(-50%);
}
.gd-filter-pro .gd-filter-actions button:hover::after {
  transform: translateX(120%);
}

body.gd-no-motion,
body.gd-no-motion *,
body.gd-no-motion *::before,
body.gd-no-motion *::after {
  animation-duration: 1ms;
  animation-delay: 0ms;
  animation-iteration-count: 1;
  transition-duration: 1ms;
  transition-delay: 0ms;
  scroll-behavior: auto;
}
body.gd-no-motion .gd-game-card:hover,
body.gd-no-motion .gd-post-card:hover,
body.gd-no-motion .gd-card-media img,
body.gd-no-motion .gd-card-image,
body.gd-no-motion .gd-menu a:hover,
body.gd-no-motion .gd-btn:hover,
body.gd-no-motion .gd-download-buttons a:hover,
body.gd-no-motion .gd-text-link:hover,
body.gd-no-motion .gd-media-thumb:hover,
body.gd-no-motion .gd-related-nav:hover,
body.gd-no-motion .gd-lightbox-nav:hover,
body.gd-no-motion .gd-category-cloud a:hover,
body.gd-no-motion .gd-category-cloud .gd-badge:hover,
body.gd-no-motion .gd-filter-clear:hover {
  transform: none;
  filter: none;
}
body.gd-no-motion .gd-home-nav:hover,
body.gd-no-motion .gd-home-nav:focus-visible,
body.gd-no-motion .gd-home-nav:active {
  transform: translateY(-50%);
  filter: none;
}
body.gd-no-motion .gd-media-stage .gd-media-nav:hover,
body.gd-no-motion .gd-media-stage .gd-media-nav:focus-visible,
body.gd-no-motion .gd-media-stage .gd-media-nav:active,
body.gd-no-motion .gd-media-nav:hover,
body.gd-no-motion .gd-media-nav:focus-visible,
body.gd-no-motion .gd-media-nav:active {
  transform: translateY(-50%);
  filter: none;
}


/* Runtime first-paint guard. The html-level prepaint guard lives inline in header.php. */
body:not(.gd-page-ready) *,
body:not(.gd-page-ready) *::before,
body:not(.gd-page-ready) *::after {
  transition: none;
  animation: none;
}

/* Header. */
body.gd-header-fixed { --gd-sticky-offset: var(--gd-live-header-h, var(--gd-header-h)); }
body.gd-header-fixed .gd-header,
.gd-header.gd-header-is-fixed { position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 10000; }
body.admin-bar.gd-header-fixed .gd-header { top: 32px; }
body.gd-header-fixed .gd-site-main { padding-top: var(--gd-live-header-h, var(--gd-header-h)); }
body.gd-header-static,
body.gd-header-not-sticky { --gd-sticky-offset: 0px; }
body.gd-header-static .gd-header,
body.gd-header-not-sticky .gd-header,
.gd-header.gd-header-is-static { position: relative; top: auto; left: auto; right: auto; }
body.gd-header-static .gd-site-main,
body.gd-header-not-sticky .gd-site-main { padding-top: 0; }
html { scroll-padding-top: calc(var(--gd-sticky-offset, var(--gd-header-h)) + 24px); }
.gd-header { min-height: var(--gd-header-h); border-bottom-color: rgba(148, 163, 184, var(--gd-header-border-alpha)); }
.gd-header-inner { min-height: var(--gd-header-h); }
.gd-custom-logo { max-height: var(--gd-header-logo-h); }
.gd-brand-mark { width: var(--gd-header-mark-size); height: var(--gd-header-mark-size); border-radius: min(var(--gd-button-radius), var(--gd-radius)); }
.gd-menu { gap: var(--gd-header-gap); }
.gd-menu a { font-size: var(--gd-header-nav-font); border-radius: min(var(--gd-button-radius), 999px); }
.gd-header-search { width: min(100%, var(--gd-header-search-w)); }
body.gd-header-glass .gd-header,
.gd-header.gd-header-style-glass { background: var(--gd-style-header-bg, rgba(5, 8, 18, var(--gd-header-bg-alpha))); backdrop-filter: blur(var(--gd-header-blur)); -webkit-backdrop-filter: blur(var(--gd-header-blur)); }
body.gd-header-solid .gd-header,
.gd-header.gd-header-style-solid { background: linear-gradient(180deg, color-mix(in srgb, var(--gd-bg-2) 96%, #fff 4%), var(--gd-bg-2)); backdrop-filter: none; -webkit-backdrop-filter: none; }
body.gd-header-minimal .gd-header,
.gd-header.gd-header-style-minimal { background: linear-gradient(180deg, color-mix(in srgb, var(--gd-bg) 88%, var(--gd-bg-2) 12%), color-mix(in srgb, var(--gd-bg) 78%, var(--gd-bg-2) 22%)); border-bottom-color: rgba(148, 163, 184, .12); box-shadow: none; backdrop-filter: blur(min(var(--gd-header-blur), 8px)); -webkit-backdrop-filter: blur(min(var(--gd-header-blur), 8px)); }
body.gd-header-minimal .gd-brand-mark,
.gd-header.gd-header-style-minimal .gd-brand-mark,
body.gd-header-minimal .gd-header-search,
.gd-header.gd-header-style-minimal .gd-header-search { background: color-mix(in srgb, var(--gd-bg-2) 72%, var(--gd-bg) 28%); border-color: rgba(148, 163, 184, .16); }
body.gd-header-minimal .gd-menu a,
.gd-header.gd-header-style-minimal .gd-menu a { background: transparent; border-color: transparent; }
body.gd-header-minimal .gd-menu a:hover,
body.gd-header-minimal .gd-menu .current-menu-item > a,
body.gd-header-minimal .gd-menu .current-menu-ancestor > a,
.gd-header.gd-header-style-minimal .gd-menu a:hover,
.gd-header.gd-header-style-minimal .gd-menu .current-menu-item > a,
.gd-header.gd-header-style-minimal .gd-menu .current-menu-ancestor > a { background: rgba(148, 163, 184, .09); border-color: rgba(148, 163, 184, .16); }
body.gd-header-border-off .gd-header,
.gd-header.gd-header-no-border { border-bottom-color: transparent; }
body.gd-header-border-on .gd-header,
.gd-header.gd-header-has-border { border-bottom-color: rgba(148, 163, 184, var(--gd-header-border-alpha)); }
body.gd-header-shadow-off .gd-header,
.gd-header.gd-header-no-shadow,
body.gd-header-minimal .gd-header { box-shadow: none; }
body.gd-header-shadow-on:not(.gd-header-minimal) .gd-header,
.gd-header.gd-header-has-shadow:not(.gd-header-style-minimal) { box-shadow: var(--gd-header-shadow-value); }
body.gd-header-width-full .gd-header > .gd-shell,
.gd-header.gd-header-width-full > .gd-shell { width: min(100% - 24px, 100%); max-width: none; }
body.gd-header-width-contained .gd-header > .gd-shell,
.gd-header.gd-header-width-contained > .gd-shell { width: min(100% - 40px, var(--gd-shell)); max-width: var(--gd-shell); }
body.gd-header-layout-split .gd-header-inner,
.gd-header.gd-header-layout-split .gd-header-inner { justify-content: space-between; }
body.gd-header-layout-centered .gd-header-inner,
.gd-header.gd-header-layout-centered .gd-header-inner { justify-content: center; }
body.gd-header-layout-centered .gd-brand,
.gd-header.gd-header-layout-centered .gd-brand { margin-right: auto; }
body.gd-header-layout-centered .gd-nav,
.gd-header.gd-header-layout-centered .gd-nav { margin-left: auto; margin-right: auto; }
body.gd-header-layout-compact .gd-header-inner,
.gd-header.gd-header-layout-compact .gd-header-inner { gap: max(10px, calc(var(--gd-header-gap) * .72)); }
body.gd-header-layout-compact .gd-nav,
.gd-header.gd-header-layout-compact .gd-nav { gap: max(8px, calc(var(--gd-header-gap) * .65)); }
body.gd-header-layout-compact .gd-header-search,
.gd-header.gd-header-layout-compact .gd-header-search { display: flex; width: min(100%, calc(var(--gd-header-search-w) * .78)); max-width: 22vw; }
body.gd-header-search-box .gd-header-search,
.gd-header.gd-header-search-style-box .gd-header-search { padding: 0; background: rgba(2,6,23,.52); border-radius: var(--gd-input-radius); }
body.gd-header-search-box .gd-header-search button,
.gd-header.gd-header-search-style-box .gd-header-search button { border-radius: 0 var(--gd-input-radius) var(--gd-input-radius) 0; }
body.gd-header-search-pill .gd-header-search,
.gd-header.gd-header-search-style-pill .gd-header-search { border-radius: var(--gd-input-radius); }
body.gd-header-search-underline .gd-header-search,
.gd-header.gd-header-search-style-underline .gd-header-search { padding: 0; border-width: 0 0 1px; border-radius: 0; background: transparent; }
body.gd-header-search-underline .gd-header-search input,
body.gd-header-search-underline .gd-header-search button,
.gd-header.gd-header-search-style-underline .gd-header-search input,
.gd-header.gd-header-search-style-underline .gd-header-search button { border-radius: 0; }
body.gd-header-cta-filled .gd-header-cta { background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2)); color: #031014; border-color: transparent; }
body.gd-header-cta-outline .gd-header-cta { background: transparent; color: var(--gd-accent); border-color: color-mix(in srgb, var(--gd-accent) 58%, transparent); }
body.gd-header-cta-ghost .gd-header-cta { background: rgba(255,255,255,.055); color: var(--gd-text); border-color: transparent; }

/* Site style presets. */
body[class*="gd-site-preset-"] .gd-game-card,
body[class*="gd-site-preset-"] .gd-post-card { background: radial-gradient(circle at 16% 0%, color-mix(in srgb, var(--gd-accent) 8%, transparent), transparent 14rem), var(--gd-style-card-bg, var(--gd-card)); border-color: var(--gd-border); }
body[class*="gd-site-preset-"] .gd-panel,
body[class*="gd-site-preset-"] .gd-page-card,
body[class*="gd-site-preset-"] .gd-empty-state,
body[class*="gd-site-preset-"] .gd-archive-hero,
body[class*="gd-site-preset-"] .gd-page-header,
body[class*="gd-site-preset-"] .gd-post-hero,
body[class*="gd-site-preset-"] .gd-storefront-panels > *,
body[class*="gd-site-preset-"] .gd-filter-bar,
body[class*="gd-site-preset-"] .gd-download-card,
body[class*="gd-site-preset-"] .gd-app-summary-panel,
body[class*="gd-site-preset-"] .gd-overview-panel,
body[class*="gd-site-preset-"] .gd-requirements-panel,
body[class*="gd-site-preset-"] .gd-install-panel { background: var(--gd-style-panel-bg, var(--gd-card)); border-color: var(--gd-border); }
body[class*="gd-site-preset-"] .gd-badge,
body[class*="gd-site-preset-"] .gd-card-topline span,
body[class*="gd-site-preset-"] .gd-meta-line a,
body[class*="gd-site-preset-"] .gd-category-cloud a,
body[class*="gd-site-preset-"] .gd-card-chip { background: var(--gd-style-badge-bg, color-mix(in srgb, var(--gd-accent) 12%, transparent)); border-color: color-mix(in srgb, var(--gd-accent) 22%, var(--gd-border)); }
body[class*="gd-site-preset-"] .gd-featured-hero::before { background: var(--gd-style-hero-overlay); }
body[class*="gd-site-preset-"] .gd-media-stage,
body[class*="gd-site-preset-"] .gd-media-stage-wrap,
body[class*="gd-site-preset-"] .gd-video-stage,
body[class*="gd-site-preset-"] .gd-media-frame { background: var(--gd-style-media-bg, #020617); }
body[class*="gd-site-preset-"] .gd-btn-primary,
body[class*="gd-site-preset-"] .gd-download-buttons a:first-child,
body[class*="gd-site-preset-"] .gd-header-cta {
  border-color: var(--gd-style-primary-button-border, transparent);
  background: var(--gd-style-primary-button-bg, linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2)));
  color: var(--gd-style-primary-button-text, var(--gd-button-text, #031014));
  box-shadow: var(--gd-style-primary-button-shadow, 0 18px 48px color-mix(in srgb, var(--gd-accent) 22%, transparent));
}
body[class*="gd-site-preset-"] .gd-btn-primary:hover,
body[class*="gd-site-preset-"] .gd-download-buttons a:first-child:hover,
body[class*="gd-site-preset-"] .gd-header-cta:hover {
  border-color: var(--gd-style-primary-button-hover-border, var(--gd-style-primary-button-border, transparent));
  background: var(--gd-style-primary-button-hover-bg, var(--gd-style-primary-button-bg, linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2))));
  color: var(--gd-style-primary-button-hover-text, var(--gd-style-primary-button-text, var(--gd-button-text, #031014)));
  box-shadow: var(--gd-style-primary-button-hover-shadow, var(--gd-style-hover-shadow, var(--gd-shadow-soft)));
}
body[class*="gd-site-preset-"] .gd-kicker,
body[class*="gd-site-preset-"] .gd-text-link,
body[class*="gd-site-preset-"] .gd-card-topline span { color: var(--gd-accent); }
body.gd-site-preset-minimal-black .gd-game-card,
body.gd-site-preset-minimal-black .gd-post-card,
body.gd-site-preset-minimal-black .gd-panel,
body.gd-site-preset-minimal-black .gd-filter-pro,
body.gd-site-preset-minimal-black .gd-app-summary-panel,
body.gd-site-preset-editorial .gd-game-card,
body.gd-site-preset-editorial .gd-post-card,
body.gd-site-preset-editorial .gd-panel,
body.gd-site-preset-editorial .gd-page-card { background-image: none; }
body[class*="gd-site-preset-"] .gd-category-cloud a:nth-child(4n+1) { --gd-cat-accent: var(--gd-accent); }
body[class*="gd-site-preset-"] .gd-category-cloud a:nth-child(4n+2) { --gd-cat-accent: var(--gd-accent-2); }
body[class*="gd-site-preset-"] .gd-category-cloud a:nth-child(4n+3) { --gd-cat-accent: var(--gd-download); }
body[class*="gd-site-preset-"] .gd-category-cloud a:nth-child(4n+4) { --gd-cat-accent: var(--gd-muted); }

/* Shadows and hover. */
body.gd-shadow-none { --gd-shadow: none; --gd-shadow-soft: none; --gd-card-shadow: none; --gd-card-hover-shadow: none; --gd-panel-shadow: none; --gd-media-shadow: none; --gd-header-shadow-value: none; }
body.gd-shadow-soft { --gd-shadow: 0 24px 80px rgba(0,0,0,.42); --gd-shadow-soft: 0 16px 42px rgba(0,0,0,.24); --gd-card-shadow: 0 18px 54px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.055); --gd-card-hover-shadow: 0 28px 80px rgba(0,0,0,.38), 0 0 34px color-mix(in srgb, var(--gd-accent) 8%, transparent); --gd-panel-shadow: 0 16px 42px rgba(0,0,0,.24); --gd-media-shadow: 0 22px 70px rgba(0,0,0,.36); --gd-header-shadow-value: 0 16px 48px rgba(0,0,0,.28); }
body.gd-shadow-deep { --gd-shadow: 0 34px 110px rgba(0,0,0,.58); --gd-shadow-soft: 0 22px 70px rgba(0,0,0,.38); --gd-card-shadow: 0 28px 90px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.055); --gd-card-hover-shadow: 0 40px 120px rgba(0,0,0,.62), 0 0 46px color-mix(in srgb, var(--gd-accent) 10%, transparent); --gd-panel-shadow: 0 24px 80px rgba(0,0,0,.44); --gd-media-shadow: 0 32px 100px rgba(0,0,0,.54); --gd-header-shadow-value: 0 22px 70px rgba(0,0,0,.42); }
body.gd-shadow-glow { --gd-shadow: 0 30px 90px rgba(0,0,0,.42), 0 0 44px color-mix(in srgb, var(--gd-accent) 18%, transparent); --gd-shadow-soft: 0 18px 52px rgba(0,0,0,.28), 0 0 24px color-mix(in srgb, var(--gd-accent) 13%, transparent); --gd-card-shadow: 0 22px 72px rgba(0,0,0,.38), 0 0 34px color-mix(in srgb, var(--gd-accent) 13%, transparent), inset 0 1px 0 rgba(255,255,255,.055); --gd-card-hover-shadow: 0 34px 104px rgba(0,0,0,.54), 0 0 72px color-mix(in srgb, var(--gd-accent) 26%, transparent); --gd-panel-shadow: 0 18px 52px rgba(0,0,0,.28), 0 0 28px color-mix(in srgb, var(--gd-accent) 12%, transparent); --gd-media-shadow: 0 28px 86px rgba(0,0,0,.44), 0 0 42px color-mix(in srgb, var(--gd-accent) 15%, transparent); --gd-header-shadow-value: 0 18px 54px rgba(0,0,0,.32), 0 0 30px color-mix(in srgb, var(--gd-accent) 13%, transparent); }
body.gd-shadow-none .gd-game-card,
body.gd-shadow-none .gd-post-card,
body.gd-shadow-none .gd-panel,
body.gd-shadow-none .gd-download-card,
body.gd-shadow-none .gd-app-summary-panel,
body.gd-shadow-none .gd-app-media-card,
body.gd-shadow-none .gd-home-slides,
body.gd-shadow-none .gd-filter-bar,
body.gd-shadow-none .gd-media-stage-wrap { box-shadow: none; }
body.gd-hover-none { --gd-card-hover-transform: none; --gd-card-hover-border: var(--gd-border); --gd-card-hover-glow-opacity: 0; }
body.gd-hover-subtle { --gd-card-hover-transform: translate3d(0,-1px,0); --gd-card-hover-border: color-mix(in srgb, var(--gd-accent) 20%, var(--gd-border)); --gd-card-hover-glow-opacity: .12; }
body.gd-hover-premium { --gd-card-hover-transform: translate3d(0,-3px,0); --gd-card-hover-border: color-mix(in srgb, var(--gd-accent) 32%, var(--gd-border)); --gd-card-hover-glow-opacity: .42; }
body.gd-hover-strong { --gd-card-hover-transform: translate3d(0,-5px,0) scale(1.003); --gd-card-hover-border: color-mix(in srgb, var(--gd-accent) 46%, var(--gd-border)); --gd-card-hover-glow-opacity: .68; }
body.gd-hover-none .gd-game-card:hover,
body.gd-hover-none .gd-post-card:hover { transform: none; box-shadow: var(--gd-style-card-shadow, var(--gd-card-shadow)); border-color: var(--gd-border); }
body.gd-hover-subtle .gd-game-card:hover,
body.gd-hover-subtle .gd-post-card:hover,
body.gd-hover-premium .gd-game-card:hover,
body.gd-hover-premium .gd-post-card:hover,
body.gd-hover-strong .gd-game-card:hover,
body.gd-hover-strong .gd-post-card:hover { transform: var(--gd-card-hover-transform); box-shadow: var(--gd-style-hover-shadow, var(--gd-card-hover-shadow)); border-color: var(--gd-card-hover-border); }
body.gd-hover-none .gd-game-card:hover::before,
body.gd-hover-none .gd-game-card:hover::after,
body.gd-hover-none .gd-post-card:hover::before,
body.gd-hover-none .gd-post-card:hover::after { opacity: 0; }
body.gd-hover-none .gd-game-card:hover .gd-card-media img,
body.gd-hover-none .gd-post-card:hover .gd-card-media img { transform: none; filter: none; }
body.gd-hover-subtle .gd-game-card:hover::before,
body.gd-hover-subtle .gd-game-card:hover::after,
body.gd-hover-premium .gd-game-card:hover::before,
body.gd-hover-premium .gd-game-card:hover::after,
body.gd-hover-strong .gd-game-card:hover::before,
body.gd-hover-strong .gd-game-card:hover::after { opacity: var(--gd-card-hover-glow-opacity); }
body.gd-hover-subtle .gd-game-card:hover .gd-card-media img,
body.gd-hover-subtle .gd-post-card:hover .gd-card-media img,
body.gd-hover-premium .gd-game-card:hover .gd-card-media img,
body.gd-hover-premium .gd-post-card:hover .gd-card-media img,
body.gd-hover-strong .gd-game-card:hover .gd-card-media img,
body.gd-hover-strong .gd-post-card:hover .gd-card-media img { transform: translateZ(0) scale(var(--gd-card-hover-zoom)); }
body.gd-hover-subtle .gd-game-card:hover .gd-card-media img,
body.gd-hover-subtle .gd-post-card:hover .gd-card-media img { filter: saturate(1.02); }
body.gd-hover-premium .gd-game-card:hover .gd-card-media img,
body.gd-hover-premium .gd-post-card:hover .gd-card-media img,
body.gd-hover-strong .gd-game-card:hover .gd-card-media img,
body.gd-hover-strong .gd-post-card:hover .gd-card-media img { filter: saturate(1.04) contrast(1.02); }

body.gd-hover-subtle .gd-game-card:hover .gd-card-cta,
body.gd-hover-subtle .gd-game-card:hover .gd-card-overlay,
body.gd-hover-premium .gd-game-card:hover .gd-card-cta,
body.gd-hover-premium .gd-game-card:hover .gd-card-overlay,
body.gd-hover-strong .gd-game-card:hover .gd-card-cta,
body.gd-hover-strong .gd-game-card:hover .gd-card-overlay {
  opacity: 1;
  transform: translateY(0);
  border-color: transparent;
  background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
  color: #03121d;
}
body.gd-hover-none .gd-game-card:hover .gd-card-cta,
body.gd-hover-none .gd-game-card:hover .gd-card-overlay {
  opacity: .90;
  transform: none;
}

/* Density, hero, and media controls. */
body.gd-card-density-compact .gd-game-grid { gap: clamp(14px, 1.6vw, 22px); }
body.gd-card-density-compact .gd-card-body { gap: 9px; padding: 14px 14px 16px; }
body.gd-card-density-compact .gd-card-body p { -webkit-line-clamp: 3; }
body.gd-card-density-compact .gd-card-media { margin: 8px 8px 0; }
body.gd-card-density-comfortable .gd-card-body { gap: 12px; padding: 18px; }
body.gd-card-density-showcase { --gd-card-min: max(var(--gd-card-min), 320px); }
body.gd-card-density-showcase .gd-game-grid:not(.gd-related-grid) { grid-template-columns: repeat(auto-fill, minmax(min(100%, max(var(--gd-card-min), 320px)), 1fr)); }
body.gd-card-density-showcase .gd-card-body { gap: 14px; padding: 20px 20px 22px; }
body.gd-card-density-showcase .gd-card-body p { -webkit-line-clamp: 5; }
body.gd-card-density-showcase .gd-card-media { aspect-ratio: 16 / 8.7; }
body.gd-hero-density-compact .gd-home-slide { min-height: clamp(430px, 44vw, 540px); padding: clamp(26px, 5vw, 54px); }
body.gd-hero-density-cinematic .gd-home-slide { min-height: clamp(540px, 54vw, 700px); }
body.gd-hero-density-editorial .gd-home-slide { min-height: clamp(580px, 58vw, 740px); padding: clamp(42px, 8vw, 92px); }
body.gd-hero-dots-bottom-right .gd-home-dots { right: var(--gd-home-dots-side-offset); bottom: var(--gd-home-dots-vertical-offset); left: auto; top: auto; }
body.gd-hero-dots-top-right .gd-home-dots { right: var(--gd-home-dots-side-offset); top: var(--gd-home-dots-vertical-offset); left: auto; bottom: auto; }
body.gd-hero-dots-bottom-left .gd-home-dots { left: var(--gd-home-dots-side-offset); bottom: var(--gd-home-dots-vertical-offset); right: auto; top: auto; }
body.gd-hero-dots-top-left .gd-home-dots { left: var(--gd-home-dots-side-offset); top: var(--gd-home-dots-vertical-offset); right: auto; bottom: auto; }
body.gd-hero-dots-bottom-center .gd-home-dots { left: 50%; right: auto; bottom: var(--gd-home-dots-vertical-offset); top: auto; transform: translateX(-50%); }
body.gd-hero-dots-top-center .gd-home-dots { left: 50%; right: auto; top: var(--gd-home-dots-vertical-offset); bottom: auto; transform: translateX(-50%); }
body.gd-media-layout-compact { --gd-media-layout-max: min(var(--gd-media-max), 860px); }
body.gd-media-layout-balanced { --gd-media-layout-max: min(var(--gd-media-max), 980px); }
body.gd-media-layout-wide { --gd-media-layout-max: min(var(--gd-media-max), 1180px); }
body.gd-media-layout-compact .gd-single-steam .gd-app-media-card,
body.gd-media-layout-balanced .gd-single-steam .gd-app-media-card,
body.gd-media-layout-wide .gd-single-steam .gd-app-media-card,
body.gd-media-layout-compact .gd-media-slider,
body.gd-media-layout-balanced .gd-media-slider,
body.gd-media-layout-wide .gd-media-slider { width: min(100%, var(--gd-media-layout-max)); max-width: var(--gd-media-layout-max); margin-inline: auto; }
body.gd-media-fit-contain .gd-media-frame img,
body.gd-media-fit-contain .gd-media-image img,
body.gd-media-fit-contain .gd-video-stage > img { object-fit: contain; }
body.gd-media-fit-cover .gd-media-frame img,
body.gd-media-fit-cover .gd-media-image img,
body.gd-media-fit-cover .gd-video-stage > img { object-fit: cover; }
body.gd-media-backdrop-off .gd-media-backdrop { display: none; }
body.gd-media-backdrop-on .gd-media-backdrop { display: block; }
body.gd-media-style-steam-strip .gd-media-thumb-copy { display: none; }
body.gd-media-style-steam-strip .gd-media-thumbs { grid-auto-columns: minmax(112px, 140px); }
body.gd-media-style-detail-cards .gd-media-thumb { display: grid; grid-template-columns: 108px minmax(0,1fr); align-items: center; }
body.gd-media-style-detail-cards .gd-media-thumb-art { width: 108px; }
body.gd-media-style-detail-cards .gd-media-thumb-copy { display: grid; gap: 3px; padding: 9px 10px; }
body.gd-media-style-detail-cards .gd-media-thumbs { grid-auto-columns: minmax(260px, 300px); }
body.gd-media-toolbar-full .gd-media-toolbar { display: flex; }
body.gd-media-toolbar-compact .gd-media-toolbar .gd-media-status [data-gd-label],
body.gd-media-toolbar-counter .gd-media-toolbar .gd-media-status [data-gd-label] { display: none; }
body.gd-media-toolbar-counter .gd-media-actions,
body.gd-media-toolbar-hidden .gd-media-toolbar { display: none; }
body.gd-single-sticky-download-off .gd-side-column,
body.gd-single-sticky-download-off .gd-download-card { position: static; top: auto; }
body.gd-single-sticky-download-on.gd-download-card-position-sidebar .gd-side-column,
body.gd-single-sticky-download-on.gd-download-card-position-sidebar .gd-download-card { top: calc(var(--gd-sticky-offset, var(--gd-header-h)) + 32px); }
body.gd-single-sticky-download-on:not(.gd-download-card-position-sidebar) .gd-side-column,
body.gd-single-sticky-download-on:not(.gd-download-card-position-sidebar) .gd-download-card { position: static; top: auto; }
.gd-game-tabs { top: var(--gd-sticky-offset, var(--gd-header-h)); }

/* Responsive setting behavior. */
@media (max-width: 1180px) {
  .gd-side-column,
  .gd-download-card { position: static; top: auto; }
  .gd-single-steam .gd-app-media-card,
  .gd-app-media-card { justify-self: center; width: 100%; max-width: min(100%, var(--gd-media-max, 980px)); }
}
@media (max-width: 769px) {
  .gd-single-steam .gd-app-top,
  .gd-app-top {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(14px, 2.4vw, 24px);
  }
  .gd-game-layout,
  .gd-storefront-panels { grid-template-columns: minmax(0, 1fr); }
  .gd-single-steam .gd-app-summary-panel,
  .gd-app-summary-panel { order: -1; max-width: 760px; margin-inline: auto; }
}
@media (max-width: 880px) {
  :root { --gd-mobile-header-h: clamp(62px, var(--gd-header-h, 76px), 88px); }
  .gd-header,
  .gd-header-inner { min-height: var(--gd-mobile-header-h); }
  body.gd-header-layout-compact .gd-header-search,
  .gd-header.gd-header-layout-compact .gd-header-search { width: 100%; max-width: none; }
  body.gd-header-fixed .gd-nav.gd-menu-panel { top: var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))); max-height: calc(100dvh - var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))) - 18px); }
  body.gd-mobile-search-on .gd-nav.gd-menu-panel .gd-header-search { display: flex; }
  body.gd-mobile-search-off .gd-nav.gd-menu-panel .gd-header-search { display: none; }
  body.gd-mobile-cta-on .gd-nav.gd-menu-panel .gd-header-cta { display: inline-flex; }
  body.gd-mobile-cta-off .gd-nav.gd-menu-panel .gd-header-cta { display: none; }
  body.gd-header-fixed .gd-game-tabs { top: var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))); }
  body.gd-header-not-sticky .gd-game-tabs,
  body.gd-header-static .gd-game-tabs { top: 0; }
  body.gd-mobile-thumbs-image-strip .gd-media-thumbs { display: grid; grid-auto-columns: minmax(92px, 124px); }
  body.gd-mobile-thumbs-image-strip .gd-media-thumb,
  body.gd-mobile-thumbs-image-strip.gd-media-style-detail-cards .gd-media-thumb { display: block; }
  body.gd-mobile-thumbs-image-strip .gd-media-thumb-copy,
  body.gd-mobile-thumbs-image-strip.gd-media-style-detail-cards .gd-media-thumb-copy { display: none; }
  body.gd-mobile-thumbs-dots .gd-media-rail { justify-content: center; }
  body.gd-mobile-thumbs-dots .gd-media-thumbs-wrap { width: auto; overflow: visible; }
  body.gd-mobile-thumbs-dots .gd-media-thumbs { display: flex; gap: 8px; }
  body.gd-mobile-thumbs-dots .gd-media-thumb,
  body.gd-mobile-thumbs-dots.gd-media-style-detail-cards .gd-media-thumb { width: 10px; height: 10px; min-width: 10px; padding: 0; border-radius: 999px; background: rgba(255,255,255,.26); }
  body.gd-mobile-thumbs-dots .gd-media-thumb.is-active,
  body.gd-mobile-thumbs-dots.gd-media-style-detail-cards .gd-media-thumb.is-active { background: var(--gd-accent); }
  body.gd-mobile-thumbs-dots .gd-media-thumb-art,
  body.gd-mobile-thumbs-dots .gd-media-thumb-copy,
  body.gd-mobile-thumbs-dots.gd-media-style-detail-cards .gd-media-thumb-art,
  body.gd-mobile-thumbs-dots.gd-media-style-detail-cards .gd-media-thumb-copy { display: none; }
  body.gd-mobile-thumbs-hidden .gd-media-rail { display: none; }
}
@media (max-width: 782px) and (min-width: 601px) {
  body.admin-bar.gd-header-fixed .gd-header { top: 46px; }
  body.admin-bar.gd-header-fixed .gd-nav.gd-menu-panel { top: calc(var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))) + 46px); max-height: calc(100dvh - var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))) - 64px); }
  body.admin-bar.gd-header-fixed .gd-game-tabs { top: calc(var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))) + 46px); }
}
@media (max-width: 640px) {
  .gd-filter-bar,
  .gd-filter-pro { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .gd-filter-field,
  .gd-filter-pro .gd-filter-field,
  .gd-filter-pro .gd-filter-field:not(.gd-filter-search),
  .gd-filter-head,
  .gd-filter-search,
  .gd-filter-actions { grid-column: 1 / -1; }
  .gd-filter-actions,
  .gd-hero-actions,
  .gd-app-actions,
  .gd-download-assurance { grid-template-columns: minmax(0, 1fr); }
  .gd-filter-actions .gd-btn,
  .gd-filter-actions button,
  .gd-filter-actions a,
  .gd-app-actions .gd-btn,
  .gd-download-card .gd-text-link { width: 100%; justify-content: center; }
  .gd-game-grid,
  .gd-related-store-grid,
  .gd-site-main .gd-related-store-grid,
  .gd-requirements-grid { grid-template-columns: minmax(0, 1fr); }
  .gd-game-card,
  .gd-post-card { max-width: 520px; margin-inline: auto; width: 100%; }
}
@media (max-width: 600px) {
  body.admin-bar.gd-header-fixed .gd-header { top: 0; }
  body.admin-bar.gd-header-fixed .gd-nav.gd-menu-panel { top: var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))); max-height: calc(100dvh - var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))) - 18px); }
  body.admin-bar.gd-header-fixed .gd-game-tabs { top: var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))); }
}
@media (max-width: 520px) {
  .gd-app-summary-panel .gd-app-meta-list .gd-meta-line,
  .gd-single-steam .gd-app-summary-panel .gd-app-meta-list .gd-meta-line {
    grid-template-columns: minmax(92px, .35fr) minmax(0, 1fr);
    gap: 3px;
  }
}



/* Breadcrumbs: Yoast-aware theme fallback. */
.gd-breadcrumbs-wrap {
  border-bottom: 1px solid color-mix(in srgb, var(--gd-border) 74%, transparent);
  background: color-mix(in srgb, var(--gd-bg) 88%, transparent);
  backdrop-filter: blur(14px);
}
.gd-breadcrumbs {
  display: block;
  padding: 10px 0;
  color: var(--gd-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.gd-breadcrumbs ol {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.gd-breadcrumbs li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.gd-breadcrumbs li + li::before,
.gd-breadcrumbs-yoast span span + span::before {
  content: "/";
  color: color-mix(in srgb, var(--gd-muted) 65%, transparent);
}
.gd-breadcrumbs a {
  color: color-mix(in srgb, var(--gd-text) 76%, var(--gd-muted));
  text-decoration: none;
}
.gd-breadcrumbs a:hover {
  color: var(--gd-accent);
}
.gd-breadcrumbs span[aria-current="page"],
.gd-breadcrumbs-yoast .breadcrumb_last {
  color: var(--gd-muted);
}
.gd-breadcrumbs-yoast span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}

/* Reviews and comments: final section contract. */
.gd-reviews-section,
.gd-comments-section {
  scroll-margin-top: calc(var(--gd-sticky-offset, var(--gd-header-h)) + 28px);
}
.gd-community-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(18px, 3vw, 30px);
  align-items: center;
  padding: clamp(22px, 3vw, 34px);
  margin-bottom: 20px;
  overflow: hidden;
  position: relative;
}
.gd-community-head::before {
  content: "";
  position: absolute;
  inset: -1px;
  pointer-events: none;
  background: radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--gd-accent) 16%, transparent), transparent 34rem), radial-gradient(circle at 90% 20%, color-mix(in srgb, var(--gd-accent-2) 10%, transparent), transparent 26rem);
  opacity: .75;
}
.gd-community-head > * {
  position: relative;
  z-index: 1;
}
.gd-community-head-copy {
  display: grid;
  gap: 8px;
  max-width: 760px;
}
.gd-community-head-copy h2 {
  margin: 0;
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.02;
}
.gd-community-head-copy p {
  max-width: 620px;
  margin: 0;
  color: var(--gd-muted);
  font-size: 16px;
  line-height: 1.7;
}
.gd-community-score {
  display: grid;
  gap: 7px;
  justify-items: center;
  min-width: 178px;
  padding: 18px 20px;
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-radius-sm);
  background: rgba(255,255,255,.045);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  text-align: center;
}
.gd-community-score strong {
  color: var(--gd-text);
  font-size: clamp(34px, 5vw, 54px);
  line-height: .9;
}
.gd-community-score span,
.gd-community-score em {
  color: var(--gd-muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gd-community-count .gd-text-link {
  margin-top: 4px;
}
.gd-app-eyebrow-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  max-width: 100%;
  margin-bottom: 12px;
}
.gd-app-eyebrow-row .gd-kicker {
  margin: 0;
}
.gd-app-eyebrow-row .gd-title-rating {
  margin: 0;
}
.gd-title-rating {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 7px;
  width: fit-content;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 34%, var(--gd-border));
  border-radius: 999px;
  color: var(--gd-text);
  background: color-mix(in srgb, var(--gd-accent) 9%, transparent);
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 10px 26px rgba(0,0,0,.12);
}
.gd-title-rating strong {
  color: var(--gd-text);
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}
.gd-title-rating em {
  color: var(--gd-muted);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
.gd-title-rating-empty .gd-title-rating-stars {
  color: var(--gd-muted);
  letter-spacing: .04em;
}
.gd-stars {
  display: inline-flex;
  gap: 2px;
  color: rgba(255,255,255,.22);
  letter-spacing: .02em;
}
.gd-star.is-filled {
  color: var(--gd-accent);
}
.gd-review-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: clamp(16px, 2vw, 22px);
  margin-bottom: 22px;
}
.gd-review-stat {
  display: grid;
  gap: 7px;
  min-height: 112px;
  padding: 16px;
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-radius-sm);
  background: rgba(255,255,255,.035);
}
.gd-review-stat-primary {
  color: #03121d;
  border-color: transparent;
  background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
}
.gd-review-stat span,
.gd-review-stat small,
.gd-review-card-head span,
.gd-review-form label span,
.gd-review-rating-field legend,
.gd-form-field label {
  color: inherit;
  opacity: .72;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.gd-review-stat strong {
  align-self: end;
  color: currentColor;
  font-size: clamp(28px, 4vw, 42px);
  line-height: .95;
}
.gd-review-grid,
.gd-comments-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  gap: clamp(18px, 3vw, 30px);
  align-items: start;
}
.gd-review-main,
.gd-review-side,
.gd-review-stream,
.gd-rating-spread,
.gd-review-form,
.gd-comments-panel,
.gd-comment-form,
.gd-comment-form-panel {
  display: grid;
  gap: 16px;
}
.gd-review-spread-card,
.gd-review-card,
.gd-review-spotlight,
.gd-review-form,
.gd-comments-panel,
.gd-comment-form-panel {
  padding: clamp(18px, 2.6vw, 28px);
}
.gd-review-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 16px;
}
.gd-review-toolbar > div {
  display: grid;
  gap: 3px;
}
.gd-review-toolbar strong {
  color: var(--gd-text);
}
.gd-review-sort,
.gd-review-sort-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.gd-review-sort-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 8px 12px;
  border: 1px solid var(--gd-border);
  border-radius: 999px;
  color: var(--gd-muted);
  background: rgba(255,255,255,.035);
  font: inherit;
  line-height: inherit;
  text-decoration: none;
  cursor: pointer;
}
.gd-review-sort-pill.is-active {
  color: #03121d;
  border-color: transparent;
  background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
}
.gd-review-sort-pill.is-disabled,
.gd-review-sort-pill[aria-disabled="true"],
.gd-review-sort-pill:disabled {
  cursor: default;
  opacity: .58;
  pointer-events: none;
}
.gd-reviews-section.is-review-sorting .gd-review-sort-pill {
  pointer-events: none;
}
.gd-review-sort-loading {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 8px 10px;
  color: var(--gd-muted);
  font-size: 13px;
  font-weight: 800;
}
.gd-review-sort-loading[hidden] {
  display: none !important;
}
.gd-review-sort-loading::before {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid color-mix(in srgb, var(--gd-muted) 42%, transparent);
  border-top-color: var(--gd-accent);
  border-radius: 999px;
  animation: gdAjaxSpin .8s linear infinite;
}
.gd-reviews-section.is-review-sorting [data-gd-review-list] {
  opacity: .68;
}
body.gd-no-motion .gd-review-sort-loading::before {
  animation: none;
}
.gd-review-notice {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(61,221,255,.32);
  border-radius: var(--gd-input-radius);
  color: var(--gd-text);
  background: rgba(61,221,255,.08);
}
.gd-review-card-head,
.gd-review-meta,
.gd-comment-meta,
.gd-comment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}
.gd-review-card-head {
  justify-content: space-between;
}
.gd-rating-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 0;
  border: 0;
  color: var(--gd-muted);
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  text-align: left;
}
button.gd-rating-row {
  cursor: pointer;
}
button.gd-rating-row:not(:disabled):hover,
button.gd-rating-row:not(:disabled):focus-visible,
.gd-rating-row.is-active {
  color: var(--gd-text);
}
button.gd-rating-row:focus-visible {
  outline: 2px solid var(--gd-accent);
  outline-offset: 4px;
}
.gd-rating-row.is-disabled,
.gd-rating-row:disabled {
  cursor: default;
  opacity: .68;
}
.gd-rating-row.is-active .gd-rating-bar {
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--gd-accent) 48%, transparent), 0 0 18px color-mix(in srgb, var(--gd-accent) 24%, transparent);
}
.gd-reviews-section.is-review-sorting .gd-rating-row {
  pointer-events: none;
}
.gd-rating-filter-loading {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--gd-muted);
  font-size: 13px;
  font-weight: 800;
}
.gd-rating-filter-loading[hidden] {
  display: none !important;
}
.gd-rating-filter-loading::before {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid color-mix(in srgb, var(--gd-muted) 42%, transparent);
  border-top-color: var(--gd-accent);
  border-radius: 999px;
  animation: gdAjaxSpin .8s linear infinite;
}
body.gd-no-motion .gd-rating-filter-loading::before {
  animation: none;
}
.gd-rating-bar {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}
.gd-rating-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--gd-accent), var(--gd-accent-2));
}
.gd-review-card {
  display: grid;
  grid-template-columns: 52px minmax(0,1fr);
  gap: 15px;
}
.gd-review-avatar img,
.gd-review-spotlight-author img,
.gd-comment-avatar img {
  border-radius: 16px;
  box-shadow: 0 0 0 1px var(--gd-border);
}
.gd-review-meta strong,
.gd-comment-author,
.gd-review-spotlight-author strong {
  color: var(--gd-text);
}
.gd-review-meta span,
.gd-comment-date {
  color: var(--gd-muted);
  font-size: 12px;
  text-decoration: none;
}
.gd-review-badge {
  padding: 4px 8px;
  border-radius: 999px;
  color: var(--gd-accent);
  background: rgba(61,221,255,.1);
}
.gd-review-text,
.gd-comment-content,
.gd-comment-empty,
.gd-review-empty,
.gd-comment-notes,
.gd-comment-login-state {
  color: var(--gd-muted);
}
.gd-review-text p,
.gd-comment-content p {
  margin: 0 0 10px;
}
.gd-review-text p:last-child,
.gd-comment-content p:last-child {
  margin-bottom: 0;
}
.gd-review-spotlight {
  overflow: hidden;
  background: radial-gradient(circle at top left, rgba(61,221,255,.16), transparent 36%), var(--gd-surface);
}
.gd-review-spotlight-author {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
}
.gd-review-spotlight-author div {
  display: grid;
  gap: 4px;
}
.gd-review-spotlight blockquote {
  margin: 16px 0 0;
  color: var(--gd-text);
  line-height: 1.65;
}
.gd-review-form h3,
.gd-comment-form-title,
.gd-review-empty h3,
.gd-comment-empty h3 {
  margin: 0;
}
.gd-review-form label,
.gd-form-field,
.gd-comment-form .comment-form-cookies-consent,
.gd-comment-form .comment-subscription-form {
  display: grid;
  gap: 8px;
  margin: 0;
}
.gd-comment-form .comment-form-cookies-consent,
.gd-comment-form .comment-subscription-form,
.gd-review-recommend {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--gd-muted);
}
.gd-comment-form .comment-form-cookies-consent input,
.gd-comment-form .comment-subscription-form input,
.gd-review-recommend input {
  width: auto;
  min-height: auto;
  accent-color: var(--gd-accent);
}
.gd-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.gd-review-form input[type="text"],
.gd-review-form input[type="email"],
.gd-review-form textarea,
.gd-comment-form textarea,
.gd-comment-form input:not([type="submit"]):not([type="checkbox"]) {
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-input-radius);
  color: var(--gd-text);
  background: rgba(2,8,20,.46);
  outline: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
.gd-review-form textarea,
.gd-comment-form textarea {
  min-height: 148px;
  resize: vertical;
}
.gd-review-form input:focus,
.gd-review-form textarea:focus,
.gd-comment-form textarea:focus,
.gd-comment-form input:not([type="submit"]):not([type="checkbox"]):focus {
  border-color: color-mix(in srgb, var(--gd-accent) 64%, transparent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--gd-accent) 13%, transparent);
}
.gd-review-rating-field {
  display: grid;
  gap: 9px;
  padding: 0;
  border: 0;
  margin: 0;
}
.gd-rating-inputs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.gd-rating-inputs label {
  display: inline-flex;
  cursor: pointer;
}
.gd-rating-inputs input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.gd-rating-inputs span {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 8px 11px;
  border: 1px solid var(--gd-border);
  border-radius: 999px;
  color: var(--gd-muted);
  background: rgba(255,255,255,.04);
}
.gd-rating-inputs input:checked + span {
  color: #03121d;
  border-color: transparent;
  background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
}
.gd-review-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.gd-comment-list {
  display: grid;
  gap: 15px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.gd-comment-list .children {
  display: grid;
  gap: 12px;
  margin: 14px 0 0 34px;
  padding: 0;
  list-style: none;
}
.gd-comment-card {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-radius-sm);
  background: rgba(255,255,255,.035);
}
.gd-comment-main {
  min-width: 0;
}
.gd-comment-awaiting,
.gd-comments-closed {
  padding: 10px 12px;
  border: 1px solid rgba(251,191,36,.24);
  border-radius: 12px;
  color: #fbbf24;
  background: rgba(251,191,36,.08);
}
.gd-comment-actions a,
.gd-comment-edit {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  color: var(--gd-muted);
  text-decoration: none;
  background: rgba(255,255,255,.05);
}
.gd-comment-form .form-submit {
  margin: 0;
}
.gd-load-more-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
}
.gd-load-more-status {
  color: var(--gd-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gd-load-more.is-loading {
  opacity: .72;
  cursor: wait;
}
.gd-review-sort-pill,
.gd-title-rating,
.gd-review-card,
.gd-review-stat,
.gd-review-spotlight,
.gd-review-form,
.gd-rating-inputs span,
.gd-review-form input,
.gd-review-form textarea,
.gd-comment-card,
.gd-comment-actions a,
.gd-comment-edit,
.gd-comment-form textarea,
.gd-comment-form input:not([type="submit"]):not([type="checkbox"]),
.gd-load-more {
  transition: transform var(--gd-motion-med) var(--gd-ease-premium), border-color var(--gd-motion-med) var(--gd-ease-premium), background var(--gd-motion-med) var(--gd-ease-premium), color var(--gd-motion-med) var(--gd-ease-premium), box-shadow var(--gd-motion-med) var(--gd-ease-premium), opacity var(--gd-motion-fast) ease;
}
body:not(.gd-no-motion) .gd-review-card:hover,
body:not(.gd-no-motion) .gd-comment-card:hover,
body:not(.gd-no-motion) .gd-review-stat:hover {
  transform: translateY(-2px);
}
body:not(.gd-no-motion) .gd-review-card:hover,
body:not(.gd-no-motion) .gd-comment-card:hover {
  border-color: rgba(61,221,255,.28);
  box-shadow: 0 18px 48px rgba(0,0,0,.22);
}
body:not(.gd-no-motion) .gd-review-sort-pill:not(.is-active):hover,
body:not(.gd-no-motion) .gd-title-rating:hover,
body:not(.gd-no-motion) .gd-comment-actions a:hover,
body:not(.gd-no-motion) .gd-comment-edit:hover,
body:not(.gd-no-motion) .gd-rating-inputs label:hover span,
body:not(.gd-no-motion) .gd-load-more:hover {
  transform: translateY(-1px);
}
body.gd-no-motion .gd-review-sort-pill,
body.gd-no-motion .gd-title-rating,
body.gd-no-motion .gd-review-card,
body.gd-no-motion .gd-review-stat,
body.gd-no-motion .gd-review-spotlight,
body.gd-no-motion .gd-review-form,
body.gd-no-motion .gd-rating-inputs span,
body.gd-no-motion .gd-review-form input,
body.gd-no-motion .gd-review-form textarea,
body.gd-no-motion .gd-comment-card,
body.gd-no-motion .gd-comment-actions a,
body.gd-no-motion .gd-comment-edit,
body.gd-no-motion .gd-comment-form textarea,
body.gd-no-motion .gd-comment-form input:not([type="submit"]):not([type="checkbox"]),
body.gd-no-motion .gd-load-more {
  transition-duration: 1ms;
}
body.gd-no-motion .gd-review-card:hover,
body.gd-no-motion .gd-comment-card:hover,
body.gd-no-motion .gd-review-stat:hover,
body.gd-no-motion .gd-review-sort-pill:not(.is-active):hover,
body.gd-no-motion .gd-title-rating:hover,
body.gd-no-motion .gd-comment-actions a:hover,
body.gd-no-motion .gd-comment-edit:hover,
body.gd-no-motion .gd-rating-inputs label:hover span,
body.gd-no-motion .gd-load-more:hover {
  transform: none;
}
@media (max-width: 980px) {
  .gd-community-head,
  .gd-review-grid,
  .gd-comments-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .gd-community-score {
    justify-items: start;
    text-align: left;
  }
}
@media (max-width: 720px) {
  .gd-review-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gd-review-card,
  .gd-comment-card {
    grid-template-columns: 40px minmax(0, 1fr);
  }
  .gd-form-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 520px) {
  .gd-community-head,
  .gd-review-spread-card,
  .gd-review-card,
  .gd-review-spotlight,
  .gd-review-form,
  .gd-comments-panel,
  .gd-comment-form-panel {
    padding: 18px;
  }
  .gd-review-summary,
  .gd-review-card,
  .gd-comment-card {
    grid-template-columns: minmax(0, 1fr);
  }
  .gd-comment-list .children {
    margin-left: 14px;
  }
}

/* Reviews: recommendation checkbox alignment
   Keep this selector more specific than the generic .gd-review-form label grid rule. */
.gd-review-form .gd-review-recommend {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: fit-content;
  max-width: 100%;
  margin: 2px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--gd-border);
  border-radius: 999px;
  color: var(--gd-text);
  background: rgba(61, 221, 255, .06);
  cursor: pointer;
  line-height: 1.2;
}
.gd-review-form .gd-review-recommend input[type="checkbox"] {
  flex: 0 0 auto;
  inline-size: 18px;
  block-size: 18px;
  min-width: 18px;
  min-height: 18px;
  margin: 0;
  accent-color: var(--gd-accent);
  cursor: pointer;
}
.gd-review-form .gd-review-recommend span {
  display: inline-block;
  margin: 0;
  color: var(--gd-text);
  font-size: .86rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gd-review-form .gd-review-recommend:hover,
.gd-review-form .gd-review-recommend:focus-within {
  border-color: color-mix(in srgb, var(--gd-accent) 55%, var(--gd-border));
  background: rgba(61, 221, 255, .1);
}


@media (max-width: 640px) {
  .gd-app-eyebrow-row {
    gap: 8px;
    margin-bottom: 10px;
  }
  .gd-title-rating {
    padding: 5px 9px;
    gap: 6px;
  }
  .gd-title-rating em {
    display: none;
  }
  .gd-breadcrumbs {
    padding: 8px 0;
    font-size: 11px;
  }
}


/* Final production accessibility polish. */
.gd-title-rating:focus-visible,
.gd-review-sort-pill:focus-visible,
.gd-load-more:focus-visible,
.gd-comment-actions a:focus-visible,
.gd-comment-edit:focus-visible,
.gd-review-form button:focus-visible,
.gd-comment-form button:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--gd-accent) 78%, white);
  outline-offset: 3px;
}
.gd-review-form .gd-review-recommend:has(input:checked) {
  border-color: color-mix(in srgb, var(--gd-accent) 60%, var(--gd-border));
  background: color-mix(in srgb, var(--gd-accent) 12%, transparent);
}
.gd-review-form .gd-review-recommend:has(input:checked) span {
  color: var(--gd-text);
}
@supports not selector(:has(*)) {
  .gd-review-form .gd-review-recommend {
    background: color-mix(in srgb, var(--gd-accent) 8%, transparent);
  }
}

/* Native comment/review form surface normalization.
   Keeps WordPress default form fields aligned with the GamesDen dark surface. */
.gd-comment-form-panel .comment-respond,
.gd-comment-form-panel .gd-comment-form,
.gd-review-form {
  width: 100%;
}

.gd-comment-form label,
.gd-review-form label,
.gd-review-rating-field legend {
  color: var(--gd-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.gd-comment-form textarea,
.gd-comment-form input:not([type="submit"]):not([type="checkbox"]),
.gd-review-form textarea,
.gd-review-form input[type="text"],
.gd-review-form input[type="email"] {
  color-scheme: dark;
  caret-color: var(--gd-accent);
}

.gd-comment-form textarea::placeholder,
.gd-comment-form input::placeholder,
.gd-review-form textarea::placeholder,
.gd-review-form input::placeholder {
  color: color-mix(in srgb, var(--gd-muted) 72%, transparent);
}

@media (max-width: 640px) {
  .gd-comment-form textarea,
  .gd-review-form textarea {
    min-height: 132px;
  }
}

/* Single game media visibility contract.
   Disabled media means no fallback media section. The summary panel keeps its
   normal compact storefront size, while the title gets more breathing room. */
.gd-app-hero--summary-only .gd-app-titlebar {
  margin-top: clamp(26px, 5.5vw, 88px);
  margin-bottom: clamp(20px, 3vw, 36px);
}

.gd-app-top--summary-only {
  grid-template-columns: minmax(300px, 360px);
  justify-content: start;
  align-items: start;
}

.gd-app-top--summary-only .gd-app-summary-panel {
  width: 100%;
  max-width: 360px;
  justify-self: start;
}

.gd-media-lightbox-source[hidden] {
  display: none;
}

.gd-btn.is-disabled,
.gd-btn[disabled],
.gd-btn[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .55;
  filter: grayscale(.35);
}

@media (max-width: 640px) {
  .gd-app-hero--summary-only .gd-app-titlebar {
    margin-top: clamp(18px, 8vw, 44px);
  }

  .gd-app-top--summary-only {
    grid-template-columns: 1fr;
  }

  .gd-app-top--summary-only .gd-app-summary-panel {
    max-width: none;
  }
}


/* Hidden-media hero contract.
   When media is disabled, the removed media column becomes a real title/hero panel
   and the summary card stays in the right column. The layout has one canonical disabled-media mode. */
.gd-app-hero--hidden-media-split .gd-app-titlebar {
  display: none;
}

.gd-app-top--summary-split {
  grid-template-columns: minmax(0, min(100%, var(--gd-media-layout-max, 820px))) minmax(300px, 360px);
  justify-content: center;
  align-items: stretch;
}

.gd-app-title-panel {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: clamp(320px, 42vw, 520px);
  flex-direction: column;
  justify-content: end;
  gap: clamp(14px, 2vw, 20px);
  width: min(100%, var(--gd-media-layout-max, 860px));
  max-width: min(100%, var(--gd-media-layout-max, 860px));
  justify-self: center;
  overflow: hidden;
  padding: clamp(22px, 4vw, 44px);
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-radius);
  background:
    linear-gradient(90deg, rgba(2, 6, 23, .92), rgba(2, 6, 23, .70) 52%, rgba(2, 6, 23, .34)),
    radial-gradient(circle at 78% 20%, color-mix(in srgb, var(--gd-accent) 20%, transparent), transparent 23rem),
    var(--gd-style-panel-bg, var(--gd-card));
  box-shadow: var(--gd-media-shadow, var(--gd-panel-shadow));
}

.gd-app-title-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: var(--gd-hero-image, none) center / cover no-repeat;
  opacity: .18;
  filter: saturate(1.08) contrast(1.05);
}

.gd-app-title-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(0deg, rgba(2,6,23,.66), transparent 58%);
}

.gd-app-title-panel h1 {
  max-width: min(900px, 100%);
  margin: 0;
  font-size: clamp(38px, 5vw, calc(var(--gd-single-title-max) * var(--gd-heading-scale)));
  line-height: .96;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.gd-app-title-panel p {
  max-width: 680px;
  margin: 0;
  color: color-mix(in srgb, var(--gd-text) 80%, var(--gd-muted) 20%);
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.62;
}

.gd-app-title-tags,
.gd-app-title-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.gd-app-top--summary-split .gd-app-summary-panel {
  order: 0;
  max-width: 360px;
  margin-inline: 0;
  justify-self: start;
}


@media (max-width: 1180px) and (min-width: 901px) {
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, 1fr) minmax(280px, var(--gd-single-sidebar-width, 360px));
  }

  .gd-app-top--summary-split .gd-app-summary-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-summary-panel {
    order: 0;
    max-width: var(--gd-single-sidebar-width, 360px);
    margin-inline: 0;
    justify-self: start;
  }
}

@media (max-width: 769px) {
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, 1fr);
  }

  .gd-app-title-panel {
    min-height: clamp(270px, 62vw, 430px);
    width: 100%;
    padding: clamp(18px, 5vw, 30px);
  }

  .gd-app-top--summary-split .gd-app-summary-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-summary-panel {
    order: 0;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    justify-self: stretch;
  }
}

@media (max-width: 640px) {
  .gd-app-title-panel h1 {
    font-size: clamp(34px, 10vw, 54px);
  }

  .gd-app-title-actions .gd-btn {
    flex: 1 1 180px;
  }
}

/* Runtime setting hardening. These selectors are intentionally late in the
   settings contract so Customizer controls visibly win over the base theme. */
body.gd-header-solid .gd-header,
.gd-header.gd-header-style-solid {
  background: linear-gradient(180deg, color-mix(in srgb, var(--gd-bg-2) 97%, #fff 3%), var(--gd-bg-2));
  border-bottom-color: color-mix(in srgb, var(--gd-accent) 18%, var(--gd-border));
  box-shadow: var(--gd-header-shadow-value, 0 16px 48px rgba(0,0,0,.28));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body.gd-header-minimal .gd-header,
.gd-header.gd-header-style-minimal {
  background: color-mix(in srgb, var(--gd-bg) 82%, transparent);
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body.gd-shadow-soft .gd-game-card,
body.gd-shadow-soft .gd-post-card,
body.gd-shadow-soft .gd-panel,
body.gd-shadow-soft .gd-download-card,
body.gd-shadow-soft .gd-app-summary-panel,
body.gd-shadow-soft .gd-app-media-card,
body.gd-shadow-deep .gd-game-card,
body.gd-shadow-deep .gd-post-card,
body.gd-shadow-deep .gd-panel,
body.gd-shadow-deep .gd-download-card,
body.gd-shadow-deep .gd-app-summary-panel,
body.gd-shadow-deep .gd-app-media-card,
body.gd-shadow-glow .gd-game-card,
body.gd-shadow-glow .gd-post-card,
body.gd-shadow-glow .gd-panel,
body.gd-shadow-glow .gd-download-card,
body.gd-shadow-glow .gd-app-summary-panel,
body.gd-shadow-glow .gd-app-media-card {
  box-shadow: var(--gd-style-card-shadow, var(--gd-card-shadow));
}

body.gd-shadow-soft .gd-panel,
body.gd-shadow-soft .gd-download-card,
body.gd-shadow-soft .gd-app-summary-panel,
body.gd-shadow-deep .gd-panel,
body.gd-shadow-deep .gd-download-card,
body.gd-shadow-deep .gd-app-summary-panel,
body.gd-shadow-glow .gd-panel,
body.gd-shadow-glow .gd-download-card,
body.gd-shadow-glow .gd-app-summary-panel {
  box-shadow: var(--gd-style-panel-shadow, var(--gd-panel-shadow));
}

body.gd-shadow-soft .gd-app-media-card,
body.gd-shadow-deep .gd-app-media-card,
body.gd-shadow-glow .gd-app-media-card {
  box-shadow: var(--gd-style-media-shadow, var(--gd-media-shadow));
}

body.gd-hover-none .gd-game-card:hover,
body.gd-hover-none .gd-post-card:hover {
  transform: none;
  box-shadow: var(--gd-style-card-shadow, var(--gd-card-shadow));
  border-color: var(--gd-border);
}

body.gd-hover-subtle .gd-game-card:hover,
body.gd-hover-subtle .gd-post-card:hover,
body.gd-hover-premium .gd-game-card:hover,
body.gd-hover-premium .gd-post-card:hover,
body.gd-hover-strong .gd-game-card:hover,
body.gd-hover-strong .gd-post-card:hover {
  transform: var(--gd-card-hover-transform);
  box-shadow: var(--gd-style-hover-shadow, var(--gd-card-hover-shadow));
  border-color: var(--gd-card-hover-border);
}

body.gd-no-background-effects,
body.gd-no-background-effects .gd-site-main,
body.gd-no-background-effects .gd-section-muted,
body.gd-no-background-effects .gd-featured-hero,
body.gd-no-background-effects .gd-game-card,
body.gd-no-background-effects .gd-post-card,
body.gd-no-background-effects .gd-panel,
body.gd-no-background-effects .gd-app-media-card,
body.gd-no-background-effects .gd-app-title-panel,
body.gd-no-background-effects .gd-home-slides {
  background-image: none;
}


/* Hidden-media storefront contract.
   The disabled-media split view uses the page hero image once only:
   title/content replaces the media column, and the right card becomes an action/meta panel. */
.gd-app-hero--hidden-media-split {
  background-position: center;
}

.gd-app-hero--hidden-media-split::before,
.gd-single-steam .gd-app-hero--hidden-media-split::before {
  background: var(--gd-single-hero-hidden-bg-gradient, linear-gradient(180deg, rgba(5,8,18,.74), rgba(5,8,18,.68) 38%, rgba(5,8,18,.96)), linear-gradient(90deg, rgba(2,6,23,.94) 0%, rgba(2,6,23,.72) 44%, rgba(2,6,23,.38) 72%, rgba(2,6,23,.86) 100%), radial-gradient(circle at 76% 20%, color-mix(in srgb, var(--gd-accent) 15%, transparent), transparent 25rem));
}

.gd-single-steam .gd-app-top--summary-split,
.gd-app-top--summary-split {
  grid-template-columns: minmax(0, min(100%, 860px)) minmax(300px, 380px);
  min-height: clamp(430px, 50vw, 610px);
  align-items: end;
  justify-content: center;
}

.gd-app-title-panel {
  min-height: auto;
  width: 100%;
  max-width: 860px;
  justify-self: end;
  overflow: visible;
  padding: clamp(18px, 3vw, 36px) clamp(10px, 2vw, 24px) clamp(26px, 3.4vw, 52px) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.gd-app-title-panel::before {
  display: none;
}

.gd-app-title-panel::after {
  inset: auto -8% 0 -6%;
  height: 72%;
  background: radial-gradient(ellipse at 18% 72%, rgba(2,6,23,.72), transparent 65%);
  pointer-events: none;
}

.gd-app-title-panel h1 {
  max-width: 880px;
  text-shadow: 0 3px 28px rgba(0,0,0,.68);
}

.gd-app-title-panel p {
  max-width: 720px;
  color: color-mix(in srgb, var(--gd-text) 90%, var(--gd-muted) 10%);
  text-shadow: 0 2px 18px rgba(0,0,0,.58);
}

.gd-app-title-panel .gd-app-title-tags,
.gd-app-title-panel .gd-app-eyebrow-row {
  position: relative;
  z-index: 1;
}

.gd-app-summary-panel--action-card {
  align-self: end;
  gap: 16px;
  max-width: 380px;
  padding: 20px;
  background: color-mix(in srgb, var(--gd-card) 92%, black 8%);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.gd-app-summary-panel--action-card .gd-app-meta-list {
  padding-top: 0;
  border-top: 0;
}

.gd-app-summary-panel--action-card .gd-app-actions {
  margin-top: 4px;
}

@media (max-width: 1180px) and (min-width: 901px) {
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, 1fr) minmax(280px, var(--gd-single-sidebar-width, 360px));
    min-height: clamp(400px, 52vw, 560px);
  }
}

@media (max-width: 769px) {
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    min-height: auto;
    align-items: stretch;
  }

  .gd-app-title-panel {
    padding: clamp(22px, 7vw, 42px) 0 clamp(10px, 3vw, 18px);
  }

  .gd-app-title-panel::after {
    display: none;
  }

  .gd-app-summary-panel--action-card {
    max-width: none;
    align-self: stretch;
  }
}


/* Hidden-media summary poster contract.
   Keep the featured image in the right summary panel, while the left side stays clean
   with title/copy/tags only. This avoids cover duplication without making
   the action card feel empty. */
.gd-app-summary-panel--action-card .gd-app-capsule {
  display: block;
  width: 100%;
  max-width: none;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--gd-radius-sm);
  border: 1px solid var(--gd-pro-hairline);
  background: #020617;
}

.gd-app-summary-panel--action-card .gd-app-capsule img,
.gd-app-summary-panel--action-card .gd-summary-poster-img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
}

.gd-app-summary-panel--action-card .gd-app-short,
.gd-app-summary-panel--action-card .gd-app-tags {
  display: none;
}

.gd-app-summary-panel--action-card .gd-app-meta-list,
.gd-app-summary-panel--action-card .gd-app-actions {
  grid-column: 1 / -1;
}


@media (max-width: 900px) {
  .gd-app-summary-panel--action-card .gd-app-capsule {
    aspect-ratio: 16 / 9;
  }
}

/* Media thumbnail rail alignment.
   The rail stays visually centered when there are only a few items, while
   overflowing galleries remain fully scrollable and the active thumb is
   centered by main.js after navigation. */
body.gd-media-thumbs-on .gd-media-rail,
body.gd-media-thumbs-on .gd-single-steam .gd-media-rail {
  display: flex;
  justify-content: center;
}
body.gd-media-thumbs-on .gd-media-thumbs-wrap,
body.gd-media-thumbs-on .gd-single-steam .gd-media-thumbs-wrap {
  width: 100%;
  max-width: 100%;
}
body.gd-media-thumbs-on .gd-media-thumbs,
body.gd-media-thumbs-on .gd-single-steam .gd-media-thumbs {
  justify-content: center;
  justify-content: safe center;
  margin-inline: auto;
  scroll-padding-inline: 50%;
}
body.gd-media-thumbs-on .gd-media-thumb,
body.gd-media-thumbs-on .gd-single-steam .gd-media-thumb {
  scroll-snap-align: center;
}
@media (max-width: 880px) {
  body.gd-media-thumbs-on.gd-mobile-thumbs-image-strip .gd-media-thumbs {
    justify-content: safe center;
    margin-inline: auto;
  }
}

/* Production media cleanup: detailed thumbnail cards already explain the item,
   so the large media overlay badge is suppressed to avoid duplicate wording. */
body.gd-media-style-detail-cards .gd-media-pill {
  display: none;
}
body.gd-media-style-detail-cards .gd-media-thumb-copy strong {
  display: block;
  font-size: 13px;
  line-height: 1.25;
  color: var(--gd-text);
}

/* Fixed-header breadcrumb offset for regular pages.
   Single game/detail pages render breadcrumbs inside the hero art and are handled by the final
   game-detail breadcrumb contract near the end of this file. */
body.gd-header-fixed:not(.gd-game-detail) .gd-breadcrumbs-wrap {
  margin-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.gd-header-fixed:not(.gd-game-detail) .gd-breadcrumbs-wrap + .gd-site-main {
  padding-top: 0;
}
body.gd-header-static .gd-breadcrumbs-wrap,
body.gd-header-not-sticky .gd-breadcrumbs-wrap {
  margin-top: 0;
}

/* Preset contract: Minimal Black and Editorial stay palette-aware, not hard-coded color overrides. */
body.gd-site-preset-minimal-black .gd-game-card,
body.gd-site-preset-minimal-black .gd-post-card,
body.gd-site-preset-editorial .gd-game-card,
body.gd-site-preset-editorial .gd-post-card {
  background: var(--gd-style-card-bg, var(--gd-card));
}

body.gd-site-preset-minimal-black .gd-panel,
body.gd-site-preset-minimal-black .gd-page-card,
body.gd-site-preset-minimal-black .gd-empty-state,
body.gd-site-preset-minimal-black .gd-archive-hero,
body.gd-site-preset-minimal-black .gd-page-header,
body.gd-site-preset-minimal-black .gd-post-hero,
body.gd-site-preset-minimal-black .gd-filter-bar,
body.gd-site-preset-minimal-black .gd-download-card,
body.gd-site-preset-minimal-black .gd-app-summary-panel,
body.gd-site-preset-minimal-black .gd-overview-panel,
body.gd-site-preset-minimal-black .gd-requirements-panel,
body.gd-site-preset-minimal-black .gd-install-panel,
body.gd-site-preset-editorial .gd-panel,
body.gd-site-preset-editorial .gd-page-card,
body.gd-site-preset-editorial .gd-empty-state,
body.gd-site-preset-editorial .gd-archive-hero,
body.gd-site-preset-editorial .gd-page-header,
body.gd-site-preset-editorial .gd-post-hero,
body.gd-site-preset-editorial .gd-filter-bar,
body.gd-site-preset-editorial .gd-download-card,
body.gd-site-preset-editorial .gd-app-summary-panel,
body.gd-site-preset-editorial .gd-overview-panel,
body.gd-site-preset-editorial .gd-requirements-panel,
body.gd-site-preset-editorial .gd-install-panel {
  background: var(--gd-style-panel-bg, var(--gd-card));
}

body.gd-site-preset-glass-blur .gd-game-card,
body.gd-site-preset-glass-blur .gd-post-card,
body.gd-site-preset-glass-blur .gd-panel,
body.gd-site-preset-glass-blur .gd-page-card,
body.gd-site-preset-glass-blur .gd-empty-state,
body.gd-site-preset-glass-blur .gd-archive-hero,
body.gd-site-preset-glass-blur .gd-page-header,
body.gd-site-preset-glass-blur .gd-post-hero,
body.gd-site-preset-glass-blur .gd-filter-bar,
body.gd-site-preset-glass-blur .gd-download-card,
body.gd-site-preset-glass-blur .gd-app-summary-panel,
body.gd-site-preset-glass-blur .gd-overview-panel,
body.gd-site-preset-glass-blur .gd-requirements-panel,
body.gd-site-preset-glass-blur .gd-install-panel,
body.gd-site-preset-glass-blur .gd-media-stage-wrap,
body.gd-site-preset-glass-blur .gd-media-thumbs-wrap,
body.gd-site-preset-glass-blur .gd-header {
  backdrop-filter: blur(18px) saturate(1.18);
  -webkit-backdrop-filter: blur(18px) saturate(1.18);
}

/* Neutral preset contrast contract: surfaces stay visibly different without stealing accent colors. */

body.gd-site-preset-minimal-black .gd-game-card,
body.gd-site-preset-minimal-black .gd-post-card,
body.gd-site-preset-editorial .gd-game-card,
body.gd-site-preset-editorial .gd-post-card {
  background: var(--gd-style-card-bg, var(--gd-card));
}

body.gd-site-preset-minimal-black .gd-game-card::after,
body.gd-site-preset-minimal-black .gd-post-card::after,
body.gd-site-preset-editorial .gd-game-card::after,
body.gd-site-preset-editorial .gd-post-card::after {
  background: linear-gradient(180deg, rgba(255,255,255,.035), transparent 34%, rgba(0,0,0,.28));
}

body.gd-site-preset-minimal-black .gd-badge,
body.gd-site-preset-minimal-black .gd-card-chip,
body.gd-site-preset-minimal-black .gd-card-topline span,
body.gd-site-preset-editorial .gd-badge,
body.gd-site-preset-editorial .gd-card-chip,
body.gd-site-preset-editorial .gd-card-topline span {
  color: var(--gd-accent);
  background: var(--gd-style-badge-bg, color-mix(in srgb, var(--gd-accent) 12%, transparent));
  border-color: color-mix(in srgb, var(--gd-accent) 25%, var(--gd-border));
}

body.gd-site-preset-minimal-black .gd-card-cta,
body.gd-site-preset-minimal-black .gd-card-overlay,
body.gd-site-preset-editorial .gd-card-cta,
body.gd-site-preset-editorial .gd-card-overlay {
  color: var(--gd-accent);
  border-color: color-mix(in srgb, var(--gd-accent) 48%, var(--gd-border));
  background: color-mix(in srgb, var(--gd-accent) 14%, rgba(0,0,0,.72));
}

body.gd-site-preset-minimal-black .gd-btn-primary,
body.gd-site-preset-minimal-black .gd-download-buttons a:first-child,
body.gd-site-preset-editorial .gd-btn-primary,
body.gd-site-preset-editorial .gd-download-buttons a:first-child {
  background: var(--gd-style-primary-button-bg, linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2)));
}

body.gd-site-preset-glass-blur .gd-game-card,
body.gd-site-preset-glass-blur .gd-post-card,
body.gd-site-preset-glass-blur .gd-panel,
body.gd-site-preset-glass-blur .gd-page-card,
body.gd-site-preset-glass-blur .gd-empty-state,
body.gd-site-preset-glass-blur .gd-archive-hero,
body.gd-site-preset-glass-blur .gd-page-header,
body.gd-site-preset-glass-blur .gd-post-hero,
body.gd-site-preset-glass-blur .gd-filter-bar,
body.gd-site-preset-glass-blur .gd-download-card,
body.gd-site-preset-glass-blur .gd-app-summary-panel,
body.gd-site-preset-glass-blur .gd-overview-panel,
body.gd-site-preset-glass-blur .gd-requirements-panel,
body.gd-site-preset-glass-blur .gd-install-panel,
body.gd-site-preset-glass-blur .gd-media-stage-wrap,
body.gd-site-preset-glass-blur .gd-media-thumbs-wrap {
  background: var(--gd-style-panel-bg, color-mix(in srgb, var(--gd-surface-solid) 40%, transparent));
  border-color: color-mix(in srgb, var(--gd-accent) 22%, var(--gd-border));
}

body.gd-site-preset-glass-blur .gd-game-card,
body.gd-site-preset-glass-blur .gd-post-card {
  background: var(--gd-style-card-bg, color-mix(in srgb, var(--gd-surface-solid) 42%, transparent));
}

/* Accessibility hardening for distribution builds. */
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--gd-accent) 82%, white);
  outline-offset: 3px;
}
.gd-load-more-status[role="status"],
.gd-media-status[role="status"] {
  min-height: 1em;
}
.gd-media-slider[role="region"] {
  isolation: isolate;
}
.gd-lightbox[aria-hidden="true"] {
  pointer-events: none;
}
body.gd-lightbox-open {
  overflow: hidden;
}
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms;
    animation-iteration-count: 1;
    scroll-behavior: auto;
    transition-duration: .001ms;
  }
}

/* Hidden-media title panel contract.
   In the media-disabled split hero, the left title block reads as open hero copy,
   not as a boxed card. Keep the page hero image/overlay, but remove the title panel's
   own background, border, inset glow, and shadow. */
body .gd-app-hero--hidden-media-split .gd-app-title-panel,
body .gd-single-steam .gd-app-hero--hidden-media-split .gd-app-title-panel {
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body .gd-app-hero--hidden-media-split .gd-app-title-panel::before,
body .gd-app-hero--hidden-media-split .gd-app-title-panel::after,
body .gd-single-steam .gd-app-hero--hidden-media-split .gd-app-title-panel::before,
body .gd-single-steam .gd-app-hero--hidden-media-split .gd-app-title-panel::after {
  display: none;
}


/* Radius contract hardening.
   Explicit body-scoped selectors intentionally sit at the end of the settings contract
   and make every chip/pill/button-like control obey Button border radius. */
body .gd-badge,
body .gd-category-cloud a,
body .gd-category-cloud .gd-badge,
body .gd-meta-line a,
body .gd-card-chip,
body .gd-card-topline span,
body .gd-card-badges .gd-badge,
body .gd-card-footer a,
body .gd-card-cta,
body .gd-card-overlay,
body .gd-kicker,
body .gd-title-rating,
body .gd-review-sort-pill,
body .gd-rating-row,
body .gd-rating-inputs span,
body .gd-review-form .gd-review-recommend,
body .gd-comment-actions a,
body .gd-comment-edit,
body .page-numbers,
body .gd-filter-clear,
body .gd-load-more,
body .gd-text-link,
body .gd-media-pill,
body .gd-media-status strong,
body .gd-lightbox-close,
body .gd-lightbox-nav,
body .gd-media-nav,
body .gd-home-nav,
body .gd-home-dots,
body .gd-home-dots button,
body .gd-rating-bar,
body .gd-review-badge,
body .gd-review-rating,
body .gd-review-admin-recommend,
body .gd-filter-actions button,
body .gd-filter-actions a,
body .gd-btn,
body button.gd-btn,
body .gd-header-cta,
body .gd-header-search button,
body .gd-menu-toggle,
body .gd-submenu-toggle,
body .gd-related-nav,
body .gd-footer-menu a {
  border-radius: var(--gd-button-radius);
}

/* Distribution accessibility touch-target hardening. Keep actual hit areas >= 44x44 while preserving compact visual dots. */
body .gd-btn,
body button.gd-btn,
body .gd-download-buttons a,
body .gd-text-link,
body .gd-header-cta,
body .gd-header-search button {
  min-width: 44px;
  min-height: 48px;
}
body .gd-btn-small {
  min-width: 44px;
  min-height: 44px;
}
body .gd-home-dots {
  gap: 2px;
  padding: 4px;
}
body .gd-home-dots button {
  position: relative;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  background: transparent;
}
body .gd-home-dots button::before {
  content: "";
  position: absolute;
  left: 7px;
  right: 7px;
  top: 18px;
  height: 8px;
  border-radius: var(--gd-button-radius);
  background: rgba(255,255,255,.25);
}
body .gd-home-dots button.is-active {
  background: transparent;
  box-shadow: none;
}
body .gd-home-dots button.is-active::before {
  background: linear-gradient(90deg, var(--gd-accent), var(--gd-accent-2));
  box-shadow: 0 0 22px rgba(125,220,255,.35);
}
@media (max-width: 520px) {
  body .gd-home-dots button {
    width: 48px;
    min-width: 48px;
    height: 48px;
    min-height: 48px;
  }
  body .gd-home-dots button::before {
    top: 20px;
  }
}

/* Public release mobile hero dots fix: preserve accessible hit targets without pushing controls out of place. */
@media (max-width: 640px) {
  body .gd-featured-hero,
  body .gd-home-slide {
    padding-bottom: max(104px, calc(var(--gd-home-dots-vertical-offset) + 72px));
  }

  body .gd-home-dots {
    left: 50%;
    right: auto;
    bottom: 18px;
    transform: translateX(-50%);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    width: auto;
    max-width: min(calc(100% - 32px), 276px);
    min-height: 44px;
    gap: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  body .gd-home-dots button {
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  body .gd-home-dots button::before {
    left: 10px;
    right: 10px;
    top: 18px;
    height: 8px;
  }
}

/* Search modal, hero dots, lighter overlays, and breadcrumb layering. */
.gd-header-search-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  min-width: 46px;
  height: 46px;
  min-height: 46px;
  padding: 0;
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-button-radius);
  background: color-mix(in srgb, var(--gd-surface) 72%, transparent);
  color: var(--gd-text);
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.gd-header-search-toggle:hover,
.gd-header-search-toggle:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 48%, var(--gd-border));
  color: var(--gd-accent);
}
.gd-search-icon {
  position: relative;
  width: 18px;
  height: 18px;
  border: 2px solid currentColor;
  border-radius: 50%;
}
.gd-search-icon::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 2px;
  right: -6px;
  bottom: -3px;
  border-radius: 999px;
  background: currentColor;
  transform: rotate(45deg);
  transform-origin: center;
}
.gd-search-modal {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: grid;
  place-items: start center;
  padding: max(84px, calc(var(--gd-live-header-h, var(--gd-header-h)) + 24px)) 18px 18px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--gd-motion-fast) ease, visibility var(--gd-motion-fast) ease;
}
.gd-search-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.gd-search-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2,6,23,.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.gd-search-modal-panel {
  position: relative;
  width: min(720px, 100%);
  padding: clamp(16px, 3vw, 24px);
  border: 1px solid color-mix(in srgb, var(--gd-border) 86%, transparent);
  border-radius: var(--gd-radius);
  background: color-mix(in srgb, var(--gd-surface) 96%, var(--gd-bg) 4%);
  box-shadow: var(--gd-style-panel-shadow, var(--gd-panel-shadow));
}
.gd-search-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-button-radius);
  background: color-mix(in srgb, var(--gd-bg) 60%, transparent);
  color: var(--gd-text);
  cursor: pointer;
}
.gd-search-modal-close::before,
.gd-search-modal-close::after {
  content: "";
  position: absolute;
  left: 13px;
  right: 13px;
  top: 21px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}
.gd-search-modal-close::before { transform: rotate(45deg); }
.gd-search-modal-close::after { transform: rotate(-45deg); }
.gd-search-modal-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 8px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 28%, var(--gd-border));
  border-radius: var(--gd-input-radius);
  background: color-mix(in srgb, var(--gd-bg) 72%, transparent);
}
.gd-search-modal-form input[type="search"] {
  min-height: 52px;
  width: 100%;
  padding: 0 16px;
  border: 0;
  outline: 0;
  border-radius: max(0px, calc(var(--gd-input-radius) - 6px));
  background: transparent;
  color: var(--gd-text);
}
.gd-search-modal-form button[type="submit"] {
  min-height: 52px;
  padding: 0 20px;
  border: 0;
  border-radius: max(0px, calc(var(--gd-input-radius) - 6px));
  background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
  color: #03121d;
  font-weight: 900;
  cursor: pointer;
}
body.gd-search-modal-open { overflow: hidden; }
body.gd-hero-dots-off .gd-home-dots { display: none; }
body .gd-featured-hero::before,
body .gd-home-slide::before {
  opacity: var(--gd-home-hero-overlay-opacity, .58);
}
body .gd-single-steam .gd-app-hero::before,
body .gd-app-hero--hidden-media-split::before,
body .gd-single-steam .gd-app-hero--hidden-media-split::before {
  opacity: var(--gd-single-hero-overlay-opacity, .54);
}
body.single .gd-breadcrumbs-wrap,
body.single-game .gd-breadcrumbs-wrap {
  position: relative;
  z-index: 5;
  background: color-mix(in srgb, var(--gd-bg) 94%, transparent);
}
@media (max-width: 640px) {
  body .gd-featured-hero,
  body .gd-home-slide {
    padding-bottom: 74px;
  }
  body .gd-home-dots {
    left: 50%;
    right: auto;
    bottom: 14px;
    transform: translateX(-50%);
    display: inline-flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    width: max-content;
    max-width: calc(100% - 32px);
    min-height: 44px;
    gap: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  body .gd-home-dots button {
    position: relative;
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    margin: 0 -3px;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  body .gd-home-dots button::before {
    left: 12px;
    right: 12px;
    top: 19px;
    height: 6px;
    border-radius: var(--gd-button-radius);
  }
  .gd-search-modal-form {
    grid-template-columns: 1fr;
  }
  .gd-search-modal-form button[type="submit"] {
    width: 100%;
  }
}
@media (max-width: 520px) {
  body .gd-home-dots {
    bottom: 12px;
  }
  body .gd-home-dots button {
    flex-basis: 44px;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    margin-inline: -4px;
  }
  body .gd-home-dots button::before {
    left: 13px;
    right: 13px;
    top: 19px;
    height: 6px;
  }
}

/* Header search and fixed-header breadcrumb offset contract. */
body .gd-header-search {
  flex: 0 1 var(--gd-header-search-w);
  width: min(var(--gd-header-search-w), 28vw);
  max-width: min(var(--gd-header-search-w), 32vw);
  min-width: 218px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: stretch;
  gap: 4px;
  padding: 4px;
  overflow: visible;
}
body .gd-header-search input[type="search"] {
  min-width: 0;
  min-height: 44px;
  padding: 0 12px;
  line-height: 1.1;
}
body .gd-header-search button[type="submit"] {
  flex: 0 0 auto;
  min-width: 76px;
  min-height: 44px;
  height: 44px;
  padding: 0 14px;
  line-height: 1;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  border-radius: max(0px, calc(var(--gd-input-radius) - 5px));
}
body.gd-header-search-box .gd-header-search button[type="submit"],
.gd-header.gd-header-search-style-box .gd-header-search button[type="submit"] {
  border-radius: 0 max(0px, var(--gd-input-radius)) max(0px, var(--gd-input-radius)) 0;
}
body.gd-header-layout-compact .gd-header-search,
.gd-header.gd-header-layout-compact .gd-header-search {
  width: min(220px, 24vw);
  min-width: 190px;
  max-width: 24vw;
}
@media (max-width: 1180px) {
  body .gd-header-search {
    min-width: 180px;
    width: min(210px, 24vw);
  }
  body .gd-header-search button[type="submit"] {
    position: relative;
    width: 44px;
    min-width: 44px;
    padding: 0;
    font-size: 0;
  }
  body .gd-header-search button[type="submit"]::before {
    content: "";
    width: 15px;
    height: 15px;
    border: 2px solid currentColor;
    border-radius: 50%;
    display: inline-block;
    transform: translate(-1px, -1px);
  }
  body .gd-header-search button[type="submit"]::after {
    content: "";
    position: absolute;
    width: 7px;
    height: 2px;
    right: 12px;
    top: 27px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(45deg);
  }
}
body .gd-nav.gd-menu-panel .gd-header-search {
  width: 100%;
  max-width: none;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) max-content;
}
body .gd-nav.gd-menu-panel .gd-header-search button[type="submit"] {
  width: auto;
  min-width: 82px;
  padding: 0 16px;
  font-size: inherit;
}
body .gd-nav.gd-menu-panel .gd-header-search button[type="submit"]::before,
body .gd-nav.gd-menu-panel .gd-header-search button[type="submit"]::after {
  content: none;
}

/* Single game/detail breadcrumb overlay contract.
   The game hero starts directly below the fixed header. Breadcrumbs are painted over the
   hero image at the top-left, with no standalone strip, border, blur, or dead spacing. */
body.gd-game-detail.gd-header-fixed .gd-site-main {
  padding-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.admin-bar.gd-game-detail.gd-header-fixed .gd-site-main {
  padding-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.gd-game-detail .gd-single-steam .gd-app-hero,
body.gd-game-detail .gd-app-hero {
  position: relative;
  padding-top: 0;
}
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 8;
  margin: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  pointer-events: none;
}
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero .gd-shell,
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero .gd-breadcrumbs,
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero a {
  pointer-events: auto;
}
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero .gd-shell {
  position: relative;
  z-index: 1;
}
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero .gd-breadcrumbs {
  padding: clamp(12px, 1.2vw, 18px) 0 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .72);
}
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero + .gd-shell {
  position: relative;
  z-index: 1;
  padding-top: clamp(176px, 14vw, 244px);
}
body.admin-bar.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero + .gd-shell {
  padding-top: clamp(176px, 14vw, 244px);
}
@media (max-width: 1024px) {
  body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero + .gd-shell,
  body.admin-bar.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero + .gd-shell {
    padding-top: clamp(136px, 18vw, 200px);
  }
}
@media (max-width: 640px) {
  body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero .gd-breadcrumbs {
    padding-top: 10px;
  }
  body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero + .gd-shell,
  body.admin-bar.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap.gd-breadcrumbs-wrap--in-hero + .gd-shell {
    padding-top: clamp(74px, 20vw, 112px);
  }
}


/* Single game section tabs behavior.
   Customizer values are sanitized by PHP; this CSS only applies the chosen display/alignment contract. */
body.gd-game-tabs-display-disabled .gd-game-tabs,
.gd-game-tabs--disabled {
  display: none;
}
body.gd-game-tabs-display-static .gd-game-tabs,
.gd-game-tabs--static {
  position: relative;
  top: auto;
}
body.gd-game-tabs-display-sticky .gd-game-tabs,
.gd-game-tabs--sticky {
  position: sticky;
}
body.gd-game-tabs-align-start .gd-game-tabs > .gd-shell,
.gd-game-tabs--align-start > .gd-shell {
  justify-content: flex-start;
}
body.gd-game-tabs-align-center .gd-game-tabs > .gd-shell,
.gd-game-tabs--align-center > .gd-shell {
  justify-content: center;
}
@media (max-width: 640px) {
  body.gd-game-tabs-align-center .gd-game-tabs > .gd-shell,
  .gd-game-tabs--align-center > .gd-shell {
    justify-content: flex-start;
  }
  .gd-game-tabs,
  .gd-game-tabs > .gd-shell {
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }
  .gd-game-tabs > .gd-shell {
    flex-wrap: nowrap;
    scroll-padding-inline: 16px;
  }
  .gd-game-tabs a {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}


/* Final sticky/side-card contract. Keep this after earlier responsive blocks so Customizer values win. */
body.gd-game-detail .gd-site-main {
  overflow-x: visible;
}
body.gd-game-tabs-display-sticky .gd-game-tabs,
.gd-game-tabs--sticky {
  position: sticky;
  top: var(--gd-live-header-h, var(--gd-sticky-offset, var(--gd-header-h)));
  z-index: 45;
}
body.admin-bar.gd-header-fixed.gd-game-tabs-display-sticky .gd-game-tabs,
body.admin-bar.gd-header-fixed .gd-game-tabs--sticky {
  top: calc(var(--gd-live-header-h, var(--gd-sticky-offset, var(--gd-header-h))) + 32px);
}
body.gd-header-not-sticky.gd-game-tabs-display-sticky .gd-game-tabs,
body.gd-header-static.gd-game-tabs-display-sticky .gd-game-tabs,
body.gd-header-not-sticky .gd-game-tabs--sticky,
body.gd-header-static .gd-game-tabs--sticky {
  top: 0;
}
body.gd-single-sticky-download-on.gd-download-card-position-sidebar .gd-side-column {
  position: sticky;
  top: calc(var(--gd-live-header-h, var(--gd-sticky-offset, var(--gd-header-h))) + 32px);
  align-self: start;
}
body.admin-bar.gd-single-sticky-download-on.gd-download-card-position-sidebar.gd-header-fixed .gd-side-column {
  top: calc(var(--gd-live-header-h, var(--gd-sticky-offset, var(--gd-header-h))) + 64px);
}
body.gd-single-sticky-download-on.gd-download-card-position-sidebar .gd-side-column .gd-download-card {
  position: static;
  top: auto;
}
body.gd-single-sticky-download-on:not(.gd-download-card-position-sidebar) .gd-side-column,
body.gd-single-sticky-download-on:not(.gd-download-card-position-sidebar) .gd-download-card {
  position: static;
  top: auto;
}
.gd-side-popular-card {
  display: grid;
  gap: 14px;
  padding: clamp(18px, 2vw, 24px);
  border: 1px solid var(--gd-pro-border);
  border-radius: var(--gd-radius-card);
  background: var(--gd-panel-bg);
  box-shadow: var(--gd-shadow-panel);
}
.gd-side-column .gd-side-popular-card + .gd-download-card {
  margin-top: 0;
}
.gd-side-popular-card h2 {
  margin: 0;
  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.1;
}
.gd-side-popular-list {
  display: grid;
  gap: 10px;
}
.gd-side-popular-item {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 8px;
  border: 1px solid color-mix(in srgb, var(--gd-border) 72%, transparent);
  border-radius: var(--gd-radius-btn);
  background: color-mix(in srgb, var(--gd-surface) 64%, transparent);
  color: var(--gd-text);
  text-decoration: none;
}
.gd-side-popular-item:hover,
.gd-side-popular-item:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 72%, var(--gd-border));
  transform: translateY(-1px);
}
.gd-side-popular-thumb {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: max(4px, calc(var(--gd-radius-card) * .35));
  background: color-mix(in srgb, var(--gd-bg-2) 84%, black);
}
.gd-side-popular-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gd-side-popular-placeholder {
  font-weight: 900;
  color: var(--gd-accent);
}
.gd-side-popular-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.gd-side-popular-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  line-height: 1.25;
}
.gd-side-popular-copy small {
  color: var(--gd-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
}
@media (max-width: 1180px) {
  body.gd-single-sticky-download-on.gd-download-card-position-sidebar .gd-side-column {
    position: static;
    top: auto;
  }
}
@media (max-width: 782px) and (min-width: 601px) {
  body.admin-bar.gd-header-fixed.gd-game-tabs-display-sticky .gd-game-tabs,
  body.admin-bar.gd-header-fixed .gd-game-tabs--sticky {
    top: calc(var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))) + 46px);
  }
}
@media (max-width: 600px) {
  body.admin-bar.gd-header-fixed.gd-game-tabs-display-sticky .gd-game-tabs,
  body.admin-bar.gd-header-fixed .gd-game-tabs--sticky {
    top: var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h)));
  }
  .gd-side-popular-item {
    grid-template-columns: 74px minmax(0, 1fr);
  }
}


/* Sticky tabs fallback.
   Native sticky can fail when optimization plugins or wrappers add overflow to ancestors.
   The JS fallback fixes only the game tabs when the Customizer setting is Sticky below header. */
html {
  scroll-padding-top: var(--gd-anchor-offset, calc(var(--gd-live-header-h, var(--gd-header-h)) + 24px));
}
body.gd-game-detail.gd-tabs-js-active,
body.gd-game-detail.gd-tabs-js-active .gd-site-main {
  overflow-x: visible;
}
.gd-game-tabs-placeholder {
  display: none;
  height: 0;
  margin: 0;
  padding: 0;
}
.gd-game-tabs-placeholder.is-active {
  display: block;
}
.gd-game-tabs.is-gd-tabs-fixed {
  position: fixed;
  top: var(--gd-tabs-fixed-top, 0px);
  left: 0;
  right: 0;
  width: 100%;
  z-index: 9998;
  transform: translateZ(0);
}
body.gd-game-tabs-display-static .gd-game-tabs.is-gd-tabs-fixed,
.gd-game-tabs--static.is-gd-tabs-fixed {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  width: auto;
  transform: none;
}
body.gd-game-tabs-display-disabled .gd-game-tabs-placeholder {
  display: none;
}
@media (max-width: 880px) {
  .gd-game-tabs.is-gd-tabs-fixed > .gd-shell,
  body.gd-game-tabs-align-center .gd-game-tabs.is-gd-tabs-fixed > .gd-shell,
  .gd-game-tabs--align-center.is-gd-tabs-fixed > .gd-shell {
    justify-content: flex-start;
  }
}

/* Single-game sidebar order contract.
   Source order stays download-first for mobile/tablet. Desktop visually promotes discovery above the download panel. */
.gd-game-layout > .gd-side-column {
  display: grid;
  gap: 18px;
  align-content: start;
}
.gd-game-layout > .gd-side-column .gd-download-card,
.gd-game-layout > .gd-side-column .gd-side-popular-card {
  min-width: 0;
}
.gd-game-layout > .gd-side-column .gd-side-popular-card + .gd-download-card,
.gd-game-layout > .gd-side-column .gd-download-card + .gd-side-popular-card {
  margin-top: 0;
}
@media (min-width: 1181px) {
  .gd-game-layout > .gd-side-column .gd-side-popular-card { order: 1; }
  .gd-game-layout > .gd-side-column .gd-download-card { order: 2; }
}
@media (max-width: 1180px) {
  .gd-game-layout > .gd-side-column .gd-download-card { order: 1; }
  .gd-game-layout > .gd-side-column .gd-side-popular-card { order: 2; }
}


/* Mobile/small-screen tabs contract.
   The tab rail must scroll horizontally on touch devices and must never center-overflow the first tab off-screen. */
@media (max-width: 880px) {
  .gd-game-tabs,
  .gd-game-tabs.is-gd-tabs-fixed {
    max-width: 100vw;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }
  .gd-game-tabs > .gd-shell,
  .gd-game-tabs.is-gd-tabs-fixed > .gd-shell,
  body.gd-game-tabs-align-center .gd-game-tabs > .gd-shell,
  .gd-game-tabs--align-center > .gd-shell {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-inline: 0;
    padding-inline: max(10px, env(safe-area-inset-left)) max(10px, env(safe-area-inset-right));
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .gd-game-tabs > .gd-shell::-webkit-scrollbar {
    display: none;
  }
  .gd-game-tabs a {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* Compact single-game media footer + clean cropped thumbnails.
   Keeps the large media stage prominent while reducing the heavy bottom rail.
   Thumbnails are always cropped to their frame so YouTube/poster letterboxing does not create black strips. */
.gd-single-steam .gd-media-toolbar,
.gd-media-toolbar {
  min-height: 0;
  padding: 8px 10px;
  gap: 10px;
}
.gd-single-steam .gd-media-status,
.gd-media-status {
  gap: 8px;
  font-size: 13px;
  line-height: 1.25;
}
.gd-single-steam .gd-media-status strong,
.gd-media-status strong {
  min-height: 28px;
  padding: 4px 8px;
  border-radius: 8px;
  font-size: 13px;
}
.gd-single-steam .gd-media-actions .gd-btn,
.gd-media-actions .gd-btn {
  min-height: 34px;
  padding: 7px 10px;
  font-size: 12px;
  line-height: 1.2;
}
.gd-single-steam .gd-media-rail,
.gd-media-rail {
  padding: 8px 10px 10px;
}
.gd-single-steam .gd-media-thumbs,
.gd-media-thumbs {
  align-items: center;
  gap: 8px;
  padding: 0 0 2px;
}
body.gd-media-style-steam-strip .gd-media-thumbs,
.gd-single-steam .gd-media-thumbs {
  grid-auto-columns: minmax(104px, 132px);
}
.gd-single-steam .gd-media-thumb,
.gd-media-thumb {
  padding: 0;
  overflow: hidden;
  background: rgba(11,18,32,.96);
}
.gd-single-steam .gd-media-thumb-art,
.gd-media-thumb-art {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(11,18,32,.96);
}
.gd-single-steam .gd-media-thumb-art img,
.gd-media-thumb-art img,
.gd-single-steam .gd-media-thumb img[data-gd-youtube-poster="1"],
.gd-media-thumb img[data-gd-youtube-poster="1"] {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center center;
  background: rgba(11,18,32,.96);
}
.gd-single-steam .gd-media-slide[data-type="video"] .gd-media-frame img[data-gd-youtube-poster="1"],
.gd-media-slide[data-type="video"] .gd-media-frame img[data-gd-youtube-poster="1"] {
  object-fit: cover;
  object-position: center center;
}
@media (max-width: 880px) {
  .gd-single-steam .gd-media-toolbar,
  .gd-media-toolbar {
    padding: 7px 9px;
  }
  .gd-single-steam .gd-media-rail,
  .gd-media-rail {
    padding: 7px 9px 9px;
  }
  body.gd-mobile-thumbs-image-strip .gd-media-thumbs,
  .gd-single-steam .gd-media-thumbs {
    gap: 7px;
  }
}
@media (max-width: 520px) {
  .gd-single-steam .gd-media-status [data-gd-label],
  .gd-media-status [data-gd-label] {
    max-width: 44vw;
  }
  .gd-single-steam .gd-media-actions .gd-btn,
  .gd-media-actions .gd-btn {
    min-height: 32px;
  }
}


/* Distribution responsive contract.
   These rules harden the theme at tablet and phone widths across homepage,
   single game, archive/search, static pages, media, and the header. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.gd-shell,
.gd-header-inner,
.gd-site-main,
.gd-store-hero,
.gd-home-slider,
.gd-home-slides,
.gd-featured-hero,
.gd-home-slide,
.gd-page-panel,
.gd-page-content,
.gd-archive-hero,
.gd-filter-pro,
.gd-filter-bar,
.gd-game-grid,
.gd-content-layout,
.gd-archive-layout,
.gd-game-layout,
.gd-app-top,
.gd-app-media-card,
.gd-app-summary-panel,
.gd-media-slider,
.gd-media-stage-wrap,
.gd-media-stage,
.gd-media-slide,
.gd-download-card,
.gd-side-column,
.gd-main-column {
  min-width: 0;
}

.gd-content :where(img, iframe, video, table, pre),
.gd-page-content :where(img, iframe, video, table, pre),
.gd-panel :where(img, iframe, video, table, pre) {
  max-width: 100%;
}

.gd-content :where(table, pre),
.gd-page-content :where(table, pre) {
  overflow-x: auto;
}

@media (max-width: 1100px) {
  :root {
    --gd-mobile-header-h: clamp(62px, var(--gd-header-h, 76px), 88px);
  }

  .gd-header {
    min-height: var(--gd-mobile-header-h);
  }

  .gd-header-inner {
    min-height: var(--gd-mobile-header-h);
    gap: 12px;
  }

  .gd-brand {
    max-width: calc(100% - 58px);
    min-width: 0;
  }

  .gd-custom-logo {
    max-width: min(62vw, 340px);
    max-height: min(48px, var(--gd-header-logo-h));
    object-fit: contain;
  }

  .gd-brand-text {
    max-width: min(48vw, 220px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gd-menu-toggle {
    display: inline-flex;
  }

  .gd-nav.gd-menu-panel {
    position: fixed;
    z-index: 99999;
    top: var(--gd-mobile-header-h);
    left: max(12px, env(safe-area-inset-left));
    right: max(12px, env(safe-area-inset-right));
    display: none;
    width: auto;
    max-width: none;
    max-height: calc(100dvh - var(--gd-mobile-header-h) - 20px);
    margin: 0;
    padding: 14px;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--gd-border);
    border-radius: var(--gd-card-radius);
    background: color-mix(in srgb, var(--gd-bg) 96%, #000);
    box-shadow: 0 28px 90px rgba(0,0,0,.56);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  .gd-nav.gd-menu-panel.is-open,
  body.gd-menu-open .gd-nav.gd-menu-panel {
    display: flex;
  }

  .admin-bar .gd-nav.gd-menu-panel {
    top: calc(var(--gd-mobile-header-h) + 32px);
    max-height: calc(100dvh - var(--gd-mobile-header-h) - 52px);
  }

  .gd-nav.gd-menu-panel .gd-menu {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    gap: 6px;
  }

  .gd-nav.gd-menu-panel .gd-menu li,
  .gd-nav.gd-menu-panel .gd-menu a,
  .gd-nav.gd-menu-panel .gd-header-search,
  .gd-nav.gd-menu-panel .gd-header-cta,
  .gd-nav.gd-menu-panel .gd-header-search-toggle {
    width: 100%;
  }

  .gd-nav.gd-menu-panel .gd-menu a,
  .gd-nav.gd-menu-panel .gd-header-search-toggle,
  .gd-nav.gd-menu-panel .gd-header-cta {
    min-height: 46px;
    justify-content: space-between;
    border-radius: var(--gd-input-radius);
  }

  .gd-nav.gd-menu-panel .gd-menu .sub-menu,
  .gd-nav.gd-menu-panel .gd-menu .sub-menu .sub-menu {
    position: static;
    display: none;
    min-width: 0;
    width: 100%;
    margin: 6px 0 0;
    padding: 6px;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border-radius: var(--gd-input-radius);
    background: rgba(255,255,255,.045);
  }

  .gd-nav.gd-menu-panel .gd-menu li.is-submenu-open > .sub-menu {
    display: grid;
    gap: 4px;
  }

  .gd-nav.gd-menu-panel .gd-header-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: none;
  }

  .gd-store-hero {
    padding-top: clamp(18px, 4vw, 28px);
    padding-bottom: clamp(20px, 4vw, 30px);
  }

  .gd-home-slider {
    max-width: 100%;
  }

  .gd-featured-hero,
  .gd-home-slide {
    min-height: clamp(430px, 56vw, 580px);
    padding: clamp(30px, 6vw, 58px);
  }

  .gd-hero-copy {
    max-width: min(100%, 720px);
  }

  .gd-hero-copy h1,
  .gd-hero-copy .gd-hero-title {
    max-width: 14ch;
    font-size: clamp(36px, 7vw, 58px);
  }

  .gd-hero-copy p {
    max-width: 62ch;
    font-size: clamp(15px, 2vw, 18px);
  }

  .gd-hero-search {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .gd-storefront-panels,
  .gd-content-layout,
  .gd-archive-layout,
  .gd-game-layout,
  .gd-game-hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gd-filter-pro,
  .gd-filter-bar {
    max-width: 100%;
  }

  .gd-related-store-grid,
  .gd-site-main .gd-related-store-grid,
  .gd-related-grid-static,
  .gd-site-main .gd-related-grid-static {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gd-single-steam .gd-app-top,
  .gd-app-top {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(14px, 2.4vw, 24px);
  }


  .gd-single-steam .gd-app-media-card,
  .gd-app-media-card {
    justify-self: stretch;
    max-width: 100%;
    width: 100%;
  }

  .gd-page-shell {
    max-width: min(100% - 32px, 960px);
  }

  .gd-page-panel {
    max-width: 100%;
    padding: clamp(24px, 4vw, 38px);
  }

  .gd-page-titlebar,
  .gd-page-content {
    max-width: 76ch;
  }
}

@media (max-width: 782px) {
  .admin-bar .gd-nav.gd-menu-panel {
    top: calc(var(--gd-mobile-header-h) + 46px);
    max-height: calc(100dvh - var(--gd-mobile-header-h) - 66px);
  }
}

@media (max-width: 640px) {
  .gd-shell {
    width: min(100% - 24px, var(--gd-shell));
  }

  .gd-featured-hero,
  .gd-home-slide {
    min-height: clamp(410px, 104vw, 540px);
    padding: clamp(24px, 6vw, 34px);
    align-items: end;
  }

  .gd-featured-hero::before {
    background: linear-gradient(180deg, rgba(2,6,23,.24), rgba(2,6,23,.84) 56%, rgba(2,6,23,.96)), linear-gradient(90deg, rgba(2,6,23,.78), rgba(2,6,23,.30));
  }

  .gd-hero-copy h1,
  .gd-hero-copy .gd-hero-title {
    max-width: 12.5ch;
    font-size: clamp(34px, 9.6vw, 50px);
  }

  .gd-hero-copy p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }

  .gd-hero-search,
  .gd-filter-pro,
  .gd-filter-bar,
  .gd-filter-actions,
  .gd-download-buttons,
  .gd-app-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .gd-hero-search button,
  .gd-filter-actions button,
  .gd-filter-actions a,
  .gd-download-buttons a,
  .gd-app-actions .gd-btn {
    width: 100%;
    justify-content: center;
  }

  .gd-stat-grid,
  .gd-game-grid,
  .gd-site-main .gd-game-grid:not(.gd-related-grid),
  .gd-related-store-grid,
  .gd-site-main .gd-related-store-grid,
  .gd-related-grid-static,
  .gd-site-main .gd-related-grid-static,
  .gd-requirements-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gd-single-steam .gd-app-titlebar h1,
  .gd-app-titlebar h1 {
    max-width: 100%;
    font-size: clamp(36px, 8vw, 54px);
    line-height: 1.02;
  }


  .gd-game-tabs,
  .gd-game-tabs.is-gd-tabs-fixed {
    max-width: 100vw;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .gd-game-tabs > .gd-shell,
  .gd-game-tabs.is-gd-tabs-fixed > .gd-shell {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right));
  }

  .gd-media-stage,
  .gd-single-steam .gd-media-stage {
    aspect-ratio: 16 / 9;
    min-height: 0;
    max-height: none;
  }

  .gd-media-toolbar,
  .gd-single-steam .gd-media-toolbar {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .gd-media-status [data-gd-label] {
    max-width: 46vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gd-page-shell {
    max-width: min(100% - 24px, 820px);
  }

  .gd-page-panel,
  .gd-archive-hero,
  .gd-page-header,
  .gd-post-hero,
  .gd-panel,
  .gd-empty-state {
    padding: clamp(18px, 5vw, 24px);
  }
}

@media (max-width: 640px) {
  :root {
    --gd-mobile-header-h: 62px;
    --gd-header-h: 62px;
  }

  .gd-header-inner {
    min-height: var(--gd-mobile-header-h);
  }

  .gd-custom-logo {
    max-width: min(68vw, 280px);
    max-height: min(42px, var(--gd-header-logo-h));
  }

  .gd-menu-toggle {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }


  .gd-media-toolbar,
  .gd-single-steam .gd-media-toolbar {
    grid-template-columns: minmax(0, 1fr);
  }

  .gd-media-actions,
  .gd-media-actions .gd-btn {
    width: 100%;
  }

  .gd-media-status [data-gd-label] {
    max-width: 64vw;
  }
}

@media (max-width: 520px) {
  .gd-shell {
    width: min(100% - 18px, var(--gd-shell));
  }

  .gd-custom-logo {
    max-width: min(70vw, 240px);
    max-height: 38px;
  }

  .gd-featured-hero,
  .gd-home-slide {
    min-height: clamp(390px, 124vw, 500px);
    padding: 20px;
  }

  .gd-hero-copy h1,
  .gd-hero-copy .gd-hero-title,
  .gd-single-steam .gd-app-titlebar h1,
  .gd-app-titlebar h1,
  .gd-archive-hero h1,
  .gd-page-titlebar h1,
  .gd-page-header h1,
  .gd-post-hero h1 {
    font-size: clamp(30px, 10.5vw, 40px);
    line-height: 1.04;
    letter-spacing: -.045em;
  }

  .gd-badge,
  .gd-meta-line a,
  .gd-category-cloud a {
    min-height: 30px;
    padding: 6px 8px;
    font-size: 11px;
  }

  .gd-app-summary-panel .gd-app-meta-list .gd-meta-line,
  .gd-single-steam .gd-app-summary-panel .gd-app-meta-list .gd-meta-line {
    grid-template-columns: minmax(92px, .38fr) minmax(0, 1fr);
    gap: 4px 8px;
  }

  .gd-game-tabs a {
    min-height: 42px;
    padding: 10px 10px;
    font-size: 12px;
  }

  .gd-footer-menu {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 380px) {
  .gd-shell {
    width: min(100% - 14px, var(--gd-shell));
  }

  .gd-custom-logo {
    max-width: min(68vw, 210px);
    max-height: 34px;
  }

  .gd-app-summary-panel .gd-app-meta-list .gd-meta-line,
  .gd-single-steam .gd-app-summary-panel .gd-app-meta-list .gd-meta-line {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Responsive single-game action panel contract.
   Keeps the hidden-media summary card readable at tablet/small-desktop widths
   and prevents metadata values from collapsing into one-character columns. */
.gd-single-steam .gd-app-summary-panel--action-card,
.gd-app-summary-panel--action-card {
  grid-template-columns: minmax(0, 1fr);
}

.gd-single-steam .gd-app-summary-panel--action-card .gd-app-capsule,
.gd-app-summary-panel--action-card .gd-app-capsule,
.gd-single-steam .gd-app-summary-panel--action-card .gd-app-meta-list,
.gd-app-summary-panel--action-card .gd-app-meta-list,
.gd-single-steam .gd-app-summary-panel--action-card .gd-app-actions,
.gd-app-summary-panel--action-card .gd-app-actions {
  grid-column: 1 / -1;
}

.gd-single-steam .gd-app-summary-panel--action-card .gd-app-capsule,
.gd-app-summary-panel--action-card .gd-app-capsule {
  grid-row: auto;
  width: 100%;
  max-width: none;
  aspect-ratio: 16 / 9;
}

.gd-single-steam .gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line,
.gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line {
  grid-template-columns: minmax(112px, .42fr) minmax(0, 1fr);
  gap: 8px 14px;
  align-items: baseline;
}

.gd-single-steam .gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line strong,
.gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line strong {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: normal;
  text-align: right;
}

@media (max-width: 769px) {
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(14px, 2.4vw, 24px);
    min-height: auto;
    align-items: start;
  }

  .gd-single-steam .gd-app-title-panel,
  .gd-app-title-panel {
    max-width: min(100%, 760px);
    padding-top: clamp(26px, 6vw, 54px);
    padding-bottom: clamp(14px, 3vw, 24px);
  }

  .gd-single-steam .gd-app-summary-panel--action-card,
  .gd-app-summary-panel--action-card {
    order: 0;
    justify-self: start;
    align-self: start;
    width: min(100%, 440px);
    max-width: 440px;
    margin-inline: 0;
    padding: clamp(14px, 2vw, 18px);
    gap: 14px;
  }

  .gd-single-steam .gd-app-summary-panel--action-card .gd-app-meta-list,
  .gd-app-summary-panel--action-card .gd-app-meta-list,
  .gd-single-steam .gd-app-summary-panel--action-card .gd-app-actions,
  .gd-app-summary-panel--action-card .gd-app-actions {
    grid-column: 1 / -1;
  }

  .gd-single-steam .gd-app-summary-panel--action-card .gd-app-actions,
  .gd-app-summary-panel--action-card .gd-app-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .gd-single-steam .gd-app-summary-panel--action-card,
  .gd-app-summary-panel--action-card {
    width: 100%;
    max-width: none;
    justify-self: stretch;
  }

  .gd-single-steam .gd-app-summary-panel--action-card .gd-app-actions,
  .gd-app-summary-panel--action-card .gd-app-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .gd-single-steam .gd-app-hero--hidden-media-split,
  .gd-app-hero--hidden-media-split {
    padding-top: 12px;
  }

  .gd-single-steam .gd-app-title-panel,
  .gd-app-title-panel {
    padding-top: clamp(18px, 5vw, 28px);
  }

  .gd-single-steam .gd-app-title-panel h1,
  .gd-app-title-panel h1 {
    max-width: 100%;
    font-size: clamp(32px, 10vw, 44px);
    line-height: 1.03;
  }

  .gd-single-steam .gd-app-summary-panel--action-card,
  .gd-app-summary-panel--action-card {
    padding: 12px;
  }

  .gd-single-steam .gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line,
  .gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line {
    grid-template-columns: minmax(108px, .42fr) minmax(0, 1fr);
    gap: 5px 10px;
  }

  .gd-single-steam .gd-app-summary-panel--action-card .gd-app-actions,
  .gd-app-summary-panel--action-card .gd-app-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 380px) {
  .gd-single-steam .gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line,
  .gd-app-summary-panel--action-card .gd-app-meta-list .gd-meta-line {
    grid-template-columns: minmax(96px, .4fr) minmax(0, 1fr);
  }
}

/* Professional responsive composition contract.
   Medium screens get a deliberate two-card utility row instead of two full-width slabs.
   Phone screens stay source-order first: download, then discovery. */
.gd-game-layout > .gd-side-column {
  min-width: 0;
}

.gd-game-layout > .gd-side-column .gd-download-card,
.gd-game-layout > .gd-side-column .gd-side-popular-card {
  min-width: 0;
  max-width: 100%;
}

.gd-download-buttons a,
.gd-download-buttons button {
  min-width: 0;
  white-space: normal;
  line-height: 1.22;
  text-wrap: balance;
}


@media (min-width: 770px) and (max-width: 1180px) {
  .gd-single-steam .gd-app-top,
  .gd-app-top {
    grid-template-columns: minmax(0, min(100%, var(--gd-media-max, 900px))) minmax(300px, 360px);
    gap: clamp(18px, 2.4vw, 28px);
    align-items: start;
    justify-content: center;
  }

  .gd-single-steam .gd-app-summary-panel,
  .gd-app-summary-panel {
    order: 0;
    max-width: none;
    margin-inline: 0;
    justify-self: stretch;
  }

  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, min(100%, 860px)) minmax(300px, 380px);
    align-items: end;
  }

  .gd-game-layout {
    grid-template-columns: minmax(0, 1fr) minmax(300px, var(--gd-single-sidebar-width, 360px));
    gap: clamp(18px, 2.4vw, 28px);
    align-items: start;
  }

  .gd-game-layout > .gd-side-column {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(16px, 2vw, 22px);
    min-width: 0;
  }

  .gd-game-layout > .gd-side-column .gd-side-popular-card { order: 1; }
  .gd-game-layout > .gd-side-column .gd-download-card { order: 2; }

  .gd-download-card,
  .gd-side-popular-card {
    width: 100%;
    min-width: 0;
    padding: clamp(18px, 2vw, 24px);
  }

  .gd-side-popular-item {
    grid-template-columns: clamp(68px, 7vw, 82px) minmax(0, 1fr);
    min-height: 58px;
  }

  .gd-side-popular-copy strong {
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
}

@media (max-width: 640px) {
  .gd-game-layout > .gd-side-column {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .gd-game-layout > .gd-side-column .gd-download-card {
    order: 1;
  }

  .gd-game-layout > .gd-side-column .gd-side-popular-card {
    order: 2;
  }

  .gd-download-card,
  .gd-side-popular-card {
    width: 100%;
  }

  .gd-download-buttons a,
  .gd-download-buttons button,
  .gd-download-card .gd-text-link {
    min-height: 52px;
    padding-inline: 14px;
  }
}

@media (max-width: 420px) {
  .gd-download-card h2,
  .gd-side-popular-card h2 {
    font-size: clamp(21px, 6vw, 24px);
  }

  .gd-side-popular-item {
    grid-template-columns: 76px minmax(0, 1fr);
    padding: 7px;
  }

  .gd-side-popular-thumb {
    border-radius: max(6px, calc(var(--gd-radius-card) * .3));
  }
}

/* Foundation heading/media/hero contract.
   Store Rail layout is handled once in the final Store Rail contract below. */
.gd-store-hero {
  overflow: hidden;
}

.gd-home-slider {
  filter: none;
}

.gd-home-slider .gd-featured-hero,
.gd-home-slider .gd-home-slide {
  background-image: var(--gd-hero-image, none);
  background-size: cover;
  background-position: center;
  transform: translate3d(0,0,0);
  backface-visibility: hidden;
  will-change: opacity, transform;
}

.gd-home-slider .gd-featured-hero::before,
.gd-home-slider .gd-home-slide::before {
  background:
    radial-gradient(circle at 78% 26%, rgba(255,255,255,.08), transparent 18rem),
    linear-gradient(90deg, rgba(2,6,23,.97) 0%, rgba(2,6,23,.78) 46%, rgba(2,6,23,.30) 100%),
    linear-gradient(0deg, rgba(2,6,23,.88), transparent 64%);
}

.gd-hero-card-link {
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
  color: inherit;
  text-decoration: none;
}

.gd-hero-card-link:focus-visible {
  outline: 3px solid var(--gd-accent);
  outline-offset: -8px;
}

.gd-hero-copy {
  pointer-events: none;
}

.gd-hero-copy .gd-hero-actions,
.gd-hero-copy a,
.gd-hero-copy button,
.gd-hero-copy input {
  pointer-events: auto;
}

/* Heading control: keep content headings tied to Customizer heading scale. */
.gd-content h1,
.gd-page-content h1,
.gd-game-content h1 {
  font-size: min(clamp(30px, 4.6vw, 48px), calc(var(--gd-single-title-max) * var(--gd-heading-scale)));
  line-height: 1.08;
}

.gd-content h2,
.gd-page-content h2,
.gd-game-content h2,
.gd-panel h2,
.gd-download-card h2,
.gd-feature-panel h2,
.gd-overview-panel h2,
.gd-requirements-panel h2,
.gd-install-panel h2,
.gd-app-summary-panel h2 {
  font-size: min(clamp(24px, 3vw, 34px), calc(var(--gd-section-title-max) * var(--gd-heading-scale)));
  line-height: 1.14;
}

.gd-content h3,
.gd-page-content h3,
.gd-game-content h3,
.gd-panel h3,
.gd-download-card h3,
.gd-feature-panel h3,
.gd-overview-panel h3,
.gd-requirements-panel h3,
.gd-install-panel h3,
.gd-app-summary-panel h3,
.gd-review-form h3,
.gd-review-empty h3,
.gd-comment-empty h3 {
  font-size: min(clamp(20px, 2.2vw, 26px), calc(var(--gd-section-title-max) * .76 * var(--gd-heading-scale)));
  line-height: 1.18;
}

.gd-content h4,
.gd-page-content h4,
.gd-game-content h4,
.gd-panel h4,
.gd-download-card h4,
.gd-feature-panel h4 {
  font-size: min(clamp(17px, 1.6vw, 21px), calc(var(--gd-section-title-max) * .58 * var(--gd-heading-scale)));
  line-height: 1.22;
}

.gd-store-hero .gd-hero-copy .gd-hero-title,
.gd-store-hero .gd-hero-copy h2.gd-hero-title {
  max-width: min(24ch, 100%);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-wrap: balance;
  font-size: min(clamp(30px, 4.1vw, 54px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
  line-height: 1.12;
  padding-bottom: .08em;
}

body.gd-hero-density-compact .gd-store-hero .gd-hero-copy .gd-hero-title {
  font-size: min(clamp(28px, 3.5vw, 44px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
}

body.gd-hero-density-editorial .gd-store-hero .gd-hero-copy .gd-hero-title {
  font-size: min(clamp(32px, 4.5vw, 58px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
}

.gd-home-slider--spotlight .gd-home-slides {
  contain: layout;
}

.gd-home-slider--spotlight .gd-home-slide {
  transition: opacity .34s ease, visibility .34s ease;
}

/* Single-game media thumbnail rail: same 16:9 frame for active, video, and image thumbs. */
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumbs,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumbs {
  display: flex;
  align-items: center;
  gap: 10px;
  grid-auto-columns: unset;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  padding: 6px 10px 8px;
}

body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumb,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb.is-active,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumb.is-active,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb--video,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb[data-type="video"],
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb--video.is-active,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb[data-type="video"].is-active {
  flex: 0 0 clamp(118px, 10vw, 156px);
  width: clamp(118px, 10vw, 156px);
  min-width: clamp(118px, 10vw, 156px);
  max-width: clamp(118px, 10vw, 156px);
  min-height: 0;
  height: auto;
  padding: 0;
  overflow: hidden;
  line-height: 0;
  border-radius: 8px;
  box-sizing: border-box;
  scroll-snap-align: start;
  transform: none;
}

body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb-art,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumb-art {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(8, 15, 30, .96);
}

body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb-art img,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumb-art img,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb img[data-gd-youtube-poster="1"],
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumb img[data-gd-youtube-poster="1"] {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center center;
}

body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb-copy,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumb-copy {
  display: none;
}

body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb.is-active,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-single-steam .gd-media-thumb.is-active {
  opacity: 1;
  border-color: rgba(56, 189, 248, .88);
  box-shadow: inset 0 0 0 1px rgba(56, 189, 248, .72), 0 0 0 1px rgba(56, 189, 248, .16);
}

body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb--video .gd-media-thumb-art::after,
body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb[data-type="video"] .gd-media-thumb-art::after {
  display: none;
}

body.gd-media-thumbs-on.gd-media-style-steam-strip .gd-media-thumb-play {
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  transform: translate(-50%, -50%);
}

@media (max-width: 640px) {
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-media-thumb,
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-single-steam .gd-media-thumb,
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-media-thumb.is-active,
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-single-steam .gd-media-thumb.is-active,
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-media-thumb--video,
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-media-thumb[data-type="video"],
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-media-thumb--video.is-active,
  body.gd-media-thumbs-on.gd-media-style-steam-strip:not(.gd-mobile-thumbs-dots):not(.gd-mobile-thumbs-hidden) .gd-media-thumb[data-type="video"].is-active {
    flex-basis: clamp(92px, 27vw, 124px);
    width: clamp(92px, 27vw, 124px);
    min-width: clamp(92px, 27vw, 124px);
    max-width: clamp(92px, 27vw, 124px);
  }

  body.gd-mobile-thumbs-dots .gd-media-rail {
    justify-content: center;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumbs-wrap {
    width: auto;
    overflow: visible;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumbs {
    display: flex;
    gap: 8px;
    padding: 8px 0;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumb,
  body.gd-mobile-thumbs-dots .gd-media-thumb.is-active,
  body.gd-mobile-thumbs-dots .gd-media-thumb--video,
  body.gd-mobile-thumbs-dots .gd-media-thumb[data-type="video"],
  body.gd-mobile-thumbs-dots .gd-media-thumb--video.is-active,
  body.gd-mobile-thumbs-dots .gd-media-thumb[data-type="video"].is-active {
    flex: 0 0 10px;
    width: 10px;
    min-width: 10px;
    max-width: 10px;
    height: 10px;
    min-height: 10px;
    padding: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.26);
    box-shadow: none;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumb.is-active {
    background: var(--gd-accent);
  }

  body.gd-mobile-thumbs-dots .gd-media-thumb-art,
  body.gd-mobile-thumbs-dots .gd-media-thumb-copy,
  body.gd-mobile-thumbs-dots .gd-media-thumb-play {
    display: none;
  }

  body.gd-mobile-thumbs-hidden .gd-media-rail {
    display: none;
  }
}

/* Store Rail clean contract 16.28.09.
   One intentional rail system, rewritten from the working 16.28.03 behavior.
   >2100px: cinematic five-card rail.
   721px-2100px: true three-card rail with only previous, active, and next visible.
   <=720px: active full-width card only. Search remains a separate section below. */
body.home .gd-store-hero--layout-store-rail {
  overflow: hidden;
  padding-block: clamp(12px, 1.6vw, 22px) clamp(12px, 1.8vw, 24px);
}

body.home .gd-store-hero--layout-store-rail > .gd-shell:first-child,
body.home .gd-store-hero.gd-store-hero--layout-store-rail .gd-shell {
  width: 100%;
  max-width: none;
  padding-inline: 0;
}

body.home .gd-home-slider--store-rail {
  --gd-rail-card-width: min(74vw, 1220px);
  --gd-rail-near-step: calc(var(--gd-rail-card-width) * .52);
  --gd-rail-far-step: calc(var(--gd-rail-card-width) * .80);
  --gd-rail-near-scale: .68;
  --gd-rail-far-scale: .50;
  --gd-rail-height: clamp(430px, 34vw, 570px);
  --gd-rail-min-height: 410px;
  --gd-rail-slide-pad: clamp(22px, 2.2vw, 38px) clamp(28px, 3vw, 52px) clamp(40px, 3.8vw, 68px);
  --gd-rail-copy-max: min(650px, 58%);
  width: 100%;
  max-width: 100%;
  margin: 0;
  overflow: visible;
  isolation: isolate;
  filter: none;
}

body.gd-hero-density-compact .gd-home-slider--store-rail {
  --gd-rail-card-width: min(72vw, 1180px);
  --gd-rail-height: clamp(370px, 29vw, 490px);
  --gd-rail-min-height: 350px;
  --gd-rail-slide-pad: clamp(20px, 2vw, 32px) clamp(24px, 2.6vw, 44px) clamp(38px, 3.4vw, 58px);
  --gd-rail-copy-max: min(610px, 58%);
}

body.gd-hero-density-cinematic .gd-home-slider--store-rail {
  --gd-rail-card-width: min(76vw, 1280px);
  --gd-rail-height: clamp(430px, 34vw, 570px);
  --gd-rail-min-height: 400px;
  --gd-rail-copy-max: min(650px, 58%);
}

body.gd-hero-density-editorial .gd-home-slider--store-rail {
  --gd-rail-card-width: min(74vw, 1240px);
  --gd-rail-height: clamp(410px, 32vw, 540px);
  --gd-rail-min-height: 388px;
  --gd-rail-copy-max: min(720px, 64%);
}

body.home .gd-home-slider--store-rail .gd-home-slides {
  position: relative;
  height: var(--gd-rail-height);
  min-height: var(--gd-rail-min-height);
  overflow: visible;
  contain: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.home .gd-home-slider--store-rail .gd-home-slides::after {
  display: none;
}

body.home .gd-home-slider--store-rail .gd-home-slide {
  position: absolute;
  inset: 0 auto auto 50%;
  left: 50%;
  display: grid;
  align-items: end;
  width: var(--gd-rail-card-width);
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: var(--gd-rail-slide-pad);
  overflow: hidden;
  visibility: hidden;
  opacity: 1;
  pointer-events: none;
  border: 0;
  border-radius: 0;
  outline: 0;
  background-color: var(--gd-card-2);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: 0 24px 72px rgba(0, 0, 0, .28);
  z-index: 1;
  transform: translate3d(-50%, 0, 0) scale(var(--gd-rail-far-scale));
  transform-origin: center center;
  filter: saturate(.58) brightness(.34);
  transition: transform .42s cubic-bezier(.19,1,.22,1), visibility .24s ease, filter .24s ease;
}

body.home .gd-home-slider--store-rail .gd-home-slide.is-active {
  visibility: visible;
  pointer-events: auto;
  z-index: 10;
  transform: translate3d(-50%, 0, 0) scale(1);
  filter: none;
  box-shadow: 0 32px 92px rgba(0, 0, 0, .36), inset 0 0 0 1px rgba(255, 255, 255, .07);
}

body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-1"] {
  visibility: visible;
  z-index: 6;
  transform: translate3d(calc(-50% - var(--gd-rail-near-step)), 0, 0) scale(var(--gd-rail-near-scale));
  filter: saturate(.62) brightness(.36);
}

body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="1"] {
  visibility: visible;
  z-index: 6;
  transform: translate3d(calc(-50% + var(--gd-rail-near-step)), 0, 0) scale(var(--gd-rail-near-scale));
  filter: saturate(.62) brightness(.36);
}

body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"] {
  visibility: visible;
  z-index: 3;
  transform: translate3d(calc(-50% - var(--gd-rail-far-step)), 0, 0) scale(var(--gd-rail-far-scale));
  filter: saturate(.54) brightness(.26);
}

body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"] {
  visibility: visible;
  z-index: 3;
  transform: translate3d(calc(-50% + var(--gd-rail-far-step)), 0, 0) scale(var(--gd-rail-far-scale));
  filter: saturate(.54) brightness(.26);
}

body.home .gd-home-slider--store-rail.gd-home-slider--single,
body.home .gd-home-slider--store-rail:not(:has(.gd-home-prev)) {
  --gd-rail-card-width: min(calc(100vw - 32px), 1320px);
  --gd-rail-near-step: 100%;
  --gd-rail-far-step: 100%;
  --gd-rail-near-scale: 1;
  --gd-rail-far-scale: 1;
}

body.home .gd-home-slider--store-rail.gd-home-slider--single .gd-home-slide,
body.home .gd-home-slider--store-rail:not(:has(.gd-home-prev)) .gd-home-slide {
  transform: translate3d(-50%, 0, 0) scale(1);
}

body.home .gd-home-slider--store-rail .gd-hero-card-link:focus-visible {
  outline: 0;
  box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--gd-accent) 82%, white);
}

body.home .gd-home-slider--store-rail .gd-hero-copy {
  position: relative;
  z-index: 4;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  max-width: var(--gd-rail-copy-max);
  min-width: 0;
  text-shadow: 0 2px 28px rgba(0, 0, 0, .46);
}

body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"] .gd-hero-copy,
body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"] .gd-hero-copy {
  max-width: min(300px, 72%);
}

body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"] .gd-hero-copy > p,
body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"] .gd-hero-copy > p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 13px;
  line-height: 1.35;
}

body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"] .gd-hero-meta-row,
body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"] .gd-hero-meta-row {
  display: none;
}

body.home .gd-store-hero .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"] .gd-hero-title,
body.home .gd-store-hero .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"] .gd-hero-title {
  font-size: clamp(18px, 1.5vw, 24px);
  line-height: 1.12;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

body.home .gd-store-hero .gd-home-slider--store-rail .gd-hero-title,
body.home .gd-store-hero .gd-home-slider--store-rail h2.gd-hero-title {
  max-width: min(24ch, 100%);
  padding-bottom: .08em;
  font-size: min(clamp(32px, 3.5vw, 54px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
  line-height: 1.1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-wrap: balance;
}

body.gd-hero-density-compact.home .gd-store-hero .gd-home-slider--store-rail .gd-hero-title,
body.gd-hero-density-compact.home .gd-store-hero .gd-home-slider--store-rail h2.gd-hero-title {
  font-size: min(clamp(28px, 3vw, 46px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
}

body.gd-hero-density-editorial.home .gd-store-hero .gd-home-slider--store-rail .gd-hero-title,
body.gd-hero-density-editorial.home .gd-store-hero .gd-home-slider--store-rail h2.gd-hero-title {
  max-width: min(28ch, 100%);
}

body.home .gd-home-slider--store-rail .gd-hero-copy p {
  max-width: 58ch;
  margin-top: 10px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

body.gd-hero-density-editorial.home .gd-home-slider--store-rail .gd-hero-copy p {
  -webkit-line-clamp: 4;
}

body.home .gd-home-slider--store-rail .gd-hero-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px 18px;
  margin-top: 18px;
  max-width: min(100%, 760px);
}

body.home .gd-home-slider--store-rail .gd-hero-meta-row .gd-hero-badges {
  flex: 1 1 340px;
  margin-top: 0;
}

body.home .gd-home-slider--store-rail .gd-hero-meta-row .gd-hero-microstats,
body.home .gd-home-slider--store-rail .gd-hero-microstats {
  flex: 0 1 auto;
  margin-top: 0;
  margin-left: auto;
  justify-content: flex-end;
  align-items: baseline;
  gap: 8px 18px;
}

body.home .gd-home-slider--store-rail .gd-home-nav {
  top: 50%;
  z-index: 20;
  transform: translateY(-50%);
}

body.home .gd-home-slider--store-rail .gd-home-prev {
  left: max(12px, calc((100% - var(--gd-rail-card-width)) / 2 + 14px));
}

body.home .gd-home-slider--store-rail .gd-home-next {
  right: max(12px, calc((100% - var(--gd-rail-card-width)) / 2 + 14px));
}

body.home .gd-home-slider--store-rail .gd-home-dots {
  z-index: 20;
}

body.home .gd-rail-search-section--store-rail {
  display: block;
  position: relative;
  z-index: 1;
  margin: 0;
  padding: clamp(24px, 3vw, 44px) 0 clamp(18px, 2.6vw, 34px);
  background: linear-gradient(180deg, rgba(3, 8, 18, .02), rgba(3, 8, 18, .46));
}

body.home .gd-rail-search-section--store-rail .gd-rail-search-shell {
  width: min(100% - 32px, 1120px);
  max-width: 1120px;
  margin: 0 auto;
  padding: 0;
}

body.home .gd-rail-search-section--store-rail .gd-hero-search,
body.home .gd-rail-search-section--store-rail .gd-hero-search--rail-bottom {
  position: static;
  inset: auto;
  transform: none;
  width: 100%;
  max-width: none;
  margin: 0;
  z-index: auto;
}

@media (min-width: 2101px) {
  body.home .gd-home-slider--store-rail {
    --gd-rail-card-width: min(74vw, 1220px);
    --gd-rail-near-step: calc(var(--gd-rail-card-width) * .52);
    --gd-rail-far-step: calc(var(--gd-rail-card-width) * .80);
    --gd-rail-near-scale: .68;
    --gd-rail-far-scale: .50;
  }
}

@media (min-width: 721px) and (max-width: 2100px) {
  body.home .gd-home-slider--store-rail {
    --gd-rail-card-width: min(74vw, 1220px);
    --gd-rail-near-step: calc(var(--gd-rail-card-width) * .52);
    --gd-rail-near-scale: .68;
    --gd-rail-height: clamp(430px, 34vw, 570px);
    --gd-rail-min-height: 410px;
  }

  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-3"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="3"] {
    display: none;
    visibility: hidden;
    pointer-events: none;
  }
}

@media (max-width: 1180px) and (min-width: 721px) {
  body.home .gd-home-slider--store-rail {
    --gd-rail-card-width: min(74vw, 1220px);
    --gd-rail-near-step: calc(var(--gd-rail-card-width) * .52);
    --gd-rail-near-scale: .68;
  }

  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-1"] .gd-hero-copy,
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="1"] .gd-hero-copy {
    display: none;
  }

  body.home .gd-home-slider--store-rail .gd-hero-copy {
    max-width: min(100%, 680px);
  }

  body.home .gd-store-hero .gd-home-slider--store-rail .gd-hero-title,
  body.home .gd-store-hero .gd-home-slider--store-rail h2.gd-hero-title {
    font-size: min(clamp(30px, 5.8vw, 46px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
    line-height: 1.16;
  }

  body.home .gd-home-slider--store-rail .gd-hero-copy p {
    -webkit-line-clamp: 3;
    font-size: 14px;
    line-height: 1.5;
  }

  body.home .gd-home-slider--store-rail .gd-hero-meta-row {
    gap: 8px 12px;
  }

  body.home .gd-home-slider--store-rail .gd-hero-meta-row .gd-hero-badges,
  body.home .gd-home-slider--store-rail .gd-hero-meta-row .gd-hero-microstats,
  body.home .gd-home-slider--store-rail .gd-hero-microstats {
    margin-left: 0;
    max-width: 100%;
  }

  body.home .gd-home-slider--store-rail .gd-home-prev {
    left: max(10px, calc((100% - var(--gd-rail-card-width)) / 2 + 10px));
  }

  body.home .gd-home-slider--store-rail .gd-home-next {
    right: max(10px, calc((100% - var(--gd-rail-card-width)) / 2 + 10px));
  }

  body.home .gd-rail-search-section--store-rail {
    padding-top: clamp(24px, 4vw, 38px);
  }

  body.home .gd-rail-search-section--store-rail .gd-rail-search-shell {
    width: min(100% - 28px, 920px);
  }
}

@media (max-width: 720px) {
  body.home .gd-store-hero--layout-store-rail {
    overflow: visible;
    padding-block: 12px;
  }

  body.home .gd-home-slider--store-rail {
    --gd-rail-card-width: min(100% - 20px, 640px);
    --gd-rail-height: auto;
    --gd-rail-min-height: 0;
    overflow: visible;
  }

  body.home .gd-home-slider--store-rail .gd-home-slides {
    height: auto;
    min-height: 0;
    overflow: visible;
    contain: none;
  }

  body.home .gd-home-slider--store-rail .gd-home-slide {
    display: none;
    position: relative;
    inset: auto;
    left: auto;
    width: var(--gd-rail-card-width);
    min-height: clamp(370px, 94vw, 560px);
    height: auto;
    margin-inline: auto;
    padding: clamp(22px, 6vw, 34px) clamp(20px, 5.4vw, 34px) clamp(38px, 8vw, 58px);
    overflow: visible;
    transform: none;
    filter: none;
    visibility: hidden;
    pointer-events: none;
  }

  body.home .gd-home-slider--store-rail .gd-home-slide.is-active {
    display: grid;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    filter: none;
  }

  body.home .gd-home-slider--store-rail .gd-hero-copy {
    max-width: 100%;
  }

  body.home .gd-home-slider--store-rail .gd-hero-copy p,
  body.home .gd-store-hero .gd-home-slider--store-rail .gd-hero-title,
  body.home .gd-store-hero .gd-home-slider--store-rail h2.gd-hero-title {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
  }

  body.home .gd-rail-search-section--store-rail {
    padding: 20px 0 28px;
  }

  body.home .gd-rail-search-section--store-rail .gd-rail-search-shell {
    width: min(100% - 24px, 640px);
  }

  body.home .gd-rail-search-section--store-rail .gd-hero-search {
    padding: 8px;
  }
}

/* Homepage stats stay 2x2 on tablets/small laptops, one column only on phones. */
@media (max-width: 1180px) and (min-width: 641px) {
  body.home .gd-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  body.home .gd-stat-grid > div {
    min-height: 96px;
    padding: 18px;
  }
}

@media (max-width: 640px) {
  body.home .gd-stat-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
}

/* Single game/post top layout. */
.gd-single-steam .gd-app-top,
.gd-app-top {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: clamp(18px, 2.4vw, 34px);
  align-items: start;
}

@media (min-width: 1181px) {
  .gd-single-steam .gd-app-top--media-enabled,
  .gd-app-top--media-enabled {
    grid-template-columns: minmax(0, min(100%, var(--gd-media-max, 900px))) minmax(300px, 380px);
    justify-content: center;
    max-width: min(100%, 1300px);
    margin-inline: auto;
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-media-card,
  .gd-app-top--media-enabled .gd-app-media-card {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    max-width: min(100%, var(--gd-media-max, 900px));
    justify-self: end;
    align-self: start;
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel,
  .gd-app-top--media-enabled .gd-app-summary-panel {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    max-width: 380px;
    margin: 0;
    justify-self: stretch;
    align-self: start;
  }

  /* Disabled media: title first, summary below. No fake media slot. */
  .gd-single-steam .gd-app-top--media-disabled,
  .gd-app-top--media-disabled,
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, 1fr);
    max-width: min(100%, 1180px);
    margin-inline: auto;
  }

  .gd-single-steam .gd-app-top--media-disabled .gd-app-title-panel,
  .gd-app-top--media-disabled .gd-app-title-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-title-panel,
  .gd-app-top--summary-split .gd-app-title-panel {
    grid-column: 1;
    grid-row: 1;
    order: 1;
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: clamp(18px, 2.2vw, 32px);
    justify-self: stretch;
    align-self: start;
  }

  .gd-single-steam .gd-app-top--media-disabled .gd-app-summary-panel,
  .gd-app-top--media-disabled .gd-app-summary-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-summary-panel,
  .gd-app-top--summary-split .gd-app-summary-panel {
    grid-column: 1;
    grid-row: 2;
    order: 2;
    width: 100%;
    max-width: none;
    margin: 0;
    justify-self: stretch;
    align-self: start;
  }
}

@media (max-width: 1180px) {
  .gd-single-steam .gd-app-top,
  .gd-app-top,
  .gd-single-steam .gd-app-top--media-enabled,
  .gd-app-top--media-enabled,
  .gd-single-steam .gd-app-top--media-disabled,
  .gd-app-top--media-disabled,
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, 1fr);
    max-width: min(100%, 980px);
    margin-inline: auto;
    align-items: stretch;
    padding-block: clamp(14px, 3vw, 26px) clamp(24px, 4vw, 42px);
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel,
  .gd-app-top--media-enabled .gd-app-summary-panel {
    grid-column: 1;
    grid-row: auto;
    order: -3;
    width: 100%;
    max-width: 980px;
    margin-inline: auto;
    justify-self: stretch;
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-media-card,
  .gd-app-top--media-enabled .gd-app-media-card {
    grid-column: 1;
    grid-row: auto;
    order: -1;
    width: min(100%, var(--gd-media-max, 980px));
    max-width: min(100%, var(--gd-media-max, 980px));
    justify-self: center;
  }

  .gd-single-steam .gd-app-top--media-disabled .gd-app-title-panel,
  .gd-app-top--media-disabled .gd-app-title-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-title-panel,
  .gd-app-top--summary-split .gd-app-title-panel {
    grid-column: 1;
    order: -3;
    width: 100%;
    max-width: 980px;
    min-height: 0;
    margin-inline: auto;
    justify-self: stretch;
  }

  .gd-single-steam .gd-app-top--media-disabled .gd-app-summary-panel,
  .gd-app-top--media-disabled .gd-app-summary-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-summary-panel,
  .gd-app-top--summary-split .gd-app-summary-panel {
    grid-column: 1;
    order: -2;
    width: 100%;
    max-width: 980px;
    margin-inline: auto;
    justify-self: stretch;
  }
}

@media (max-width: 1180px) and (min-width: 641px) {
  .gd-single-steam .gd-app-top .gd-app-summary-panel,
  .gd-app-top .gd-app-summary-panel {
    display: grid;
    grid-template-columns: minmax(210px, 300px) minmax(0, 1fr);
    gap: clamp(14px, 2vw, 20px);
    align-items: start;
  }

  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-capsule,
  .gd-app-top .gd-app-summary-panel .gd-app-capsule {
    grid-column: 1;
    grid-row: 1 / span 4;
    width: 100%;
    max-width: none;
    aspect-ratio: 16 / 9;
  }

  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-short,
  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-tags,
  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-meta-list,
  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-actions,
  .gd-app-top .gd-app-summary-panel .gd-app-short,
  .gd-app-top .gd-app-summary-panel .gd-app-tags,
  .gd-app-top .gd-app-summary-panel .gd-app-meta-list,
  .gd-app-top .gd-app-summary-panel .gd-app-actions {
    grid-column: 2;
    min-width: 0;
  }
}

@media (max-width: 640px) {
  .gd-single-steam .gd-app-top .gd-app-summary-panel,
  .gd-app-top .gd-app-summary-panel {
    grid-template-columns: minmax(0, 1fr);
    max-width: 100%;
  }

  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-capsule,
  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-short,
  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-tags,
  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-meta-list,
  .gd-single-steam .gd-app-top .gd-app-summary-panel .gd-app-actions,
  .gd-app-top .gd-app-summary-panel .gd-app-capsule,
  .gd-app-top .gd-app-summary-panel .gd-app-short,
  .gd-app-top .gd-app-summary-panel .gd-app-tags,
  .gd-app-top .gd-app-summary-panel .gd-app-meta-list,
  .gd-app-top .gd-app-summary-panel .gd-app-actions {
    grid-column: 1 / -1;
    grid-row: auto;
  }
}


/* 16.27.86 disabled-media desktop summary-right correction.
   Keep gd-app-title-panel first in the HTML, but place the summary/action card
   back on the right on desktop. Smaller devices keep title first, summary below. */
@media (min-width: 1181px) {
  .gd-single-steam .gd-app-top--media-disabled,
  .gd-app-top--media-disabled,
  .gd-single-steam .gd-app-top--summary-split,
  .gd-app-top--summary-split {
    grid-template-columns: minmax(0, min(100%, var(--gd-media-layout-max, 860px))) minmax(300px, 380px);
    gap: clamp(20px, 2.5vw, 36px);
    align-items: start;
    justify-content: center;
    max-width: min(100%, 1300px);
    margin-inline: auto;
  }

  .gd-single-steam .gd-app-top--media-disabled .gd-app-title-panel,
  .gd-app-top--media-disabled .gd-app-title-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-title-panel,
  .gd-app-top--summary-split .gd-app-title-panel {
    grid-column: 1;
    grid-row: 1;
    order: 1;
    width: 100%;
    max-width: min(100%, var(--gd-media-layout-max, 860px));
    min-height: 0;
    margin: 0;
    padding: clamp(20px, 2.6vw, 36px);
    justify-self: end;
    align-self: start;
  }

  .gd-single-steam .gd-app-top--media-disabled .gd-app-summary-panel,
  .gd-app-top--media-disabled .gd-app-summary-panel,
  .gd-single-steam .gd-app-top--summary-split .gd-app-summary-panel,
  .gd-app-top--summary-split .gd-app-summary-panel {
    grid-column: 2;
    grid-row: 1;
    order: 2;
    width: 100%;
    max-width: 380px;
    margin: 0;
    justify-self: stretch;
    align-self: start;
  }
}


/* 16.27.86 single media-enabled tablet summary polish.
   At small-laptop/tablet widths the summary card must not show a tiny featured
   image with empty space. Keep a strong 16:9 poster on the left and readable
   game details on the right. Phones collapse to a full-width poster. */
@media (max-width: 1180px) and (min-width: 641px) {
  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel,
  .gd-app-top--media-enabled .gd-app-summary-panel {
    grid-template-columns: minmax(220px, 32%) minmax(0, 1fr);
    gap: clamp(14px, 2.4vw, 22px);
    align-items: start;
    padding: clamp(14px, 2.2vw, 20px);
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule {
    grid-column: 1;
    grid-row: 1 / span 4;
    width: 100%;
    max-width: none;
    aspect-ratio: 16 / 9;
    align-self: start;
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule img,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule img,
  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-summary-poster-img,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-summary-poster-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-short,
  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-tags,
  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-meta-list,
  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-actions,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-short,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-tags,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-meta-list,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-actions {
    grid-column: 2;
    min-width: 0;
  }
}

@media (max-width: 640px) {
  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule,
  .gd-single-steam .gd-app-top--media-disabled .gd-app-summary-panel .gd-app-capsule,
  .gd-app-top--media-disabled .gd-app-summary-panel .gd-app-capsule {
    width: 100%;
    max-width: none;
    aspect-ratio: 16 / 9;
  }

  .gd-single-steam .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule img,
  .gd-app-top--media-enabled .gd-app-summary-panel .gd-app-capsule img,
  .gd-single-steam .gd-app-top--media-disabled .gd-app-summary-panel .gd-app-capsule img,
  .gd-app-top--media-disabled .gd-app-summary-panel .gd-app-capsule img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}


/* 16.27.87 header dropdown/mobile arrows and single-summary badge cleanup.
   Desktop shows a proper caret for items with children. Mobile uses the JS
   submenu button as the visible arrow so parent links do not need duplicated icons. */
.gd-menu li.menu-item-has-children > a,
.gd-menu li.page_item_has_children > a {
  position: relative;
}

@media (min-width: 881px) {
  .gd-menu li.menu-item-has-children > a,
  .gd-menu li.page_item_has_children > a {
    padding-right: 30px;
  }

  .gd-menu li.menu-item-has-children > a::after,
  .gd-menu li.page_item_has_children > a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 12px;
    width: 7px;
    height: 7px;
    margin-top: -5px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    opacity: .82;
    transform: rotate(45deg);
    transform-origin: 50% 50%;
  }

  .gd-menu .sub-menu li.menu-item-has-children > a,
  .gd-menu .sub-menu li.page_item_has_children > a {
    padding-right: 34px;
  }

  .gd-menu .sub-menu li.menu-item-has-children > a::after,
  .gd-menu .sub-menu li.page_item_has_children > a::after {
    right: 14px;
    margin-top: -4px;
    transform: rotate(-45deg);
  }
}

@media (max-width: 880px) {
  .gd-menu li.menu-item-has-children > a,
  .gd-menu li.page_item_has_children > a {
    padding-right: 56px;
  }

  .gd-menu li.menu-item-has-children > a::after,
  .gd-menu li.page_item_has_children > a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    opacity: .9;
    transform: rotate(45deg);
    transform-origin: 50% 50%;
  }

  .gd-menu li.has-submenu-toggle > a::after {
    content: none;
    display: none;
  }

  .gd-menu li.has-submenu-toggle > a {
    padding-right: 58px;
  }

  .gd-menu li.has-submenu-toggle > .gd-submenu-toggle,
  .gd-menu li.menu-item-has-children > .gd-submenu-toggle,
  .gd-menu li.page_item_has_children > .gd-submenu-toggle {
    display: inline-grid;
    place-items: center;
    position: absolute;
    top: 5px;
    right: 6px;
    width: 38px;
    height: 38px;
    border: 1px solid color-mix(in srgb, var(--gd-border) 85%, transparent);
    border-radius: calc(var(--gd-input-radius) - 4px);
    background: rgba(255,255,255,.055);
    color: var(--gd-text);
    font-size: 0;
    line-height: 1;
  }

  .gd-menu li.has-submenu-toggle > .gd-submenu-toggle::before,
  .gd-menu li.menu-item-has-children > .gd-submenu-toggle::before,
  .gd-menu li.page_item_has_children > .gd-submenu-toggle::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    margin-top: -4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transform-origin: 50% 50%;
  }

  .gd-menu li.is-submenu-open > .gd-submenu-toggle::before,
  .is-submenu-open > .gd-submenu-toggle::before {
    margin-top: 4px;
    transform: rotate(225deg);
  }
}


/* 16.27.88 mobile menu restore.
   Keep submenu arrows visible and let tapping a parent item open its children on mobile. */
@media (max-width: 880px) {
  .gd-nav.gd-menu-panel .gd-menu li.menu-item-has-children,
  .gd-nav.gd-menu-panel .gd-menu li.page_item_has_children,
  .gd-nav.gd-menu-panel .gd-menu li.has-submenu-toggle {
    position: relative;
  }

  .gd-nav.gd-menu-panel .gd-menu li.menu-item-has-children > a,
  .gd-nav.gd-menu-panel .gd-menu li.page_item_has_children > a,
  .gd-nav.gd-menu-panel .gd-menu li.has-submenu-toggle > a {
    padding-right: 56px;
  }

  .gd-nav.gd-menu-panel .gd-submenu-toggle {
    display: inline-grid;
    place-items: center;
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 3;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--gd-border);
    border-radius: calc(var(--gd-input-radius) - 4px);
    background: rgba(255, 255, 255, .07);
    color: var(--gd-text);
    font-size: 0;
    line-height: 1;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .gd-nav.gd-menu-panel .gd-submenu-toggle::before {
    content: "";
    width: 9px;
    height: 9px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
  }

  .gd-nav.gd-menu-panel .is-submenu-open > .gd-submenu-toggle::before,
  .gd-nav.gd-menu-panel .gd-menu li.is-submenu-open > .gd-submenu-toggle::before {
    margin-top: 3px;
    transform: rotate(225deg);
  }

  .gd-nav.gd-menu-panel .gd-menu .sub-menu,
  .gd-nav.gd-menu-panel .gd-menu .sub-menu .sub-menu {
    position: static;
    display: none;
    width: 100%;
    min-width: 0;
    margin: 6px 0 8px;
    padding: 6px;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .gd-nav.gd-menu-panel .gd-menu li.is-submenu-open > .sub-menu {
    display: grid;
    gap: 4px;
  }
}


/* 16.27.89 final segmented hero dots and mobile thumbnail rail recovery.
   Keep the hero slider indicator as preset-aware line segments and make the
   single post Mobile thumbnail rail Customizer option win after older responsive rules. */
body .gd-home-dots {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 1vw, 14px);
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body .gd-home-dots button {
  position: relative;
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body .gd-home-dots button::before {
  content: "";
  position: absolute;
  left: 7px;
  right: 7px;
  top: 20px;
  height: 3px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-text) 28%, transparent);
  opacity: .78;
  transition: background-color .18s ease, opacity .18s ease, box-shadow .18s ease, transform .18s ease;
}

body .gd-home-dots button:hover::before,
body .gd-home-dots button:focus-visible::before {
  opacity: 1;
  background: color-mix(in srgb, var(--gd-text) 40%, transparent);
}

body .gd-home-dots button.is-active {
  background: transparent;
  box-shadow: none;
}

body .gd-home-dots button.is-active::before {
  background: linear-gradient(90deg, var(--gd-accent), var(--gd-accent-2));
  opacity: 1;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--gd-accent) 20%, transparent), 0 0 16px color-mix(in srgb, var(--gd-accent) 26%, transparent);
  transform: scaleX(1.02);
}

body.gd-hero-dots-bottom-center .gd-home-dots,
body.gd-hero-dots-top-center .gd-home-dots {
  width: max-content;
  max-width: calc(100% - 32px);
  justify-content: center;
}

@media (max-width: 820px) {
  body .gd-home-dots {
    gap: 8px;
  }

  body .gd-home-dots button {
    flex-basis: 40px;
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
  }

  body .gd-home-dots button::before {
    left: 6px;
    right: 6px;
    top: 19px;
  }

  body.gd-mobile-thumbs-hidden .gd-media-rail,
  body.gd-mobile-thumbs-hidden .gd-single-steam .gd-media-rail {
    display: none;
  }

  body.gd-mobile-thumbs-image-strip .gd-media-rail,
  body.gd-mobile-thumbs-image-strip .gd-single-steam .gd-media-rail {
    display: flex;
    justify-content: flex-start;
  }

  body.gd-mobile-thumbs-image-strip .gd-media-thumbs-wrap,
  body.gd-mobile-thumbs-image-strip .gd-single-steam .gd-media-thumbs-wrap {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  body.gd-mobile-thumbs-image-strip .gd-media-thumbs,
  body.gd-mobile-thumbs-image-strip .gd-single-steam .gd-media-thumbs {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(92px, 26vw);
    justify-content: flex-start;
    gap: 8px;
    margin-inline: 0;
    padding: 0;
  }

  body.gd-mobile-thumbs-image-strip .gd-media-thumb-copy,
  body.gd-mobile-thumbs-image-strip .gd-single-steam .gd-media-thumb-copy {
    display: none;
  }

  body.gd-mobile-thumbs-dots .gd-media-rail,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-rail {
    display: flex;
    justify-content: center;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumbs-wrap,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumbs-wrap {
    width: auto;
    overflow: visible;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumbs,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumbs {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-inline: auto;
    padding: 6px 0;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumb,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb,
  body.gd-mobile-thumbs-dots .gd-media-thumb.is-active,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb.is-active,
  body.gd-mobile-thumbs-dots .gd-media-thumb--video,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb--video,
  body.gd-mobile-thumbs-dots .gd-media-thumb[data-type="video"],
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb[data-type="video"] {
    flex: 0 0 10px;
    width: 10px;
    min-width: 10px;
    max-width: 10px;
    height: 10px;
    min-height: 10px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gd-text) 22%, transparent);
    box-shadow: none;
  }

  body.gd-mobile-thumbs-dots .gd-media-thumb.is-active,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb.is-active {
    background: linear-gradient(90deg, var(--gd-accent), var(--gd-accent-2));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--gd-accent) 18%, transparent), 0 0 10px color-mix(in srgb, var(--gd-accent) 24%, transparent);
  }

  body.gd-mobile-thumbs-dots .gd-media-thumb-art,
  body.gd-mobile-thumbs-dots .gd-media-thumb-copy,
  body.gd-mobile-thumbs-dots .gd-media-thumb-play,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb-art,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb-copy,
  body.gd-mobile-thumbs-dots .gd-single-steam .gd-media-thumb-play {
    display: none;
  }
}


/* 16.27.96 video poster source: embed-only base mode.
   When the Video poster source option is set to Embed only / no theme poster,
   do not inject featured-image or YouTube thumbnail posters. Keep a clean playable
   video surface and a clear thumbnail button without image requests. */
.gd-video-stage--embed-only {
  min-height: clamp(220px, 34vw, 460px);
  background:
    radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--gd-accent) 16%, transparent), transparent 36%),
    linear-gradient(145deg, rgba(8, 13, 24, .98), rgba(3, 7, 15, .98));
}

.gd-video-stage--embed-only .gd-play {
  opacity: 1;
}

.gd-media-thumb--no-poster .gd-media-thumb-art {
  background:
    radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--gd-accent) 20%, transparent), transparent 42%),
    linear-gradient(145deg, rgba(10, 16, 30, .96), rgba(4, 8, 18, .98));
}

.gd-media-thumb--no-poster .gd-media-thumb-play {
  opacity: 1;
}


/* 16.27.97 local video placeholder polish.
   The Minimal local placeholder option must never look blank. It avoids external
   YouTube thumbnail requests while still presenting a clear, premium video card
   and usable video thumbnail button. */
.gd-video-stage--embed-only {
  isolation: isolate;
  min-height: clamp(240px, 36vw, 500px);
  background:
    radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--gd-accent) 22%, transparent), transparent 32%),
    radial-gradient(circle at 78% 16%, color-mix(in srgb, var(--gd-accent-2) 14%, transparent), transparent 28%),
    linear-gradient(145deg, color-mix(in srgb, var(--gd-surface) 74%, #020617), #030712 72%);
}

.gd-video-stage--embed-only::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(circle at 50% 50%, #000 0%, transparent 72%);
  opacity: .38;
  pointer-events: none;
}

.gd-video-stage--embed-only::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.36));
  pointer-events: none;
}

.gd-video-stage--embed-only .gd-video-placeholder {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 8px;
  max-width: min(430px, calc(100% - 48px));
  margin: auto;
  padding: 22px;
  text-align: center;
  pointer-events: none;
}

.gd-video-stage--embed-only .gd-video-placeholder-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 10px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 34%, transparent);
  border-radius: 999px;
  color: color-mix(in srgb, var(--gd-accent) 72%, #fff);
  background: color-mix(in srgb, var(--gd-accent) 12%, transparent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.gd-video-stage--embed-only .gd-video-placeholder-title {
  color: var(--gd-text);
  font-size: clamp(20px, 2.4vw, 34px);
  font-weight: 900;
  line-height: 1.05;
  text-wrap: balance;
}

.gd-video-stage--embed-only .gd-video-placeholder-note {
  color: var(--gd-muted);
  font-size: clamp(12px, 1.1vw, 14px);
  line-height: 1.45;
}

.gd-video-stage--embed-only .gd-play {
  z-index: 3;
  opacity: 1;
  transform: translateY(-58px);
  box-shadow: 0 18px 46px color-mix(in srgb, var(--gd-accent) 28%, transparent), var(--gd-shadow);
}

.gd-media-thumb--video .gd-media-thumb-play,
.gd-media-thumb[data-type="video"] .gd-media-thumb-play {
  opacity: 1;
}

.gd-media-thumb--no-poster .gd-media-thumb-art {
  position: relative;
  min-height: 100%;
  background:
    radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--gd-accent) 26%, transparent), transparent 42%),
    linear-gradient(145deg, color-mix(in srgb, var(--gd-surface) 70%, #020617), #030712 78%);
}

.gd-media-thumb--no-poster .gd-media-thumb-art::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 18px 18px;
  opacity: .28;
}

.gd-media-thumb--no-poster .gd-media-thumb-play {
  opacity: 1;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--gd-accent) 28%, transparent), 0 10px 22px rgba(0,0,0,.32);
}

@media (max-width: 640px) {
  .gd-video-stage--embed-only {
    min-height: clamp(220px, 62vw, 380px);
  }

  .gd-video-stage--embed-only .gd-play {
    width: 58px;
    height: 58px;
    transform: translateY(-50px);
  }

  .gd-video-stage--embed-only .gd-play::before {
    left: 24px;
    top: 19px;
    border-left-width: 16px;
    border-top-width: 10px;
    border-bottom-width: 10px;
  }

  .gd-video-stage--embed-only .gd-video-placeholder {
    max-width: calc(100% - 32px);
    padding: 18px;
  }
}

/* 16.27.99 video thumbnail play indicator hardening.
   Video thumbs must remain recognizable even when the Minimal local placeholder
   source intentionally avoids all poster-image requests. */
@media (min-width: 821px) {
  .gd-media-thumb--video .gd-media-thumb-art,
  .gd-media-thumb[data-type="video"] .gd-media-thumb-art,
  .gd-media-thumb--no-poster .gd-media-thumb-art {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .gd-media-thumb--video .gd-media-thumb-play,
  .gd-media-thumb[data-type="video"] .gd-media-thumb-play {
    position: absolute;
    inset: 50% auto auto 50%;
    display: inline-grid;
    place-items: center;
    width: clamp(28px, 3vw, 38px);
    height: clamp(28px, 3vw, 38px);
    border-radius: 999px;
    background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
    box-shadow: 0 12px 28px rgba(0,0,0,.38), 0 0 0 1px color-mix(in srgb, var(--gd-accent) 26%, transparent);
    opacity: .96;
    transform: translate(-50%, -50%);
    pointer-events: none;
  }

  .gd-media-thumb--video .gd-media-thumb-play::before,
  .gd-media-thumb[data-type="video"] .gd-media-thumb-play::before {
    content: "";
    width: 0;
    height: 0;
    margin-left: 3px;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 10px solid color-mix(in srgb, #020617 88%, #fff 12%);
  }

  .gd-media-thumb--video:hover .gd-media-thumb-play,
  .gd-media-thumb[data-type="video"]:hover .gd-media-thumb-play,
  .gd-media-thumb--video:focus-visible .gd-media-thumb-play,
  .gd-media-thumb[data-type="video"]:focus-visible .gd-media-thumb-play {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.05);
  }
}

@media (max-width: 820px) {
  body:not(.gd-mobile-thumbs-dots) .gd-media-thumb--video .gd-media-thumb-art,
  body:not(.gd-mobile-thumbs-dots) .gd-media-thumb[data-type="video"] .gd-media-thumb-art,
  body:not(.gd-mobile-thumbs-dots) .gd-media-thumb--no-poster .gd-media-thumb-art {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  body:not(.gd-mobile-thumbs-dots) .gd-media-thumb--video .gd-media-thumb-play,
  body:not(.gd-mobile-thumbs-dots) .gd-media-thumb[data-type="video"] .gd-media-thumb-play {
    position: absolute;
    inset: 50% auto auto 50%;
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
    box-shadow: 0 10px 24px rgba(0,0,0,.38), 0 0 0 1px color-mix(in srgb, var(--gd-accent) 26%, transparent);
    opacity: .98;
    transform: translate(-50%, -50%);
    pointer-events: none;
  }

  body:not(.gd-mobile-thumbs-dots) .gd-media-thumb--video .gd-media-thumb-play::before,
  body:not(.gd-mobile-thumbs-dots) .gd-media-thumb[data-type="video"] .gd-media-thumb-play::before {
    content: "";
    width: 0;
    height: 0;
    margin-left: 3px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 9px solid color-mix(in srgb, #020617 88%, #fff 12%);
  }
}

/* Download modal. */
body.gd-download-modal-open {
  overflow: hidden;
}

.gd-download-modal-trigger {
  width: 100%;
  justify-content: center;
  gap: 10px;
}

.gd-download-modal-icon {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  color: currentColor;
}

.gd-download-modal-icon svg {
  display: block;
  width: 18px;
  height: 18px;
}

.gd-download-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
  min-width: 100vw;
  max-width: none;
  padding: clamp(18px, 3vw, 48px);
  isolation: isolate;
}

@supports (height: 100dvh) {
  .gd-download-modal {
    height: 100dvh;
  }
}

.gd-download-modal[hidden] {
  display: none;
}

.gd-download-modal-backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 10%, color-mix(in srgb, var(--gd-accent) 12%, transparent), transparent 36%),
    rgba(2, 6, 23, .82);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.gd-download-modal-dialog {
  position: relative;
  width: min(calc(100vw - 48px), 920px);
  min-width: min(450px, calc(100vw - 48px));
  min-height: 0;
  max-height: calc(100dvh - 48px);
  overflow: auto;
  padding: clamp(26px, 3.2vw, 42px);
  border: 1px solid color-mix(in srgb, var(--gd-accent) 32%, var(--gd-border));
  border-radius: calc(var(--gd-card-radius) + 8px);
  background:
    radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--gd-accent) 16%, transparent), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--gd-surface) 94%, #020617), color-mix(in srgb, var(--gd-surface-2) 90%, #020617));
  box-shadow: 0 36px 120px rgba(0,0,0,.66), 0 0 0 1px rgba(255,255,255,.04) inset;
}

.gd-download-modal-dialog:focus {
  outline: 0;
}

.gd-download-modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  color: var(--gd-text);
  cursor: pointer;
}

.gd-download-modal-close:hover,
.gd-download-modal-close:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 52%, rgba(255,255,255,.16));
  background: color-mix(in srgb, var(--gd-accent) 14%, rgba(255,255,255,.055));
}

.gd-download-modal-close::before,
.gd-download-modal-close::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  top: 20px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.gd-download-modal-close::before {
  transform: rotate(45deg);
}

.gd-download-modal-close::after {
  transform: rotate(-45deg);
}

.gd-download-modal-title {
  display: block;
  margin: 0 56px 20px 0;
  color: var(--gd-text);
  font-size: clamp(17px, 1.35vw, 21px);
  font-weight: 800;
  line-height: 1.35;
}

.gd-download-modal-links {
  display: grid;
  gap: 10px;
  color: var(--gd-text);
  font-size: clamp(15px, 1.1vw, 18px);
  line-height: 1.5;
}

.gd-download-modal-links p,
.gd-download-modal-links div,
.gd-download-modal-links ul,
.gd-download-modal-links ol {
  margin: 0 0 10px;
}

.gd-download-modal-links ul,
.gd-download-modal-links ol {
  padding-left: 1.25em;
}

.gd-download-modal-links li {
  margin: 4px 0;
}

.gd-download-modal-notes {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
  color: var(--gd-text);
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.6;
}

.gd-download-modal-notes :where(p, ul, ol, blockquote, figure) {
  margin-top: 0;
}

.gd-download-modal-notes :where(p, ul, ol, blockquote, figure):last-child {
  margin-bottom: 0;
}

.gd-download-modal-notes ul,
.gd-download-modal-notes ol {
  padding-left: 1.3em;
}

.gd-download-modal-notes li {
  margin: 3px 0;
}

.gd-download-modal-notes a {
  color: var(--gd-accent-2);
  font-weight: 800;
  text-decoration: none;
}

.gd-download-modal-notes a:hover,
.gd-download-modal-notes a:focus-visible {
  color: var(--gd-accent);
  text-decoration: underline;
}

.gd-download-modal-notes--noscript {
  margin-top: 12px;
}

.gd-download-modal .gd-download-modal-links a,
.gd-download-modal .gd-download-modal-links a[class] {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 48px;
  gap: 10px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 24%, rgba(255,255,255,.12));
  border-radius: 16px;
  background: rgba(255,255,255,.04);
  box-shadow: 0 10px 28px rgba(0,0,0,.18), 0 1px 0 rgba(255,255,255,.05) inset;
  color: var(--gd-text);
  text-align: left;
  text-decoration: none;
  text-decoration-line: none;
  overflow-wrap: anywhere;
  font-weight: 800;
  line-height: 1.35;
  vertical-align: top;
}

.gd-download-modal .gd-download-modal-links a *,
.gd-download-modal .gd-download-modal-links a[class] * {
  text-decoration: none;
  text-decoration-line: none;
}

.gd-download-modal .gd-download-modal-links .gd-download-link-label {
  flex: 1 1 auto;
  min-width: 0;
}

.gd-download-modal .gd-download-modal-links a.has-gd-download-icon .gd-download-link-label {
  order: 2;
}


.gd-download-modal .gd-download-modal-links .gd-download-link-latest {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  align-self: center;
  order: 3;
  margin-inline: clamp(6px, 1vw, 12px);
  padding: 4px 8px;
  border: 1px solid color-mix(in srgb, var(--gd-download) 38%, rgba(255,255,255,.16));
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-download) 18%, rgba(255,255,255,.06));
  color: var(--gd-download-2);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.gd-download-modal .gd-download-modal-links .gd-download-link-size,
.gd-download-modal .gd-download-modal-links a em {
  flex: 0 0 auto;
  order: 4;
  margin-left: auto;
  padding-left: 12px;
  color: var(--gd-muted);
  font-size: .88em;
  font-style: normal;
  font-weight: 800;
  line-height: 1.25;
  white-space: nowrap;
}

.gd-download-modal .gd-download-modal-links .gd-btn,
.gd-download-modal .gd-download-modal-links button {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .58em;
}

.gd-download-modal .gd-download-modal-links a:hover,
.gd-download-modal .gd-download-modal-links a:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 58%, rgba(255,255,255,.18));
  background: color-mix(in srgb, var(--gd-accent) 13%, rgba(255,255,255,.04));
  color: var(--gd-text);
  text-decoration: none;
  text-decoration-line: none;
  transform: translateY(-1px);
}

.gd-download-modal .gd-download-modal-links button:hover,
.gd-download-modal .gd-download-modal-links button:focus-visible {
  color: var(--gd-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.gd-download-modal .gd-download-modal-links a::before {
  content: "";
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  align-self: center;
  opacity: 1;
  background-color: var(--gd-download);
  --gd-download-link-mask: url("data:image/svg+xml,%3Csvg%20width%3D%22800%22%20height%3D%22800%22%20viewBox%3D%220%200%2015%2015%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M7%209.358V1h1v8.293l2.146-2.147.708.708-3.34%203.34L3.91%207.866l.678-.734zM2%2013V7H1v7h13V7h-1v6z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  -webkit-mask: var(--gd-download-link-mask) center / 20px 20px no-repeat;
  mask: var(--gd-download-link-mask) center / 20px 20px no-repeat;
}

.gd-download-modal .gd-download-modal-links a[data-type="direct" i]::before {
  background-color: var(--gd-download);
}

.gd-download-modal .gd-download-modal-links a[data-type="magnet" i]::before {
  background-color: var(--gd-accent);
  --gd-download-link-mask: url("data:image/svg+xml,%3Csvg%20width%3D%22800%22%20height%3D%22800%22%20viewBox%3D%220%200%2048%2048%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6%2010v16c0%209.941%208.059%2018%2018%2018s18-8.059%2018-18V10m-28%200v16c0%205.523%204.477%2010%2010%2010s10-4.477%2010-10V10%22%20stroke%3D%22%23000%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M14%204H6v6h8zm20%200h8v6h-8z%22%20fill%3D%22%23000%22%20stroke%3D%22%23000%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E");
}

.gd-download-modal .gd-download-modal-links a.has-gd-download-icon::before {
  content: none;
  display: none;
}

.gd-download-modal .gd-download-modal-links .gd-download-link-icon {
  display: inline-grid;
  order: 1;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  align-self: center;
  border: 1px solid color-mix(in srgb, currentColor 26%, rgba(255,255,255,.22));
  border-radius: 10px;
  background: color-mix(in srgb, currentColor 14%, rgba(255,255,255,.94));
  box-shadow: 0 1px 0 rgba(255,255,255,.55) inset, 0 8px 20px rgba(0,0,0,.18);
  color: var(--gd-download);
  --gd-download-link-mark: var(--gd-download-2);
}

.gd-download-modal .gd-download-modal-links .gd-download-link-icon--direct {
  color: var(--gd-download);
  --gd-download-link-mark: var(--gd-download-2);
}

.gd-download-modal .gd-download-modal-links .gd-download-link-icon--magnet {
  color: var(--gd-accent);
  --gd-download-link-mark: var(--gd-accent-2);
}

.gd-download-modal .gd-download-modal-links .gd-download-link-icon svg {
  display: block;
  width: 20px;
  height: 20px;
}

.gd-download-modal .gd-download-modal-links .gd-download-link-icon--magnet svg {
  width: 22px;
  height: 22px;
}

.gd-download-modal .gd-download-modal-links svg,
.gd-download-modal .gd-download-modal-links img {
  flex: 0 0 auto;
  max-width: 1.25em;
  max-height: 1.25em;
}

.gd-download-modal-links--noscript {
  margin-top: 12px;
}

@media (max-width: 760px) {
  .gd-download-modal {
    align-items: stretch;
    padding: 12px;
  }

  .gd-download-modal-dialog {
    width: 100%;
    min-width: 0;
    min-height: auto;
    max-height: calc(100dvh - 24px);
    padding: 24px;
    border-radius: 24px;
  }

  .gd-download-modal-title {
    margin-right: 52px;
  }

  .gd-download-modal .gd-download-modal-links a,
  .gd-download-modal .gd-download-modal-links a[class] {
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .gd-download-modal .gd-download-modal-links a::before,
  .gd-download-modal .gd-download-modal-links .gd-download-link-icon {
    align-self: flex-start;
  }

  .gd-download-modal .gd-download-modal-links .gd-download-link-size,
  .gd-download-modal .gd-download-modal-links a em {
    flex-basis: 100%;
    margin-left: 40px;
    padding-left: 0;
    white-space: normal;
  }

  .gd-download-modal .gd-download-modal-links .gd-download-link-latest {
    margin-left: 40px;
    margin-right: 0;
  }
}

/* Single-game layout without a sidebar. */
.gd-game-layout.gd-game-layout--no-sidebar {
  grid-template-columns: minmax(0, 1fr);
}
.gd-game-layout.gd-game-layout--no-sidebar > .gd-main-column {
  max-width: none;
}

/* 16.28.34 expandable single summary copy, page collections, and FAQ UI. */
.gd-app-short-wrap {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.gd-app-short-wrap .gd-app-short {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  max-height: calc(1.55em * 3);
}

.gd-app-short-wrap.is-expanded .gd-app-short {
  display: block;
  -webkit-line-clamp: unset;
  max-height: min(32vh, 260px);
  overflow: auto;
  padding-inline-end: 4px;
  scrollbar-gutter: stable;
}

.gd-app-short-toggle {
  display: none;
  justify-self: start;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--gd-accent);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .02em;
  cursor: pointer;
}

.gd-app-short-wrap.is-overflowing .gd-app-short-toggle {
  display: inline-flex;
}

.gd-app-short-toggle::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
}

.gd-app-short-wrap.is-expanded .gd-app-short-toggle::after {
  transform: rotate(225deg) translateY(-1px);
}

.gd-meta-line--no-label {
  grid-template-columns: minmax(0, 1fr);
}

.gd-meta-line--no-label strong {
  text-align: left;
}

.gd-page-collection-shell {
  display: grid;
  gap: clamp(24px, 4vw, 42px);
}

.gd-template-section {
  margin-block: clamp(28px, 5vw, 56px);
}

.gd-template-head {
  margin-bottom: clamp(16px, 2.4vw, 24px);
}

.gd-template-head h2 {
  margin: 0;
  font-size: clamp(24px, 3vw, 38px);
  line-height: 1.08;
}

.gd-template-grid {
  width: 100%;
}

.gd-template-empty {
  padding: 18px;
  border: 1px solid var(--gd-pro-hairline);
  border-radius: var(--gd-card-radius);
  background: var(--gd-surface);
  color: var(--gd-muted);
}

.gd-collection-pagination {
  margin-top: clamp(22px, 4vw, 38px);
}

.gd-faq-accordion {
  display: grid;
  gap: 12px;
  margin-block: clamp(22px, 4vw, 42px);
}

.gd-faq-item {
  border: 1px solid var(--gd-pro-hairline);
  border-radius: var(--gd-card-radius);
  background: color-mix(in srgb, var(--gd-surface) 90%, transparent);
  box-shadow: var(--gd-pro-shadow);
  overflow: clip;
}

.gd-faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  color: var(--gd-text);
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}

.gd-faq-question::-webkit-details-marker {
  display: none;
}

.gd-faq-question::after {
  content: "+";
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-accent) 16%, transparent);
  color: var(--gd-accent);
  font-size: 20px;
  line-height: 1;
}

.gd-faq-item[open] .gd-faq-question::after {
  content: "-";
}

.gd-faq-answer {
  padding: 0 18px 18px;
  color: var(--gd-muted);
  line-height: 1.75;
}

.gd-faq-answer > :first-child {
  margin-top: 0;
}

.gd-faq-answer > :last-child {
  margin-bottom: 0;
}

@media (max-width: 640px) {
  .gd-template-head {
    align-items: start;
    flex-direction: column;
  }

  .gd-app-short-wrap.is-expanded .gd-app-short {
    max-height: 220px;
  }
}

/* 16.28.36 comment form sticky parity for posts and pages. */
body.gd-comment-form-sticky-on .gd-comments-section .gd-comments-grid {
  align-items: start;
}

body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel {
  --gd-comment-sticky-top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
  position: sticky;
  top: var(--gd-comment-sticky-top);
  align-self: start;
  height: max-content;
}

body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section .gd-comment-form-panel {
  --gd-comment-sticky-top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 50px);
}

@media (max-width: 980px) {
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel {
    position: static;
    top: auto;
    height: auto;
  }
}


/* 16.28.36 native collection template width and A-Z index. */
body.page-template-template-game-collection .gd-page-collection-shell {
  max-width: none;
}
body.page-template-template-game-collection .gd-page-panel {
  max-width: none;
}
body.page-template-template-game-collection .gd-collection-template .gd-game-grid:not(.gd-related-grid) {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--gd-card-min)), 1fr));
}
.gd-az-index {
  display: grid;
  gap: clamp(18px, 3vw, 30px);
}
.gd-az-nav {
  position: relative;
  top: auto;
  z-index: 12;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--gd-pro-hairline);
  border-radius: var(--gd-card-radius);
  background: color-mix(in srgb, var(--gd-surface) 88%, transparent);
  box-shadow: var(--gd-style-card-shadow, var(--gd-pro-shadow));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.gd-az-nav a,
.gd-az-nav span {
  display: inline-grid;
  place-items: center;
  min-width: 36px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--gd-pro-hairline);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}
.gd-az-nav a {
  color: var(--gd-text);
  background: color-mix(in srgb, var(--gd-accent) 10%, transparent);
}
.gd-az-nav a:hover,
.gd-az-nav a:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 62%, var(--gd-border));
  background: linear-gradient(135deg, var(--gd-accent), var(--gd-accent-2));
  color: #04111f;
  transform: var(--gd-button-hover-transform);
}
.gd-az-nav span {
  color: color-mix(in srgb, var(--gd-muted) 58%, transparent);
  background: color-mix(in srgb, var(--gd-card) 60%, transparent);
}
.gd-az-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--gd-muted);
}
.gd-az-summary span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--gd-pro-hairline);
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-card) 76%, transparent);
}
.gd-az-sections {
  display: grid;
  gap: clamp(18px, 3vw, 28px);
}
.gd-az-section {
  scroll-margin-top: calc(var(--gd-live-header-bottom, var(--gd-header-h, 76px)) + 84px);
  border: 1px solid var(--gd-pro-hairline);
  border-radius: var(--gd-card-radius);
  background: radial-gradient(circle at 0 0, color-mix(in srgb, var(--gd-accent) 9%, transparent), transparent 22rem), linear-gradient(180deg, var(--gd-card), var(--gd-card-2));
  box-shadow: var(--gd-style-card-shadow, var(--gd-pro-shadow));
  overflow: hidden;
}
.gd-az-letter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: clamp(16px, 2.2vw, 22px);
  border-bottom: 1px solid var(--gd-pro-hairline);
  background: color-mix(in srgb, var(--gd-surface) 52%, transparent);
}
.gd-az-letter-head h3 {
  margin: 0;
  font-size: clamp(28px, 4vw, 52px);
  line-height: .9;
  color: var(--gd-text);
}
.gd-az-letter-head span {
  color: var(--gd-muted);
  font-weight: 800;
}
.gd-az-list {
  list-style: none;
  margin: 0;
  padding: clamp(12px, 2vw, 18px);
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, max(220px, calc(var(--gd-card-min) - 30px))), 1fr));
  gap: 9px;
}
.gd-az-list li {
  min-width: 0;
}
.gd-az-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--gd-border) 72%, transparent);
  border-radius: calc(var(--gd-card-radius) * .72);
  background: color-mix(in srgb, var(--gd-surface) 66%, transparent);
  color: var(--gd-text);
  font-weight: 750;
}
.gd-az-list a span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gd-az-list a span:last-child {
  color: var(--gd-accent);
  font-size: 18px;
}
.gd-az-list a:hover,
.gd-az-list a:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 44%, var(--gd-border));
  background: color-mix(in srgb, var(--gd-accent) 12%, var(--gd-surface));
  transform: var(--gd-card-hover-transform);
}
body.gd-hover-none .gd-az-nav a:hover,
body.gd-hover-none .gd-az-list a:hover,
body.gd-motion-off .gd-az-nav a:hover,
body.gd-motion-off .gd-az-list a:hover {
  transform: none;
}
@media (max-width: 760px) {
  .gd-az-nav {
    position: relative;
    top: auto;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding: 10px;
  }
  .gd-az-list {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* 16.28.37 collection template polish: archive-width header, A-Z search, 3-column option, centered pagination. */
body.page-template-template-game-collection .gd-page-collection-section {
  padding-block: clamp(28px, 4vw, 54px) var(--gd-section-gap);
}

body.page-template-template-game-collection .gd-page-collection-shell {
  width: min(100% - 40px, var(--gd-shell));
  max-width: var(--gd-shell);
  display: grid;
  gap: clamp(26px, 4vw, 46px);
}

.gd-collection-archive-head {
  max-width: none;
  margin-bottom: clamp(22px, 4vw, 38px);
  padding-bottom: clamp(18px, 3vw, 28px);
  border-bottom: 1px solid var(--gd-pro-hairline);
}

.gd-collection-archive-head h1 {
  margin: clamp(10px, 1.6vw, 16px) 0 0;
  max-width: none;
  font-size: clamp(38px, 6vw, calc(var(--gd-archive-title-max) * var(--gd-heading-scale)));
  line-height: .94;
  letter-spacing: -.055em;
  color: var(--gd-text);
}

.gd-collection-archive-head p {
  max-width: none;
  margin: clamp(14px, 2vw, 20px) 0 0;
  color: var(--gd-muted);
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.75;
}

.gd-collection-page-content {
  max-width: none;
  margin: 0 0 clamp(22px, 4vw, 38px);
  padding: clamp(16px, 2.4vw, 24px);
  border: 1px solid var(--gd-pro-hairline);
  border-radius: var(--gd-card-radius);
  background: color-mix(in srgb, var(--gd-surface) 66%, transparent);
}

.gd-collection-template {
  width: 100%;
  margin-block: 0;
}

.gd-collection-template--columns-three .gd-template-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gd-collection-template--columns-three .gd-az-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gd-az-tools {
  display: grid;
  grid-template-columns: minmax(280px, .62fr) minmax(0, 1fr);
  gap: clamp(12px, 2vw, 18px);
  align-items: center;
}

.gd-az-search {
  position: relative;
  min-width: 0;
}

.gd-az-search input {
  width: 100%;
  min-height: 48px;
  padding: 0 48px 0 16px;
  border: 1px solid var(--gd-pro-hairline);
  border-radius: var(--gd-input-radius);
  background: color-mix(in srgb, var(--gd-surface) 82%, transparent);
  color: var(--gd-text);
  font: inherit;
  font-weight: 760;
  outline: 0;
  box-shadow: var(--gd-style-card-shadow, none);
}

.gd-az-search input::placeholder {
  color: color-mix(in srgb, var(--gd-muted) 78%, transparent);
}

.gd-az-search input:focus {
  border-color: color-mix(in srgb, var(--gd-accent) 58%, var(--gd-border));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--gd-accent) 16%, transparent);
}

.gd-az-loading {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  border: 2px solid color-mix(in srgb, var(--gd-accent) 26%, transparent);
  border-top-color: var(--gd-accent);
  border-radius: 999px;
  opacity: 0;
  transform: scale(.82);
  transition: opacity .16s ease, transform .16s ease;
}

.gd-az-index.is-searching .gd-az-loading {
  opacity: 1;
  transform: scale(1);
  animation: gdAzSpin .76s linear infinite;
}

@keyframes gdAzSpin {
  to { transform: rotate(360deg); }
}

.gd-az-index.is-filtered .gd-az-nav a:not(.is-active) {
  opacity: .58;
}

.gd-az-section[hidden],
.gd-az-list li[hidden],
.gd-az-no-results[hidden] {
  display: none;
}

.gd-az-no-results {
  padding: clamp(18px, 3vw, 26px);
  border: 1px solid var(--gd-pro-hairline);
  border-radius: var(--gd-card-radius);
  background: color-mix(in srgb, var(--gd-card) 82%, transparent);
  color: var(--gd-muted);
  font-weight: 800;
}

.gd-collection-pagination {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: clamp(24px, 4vw, 44px);
}

.gd-collection-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 0 auto;
  padding: 8px;
  list-style: none;
  border: 1px solid var(--gd-pro-hairline);
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-surface) 76%, transparent);
  color: inherit;
}

.gd-collection-pagination li {
  margin: 0;
  padding: 0;
}

.gd-collection-pagination a.page-numbers,
.gd-collection-pagination span.page-numbers {
  min-width: 42px;
  min-height: 42px;
  padding: 8px 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--gd-muted);
  font-weight: 900;
}

.gd-collection-pagination a.page-numbers:hover,
.gd-collection-pagination a.page-numbers:focus-visible,
.gd-collection-pagination span.page-numbers.current {
  border-color: color-mix(in srgb, var(--gd-accent) 52%, var(--gd-border));
  background: color-mix(in srgb, var(--gd-accent) 14%, transparent);
  color: var(--gd-text);
}

@media (max-width: 1100px) {
  .gd-collection-template--columns-three .gd-template-grid,
  .gd-collection-template--columns-three .gd-az-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body.page-template-template-game-collection .gd-page-collection-shell {
    width: min(100% - 28px, var(--gd-shell));
  }

  .gd-collection-archive-head h1 {
    max-width: none;
  }

  .gd-az-tools {
    grid-template-columns: minmax(0, 1fr);
  }

  .gd-az-summary {
    justify-content: flex-start;
  }

  .gd-collection-template--columns-three .gd-template-grid,
  .gd-collection-template--columns-three .gd-az-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .gd-collection-pagination ul.page-numbers {
    border-radius: var(--gd-card-radius);
  }
}


/* 16.28.39 lightweight AJAX collection pagination and full-width header cleanup. */
.gd-collection-results {
  position: relative;
  min-height: 160px;
}


.gd-collection-ajax-error {
  margin-top: clamp(16px, 3vw, 24px);
}

body.page-template-template-game-collection .gd-collection-archive-head,
body.page-template-template-game-collection .gd-collection-archive-head h1,
body.page-template-template-game-collection .gd-collection-archive-head p,
body.page-template-template-game-collection .gd-collection-page-content {
  max-width: none;
}


/* 16.28.40 collection load-more mode and clean AJAX URLs. */
.gd-collection-load-more-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: clamp(24px, 4vw, 44px);
}

.gd-collection-load-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 42%, var(--gd-border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-accent) 14%, var(--gd-surface));
  color: var(--gd-text);
  font-weight: 900;
  text-decoration: none;
  box-shadow: var(--gd-style-card-shadow, none);
}

.gd-collection-load-more:hover,
.gd-collection-load-more:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 68%, var(--gd-border));
  background: color-mix(in srgb, var(--gd-accent) 22%, var(--gd-surface));
  transform: translateY(-1px);
}

.gd-collection-load-more small {
  color: var(--gd-muted);
  font-size: 12px;
  font-weight: 800;
}

.gd-collection-results.is-loading .gd-collection-load-more-wrap {
  opacity: .42;
  pointer-events: none;
}

body.gd-motion-off .gd-collection-load-more:hover,
body.gd-motion-off .gd-collection-load-more:focus-visible {
  transform: none;
}

@media (max-width: 560px) {
  .gd-collection-load-more {
    width: 100%;
    flex-direction: column;
    gap: 2px;
    border-radius: var(--gd-card-radius);
  }
}

/* FAQ auto-embed support. */
.gd-faq-answer :where(iframe[src*="youtube.com"], iframe[src*="youtube-nocookie.com"], iframe[src*="youtu.be"], iframe[src*="vimeo.com"]) {
  display: block;
  width: 100%;
  max-width: 760px;
  aspect-ratio: 16 / 9;
  height: auto;
  margin: 14px 0;
  border: 0;
  border-radius: var(--gd-card-radius);
  background: var(--gd-surface-2);
}

/* 16.28.47 page comment sticky hardening.
   Page comments now render outside the narrow page shell, so the sticky form uses
   the same full comment grid contract as posts. Keep overflow visible for native
   sticky because parent overflow/contain can silently disable sticky behavior. */
body.gd-comment-form-sticky-on .gd-page-section,
body.gd-comment-form-sticky-on .gd-page-shell,
body.gd-comment-form-sticky-on .gd-comments-section,
body.gd-comment-form-sticky-on .gd-comments-section > .gd-shell,
body.gd-comment-form-sticky-on .gd-comments-grid {
  overflow: visible;
  contain: none;
}

body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel {
  position: sticky;
  top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
  z-index: 6;
  align-self: start;
  max-height: calc(100vh - var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) - 36px);
  overflow: auto;
  overscroll-behavior: contain;
  contain: none;
}

body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section .gd-comment-form-panel {
  top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 50px);
  max-height: calc(100vh - var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) - 68px);
}

@media (max-width: 980px) {
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
  }
}

/* 16.28.47 smooth summary expand/collapse and stronger page comment sticky. */
.gd-app-short-wrap .gd-app-short {
  display: block;
  max-height: var(--gd-short-collapsed-height, calc(1.55em * 3));
  overflow: hidden;
  transition: max-height .28s ease, opacity .18s ease;
  will-change: max-height;
}

.gd-app-short-wrap.is-expanded .gd-app-short {
  display: block;
  max-height: var(--gd-short-expanded-height, min(32vh, 280px));
  overflow: auto;
  -webkit-line-clamp: unset;
  padding-inline-end: 4px;
  scrollbar-gutter: stable;
}

body.gd-motion-off .gd-app-short-wrap .gd-app-short,
body.gd-no-motion .gd-app-short-wrap .gd-app-short {
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .gd-app-short-wrap .gd-app-short {
    transition: none;
  }
}

body.gd-comment-form-sticky-on .gd-comments-section--page {
  overflow: visible;
  contain: none;
}

body.gd-comment-form-sticky-on .gd-comments-section--page .gd-shell {
  overflow: visible;
  contain: none;
}

body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comments-grid {
  overflow: visible;
  contain: none;
  min-height: min(720px, calc(100vh - 120px));
}

body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel {
  position: sticky;
  top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
  align-self: start;
  z-index: 6;
}

body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section--page .gd-comment-form-panel,
body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section--post .gd-comment-form-panel {
  top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 50px);
}

@media (min-width: 781px) and (max-width: 980px) {
  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comments-grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  }

  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel {
    position: sticky;
    top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
  }
}

@media (max-width: 780px) {
  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
  }
}


/* 16.28.48 sticky comment scroll-jank guard.
   Keep the form sticky, but do not create an inner scroll container. Large pages
   with thousands of comments can feel like scrolling is blocked when the sticky
   panel captures the wheel. */
body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel {
  max-height: none;
  overflow: visible;
  overscroll-behavior: auto;
}

body.gd-comment-form-sticky-on .gd-comments-grid {
  align-items: start;
}

.gd-download-views { border-color: color-mix(in srgb, var(--gd-accent) 24%, var(--gd-border)); background: color-mix(in srgb, var(--gd-accent) 9%, transparent); }


/* 16.28.50 JS-assisted page comment sticky.
   Native CSS sticky is unreliable on very long page comment threads because
   ancestors, grid sizing, and thousands of comments can break sticky or cause
   scroll jank. Keep native sticky as no-JS fallback, then let JS pin/release the
   form only while the page comments grid is in view. */
body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comments-grid {
  position: relative;
  align-items: start;
}

body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel {
  position: static;
  top: auto;
  max-height: none;
  overflow: visible;
  overscroll-behavior: auto;
  will-change: top, left;
}

.gd-comment-form-panel-placeholder {
  display: block;
  min-width: 0;
  pointer-events: none;
  visibility: hidden;
}

.gd-comment-form-panel.is-gd-page-comment-fixed,
.gd-comment-form-panel.is-gd-page-comment-bottom {
  margin: 0;
}

@media (max-width: 780px) {
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel {
    position: static;
    top: auto;
    left: auto;
    width: auto;
  }

  .gd-comment-form-panel-placeholder {
    display: none;
  }
}

/* 16.28.51 page comment form transform sticky.
   The form remains visible in its normal right-column slot immediately, then
   translates downward while the long comment list scrolls. This avoids the
   blank-right-column failure mode caused by fixed-position handoffs. */
body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comments-grid {
  position: relative;
  align-items: start;
}
body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel {
  position: relative;
  top: auto;
  left: auto;
  width: auto;
  max-height: none;
  overflow: visible;
  overscroll-behavior: auto;
  will-change: transform;
}
body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel.is-gd-page-comment-transform-sticky {
  margin: 0;
}
@media (max-width: 780px) {
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel {
    transform: none;
    will-change: auto;
  }
}

/* 16.28.54 extra hero slider designs and cover-flow hardening. */
.gd-hero-preview-grid {
  display: none;
}
body.home .gd-home-slider--cover-flow {
  padding-inline: clamp(10px, 4vw, 64px);
  overflow: visible;
}
body.home .gd-home-slider--cover-flow .gd-home-slides {
  overflow: visible;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 20%, var(--gd-border));
  border-radius: var(--gd-hero-radius);
  background: linear-gradient(135deg, color-mix(in srgb, var(--gd-card) 72%, transparent), color-mix(in srgb, var(--gd-card-2) 88%, transparent));
  box-shadow: var(--gd-shadow), inset 0 1px 0 rgba(255,255,255,.08);
}
body.home .gd-home-slider--cover-flow .gd-home-slides::after {
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gd-accent) 10%, transparent), inset 0 -90px 110px rgba(2,6,23,.32);
}
body.home .gd-home-slider--cover-flow .gd-featured-hero,
body.home .gd-home-slider--cover-flow .gd-home-slide {
  border-color: color-mix(in srgb, var(--gd-accent) 18%, var(--gd-border));
  background-color: color-mix(in srgb, var(--gd-card) 86%, black);
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1), filter .55s cubic-bezier(.22,1,.36,1), visibility .55s step-end;
}
body.home .gd-home-slider--cover-flow .gd-home-slide.is-active {
  transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1), filter .55s cubic-bezier(.22,1,.36,1), visibility 0s;
}

body.home .gd-store-hero--layout-media-showcase .gd-shell,
body.home .gd-store-hero--layout-deal-rail .gd-shell {
  max-width: min(var(--gd-shell), calc(100vw - 32px));
}
body.home .gd-home-slider--media-showcase .gd-home-slides {
  border-color: color-mix(in srgb, var(--gd-accent) 18%, var(--gd-border));
  border-radius: calc(var(--gd-hero-radius) - 4px);
  background: color-mix(in srgb, var(--gd-card) 92%, black);
  box-shadow: var(--gd-shadow), inset 0 1px 0 rgba(255,255,255,.08);
}
body.home .gd-home-slider--media-showcase .gd-featured-hero,
body.home .gd-home-slider--media-showcase .gd-home-slide {
  min-height: clamp(430px, 40vw, 560px);
  align-items: center;
  justify-items: end;
  padding: clamp(22px, 3.5vw, 46px);
  background-size: 100% 100%, min(68%, 830px) auto;
  background-position: center, left center;
  background-repeat: no-repeat;
}
body.home .gd-home-slider--media-showcase .gd-featured-hero::before {
  background:
    linear-gradient(90deg, rgba(2,6,23,.06) 0%, rgba(2,6,23,.18) 50%, rgba(2,6,23,.90) 68%, rgba(2,6,23,.98) 100%),
    radial-gradient(circle at 82% 25%, color-mix(in srgb, var(--gd-accent) 16%, transparent), transparent 18rem);
}
body.home .gd-home-slider--media-showcase .gd-hero-copy {
  width: min(390px, 36%);
  max-width: 390px;
  padding: clamp(18px, 2vw, 28px);
  border: 1px solid color-mix(in srgb, var(--gd-accent) 16%, var(--gd-border));
  border-radius: calc(var(--gd-card-radius) - 6px);
  background: linear-gradient(180deg, color-mix(in srgb, var(--gd-card) 76%, transparent), color-mix(in srgb, var(--gd-bg) 92%, transparent));
  box-shadow: 0 20px 70px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.08);
  text-shadow: none;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
body.home .gd-home-slider--media-showcase .gd-hero-title {
  font-size: clamp(28px, 3vw, 46px);
  letter-spacing: -.04em;
}
body.home .gd-home-slider--media-showcase .gd-hero-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}
body.home .gd-home-slider--media-showcase .gd-hero-preview-grid span {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 14%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--gd-bg) 88%, black);
}
body.home .gd-home-slider--media-showcase .gd-hero-preview-grid img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
body.home .gd-home-slider--media-showcase .gd-hero-meta-row {
  margin-top: 16px;
}
body.home .gd-home-slider--media-showcase .gd-hero-badges {
  display: none;
}

body.home .gd-home-slider--deal-rail {
  overflow: visible;
  padding-inline: clamp(18px, 7vw, 110px);
}
body.home .gd-home-slider--deal-rail .gd-home-slides {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.home .gd-home-slider--deal-rail .gd-home-slides::after {
  display: none;
}
body.home .gd-home-slider--deal-rail .gd-featured-hero,
body.home .gd-home-slider--deal-rail .gd-home-slide {
  min-height: clamp(320px, 28vw, 430px);
  align-items: end;
  padding: clamp(22px, 3vw, 38px);
  border: 1px solid color-mix(in srgb, var(--gd-accent) 16%, var(--gd-border));
  border-radius: calc(var(--gd-card-radius) - 8px);
  background-position: center;
  box-shadow: 0 20px 54px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08);
  transition: opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1), filter .5s cubic-bezier(.22,1,.36,1), visibility .5s step-end;
}
body.home .gd-home-slider--deal-rail .gd-featured-hero::before {
  background:
    linear-gradient(180deg, rgba(2,6,23,.06), rgba(2,6,23,.82)),
    linear-gradient(90deg, rgba(2,6,23,.12), rgba(2,6,23,.46));
}
body.home .gd-home-slider--deal-rail .gd-home-slide.is-active {
  transform: translateX(0) scale(1);
  filter: none;
  z-index: 4;
  transition: opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1), filter .5s cubic-bezier(.22,1,.36,1), visibility 0s;
}
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="1"],
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-1"] {
  opacity: .58;
  visibility: visible;
  pointer-events: none;
  filter: saturate(.82) brightness(.72);
  z-index: 2;
}
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="1"] {
  transform: translateX(72%) scale(.86);
}
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-1"] {
  transform: translateX(-72%) scale(.86);
}
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="2"],
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-2"] {
  opacity: .16;
  visibility: visible;
  pointer-events: none;
  filter: saturate(.68) brightness(.56);
  z-index: 1;
}
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="2"] {
  transform: translateX(128%) scale(.76);
}
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-2"] {
  transform: translateX(-128%) scale(.76);
}
body.home .gd-home-slider--deal-rail .gd-home-slide:not(.is-active) .gd-hero-copy {
  opacity: .45;
}
body.home .gd-home-slider--deal-rail .gd-hero-copy {
  width: min(620px, 78%);
  max-width: 620px;
  padding: 0;
}
body.home .gd-home-slider--deal-rail .gd-hero-copy > p {
  max-width: 60ch;
}
body.home .gd-home-slider--deal-rail .gd-hero-meta-row {
  margin-top: 14px;
}
body.home .gd-home-slider--deal-rail .gd-home-dots {
  bottom: -36px;
}
body.home .gd-home-slider--deal-rail .gd-home-nav,
body.home .gd-home-slider--media-showcase .gd-home-nav {
  opacity: .96;
  visibility: visible;
  pointer-events: auto;
}

@media (max-width: 720px) {
  body.home .gd-home-slider--media-showcase .gd-featured-hero,
  body.home .gd-home-slider--media-showcase .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-featured-hero,
  body.home .gd-home-slider--deal-rail .gd-home-slide {
    min-height: clamp(460px, 112vw, 620px);
    padding: clamp(22px, 7vw, 38px);
    background-size: cover;
    background-position: center;
  }
  body.home .gd-home-slider--media-showcase .gd-featured-hero::before {
    background: linear-gradient(180deg, rgba(2,6,23,.28), rgba(2,6,23,.96) 72%);
  }
  body.home .gd-home-slider--media-showcase .gd-hero-copy,
  body.home .gd-home-slider--deal-rail .gd-hero-copy {
    width: 100%;
    max-width: 100%;
  }
  body.home .gd-home-slider--deal-rail {
    padding-inline: 0;
  }
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="2"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-2"] {
    opacity: 0;
    visibility: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home .gd-home-slider--cover-flow .gd-featured-hero,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-featured-hero,
  body.home .gd-home-slider--deal-rail .gd-home-slide {
    transition: none;
  }
}

/* 16.28.56 single media summary and hero slider polish.
   Keep expanded summaries bounded so the media column does not jump, but make
   the scroll area look like part of the theme instead of a raw browser bar. */
.gd-app-short-wrap {
  position: relative;
}

.gd-app-summary-panel .gd-app-short-wrap .gd-app-short {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--gd-accent) 58%, var(--gd-border)) transparent;
}

.gd-app-summary-panel .gd-app-short-wrap .gd-app-short::-webkit-scrollbar {
  width: 6px;
}

.gd-app-summary-panel .gd-app-short-wrap .gd-app-short::-webkit-scrollbar-track {
  background: transparent;
}

.gd-app-summary-panel .gd-app-short-wrap .gd-app-short::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-accent) 58%, var(--gd-border));
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded.is-scrollable .gd-app-short {
  padding-inline-end: 10px;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 22px), transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 22px), transparent 100%);
}

.gd-app-summary-panel .gd-app-short-toggle {
  justify-self: end;
  min-height: 28px;
  padding: 5px 9px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 24%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-accent) 10%, transparent);
  line-height: 1;
}

.gd-app-summary-panel .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-toggle:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent) 52%, var(--gd-border));
  background: color-mix(in srgb, var(--gd-accent) 16%, transparent);
}

body.gd-motion-off .gd-app-summary-panel .gd-app-short-toggle:hover,
body.gd-no-motion .gd-app-summary-panel .gd-app-short-toggle:hover {
  transform: none;
}

body.home .gd-home-slider--media-showcase .gd-hero-copy {
  max-height: min(100%, 520px);
  overflow: hidden;
}

body.home .gd-home-slider--media-showcase .gd-hero-copy > p {
  max-height: 9.2em;
  overflow: hidden;
}

body.home .gd-home-slider--media-showcase .gd-hero-preview-grid span {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gd-accent) 8%, transparent);
}

body.home .gd-home-slider--deal-rail .gd-home-slide,
body.home .gd-home-slider--cover-flow .gd-home-slide,
body.home .gd-home-slider--media-showcase .gd-home-slide {
  backface-visibility: hidden;
  transform-style: preserve-3d;
}

body.home .gd-home-slider--deal-rail .gd-home-nav,
body.home .gd-home-slider--cover-flow .gd-home-nav,
body.home .gd-home-slider--media-showcase .gd-home-nav {
  transition: transform .22s ease, background .22s ease, border-color .22s ease, opacity .22s ease;
}

body.home .gd-home-slider--deal-rail .gd-home-nav:hover,
body.home .gd-home-slider--cover-flow .gd-home-nav:hover,
body.home .gd-home-slider--media-showcase .gd-home-nav:hover {
  transform: translateY(-50%) scale(1.04);
}

@media (max-width: 900px) {
  body.home .gd-home-slider--media-showcase .gd-hero-copy > p {
    max-height: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home .gd-home-slider--deal-rail .gd-home-nav,
  body.home .gd-home-slider--cover-flow .gd-home-nav,
  body.home .gd-home-slider--media-showcase .gd-home-nav {
    transition: none;
  }
}


/* 16.28.60 controlled homepage gradient and hero settings.
   Final owner for homepage hero slider settings across every layout. */
.gd-featured-hero,
.gd-home-slide {
  background-color: var(--gd-card-2);
  background-image: var(--gd-hero-image);
  background-clip: padding-box;
  overflow: hidden;
}

.gd-home-slides,
.gd-home-slider,
.gd-featured-hero,
.gd-home-slide,
.gd-home-slider--poster-split .gd-hero-copy,
body.home .gd-home-slider--media-showcase .gd-hero-copy,
body.home .gd-home-slider--deal-rail .gd-home-slide,
body.home .gd-home-slider--cover-flow .gd-home-slide {
  border-radius: var(--gd-hero-radius);
}

body.gd-hero-density-compact .gd-store-hero .gd-home-slide,
body.gd-hero-density-compact .gd-store-hero .gd-featured-hero {
  min-height: clamp(430px, 44vw, 540px);
  padding: clamp(26px, 5vw, 54px);
}

body.gd-hero-density-cinematic .gd-store-hero .gd-home-slide,
body.gd-hero-density-cinematic .gd-store-hero .gd-featured-hero {
  min-height: clamp(540px, 54vw, 700px);
}

body.gd-hero-density-editorial .gd-store-hero .gd-home-slide,
body.gd-hero-density-editorial .gd-store-hero .gd-featured-hero {
  min-height: clamp(580px, 58vw, 740px);
  padding: clamp(42px, 8vw, 92px);
}

body.gd-hero-density-compact.home .gd-home-slider--poster-split .gd-home-slide,
body.gd-hero-density-compact.home .gd-home-slider--poster-split .gd-featured-hero,
body.gd-hero-density-compact.home .gd-home-slider--cover-flow .gd-home-slide,
body.gd-hero-density-compact.home .gd-home-slider--cover-flow .gd-featured-hero,
body.gd-hero-density-compact.home .gd-home-slider--media-showcase .gd-home-slide,
body.gd-hero-density-compact.home .gd-home-slider--media-showcase .gd-featured-hero,
body.gd-hero-density-compact.home .gd-home-slider--deal-rail .gd-home-slide,
body.gd-hero-density-compact.home .gd-home-slider--deal-rail .gd-featured-hero {
  min-height: clamp(390px, 36vw, 520px);
  padding: clamp(22px, 3.4vw, 42px);
}

body.gd-hero-density-cinematic.home .gd-home-slider--poster-split .gd-home-slide,
body.gd-hero-density-cinematic.home .gd-home-slider--poster-split .gd-featured-hero,
body.gd-hero-density-cinematic.home .gd-home-slider--cover-flow .gd-home-slide,
body.gd-hero-density-cinematic.home .gd-home-slider--cover-flow .gd-featured-hero,
body.gd-hero-density-cinematic.home .gd-home-slider--media-showcase .gd-home-slide,
body.gd-hero-density-cinematic.home .gd-home-slider--media-showcase .gd-featured-hero,
body.gd-hero-density-cinematic.home .gd-home-slider--deal-rail .gd-home-slide,
body.gd-hero-density-cinematic.home .gd-home-slider--deal-rail .gd-featured-hero {
  min-height: clamp(460px, 44vw, 620px);
}

body.gd-hero-density-editorial.home .gd-home-slider--poster-split .gd-home-slide,
body.gd-hero-density-editorial.home .gd-home-slider--poster-split .gd-featured-hero,
body.gd-hero-density-editorial.home .gd-home-slider--cover-flow .gd-home-slide,
body.gd-hero-density-editorial.home .gd-home-slider--cover-flow .gd-featured-hero,
body.gd-hero-density-editorial.home .gd-home-slider--media-showcase .gd-home-slide,
body.gd-hero-density-editorial.home .gd-home-slider--media-showcase .gd-featured-hero,
body.gd-hero-density-editorial.home .gd-home-slider--deal-rail .gd-home-slide,
body.gd-hero-density-editorial.home .gd-home-slider--deal-rail .gd-featured-hero {
  min-height: clamp(520px, 50vw, 700px);
  padding: clamp(34px, 5.8vw, 76px);
}

body.home .gd-store-hero .gd-hero-copy .gd-hero-title,
body.home .gd-store-hero .gd-hero-copy h2.gd-hero-title,
body.home .gd-home-slider--spotlight .gd-hero-title,
body.home .gd-home-slider--store-rail .gd-hero-title,
body.home .gd-home-slider--poster-split .gd-hero-title,
body.home .gd-home-slider--cover-flow .gd-hero-title,
body.home .gd-home-slider--media-showcase .gd-hero-title,
body.home .gd-home-slider--deal-rail .gd-hero-title {
  font-size: min(clamp(30px, 4.3vw, 58px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
  line-height: 1.1;
}

body.gd-hero-density-compact.home .gd-store-hero .gd-hero-copy .gd-hero-title,
body.gd-hero-density-compact.home .gd-store-hero .gd-hero-copy h2.gd-hero-title {
  font-size: min(clamp(27px, 3.6vw, 46px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
}

body.gd-hero-density-editorial.home .gd-store-hero .gd-hero-copy .gd-hero-title,
body.gd-hero-density-editorial.home .gd-store-hero .gd-hero-copy h2.gd-hero-title {
  font-size: min(clamp(32px, 4.8vw, 64px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
}

body.home .gd-home-slider--media-showcase .gd-hero-badges {
  display: flex;
}

body.home .gd-home-slider--cover-flow .gd-featured-hero,
body.home .gd-home-slider--cover-flow .gd-home-slide,
body.home .gd-home-slider--deal-rail .gd-featured-hero,
body.home .gd-home-slider--deal-rail .gd-home-slide {
  border: 1px solid color-mix(in srgb, var(--gd-accent) 22%, var(--gd-border-strong));
  background-color: color-mix(in srgb, var(--gd-card-2) 94%, #000);
  box-shadow: 0 26px 76px rgba(0,0,0,.40), inset 0 1px 0 rgba(255,255,255,.08);
}

body.home .gd-home-slider--cover-flow .gd-home-slide.is-active,
body.home .gd-home-slider--deal-rail .gd-home-slide.is-active {
  border-color: color-mix(in srgb, var(--gd-accent) 34%, var(--gd-border-strong));
  background-color: color-mix(in srgb, var(--gd-card-2) 98%, #000);
  box-shadow: 0 30px 92px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.10);
}

body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="1"],
body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="-1"],
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="1"],
body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-1"] {
  background-color: color-mix(in srgb, var(--gd-card-2) 96%, #000);
  border-color: color-mix(in srgb, var(--gd-accent) 18%, var(--gd-border-strong));
}

body.home .gd-home-slider--deal-rail .gd-home-dots,
body.gd-hero-dots-bottom-right.home .gd-home-slider--deal-rail .gd-home-dots,
body.gd-hero-dots-top-right.home .gd-home-slider--deal-rail .gd-home-dots,
body.gd-hero-dots-bottom-left.home .gd-home-slider--deal-rail .gd-home-dots,
body.gd-hero-dots-top-left.home .gd-home-slider--deal-rail .gd-home-dots,
body.gd-hero-dots-bottom-center.home .gd-home-slider--deal-rail .gd-home-dots,
body.gd-hero-dots-top-center.home .gd-home-slider--deal-rail .gd-home-dots {
  z-index: 20;
}

body.gd-hero-dots-bottom-right.home .gd-home-slider--deal-rail .gd-home-dots { right: var(--gd-home-dots-side-offset); bottom: var(--gd-home-dots-vertical-offset); left: auto; top: auto; transform: none; }
body.gd-hero-dots-top-right.home .gd-home-slider--deal-rail .gd-home-dots { right: var(--gd-home-dots-side-offset); top: var(--gd-home-dots-vertical-offset); left: auto; bottom: auto; transform: none; }
body.gd-hero-dots-bottom-left.home .gd-home-slider--deal-rail .gd-home-dots { left: var(--gd-home-dots-side-offset); bottom: var(--gd-home-dots-vertical-offset); right: auto; top: auto; transform: none; }
body.gd-hero-dots-top-left.home .gd-home-slider--deal-rail .gd-home-dots { left: var(--gd-home-dots-side-offset); top: var(--gd-home-dots-vertical-offset); right: auto; bottom: auto; transform: none; }
body.gd-hero-dots-bottom-center.home .gd-home-slider--deal-rail .gd-home-dots { left: 50%; right: auto; bottom: var(--gd-home-dots-vertical-offset); top: auto; transform: translateX(-50%); }
body.gd-hero-dots-top-center.home .gd-home-slider--deal-rail .gd-home-dots { left: 50%; right: auto; top: var(--gd-home-dots-vertical-offset); bottom: auto; transform: translateX(-50%); }

.gd-app-summary-panel .gd-app-short-toggle {
  justify-self: start;
  min-height: 28px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--gd-accent);
  line-height: 1.1;
  box-shadow: none;
}

.gd-app-summary-panel .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-toggle:focus-visible {
  border-color: transparent;
  background: transparent;
  color: color-mix(in srgb, var(--gd-accent) 82%, #fff);
}

@media (max-width: 900px) {
  body.gd-hero-density-compact.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-compact.home .gd-store-hero .gd-featured-hero,
  body.gd-hero-density-cinematic.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-cinematic.home .gd-store-hero .gd-featured-hero,
  body.gd-hero-density-editorial.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-editorial.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(460px, 112vw, 620px);
    padding: clamp(22px, 7vw, 40px);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home .gd-home-slider--cover-flow .gd-featured-hero,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-featured-hero,
  body.home .gd-home-slider--deal-rail .gd-home-slide,
  body.home .gd-home-slider--media-showcase .gd-featured-hero,
  body.home .gd-home-slider--media-showcase .gd-home-slide {
    transition: none;
  }
}

/* 16.28.59 store rail guard: density is driven by rail variables on desktop. */
@media (min-width: 721px) {
  body.home .gd-home-slider--store-rail .gd-home-slide {
    min-height: 0;
    height: 100%;
  }
}


/* 16.28.60 controlled homepage hero gradient.
   The image gradient is now restored through --gd-home-hero-bg-gradient instead of a fixed inline value.
   This keeps the old dark readability layer while allowing Homepage image overlay strength and
   Homepage hero dark gradient mode to control how heavy it is. */
body.home.gd-home-gradient-none .gd-store-hero .gd-featured-hero,
body.home.gd-home-gradient-none .gd-store-hero .gd-home-slide {
  background-image: var(--gd-hero-image, none);
}

/* 16.28.61 controlled single game gradient.
   Single game background images now keep their dark readability layer, but the layer is
   driven by Single game dark gradient and Single game image overlay strength instead of
   one fixed gradient. */
body.gd-single-gradient-none .gd-single-steam .gd-app-hero::before,
body.gd-single-gradient-none .gd-app-hero--hidden-media-split::before,
body.gd-single-gradient-none .gd-single-steam .gd-app-hero--hidden-media-split::before {
  background: none;
}
body .gd-single-steam .gd-app-hero::before {
  background: var(--gd-single-hero-bg-gradient, linear-gradient(180deg, rgba(5,8,18,.88), rgba(5,8,18,.72) 38%, rgba(5,8,18,.96)), radial-gradient(circle at 72% 18%, rgba(102,192,244,.22), transparent 24rem));
}
body .gd-app-hero--hidden-media-split::before,
body .gd-single-steam .gd-app-hero--hidden-media-split::before {
  background: var(--gd-single-hero-hidden-bg-gradient, linear-gradient(180deg, rgba(5,8,18,.74), rgba(5,8,18,.68) 38%, rgba(5,8,18,.96)), linear-gradient(90deg, rgba(2,6,23,.94) 0%, rgba(2,6,23,.72) 44%, rgba(2,6,23,.38) 72%, rgba(2,6,23,.86) 100%), radial-gradient(circle at 76% 20%, color-mix(in srgb, var(--gd-accent) 15%, transparent), transparent 25rem));
}

/* 16.28.62 responsive hero slider hardening.
   Small screens should get one strong active card, not squeezed desktop rails. */
@media (max-width: 720px) {
  body.home .gd-store-hero {
    padding-top: clamp(16px, 4vw, 24px);
    padding-bottom: clamp(16px, 4vw, 26px);
  }

  body.home .gd-store-hero .gd-shell,
  body.home .gd-store-hero--layout-media-showcase .gd-shell,
  body.home .gd-store-hero--layout-deal-rail .gd-shell,
  body.home .gd-store-hero--layout-cover-flow .gd-shell,
  body.home .gd-store-hero--layout-store-rail .gd-shell {
    width: min(100% - 24px, var(--gd-shell));
    max-width: var(--gd-shell);
    padding-inline: 0;
  }

  body.home .gd-home-slider {
    filter: none;
    overflow: hidden;
  }

  body.home .gd-home-slides,
  body.home .gd-home-slider--cover-flow .gd-home-slides,
  body.home .gd-home-slider--deal-rail .gd-home-slides,
  body.home .gd-home-slider--media-showcase .gd-home-slides,
  body.home .gd-home-slider--store-rail .gd-home-slides {
    overflow: hidden;
    border-radius: var(--gd-hero-radius);
  }

  body.home .gd-home-slider--store-rail,
  body.home .gd-home-slider--cover-flow,
  body.home .gd-home-slider--deal-rail {
    padding-inline: 0;
  }

  body.home .gd-home-slider--store-rail {
    --gd-rail-card-width: 100%;
    --gd-rail-height: auto;
    --gd-rail-min-height: 0;
    overflow: hidden;
  }

  body.home .gd-home-slider--store-rail .gd-home-slides {
    height: auto;
    min-height: 0;
    contain: none;
  }

  body.home .gd-home-slider--store-rail .gd-home-slide,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-home-slide {
    display: none;
    position: relative;
    inset: auto;
    left: auto;
    width: 100%;
    height: auto;
    min-height: clamp(430px, 92vw, 600px);
    margin: 0;
    overflow: hidden;
    transform: none;
    filter: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  body.home .gd-home-slider--store-rail .gd-home-slide.is-active,
  body.home .gd-home-slider--cover-flow .gd-home-slide.is-active,
  body.home .gd-home-slider--deal-rail .gd-home-slide.is-active {
    display: grid;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    filter: none;
  }

  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"],
  body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-2"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="2"] {
    display: none;
    opacity: 0;
    visibility: hidden;
    transform: none;
    pointer-events: none;
  }

  body.home .gd-featured-hero,
  body.home .gd-home-slide,
  body.home .gd-home-slider--poster-split .gd-home-slide,
  body.home .gd-home-slider--media-showcase .gd-home-slide,
  body.home .gd-home-slider--store-rail .gd-home-slide,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-home-slide {
    align-items: end;
    justify-items: stretch;
    padding: clamp(22px, 6vw, 38px);
    background-size: cover;
    background-position: center center;
  }

  body.home .gd-home-slider--poster-split .gd-featured-hero::before,
  body.home .gd-home-slider--cover-flow .gd-featured-hero::before,
  body.home .gd-home-slider--media-showcase .gd-featured-hero::before,
  body.home .gd-home-slider--deal-rail .gd-featured-hero::before {
    background:
      linear-gradient(180deg, rgba(2,6,23,.22), rgba(2,6,23,.84) 56%, rgba(2,6,23,.97)),
      linear-gradient(90deg, rgba(2,6,23,.72), rgba(2,6,23,.28));
  }

  body.home .gd-home-slider--poster-split .gd-hero-copy,
  body.home .gd-home-slider--media-showcase .gd-hero-copy,
  body.home .gd-home-slider--deal-rail .gd-hero-copy,
  body.home .gd-home-slider--cover-flow .gd-hero-copy,
  body.home .gd-home-slider--store-rail .gd-hero-copy,
  body.home .gd-hero-copy {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  body.home .gd-store-hero .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy h2.gd-hero-title,
  body.home .gd-home-slider--media-showcase .gd-hero-title,
  body.home .gd-home-slider--deal-rail .gd-hero-title,
  body.home .gd-home-slider--cover-flow .gd-hero-title,
  body.home .gd-home-slider--poster-split .gd-hero-title,
  body.home .gd-home-slider--store-rail .gd-hero-title {
    max-width: min(18ch, 100%);
    font-size: min(clamp(29px, 8.8vw, 44px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
    line-height: 1.08;
    -webkit-line-clamp: 3;
  }

  body.home .gd-home-slider--store-rail .gd-hero-copy p,
  body.home .gd-home-slider--poster-split .gd-hero-copy p,
  body.home .gd-home-slider--cover-flow .gd-hero-copy p,
  body.home .gd-home-slider--media-showcase .gd-hero-copy p,
  body.home .gd-home-slider--deal-rail .gd-hero-copy p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    font-size: clamp(14px, 3.7vw, 16px);
    line-height: 1.48;
  }

  body.home .gd-home-slider--store-rail .gd-hero-meta-row,
  body.home .gd-home-slider--poster-split .gd-hero-meta-row,
  body.home .gd-home-slider--cover-flow .gd-hero-meta-row,
  body.home .gd-home-slider--media-showcase .gd-hero-meta-row,
  body.home .gd-home-slider--deal-rail .gd-hero-meta-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin-top: 14px;
    max-width: 100%;
  }

  body.home .gd-home-slider--store-rail .gd-hero-microstats,
  body.home .gd-home-slider--poster-split .gd-hero-microstats,
  body.home .gd-home-slider--cover-flow .gd-hero-microstats,
  body.home .gd-home-slider--media-showcase .gd-hero-microstats,
  body.home .gd-home-slider--deal-rail .gd-hero-microstats {
    margin-left: 0;
    justify-content: flex-start;
    gap: 7px 14px;
  }

  body.home .gd-home-dots,
  body.gd-hero-dots-bottom-right.home .gd-home-dots,
  body.gd-hero-dots-top-right.home .gd-home-dots,
  body.gd-hero-dots-bottom-left.home .gd-home-dots,
  body.gd-hero-dots-top-left.home .gd-home-dots,
  body.gd-hero-dots-bottom-center.home .gd-home-dots,
  body.gd-hero-dots-top-center.home .gd-home-dots {
    left: 50%;
    right: auto;
    top: auto;
    bottom: 10px;
    max-width: calc(100% - 28px);
    transform: translateX(-50%);
  }

  body.home .gd-home-nav,
  body.home .gd-home-slider--deal-rail .gd-home-nav,
  body.home .gd-home-slider--cover-flow .gd-home-nav,
  body.home .gd-home-slider--media-showcase .gd-home-nav {
    width: 40px;
    height: 40px;
  }
}

@media (max-width: 640px) {
  body.home .gd-store-hero .gd-shell,
  body.home .gd-store-hero--layout-media-showcase .gd-shell,
  body.home .gd-store-hero--layout-deal-rail .gd-shell,
  body.home .gd-store-hero--layout-cover-flow .gd-shell,
  body.home .gd-store-hero--layout-store-rail .gd-shell {
    width: min(100% - 18px, var(--gd-shell));
  }

  body.home .gd-featured-hero,
  body.home .gd-home-slide,
  body.home .gd-home-slider--store-rail .gd-home-slide,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-home-slide,
  body.home .gd-home-slider--media-showcase .gd-home-slide,
  body.home .gd-home-slider--poster-split .gd-home-slide {
    min-height: clamp(390px, 118vw, 520px);
    padding: clamp(20px, 6vw, 30px) clamp(18px, 5vw, 26px) clamp(48px, 12vw, 62px);
  }

  body.home .gd-home-slider--poster-split .gd-hero-copy,
  body.home .gd-home-slider--media-showcase .gd-hero-copy {
    padding: clamp(16px, 4.8vw, 22px);
    border-radius: calc(var(--gd-card-radius) - 8px);
  }

  body.home .gd-store-hero .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy h2.gd-hero-title,
  body.home .gd-home-slider--media-showcase .gd-hero-title,
  body.home .gd-home-slider--deal-rail .gd-hero-title,
  body.home .gd-home-slider--cover-flow .gd-hero-title,
  body.home .gd-home-slider--poster-split .gd-hero-title,
  body.home .gd-home-slider--store-rail .gd-hero-title {
    max-width: 100%;
    font-size: min(clamp(27px, 10vw, 38px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
  }

  body.home .gd-home-slider--media-showcase .gd-hero-preview-grid {
    display: none;
  }

  body.home .gd-home-slider--media-showcase .gd-hero-badges,
  body.home .gd-home-slider--deal-rail .gd-hero-badges,
  body.home .gd-home-slider--cover-flow .gd-hero-badges,
  body.home .gd-home-slider--store-rail .gd-hero-badges {
    max-height: 72px;
    overflow: hidden;
  }

  body.home .gd-home-nav,
  body.home .gd-home-slider--deal-rail .gd-home-nav,
  body.home .gd-home-slider--cover-flow .gd-home-nav,
  body.home .gd-home-slider--media-showcase .gd-home-nav {
    width: 36px;
    height: 36px;
  }

  body.home .gd-home-prev,
  body.home .gd-home-slider--store-rail .gd-home-prev,
  body.home .gd-home-slider--deal-rail .gd-home-prev,
  body.home .gd-home-slider--cover-flow .gd-home-prev,
  body.home .gd-home-slider--media-showcase .gd-home-prev {
    left: 8px;
  }

  body.home .gd-home-next,
  body.home .gd-home-slider--store-rail .gd-home-next,
  body.home .gd-home-slider--deal-rail .gd-home-next,
  body.home .gd-home-slider--cover-flow .gd-home-next,
  body.home .gd-home-slider--media-showcase .gd-home-next {
    right: 8px;
  }

  body.home .gd-home-dots button {
    width: 20px;
    height: 7px;
  }
}

@media (max-width: 420px) {
  body.home .gd-featured-hero,
  body.home .gd-home-slide,
  body.home .gd-home-slider--store-rail .gd-home-slide,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-home-slide,
  body.home .gd-home-slider--media-showcase .gd-home-slide,
  body.home .gd-home-slider--poster-split .gd-home-slide {
    min-height: clamp(370px, 124vw, 490px);
    padding-bottom: 54px;
  }

  body.home .gd-home-slider--store-rail .gd-hero-copy p,
  body.home .gd-home-slider--poster-split .gd-hero-copy p,
  body.home .gd-home-slider--cover-flow .gd-hero-copy p,
  body.home .gd-home-slider--media-showcase .gd-hero-copy p,
  body.home .gd-home-slider--deal-rail .gd-hero-copy p {
    -webkit-line-clamp: 2;
  }

  body.home .gd-home-slider--store-rail .gd-hero-microstats span,
  body.home .gd-home-slider--poster-split .gd-hero-microstats span,
  body.home .gd-home-slider--cover-flow .gd-hero-microstats span,
  body.home .gd-home-slider--media-showcase .gd-hero-microstats span,
  body.home .gd-home-slider--deal-rail .gd-hero-microstats span {
    font-size: 12px;
  }
}

/* 16.28.63 stable comment form sticky: no JS transform handoff, no scroll shake. */
body.gd-comment-form-sticky-on .gd-comments-section .gd-comments-grid {
  align-items: start;
  overflow: visible;
}
body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel {
  position: sticky;
  top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
  align-self: start;
  height: max-content;
  transform: none;
  will-change: auto;
  isolation: isolate;
}
body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section .gd-comment-form-panel {
  top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 50px);
}
@media (max-width: 980px) {
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel {
    position: static;
    top: auto;
    height: auto;
  }
}


/* Top announcement bar */
:root {
  --gd-announcement-h: 40px;
}
.gd-announcement-bar {
  min-height: var(--gd-announcement-h);
  position: relative;
  z-index: 40;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: var(--gd-text);
  border-block: 1px solid color-mix(in srgb, var(--gd-border) 88%, transparent);
  background: var(--gd-style-panel-bg, linear-gradient(90deg, color-mix(in srgb, var(--gd-accent) 14%, rgba(4,8,18,.94)), color-mix(in srgb, var(--gd-accent-2) 10%, rgba(4,8,18,.94))));
  box-shadow: var(--gd-style-panel-shadow, 0 12px 34px rgba(0,0,0,.18));
}
.gd-announcement-bar--bg-preset {
  background: var(--gd-style-panel-bg, linear-gradient(90deg, color-mix(in srgb, var(--gd-accent) 14%, rgba(4,8,18,.94)), color-mix(in srgb, var(--gd-accent-2) 10%, rgba(4,8,18,.94))));
  box-shadow: var(--gd-style-panel-shadow, 0 12px 34px rgba(0,0,0,.18));
  -webkit-backdrop-filter: saturate(140%) blur(var(--gd-header-blur, 18px));
  backdrop-filter: saturate(140%) blur(var(--gd-header-blur, 18px));
}
.gd-announcement-bar--bg-solid {
  background: linear-gradient(90deg, color-mix(in srgb, var(--gd-accent) 22%, rgba(4,8,18,.96)), color-mix(in srgb, var(--gd-accent-2) 18%, rgba(4,8,18,.96)));
  box-shadow: 0 12px 34px rgba(0,0,0,.18);
}
.gd-announcement-bar--bg-none {
  background: transparent;
  box-shadow: none;
  border-color: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.gd-announcement-bar--bgspan-full {
  width: 100%;
  border-radius: 0;
}
.gd-announcement-bar--bgspan-contained {
  width: min(var(--gd-shell), calc(100% - clamp(24px, 4vw, 48px)));
  margin-inline: auto;
  border-radius: min(var(--gd-radius-card, 22px), 24px);
}
.gd-announcement-bar--bgspan-contained.gd-announcement-bar--after-breadcrumbs {
  margin-block: 10px;
}
.gd-announcement-bar--after-breadcrumbs.gd-announcement-bar--bgspan-full {
  border-top-width: 0;
}
body.gd-header-fixed .gd-announcement-bar--after-header.gd-announcement-bar--bgspan-full {
  margin-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.gd-header-fixed .gd-announcement-bar--after-header.gd-announcement-bar--bgspan-contained {
  margin-top: calc(var(--gd-live-header-h, var(--gd-header-h)) + 10px);
  margin-bottom: 10px;
}
body.gd-header-fixed .gd-announcement-bar + .gd-site-main,
body.gd-header-fixed .gd-breadcrumbs-wrap + .gd-announcement-bar + .gd-site-main {
  padding-top: 0;
}
.gd-announcement-link {
  width: 100%;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.gd-announcement-link:focus-visible {
  outline: 2px solid var(--gd-accent);
  outline-offset: -4px;
}
.gd-announcement-bar--bgspan-contained .gd-announcement-link:focus-visible {
  border-radius: inherit;
}
.gd-announcement-inner {
  display: block;
  width: 100%;
  min-width: 0;
}
.gd-announcement-bar--content-contained .gd-announcement-inner {
  width: min(var(--gd-shell), calc(100% - clamp(24px, 4vw, 48px)));
  margin-inline: auto;
}
.gd-announcement-bar--bgspan-contained.gd-announcement-bar--content-contained .gd-announcement-inner {
  width: 100%;
}
.gd-announcement-viewport {
  display: block;
  overflow: hidden;
  width: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.gd-announcement-track {
  display: flex;
  align-items: center;
  width: max-content;
  min-width: 200%;
  transform: translate3d(0,0,0);
  will-change: transform;
}
.gd-announcement-bar--scroll .gd-announcement-track {
  animation: gd-announcement-marquee var(--gd-announcement-duration, 28s) linear infinite;
}
.gd-announcement-bar--static .gd-announcement-track,
.gd-announcement-bar--scroll-mobile .gd-announcement-track {
  width: 100%;
  min-width: 0;
  justify-content: center;
  transform: none;
  animation: none;
  will-change: auto;
}
.gd-announcement-set {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: 50%;
}
.gd-announcement-bar--static .gd-announcement-set,
.gd-announcement-bar--scroll-mobile .gd-announcement-set {
  min-width: 0;
  width: 100%;
  justify-content: center;
  flex-wrap: wrap;
  row-gap: 2px;
}
.gd-announcement-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  padding: 0 clamp(22px, 4vw, 52px);
  min-height: var(--gd-announcement-h);
  color: inherit;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .025em;
}
.gd-announcement-bar--static .gd-announcement-item,
.gd-announcement-bar--scroll-mobile .gd-announcement-item {
  padding-inline: clamp(14px, 2.4vw, 28px);
}
.gd-announcement-item::before {
  content: "";
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--gd-accent);
  box-shadow: 0 0 14px color-mix(in srgb, var(--gd-accent) 72%, transparent);
}
.gd-announcement-bar--bg-none .gd-announcement-item::before {
  box-shadow: none;
}
.gd-announcement-bar:hover .gd-announcement-track,
.gd-announcement-link:focus-visible .gd-announcement-track {
  animation-play-state: paused;
}
@keyframes gd-announcement-marquee {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}
body.gd-no-motion .gd-announcement-bar--scroll .gd-announcement-track,
html.gd-theme-motion-off .gd-announcement-bar--scroll .gd-announcement-track {
  animation-name: gd-announcement-marquee;
  animation-duration: var(--gd-announcement-duration, 28s);
  animation-timing-function: linear;
  animation-delay: 0s;
  animation-iteration-count: infinite;
  animation-fill-mode: none;
  animation-play-state: running;
  transform: translate3d(0,0,0);
}
body.gd-no-motion .gd-announcement-bar:hover .gd-announcement-track,
html.gd-theme-motion-off .gd-announcement-bar:hover .gd-announcement-track,
body.gd-no-motion .gd-announcement-link:focus-visible .gd-announcement-track,
html.gd-theme-motion-off .gd-announcement-link:focus-visible .gd-announcement-track {
  animation-play-state: paused;
}
.gd-announcement-bar--static .gd-announcement-set[aria-hidden="true"],
.gd-announcement-bar--scroll-mobile .gd-announcement-set[aria-hidden="true"] {
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  .gd-announcement-track,
  body.gd-no-motion .gd-announcement-bar--scroll .gd-announcement-track,
  html.gd-theme-motion-off .gd-announcement-bar--scroll .gd-announcement-track,
  body.gd-no-motion .gd-announcement-bar--scroll-mobile .gd-announcement-track,
  html.gd-theme-motion-off .gd-announcement-bar--scroll-mobile .gd-announcement-track {
    animation: none;
    transform: none;
    will-change: auto;
  }
  .gd-announcement-set[aria-hidden="true"] {
    display: none;
  }
}
@media (max-width: 782px) {
  :root {
    --gd-announcement-h: 38px;
  }
  .gd-announcement-bar--scroll-mobile .gd-announcement-track {
    width: max-content;
    min-width: 200%;
    justify-content: flex-start;
    transform: translate3d(0,0,0);
    animation: gd-announcement-marquee var(--gd-announcement-duration, 28s) linear infinite;
    will-change: transform;
  }
  body.gd-no-motion .gd-announcement-bar--scroll-mobile .gd-announcement-track,
  html.gd-theme-motion-off .gd-announcement-bar--scroll-mobile .gd-announcement-track {
    animation-name: gd-announcement-marquee;
    animation-duration: var(--gd-announcement-duration, 28s);
    animation-timing-function: linear;
    animation-delay: 0s;
    animation-iteration-count: infinite;
    animation-fill-mode: none;
    animation-play-state: running;
    transform: translate3d(0,0,0);
  }
  .gd-announcement-bar--scroll-mobile .gd-announcement-set {
    min-width: 50%;
    width: auto;
    justify-content: flex-start;
    flex-wrap: nowrap;
    row-gap: 0;
  }
  .gd-announcement-bar--scroll-mobile .gd-announcement-set[aria-hidden="true"] {
    display: flex;
  }
  .gd-announcement-bar--bgspan-contained,
  .gd-announcement-bar--content-contained .gd-announcement-inner {
    width: min(100% - 18px, var(--gd-shell));
  }
  .gd-announcement-bar--bgspan-contained {
    border-radius: min(var(--gd-radius-card, 18px), 18px);
  }
  .gd-announcement-bar--bgspan-contained.gd-announcement-bar--content-contained .gd-announcement-inner {
    width: 100%;
  }
  .gd-announcement-item {
    padding-inline: 28px;
    font-size: 12px;
  }
  .gd-announcement-bar--static .gd-announcement-item,
  .gd-announcement-bar--scroll-mobile .gd-announcement-item {
    padding-inline: 14px;
  }
}


/* 16.28.70 mobile settings parity pass.
   Mobile breakpoints may adapt layout for readability, but they must not fake Customizer controls.
   Hero dots position/offset, hero density, hero radius, and homepage gradient mode remain authoritative on phones. */
@media (max-width: 900px) {
  body.home .gd-home-dots {
    z-index: 24;
    max-width: min(calc(100% - 28px), 336px);
  }

  body.gd-hero-dots-bottom-right.home .gd-home-dots {
    right: var(--gd-home-dots-side-offset);
    bottom: var(--gd-home-dots-vertical-offset);
    left: auto;
    top: auto;
    transform: none;
    justify-content: flex-end;
  }

  body.gd-hero-dots-top-right.home .gd-home-dots {
    right: var(--gd-home-dots-side-offset);
    top: var(--gd-home-dots-vertical-offset);
    left: auto;
    bottom: auto;
    transform: none;
    justify-content: flex-end;
  }

  body.gd-hero-dots-bottom-left.home .gd-home-dots {
    left: var(--gd-home-dots-side-offset);
    bottom: var(--gd-home-dots-vertical-offset);
    right: auto;
    top: auto;
    transform: none;
    justify-content: flex-start;
  }

  body.gd-hero-dots-top-left.home .gd-home-dots {
    left: var(--gd-home-dots-side-offset);
    top: var(--gd-home-dots-vertical-offset);
    right: auto;
    bottom: auto;
    transform: none;
    justify-content: flex-start;
  }

  body.gd-hero-dots-bottom-center.home .gd-home-dots {
    left: 50%;
    right: auto;
    bottom: var(--gd-home-dots-vertical-offset);
    top: auto;
    transform: translateX(-50%);
    justify-content: center;
  }

  body.gd-hero-dots-top-center.home .gd-home-dots {
    left: 50%;
    right: auto;
    top: var(--gd-home-dots-vertical-offset);
    bottom: auto;
    transform: translateX(-50%);
    justify-content: center;
  }

  body.gd-hero-dots-bottom-right.home .gd-home-slider--deal-rail .gd-home-dots,
  body.gd-hero-dots-bottom-right.home .gd-home-slider--cover-flow .gd-home-dots,
  body.gd-hero-dots-bottom-right.home .gd-home-slider--store-rail .gd-home-dots,
  body.gd-hero-dots-bottom-right.home .gd-home-slider--media-showcase .gd-home-dots,
  body.gd-hero-dots-bottom-right.home .gd-home-slider--poster-split .gd-home-dots,
  body.gd-hero-dots-bottom-right.home .gd-home-slider--spotlight .gd-home-dots {
    right: var(--gd-home-dots-side-offset);
    bottom: var(--gd-home-dots-vertical-offset);
    left: auto;
    top: auto;
    transform: none;
    justify-content: flex-end;
  }

  body.gd-hero-dots-top-right.home .gd-home-slider--deal-rail .gd-home-dots,
  body.gd-hero-dots-top-right.home .gd-home-slider--cover-flow .gd-home-dots,
  body.gd-hero-dots-top-right.home .gd-home-slider--store-rail .gd-home-dots,
  body.gd-hero-dots-top-right.home .gd-home-slider--media-showcase .gd-home-dots,
  body.gd-hero-dots-top-right.home .gd-home-slider--poster-split .gd-home-dots,
  body.gd-hero-dots-top-right.home .gd-home-slider--spotlight .gd-home-dots {
    right: var(--gd-home-dots-side-offset);
    top: var(--gd-home-dots-vertical-offset);
    left: auto;
    bottom: auto;
    transform: none;
    justify-content: flex-end;
  }

  body.gd-hero-dots-bottom-left.home .gd-home-slider--deal-rail .gd-home-dots,
  body.gd-hero-dots-bottom-left.home .gd-home-slider--cover-flow .gd-home-dots,
  body.gd-hero-dots-bottom-left.home .gd-home-slider--store-rail .gd-home-dots,
  body.gd-hero-dots-bottom-left.home .gd-home-slider--media-showcase .gd-home-dots,
  body.gd-hero-dots-bottom-left.home .gd-home-slider--poster-split .gd-home-dots,
  body.gd-hero-dots-bottom-left.home .gd-home-slider--spotlight .gd-home-dots {
    left: var(--gd-home-dots-side-offset);
    bottom: var(--gd-home-dots-vertical-offset);
    right: auto;
    top: auto;
    transform: none;
    justify-content: flex-start;
  }

  body.gd-hero-dots-top-left.home .gd-home-slider--deal-rail .gd-home-dots,
  body.gd-hero-dots-top-left.home .gd-home-slider--cover-flow .gd-home-dots,
  body.gd-hero-dots-top-left.home .gd-home-slider--store-rail .gd-home-dots,
  body.gd-hero-dots-top-left.home .gd-home-slider--media-showcase .gd-home-dots,
  body.gd-hero-dots-top-left.home .gd-home-slider--poster-split .gd-home-dots,
  body.gd-hero-dots-top-left.home .gd-home-slider--spotlight .gd-home-dots {
    left: var(--gd-home-dots-side-offset);
    top: var(--gd-home-dots-vertical-offset);
    right: auto;
    bottom: auto;
    transform: none;
    justify-content: flex-start;
  }

  body.gd-hero-dots-bottom-center.home .gd-home-slider--deal-rail .gd-home-dots,
  body.gd-hero-dots-bottom-center.home .gd-home-slider--cover-flow .gd-home-dots,
  body.gd-hero-dots-bottom-center.home .gd-home-slider--store-rail .gd-home-dots,
  body.gd-hero-dots-bottom-center.home .gd-home-slider--media-showcase .gd-home-dots,
  body.gd-hero-dots-bottom-center.home .gd-home-slider--poster-split .gd-home-dots,
  body.gd-hero-dots-bottom-center.home .gd-home-slider--spotlight .gd-home-dots {
    left: 50%;
    right: auto;
    bottom: var(--gd-home-dots-vertical-offset);
    top: auto;
    transform: translateX(-50%);
    justify-content: center;
  }

  body.gd-hero-dots-top-center.home .gd-home-slider--deal-rail .gd-home-dots,
  body.gd-hero-dots-top-center.home .gd-home-slider--cover-flow .gd-home-dots,
  body.gd-hero-dots-top-center.home .gd-home-slider--store-rail .gd-home-dots,
  body.gd-hero-dots-top-center.home .gd-home-slider--media-showcase .gd-home-dots,
  body.gd-hero-dots-top-center.home .gd-home-slider--poster-split .gd-home-dots,
  body.gd-hero-dots-top-center.home .gd-home-slider--spotlight .gd-home-dots {
    left: 50%;
    right: auto;
    top: var(--gd-home-dots-vertical-offset);
    bottom: auto;
    transform: translateX(-50%);
    justify-content: center;
  }

  body.gd-hero-dots-bottom-right.home .gd-home-slide,
  body.gd-hero-dots-bottom-left.home .gd-home-slide,
  body.gd-hero-dots-bottom-center.home .gd-home-slide {
    padding-bottom: max(clamp(58px, 13vw, 78px), calc(var(--gd-home-dots-vertical-offset) + 52px));
  }

  body.gd-hero-dots-top-right.home .gd-home-slide,
  body.gd-hero-dots-top-left.home .gd-home-slide,
  body.gd-hero-dots-top-center.home .gd-home-slide {
    padding-top: max(clamp(58px, 13vw, 78px), calc(var(--gd-home-dots-vertical-offset) + 52px));
  }

  body.gd-hero-density-compact.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-compact.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(380px, 82vw, 520px);
    padding-inline: clamp(20px, 5vw, 34px);
  }

  body.gd-hero-density-cinematic.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-cinematic.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(430px, 92vw, 600px);
  }

  body.gd-hero-density-editorial.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-editorial.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(480px, 100vw, 660px);
    padding-inline: clamp(26px, 7vw, 48px);
  }

  body.home .gd-store-hero .gd-featured-hero::before,
  body.home .gd-store-hero .gd-home-slide::before {
    background:
      var(--gd-home-hero-bg-gradient, linear-gradient(90deg, rgba(5,8,18,.80) 0%, rgba(8,12,28,.56) 45%, rgba(8,12,28,.24) 100%)),
      radial-gradient(circle at 76% 20%, color-mix(in srgb, var(--gd-accent) 10%, transparent), transparent 22rem);
  }

  body.home.gd-home-gradient-none .gd-store-hero .gd-featured-hero::before,
  body.home.gd-home-gradient-none .gd-store-hero .gd-home-slide::before {
    background: none;
    opacity: 0;
  }
}

@media (max-width: 640px) {
  body.home .gd-home-dots {
    max-width: min(calc(100% - 20px), 300px);
  }

  body.home .gd-home-dots button {
    flex: 0 0 auto;
    width: 24px;
    min-width: 24px;
    height: 36px;
    min-height: 36px;
  }

  body.home .gd-home-dots button::before {
    left: 3px;
    right: 3px;
    top: 15px;
    height: 6px;
  }

  body.gd-hero-density-compact.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-compact.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(350px, 104vw, 470px);
  }

  body.gd-hero-density-cinematic.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-cinematic.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(390px, 118vw, 520px);
  }

  body.gd-hero-density-editorial.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-editorial.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(430px, 132vw, 570px);
  }

  body.gd-hero-dots-bottom-right.home .gd-home-slide,
  body.gd-hero-dots-bottom-left.home .gd-home-slide,
  body.gd-hero-dots-bottom-center.home .gd-home-slide {
    padding-bottom: max(56px, calc(var(--gd-home-dots-vertical-offset) + 44px));
  }

  body.gd-hero-dots-top-right.home .gd-home-slide,
  body.gd-hero-dots-top-left.home .gd-home-slide,
  body.gd-hero-dots-top-center.home .gd-home-slide {
    padding-top: max(56px, calc(var(--gd-home-dots-vertical-offset) + 44px));
  }

  body.gd-hero-dots-bottom-right.home .gd-home-dots,
  body.gd-hero-dots-top-right.home .gd-home-dots {
    right: min(var(--gd-home-dots-side-offset), 44px);
  }

  body.gd-hero-dots-bottom-left.home .gd-home-dots,
  body.gd-hero-dots-top-left.home .gd-home-dots {
    left: min(var(--gd-home-dots-side-offset), 44px);
  }
}

@media (max-width: 420px) {
  body.gd-hero-density-compact.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-compact.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(330px, 112vw, 450px);
  }

  body.gd-hero-density-cinematic.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-cinematic.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(370px, 124vw, 490px);
  }

  body.gd-hero-density-editorial.home .gd-store-hero .gd-home-slide,
  body.gd-hero-density-editorial.home .gd-store-hero .gd-featured-hero {
    min-height: clamp(410px, 136vw, 540px);
  }
}

/* 16.28.77 announcement/admin-bar and sticky comment repair.
   The announcement bar sits in the document flow below the fixed header. When
   the WordPress admin bar is present, use the measured header bottom instead of
   a plain header height so logged-in preview does not create a false gap.
   The ticker uses four mirrored copies and moves half the track for a seamless
   loop. The comment form returns to native desktop sticky without the old JS
   transform assist that caused shaking. */
body.gd-header-fixed .gd-announcement-bar--after-header.gd-announcement-bar--bgspan-full {
  margin-top: var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-header-h)));
}
body.gd-header-fixed .gd-announcement-bar--after-header.gd-announcement-bar--bgspan-contained {
  margin-top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-header-h))) + 10px);
  margin-bottom: 10px;
}
body.gd-header-fixed .gd-announcement-bar + .gd-site-main,
body.gd-header-fixed .gd-breadcrumbs-wrap + .gd-announcement-bar + .gd-site-main,
body.gd-game-detail.gd-header-fixed .gd-announcement-bar + .gd-site-main {
  padding-top: 0;
}
.gd-announcement-bar--scroll .gd-announcement-track {
  display: flex;
  width: max-content;
  min-width: 200vw;
  justify-content: flex-start;
  animation: gd-announcement-marquee var(--gd-announcement-duration, 28s) linear infinite;
  transform: translate3d(0,0,0);
  will-change: transform;
}
.gd-announcement-bar--scroll .gd-announcement-set {
  flex: 0 0 auto;
  min-width: 50vw;
  width: auto;
  justify-content: flex-start;
  flex-wrap: nowrap;
  row-gap: 0;
}
.gd-announcement-bar--scroll .gd-announcement-set[aria-hidden="true"] {
  display: flex;
}
.gd-announcement-bar--scroll-mobile .gd-announcement-set[aria-hidden="true"] {
  display: none;
}
@keyframes gd-announcement-marquee {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}
body.gd-no-motion .gd-announcement-bar--scroll .gd-announcement-track,
html.gd-theme-motion-off .gd-announcement-bar--scroll .gd-announcement-track {
  animation-name: gd-announcement-marquee;
  animation-duration: var(--gd-announcement-duration, 28s);
  animation-timing-function: linear;
  animation-delay: 0s;
  animation-iteration-count: infinite;
  animation-fill-mode: none;
  animation-play-state: running;
  transform: translate3d(0,0,0);
}
@media (max-width: 782px) {
  .gd-announcement-bar--scroll-mobile .gd-announcement-track {
    display: flex;
    width: max-content;
    min-width: 200vw;
    justify-content: flex-start;
    animation: gd-announcement-marquee var(--gd-announcement-duration, 28s) linear infinite;
    transform: translate3d(0,0,0);
    will-change: transform;
  }
  .gd-announcement-bar--scroll-mobile .gd-announcement-set {
    flex: 0 0 auto;
    min-width: 50vw;
    width: auto;
    justify-content: flex-start;
    flex-wrap: nowrap;
    row-gap: 0;
  }
  .gd-announcement-bar--scroll-mobile .gd-announcement-set[aria-hidden="true"] {
    display: flex;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gd-announcement-bar--scroll .gd-announcement-track,
  .gd-announcement-bar--scroll-mobile .gd-announcement-track {
    animation: none;
    transform: none;
    will-change: auto;
  }
  .gd-announcement-set[aria-hidden="true"] {
    display: none;
  }
}
@media (min-width: 981px) {
  body.gd-comment-form-sticky-on .gd-comments-section,
  body.gd-comment-form-sticky-on .gd-comments-section .gd-shell,
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comments-grid {
    overflow: visible;
    contain: none;
  }
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comments-grid,
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comments-grid {
    align-items: start;
    position: relative;
  }
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel {
    position: sticky;
    top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
    left: auto;
    width: auto;
    align-self: start;
    height: max-content;
    max-height: none;
    overflow: visible;
    transform: none;
    will-change: auto;
    overscroll-behavior: auto;
  }
  body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section .gd-comment-form-panel,
  body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section--page .gd-comment-form-panel,
  body.admin-bar.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section--post .gd-comment-form-panel,
  body.admin-bar.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on.gd-header-fixed .gd-comments-section--page .gd-comment-form-panel {
    top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
  }
}
@media (max-width: 980px) {
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel {
    position: static;
    top: auto;
    left: auto;
    width: auto;
    height: auto;
    transform: none;
    will-change: auto;
  }
}

/* v16.28.79 Typography & card-title settings parity.
   Keep Customizer typography controls authoritative on desktop, tablet, and phone.
   The responsive clamps only protect layout; the Customizer variables remain the cap/source. */
:root {
  --gd-card-title-line-height: 1.08;
}

body .gd-featured-hero .gd-hero-title,
body .gd-home-slide .gd-hero-title,
body.home .gd-store-hero .gd-hero-copy .gd-hero-title,
body.home .gd-store-hero .gd-hero-copy h2.gd-hero-title,
body.home .gd-home-slider--spotlight .gd-hero-title,
body.home .gd-home-slider--store-rail .gd-hero-title,
body.home .gd-home-slider--poster-split .gd-hero-title,
body.home .gd-home-slider--cover-flow .gd-hero-title,
body.home .gd-home-slider--media-showcase .gd-hero-title,
body.home .gd-home-slider--deal-rail .gd-hero-title {
  font-size: min(clamp(30px, 4.3vw, 58px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
}

body .gd-section-head h2,
body .gd-media-head h2,
body .gd-related-section .gd-section-head h2,
body .gd-home-section .gd-section-head h2 {
  font-size: clamp(28px, 3.3vw, calc(var(--gd-section-title-max) * var(--gd-heading-scale)));
}

body .gd-archive-hero h1,
body .gd-page-header h1,
body .gd-page-titlebar h1,
body .gd-collection-archive-head h1 {
  font-size: clamp(38px, 5vw, calc(var(--gd-archive-title-max) * var(--gd-heading-scale)));
}

body .gd-single-steam .gd-app-titlebar h1,
body .gd-app-titlebar h1,
body .gd-post-hero h1 {
  font-size: clamp(34px, 5vw, calc(var(--gd-single-title-max) * var(--gd-heading-scale)));
}

body .gd-game-card .gd-card-title,
body .gd-post-card .gd-card-title,
body .gd-related-store-grid .gd-card-title,
body .gd-related-grid-static .gd-card-title,
body .gd-site-main .gd-related-store-grid .gd-card-title,
body .gd-site-main .gd-related-grid-static .gd-card-title {
  min-height: calc(var(--gd-card-title-line-height) * 1em);
  font-size: var(--gd-card-title-size);
  line-height: var(--gd-card-title-line-height);
}

body .gd-game-card .gd-card-title a,
body .gd-post-card .gd-card-title a,
body .gd-related-store-grid .gd-card-title a,
body .gd-related-grid-static .gd-card-title a {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
}

body .gd-related-store-grid .gd-card-title,
body .gd-related-grid-static .gd-card-title {
  letter-spacing: -.02em;
}

@media (max-width: 1024px) {
  body .gd-featured-hero .gd-hero-title,
  body .gd-home-slide .gd-hero-title,
  body .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy h2.gd-hero-title,
  body.home .gd-home-slider--spotlight .gd-hero-title,
  body.home .gd-home-slider--store-rail .gd-hero-title,
  body.home .gd-home-slider--poster-split .gd-hero-title,
  body.home .gd-home-slider--cover-flow .gd-hero-title,
  body.home .gd-home-slider--media-showcase .gd-hero-title,
  body.home .gd-home-slider--deal-rail .gd-hero-title {
    font-size: min(clamp(32px, 6.7vw, 58px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
  }
}

@media (max-width: 640px) {
  body .gd-featured-hero .gd-hero-title,
  body .gd-home-slide .gd-hero-title,
  body .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy h2.gd-hero-title,
  body.home .gd-home-slider--spotlight .gd-hero-title,
  body.home .gd-home-slider--store-rail .gd-hero-title,
  body.home .gd-home-slider--poster-split .gd-hero-title,
  body.home .gd-home-slider--cover-flow .gd-hero-title,
  body.home .gd-home-slider--media-showcase .gd-hero-title,
  body.home .gd-home-slider--deal-rail .gd-hero-title {
    font-size: min(clamp(27px, 9vw, 42px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
  }

  body .gd-section-head h2,
  body .gd-media-head h2,
  body .gd-related-section .gd-section-head h2,
  body .gd-home-section .gd-section-head h2 {
    font-size: min(clamp(24px, 7vw, 34px), calc(var(--gd-section-title-max) * var(--gd-heading-scale)));
  }

  body .gd-archive-hero h1,
  body .gd-page-header h1,
  body .gd-page-titlebar h1,
  body .gd-collection-archive-head h1 {
    font-size: min(clamp(30px, 9vw, 42px), calc(var(--gd-archive-title-max) * var(--gd-heading-scale)));
  }

  body .gd-single-steam .gd-app-titlebar h1,
  body .gd-app-titlebar h1,
  body .gd-post-hero h1 {
    font-size: min(clamp(30px, 9vw, 42px), calc(var(--gd-single-title-max) * var(--gd-heading-scale)));
  }

  body .gd-game-card .gd-card-title,
  body .gd-post-card .gd-card-title,
  body .gd-related-store-grid .gd-card-title,
  body .gd-related-grid-static .gd-card-title {
    line-height: 1.06;
  }
}

@media (max-width: 480px) {
  body .gd-featured-hero .gd-hero-title,
  body .gd-home-slide .gd-hero-title,
  body .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy .gd-hero-title,
  body.home .gd-store-hero .gd-hero-copy h2.gd-hero-title,
  body.home .gd-home-slider--spotlight .gd-hero-title,
  body.home .gd-home-slider--store-rail .gd-hero-title,
  body.home .gd-home-slider--poster-split .gd-hero-title,
  body.home .gd-home-slider--cover-flow .gd-hero-title,
  body.home .gd-home-slider--media-showcase .gd-hero-title,
  body.home .gd-home-slider--deal-rail .gd-hero-title {
    font-size: min(clamp(26px, 10vw, 38px), calc(var(--gd-hero-title-max) * var(--gd-heading-scale)));
  }

  body .gd-archive-hero h1,
  body .gd-page-header h1,
  body .gd-page-titlebar h1,
  body .gd-collection-archive-head h1 {
    font-size: min(clamp(28px, 10vw, 40px), calc(var(--gd-archive-title-max) * var(--gd-heading-scale)));
  }

  body .gd-single-steam .gd-app-titlebar h1,
  body .gd-app-titlebar h1,
  body .gd-post-hero h1 {
    font-size: min(clamp(28px, 10vw, 40px), calc(var(--gd-single-title-max) * var(--gd-heading-scale)));
  }
}



/* v16.28.79 Card media meta overlay.
 * Year and size now live on the image and reveal on hover/focus so cards stay organized.
 */
.gd-game-card .gd-card-media {
  position: relative;
}

.gd-game-card .gd-card-media-meta {
  position: absolute;
  z-index: 5;
  top: 10px;
  right: 10px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  max-width: calc(100% - 20px);
  opacity: 0;
  transform: translateY(-5px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}

.gd-game-card:hover .gd-card-media-meta,
.gd-game-card:focus-within .gd-card-media-meta {
  opacity: 1;
  transform: translateY(0);
}

.gd-game-card .gd-card-media-meta .gd-card-chip {
  min-height: 24px;
  padding: 5px 8px;
  border-color: rgba(255,255,255,.18);
  background: rgba(3,8,18,.76);
  color: #f8fbff;
  box-shadow: 0 10px 24px rgba(0,0,0,.30);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.gd-game-card .gd-card-media-meta .gd-card-size {
  color: rgba(248,250,252,.84);
}

body.gd-no-motion .gd-game-card .gd-card-media-meta {
  transition: none;
}

@media (hover: none) {
  .gd-game-card:focus-within .gd-card-media-meta,
  .gd-game-card:active .gd-card-media-meta {
    opacity: 1;
    transform: translateY(0);
  }
}


/* v16.28.80 final announcement + comment sticky contract.
   The topbar uses the proven two-set marquee from v16.28.67, with the newer
   scroll-mode setting as the source of truth. The comment form uses only native
   CSS sticky on desktop, avoiding transform/scroll JS that caused shake. */
.gd-announcement-bar--scroll .gd-announcement-track,
html.gd-prepaint .gd-announcement-bar--scroll .gd-announcement-track,
body:not(.gd-page-ready) .gd-announcement-bar--scroll .gd-announcement-track,
body.gd-no-motion .gd-announcement-bar--scroll .gd-announcement-track,
html.gd-theme-motion-off .gd-announcement-bar--scroll .gd-announcement-track {
  display: flex;
  align-items: center;
  width: max-content;
  min-width: 200%;
  justify-content: flex-start;
  transform: translate3d(0,0,0);
  animation-name: gd-announcement-marquee-final;
  animation-duration: var(--gd-announcement-duration, 28s);
  animation-timing-function: linear;
  animation-delay: 0s;
  animation-iteration-count: infinite;
  animation-fill-mode: none;
  animation-play-state: running;
  will-change: transform;
}
.gd-announcement-bar--scroll .gd-announcement-set {
  display: flex;
  flex: 0 0 auto;
  min-width: 50%;
  width: auto;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  row-gap: 0;
}
.gd-announcement-bar--scroll .gd-announcement-set[aria-hidden="true"] {
  display: flex;
}
.gd-announcement-bar--static .gd-announcement-track,
.gd-announcement-bar--scroll-mobile .gd-announcement-track {
  width: 100%;
  min-width: 0;
  justify-content: center;
  transform: none;
  animation: none;
  will-change: auto;
}
.gd-announcement-bar--static .gd-announcement-set,
.gd-announcement-bar--scroll-mobile .gd-announcement-set {
  min-width: 0;
  width: 100%;
  justify-content: center;
  flex-wrap: wrap;
  row-gap: 2px;
}
.gd-announcement-bar--static .gd-announcement-set[aria-hidden="true"],
.gd-announcement-bar--scroll-mobile .gd-announcement-set[aria-hidden="true"] {
  display: none;
}
.gd-announcement-bar:hover .gd-announcement-track,
.gd-announcement-link:focus-visible .gd-announcement-track,
body.gd-no-motion .gd-announcement-bar:hover .gd-announcement-track,
html.gd-theme-motion-off .gd-announcement-bar:hover .gd-announcement-track,
body.gd-no-motion .gd-announcement-link:focus-visible .gd-announcement-track,
html.gd-theme-motion-off .gd-announcement-link:focus-visible .gd-announcement-track {
  animation-play-state: paused;
}
@keyframes gd-announcement-marquee-final {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}
@media (max-width: 782px) {
  .gd-announcement-bar--scroll-mobile .gd-announcement-track,
  html.gd-prepaint .gd-announcement-bar--scroll-mobile .gd-announcement-track,
  body:not(.gd-page-ready) .gd-announcement-bar--scroll-mobile .gd-announcement-track,
  body.gd-no-motion .gd-announcement-bar--scroll-mobile .gd-announcement-track,
  html.gd-theme-motion-off .gd-announcement-bar--scroll-mobile .gd-announcement-track {
    display: flex;
    align-items: center;
    width: max-content;
    min-width: 200%;
    justify-content: flex-start;
    transform: translate3d(0,0,0);
    animation-name: gd-announcement-marquee-final;
    animation-duration: var(--gd-announcement-duration, 28s);
    animation-timing-function: linear;
    animation-delay: 0s;
    animation-iteration-count: infinite;
    animation-fill-mode: none;
    animation-play-state: running;
    will-change: transform;
  }
  .gd-announcement-bar--scroll-mobile .gd-announcement-set {
    display: flex;
    flex: 0 0 auto;
    min-width: 50%;
    width: auto;
    justify-content: flex-start;
    flex-wrap: nowrap;
    row-gap: 0;
  }
  .gd-announcement-bar--scroll-mobile .gd-announcement-set[aria-hidden="true"] {
    display: flex;
  }
}
@media (min-width: 981px) {
  body.gd-comment-form-sticky-on .gd-page-section,
  body.gd-comment-form-sticky-on .gd-page-shell,
  body.gd-comment-form-sticky-on .gd-comments-section,
  body.gd-comment-form-sticky-on .gd-comments-section > .gd-shell,
  body.gd-comment-form-sticky-on .gd-comments-section .gd-shell,
  body.gd-comment-form-sticky-on .gd-comments-grid {
    overflow: visible;
    contain: none;
    transform: none;
  }
  body.gd-comment-form-sticky-on .gd-comments-grid {
    align-items: start;
    position: relative;
  }
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel {
    position: sticky;
    top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
    align-self: start;
    height: max-content;
    max-height: calc(100vh - var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) - 36px);
    overflow: auto;
    overscroll-behavior: contain;
    transform: none;
    will-change: auto;
    left: auto;
    width: auto;
  }
  body.admin-bar.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
  body.admin-bar.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.admin-bar.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel {
    top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
    max-height: calc(100vh - var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) - 36px);
  }
}
@media (max-width: 980px) {
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
    transform: none;
    will-change: auto;
  }
}

/* v16.28.81 card-density baseline; v16.28.82 adds form placement fallback.
   Card density now has visible, consistent effects across archive, homepage,
   post cards, and related game cards without fighting the image-ratio setting. */
body.gd-card-density-compact {
  --gd-card-density-grid-gap: clamp(12px, 1.35vw, 18px);
  --gd-card-density-pad: 12px;
  --gd-card-density-gap: 7px;
  --gd-card-density-media-margin: 6px 6px 0;
  --gd-card-density-excerpt-lines: 2;
  --gd-card-density-excerpt-min: 0px;
  --gd-card-density-excerpt-size: 13.25px;
  --gd-card-density-badge-min: 23px;
  --gd-card-density-footer-min: 34px;
  --gd-card-density-footer-pad: 9px;
  --gd-card-title-line-height: 1.02;
  --gd-related-density-min: 220px;
}
body.gd-card-density-comfortable {
  --gd-card-density-grid-gap: clamp(18px, 2.2vw, 28px);
  --gd-card-density-pad: clamp(15px, 1.6vw, 20px);
  --gd-card-density-gap: 11px;
  --gd-card-density-media-margin: 0;
  --gd-card-density-excerpt-lines: 3;
  --gd-card-density-excerpt-min: 4.2em;
  --gd-card-density-excerpt-size: 14.5px;
  --gd-card-density-badge-min: 26px;
  --gd-card-density-footer-min: 42px;
  --gd-card-density-footer-pad: 12px;
  --gd-card-title-line-height: 1.08;
  --gd-related-density-min: 260px;
}
body.gd-card-density-showcase {
  --gd-card-density-grid-gap: clamp(22px, 2.8vw, 34px);
  --gd-card-density-pad: clamp(19px, 2vw, 24px);
  --gd-card-density-gap: 14px;
  --gd-card-density-media-margin: 0;
  --gd-card-density-excerpt-lines: 4;
  --gd-card-density-excerpt-min: 5.75em;
  --gd-card-density-excerpt-size: 15px;
  --gd-card-density-badge-min: 28px;
  --gd-card-density-footer-min: 46px;
  --gd-card-density-footer-pad: 14px;
  --gd-card-title-line-height: 1.1;
  --gd-related-density-min: 300px;
}
body.gd-card-density-compact .gd-game-grid:not(.gd-related-grid),
body.gd-card-density-compact .gd-related-store-grid,
body.gd-card-density-compact .gd-related-grid-static,
body.gd-card-density-comfortable .gd-game-grid:not(.gd-related-grid),
body.gd-card-density-comfortable .gd-related-store-grid,
body.gd-card-density-comfortable .gd-related-grid-static,
body.gd-card-density-showcase .gd-game-grid:not(.gd-related-grid),
body.gd-card-density-showcase .gd-related-store-grid,
body.gd-card-density-showcase .gd-related-grid-static {
  gap: var(--gd-card-density-grid-gap);
}
body.gd-card-density-compact .gd-game-grid:not(.gd-related-grid),
body.gd-card-density-comfortable .gd-game-grid:not(.gd-related-grid),
body.gd-card-density-showcase .gd-game-grid:not(.gd-related-grid) {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--gd-card-min)), 1fr));
}
body.gd-card-density-compact .gd-related-store-grid,
body.gd-card-density-compact .gd-related-grid-static,
body.gd-card-density-comfortable .gd-related-store-grid,
body.gd-card-density-comfortable .gd-related-grid-static,
body.gd-card-density-showcase .gd-related-store-grid,
body.gd-card-density-showcase .gd-related-grid-static {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--gd-related-density-min)), 1fr));
}
body.gd-card-density-compact .gd-game-card .gd-card-media,
body.gd-card-density-compact .gd-post-card .gd-card-media,
body.gd-card-density-comfortable .gd-game-card .gd-card-media,
body.gd-card-density-comfortable .gd-post-card .gd-card-media,
body.gd-card-density-showcase .gd-game-card .gd-card-media,
body.gd-card-density-showcase .gd-post-card .gd-card-media {
  margin: var(--gd-card-density-media-margin);
  aspect-ratio: var(--gd-card-image-ratio);
}
body.gd-card-density-compact .gd-game-card .gd-card-body,
body.gd-card-density-compact .gd-post-card .gd-card-body,
body.gd-card-density-comfortable .gd-game-card .gd-card-body,
body.gd-card-density-comfortable .gd-post-card .gd-card-body,
body.gd-card-density-showcase .gd-game-card .gd-card-body,
body.gd-card-density-showcase .gd-post-card .gd-card-body {
  gap: var(--gd-card-density-gap);
  padding: var(--gd-card-density-pad);
}
body.gd-card-density-compact .gd-card-excerpt,
body.gd-card-density-compact .gd-card-body p,
body.gd-card-density-comfortable .gd-card-excerpt,
body.gd-card-density-comfortable .gd-card-body p,
body.gd-card-density-showcase .gd-card-excerpt,
body.gd-card-density-showcase .gd-card-body p {
  min-height: var(--gd-card-density-excerpt-min);
  font-size: var(--gd-card-density-excerpt-size);
  -webkit-line-clamp: var(--gd-card-density-excerpt-lines);
}
body.gd-card-density-compact .gd-card-badges,
body.gd-card-density-comfortable .gd-card-badges,
body.gd-card-density-showcase .gd-card-badges {
  min-height: var(--gd-card-density-badge-min);
}
body.gd-card-density-compact .gd-card-badges .gd-badge,
body.gd-card-density-comfortable .gd-card-badges .gd-badge,
body.gd-card-density-showcase .gd-card-badges .gd-badge {
  min-height: var(--gd-card-density-badge-min);
}
body.gd-card-density-compact .gd-card-footer,
body.gd-card-density-comfortable .gd-card-footer,
body.gd-card-density-showcase .gd-card-footer {
  min-height: var(--gd-card-density-footer-min);
  padding-top: var(--gd-card-density-footer-pad);
}
body.gd-card-density-compact .gd-card-title,
body.gd-card-density-comfortable .gd-card-title,
body.gd-card-density-showcase .gd-card-title {
  line-height: var(--gd-card-title-line-height);
}
body.gd-card-density-compact .gd-card-media-meta .gd-card-chip {
  min-height: 22px;
  padding: 4px 7px;
  font-size: 10px;
}
body.gd-card-density-showcase .gd-card-media-meta .gd-card-chip {
  min-height: 27px;
  padding: 6px 10px;
}
@media (max-width: 640px) {
  body.gd-card-density-showcase {
    --gd-card-density-excerpt-lines: 3;
    --gd-card-density-excerpt-min: 0px;
  }
  body.gd-card-density-comfortable {
    --gd-card-density-excerpt-min: 0px;
  }
}

/* v16.28.81 sticky baseline; v16.28.82 prefers configurable form placement when sticky is unreliable.
   The sticky option now wins over old page-specific transform fallback rules and
   avoids ancestors that were accidentally becoming sticky scroll containers. */
@media (min-width: 981px) {
  body.gd-comment-form-sticky-on .gd-site-main {
    overflow-y: visible;
    overflow-x: clip;
  }
  body.gd-comment-form-sticky-on .gd-page-section,
  body.gd-comment-form-sticky-on .gd-page-shell,
  body.gd-comment-form-sticky-on .gd-comments-section,
  body.gd-comment-form-sticky-on .gd-comments-section > .gd-shell,
  body.gd-comment-form-sticky-on .gd-comments-section .gd-shell,
  body.gd-comment-form-sticky-on .gd-comments-grid {
    overflow: visible;
    contain: none;
    transform: none;
  }
  body.gd-comment-form-sticky-on .gd-comments-grid {
    align-items: start;
    min-height: min(860px, calc(100vh + 160px));
  }
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel,
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel.is-gd-page-comment-transform-sticky {
    position: sticky;
    position: -webkit-sticky;
    top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
    left: auto;
    width: auto;
    height: max-content;
    max-height: calc(100vh - var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) - 36px);
    overflow: auto;
    overscroll-behavior: contain;
    transform: none;
    will-change: auto;
    align-self: start;
    z-index: 6;
  }
}
@media (max-width: 980px) {
  body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
  body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel,
  body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
    transform: none;
    will-change: auto;
  }
}


/* v16.28.82 comment-form placement fallback and card title rhythm. */
.gd-card-title,
.gd-card-title a,
.gd-game-card .gd-card-title,
.gd-post-card .gd-card-title,
.gd-related-store-grid .gd-card-title,
.gd-related-grid-static .gd-card-title,
.urp-title {
  line-height: 1.3;
}

body.gd-card-density-compact,
body.gd-card-density-comfortable,
body.gd-card-density-showcase {
  --gd-card-title-line-height: 1.3;
}

.gd-comment-jump {
  white-space: nowrap;
}

.gd-comment-form-anchor {
  display: block;
  position: relative;
  top: calc((var(--gd-header-height, 76px) + 18px) * -1);
  visibility: hidden;
}

body.gd-comment-form-position-before .gd-comments-grid,
body.gd-comment-form-position-after .gd-comments-grid,
.gd-comments-section.gd-comments-form-position-before .gd-comments-grid,
.gd-comments-section.gd-comments-form-position-after .gd-comments-grid {
  grid-template-columns: minmax(0, 1fr);
}

body.gd-comment-form-position-before .gd-comment-form-panel,
body.gd-comment-form-position-after .gd-comment-form-panel,
.gd-comments-section.gd-comments-form-position-before .gd-comment-form-panel,
.gd-comments-section.gd-comments-form-position-after .gd-comment-form-panel {
  position: static;
  top: auto;
  align-self: stretch;
  width: 100%;
  max-width: none;
  transform: none;
}

.gd-comment-form-panel--before {
  margin: 18px 0 22px;
}

.gd-comment-form-panel--after {
  margin-top: 22px;
}

body.gd-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section .gd-comments-grid {
  align-items: start;
}

@media (min-width: 981px) {
  body.gd-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel--sidebar {
    position: sticky;
    top: calc(var(--gd-header-height, 76px) + var(--gd-announcement-height, 0px) + 24px);
    align-self: start;
    transform: none;
  }

  body.admin-bar.gd-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel--sidebar {
    top: calc(var(--gd-header-height, 76px) + var(--gd-announcement-height, 0px) + 56px);
  }
}

@media (max-width: 980px) {
  body.gd-comment-form-position-sidebar .gd-comments-grid,
  body.gd-comment-form-position-before .gd-comments-grid,
  body.gd-comment-form-position-after .gd-comments-grid {
    grid-template-columns: 1fr;
  }

  body.gd-comment-form-position-sidebar .gd-comments-section .gd-comment-form-panel,
  body.gd-comment-form-position-before .gd-comments-section .gd-comment-form-panel,
  body.gd-comment-form-position-after .gd-comments-section .gd-comment-form-panel {
    position: static;
    top: auto;
    transform: none;
  }
}

/* v16.28.83 archive filter routing/dropdown polish.
 * Native select menus are OS-controlled, but keep closed controls clean and
 * use theme-aware scrollbar colors where the browser allows it. */
.gd-filter-pro select,
.gd-filter-bar select {
  color-scheme: dark;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--gd-accent) 46%, var(--gd-border)) color-mix(in srgb, var(--gd-card) 82%, #020617);
}
.gd-filter-pro select option,
.gd-filter-bar select option {
  background-color: color-mix(in srgb, var(--gd-card) 90%, #020617);
  color: var(--gd-text);
}
.gd-filter-pro select::-webkit-scrollbar,
.gd-filter-bar select::-webkit-scrollbar {
  width: 10px;
}
.gd-filter-pro select::-webkit-scrollbar-track,
.gd-filter-bar select::-webkit-scrollbar-track {
  background: color-mix(in srgb, var(--gd-card) 82%, #020617);
}
.gd-filter-pro select::-webkit-scrollbar-thumb,
.gd-filter-bar select::-webkit-scrollbar-thumb {
  border: 2px solid color-mix(in srgb, var(--gd-card) 82%, #020617);
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-accent) 46%, var(--gd-border));
}


/* v16.28.84 contextual comment form positions.
   Regular Pages default to a simple bottom form, while single posts/game pages
   can keep the working sticky sidebar. This prevents the page fallback from
   breaking the single-post sticky layout. */
body.gd-page-comment-form-position-after .gd-comments-section--page .gd-comments-grid {
  grid-template-columns: minmax(0, 1fr);
}
body.gd-page-comment-form-position-after .gd-comments-section--page .gd-comment-form-panel--after {
  max-width: min(760px, 100%);
  margin: clamp(16px, 2.5vw, 28px) auto 0;
}
body.gd-single-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section--post .gd-comments-grid {
  align-items: start;
}
@media (min-width: 1025px) {
  body.gd-single-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel--sidebar {
    position: sticky;
    position: -webkit-sticky;
    top: calc(var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) + 18px);
    align-self: start;
    max-height: calc(100vh - var(--gd-live-header-bottom, var(--gd-live-header-h, var(--gd-sticky-offset, 76px))) - 36px);
    overflow: auto;
  }
}
@media (max-width: 1024px) {
  body.gd-single-comment-form-position-sidebar .gd-comments-section--post .gd-comment-form-panel--sidebar,
  body.gd-page-comment-form-position-sidebar .gd-comments-section--page .gd-comment-form-panel--sidebar {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
  }
}


/* Template AJAX loading is owned by assets/css/main.css. Keep only archive-filter
   state here so settings-contract.css does not create duplicate collection spinners. */
.gd-filter-pro.is-ajax-loading {
  cursor: progress;
}
.gd-filter-pro.is-ajax-loading :is(input, select, button, a) {
  pointer-events: none;
}
[data-gd-archive-region].is-ajax-loading [data-gd-archive-output] {
  opacity: .42;
  pointer-events: none;
}

/* Archive AJAX loading uses an inline, centered status message instead of a floating viewport spinner. */
.gd-archive-inline-loader {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: min(100%, 360px);
  margin: 0 auto 18px;
  padding: 12px 16px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 28%, transparent);
  border-radius: var(--gd-radius);
  background: color-mix(in srgb, var(--gd-bg-2) 82%, transparent);
  color: var(--gd-text);
  font-weight: 800;
  text-align: center;
  box-shadow: var(--gd-shadow-soft);
}
.gd-archive-inline-loader.is-active {
  display: flex;
}
.gd-archive-inline-spinner {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, currentColor 26%, transparent);
  border-top-color: currentColor;
  animation: gdAjaxSpin .72s linear infinite;
}
body.gd-motion-off .gd-archive-inline-spinner {
  animation: none;
}


/* 16.28.96 admin-bar header offset hardening.
   Public frontend stays unchanged; logged-in admin views get a safe top offset so
   the GamesDen header/game sticky bar does not sit under the WordPress admin bar. */
body.admin-bar.gd-header-fixed .gd-header,
body.admin-bar .gd-header.gd-header-is-fixed {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar.gd-header-fixed .gd-header,
  body.admin-bar .gd-header.gd-header-is-fixed {
    top: 46px;
  }
}
@media (max-width: 600px) {
  body.admin-bar.gd-header-fixed .gd-header,
  body.admin-bar .gd-header.gd-header-is-fixed {
    top: 0;
  }
}
body.admin-bar.gd-header-fixed.gd-game-tabs-display-sticky .gd-game-tabs,
body.admin-bar.gd-header-fixed .gd-game-tabs--sticky {
  top: calc(var(--gd-live-header-h, var(--gd-sticky-offset, var(--gd-header-h))) + 32px);
}
@media (max-width: 782px) and (min-width: 601px) {
  body.admin-bar.gd-header-fixed.gd-game-tabs-display-sticky .gd-game-tabs,
  body.admin-bar.gd-header-fixed .gd-game-tabs--sticky {
    top: calc(var(--gd-live-header-h, var(--gd-sticky-offset, var(--gd-header-h))) + 46px);
  }
}


/* 16.28.98 template/archive parity and admin-bar gap cleanup. */
body.admin-bar:not(.gd-header-fixed) .gd-header:not(.gd-header-is-fixed) {
  top: auto;
}
body.page-template-template-game-collection .gd-page-collection-section {
  padding-top: clamp(26px, 4vw, 44px);
}
body.page-template-template-game-collection .gd-page-collection-shell {
  width: min(100% - 40px, var(--gd-shell));
  max-width: var(--gd-shell);
  display: block;
}
body.page-template-template-game-collection .gd-collection-archive-hero {
  margin-bottom: 0;
}
body.page-template-template-game-collection .gd-collection-template {
  display: grid;
  gap: clamp(20px, 3vw, 30px);
}
body.page-template-template-game-collection .gd-collection-page-content {
  margin: 0;
}
body.page-template-template-game-collection .gd-collection-results.gd-archive-output {
  display: grid;
  gap: clamp(18px, 3vw, 28px);
}
body.page-template-template-game-collection .gd-collection-results-bar {
  margin: 0;
}
body.page-template-template-game-collection .gd-template-grid {
  width: 100%;
}
body.page-template-template-game-collection .gd-collection-pagination {
  margin-top: 0;
}
@media (max-width: 760px) {
  body.page-template-template-game-collection .gd-page-collection-shell {
    width: min(100% - 28px, var(--gd-shell));
  }
}


/* 16.28.99 logged-in frontend/admin-bar contract.
   WordPress already offsets the document for the admin bar. Fixed GamesDen
   elements only need the admin-bar height for their own top coordinate; normal
   content spacing must use the header height, not the header viewport bottom. */
body.admin-bar {
  --gd-admin-bar-h: 32px;
}
@media (max-width: 782px) {
  body.admin-bar {
    --gd-admin-bar-h: 46px;
  }
}
@media (max-width: 600px) {
  body.admin-bar {
    --gd-admin-bar-h: 0px;
  }
}
body.admin-bar.gd-header-fixed .gd-header,
body.admin-bar .gd-header.gd-header-is-fixed {
  top: var(--gd-admin-bar-h);
}
body.admin-bar.gd-header-static .gd-header,
body.admin-bar.gd-header-not-sticky .gd-header,
body.admin-bar:not(.gd-header-fixed) .gd-header:not(.gd-header-is-fixed) {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
}
body.admin-bar.gd-header-fixed .gd-site-main {
  padding-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.admin-bar.gd-header-fixed:not(.gd-game-detail) .gd-breadcrumbs-wrap {
  margin-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.admin-bar.gd-header-fixed .gd-breadcrumbs-wrap + .gd-site-main,
body.admin-bar.gd-header-fixed .gd-announcement-bar + .gd-site-main,
body.admin-bar.gd-header-fixed .gd-breadcrumbs-wrap + .gd-announcement-bar + .gd-site-main {
  padding-top: 0;
}
body.admin-bar.gd-header-fixed .gd-announcement-bar--after-header.gd-announcement-bar--bgspan-full {
  margin-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.admin-bar.gd-header-fixed .gd-announcement-bar--after-header.gd-announcement-bar--bgspan-contained {
  margin-top: calc(var(--gd-live-header-h, var(--gd-header-h)) + 10px);
}
body.admin-bar.gd-header-fixed.gd-game-tabs-display-sticky .gd-game-tabs,
body.admin-bar.gd-header-fixed .gd-game-tabs--sticky {
  top: calc(var(--gd-admin-bar-h) + var(--gd-live-header-h, var(--gd-header-h)));
}
body.admin-bar.gd-header-fixed .gd-nav.gd-menu-panel,
body.admin-bar.gd-header-fixed .gd-menu-panel {
  top: calc(var(--gd-admin-bar-h) + var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))));
  max-height: calc(100dvh - var(--gd-admin-bar-h) - var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h))) - 18px);
}
html,
body {
  background-color: var(--gd-bg, #040814);
}
html {
  overscroll-behavior-y: none;
}

/* 16.29.03 admin frontend header contract.
   Keep the admin-bar offset isolated to fixed headers and do not create a second
   visual spacer under static/non-sticky headers. */
:root {
  --gd-wp-admin-bar-h: 0px;
}
body.admin-bar {
  --gd-wp-admin-bar-h: 32px;
}
body.admin-bar.gd-header-fixed .gd-header,
body.admin-bar.gd-header-fixed .gd-header.gd-header-is-fixed {
  position: fixed;
  top: var(--gd-wp-admin-bar-h);
}
body.admin-bar.gd-header-fixed .gd-site-main {
  padding-top: var(--gd-live-header-h, var(--gd-header-h));
}
body.admin-bar.gd-header-static .gd-header,
body.admin-bar.gd-header-not-sticky .gd-header,
body.admin-bar:not(.gd-header-fixed) .gd-header:not(.gd-header-is-fixed) {
  position: relative;
  top: auto;
}
body.admin-bar.gd-header-static .gd-site-main,
body.admin-bar.gd-header-not-sticky .gd-site-main,
body.admin-bar:not(.gd-header-fixed) .gd-site-main {
  padding-top: 0;
}
body.admin-bar.gd-header-fixed .gd-nav.gd-menu-panel {
  top: calc(var(--gd-live-header-h, var(--gd-header-h)) + var(--gd-wp-admin-bar-h));
  max-height: calc(100dvh - var(--gd-live-header-h, var(--gd-header-h)) - var(--gd-wp-admin-bar-h) - 18px);
}
@media (max-width: 782px) {
  body.admin-bar {
    --gd-wp-admin-bar-h: 46px;
  }
}
@media (max-width: 600px) {
  body.admin-bar {
    --gd-wp-admin-bar-h: 0px;
  }
}

/* 16.29.04 archive/template admin-preview gap repair.
   On logged-in frontend previews, archive/category and collection-template pages
   were showing the fixed-header spacer as a visible empty band before the hero.
   Keep the header overlay contract, but let the archive hero own the offset so
   its background starts immediately below/behind the fixed header. */
body.admin-bar.gd-header-fixed.archive .gd-site-main,
body.admin-bar.gd-header-fixed.category .gd-site-main,
body.admin-bar.gd-header-fixed.tax-game_genre .gd-site-main,
body.admin-bar.gd-header-fixed.tax-game_platform .gd-site-main,
body.admin-bar.gd-header-fixed.tax-game_mode .gd-site-main,
body.admin-bar.gd-header-fixed.post-type-archive-game .gd-site-main,
body.admin-bar.gd-header-fixed.page-template-template-game-collection .gd-site-main {
  padding-top: 0;
}
body.admin-bar.gd-header-fixed.archive .gd-site-main > .gd-archive-hero:first-child,
body.admin-bar.gd-header-fixed.category .gd-site-main > .gd-archive-hero:first-child,
body.admin-bar.gd-header-fixed.tax-game_genre .gd-site-main > .gd-archive-hero:first-child,
body.admin-bar.gd-header-fixed.tax-game_platform .gd-site-main > .gd-archive-hero:first-child,
body.admin-bar.gd-header-fixed.tax-game_mode .gd-site-main > .gd-archive-hero:first-child,
body.admin-bar.gd-header-fixed.post-type-archive-game .gd-site-main > .gd-archive-hero:first-child,
body.admin-bar.gd-header-fixed.page-template-template-game-collection .gd-site-main > .gd-archive-hero:first-child {
  margin-top: 0;
  padding-top: calc(var(--gd-live-header-h, var(--gd-header-h)) + clamp(32px, 5vw, 60px));
}

/* v16.29.08 card polish and # setting hygiene.
   Long imported titles must not blow up related cards on mobile, compact density
   should keep artwork aligned inside the card, and hidden Customizer labels
   should not leave empty styled wrappers behind. */
.gd-game-grid,
.gd-site-main .gd-game-grid,
.gd-related-store-grid,
.gd-site-main .gd-related-store-grid,
.gd-related-grid-static,
.gd-site-main .gd-related-grid-static {
  min-width: 0;
  max-width: 100%;
  padding-top: 2px;
}

.gd-game-card,
.gd-post-card {
  min-width: 0;
  max-width: 100%;
  border-width: 1px;
  border-style: solid;
  background-clip: padding-box;
  overflow: hidden;
}

.gd-card-media,
.gd-game-card .gd-card-media,
.gd-post-card .gd-card-media {
  flex: 0 0 auto;
  max-width: 100%;
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}

body.gd-card-density-compact .gd-game-card .gd-card-media,
body.gd-card-density-compact .gd-post-card .gd-card-media {
  width: calc(100% - 12px);
  max-width: calc(100% - 12px);
  align-self: center;
  border-radius: max(8px, calc(var(--gd-card-radius) - 6px));
}

body.gd-card-density-compact .gd-related-store-grid .gd-card-media,
body.gd-card-density-compact .gd-related-grid-static .gd-card-media {
  aspect-ratio: var(--gd-card-image-ratio);
}

.gd-card-title,
.gd-card-title a,
.gd-related-store-grid .gd-card-title,
.gd-related-grid-static .gd-card-title,
.gd-side-popular-copy strong {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}

.gd-card-title a,
.gd-related-store-grid .gd-card-title a,
.gd-related-grid-static .gd-card-title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gd-related-store-grid .gd-game-card,
.gd-related-grid-static .gd-game-card,
.gd-related-store-grid > *,
.gd-related-grid-static > * {
  min-width: 0;
  max-width: 100%;
}

.gd-kicker:empty,
.gd-section-head p:empty,
.gd-archive-desc:empty,
.gd-card-cta:empty,
.gd-card-footer:empty,
.gd-card-footer a:empty,
.gd-card-footer-meta:empty,
.gd-text-link:empty,
.gd-download-assurance:empty,
.gd-panel-copy:empty,
.gd-comment-notes:empty,
.gd-comments-closed:empty {
  display: none;
}

@media (max-width: 680px) {
  .gd-related-store-grid,
  .gd-site-main .gd-related-store-grid,
  .gd-related-grid-static,
  .gd-site-main .gd-related-grid-static {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .gd-related-store-grid .gd-card-title,
  .gd-related-grid-static .gd-card-title {
    min-height: 0;
    line-height: 1.18;
    font-size: clamp(16px, 4.9vw, 19px);
  }

  .gd-related-store-grid .gd-card-title a,
  .gd-related-grid-static .gd-card-title a {
    -webkit-line-clamp: 2;
  }

  .gd-related-store-grid .gd-card-body,
  .gd-related-grid-static .gd-card-body {
    min-width: 0;
  }
}


/* v16.29.09 mobile section-tab touch contract.
   Keep the horizontal tab rail swipeable, but make real taps on #download and
   other section tabs activate reliably on mobile browsers and delayed JS setups. */
@media (max-width: 880px) {
  .gd-game-tabs,
  .gd-game-tabs > .gd-shell,
  .gd-game-tabs.is-gd-tabs-fixed,
  .gd-game-tabs.is-gd-tabs-fixed > .gd-shell {
    touch-action: pan-x pan-y;
  }
  .gd-game-tabs a,
  .gd-app-actions a[href^="#"],
  .gd-btn[href^="#"] {
    touch-action: manipulation;
    -webkit-tap-highlight-color: color-mix(in srgb, var(--gd-accent) 24%, transparent);
  }
}

/* v16.29.10 final card density, border paint, and mobile pull-refresh cleanup.
   The top card border must not be eaten by the media/image layer; Showcase must
   be visibly different from Comfortable; and mobile browsers must keep native
   pull-to-refresh available at the page top. */
html,
body {
  overscroll-behavior-y: auto;
}

.gd-game-grid,
.gd-site-main .gd-game-grid,
.gd-related-store-grid,
.gd-site-main .gd-related-store-grid,
.gd-related-grid-static,
.gd-site-main .gd-related-grid-static {
  padding-top: max(6px, var(--gd-card-grid-paint-buffer, 6px));
}

.gd-game-card,
.gd-post-card {
  position: relative;
  background-clip: border-box;
  outline: 1px solid var(--gd-border);
  outline-offset: -1px;
}

.gd-game-card .gd-card-media,
.gd-post-card .gd-card-media {
  z-index: 1;
}

.gd-game-card .gd-card-body,
.gd-post-card .gd-card-body {
  position: relative;
  z-index: 2;
}

body.gd-card-density-showcase {
  --gd-card-density-grid-gap: clamp(24px, 3vw, 38px);
  --gd-card-density-pad: clamp(22px, 2.25vw, 28px);
  --gd-card-density-gap: 16px;
  --gd-card-density-excerpt-lines: 4;
  --gd-card-density-excerpt-min: 5.8em;
  --gd-card-density-excerpt-size: 15.5px;
  --gd-card-density-badge-min: 30px;
  --gd-card-density-footer-min: 50px;
  --gd-card-density-footer-pad: 16px;
  --gd-card-title-line-height: 1.14;
  --gd-related-density-min: 320px;
}

body.gd-card-density-showcase .gd-game-grid:not(.gd-related-grid) {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, max(var(--gd-card-min), 340px)), 1fr));
}

body.gd-card-density-showcase .gd-game-card .gd-card-media,
body.gd-card-density-showcase .gd-post-card .gd-card-media {
  min-height: clamp(190px, 17vw, 280px);
}

body.gd-card-density-showcase .gd-card-title,
body.gd-card-density-showcase .gd-card-title a {
  font-size: calc(var(--gd-card-title-size) * 1.08);
}

body.gd-card-density-showcase .gd-card-footer a,
body.gd-card-density-showcase .gd-card-cta,
body.gd-card-density-showcase .gd-card-overlay {
  min-height: 40px;
}

@media (max-width: 640px) {
  body.gd-card-density-showcase {
    --gd-card-density-grid-gap: 20px;
    --gd-card-density-pad: 18px;
    --gd-card-density-excerpt-lines: 3;
    --gd-card-density-excerpt-min: 0px;
    --gd-related-density-min: 250px;
  }
  body.gd-card-density-showcase .gd-game-card .gd-card-media,
  body.gd-card-density-showcase .gd-post-card .gd-card-media {
    min-height: clamp(170px, 48vw, 230px);
  }
}


/* v16.29.11 card-density contract repair.
   Global Card density now affects archive, template, and homepage grids with
   visibly different column rhythm, media scale, padding, typography, and footer
   sizing. Related games can override the global setting with its own option. */
body.gd-card-density-compact {
  --gd-card-density-context-min: clamp(220px, 21vw, 270px);
  --gd-card-density-context-media-min: 0px;
  --gd-card-density-title-scale: .94;
}
body.gd-card-density-comfortable {
  --gd-card-density-context-min: clamp(260px, 24vw, 310px);
  --gd-card-density-context-media-min: 0px;
  --gd-card-density-title-scale: 1;
}
body.gd-card-density-showcase {
  --gd-card-density-context-min: clamp(330px, 30vw, 420px);
  --gd-card-density-context-media-min: clamp(205px, 18vw, 300px);
  --gd-card-density-title-scale: 1.12;
}
body.gd-card-density-compact .gd-archive-output .gd-game-grid,
body.gd-card-density-compact .gd-archive-ajax-region .gd-game-grid,
body.gd-card-density-compact .gd-template-collection .gd-game-grid,
body.gd-card-density-compact .gd-collection-results .gd-game-grid,
body.gd-card-density-compact.home .gd-game-grid,
body.gd-card-density-comfortable .gd-archive-output .gd-game-grid,
body.gd-card-density-comfortable .gd-archive-ajax-region .gd-game-grid,
body.gd-card-density-comfortable .gd-template-collection .gd-game-grid,
body.gd-card-density-comfortable .gd-collection-results .gd-game-grid,
body.gd-card-density-comfortable.home .gd-game-grid,
body.gd-card-density-showcase .gd-archive-output .gd-game-grid,
body.gd-card-density-showcase .gd-archive-ajax-region .gd-game-grid,
body.gd-card-density-showcase .gd-template-collection .gd-game-grid,
body.gd-card-density-showcase .gd-collection-results .gd-game-grid,
body.gd-card-density-showcase.home .gd-game-grid {
  gap: var(--gd-card-density-grid-gap);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--gd-card-density-context-min)), 1fr));
}
body.gd-card-density-compact .gd-archive-output .gd-game-card .gd-card-body,
body.gd-card-density-compact .gd-archive-ajax-region .gd-game-card .gd-card-body,
body.gd-card-density-compact .gd-template-collection .gd-game-card .gd-card-body,
body.gd-card-density-compact .gd-collection-results .gd-game-card .gd-card-body,
body.gd-card-density-compact.home .gd-game-card .gd-card-body,
body.gd-card-density-comfortable .gd-archive-output .gd-game-card .gd-card-body,
body.gd-card-density-comfortable .gd-archive-ajax-region .gd-game-card .gd-card-body,
body.gd-card-density-comfortable .gd-template-collection .gd-game-card .gd-card-body,
body.gd-card-density-comfortable .gd-collection-results .gd-game-card .gd-card-body,
body.gd-card-density-comfortable.home .gd-game-card .gd-card-body,
body.gd-card-density-showcase .gd-archive-output .gd-game-card .gd-card-body,
body.gd-card-density-showcase .gd-archive-ajax-region .gd-game-card .gd-card-body,
body.gd-card-density-showcase .gd-template-collection .gd-game-card .gd-card-body,
body.gd-card-density-showcase .gd-collection-results .gd-game-card .gd-card-body,
body.gd-card-density-showcase.home .gd-game-card .gd-card-body {
  gap: var(--gd-card-density-gap);
  padding: var(--gd-card-density-pad);
}
body.gd-card-density-compact .gd-archive-output .gd-game-card .gd-card-media,
body.gd-card-density-compact .gd-archive-ajax-region .gd-game-card .gd-card-media,
body.gd-card-density-compact .gd-template-collection .gd-game-card .gd-card-media,
body.gd-card-density-compact .gd-collection-results .gd-game-card .gd-card-media,
body.gd-card-density-compact.home .gd-game-card .gd-card-media,
body.gd-card-density-comfortable .gd-archive-output .gd-game-card .gd-card-media,
body.gd-card-density-comfortable .gd-archive-ajax-region .gd-game-card .gd-card-media,
body.gd-card-density-comfortable .gd-template-collection .gd-game-card .gd-card-media,
body.gd-card-density-comfortable .gd-collection-results .gd-game-card .gd-card-media,
body.gd-card-density-comfortable.home .gd-game-card .gd-card-media,
body.gd-card-density-showcase .gd-archive-output .gd-game-card .gd-card-media,
body.gd-card-density-showcase .gd-archive-ajax-region .gd-game-card .gd-card-media,
body.gd-card-density-showcase .gd-template-collection .gd-game-card .gd-card-media,
body.gd-card-density-showcase .gd-collection-results .gd-game-card .gd-card-media,
body.gd-card-density-showcase.home .gd-game-card .gd-card-media {
  margin: var(--gd-card-density-media-margin);
  min-height: var(--gd-card-density-context-media-min);
}
body.gd-card-density-compact .gd-archive-output .gd-card-title,
body.gd-card-density-compact .gd-archive-ajax-region .gd-card-title,
body.gd-card-density-compact .gd-template-collection .gd-card-title,
body.gd-card-density-compact .gd-collection-results .gd-card-title,
body.gd-card-density-compact.home .gd-card-title,
body.gd-card-density-comfortable .gd-archive-output .gd-card-title,
body.gd-card-density-comfortable .gd-archive-ajax-region .gd-card-title,
body.gd-card-density-comfortable .gd-template-collection .gd-card-title,
body.gd-card-density-comfortable .gd-collection-results .gd-card-title,
body.gd-card-density-comfortable.home .gd-card-title,
body.gd-card-density-showcase .gd-archive-output .gd-card-title,
body.gd-card-density-showcase .gd-archive-ajax-region .gd-card-title,
body.gd-card-density-showcase .gd-template-collection .gd-card-title,
body.gd-card-density-showcase .gd-collection-results .gd-card-title,
body.gd-card-density-showcase.home .gd-card-title {
  font-size: calc(var(--gd-card-title-size) * var(--gd-card-density-title-scale));
  line-height: var(--gd-card-title-line-height);
}
body.gd-card-density-compact .gd-archive-output .gd-card-excerpt,
body.gd-card-density-compact .gd-archive-ajax-region .gd-card-excerpt,
body.gd-card-density-compact .gd-template-collection .gd-card-excerpt,
body.gd-card-density-compact .gd-collection-results .gd-card-excerpt,
body.gd-card-density-compact.home .gd-card-excerpt,
body.gd-card-density-comfortable .gd-archive-output .gd-card-excerpt,
body.gd-card-density-comfortable .gd-archive-ajax-region .gd-card-excerpt,
body.gd-card-density-comfortable .gd-template-collection .gd-card-excerpt,
body.gd-card-density-comfortable .gd-collection-results .gd-card-excerpt,
body.gd-card-density-comfortable.home .gd-card-excerpt,
body.gd-card-density-showcase .gd-archive-output .gd-card-excerpt,
body.gd-card-density-showcase .gd-archive-ajax-region .gd-card-excerpt,
body.gd-card-density-showcase .gd-template-collection .gd-card-excerpt,
body.gd-card-density-showcase .gd-collection-results .gd-card-excerpt,
body.gd-card-density-showcase.home .gd-card-excerpt {
  min-height: var(--gd-card-density-excerpt-min);
  font-size: var(--gd-card-density-excerpt-size);
  -webkit-line-clamp: var(--gd-card-density-excerpt-lines);
}
body.gd-card-density-compact .gd-archive-output .gd-card-footer,
body.gd-card-density-compact .gd-archive-ajax-region .gd-card-footer,
body.gd-card-density-compact .gd-template-collection .gd-card-footer,
body.gd-card-density-compact .gd-collection-results .gd-card-footer,
body.gd-card-density-compact.home .gd-card-footer,
body.gd-card-density-comfortable .gd-archive-output .gd-card-footer,
body.gd-card-density-comfortable .gd-archive-ajax-region .gd-card-footer,
body.gd-card-density-comfortable .gd-template-collection .gd-card-footer,
body.gd-card-density-comfortable .gd-collection-results .gd-card-footer,
body.gd-card-density-comfortable.home .gd-card-footer,
body.gd-card-density-showcase .gd-archive-output .gd-card-footer,
body.gd-card-density-showcase .gd-archive-ajax-region .gd-card-footer,
body.gd-card-density-showcase .gd-template-collection .gd-card-footer,
body.gd-card-density-showcase .gd-collection-results .gd-card-footer,
body.gd-card-density-showcase.home .gd-card-footer {
  min-height: var(--gd-card-density-footer-min);
  padding-top: var(--gd-card-density-footer-pad);
}
body.gd-related-card-density-compact .gd-related-store-grid,
body.gd-related-card-density-compact .gd-related-grid-static {
  --gd-related-card-grid-gap: clamp(12px, 1.4vw, 18px);
  --gd-related-card-min: 220px;
  --gd-related-card-pad: 12px;
  --gd-related-card-gap: 7px;
  --gd-related-card-lines: 2;
  --gd-related-card-media-min: 0px;
}
body.gd-related-card-density-comfortable .gd-related-store-grid,
body.gd-related-card-density-comfortable .gd-related-grid-static {
  --gd-related-card-grid-gap: clamp(18px, 2.1vw, 28px);
  --gd-related-card-min: 260px;
  --gd-related-card-pad: clamp(15px, 1.6vw, 20px);
  --gd-related-card-gap: 11px;
  --gd-related-card-lines: 3;
  --gd-related-card-media-min: 0px;
}
body.gd-related-card-density-showcase .gd-related-store-grid,
body.gd-related-card-density-showcase .gd-related-grid-static {
  --gd-related-card-grid-gap: clamp(22px, 2.8vw, 36px);
  --gd-related-card-min: 320px;
  --gd-related-card-pad: clamp(22px, 2.2vw, 28px);
  --gd-related-card-gap: 16px;
  --gd-related-card-lines: 4;
  --gd-related-card-media-min: clamp(190px, 17vw, 280px);
}
body.gd-related-card-density-compact .gd-related-store-grid,
body.gd-related-card-density-compact .gd-related-grid-static,
body.gd-related-card-density-comfortable .gd-related-store-grid,
body.gd-related-card-density-comfortable .gd-related-grid-static,
body.gd-related-card-density-showcase .gd-related-store-grid,
body.gd-related-card-density-showcase .gd-related-grid-static {
  gap: var(--gd-related-card-grid-gap);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--gd-related-card-min)), 1fr));
}
body.gd-related-card-density-compact .gd-related-store-grid .gd-card-body,
body.gd-related-card-density-compact .gd-related-grid-static .gd-card-body,
body.gd-related-card-density-comfortable .gd-related-store-grid .gd-card-body,
body.gd-related-card-density-comfortable .gd-related-grid-static .gd-card-body,
body.gd-related-card-density-showcase .gd-related-store-grid .gd-card-body,
body.gd-related-card-density-showcase .gd-related-grid-static .gd-card-body {
  gap: var(--gd-related-card-gap);
  padding: var(--gd-related-card-pad);
}
body.gd-related-card-density-compact .gd-related-store-grid .gd-card-media,
body.gd-related-card-density-compact .gd-related-grid-static .gd-card-media,
body.gd-related-card-density-comfortable .gd-related-store-grid .gd-card-media,
body.gd-related-card-density-comfortable .gd-related-grid-static .gd-card-media,
body.gd-related-card-density-showcase .gd-related-store-grid .gd-card-media,
body.gd-related-card-density-showcase .gd-related-grid-static .gd-card-media {
  min-height: var(--gd-related-card-media-min);
}
body.gd-related-card-density-compact .gd-related-store-grid .gd-card-excerpt,
body.gd-related-card-density-compact .gd-related-grid-static .gd-card-excerpt,
body.gd-related-card-density-comfortable .gd-related-store-grid .gd-card-excerpt,
body.gd-related-card-density-comfortable .gd-related-grid-static .gd-card-excerpt,
body.gd-related-card-density-showcase .gd-related-store-grid .gd-card-excerpt,
body.gd-related-card-density-showcase .gd-related-grid-static .gd-card-excerpt {
  -webkit-line-clamp: var(--gd-related-card-lines);
}
@media (max-width: 640px) {
  body.gd-card-density-showcase {
    --gd-card-density-context-min: 100%;
    --gd-card-density-context-media-min: clamp(170px, 48vw, 230px);
  }
  body.gd-card-density-compact,
  body.gd-card-density-comfortable {
    --gd-card-density-context-min: 100%;
  }
  body.gd-related-card-density-compact .gd-related-store-grid,
  body.gd-related-card-density-compact .gd-related-grid-static,
  body.gd-related-card-density-comfortable .gd-related-store-grid,
  body.gd-related-card-density-comfortable .gd-related-grid-static,
  body.gd-related-card-density-showcase .gd-related-store-grid,
  body.gd-related-card-density-showcase .gd-related-grid-static {
    --gd-related-card-min: 100%;
  }
}

/* 16.29.12 single-game short summary toggle cleanup.
   The short-description toggle should read as part of the sentence/card, not as a
   loose extra row under the copy. Keep the collapsed copy compact inside the media
   summary card and use a small inline-edge fade control. */
.gd-app-short-wrap {
  position: relative;
  display: block;
  min-width: 0;
}
.gd-app-summary-panel .gd-app-short-wrap {
  gap: 0;
}
.gd-app-short-wrap .gd-app-short {
  margin: 0;
}
.gd-app-short-wrap.is-overflowing:not(.is-expanded) .gd-app-short {
  padding-inline-end: clamp(58px, 22%, 86px);
}
.gd-app-short-wrap.is-overflowing:not(.is-expanded)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: clamp(74px, 34%, 128px);
  height: 1.75em;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--gd-surface) 88%, transparent) 34%, var(--gd-surface) 78%);
  border-radius: 999px;
}
.gd-app-summary-panel .gd-app-short-toggle,
.gd-app-short-toggle {
  position: absolute;
  right: 0;
  bottom: .08em;
  z-index: 2;
  min-height: 20px;
  padding: 1px 0 1px 8px;
  border: 0;
  border-radius: 0;
  background: linear-gradient(90deg, transparent, var(--gd-surface) 28%);
  color: var(--gd-accent);
  font-size: 12px;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: .01em;
  box-shadow: none;
}
.gd-app-short-wrap.is-expanded {
  padding-bottom: 28px;
}
.gd-app-short-wrap.is-expanded::after {
  content: none;
}
.gd-app-short-wrap.is-expanded .gd-app-short-toggle,
.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle {
  right: 0;
  bottom: 0;
  background: transparent;
}
.gd-app-short-toggle::after {
  width: 6px;
  height: 6px;
  margin-left: 2px;
}
.gd-app-summary-panel .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-toggle:focus-visible,
.gd-app-short-toggle:hover,
.gd-app-short-toggle:focus-visible {
  background: linear-gradient(90deg, transparent, var(--gd-surface) 24%);
  color: color-mix(in srgb, var(--gd-accent) 82%, #fff);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.gd-app-short-wrap.is-expanded .gd-app-short-toggle:hover,
.gd-app-short-wrap.is-expanded .gd-app-short-toggle:focus-visible {
  background: transparent;
}
@media (max-width: 640px) {
  .gd-app-short-wrap.is-overflowing:not(.is-expanded) .gd-app-short {
    padding-inline-end: 64px;
  }
  .gd-app-summary-panel .gd-app-short-toggle,
  .gd-app-short-toggle {
    font-size: 12px;
  }
}

/* 16.29.13 single-game summary overlay expansion.
   Keep the collapsed sentence using the full card width, and make expanded text
   float over the lower summary-card content instead of increasing card height. */
.gd-app-summary-panel .gd-app-short-wrap {
  position: relative;
  min-height: var(--gd-short-collapsed-height, calc(1.55em * 3));
  isolation: isolate;
}

.gd-app-summary-panel .gd-app-short-wrap.is-overflowing:not(.is-expanded) .gd-app-short {
  padding-inline-end: 0;
}

.gd-app-summary-panel .gd-app-short-wrap.is-overflowing:not(.is-expanded)::after {
  z-index: 1;
  right: 0;
  bottom: 0;
  width: clamp(86px, 30%, 126px);
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--gd-surface) 92%, transparent) 28%, var(--gd-surface) 72%);
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded {
  z-index: 40;
  padding-bottom: 0;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded::after {
  content: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short {
  position: absolute;
  inset: 0 -1px auto -1px;
  display: block;
  min-height: var(--gd-short-collapsed-height, calc(1.55em * 3));
  max-height: var(--gd-short-expanded-height, min(38vh, 280px));
  overflow: auto;
  padding: 0 12px 34px 0;
  border-radius: 14px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--gd-surface) 98%, #fff 2%), var(--gd-surface));
  box-shadow: 0 18px 34px rgba(0, 0, 0, .26), 0 0 0 1px color-mix(in srgb, var(--gd-border) 82%, transparent);
  scrollbar-gutter: stable;
  -webkit-mask-image: none;
  mask-image: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded.is-scrollable .gd-app-short {
  padding-inline-end: 12px;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 22px), transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 22px), transparent 100%);
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle {
  top: calc(var(--gd-short-expanded-height, 220px) - 29px);
  right: 8px;
  bottom: auto;
  z-index: 42;
  padding: 3px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-surface) 92%, transparent);
  box-shadow: 0 8px 18px rgba(0, 0, 0, .2), 0 0 0 1px color-mix(in srgb, var(--gd-border) 74%, transparent);
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle:focus-visible {
  background: color-mix(in srgb, var(--gd-accent) 14%, var(--gd-surface));
}


/* 16.29.14 single-game summary plain overlay cleanup.
   Keep the expanded summary height-stable without drawing a separate card/pill
   behind the text or the more/less control. */
.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short {
  padding: 0 0 30px 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle,
.gd-app-summary-panel .gd-app-short-toggle,
.gd-app-short-toggle {
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}

.gd-app-summary-panel .gd-app-short-wrap.is-overflowing:not(.is-expanded)::after {
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--gd-surface) 88%, transparent) 38%, var(--gd-surface) 78%);
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle {
  right: 0;
  padding: 1px 0 1px 8px;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle:focus-visible,
.gd-app-summary-panel .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-toggle:focus-visible,
.gd-app-short-toggle:hover,
.gd-app-short-toggle:focus-visible {
  background: transparent;
  box-shadow: none;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 16.29.16 natural single summary overlay.
   Expanded copy must feel like the same summary surface, not a nested card or pill.
   Keep the height-stable overlay behavior, but remove every visual trace of a
   second layer: no border, no radius, no shadow, no button background. */
.gd-app-summary-panel .gd-app-short-wrap {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded {
  z-index: 40;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short {
  position: absolute;
  inset: 0 0 auto 0;
  display: block;
  min-height: var(--gd-short-collapsed-height, calc(1.55em * 3));
  max-height: var(--gd-short-expanded-height, min(38vh, 280px));
  overflow: auto;
  padding: 0 0 30px 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  outline: 0;
  scrollbar-gutter: stable;
  -webkit-mask-image: none;
  mask-image: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded.is-scrollable .gd-app-short {
  padding-inline-end: 8px;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 22px), transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 22px), transparent 100%);
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle,
.gd-app-summary-panel .gd-app-short-toggle,
.gd-app-short-toggle {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  outline-offset: 3px;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle {
  top: calc(var(--gd-short-expanded-height, 220px) - 28px);
  right: 0;
  bottom: auto;
  z-index: 42;
  padding: 0 0 0 8px;
  min-height: 24px;
}

.gd-app-summary-panel .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-toggle:focus-visible,
.gd-app-short-toggle:hover,
.gd-app-short-toggle:focus-visible,
.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle:focus-visible {
  border: 0;
  background: transparent;
  box-shadow: none;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 16.29.17 natural summary overlay polish.
   The expanded summary should cover lower card content cleanly using the same
   card surface, without showing badges/meta underneath and without any visible
   button or fade-gradient treatment on the more/less control. */
.gd-app-summary-panel .gd-app-short-wrap.is-overflowing:not(.is-expanded) .gd-app-short {
  padding-inline-end: 64px;
}

.gd-app-summary-panel .gd-app-short-wrap.is-overflowing:not(.is-expanded)::after,
.gd-app-short-wrap.is-overflowing:not(.is-expanded)::after {
  content: none;
  display: none;
  background: none;
}

.gd-app-summary-panel .gd-app-short-toggle,
.gd-app-short-toggle,
.gd-app-summary-panel .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-toggle:focus-visible,
.gd-app-short-toggle:hover,
.gd-app-short-toggle:focus-visible {
  background: transparent;
  background-image: none;
  box-shadow: none;
  border: 0;
  border-radius: 0;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded {
  background: inherit;
  background-image: inherit;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short {
  background: inherit;
  background-image: inherit;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  outline: 0;
  padding: 0 0 30px 0;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle {
  background: transparent;
  background-image: none;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  padding: 0 0 0 8px;
}

@media (max-width: 640px) {
  .gd-app-summary-panel .gd-app-short-wrap.is-overflowing:not(.is-expanded) .gd-app-short {
    padding-inline-end: 58px;
  }
}

/* 16.29.18 natural summary expansion.
   The overlay approach created visual bleed and awkward stacking on mobile.
   Expanded summaries now grow the summary card normally; the user-triggered
   layout change is cheaper, cleaner, and more accessible than a fake overlay. */
.gd-app-summary-panel .gd-app-short-wrap,
.gd-app-short-wrap {
  min-height: 0;
  isolation: auto;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded,
.gd-app-short-wrap.is-expanded {
  z-index: auto;
  padding-bottom: 28px;
  background: transparent;
  background-image: none;
  border: 0;
  box-shadow: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded::after,
.gd-app-short-wrap.is-expanded::after {
  content: none;
  display: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short,
.gd-app-short-wrap.is-expanded .gd-app-short,
.gd-app-summary-panel .gd-app-short-wrap.is-expanded.is-scrollable .gd-app-short,
.gd-app-short-wrap.is-expanded.is-scrollable .gd-app-short {
  position: static;
  inset: auto;
  display: block;
  min-height: 0;
  max-height: none;
  overflow: visible;
  padding: 0;
  background: transparent;
  background-image: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  outline: 0;
  scrollbar-gutter: auto;
  -webkit-line-clamp: unset;
  -webkit-mask-image: none;
  mask-image: none;
}

.gd-app-summary-panel .gd-app-short-wrap.is-expanded .gd-app-short-toggle,
.gd-app-short-wrap.is-expanded .gd-app-short-toggle {
  top: auto;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 0 0 0 8px;
  min-height: 22px;
  background: transparent;
  background-image: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.gd-app-summary-panel .gd-app-short-toggle,
.gd-app-short-toggle,
.gd-app-summary-panel .gd-app-short-toggle:hover,
.gd-app-summary-panel .gd-app-short-toggle:focus-visible,
.gd-app-short-toggle:hover,
.gd-app-short-toggle:focus-visible {
  background: transparent;
  background-image: none;
  box-shadow: none;
  border: 0;
  border-radius: 0;
}

/* v16.29.20 final global card-density column contract.
   The global card density setting should match the stable related-card rhythm
   across homepage, archive/category, and template grids: compact = 5 desktop
   columns, comfortable = 4, showcase = 3. Keep the same contract here and in
   main.css so late-loading/used CSS cannot flash a different layout first. */
body.gd-card-density-compact {
  --gd-card-density-context-cols: 5;
  --gd-card-density-context-min: 188px;
  --gd-card-density-context-media-min: 0px;
  --gd-card-density-title-scale: .94;
}
body.gd-card-density-comfortable {
  --gd-card-density-context-cols: 4;
  --gd-card-density-context-min: 238px;
  --gd-card-density-context-media-min: 0px;
  --gd-card-density-title-scale: 1;
}
body.gd-card-density-showcase {
  --gd-card-density-context-cols: 3;
  --gd-card-density-context-min: 300px;
  --gd-card-density-context-media-min: clamp(190px, 16vw, 280px);
  --gd-card-density-title-scale: 1.08;
}
body.gd-card-density-compact .gd-archive-output .gd-game-grid,
body.gd-card-density-compact .gd-archive-ajax-region .gd-game-grid,
body.gd-card-density-compact .gd-template-collection .gd-game-grid,
body.gd-card-density-compact .gd-collection-results .gd-game-grid,
body.gd-card-density-compact.home .gd-game-grid,
body.gd-card-density-comfortable .gd-archive-output .gd-game-grid,
body.gd-card-density-comfortable .gd-archive-ajax-region .gd-game-grid,
body.gd-card-density-comfortable .gd-template-collection .gd-game-grid,
body.gd-card-density-comfortable .gd-collection-results .gd-game-grid,
body.gd-card-density-comfortable.home .gd-game-grid,
body.gd-card-density-showcase .gd-archive-output .gd-game-grid,
body.gd-card-density-showcase .gd-archive-ajax-region .gd-game-grid,
body.gd-card-density-showcase .gd-template-collection .gd-game-grid,
body.gd-card-density-showcase .gd-collection-results .gd-game-grid,
body.gd-card-density-showcase.home .gd-game-grid {
  gap: var(--gd-card-density-grid-gap);
  grid-template-columns: repeat(var(--gd-card-density-context-cols), minmax(0, 1fr));
}
@media (max-width: 1180px) {
  body.gd-card-density-compact .gd-archive-output .gd-game-grid,
  body.gd-card-density-compact .gd-archive-ajax-region .gd-game-grid,
  body.gd-card-density-compact .gd-template-collection .gd-game-grid,
  body.gd-card-density-compact .gd-collection-results .gd-game-grid,
  body.gd-card-density-compact.home .gd-game-grid,
  body.gd-card-density-comfortable .gd-archive-output .gd-game-grid,
  body.gd-card-density-comfortable .gd-archive-ajax-region .gd-game-grid,
  body.gd-card-density-comfortable .gd-template-collection .gd-game-grid,
  body.gd-card-density-comfortable .gd-collection-results .gd-game-grid,
  body.gd-card-density-comfortable.home .gd-game-grid,
  body.gd-card-density-showcase .gd-archive-output .gd-game-grid,
  body.gd-card-density-showcase .gd-archive-ajax-region .gd-game-grid,
  body.gd-card-density-showcase .gd-template-collection .gd-game-grid,
  body.gd-card-density-showcase .gd-collection-results .gd-game-grid,
  body.gd-card-density-showcase.home .gd-game-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--gd-card-density-context-min)), 1fr));
  }
}
@media (max-width: 640px) {
  body.gd-card-density-compact,
  body.gd-card-density-comfortable,
  body.gd-card-density-showcase {
    --gd-card-density-context-min: 100%;
  }
  body.gd-card-density-compact .gd-archive-output .gd-game-grid,
  body.gd-card-density-compact .gd-archive-ajax-region .gd-game-grid,
  body.gd-card-density-compact .gd-template-collection .gd-game-grid,
  body.gd-card-density-compact .gd-collection-results .gd-game-grid,
  body.gd-card-density-compact.home .gd-game-grid,
  body.gd-card-density-comfortable .gd-archive-output .gd-game-grid,
  body.gd-card-density-comfortable .gd-archive-ajax-region .gd-game-grid,
  body.gd-card-density-comfortable .gd-template-collection .gd-game-grid,
  body.gd-card-density-comfortable .gd-collection-results .gd-game-grid,
  body.gd-card-density-comfortable.home .gd-game-grid,
  body.gd-card-density-showcase .gd-archive-output .gd-game-grid,
  body.gd-card-density-showcase .gd-archive-ajax-region .gd-game-grid,
  body.gd-card-density-showcase .gd-template-collection .gd-game-grid,
  body.gd-card-density-showcase .gd-collection-results .gd-game-grid,
  body.gd-card-density-showcase.home .gd-game-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* v16.29.20 generic non-related grid safeguard for front-page variants and cached CSS extracts. */
body.gd-card-density-compact .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
body.gd-card-density-comfortable .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
body.gd-card-density-showcase .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static) {
  grid-template-columns: repeat(var(--gd-card-density-context-cols), minmax(0, 1fr));
}
@media (max-width: 1180px) {
  body.gd-card-density-compact .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-comfortable .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-showcase .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static) {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--gd-card-density-context-min)), 1fr));
  }
}
@media (max-width: 640px) {
  body.gd-card-density-compact .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-comfortable .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-showcase .gd-site-main .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static) {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* v16.29.21 final card-grid paint stability.
   This mirrors the early inline/main contract so used CSS or late
   settings CSS cannot change the card count after first paint. */
body.gd-card-density-compact {
  --gd-card-density-context-cols: 5;
  --gd-card-density-context-min: 188px;
  --gd-related-card-critical-gap: clamp(12px, 1.4vw, 18px);
  --gd-related-card-critical-min: 220px;
}
body.gd-card-density-comfortable {
  --gd-card-density-context-cols: 4;
  --gd-card-density-context-min: 238px;
  --gd-related-card-critical-gap: clamp(18px, 2.1vw, 28px);
  --gd-related-card-critical-min: 260px;
}
body.gd-card-density-showcase {
  --gd-card-density-context-cols: 3;
  --gd-card-density-context-min: 300px;
  --gd-related-card-critical-gap: clamp(22px, 2.8vw, 36px);
  --gd-related-card-critical-min: 320px;
}
body.gd-related-card-density-compact {
  --gd-related-card-critical-gap: clamp(12px, 1.4vw, 18px);
  --gd-related-card-critical-min: 220px;
}
body.gd-related-card-density-comfortable {
  --gd-related-card-critical-gap: clamp(18px, 2.1vw, 28px);
  --gd-related-card-critical-min: 260px;
}
body.gd-related-card-density-showcase {
  --gd-related-card-critical-gap: clamp(22px, 2.8vw, 36px);
  --gd-related-card-critical-min: 320px;
}
body.gd-card-density-compact .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
body.gd-card-density-comfortable .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
body.gd-card-density-showcase .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static) {
  grid-template-columns: repeat(var(--gd-card-density-context-cols), minmax(0, 1fr));
}
body.gd-related-card-density-inherit .gd-related-store-grid,
body.gd-related-card-density-inherit .gd-related-grid-static,
body.gd-related-card-density-compact .gd-related-store-grid,
body.gd-related-card-density-compact .gd-related-grid-static,
body.gd-related-card-density-comfortable .gd-related-store-grid,
body.gd-related-card-density-comfortable .gd-related-grid-static,
body.gd-related-card-density-showcase .gd-related-store-grid,
body.gd-related-card-density-showcase .gd-related-grid-static {
  gap: var(--gd-related-card-critical-gap);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--gd-related-card-critical-min)), 1fr));
}
@media (max-width: 1180px) {
  body.gd-card-density-compact .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-comfortable .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-showcase .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static) {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--gd-card-density-context-min)), 1fr));
  }
}
@media (max-width: 720px) {
  body.gd-card-density-compact .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-comfortable .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-card-density-showcase .gd-game-grid:not(.gd-related-grid):not(.gd-related-store-grid):not(.gd-related-grid-static),
  body.gd-related-card-density-inherit .gd-related-store-grid,
  body.gd-related-card-density-inherit .gd-related-grid-static,
  body.gd-related-card-density-compact .gd-related-store-grid,
  body.gd-related-card-density-compact .gd-related-grid-static,
  body.gd-related-card-density-comfortable .gd-related-store-grid,
  body.gd-related-card-density-comfortable .gd-related-grid-static,
  body.gd-related-card-density-showcase .gd-related-store-grid,
  body.gd-related-card-density-showcase .gd-related-grid-static {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* v16.29.30 hero-gap and A-Z static rail contract.
   The A-Z jump rail is deliberately non-sticky; search/filter remains active. */
.gd-archive-hero,
.gd-page-header,
.gd-post-hero {
  margin-top: 0;
}
.gd-az-index {
  overflow: visible;
}
.gd-az-section {
  scroll-margin-top: calc(var(--gd-live-header-bottom, var(--gd-sticky-offset, var(--gd-header-h, 76px))) + 84px);
}
body.gd-header-static .gd-az-section,
body.gd-header-not-sticky .gd-az-section {
  scroll-margin-top: 96px;
}
@media (max-width: 782px) {
  .gd-az-section {
    scroll-margin-top: calc(var(--gd-live-header-bottom, var(--gd-sticky-offset, var(--gd-header-h, 62px))) + 72px);
  }
  body.gd-header-static .gd-az-section,
  body.gd-header-not-sticky .gd-az-section {
    scroll-margin-top: 84px;
  }
}
.gd-az-nav,
.gd-az-nav.is-js-stuck {
  position: relative;
  top: auto;
  left: auto;
  width: auto;
  max-width: none;
  z-index: 12;
}
.gd-az-nav-placeholder {
  display: none;
}


/* Homepage section background modes contract.
 * Kept CSS-only so these rows stay cache/PageSpeed friendly. */
.gd-section-updated,
.gd-section-popular {
  position: relative;
}
.gd-section-updated.gd-home-updated-bg-default,
.gd-section-updated.gd-home-updated-bg-transparent,
.gd-section-popular.gd-home-popular-bg-default,
.gd-section-popular.gd-home-popular-bg-transparent {
  background: transparent;
  border-block: 0;
}
.gd-section-updated.gd-home-updated-bg-muted,
.gd-section-popular.gd-home-popular-bg-muted {
  border-block: 1px solid rgba(148, 163, 184, .08);
  background:
    radial-gradient(circle at 15% 0%, color-mix(in srgb, var(--gd-accent) 10%, transparent), transparent 30rem),
    linear-gradient(180deg, rgba(255,255,255,.026), rgba(255,255,255,.008));
}
.gd-section-updated.gd-home-updated-bg-accent,
.gd-section-popular.gd-home-popular-bg-accent {
  border-block: 1px solid color-mix(in srgb, var(--gd-accent) 18%, transparent);
  background:
    radial-gradient(circle at 18% 8%, color-mix(in srgb, var(--gd-accent) 18%, transparent), transparent 28rem),
    radial-gradient(circle at 86% 0%, color-mix(in srgb, var(--gd-accent-2) 14%, transparent), transparent 26rem),
    linear-gradient(180deg, rgba(255,255,255,.030), rgba(0,0,0,.16));
}
.gd-section-updated.gd-home-updated-bg-neon-grid,
.gd-section-popular.gd-home-popular-bg-neon-grid {
  border-block: 1px solid color-mix(in srgb, var(--gd-accent) 16%, transparent);
  background-image:
    linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.020) 1px, transparent 1px),
    radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--gd-accent) 18%, transparent), transparent 30rem),
    radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--gd-accent-2) 12%, transparent), transparent 28rem),
    linear-gradient(180deg, rgba(3,7,18,.34), rgba(3,7,18,.12));
  background-size: 48px 48px, 48px 48px, auto, auto, auto;
}
.gd-section-updated.gd-home-updated-bg-aurora,
.gd-section-popular.gd-home-popular-bg-aurora {
  border-block: 1px solid rgba(148,163,184,.11);
  background:
    radial-gradient(ellipse at 18% 18%, color-mix(in srgb, var(--gd-accent) 19%, transparent), transparent 34rem),
    radial-gradient(ellipse at 72% 0%, color-mix(in srgb, var(--gd-accent-2) 17%, transparent), transparent 32rem),
    radial-gradient(ellipse at 56% 82%, rgba(255,255,255,.045), transparent 24rem),
    linear-gradient(180deg, rgba(255,255,255,.020), rgba(0,0,0,.18));
}
.gd-section-updated.gd-home-updated-bg-spotlight,
.gd-section-popular.gd-home-popular-bg-spotlight {
  border-block: 1px solid rgba(148,163,184,.10);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.105), transparent 22rem),
    radial-gradient(circle at 16% 14%, color-mix(in srgb, var(--gd-accent) 12%, transparent), transparent 24rem),
    linear-gradient(90deg, rgba(255,255,255,.018), transparent 18%, transparent 82%, rgba(255,255,255,.018)),
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.22));
}
.gd-section-updated.gd-home-updated-bg-diagonal-lines,
.gd-section-popular.gd-home-popular-bg-diagonal-lines {
  border-block: 1px solid color-mix(in srgb, var(--gd-accent-2) 14%, transparent);
  background-image:
    repeating-linear-gradient(135deg, rgba(255,255,255,.030) 0 1px, transparent 1px 18px),
    radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--gd-accent) 15%, transparent), transparent 28rem),
    radial-gradient(circle at 85% 50%, color-mix(in srgb, var(--gd-accent-2) 12%, transparent), transparent 24rem),
    linear-gradient(180deg, rgba(255,255,255,.020), rgba(0,0,0,.15));
}
.gd-section-updated.gd-home-updated-bg-pixel-mist,
.gd-section-popular.gd-home-popular-bg-pixel-mist {
  border-block: 1px solid rgba(148,163,184,.10);
  background-image:
    radial-gradient(circle, rgba(255,255,255,.080) 1px, transparent 1.5px),
    radial-gradient(circle at 22% 10%, color-mix(in srgb, var(--gd-accent) 14%, transparent), transparent 30rem),
    radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--gd-accent-2) 10%, transparent), transparent 28rem),
    linear-gradient(180deg, rgba(255,255,255,.016), rgba(0,0,0,.14));
  background-size: 22px 22px, auto, auto, auto;
}
.gd-section-updated.gd-home-updated-bg-panel .gd-shell,
.gd-section-popular.gd-home-popular-bg-panel .gd-shell {
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid rgba(148,163,184,.17);
  border-radius: var(--gd-card-radius);
  background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.018)), var(--gd-card);
  box-shadow: var(--gd-panel-shadow, var(--gd-shadow-soft)), inset 0 1px 0 rgba(255,255,255,.045);
}
@media (max-width: 640px) {
  .gd-section-updated.gd-home-updated-bg-panel .gd-shell,
  .gd-section-popular.gd-home-popular-bg-panel .gd-shell {
    width: min(100% - 28px, var(--gd-shell));
    padding: 18px;
  }
}


/* 16.29.48 mobile hero slider isolation and transition owner.
   This is the final small-device owner for every homepage hero layout. The
   announcement bar stays in normal document flow, and the hero slider keeps its
   own isolated transition layer so the ticker cannot steal space or interfere
   with swipes. Desktop Store Rail keeps the smooth 16.29.31 timing model. */
.gd-announcement-bar,
.gd-announcement-bar--after-header,
.gd-announcement-bar--after-breadcrumbs {
  position: relative;
  z-index: 80;
  isolation: isolate;
}
body.home .gd-store-hero,
body.home .gd-home-slider {
  position: relative;
  z-index: 1;
}
body.home .gd-home-slider {
  touch-action: pan-y;
  overscroll-behavior-x: contain;
}
body.home .gd-home-slider .gd-home-slide {
  -webkit-user-select: none;
  user-select: none;
}
body.home .gd-home-slider .gd-home-nav,
body.home .gd-home-slider .gd-home-dots {
  z-index: 20;
}
body.gd-header-fixed .gd-announcement-bar + .gd-site-main > .gd-store-hero:first-child,
body.gd-header-fixed .gd-breadcrumbs-wrap + .gd-announcement-bar + .gd-site-main > .gd-store-hero:first-child {
  margin-top: 0;
}
@media (min-width: 721px) {
  body.home .gd-home-slider--store-rail .gd-home-slide {
    transition: transform .42s cubic-bezier(.19,1,.22,1), visibility .24s ease, filter .24s ease;
  }
}
@media (max-width: 720px) {
  body.home .gd-store-hero {
    clear: both;
  }
  body.home .gd-store-hero--layout-spotlight,
  body.home .gd-store-hero--layout-store-rail,
  body.home .gd-store-hero--layout-poster-split,
  body.home .gd-store-hero--layout-cover-flow,
  body.home .gd-store-hero--layout-media-showcase,
  body.home .gd-store-hero--layout-deal-rail {
    overflow: visible;
  }
  body.home .gd-home-slider {
    isolation: isolate;
    overflow: hidden;
  }
  body.home .gd-home-slider--spotlight .gd-home-slides,
  body.home .gd-home-slider--poster-split .gd-home-slides,
  body.home .gd-home-slider--cover-flow .gd-home-slides,
  body.home .gd-home-slider--media-showcase .gd-home-slides,
  body.home .gd-home-slider--deal-rail .gd-home-slides,
  body.home .gd-home-slider--store-rail .gd-home-slides {
    position: relative;
    height: clamp(390px, 112vw, 560px);
    min-height: clamp(390px, 112vw, 560px);
    overflow: hidden;
    contain: layout paint;
  }
  body.home .gd-home-slider--spotlight .gd-home-slide,
  body.home .gd-home-slider--poster-split .gd-home-slide,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--media-showcase .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-home-slide {
    position: absolute;
    inset: 0;
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 1;
    transform: translate3d(0, 0, 0) scale(.985);
    filter: saturate(.78) brightness(.72);
    transition: opacity .42s cubic-bezier(.22,1,.36,1), transform .42s cubic-bezier(.22,1,.36,1), filter .42s cubic-bezier(.22,1,.36,1), visibility 0s linear .42s;
  }
  body.home .gd-home-slider--spotlight .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--poster-split .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--media-showcase .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--spotlight .gd-home-slide[data-gd-slide-offset="-2"],
  body.home .gd-home-slider--poster-split .gd-home-slide[data-gd-slide-offset="-2"],
  body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="-2"],
  body.home .gd-home-slider--media-showcase .gd-home-slide[data-gd-slide-offset="-2"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="-2"] {
    transform: translate3d(-34px, 0, 0) scale(.985);
  }
  body.home .gd-home-slider--spotlight .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--poster-split .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--media-showcase .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--spotlight .gd-home-slide[data-gd-slide-offset="2"],
  body.home .gd-home-slider--poster-split .gd-home-slide[data-gd-slide-offset="2"],
  body.home .gd-home-slider--cover-flow .gd-home-slide[data-gd-slide-offset="2"],
  body.home .gd-home-slider--media-showcase .gd-home-slide[data-gd-slide-offset="2"],
  body.home .gd-home-slider--deal-rail .gd-home-slide[data-gd-slide-offset="2"] {
    transform: translate3d(34px, 0, 0) scale(.985);
  }
  body.home .gd-home-slider--spotlight .gd-home-slide.is-active,
  body.home .gd-home-slider--poster-split .gd-home-slide.is-active,
  body.home .gd-home-slider--cover-flow .gd-home-slide.is-active,
  body.home .gd-home-slider--media-showcase .gd-home-slide.is-active,
  body.home .gd-home-slider--deal-rail .gd-home-slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 4;
    transform: translate3d(0, 0, 0) scale(1);
    filter: none;
    transition-delay: 0s;
  }
  body.home .gd-home-slider--store-rail {
    --gd-rail-card-width: min(100% - 20px, 640px);
    overflow: hidden;
  }
  body.home .gd-home-slider--store-rail .gd-home-slide {
    position: absolute;
    inset: 0 auto auto 50%;
    left: 50%;
    display: grid;
    width: var(--gd-rail-card-width);
    height: 100%;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 1;
    transform: translate3d(-50%, 0, 0) scale(.985);
    filter: saturate(.78) brightness(.72);
    transition: opacity .42s cubic-bezier(.22,1,.36,1), transform .42s cubic-bezier(.22,1,.36,1), filter .42s cubic-bezier(.22,1,.36,1), visibility 0s linear .42s;
  }
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-1"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="-2"] {
    transform: translate3d(calc(-50% - 34px), 0, 0) scale(.985);
  }
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="1"],
  body.home .gd-home-slider--store-rail .gd-home-slide[data-gd-slide-offset="2"] {
    transform: translate3d(calc(-50% + 34px), 0, 0) scale(.985);
  }
  body.home .gd-home-slider--store-rail .gd-home-slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 4;
    transform: translate3d(-50%, 0, 0) scale(1);
    filter: none;
    transition-delay: 0s;
  }
  body.home .gd-home-slider .gd-hero-copy {
    max-width: 100%;
  }
  body.home .gd-store-hero .gd-home-slider .gd-hero-title,
  body.home .gd-store-hero .gd-home-slider h2.gd-hero-title,
  body.home .gd-home-slider .gd-hero-copy p {
    overflow: hidden;
  }
  body.home .gd-home-slider .gd-home-nav {
    top: 50%;
  }
  body.home .gd-home-slider .gd-home-dots {
    z-index: 20;
  }
}
@media (max-width: 420px) {
  body.home .gd-home-slider--spotlight .gd-home-slides,
  body.home .gd-home-slider--poster-split .gd-home-slides,
  body.home .gd-home-slider--cover-flow .gd-home-slides,
  body.home .gd-home-slider--media-showcase .gd-home-slides,
  body.home .gd-home-slider--deal-rail .gd-home-slides,
  body.home .gd-home-slider--store-rail .gd-home-slides {
    height: clamp(430px, 136vw, 560px);
    min-height: clamp(430px, 136vw, 560px);
  }
  body.home .gd-home-slider .gd-home-prev {
    left: 8px;
  }
  body.home .gd-home-slider .gd-home-next {
    right: 8px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.home .gd-home-slider .gd-home-slide,
  body.home .gd-home-slider--store-rail .gd-home-slide,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-home-slide,
  body.home .gd-home-slider--media-showcase .gd-home-slide {
    transition-duration: .20s;
  }
}


/* 16.29.68: separate review/comment form boxes for clearer single-page layout.
   Keep the accent strip on the real form box itself so it cannot bleed into
   the single hero on narrow/sticky layouts or when inspected in DevTools. */
.gd-community-form-box {
  position: relative;
  overflow: hidden;
  border-left: 3px solid color-mix(in srgb, var(--gd-accent, currentColor) 45%, transparent);
}

.gd-community-form-box::before {
  content: none;
  display: none;
}

.gd-review-form-box,
.gd-comment-form-box {
  box-shadow: var(--gd-shadow-soft, 0 18px 45px rgba(0,0,0,.18));
}


/* 18.80.80 pro cleanup: production single-game hero contracts.
   Keep only the current supported single hero templates:
   - steam (original)
   - thumbnail_showcase
   - spotlight_stack
   This block intentionally replaces the older experimental template fragments. */
.gd-btn-secondary {
  border-color: color-mix(in srgb, var(--gd-accent-2) 34%, var(--gd-border));
  background: linear-gradient(135deg, color-mix(in srgb, var(--gd-accent-2) 18%, transparent), color-mix(in srgb, var(--gd-accent) 10%, transparent));
  color: var(--gd-text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.gd-btn-secondary:hover,
.gd-btn-secondary:focus-visible {
  border-color: color-mix(in srgb, var(--gd-accent-2) 56%, var(--gd-border));
  background: linear-gradient(135deg, color-mix(in srgb, var(--gd-accent-2) 26%, transparent), color-mix(in srgb, var(--gd-accent) 16%, transparent));
  color: var(--gd-text);
}
.gd-app-actions.gd-app-actions--single,
.gd-template-spotlight-actions.gd-app-actions--single {
  grid-template-columns: minmax(0, 1fr) !important;
}
.gd-app-actions.gd-app-actions--single .gd-btn,
.gd-app-actions > .gd-btn:only-child,
.gd-app-actions > a.gd-btn:only-child,
.gd-app-actions > button.gd-btn:only-child {
  grid-column: 1 / -1;
  width: 100%;
  justify-content: center;
}

body.gd-game-detail .gd-app-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-position: center;
  background-size: cover;
}
body.gd-game-detail .gd-app-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--gd-single-hero-bg-gradient, linear-gradient(180deg, rgba(5,8,18,.88), rgba(5,8,18,.72) 38%, rgba(5,8,18,.96)), radial-gradient(circle at 72% 18%, rgba(102,192,244,.22), transparent 24rem));
}
body.gd-game-detail .gd-app-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: var(--gd-single-hero-overlay-opacity, .54);
  background:
    linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 18px),
    radial-gradient(circle at 18% 10%, color-mix(in srgb, var(--gd-accent) 14%, transparent), transparent 28rem),
    linear-gradient(180deg, rgba(2,6,23,.36), rgba(2,6,23,.62));
}
body.gd-game-detail.gd-single-gradient-none .gd-app-hero::before { background: none; }
body.gd-game-detail.gd-single-gradient-none .gd-app-hero::after { opacity: max(.18, calc(var(--gd-single-hero-overlay-opacity, .54) * .55)); }
body.gd-game-detail.gd-single-background-off .gd-app-hero {
  background-image: none !important;
  --gd-hero-image: none;
  background:
    radial-gradient(circle at 78% 14%, color-mix(in srgb, var(--gd-accent) 18%, transparent), transparent 28rem),
    radial-gradient(circle at 15% 72%, color-mix(in srgb, var(--gd-accent-2) 14%, transparent), transparent 24rem),
    linear-gradient(145deg, color-mix(in srgb, var(--gd-bg-2) 88%, #000 12%), color-mix(in srgb, var(--gd-bg) 92%, #000 8%)) !important;
}
body.gd-game-detail.gd-single-background-off .gd-app-hero::before {
  background: var(--gd-single-hero-bg-gradient, linear-gradient(180deg, rgba(5,8,18,.72), rgba(5,8,18,.58) 42%, rgba(5,8,18,.88)));
}
body.gd-game-detail .gd-app-hero > .gd-shell,
body.gd-game-detail .gd-app-hero > .gd-breadcrumbs-wrap,
body.gd-game-detail .gd-app-hero .gd-breadcrumbs-wrap {
  position: relative;
  z-index: 1;
}

.gd-modern-title-panel,
.gd-template-thumbnail-heading,
body.gd-game-detail .gd-app-title-panel,
body.gd-game-detail .gd-app-summary-panel,
.gd-modern-buybox {
  border: 1px solid color-mix(in srgb, var(--gd-border) 86%, transparent);
  background: linear-gradient(145deg, color-mix(in srgb, var(--gd-card) 88%, transparent), color-mix(in srgb, var(--gd-bg) 72%, transparent));
  box-shadow: var(--gd-panel-shadow, 0 24px 70px rgba(0,0,0,.28));
}
body.gd-game-detail.gd-single-hero-style-glass .gd-modern-title-panel,
body.gd-game-detail.gd-single-hero-style-glass .gd-template-thumbnail-heading,
body.gd-game-detail.gd-single-hero-style-glass .gd-app-title-panel,
body.gd-game-detail.gd-single-hero-style-glass .gd-app-summary-panel,
body.gd-game-detail.gd-single-hero-style-glass .gd-modern-buybox {
  border-color: color-mix(in srgb, var(--gd-border) 74%, transparent);
  background: linear-gradient(145deg, rgba(15,23,42,.70), rgba(5,8,18,.76));
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
body.gd-game-detail.gd-single-hero-style-solid .gd-modern-title-panel,
body.gd-game-detail.gd-single-hero-style-solid .gd-template-thumbnail-heading,
body.gd-game-detail.gd-single-hero-style-solid .gd-app-title-panel,
body.gd-game-detail.gd-single-hero-style-solid .gd-app-summary-panel,
body.gd-game-detail.gd-single-hero-style-solid .gd-modern-buybox {
  background: linear-gradient(180deg, color-mix(in srgb, var(--gd-card) 96%, #000 4%), color-mix(in srgb, var(--gd-bg-2) 96%, #000 4%));
  border-color: var(--gd-border);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.gd-game-detail.gd-single-hero-style-neon .gd-modern-title-panel,
body.gd-game-detail.gd-single-hero-style-neon .gd-template-thumbnail-heading,
body.gd-game-detail.gd-single-hero-style-neon .gd-app-title-panel,
body.gd-game-detail.gd-single-hero-style-neon .gd-app-summary-panel,
body.gd-game-detail.gd-single-hero-style-neon .gd-modern-buybox {
  border-color: color-mix(in srgb, var(--gd-accent) 52%, var(--gd-border));
  box-shadow: 0 24px 80px color-mix(in srgb, var(--gd-accent) 18%, transparent), inset 0 1px 0 rgba(255,255,255,.08);
}
body.gd-game-detail.gd-single-hero-style-minimal .gd-modern-title-panel,
body.gd-game-detail.gd-single-hero-style-minimal .gd-template-thumbnail-heading,
body.gd-game-detail.gd-single-hero-style-minimal .gd-app-title-panel,
body.gd-game-detail.gd-single-hero-style-minimal .gd-app-summary-panel,
body.gd-game-detail.gd-single-hero-style-minimal .gd-modern-buybox {
  border-color: color-mix(in srgb, var(--gd-border) 64%, transparent);
  background: color-mix(in srgb, var(--gd-bg) 82%, transparent);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.gd-game-detail.gd-single-hero-style-transparent .gd-modern-title-panel,
body.gd-game-detail.gd-single-hero-style-transparent .gd-template-thumbnail-heading,
body.gd-game-detail.gd-single-hero-style-transparent .gd-app-title-panel {
  background: transparent !important;
  border-color: color-mix(in srgb, var(--gd-border) 42%, transparent);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.gd-game-detail.gd-single-hero-style-transparent.gd-single-summary-transparent .gd-app-summary-panel,
body.gd-game-detail.gd-single-hero-style-transparent.gd-single-summary-transparent .gd-modern-buybox {
  background: transparent !important;
  border-color: color-mix(in srgb, var(--gd-border) 42%, transparent);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body.gd-game-detail .gd-app-titlebar h1,
body.gd-game-detail .gd-modern-title-panel h1,
body.gd-game-detail .gd-template-thumbnail-heading h1,
body.gd-game-detail .gd-app-title-panel h1 {
  font-size: clamp(34px, 6vw, calc(var(--gd-single-title-max, 64px) * var(--gd-heading-scale, 1)));
  line-height: .98;
  letter-spacing: -.045em;
}
body.gd-game-detail .gd-game-body h2,
body.gd-game-detail .gd-panel h2,
body.gd-game-detail .gd-download-card h2,
body.gd-game-detail .gd-side-popular-card h2 {
  font-size: clamp(24px, 3vw, calc(var(--gd-section-title-max, 48px) * var(--gd-heading-scale, 1)));
}
body.gd-game-detail .gd-game-card h3,
body.gd-game-detail .gd-post-card h3 {
  font-size: var(--gd-card-title-size, 18px);
}


.gd-single-template {
  width: min(100%, var(--gd-shell));
  margin-inline: auto;
  display: grid;
  gap: clamp(18px, 2.4vw, 30px);
  align-items: center;
}
body.gd-game-detail .gd-app-hero--html-template > .gd-shell {
  width: min(100% - clamp(28px, 4vw, 64px), var(--gd-shell));
  max-width: var(--gd-shell);
  padding-inline: 0;
}

/* Modern single hero surface cards. Keep template-specific media sizing separate. */
.gd-template-thumbnail-heading,
.gd-template-spotlight-card {
  min-width: 0;
  padding: clamp(28px, 4vw, 58px);
  border-radius: clamp(18px, 2vw, 28px);
}
.gd-template-spotlight-card p,
.gd-template-thumbnail-heading p,
.gd-app-title-panel p {
  max-width: 78ch;
  font-size: clamp(1rem, 1.15vw, 1.25rem);
  line-height: 1.62;
}
.gd-modern-buybox {
  width: min(100%, 380px);
  justify-self: center;
  align-self: center;
  padding: clamp(18px, 2vw, 24px);
  border-radius: clamp(18px, 2vw, 26px);
}
.gd-modern-buybox .gd-app-capsule {
  width: 100%;
  max-width: none;
  aspect-ratio: 16 / 9;
  margin: 0 auto clamp(14px, 2vw, 18px);
  overflow: hidden;
  border-radius: 12px;
  background: rgba(0,0,0,.32);
}
.gd-modern-buybox .gd-app-capsule img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.gd-modern-buybox .gd-app-short-wrap,
.gd-modern-buybox .gd-app-tags { display: none; }
.gd-modern-buybox .gd-app-meta-list { margin-top: 4px; }
.gd-modern-buybox .gd-meta-line { padding-block: 11px; }
.gd-modern-buybox .gd-app-actions { margin-top: 18px; }
.gd-modern-buybox .gd-app-actions .gd-btn { min-height: 54px; }

/* Thumbnail Showcase: title/content first in source, Steam-like thumbnail rail below it, dock beside it. */
.gd-single-template--thumbnail-showcase {
  grid-template-columns: minmax(0, 1fr) minmax(300px, var(--gd-single-sidebar-width, 360px));
  grid-template-areas: "thumb-main thumb-dock";
  align-items: center;
}
.gd-single-template--thumbnail-showcase.gd-single-template--no-media {
  grid-template-columns: minmax(0, 1fr) minmax(300px, var(--gd-single-sidebar-width, 360px));
}
.gd-template-thumbnail-main {
  grid-area: thumb-main;
  min-width: 0;
}
.gd-template-thumbnail-dock {
  grid-area: thumb-dock;
}
.gd-template-thumbnail-gallery {
  margin-top: clamp(14px, 2vw, 24px);
}
.gd-template-thumbnail-gallery.gd-thumbnail-showcase--steam-rail {
  padding-inline: clamp(36px, 5vw, 64px);
}
.gd-template-thumbnail-gallery .gd-thumbnail-showcase-track {
  grid-auto-columns: clamp(210px, 21vw, 300px);
}

/* SEO Spotlight: card first in real HTML, buybox second, full-width media rail third. */
.gd-single-template--spotlight-stack {
  grid-template-columns: minmax(0, 1fr) minmax(300px, var(--gd-single-sidebar-width, 360px));
  grid-template-areas:
    "spotlight-card spotlight-dock"
    "spotlight-media spotlight-media";
  align-items: center;
}
.gd-single-template--spotlight-stack.gd-single-template--no-media {
  grid-template-areas: "spotlight-card spotlight-dock";
}
.gd-template-spotlight-card {
  grid-area: spotlight-card;
  order: 1;
}
.gd-template-spotlight-dock {
  grid-area: spotlight-dock;
  order: 2;
}
.gd-template-spotlight-gallery {
  grid-area: spotlight-media;
  order: 3;
}
.gd-template-spotlight-actions {
  margin-top: clamp(20px, 3vw, 34px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 240px));
  gap: 14px;
}
.gd-template-spotlight-actions .gd-btn { min-height: 56px; }
.gd-template-spotlight-gallery.gd-thumbnail-showcase--steam-rail {
  width: 100%;
  max-width: none;
  margin-top: clamp(2px, .8vw, 10px);
  padding: clamp(16px, 1.8vw, 22px) clamp(44px, 5vw, 76px);
  border-radius: clamp(16px, 2vw, 24px);
  background: color-mix(in srgb, var(--gd-bg) 60%, transparent);
  border: 1px solid color-mix(in srgb, var(--gd-border) 38%, transparent);
}
.gd-template-spotlight-gallery .gd-thumbnail-showcase-track {
  grid-auto-columns: clamp(250px, 23vw, 340px);
}

/* Shared thumbnail/lightbox rail behavior. Template-specific rules above own sizing. */
.gd-thumbnail-showcase {
  width: 100%;
  position: relative;
  isolation: isolate;
}
.gd-thumbnail-showcase-viewport {
  position: relative;
  overflow: visible;
}
.gd-thumbnail-showcase-track {
  display: grid;
  grid-auto-flow: column;
  gap: clamp(8px, 1vw, 12px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 2px;
  padding: 0 2px 8px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.gd-thumbnail-showcase-track::-webkit-scrollbar { display: none; }
.gd-thumbnail-showcase-tile { min-width: 0; scroll-snap-align: start; }
.gd-thumbnail-showcase-trigger {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: inherit;
}
.gd-thumbnail-showcase-art {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 3px;
  background: #05070d;
  border: 2px solid transparent;
}
.gd-thumbnail-showcase-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .22s ease, filter .22s ease;
}
.gd-thumbnail-showcase-trigger:hover .gd-thumbnail-showcase-art img,
.gd-thumbnail-showcase-trigger:focus-visible .gd-thumbnail-showcase-art img { transform: scale(1.025); }
.gd-thumbnail-showcase-tile.is-active .gd-thumbnail-showcase-art {
  border-color: var(--gd-accent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--gd-accent) 28%, transparent), 0 10px 24px rgba(0,0,0,.28);
}
.gd-thumbnail-showcase-play {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 56px;
  height: 56px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  border: 4px solid rgba(255,255,255,.88);
  background: rgba(0,0,0,.18);
  box-shadow: 0 12px 32px rgba(0,0,0,.36);
}
.gd-thumbnail-showcase-play::before {
  content: "";
  position: absolute;
  left: 21px;
  top: 15px;
  border-left: 18px solid #fff;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
}
.gd-thumbnail-showcase-nav {
  position: absolute;
  top: 50%;
  z-index: 5;
  width: 46px;
  height: 64px;
  padding: 0;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.50);
  cursor: pointer;
}
.gd-thumbnail-showcase-nav--prev { left: -54px; }
.gd-thumbnail-showcase-nav--next { right: -54px; }
.gd-thumbnail-showcase-nav span {
  display: block;
  width: 28px;
  height: 28px;
  border-top: 4px solid currentColor;
  border-right: 4px solid currentColor;
}
.gd-thumbnail-showcase-nav--prev span { transform: rotate(-135deg); margin-left: 12px; }
.gd-thumbnail-showcase-nav--next span { transform: rotate(45deg); margin-left: 2px; }
.gd-thumbnail-showcase-nav:hover,
.gd-thumbnail-showcase-nav:focus-visible { color: rgba(255,255,255,.84); }
.gd-thumbnail-showcase-indicator {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-height: 16px;
  margin-top: 2px;
}
.gd-thumbnail-showcase-indicator span {
  width: 54px;
  height: 2px;
  border-radius: 999px;
  background: rgba(255,255,255,.20);
}
.gd-thumbnail-showcase-indicator span.is-active {
  height: 3px;
  background: var(--gd-accent);
}

/* Laptop/tablet hardening: keep two-column balance until real tablet width. */
@media (max-width: 1180px) {
  body.gd-game-detail .gd-app-hero--html-template > .gd-shell { width: min(100% - 28px, var(--gd-shell)); }
  .gd-single-template {
    gap: clamp(16px, 2vw, 24px);
  }
  .gd-single-template--thumbnail-showcase,
  .gd-single-template--spotlight-stack {
    grid-template-columns: minmax(0, 1fr) minmax(280px, var(--gd-single-sidebar-width, 360px));
  }
  .gd-modern-buybox {
    width: min(100%, var(--gd-single-sidebar-width, 360px));
    justify-self: center;
  }
  .gd-modern-buybox .gd-app-capsule { max-height: 280px; }
  .gd-template-thumbnail-gallery.gd-thumbnail-showcase--steam-rail { padding-inline: clamp(28px, 4vw, 46px); }
  .gd-template-thumbnail-gallery .gd-thumbnail-showcase-track { grid-auto-columns: clamp(196px, 24vw, 270px); }
  .gd-template-spotlight-gallery.gd-thumbnail-showcase--steam-rail { padding-inline: clamp(34px, 4.4vw, 54px); }
  .gd-template-spotlight-gallery .gd-thumbnail-showcase-track { grid-auto-columns: clamp(220px, 27vw, 310px); }
  .gd-thumbnail-showcase-nav--prev { left: -20px; }
  .gd-thumbnail-showcase-nav--next { right: -20px; }
}

/* Pros & Cons and FAQ sections. */
.gd-pros-cons-panel,
.gd-faq-panel,
.gd-post-body-panel {
  position: relative;
  overflow: hidden;
}
.gd-pros-cons-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2.2vw, 28px);
}
.gd-pros-cons-panel--stacked .gd-pros-cons-grid,
.gd-pros-cons-panel--compact .gd-pros-cons-grid { grid-template-columns: minmax(0, 1fr); }
.gd-verdict-card {
  padding: clamp(16px, 2vw, 24px);
  border: 1px solid color-mix(in srgb, var(--gd-border) 78%, transparent);
  border-radius: var(--gd-card-radius);
  background: color-mix(in srgb, var(--gd-card) 82%, transparent);
}
.gd-verdict-title {
  display: block;
  margin: 0 0 .8em;
  color: var(--gd-text);
  font-size: clamp(20px, 2.2vw, 28px);
  line-height: 1.15;
  font-weight: 900;
}
.gd-verdict-card h3 { margin-top: 0; }
.gd-verdict-list {
  display: grid;
  gap: .7em;
  margin: 0;
  padding: 0;
  list-style: none;
}
.gd-verdict-list li {
  display: grid;
  grid-template-columns: 1.35em minmax(0, 1fr);
  align-items: start;
  gap: .75em;
  margin: 0;
  color: var(--gd-muted);
}
.gd-verdict-mark {
  display: inline-flex;
  width: 1.35em;
  min-width: 1.35em;
  height: 1.35em;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1.25em;
  line-height: 1;
  transform: translateY(.02em);
}
.gd-verdict-mark--pros { color: #22c55e; }
.gd-verdict-mark--cons { color: #ef4444; }
.gd-verdict-text { min-width: 0; }
.gd-pros-box,
.gd-cons-box {
  padding: clamp(16px, 2vw, 24px);
  border: 1px solid color-mix(in srgb, var(--gd-border) 78%, transparent);
  border-radius: var(--gd-card-radius);
  background: color-mix(in srgb, var(--gd-card) 82%, transparent);
}
.gd-pros-box h3,
.gd-cons-box h3 { margin-top: 0; }
.gd-pros-list,
.gd-cons-list { margin: 0; padding-left: 1.2em; }
.gd-pros-list li,
.gd-cons-list li { margin-block: .45em; }
.gd-faq-list { display: grid; gap: 12px; }
.gd-faq-item {
  border: 1px solid color-mix(in srgb, var(--gd-border) 78%, transparent);
  border-radius: var(--gd-card-radius);
  background: color-mix(in srgb, var(--gd-card) 80%, transparent);
  overflow: hidden;
}
.gd-faq-item summary {
  cursor: pointer;
  padding: 16px 18px;
  font-weight: 800;
  color: var(--gd-text);
}
.gd-faq-item .gd-content { padding: 0 18px 18px; }
.gd-faq-item .gd-content > :first-child { margin-top: 0; }
.gd-faq-item .gd-content > :last-child { margin-bottom: 0; }


/* Responsive content-section support kept separate from hero-template rules. */
@media (max-width: 838px) {
  .gd-pros-cons-grid { grid-template-columns: minmax(0, 1fr); }
  .gd-game-tabs > .gd-shell {
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
  }
  .gd-game-tabs > .gd-shell::-webkit-scrollbar { display: none; }
  .gd-game-tabs a { white-space: nowrap; }
}


/* 18.80.80 final modern single-template responsive contract. */
.gd-single-template .gd-app-summary-panel.gd-modern-buybox,
.gd-single-template .gd-template-thumbnail-dock.gd-modern-buybox,
.gd-single-template .gd-template-spotlight-dock.gd-modern-buybox {
  order: initial;
  display: block;
  grid-template-columns: none;
  grid-column: auto;
  grid-row: auto;
  min-width: 0;
}
.gd-single-template--thumbnail-showcase .gd-template-thumbnail-dock { grid-area: thumb-dock; }
.gd-single-template--spotlight-stack .gd-template-spotlight-dock { grid-area: spotlight-dock; }
.gd-single-template--spotlight-stack .gd-template-spotlight-card { grid-area: spotlight-card; }
.gd-single-template--spotlight-stack .gd-template-spotlight-gallery { grid-area: spotlight-media; }
.gd-single-template--thumbnail-showcase .gd-template-thumbnail-main { grid-area: thumb-main; }
.gd-single-template .gd-modern-buybox .gd-app-capsule,
.gd-single-template .gd-modern-buybox .gd-app-capsule img {
  grid-column: auto;
  grid-row: auto;
}
.gd-single-template .gd-modern-buybox .gd-app-actions,
.gd-single-template .gd-modern-buybox .gd-app-meta-list,
.gd-single-template .gd-modern-buybox .gd-app-tags,
.gd-single-template .gd-modern-buybox .gd-app-short {
  grid-column: auto;
}

@media (max-width: 1080px) {
  .gd-single-template .gd-app-summary-panel.gd-modern-buybox,
  .gd-single-template .gd-template-thumbnail-dock.gd-modern-buybox,
  .gd-single-template .gd-template-spotlight-dock.gd-modern-buybox {
    order: initial;
    display: block;
    max-width: 360px;
    width: min(100%, 360px);
    justify-self: center;
    align-self: center;
    margin-inline: auto;
  }
  .gd-single-template .gd-modern-buybox .gd-app-capsule {
    width: 100%;
    max-width: none;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 838px) {
  .gd-single-template--spotlight-stack,
  .gd-single-template--spotlight-stack.gd-single-template--media,
  .gd-single-template--spotlight-stack.gd-single-template--no-media {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "spotlight-card"
      "spotlight-dock"
      "spotlight-media";
  }
  .gd-single-template--thumbnail-showcase,
  .gd-single-template--thumbnail-showcase.gd-single-template--no-media {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "thumb-main"
      "thumb-dock";
  }
  body.gd-game-detail .gd-app-hero { padding-block: clamp(22px, 7vw, 42px); }
  body.gd-game-detail .gd-app-hero--html-template > .gd-shell { width: min(100% - 22px, var(--gd-shell)); }
  .gd-single-template { gap: 14px; }
  .gd-template-spotlight-card,
  .gd-template-thumbnail-heading {
    padding: clamp(20px, 6vw, 30px);
  }
  body.gd-game-detail .gd-modern-title-panel h1,
  body.gd-game-detail .gd-template-thumbnail-heading h1,
  body.gd-game-detail .gd-app-title-panel h1 {
    font-size: clamp(32px, 10vw, 46px);
    line-height: 1;
  }
  .gd-template-spotlight-card p,
  .gd-template-thumbnail-heading p,
  .gd-app-title-panel p {
    font-size: 1rem;
    line-height: 1.55;
  }
  .gd-template-spotlight-actions,
  .gd-modern-buybox .gd-app-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gd-template-spotlight-actions.gd-app-actions--single,
  .gd-modern-buybox .gd-app-actions.gd-app-actions--single {
    grid-template-columns: minmax(0, 1fr);
  }
  .gd-template-spotlight-actions .gd-btn,
  .gd-modern-buybox .gd-app-actions .gd-btn {
    width: 100%;
    min-height: 50px;
  }
  .gd-single-template .gd-app-summary-panel.gd-modern-buybox,
  .gd-single-template .gd-template-thumbnail-dock.gd-modern-buybox,
  .gd-single-template .gd-template-spotlight-dock.gd-modern-buybox {
    width: min(100%, 560px);
    max-width: 560px;
    padding: 16px;
    justify-self: center;
  }
  .gd-single-template--thumbnail-showcase .gd-template-thumbnail-main,
  .gd-single-template--spotlight-stack .gd-template-spotlight-card,
  .gd-single-template--spotlight-stack .gd-template-spotlight-gallery {
    min-width: 0;
  }
  .gd-template-thumbnail-gallery.gd-thumbnail-showcase--steam-rail,
  .gd-template-spotlight-gallery.gd-thumbnail-showcase--steam-rail {
    margin-top: 0;
    padding: 12px 0 8px;
    border-radius: 0;
    border-inline: 0;
    background: transparent;
  }
  .gd-template-thumbnail-gallery .gd-thumbnail-showcase-track {
    grid-auto-columns: clamp(180px, 44vw, 284px);
  }
  .gd-template-spotlight-gallery .gd-thumbnail-showcase-track {
    grid-auto-columns: clamp(204px, 58vw, 324px);
  }
  .gd-thumbnail-showcase-track {
    gap: 10px;
    padding-inline: 2px;
  }
  .gd-thumbnail-showcase-nav { display: none; }
  .gd-thumbnail-showcase-indicator {
    justify-content: flex-start;
    overflow-x: auto;
    padding-inline: 2px;
    scrollbar-width: none;
  }
  .gd-thumbnail-showcase-indicator::-webkit-scrollbar { display: none; }
  .gd-thumbnail-showcase-indicator span { width: 34px; flex: 0 0 34px; }
  .gd-thumbnail-showcase-play { width: 44px; height: 44px; border-width: 3px; }
  .gd-thumbnail-showcase-play::before { left: 17px; top: 12px; border-left-width: 14px; border-top-width: 9px; border-bottom-width: 9px; }
}

@media (max-width: 640px) {
  .gd-template-thumbnail-gallery .gd-thumbnail-showcase-track {
    grid-auto-columns: minmax(176px, 72vw);
  }
  .gd-template-spotlight-gallery .gd-thumbnail-showcase-track {
    grid-auto-columns: minmax(188px, 78vw);
  }
  .gd-single-template .gd-modern-buybox {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 480px) {
  .gd-template-thumbnail-gallery .gd-thumbnail-showcase-track,
  .gd-template-spotlight-gallery .gd-thumbnail-showcase-track {
    grid-auto-columns: minmax(168px, 82vw);
  }
  .gd-template-spotlight-actions,
  .gd-single-template .gd-modern-buybox .gd-app-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* 18.80.80 hero-only polish: scoped media rail motion and hero button radius inheritance. */
.gd-single-template .gd-thumbnail-showcase-track {
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  will-change: scroll-position;
}
.gd-single-template .gd-thumbnail-showcase.is-gd-rail-moving .gd-thumbnail-showcase-track {
  scroll-behavior: smooth;
}
.gd-single-template .gd-thumbnail-showcase-tile,
.gd-single-template .gd-thumbnail-showcase-art,
.gd-single-template .gd-thumbnail-showcase-indicator span {
  transition:
    transform .28s cubic-bezier(.22,1,.36,1),
    opacity .28s cubic-bezier(.22,1,.36,1),
    border-color .22s ease,
    box-shadow .22s ease,
    background-color .22s ease,
    height .22s ease;
}
.gd-single-template .gd-thumbnail-showcase.is-gd-rail-moving .gd-thumbnail-showcase-tile:not(.is-active) {
  opacity: .72;
  transform: scale(.985);
}
.gd-single-template .gd-thumbnail-showcase.is-gd-rail-moving .gd-thumbnail-showcase-tile.is-active {
  opacity: 1;
  transform: scale(1);
}
.gd-single-template .gd-thumbnail-showcase-nav {
  transition: color .18s ease, opacity .18s ease, transform .18s ease;
}
.gd-single-template .gd-thumbnail-showcase-nav:active {
  transform: translateY(-50%) scale(.96);
}
.gd-app-hero .gd-app-actions .gd-btn,
.gd-single-template .gd-template-spotlight-actions .gd-btn,
.gd-single-template .gd-modern-buybox .gd-app-actions .gd-btn {
  border-radius: var(--gd-button-radius);
}
.gd-single-template .gd-thumbnail-showcase-trigger,
.gd-single-template .gd-thumbnail-showcase-art {
  border-radius: max(2px, min(var(--gd-media-radius), 10px));
}
.gd-single-template .gd-modern-buybox .gd-app-capsule {
  border-radius: var(--gd-media-radius);
}
.gd-single-template .gd-template-thumbnail-heading,
.gd-single-template .gd-template-spotlight-card,
.gd-single-template .gd-modern-buybox {
  border-radius: var(--gd-radius);
}
@media (prefers-reduced-motion: reduce) {
  .gd-single-template .gd-thumbnail-showcase-track {
    scroll-behavior: auto;
  }
  .gd-single-template .gd-thumbnail-showcase-tile,
  .gd-single-template .gd-thumbnail-showcase-art,
  .gd-single-template .gd-thumbnail-showcase-art img,
  .gd-single-template .gd-thumbnail-showcase-indicator span,
  .gd-single-template .gd-thumbnail-showcase-nav {
    transition: none !important;
  }
  .gd-single-template .gd-thumbnail-showcase.is-gd-rail-moving .gd-thumbnail-showcase-tile,
  .gd-single-template .gd-thumbnail-showcase.is-gd-rail-moving .gd-thumbnail-showcase-tile:not(.is-active) {
    opacity: 1;
    transform: none;
  }
}
body.gd-no-motion .gd-single-template .gd-thumbnail-showcase-track {
  scroll-behavior: auto;
}
body.gd-no-motion .gd-single-template .gd-thumbnail-showcase-tile,
body.gd-no-motion .gd-single-template .gd-thumbnail-showcase-art,
body.gd-no-motion .gd-single-template .gd-thumbnail-showcase-art img,
body.gd-no-motion .gd-single-template .gd-thumbnail-showcase-indicator span,
body.gd-no-motion .gd-single-template .gd-thumbnail-showcase-nav {
  transition: none !important;
}


/* 18.80.80 transparent single-hero polish. */
body.gd-game-detail.gd-single-hero-style-transparent .gd-modern-title-panel,
body.gd-game-detail.gd-single-hero-style-transparent .gd-template-thumbnail-heading,
body.gd-game-detail.gd-single-hero-style-transparent .gd-app-title-panel {
  border-color: transparent !important;
  border-width: 0 !important;
}
body.gd-game-detail.gd-single-hero-style-transparent.gd-single-summary-transparent .gd-app-summary-panel,
body.gd-game-detail.gd-single-hero-style-transparent.gd-single-summary-transparent .gd-modern-buybox {
  border-color: transparent !important;
  border-width: 0 !important;
}


/* 18.80.81: JS-owned smooth arrow motion for single hero media rails. */
.gd-single-template .gd-thumbnail-showcase-track {
  scroll-behavior: auto;
}
.gd-single-template .gd-thumbnail-showcase.is-gd-rail-animating .gd-thumbnail-showcase-track {
  scroll-behavior: auto;
}
.gd-single-template .gd-thumbnail-showcase.is-gd-rail-animating .gd-thumbnail-showcase-tile.is-active .gd-thumbnail-showcase-art {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--gd-accent) 74%, #fff 8%), 0 18px 42px rgba(0,0,0,.30);
}
@media (prefers-reduced-motion: reduce) {
  .gd-single-template .gd-thumbnail-showcase.is-gd-rail-animating .gd-thumbnail-showcase-tile.is-active .gd-thumbnail-showcase-art {
    box-shadow: none;
  }
}
body.gd-no-motion .gd-single-template .gd-thumbnail-showcase.is-gd-rail-animating .gd-thumbnail-showcase-tile.is-active .gd-thumbnail-showcase-art {
  box-shadow: none;
}

/* 88.88.88: single download card heading tag/source controls. */
body.gd-game-detail .gd-download-card .gd-download-card-heading {
  display: block;
  margin: 0;
  font-size: clamp(24px, 3vw, calc(var(--gd-section-title-max, 48px) * var(--gd-heading-scale, 1)));
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -.03em;
  color: var(--gd-text);
}


/* 88.88.88: summary short-description toggle controls. */
.gd-app-short-wrap--static .gd-app-short,
.gd-app-summary-panel .gd-app-short-wrap--static .gd-app-short {
  max-height: none !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  display: block;
}
.gd-app-short-wrap--static::after,
.gd-app-summary-panel .gd-app-short-wrap--static::after {
  display: none !important;
}
.gd-app-short-wrap[data-gd-short-mode="words"] .gd-app-short,
.gd-app-short-wrap[data-gd-short-mode="characters"] .gd-app-short {
  max-height: none;
  overflow: visible;
  display: block;
}


/* 88.88.88: single game version badge and version chip. */
.gd-card-version {
  letter-spacing: .01em;
}
.gd-version-badge {
  position: relative;
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin: 2px 0 4px;
  z-index: 5;
}
.gd-version-badge-summary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 20%, var(--gd-border));
  border-radius: var(--gd-button-radius, var(--gd-radius));
  background: linear-gradient(135deg, color-mix(in srgb, var(--gd-card) 84%, transparent), color-mix(in srgb, var(--gd-card-2) 70%, transparent));
  box-shadow: var(--gd-shadow-soft, 0 18px 45px rgba(0,0,0,.18));
  cursor: pointer;
  list-style: none;
}
.gd-version-badge-summary::-webkit-details-marker {
  display: none;
}
.gd-version-badge--static .gd-version-badge-summary {
  cursor: default;
}
.gd-version-badge-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--gd-success, #22c55e);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--gd-success, #22c55e) 18%, transparent), 0 0 18px color-mix(in srgb, var(--gd-success, #22c55e) 42%, transparent);
  flex: 0 0 auto;
}
.gd-version-badge-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
  line-height: 1.05;
}
.gd-version-badge-label {
  color: var(--gd-text-muted);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.gd-version-badge-copy strong {
  color: var(--gd-text);
  font-size: .86rem;
  font-weight: 850;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gd-version-badge-popover {
  position: absolute;
  left: 0;
  top: calc(100% + 10px);
  width: min(310px, calc(100vw - 32px));
  padding: 14px;
  border: 1px solid var(--gd-border);
  border-radius: var(--gd-card-radius, var(--gd-radius));
  background: color-mix(in srgb, var(--gd-surface) 94%, #000 6%);
  box-shadow: var(--gd-shadow-strong, 0 28px 80px rgba(0,0,0,.34));
  color: var(--gd-text);
}
.gd-version-badge-popover p {
  margin: 6px 0 0;
  color: var(--gd-text-muted);
  font-size: .86rem;
}
@media (max-width: 640px) {
  .gd-version-badge {
    width: 100%;
  }
  .gd-version-badge-summary {
    width: 100%;
  }
  .gd-version-badge-popover {
    left: 0;
    right: auto;
  }
}


/* 88.88.88: game-card version is its own hover-only media chip, not part of the CTA. */
.gd-game-card .gd-card-cta-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gd-game-card .gd-card-media-meta .gd-card-version-hover {
  color: rgba(191, 219, 254, .96);
}

/* 88.88.88 card title overflow setting.
   Default/current mode keeps the existing ellipsis clamp. The two alternate
   modes override every earlier card-title clamp rule with stronger body
   classes so the Customizer control is authoritative. */
body.gd-card-title-overflow-full .gd-game-card .gd-card-title,
body.gd-card-title-overflow-full .gd-post-card .gd-card-title,
body.gd-card-title-overflow-full .gd-related-store-grid .gd-card-title,
body.gd-card-title-overflow-full .gd-related-grid-static .gd-card-title {
  min-height: 0;
}

body.gd-card-title-overflow-full .gd-game-card .gd-card-title a,
body.gd-card-title-overflow-full .gd-post-card .gd-card-title a,
body.gd-card-title-overflow-full .gd-related-store-grid .gd-card-title a,
body.gd-card-title-overflow-full .gd-related-grid-static .gd-card-title a {
  display: block;
  max-height: none;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  -webkit-line-clamp: unset;
  -webkit-box-orient: initial;
}

body.gd-card-title-overflow-clip .gd-game-card .gd-card-title a,
body.gd-card-title-overflow-clip .gd-post-card .gd-card-title a,
body.gd-card-title-overflow-clip .gd-related-store-grid .gd-card-title a,
body.gd-card-title-overflow-clip .gd-related-grid-static .gd-card-title a {
  display: block;
  max-height: calc(var(--gd-card-title-line-height, 1.3) * 2em);
  overflow: hidden;
  text-overflow: clip;
  white-space: normal;
  -webkit-line-clamp: unset;
  -webkit-box-orient: initial;
}

/* 88.88.88: card title alignment setting. */
body.gd-card-title-align-left .gd-game-card .gd-card-title,
body.gd-card-title-align-left .gd-post-card .gd-card-title,
body.gd-card-title-align-left .gd-related-store-grid .gd-card-title,
body.gd-card-title-align-left .gd-related-grid-static .gd-card-title {
  text-align: left;
}

body.gd-card-title-align-center .gd-game-card .gd-card-title,
body.gd-card-title-align-center .gd-post-card .gd-card-title,
body.gd-card-title-align-center .gd-related-store-grid .gd-card-title,
body.gd-card-title-align-center .gd-related-grid-static .gd-card-title {
  text-align: center;
}

body.gd-card-title-align-right .gd-game-card .gd-card-title,
body.gd-card-title-align-right .gd-post-card .gd-card-title,
body.gd-card-title-align-right .gd-related-store-grid .gd-card-title,
body.gd-card-title-align-right .gd-related-grid-static .gd-card-title {
  text-align: right;
}

body[class*="gd-card-title-align-"] .gd-game-card .gd-card-title a,
body[class*="gd-card-title-align-"] .gd-post-card .gd-card-title a,
body[class*="gd-card-title-align-"] .gd-related-store-grid .gd-card-title a,
body[class*="gd-card-title-align-"] .gd-related-grid-static .gd-card-title a {
  text-align: inherit;
}

/* GamesDen final: polished 404/search form. */
.gd-search-form--site {
  display: flex;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  max-width: 100%;
  margin-top: 20px;
}
.gd-search-form--site input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 48px;
}
.gd-search-form--site .gd-search-form-submit {
  flex: 0 0 auto;
  min-height: 48px;
  padding-inline: 22px;
  white-space: nowrap;
}
.gd-empty-state .gd-search-form--site {
  max-width: 100%;
}
@media (max-width: 600px) {
  .gd-search-form--site {
    flex-direction: column;
  }
  .gd-search-form--site .gd-search-form-submit {
    width: 100%;
  }
}


/* 16.29.96: do not reserve avatar columns when review/comment authors have no real avatar. */
.gd-review-card.gd-no-avatar,
.gd-comment-card.gd-no-avatar {
  grid-template-columns: minmax(0, 1fr);
}
.gd-review-spotlight-author.gd-no-avatar {
  grid-template-columns: minmax(0, 1fr);
}

/* 16.30.01 comment form wheel-scroll safety.
   Sticky comment forms must never become an inner scroll container. When the
   cursor is over the form, wheel/touch scrolling should continue moving the
   page instead of getting trapped by the sidebar panel. */
body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel,
body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel,
body.gd-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel--sidebar,
body.gd-single-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel--sidebar,
body.gd-page-comment-form-position-sidebar.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel--sidebar,
body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel,
body.gd-js-page-comment-sticky-ready.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel.is-gd-page-comment-transform-sticky {
  max-height: none !important;
  overflow: visible !important;
  overscroll-behavior: auto !important;
  -webkit-overflow-scrolling: auto;
  touch-action: auto;
}

body.gd-comment-form-sticky-on .gd-comments-section .gd-comment-form-panel textarea,
body.gd-comment-form-sticky-on .gd-comments-section--page .gd-comment-form-panel textarea,
body.gd-comment-form-sticky-on .gd-comments-section--post .gd-comment-form-panel textarea {
  overscroll-behavior: auto;
}

/* 16.30.08 responsive polish: community header width, compact filter actions, spotlight review author row. */
.gd-community-head-copy,
.gd-community-head-copy p {
  max-width: 100%;
}
.gd-filter-pro .gd-filter-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  font-weight: 500;
}
.gd-filter-pro .gd-filter-actions button,
.gd-filter-pro .gd-filter-actions a {
  min-width: 0;
}
.gd-review-spotlight-author > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-width: 0;
}
.gd-review-spotlight-author > div > strong {
  min-width: 0;
}
.gd-review-spotlight-author > div > span {
  flex: 0 0 auto;
}
@media (max-width: 360px) {
  .gd-filter-pro .gd-filter-actions {
    grid-template-columns: 1fr;
  }
  .gd-review-spotlight-author > div {
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-start;
  }
}

/* 16.30.09 compact comment actions aligned to the right. */
.gd-comment-actions {
  justify-content: flex-end;
  gap: 6px;
  width: 100%;
  margin-top: 6px;
}
.gd-comment-actions a,
.gd-comment-edit {
  min-height: 26px;
  padding: 4px 9px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.15;
}

/* 16.31.00: single hero status row lives under the title.
   Version/update comes first because it supports the download decision; rating
   follows as trust proof. Keep it out of the H1 for clean SEO/accessibility. */
.gd-app-titlebar .gd-app-eyebrow-row--status,
.gd-modern-title-panel .gd-app-eyebrow-row--status {
  align-items: center;
  gap: 8px 10px;
  margin-top: 12px;
  margin-bottom: 16px;
  max-width: min(100%, 920px);
}
.gd-app-titlebar .gd-app-eyebrow-row--status:last-child,
.gd-modern-title-panel .gd-app-eyebrow-row--status:last-child {
  margin-bottom: 0;
}
.gd-app-eyebrow-row--status .gd-title-rating,
.gd-app-eyebrow-row--status .gd-version-badge {
  margin: 0;
  flex: 0 1 auto;
}
.gd-app-eyebrow-row--status .gd-version-badge {
  width: auto;
  z-index: 7;
}
.gd-app-eyebrow-row--status .gd-title-rating,
.gd-app-eyebrow-row--status .gd-version-badge-summary {
  border-radius: var(--gd-button-radius, 999px);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 10px 26px rgba(0,0,0,.13);
}
.gd-app-eyebrow-row--status .gd-version-badge-summary {
  width: auto;
  max-width: 100%;
  gap: 8px;
  border-color: color-mix(in srgb, var(--gd-success, #22c55e) 28%, var(--gd-border));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--gd-success, #22c55e) 12%, transparent), color-mix(in srgb, var(--gd-accent) 8%, transparent)),
    var(--gd-style-badge-bg, linear-gradient(135deg, color-mix(in srgb, var(--gd-card) 84%, transparent), color-mix(in srgb, var(--gd-card-2) 70%, transparent)));
}
.gd-app-eyebrow-row--status .gd-title-rating {
  border-color: color-mix(in srgb, var(--gd-accent) 28%, var(--gd-border));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--gd-accent) 10%, transparent), color-mix(in srgb, var(--gd-card-2) 8%, transparent)),
    var(--gd-style-badge-bg, color-mix(in srgb, var(--gd-accent) 9%, transparent));
}
.gd-app-eyebrow-row--status .gd-version-badge-dot {
  width: 8px;
  height: 8px;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gd-success, #22c55e) 16%, transparent), 0 0 14px color-mix(in srgb, var(--gd-success, #22c55e) 34%, transparent);
}
.gd-app-eyebrow-row--status .gd-version-badge-copy {
  display: flex;
  align-items: baseline;
  gap: 4px;
  min-width: 0;
  line-height: 1;
}
.gd-app-eyebrow-row--status .gd-version-badge-label,
.gd-app-eyebrow-row--status .gd-version-badge-copy strong,
.gd-app-eyebrow-row--status .gd-title-rating strong,
.gd-app-eyebrow-row--status .gd-title-rating em {
  line-height: 1;
  white-space: nowrap;
}
.gd-app-eyebrow-row--status .gd-version-badge-label,
.gd-app-eyebrow-row--status .gd-version-badge-copy strong,
.gd-app-eyebrow-row--status .gd-title-rating strong {
  font-size: 12px;
  font-weight: 850;
}
.gd-app-eyebrow-row--status .gd-version-badge-label {
  color: var(--gd-text);
}
.gd-app-eyebrow-row--status .gd-title-rating em {
  font-size: 11px;
}
.gd-app-eyebrow-row--status + p,
.gd-modern-title-panel .gd-app-eyebrow-row--status + p {
  margin-top: 0;
}
@media (max-width: 640px) {
  .gd-app-titlebar .gd-app-eyebrow-row--status,
  .gd-modern-title-panel .gd-app-eyebrow-row--status {
    align-items: flex-start;
    gap: 7px;
    margin-top: 10px;
    margin-bottom: 14px;
  }
  .gd-app-eyebrow-row--status .gd-title-rating,
  .gd-app-eyebrow-row--status .gd-version-badge {
    width: auto;
    max-width: 100%;
  }
  .gd-app-eyebrow-row--status .gd-title-rating,
  .gd-app-eyebrow-row--status .gd-version-badge-summary {
    max-width: 100%;
  }
  .gd-app-eyebrow-row--status .gd-version-badge-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
@media (max-width: 420px) {
  .gd-app-titlebar .gd-app-eyebrow-row--status,
  .gd-modern-title-panel .gd-app-eyebrow-row--status {
    flex-direction: column;
    align-items: stretch;
  }
  .gd-app-eyebrow-row--status .gd-title-rating,
  .gd-app-eyebrow-row--status .gd-version-badge,
  .gd-app-eyebrow-row--status .gd-version-badge-summary {
    width: 100%;
  }
  .gd-app-eyebrow-row--status .gd-title-rating,
  .gd-app-eyebrow-row--status .gd-version-badge-summary {
    justify-content: center;
  }
}

/* Accessibility hardening for review controls.
   Keep the rating spread and review sorting readable across dark presets and custom colors. */
.gd-review-sort-pill:not(.is-active),
.gd-rating-row {
  color: var(--gd-text);
}
.gd-rating-row span,
.gd-rating-row em {
  color: currentColor;
}
button.gd-rating-row:not(:disabled):hover,
button.gd-rating-row:not(:disabled):focus-visible,
.gd-rating-row.is-active {
  color: var(--gd-text);
  background: color-mix(in srgb, var(--gd-text) 5%, transparent);
}
.gd-rating-row.is-disabled,
.gd-rating-row:disabled,
.gd-review-sort-pill.is-disabled,
.gd-review-sort-pill[aria-disabled="true"],
.gd-review-sort-pill:disabled {
  opacity: 1;
  color: color-mix(in srgb, var(--gd-text) 76%, var(--gd-muted));
}
.gd-review-sort-pill.is-disabled,
.gd-review-sort-pill[aria-disabled="true"],
.gd-review-sort-pill:disabled {
  background: color-mix(in srgb, var(--gd-text) 5%, transparent);
}
.gd-rating-bar {
  background: color-mix(in srgb, var(--gd-text) 16%, transparent);
}
.gd-rating-row.is-disabled .gd-rating-bar,
.gd-rating-row:disabled .gd-rating-bar {
  background: color-mix(in srgb, var(--gd-text) 12%, transparent);
}
.gd-review-sort-loading,
.gd-rating-filter-loading {
  color: var(--gd-text);
}
.gd-review-sort-pill:focus-visible,
button.gd-rating-row:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--gd-accent) 84%, #fff);
  outline-offset: 4px;
}


/* Accessibility hardening: force rating-filter labels/counts to meet contrast in all presets.
   Lighthouse evaluates the inner span/em nodes directly, so do not rely on inherited muted colors. */
.gd-rating-row > span,
.gd-rating-row > em,
button.gd-rating-row > span,
button.gd-rating-row > em {
  color: #ffffff !important;
  opacity: 1 !important;
}
.gd-rating-row:disabled > span,
.gd-rating-row:disabled > em,
.gd-rating-row.is-disabled > span,
.gd-rating-row.is-disabled > em {
  color: #d8e3f3 !important;
  opacity: 1 !important;
}
.gd-rating-row > span {
  text-shadow: none;
}
.gd-rating-row > em {
  text-shadow: none;
}


/* Comment reply fallback: keep moved reply form usable on single posts, games, and pages. */
.gd-comment-form-panel--replying {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  bottom: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 14px 0 18px !important;
  transform: none !important;
  z-index: 3;
}
.gd-comment-item > .gd-comment-form-panel--replying,
.gd-comment-card + .gd-comment-form-panel--replying {
  margin-left: 0 !important;
}

/* 88.88.888: stable custom threaded-comment reply handling. */
.gd-comment-actions .comment-reply-link,
.gd-comment-actions .gd-comment-reply {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid rgba(248,250,252,.24);
  border-radius: 8px;
  color: var(--gd-text);
  text-decoration: none;
  background: rgba(248,250,252,.08);
  box-shadow: none;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.15;
  cursor: pointer;
}
.gd-comment-actions .comment-reply-link:hover,
.gd-comment-actions .gd-comment-reply:hover,
.gd-comment-actions .comment-reply-link:focus-visible,
.gd-comment-actions .gd-comment-reply:focus-visible {
  color: var(--gd-text);
  border-color: rgba(248,250,252,.38);
  background: rgba(248,250,252,.13);
}
.gd-comment-actions .comment-reply-link:focus-visible,
.gd-comment-actions .gd-comment-reply:focus-visible,
#cancel-comment-reply-link:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--gd-accent) 78%, white);
  outline-offset: 3px;
}
.gd-comment-form-title small {
  display: inline-flex;
  margin-left: 8px;
  vertical-align: middle;
}
#cancel-comment-reply-link {
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 8px;
  color: var(--gd-text);
  background: rgba(255,255,255,.07);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.15;
  text-decoration: none;
}
#cancel-comment-reply-link:hover {
  background: rgba(255,255,255,.12);
}
.gd-comment-form-panel:empty,
.gd-comment-form-panel--replying:empty {
  display: none !important;
}

/* Mobile performance and interaction guardrails.
   Keep features intact; only prevent off-canvas controls, mobile CLS, submenu bleed,
   and touch-device card paint work that should never run on phones. */
body.home .gd-home-slider {
  position: relative;
  isolation: isolate;
}
body.home .gd-home-slider .gd-home-nav {
  z-index: 40;
  top: 50%;
  transform: translateY(-50%);
}
body.home .gd-home-slider .gd-home-prev { left: clamp(12px, 1.4vw, 24px); }
body.home .gd-home-slider .gd-home-next { right: clamp(12px, 1.4vw, 24px); }

@media (min-width: 721px) {
  body.home .gd-home-slider--store-rail .gd-home-prev {
    left: max(18px, calc((100% - var(--gd-rail-card-width, min(74vw, 1220px))) / 2 + 18px)) !important;
  }
  body.home .gd-home-slider--store-rail .gd-home-next {
    right: max(18px, calc((100% - var(--gd-rail-card-width, min(74vw, 1220px))) / 2 + 18px)) !important;
  }
  body.home .gd-home-slider--cover-flow {
    --gd-cover-card-width: min(var(--gd-shell, 1240px), calc(100vw - 40px));
  }
  body.home .gd-home-slider--cover-flow .gd-home-prev {
    left: max(18px, calc((100% - var(--gd-cover-card-width)) / 2 + 18px)) !important;
  }
  body.home .gd-home-slider--cover-flow .gd-home-next {
    right: max(18px, calc((100% - var(--gd-cover-card-width)) / 2 + 18px)) !important;
  }
  body.home .gd-home-slider--deal-rail {
    --gd-deal-card-width: min(78vw, 1120px);
  }
  body.home .gd-home-slider--deal-rail .gd-home-prev {
    left: max(18px, calc((100% - var(--gd-deal-card-width)) / 2 + 18px)) !important;
  }
  body.home .gd-home-slider--deal-rail .gd-home-next {
    right: max(18px, calc((100% - var(--gd-deal-card-width)) / 2 + 18px)) !important;
  }
}

body.home .gd-home-slider .gd-home-nav:hover,
body.home .gd-home-slider .gd-home-nav:focus-visible {
  transform: translateY(-50%);
}

@media (max-width: 720px) {
  body.home .gd-home-slider,
  body.home .gd-home-slider--store-rail,
  body.home .gd-home-slider--cover-flow,
  body.home .gd-home-slider--deal-rail,
  body.home .gd-home-slider--media-showcase,
  body.home .gd-home-slider--poster-split,
  body.home .gd-home-slider--spotlight {
    overflow: hidden;
    touch-action: pan-y;
    overscroll-behavior-x: contain;
  }
  body.home .gd-home-slider--spotlight .gd-home-slides,
  body.home .gd-home-slider--poster-split .gd-home-slides,
  body.home .gd-home-slider--cover-flow .gd-home-slides,
  body.home .gd-home-slider--media-showcase .gd-home-slides,
  body.home .gd-home-slider--deal-rail .gd-home-slides,
  body.home .gd-home-slider--store-rail .gd-home-slides {
    height: clamp(430px, 124vw, 560px) !important;
    min-height: clamp(430px, 124vw, 560px) !important;
  }
  body.home .gd-home-slider--spotlight .gd-home-slide,
  body.home .gd-home-slider--poster-split .gd-home-slide,
  body.home .gd-home-slider--cover-flow .gd-home-slide,
  body.home .gd-home-slider--media-showcase .gd-home-slide,
  body.home .gd-home-slider--deal-rail .gd-home-slide,
  body.home .gd-home-slider--store-rail .gd-home-slide {
    min-height: 0 !important;
    height: 100%;
    padding-bottom: clamp(84px, 18vw, 104px) !important;
  }
  body.home .gd-home-slider .gd-hero-meta-row {
    margin-bottom: clamp(4px, 2vw, 10px);
  }
  body.home .gd-home-slider .gd-home-dots,
  body.gd-hero-dots-bottom-right.home .gd-home-slider .gd-home-dots,
  body.gd-hero-dots-bottom-left.home .gd-home-slider .gd-home-dots,
  body.gd-hero-dots-bottom-center.home .gd-home-slider .gd-home-dots {
    bottom: clamp(12px, 3.2vw, 18px) !important;
    z-index: 45;
  }
  body.home .gd-home-slider .gd-home-prev,
  body.home .gd-home-slider--store-rail .gd-home-prev,
  body.home .gd-home-slider--cover-flow .gd-home-prev,
  body.home .gd-home-slider--deal-rail .gd-home-prev,
  body.home .gd-home-slider--media-showcase .gd-home-prev {
    left: 10px !important;
  }
  body.home .gd-home-slider .gd-home-next,
  body.home .gd-home-slider--store-rail .gd-home-next,
  body.home .gd-home-slider--cover-flow .gd-home-next,
  body.home .gd-home-slider--deal-rail .gd-home-next,
  body.home .gd-home-slider--media-showcase .gd-home-next {
    right: 10px !important;
  }
}

@media (max-width: 420px) {
  body.home .gd-home-slider--spotlight .gd-home-slides,
  body.home .gd-home-slider--poster-split .gd-home-slides,
  body.home .gd-home-slider--cover-flow .gd-home-slides,
  body.home .gd-home-slider--media-showcase .gd-home-slides,
  body.home .gd-home-slider--deal-rail .gd-home-slides,
  body.home .gd-home-slider--store-rail .gd-home-slides {
    height: clamp(430px, 136vw, 560px) !important;
    min-height: clamp(430px, 136vw, 560px) !important;
  }
}

.gd-search-modal {
  z-index: 10060;
  align-items: start;
  justify-items: center;
  padding-top: calc(var(--gd-live-header-h, var(--gd-header-h, 70px)) + clamp(18px, 3vw, 34px));
}
body.admin-bar .gd-search-modal {
  padding-top: calc(var(--gd-wp-admin-bar-h, 0px) + var(--gd-live-header-h, var(--gd-header-h, 70px)) + clamp(18px, 3vw, 34px));
}
.gd-search-modal-panel {
  margin: 0 auto;
}
@media (max-width: 640px) {
  .gd-search-modal {
    padding: calc(var(--gd-live-header-h, var(--gd-mobile-header-h, 64px)) + 12px) 10px 10px;
    place-items: start center;
  }
}

@media (max-width: 1024px), (hover: none), (pointer: coarse) {
  body.gd-menu-open {
    overflow: hidden;
  }
  .gd-header { z-index: 10020; }
  .gd-nav.gd-menu-panel,
  .gd-menu-panel {
    z-index: 10040;
    overflow-y: auto;
    overscroll-behavior: contain;
    max-height: calc(100dvh - var(--gd-live-header-h, var(--gd-mobile-header-h, var(--gd-header-h, 64px))) - 18px);
  }
  .gd-nav.gd-menu-panel .gd-menu .sub-menu,
  .gd-nav.gd-menu-panel .gd-menu .sub-menu .sub-menu,
  .gd-menu-panel .gd-menu .sub-menu,
  .gd-menu-panel .gd-menu .sub-menu .sub-menu {
    position: static !important;
    inset: auto !important;
    display: none;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 6px 0 8px;
    opacity: 1;
    visibility: visible;
    transform: none !important;
    box-shadow: none;
    pointer-events: auto;
  }
  .gd-nav.gd-menu-panel .gd-menu li.is-submenu-open > .sub-menu,
  .gd-menu-panel .gd-menu li.is-submenu-open > .sub-menu {
    display: grid;
  }
}

@media (max-width: 820px), (hover: none), (pointer: coarse) {
  :root {
    --gd-motion-card: 0ms;
    --gd-motion-image: 0ms;
    --gd-card-hover-zoom: 1;
    --gd-card-hover-transform: none;
    --gd-card-hover-glow-opacity: 0;
    --gd-mobile-card-shadow: 0 8px 24px rgba(0,0,0,.22);
  }
  .gd-game-grid,
  .gd-related-store-grid,
  .gd-related-grid-static {
    transform: none !important;
    contain: layout;
  }
  .gd-game-card,
  .gd-post-card,
  .gd-related-store-grid .gd-game-card,
  .gd-related-grid-static .gd-game-card {
    transform: none !important;
    transition: none !important;
    animation: none !important;
    will-change: auto !important;
    contain: layout paint style;
    box-shadow: var(--gd-mobile-card-shadow) !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .gd-game-card::before,
  .gd-game-card::after,
  .gd-post-card::before,
  .gd-post-card::after,
  .gd-card-shade,
  .gd-card-media::before,
  .gd-card-media::after,
  .gd-game-card .gd-card-media::before,
  .gd-game-card .gd-card-media::after,
  .gd-post-card .gd-card-media::before,
  .gd-post-card .gd-card-media::after {
    display: none !important;
    content: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
  .gd-card-media,
  .gd-game-card .gd-card-media,
  .gd-post-card .gd-card-media {
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
    contain: paint;
    isolation: auto;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .gd-card-media img,
  .gd-game-card .gd-card-media img,
  .gd-post-card .gd-card-media img,
  .gd-card-image,
  .gd-card-placeholder {
    transform: none !important;
    transition: none !important;
    animation: none !important;
    filter: none !important;
    will-change: auto !important;
    backface-visibility: visible;
  }
  .gd-card-cta,
  .gd-card-overlay,
  .gd-card-chip,
  .gd-card-footer a,
  .gd-card-badges .gd-badge,
  .gd-card-media-meta,
  .gd-card-full-link {
    transform: none !important;
    transition: none !important;
    animation: none !important;
    filter: none !important;
    will-change: auto !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .gd-card-media-meta {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
  }
  .gd-card-version-hover {
    display: none !important;
  }
  body.gd-motion-on .gd-game-card:hover,
  body.gd-motion-on .gd-post-card:hover,
  body.gd-hover-none .gd-game-card:hover,
  body.gd-hover-none .gd-post-card:hover,
  body.gd-hover-subtle .gd-game-card:hover,
  body.gd-hover-subtle .gd-post-card:hover,
  body.gd-hover-premium .gd-game-card:hover,
  body.gd-hover-premium .gd-post-card:hover,
  body.gd-hover-strong .gd-game-card:hover,
  body.gd-hover-strong .gd-post-card:hover {
    transform: none !important;
    box-shadow: var(--gd-mobile-card-shadow) !important;
    border-color: var(--gd-pro-hairline, var(--gd-border)) !important;
    will-change: auto !important;
  }
  body.gd-motion-on .gd-card-media:hover img,
  body.gd-hover-subtle .gd-game-card:hover .gd-card-media img,
  body.gd-hover-subtle .gd-post-card:hover .gd-card-media img,
  body.gd-hover-premium .gd-game-card:hover .gd-card-media img,
  body.gd-hover-premium .gd-post-card:hover .gd-card-media img,
  body.gd-hover-strong .gd-game-card:hover .gd-card-media img,
  body.gd-hover-strong .gd-post-card:hover .gd-card-media img {
    transform: none !important;
    filter: none !important;
    will-change: auto !important;
  }
}


/* Mobile/touch scroll-paint guardrails.
 * These rules are intentionally limited to coarse/no-hover devices so desktop and laptop layouts keep the full visual treatment.
 */
@media (max-width: 1024px) and (hover: none), (max-width: 1024px) and (pointer: coarse) {
  :root {
    --gd-shadow: 0 14px 34px rgba(0,0,0,.30);
    --gd-shadow-soft: 0 10px 24px rgba(0,0,0,.22);
    --gd-card-shadow: var(--gd-mobile-card-shadow, 0 8px 24px rgba(0,0,0,.22));
    --gd-card-hover-shadow: var(--gd-mobile-card-shadow, 0 8px 24px rgba(0,0,0,.22));
    --gd-panel-shadow: 0 10px 26px rgba(0,0,0,.24);
    --gd-media-shadow: 0 12px 30px rgba(0,0,0,.28);
    --gd-header-shadow-value: 0 8px 18px rgba(0,0,0,.22);
    --gd-header-blur: 0px;
  }

  html {
    scroll-behavior: auto;
  }

  body::before {
    display: none !important;
    content: none !important;
    background: none !important;
    mask-image: none !important;
  }

  .gd-header,
  .gd-header.gd-header-style-glass,
  .gd-header.gd-header-style-minimal,
  .gd-breadcrumbs-wrap,
  .gd-announcement-bar,
  .gd-nav.gd-menu-panel,
  .gd-menu-panel,
  .gd-menu .sub-menu,
  .gd-header-search,
  .gd-search-modal-panel,
  .gd-lightbox-frame,
  .gd-filter-bar,
  .gd-filter-pro,
  .gd-results-bar,
  .gd-home-dots,
  .gd-hero-microstats,
  .gd-card-chip,
  .gd-card-cta,
  .gd-card-overlay,
  .gd-card-media-meta,
  .gd-btn,
  .gd-kicker,
  .gd-badge,
  .gd-panel,
  .gd-page-card,
  .gd-section-card,
  .gd-filter-card,
  .gd-overview-panel,
  .gd-requirements-panel,
  .gd-install-panel,
  .gd-download-card,
  .gd-game-summary-card,
  .gd-app-summary-panel,
  .gd-app-media-card,
  .gd-media-stage-wrap,
  .gd-media-stage,
  .gd-media-thumb,
  .gd-related-store,
  .gd-review-card,
  .gd-comment-body {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  body:not(.gd-shadow-none) .gd-announcement-bar,
  body:not(.gd-shadow-none) .gd-nav.gd-menu-panel,
  body:not(.gd-shadow-none) .gd-menu-panel,
  body:not(.gd-shadow-none) .gd-filter-bar,
  body:not(.gd-shadow-none) .gd-filter-pro,
  body:not(.gd-shadow-none) .gd-search-modal-panel,
  body:not(.gd-shadow-none) .gd-lightbox-frame,
  body:not(.gd-shadow-none) .gd-panel,
  body:not(.gd-shadow-none) .gd-page-card,
  body:not(.gd-shadow-none) .gd-section-card,
  body:not(.gd-shadow-none) .gd-filter-card,
  body:not(.gd-shadow-none) .gd-overview-panel,
  body:not(.gd-shadow-none) .gd-requirements-panel,
  body:not(.gd-shadow-none) .gd-install-panel,
  body:not(.gd-shadow-none) .gd-download-card,
  body:not(.gd-shadow-none) .gd-game-summary-card,
  body:not(.gd-shadow-none) .gd-app-summary-panel,
  body:not(.gd-shadow-none) .gd-app-media-card,
  body:not(.gd-shadow-none) .gd-media-stage-wrap,
  body:not(.gd-shadow-none) .gd-related-store,
  body:not(.gd-shadow-none) .gd-review-card,
  body:not(.gd-shadow-none) .gd-comment-body {
    box-shadow: var(--gd-shadow-soft) !important;
  }

  .gd-featured-hero,
  .gd-home-slide,
  .gd-home-slides,
  .gd-app-hero,
  .gd-single-steam .gd-app-hero,
  .gd-app-hero--hidden-media-split {
    will-change: auto !important;
  }

  .gd-featured-hero::before,
  .gd-home-slide::before,
  .gd-home-slider .gd-featured-hero::before,
  .gd-home-slider .gd-home-slide::before,
  .gd-app-hero::before,
  .gd-single-steam .gd-app-hero::before,
  .gd-app-hero--hidden-media-split::before,
  .gd-single-steam .gd-app-hero--hidden-media-split::before,
  .gd-app-title-panel::before {
    filter: none !important;
    will-change: auto !important;
  }

  .gd-featured-hero img,
  .gd-home-slide img,
  .gd-media-image,
  .gd-media-slide,
  .gd-app-media-card img,
  .gd-lightbox-image,
  .gd-review-card,
  .gd-comment-body {
    will-change: auto !important;
    backface-visibility: visible !important;
  }

  .gd-section-muted,
  .gd-featured-hero,
  .gd-home-slide,
  .gd-app-hero,
  .gd-app-top,
  .gd-related-store,
  .gd-overview-panel,
  .gd-requirements-panel,
  .gd-install-panel,
  .gd-download-card {
    background-attachment: scroll !important;
  }

  .gd-game-tabs,
  .gd-download-sidebar,
  .gd-related-sidebar,
  .gd-filter-sidebar {
    will-change: auto !important;
  }
}

/* Single media slider motion and hidden-media lightbox access. */
.gd-media-slide,
.gd-single-steam .gd-media-slide {
  transition: opacity var(--gd-motion-panel, 260ms) var(--gd-ease-out, ease), transform var(--gd-motion-panel, 260ms) var(--gd-ease-out, ease), visibility 0s linear var(--gd-motion-panel, 260ms);
}
.gd-media-slide.is-active,
.gd-single-steam .gd-media-slide.is-active {
  transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
  .gd-media-slide,
  .gd-single-steam .gd-media-slide {
    transition: none !important;
    transform: none !important;
  }
}

/* 88.88.903: accessible optional Ripper hover treatment for original GamesDen cards.
 * Hover-only on pointer devices: it does not alter card height, grid columns,
 * image ratio, body padding, excerpts, badges, or footer content.
 * Bottom-title hiding is handled in PHP so disabled markup is not printed.
 */
.gd-card-ripper-hover-title {
  position: absolute;
  inset: 0;
  z-index: 7;
  display: grid;
  place-items: center;
  margin: 0;
  padding: clamp(16px, 2vw, 28px);
  color: #fff;
  font-size: clamp(15px, 1.35vw, 21px);
  font-weight: 950;
  line-height: 1.12;
  letter-spacing: -.025em;
  text-align: center;
  text-wrap: balance;
  text-decoration: none;
  text-shadow: 0 3px 22px rgba(0,0,0,.82), 0 1px 1px rgba(0,0,0,.55);
  background:
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.54) 0%, rgba(0,0,0,.34) 34%, rgba(0,0,0,.12) 62%, rgba(0,0,0,.06) 100%),
    linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.36) 100%);
  opacity: 0;
  visibility: hidden;
  transform: scale(.975) translate3d(0, 8px, 0);
  pointer-events: none;
  transition: opacity var(--gd-motion-base) var(--gd-ease-premium), visibility var(--gd-motion-base) var(--gd-ease-premium), transform var(--gd-motion-base) var(--gd-ease-premium);
}

body.gd-card-ripper-title-top .gd-card-ripper-hover-title {
  place-items: start center;
  align-content: start;
  padding-top: clamp(18px, 2.7vw, 34px);
  background:
    linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.38) 45%, rgba(0,0,0,.08) 100%);
}

body.gd-card-ripper-title-bottom .gd-card-ripper-hover-title {
  place-items: end center;
  align-content: end;
  padding-bottom: clamp(18px, 2.7vw, 34px);
  background:
    linear-gradient(0deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.42) 48%, rgba(0,0,0,.08) 100%);
}

body.gd-card-ripper-hover-on .gd-game-card .gd-card-media,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-media {
  overflow: hidden;
}

body.gd-card-ripper-hover-on .gd-game-card .gd-card-media:focus-visible,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-media:focus-visible,
body.gd-card-ripper-hover-on .gd-game-card .gd-card-title a:focus-visible,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-title a:focus-visible,
body.gd-card-ripper-hover-on .gd-game-card .gd-card-footer a:focus-visible,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-footer a:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--gd-accent) 78%, #fff 22%);
  outline-offset: 4px;
}

body.gd-card-ripper-hover-on .gd-game-card .gd-card-media:focus-visible,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-media:focus-visible {
  box-shadow: 0 0 0 4px rgba(0,0,0,.55), 0 0 0 7px color-mix(in srgb, var(--gd-accent) 76%, #fff 24%);
}

body.gd-card-ripper-hover-on .gd-game-card .gd-card-shade,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-shade {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: block !important;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,0,0,.34) 0%, rgba(0,0,0,.18) 42%, rgba(0,0,0,.62) 100%),
    linear-gradient(135deg, color-mix(in srgb, var(--gd-accent) 16%, transparent), transparent 48%);
  opacity: 0;
  transition: opacity var(--gd-motion-base) var(--gd-ease-premium);
}

body.gd-card-ripper-hover-on .gd-game-card:hover .gd-card-ripper-hover-title,
body.gd-card-ripper-hover-on .gd-game-card:focus-within .gd-card-ripper-hover-title,
body.gd-card-ripper-hover-on .gd-post-card:hover .gd-card-ripper-hover-title,
body.gd-card-ripper-hover-on .gd-post-card:focus-within .gd-card-ripper-hover-title {
  opacity: 1;
  visibility: visible;
  transform: scale(1) translate3d(0, 0, 0);
}

body.gd-card-ripper-hover-on .gd-game-card:hover .gd-card-shade,
body.gd-card-ripper-hover-on .gd-game-card:focus-within .gd-card-shade,
body.gd-card-ripper-hover-on .gd-post-card:hover .gd-card-shade,
body.gd-card-ripper-hover-on .gd-post-card:focus-within .gd-card-shade {
  opacity: 1;
}

body.gd-card-ripper-hover-on .gd-game-card:hover .gd-card-media img,
body.gd-card-ripper-hover-on .gd-game-card:focus-within .gd-card-media img,
body.gd-card-ripper-hover-on .gd-post-card:hover .gd-card-media img,
body.gd-card-ripper-hover-on .gd-post-card:focus-within .gd-card-media img {
  filter: brightness(.66) saturate(1.08) contrast(1.05);
}

body.gd-card-ripper-hover-on .gd-game-card .gd-card-cta,
body.gd-card-ripper-hover-on .gd-game-card .gd-card-overlay,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-cta,
body.gd-card-ripper-hover-on .gd-post-card .gd-card-overlay {
  z-index: 8;
}

body.gd-card-ripper-hover-on .gd-game-card:hover .gd-card-cta,
body.gd-card-ripper-hover-on .gd-game-card:hover .gd-card-overlay,
body.gd-card-ripper-hover-on .gd-game-card:focus-within .gd-card-cta,
body.gd-card-ripper-hover-on .gd-game-card:focus-within .gd-card-overlay,
body.gd-card-ripper-hover-on .gd-post-card:hover .gd-card-cta,
body.gd-card-ripper-hover-on .gd-post-card:hover .gd-card-overlay,
body.gd-card-ripper-hover-on .gd-post-card:focus-within .gd-card-cta,
body.gd-card-ripper-hover-on .gd-post-card:focus-within .gd-card-overlay {
  border-color: rgba(255,255,255,.28);
  background: rgba(3, 8, 18, .82);
  color: #fff;
  box-shadow: 0 16px 36px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.08);
}

body.gd-card-ripper-hover-on .gd-game-card:hover .gd-card-media-meta,
body.gd-card-ripper-hover-on .gd-game-card:focus-within .gd-card-media-meta {
  z-index: 8;
}

body.gd-no-motion .gd-card-ripper-hover-title,
body.gd-no-motion.gd-card-ripper-hover-on .gd-game-card .gd-card-shade,
body.gd-no-motion.gd-card-ripper-hover-on .gd-post-card .gd-card-shade {
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .gd-card-ripper-hover-title,
  body.gd-card-ripper-hover-on .gd-game-card .gd-card-shade,
  body.gd-card-ripper-hover-on .gd-post-card .gd-card-shade,
  body.gd-card-ripper-hover-on .gd-game-card .gd-card-media img,
  body.gd-card-ripper-hover-on .gd-post-card .gd-card-media img {
    transition: none !important;
    transform: none !important;
    animation: none !important;
  }
}

@media (hover: none), (pointer: coarse) {
  body.gd-card-ripper-hover-on .gd-game-card .gd-card-ripper-hover-title,
  body.gd-card-ripper-hover-on .gd-post-card .gd-card-ripper-hover-title {
    padding: clamp(14px, 4vw, 22px);
    font-size: clamp(14px, 4.1vw, 17px);
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  body.gd-card-ripper-title-center.gd-card-ripper-hover-on .gd-game-card .gd-card-ripper-hover-title,
  body.gd-card-ripper-title-center.gd-card-ripper-hover-on .gd-post-card .gd-card-ripper-hover-title {
    background:
      radial-gradient(circle at 50% 50%, rgba(0,0,0,.50) 0%, rgba(0,0,0,.30) 42%, rgba(0,0,0,.62) 100%),
      linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.48) 100%);
  }

  body.gd-card-ripper-hover-on .gd-game-card .gd-card-shade,
  body.gd-card-ripper-hover-on .gd-post-card .gd-card-shade {
    display: block !important;
    opacity: .72;
  }
}


/* 88.88.917: third-party age/confirm overlay contrast fix.
   Some consent/age-check plugins output an unclassed Continue button with
   onclick="aclConfirm()". Keep this scoped to that control so theme buttons are
   untouched while Lighthouse/WCAG contrast checks pass. */
button[onclick*="aclConfirm"] {
  color: #ffffff !important;
  background: #111827 !important;
  border-color: #111827 !important;
  text-shadow: none !important;
}
button[onclick*="aclConfirm"]:hover,
button[onclick*="aclConfirm"]:focus,
button[onclick*="aclConfirm"]:active {
  color: #ffffff !important;
  background: #0b1220 !important;
  border-color: #0b1220 !important;
}
button[onclick*="aclConfirm"]:focus-visible {
  outline: 3px solid #f59e0b !important;
  outline-offset: 3px !important;
}

/* Movable single-game download card. */
.gd-main-column > .gd-download-card--inline {
  position: relative;
  top: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(14px, 2.4vw, 22px);
  width: 100%;
  max-width: 980px;
  margin-inline: auto;
  padding: clamp(18px, 3vw, 30px);
  overflow: hidden;
  border-color: color-mix(in srgb, var(--gd-download) 32%, var(--gd-border));
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--gd-download) 18%, transparent), transparent 42%),
    linear-gradient(180deg, rgba(14,25,42,.97), rgba(8,15,27,.99));
  isolation: isolate;
}
.gd-main-column > .gd-download-card--inline .gd-kicker,
.gd-main-column > .gd-download-card--inline .gd-download-card-heading,
.gd-main-column > .gd-download-card--inline .gd-download-views,
.gd-main-column > .gd-download-card--inline .gd-download-buttons,
.gd-main-column > .gd-download-card--inline .gd-download-assurance,
.gd-main-column > .gd-download-card--inline .gd-text-link {
  min-width: 0;
}
.gd-main-column > .gd-download-card--inline .gd-kicker {
  margin-bottom: -4px;
}
.gd-main-column > .gd-download-card--inline .gd-download-card-heading {
  margin: 0;
  overflow-wrap: anywhere;
}
.gd-main-column > .gd-download-card--inline .gd-download-buttons {
  width: 100%;
  max-width: min(100%, 460px);
  margin-top: 0;
}
.gd-main-column > .gd-download-card--inline .gd-download-buttons a,
.gd-main-column > .gd-download-card--inline .gd-download-buttons button,
.gd-main-column > .gd-download-card--inline .gd-btn {
  min-height: 48px;
  white-space: normal;
}
.gd-main-column > .gd-download-card--inline .gd-download-views {
  justify-content: flex-start;
  width: fit-content;
  max-width: 100%;
}
.gd-main-column > .gd-download-card--inline .gd-download-assurance {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 0;
}
.gd-main-column > .gd-download-card--inline .gd-text-link {
  width: fit-content;
  max-width: 100%;
  margin-top: 0;
}
@media (min-width: 1280px) {
  .gd-main-column > .gd-download-card--inline {
    grid-template-columns: minmax(0, 1fr) minmax(260px, .45fr);
    align-items: center;
    max-width: none;
    column-gap: clamp(26px, 4vw, 52px);
    row-gap: 12px;
  }
  .gd-main-column > .gd-download-card--inline .gd-kicker,
  .gd-main-column > .gd-download-card--inline .gd-download-card-heading,
  .gd-main-column > .gd-download-card--inline .gd-download-views,
  .gd-main-column > .gd-download-card--inline .gd-download-assurance {
    grid-column: 1;
  }
  .gd-main-column > .gd-download-card--inline .gd-download-buttons,
  .gd-main-column > .gd-download-card--inline .gd-text-link {
    grid-column: 2;
    justify-self: stretch;
  }
  .gd-main-column > .gd-download-card--inline .gd-download-buttons {
    max-width: none;
  }
  .gd-main-column > .gd-download-card--inline .gd-text-link {
    width: 100%;
  }
}
@media (min-width: 760px) and (max-width: 1279px) {
  .gd-main-column > .gd-download-card--inline {
    justify-items: start;
  }
  .gd-main-column > .gd-download-card--inline .gd-download-buttons {
    max-width: min(100%, 520px);
  }
}
@media (max-width: 759px) {
  .gd-main-column > .gd-download-card--inline {
    justify-items: stretch;
    padding: 18px;
  }
  .gd-main-column > .gd-download-card--inline .gd-download-buttons,
  .gd-main-column > .gd-download-card--inline .gd-text-link {
    width: 100%;
    max-width: none;
  }
  .gd-main-column > .gd-download-card--inline .gd-download-views {
    width: 100%;
    justify-content: center;
  }
}


/* Download notes accordion: link-style trigger with theme-aware scrolling. */
.gd-download-modal-dialog,
.gd-download-modal-notes-body {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--gd-accent) 52%, var(--gd-border)) color-mix(in srgb, var(--gd-surface) 82%, #020617);
}

.gd-download-modal-dialog::-webkit-scrollbar,
.gd-download-modal-notes-body::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.gd-download-modal-dialog::-webkit-scrollbar-track,
.gd-download-modal-notes-body::-webkit-scrollbar-track {
  background: color-mix(in srgb, var(--gd-surface) 82%, #020617);
  border-radius: 999px;
}

.gd-download-modal-dialog::-webkit-scrollbar-thumb,
.gd-download-modal-notes-body::-webkit-scrollbar-thumb {
  border: 2px solid color-mix(in srgb, var(--gd-surface) 82%, #020617);
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-accent) 52%, var(--gd-border));
}

.gd-download-modal-dialog::-webkit-scrollbar-thumb:hover,
.gd-download-modal-notes-body::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, var(--gd-accent-2) 62%, var(--gd-accent));
}

.gd-download-modal-notes--accordion {
  margin-top: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.gd-download-modal-notes-summary {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: max-content;
  max-width: 100%;
  min-height: 0;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: var(--gd-accent-2);
  font-size: clamp(13px, .92vw, 15px);
  font-weight: 850;
  line-height: 1.35;
  cursor: pointer;
  list-style: none;
  text-decoration: none;
  text-underline-offset: 4px;
  user-select: none;
}

.gd-download-modal-notes-summary::-webkit-details-marker {
  display: none;
}

.gd-download-modal-notes-summary::after {
  content: '';
  width: 8px;
  height: 8px;
  margin-top: -3px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  opacity: .9;
  transform: rotate(45deg);
  transition: transform .18s ease, opacity .18s ease;
  flex: 0 0 auto;
}

.gd-download-modal-notes--accordion[open] .gd-download-modal-notes-summary::after {
  margin-top: 3px;
  transform: rotate(-135deg);
  opacity: 1;
}

.gd-download-modal-notes-summary:hover,
.gd-download-modal-notes-summary:focus-visible {
  color: var(--gd-accent);
  outline: none;
  text-decoration: underline;
}

.gd-download-modal-notes-summary:focus-visible {
  border-radius: 8px;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gd-accent-2) 32%, transparent);
}

.gd-download-modal-notes-body {
  max-height: min(42vh, 430px);
  margin-top: 10px;
  padding: 13px 15px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border: 1px solid color-mix(in srgb, var(--gd-accent) 18%, rgba(255,255,255,.1));
  border-radius: 14px;
  background: color-mix(in srgb, var(--gd-card) 78%, rgba(255,255,255,.04));
  box-shadow: 0 10px 28px rgba(0,0,0,.18), 0 1px 0 rgba(255,255,255,.04) inset;
}

.gd-download-modal-notes-body > :first-child {
  margin-top: 0;
}

.gd-download-modal-notes-body > :last-child {
  margin-bottom: 0;
}


/* 88.888.888: archive pagination visual alignment without URL-state changes.
   Keep the 88.88.947 AJAX behavior intact; this is CSS-only. */
.navigation.pagination:not(.gd-collection-pagination) {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: clamp(24px, 4vw, 44px);
}

.navigation.pagination:not(.gd-collection-pagination) .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 0 auto;
  padding: 8px;
  list-style: none;
  border: 1px solid var(--gd-pro-hairline);
  border-radius: 999px;
  background: color-mix(in srgb, var(--gd-surface) 76%, transparent);
  color: inherit;
}

.navigation.pagination:not(.gd-collection-pagination) .page-numbers {
  min-width: 42px;
  min-height: 42px;
  padding: 8px 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--gd-muted);
  font-weight: 900;
}

.navigation.pagination:not(.gd-collection-pagination) a.page-numbers:hover,
.navigation.pagination:not(.gd-collection-pagination) a.page-numbers:focus-visible,
.navigation.pagination:not(.gd-collection-pagination) span.page-numbers.current {
  border-color: color-mix(in srgb, var(--gd-accent) 52%, var(--gd-border));
  background: color-mix(in srgb, var(--gd-accent) 14%, transparent);
  color: var(--gd-text);
}

@media (max-width: 560px) {
  .navigation.pagination:not(.gd-collection-pagination) .nav-links {
    gap: 6px;
    padding: 6px;
    border-radius: 24px;
  }

  .navigation.pagination:not(.gd-collection-pagination) .page-numbers {
    min-width: 38px;
    min-height: 38px;
    padding: 7px 10px;
  }
}

/* Requirements layout safety: one populated column should use the full width. */

.gd-requirements-grid--single {
  grid-template-columns: minmax(0, 1fr);
}
.gd-requirements-grid--single > .gd-requirements-block {
  grid-column: 1 / -1;
}
