/* Usability defaults; each site keeps its own type, palette, layout and identity. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-block: 1rem;
}

/* The empty ad template must not leave a 250px hole in an unconfigured site. */
.gpt-lazy[hidden] {
  display: none !important;
}
.gpt-lazy[data-ad-empty] {
  display: none !important;
  min-height: 0 !important;
  margin: 0 !important;
}

body[data-compact-ui] :is(.category-strip, .compact-category-rail)[data-native-category-rail] {
  display: none !important;
}
.site-category-navigation {
  display: flex;
  gap: 4px;
  min-width: 0;
  padding: 4px 14px;
  overflow-x: auto;
  scrollbar-width: none;
  white-space: nowrap;
  color: inherit;
}
.site-category-navigation::-webkit-scrollbar {
  display: none;
}
.site-category-navigation a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  color: inherit;
  font: inherit;
  font-size: 14px;
  text-decoration: none;
}
.site-category-navigation a[aria-current="page"] {
  background: color-mix(in srgb, currentColor 12%, transparent);
  font-weight: 700;
  box-shadow: inset 0 -2px currentColor;
}
.compact-header[data-category-header] {
  flex-wrap: wrap !important;
  gap: 0 12px !important;
}
.compact-header[data-category-header] > .site-category-navigation {
  flex: 1 0 100%;
  order: 3;
}

/* The dialog scrolls as one surface; shrinking its body lets the sticky action
   row cover the final category choices on a phone. */
dialog.compact-controls :is(.dialog-body, .filter-body, .filter-content, .dialog-content) {
  flex-shrink: 0 !important;
}

/* Category menus override obsolete filter layouts while retaining site colors. */
[data-category-legacy] {
  display: none !important;
}
body [data-category-panel][data-category-panel][open] {
  display: flex !important;
  flex-direction: column !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: calc(100dvh - 24px) !important;
  min-width: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  gap: 0 !important;
  background: var(--panel, var(--surface, var(--paper, Canvas))) !important;
  color: inherit !important;
  box-sizing: border-box !important;
}
body [data-category-panel][data-category-panel] .site-category-heading {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex: 0 0 auto !important;
  padding: 14px 18px 10px !important;
  margin: 0 !important;
  min-width: 0 !important;
}
body [data-category-panel][data-category-panel] .site-category-heading h2 {
  margin: 0 !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
  font-weight: 650 !important;
  letter-spacing: -0.02em !important;
}
body [data-category-panel][data-category-panel] .site-category-heading button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 44px !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, currentColor 16%, transparent) !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: inherit !important;
  position: static !important;
  font-size: 0 !important;
  box-shadow: none !important;
}
body [data-category-panel][data-category-panel] .site-category-heading button::before,
body [data-category-panel][data-category-panel] .site-category-heading button::after {
  content: none !important;
}
body [data-category-panel][data-category-panel] .site-category-heading button svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
}
body [data-category-panel][data-category-panel] .site-category-choices {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  grid-auto-rows: minmax(48px, auto) !important;
  align-content: start !important;
  align-items: stretch !important;
  gap: 8px !important;
  flex: 0 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding: 6px 18px 18px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  overscroll-behavior: contain;
}
body [data-category-panel][data-category-panel] .site-category-choices a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  min-width: 0 !important;
  width: auto !important;
  height: auto !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  color: inherit !important;
  font: inherit !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  white-space: normal !important;
  text-decoration: none !important;
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent) !important;
  border-radius: 10px !important;
  background: color-mix(in srgb, currentColor 3%, transparent) !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}
body [data-category-panel][data-category-panel] .site-category-choices a:first-child {
  grid-column: 1 / -1 !important;
}
body [data-category-panel][data-category-panel] .site-category-choices a[aria-current="page"] {
  box-shadow: inset 3px 0 currentColor !important;
  border-color: color-mix(in srgb, currentColor 24%, transparent) !important;
  background: color-mix(in srgb, currentColor 9%, transparent) !important;
  font-weight: 650 !important;
}
body [data-category-panel][data-category-panel] .site-category-choices a:hover {
  background: color-mix(in srgb, currentColor 8%, transparent) !important;
}
body [data-category-panel][data-category-panel] .site-category-choices small {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 24px;
  min-height: 24px;
  padding: 2px 6px;
  border-radius: 6px;
  background: color-mix(in srgb, currentColor 6%, transparent);
  opacity: 0.75;
  font-size: 12px !important;
  font-weight: 500;
}
body [data-category-panel][data-category-panel] .site-category-menu {
  flex: 0 0 auto !important;
  padding: 10px 18px max(12px, env(safe-area-inset-bottom)) !important;
  border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}
body [data-category-panel][data-category-panel] .site-category-menu nav {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0 14px !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
}
body [data-category-panel][data-category-panel] .site-category-menu a {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  padding: 0 !important;
  color: inherit !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  background: transparent !important;
  border: 0 !important;
  text-decoration: none !important;
  white-space: normal !important;
}

@media (max-width: 767px) {
  .compact-header[data-category-header] {
    flex-wrap: nowrap !important;
    padding: 4px 10px !important;
    min-height: 52px !important;
  }
  .compact-header[data-category-header] > .compact-brand {
    display: none !important;
  }
  .compact-header[data-category-header] > .site-category-navigation {
    flex: 1 1 0;
    order: 0;
    padding: 0;
  }
  .compact-header[data-category-header] > :is(.compact-header-actions, .compact-icon) {
    flex: 0 0 auto;
    order: 1;
  }
}

:where(a, button, input, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--focus, currentColor) !important;
  outline-offset: 3px !important;
}

/* Keep navigation and footer labels quiet while making them easy to tap. */
:is(.compact-header, .site-header, .site-head) nav a,
:is(footer, .compact-footer) nav a,
.reading-entry {
  min-height: 44px !important;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
}

main :is(.article-reader, .reading-body, .article-body, .prose, .legal) {
  line-height: 1.7;
}
main :is(.article-reader, .reading-body, .article-body, .prose, .legal) p {
  max-inline-size: 70ch;
  overflow-wrap: break-word;
}

@media (max-width: 767px) {
  input:not([type="radio"]):not([type="checkbox"]):not([type="range"]),
  textarea,
  select {
    font-size: max(1rem, 16px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  :where(a, button, input, textarea, summary, [tabindex]):focus-visible {
    outline-color: Highlight !important;
  }
}

/* Retired search masks must not override the category icon. */
body button[data-category-opener][data-category-opener]::before {
  content: none !important;
  display: none !important;
}
body button[data-category-opener][data-category-opener] > svg {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
}

/* Each site's menu keeps a stable design suited to its identity. */
body [data-category-panel][data-category-panel][data-category-style] {
  --category-columns: repeat(2, minmax(0, 1fr));
}
body [data-category-panel][data-category-panel][data-category-style] .site-category-choices {
  grid-template-columns: var(--category-columns) !important;
}
body [data-category-panel][data-category-panel][data-category-style="directory"] {
  --category-columns: minmax(0, 1fr);
}
body
  [data-category-panel][data-category-panel][data-category-style="directory"]
  .site-category-choices {
  gap: 3px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="directory"]
  .site-category-choices
  a {
  border: 0 !important;
  background: transparent !important;
  border-radius: 5px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="directory"]
  .site-category-choices
  a[aria-current] {
  background: var(--wash, var(--pale, color-mix(in srgb, currentColor 8%, transparent))) !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="gallery"]
  .site-category-choices
  a {
  min-height: 66px !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 6px !important;
  padding: 12px !important;
  border-radius: 6px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="gallery"]
  .site-category-choices
  a:first-child {
  flex-direction: row !important;
  align-items: center !important;
  min-height: 48px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="gallery"]
  .site-category-choices
  small {
  background: transparent !important;
  padding: 0 !important;
  min-width: 0;
  min-height: 16px;
}
body
  [data-category-panel][data-category-panel][data-category-style="pills"]
  .site-category-choices {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px 8px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="pills"]
  .site-category-choices
  a {
  flex: 0 0 auto !important;
  border-radius: 24px !important;
  min-height: 44px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="pills"]
  .site-category-choices
  a:first-child {
  flex-basis: 100% !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="pills"]
  .site-category-choices
  small {
  background: transparent !important;
  padding: 0 !important;
  min-width: 16px;
}
body
  [data-category-panel][data-category-panel][data-category-style="editorial"]
  .site-category-choices {
  gap: 0 16px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="editorial"]
  .site-category-choices
  a {
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding-inline: 5px !important;
  font-family: Georgia, serif !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="editorial"]
  .site-category-choices
  small {
  background: transparent !important;
  font-family: ui-monospace, monospace;
}
body
  [data-category-panel][data-category-panel][data-category-style="controls"]
  .site-category-choices
  a {
  border-radius: 4px !important;
  min-height: 52px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="controls"]
  .site-category-choices
  small {
  border: 1px solid var(--line);
  border-radius: 3px;
  background: transparent !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="scoreboard"]
  .site-category-choices {
  gap: 6px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="scoreboard"]
  .site-category-choices
  a {
  border-radius: 2px !important;
  border-width: 0 0 2px !important;
  border-color: var(--line) !important;
  font-weight: 650 !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="scoreboard"]
  .site-category-choices
  small {
  border-radius: 0;
  font-family: ui-monospace, monospace;
}
body [data-category-panel][data-category-panel][data-category-style="cabinet"] {
  --category-columns: minmax(0, 1fr);
}
body
  [data-category-panel][data-category-panel][data-category-style="cabinet"]
  .site-category-choices {
  gap: 0 !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="cabinet"]
  .site-category-choices
  a {
  border-width: 0 0 1px !important;
  border-style: dashed !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="cabinet"]
  .site-category-choices
  small {
  border-radius: 12px;
}
body [data-category-panel][data-category-panel][data-category-style="trail"] {
  --category-columns: minmax(0, 1fr);
}
body
  [data-category-panel][data-category-panel][data-category-style="trail"]
  .site-category-choices {
  gap: 0 !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="trail"]
  .site-category-choices
  a {
  position: relative;
  border: 0 !important;
  border-radius: 0 !important;
  border-left: 1px solid var(--line) !important;
  background: transparent !important;
  padding-left: 20px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="trail"]
  .site-category-choices
  a::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  position: absolute;
  left: -3px;
}
body
  [data-category-panel][data-category-panel][data-category-style="trail"]
  .site-category-choices
  small {
  background: transparent !important;
}
body [data-category-panel][data-category-panel][data-category-style="sheet"] {
  --category-columns: minmax(0, 1fr);
}
body
  [data-category-panel][data-category-panel][data-category-style="sheet"]
  .site-category-choices {
  gap: 0 !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="sheet"]
  .site-category-choices
  a {
  border-width: 0 0 1px !important;
  border-radius: 0 !important;
  background: transparent !important;
  min-height: 44px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="sheet"]
  .site-category-choices
  small {
  background: transparent !important;
  font-family: ui-monospace, monospace;
}
body
  [data-category-panel][data-category-panel][data-category-style="pairs"]
  .site-category-choices {
  gap: 12px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="pairs"]
  .site-category-choices
  a {
  border-radius: 3px !important;
  border-left: 3px solid var(--line) !important;
  min-height: 52px !important;
}
body
  [data-category-panel][data-category-panel][data-category-style="pairs"]
  .site-category-choices
  small {
  border-radius: 2px;
  background: transparent !important;
}

/* Native home category buttons become real links with the same compact shape. */
body a[data-home-navigation] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 44px !important;
  padding: 6px 10px !important;
  flex: 0 0 auto;
  color: inherit;
  font: inherit;
  font-size: 14px;
  line-height: 1.3;
  text-decoration: none;
  border: 1px solid var(--line, currentColor);
  border-radius: 6px;
  background: transparent;
}
body a[data-home-navigation][aria-current="page"] {
  background: color-mix(in srgb, currentColor 10%, transparent);
  box-shadow: inset 0 -2px currentColor;
}

/* Game Shelf keeps identical header geometry on home, lists and reading pages. */
body[data-feedback-site="Game11"] .site-header {
  padding: 0 14px !important;
}
body[data-feedback-site="Game11"] .site-header > .header-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  padding: 0 !important;
}
body[data-feedback-site="Game11"] .site-header .brand {
  align-self: flex-start;
  min-height: 44px !important;
  font-size: 18px !important;
}
body[data-feedback-site="Game11"] .site-header nav {
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  flex-wrap: nowrap !important;
  gap: 18px !important;
  overflow-x: auto !important;
}
body[data-feedback-site="Game11"] .site-header nav a {
  min-height: 44px !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  padding: 0 !important;
}

.site-game-index {
  padding-block: 12px;
}
.site-game-index section {
  margin-block: 16px;
}
.site-game-index a {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 12px;
  overflow-wrap: anywhere;
}
.site-game-index a span {
  min-width: 0;
}
.site-game-index small {
  display: block;
  opacity: 0.75;
}
.site-game-index img {
  width: 64px;
  height: 48px;
  object-fit: cover;
  flex: none;
}
.site-game-index section > h2 {
  font-size: 1rem;
}
.site-index-link {
  margin-block: 16px;
  font-size: 0.9rem;
}
