/* Shared editorial foundation. Game artwork and dense data layouts stay with their modules. */
:root {
  --site-font-reading: "Segoe UI", system-ui, sans-serif;
  --site-font-display: Georgia, "Times New Roman", serif;
  --site-rule: color-mix(in srgb, var(--theme-ink) 18%, transparent);
  --site-control-radius: 0.3rem;
}
body {
  font-family: var(--site-font-reading);
}
html[data-theme] body .site-content .project-copy h3 {
  font-family: var(--site-font-display);
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: -0.025em;
}
html[data-theme] body .site-content :is(h1, h2) {
  font-family: var(--site-font-display);
  font-weight: 400;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
html[data-theme] body .site-content h1 {
  font-size: clamp(2.7rem, 6vw, 4.8rem);
  line-height: 1.06;
  margin-block: 0.5rem 1.25rem;
  overflow-wrap: anywhere;
}
html[data-theme] body .site-content h2 {
  line-height: 1.2;
}
html[data-theme] body .site-content :is(.hero, .page-head) h1 {
  font-size: clamp(3rem, 7vw, 5.8rem);
}
html[data-theme] body .site-content :is(.collection-header, .games-header, .wish-heading) h1 {
  font-size: clamp(2.4rem, 5vw, 3.6rem);
}
html[data-theme] body .site-content dialog h1 {
  font-size: 2rem;
}
html[data-theme] body .site-content dialog h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
}
html[data-theme] body .site-content :is(.hero, .page-head) {
  padding-block: clamp(1rem, 4vw, 3rem) 1.5rem;
}
html[data-theme] body .site-content :is(.intro, .page-intro) {
  font-size: clamp(1rem, 2vw, 1.15rem);
  line-height: 1.7;
  max-width: 44rem;
  color: var(--theme-muted);
}
html[data-theme] body .site-content :is(.eyebrow, .guide-kicker, .guide-eyebrow) {
  font-family: var(--site-font-reading);
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
html[data-theme] body .site-content :is(.section-heading, .featured-heading, .family-corner) h2 {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
}
html[data-theme] body .site-content :is(.hero h1 span, .page-head h1 em) {
  color: var(--theme-accent);
  font-style: italic;
}
html[data-theme] body .site-content a {
  text-underline-offset: 0.25em;
  text-decoration-thickness: 1px;
}
html[data-theme] body .site-content :is(button, .button, .primary-link, input, select, textarea) {
  border-radius: var(--site-control-radius);
}
html
  body
  .site-content
  :is(
    button,
    .button,
    .primary-link,
    select,
    input:not([type="checkbox"], [type="radio"], [type="range"], [type="hidden"])
  ) {
  min-height: 44px;
}
html[data-theme] body .site-content :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--theme-accent);
}
html[data-theme] body .site-content :focus-visible {
  outline: 3px solid var(--theme-accent);
  outline-offset: 3px;
}
html
  body
  .site-content
  :is(
    .project-card,
    .project-mini,
    .family-link,
    .pokemon-hub-card,
    .collection-portal,
    .economy-destinations > a
  ) {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--site-rule);
  border-radius: 0;
  box-shadow: none;
  color: var(--theme-ink);
}
html
  body
  .site-content
  :is(.family-link, .pokemon-hub-card, .collection-portal, .economy-destinations > a) {
  padding: 1.4rem 0.25rem;
}
html
  body
  .site-content
  :is(.pokemon-hub-card, .collection-portal, .economy-destinations > a)
  strong {
  font-family: var(--site-font-display);
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: -0.025em;
}
html[data-theme] body .site-content .project-list {
  gap: 0;
}
html[data-theme] body .site-content .project-list .project-card {
  border-bottom: 0;
}
html[data-theme] body .site-content .pokemon-hub-dex strong {
  font-size: clamp(2rem, 5vw, 2.7rem);
}
html
  body
  .site-content
  :is(.pokemon-hub-card, .collection-portal, .economy-destinations > a):hover {
  border-color: var(--theme-accent);
}
html[data-theme] body .site-content :is(.pokemon-hub-action, .collection-portal-action) {
  text-decoration: underline;
  text-underline-offset: 0.3em;
}
html[data-theme] body .site-content :is(.project-art, .showcase-card img) {
  border-radius: 0;
}
html[data-theme] body .site-content :is(.collection-index-row, .history-row) {
  border-radius: 0;
  box-shadow: none;
}
html[data-theme] body .site-content :is(.guide-help, .detail-note, .form-help) {
  color: var(--theme-muted);
}
html[data-theme] body .site-content dialog {
  border-radius: 0.5rem;
}
html[data-theme] body .site-content :is(.article, .prose, .project-story, .showcase-body) {
  line-height: 1.75;
}
html[data-theme] body .site-content :is(.article, .prose, .project-story, .showcase-body) h2 {
  margin-block: 2rem 0.8rem;
}
@media (prefers-reduced-motion: no-preference) {
  .site-more-nav nav a {
    transition: background-color 120ms ease;
  }
}

/* Collections use the same open rows as guides; artwork, names and actions lead. */
html[data-theme] body main.site-content:has(#wish-items, #cc-items, #games-list) {
  max-width: 56rem;
}
html[data-theme]
  body
  .site-content
  :is(.wishlist-head, .view-head, .cc-head, .games-head, .log-head)
  h1 {
  font-size: clamp(2.3rem, 5vw, 3.6rem);
  margin-block: 0.4rem 1rem;
}
html[data-theme] body .site-content :is(.collection-portals, .collection-wishlist-grid) {
  gap: 0 2rem;
}
html[data-theme] body .site-content .collection-portal::after {
  display: none;
}
html[data-theme] body .site-content .collection-portal-info h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
}
html[data-theme] body .site-content .collection-portal-info p {
  line-height: 1.6;
}
html[data-theme] body .site-content .collection-portal-info small {
  color: var(--theme-muted);
}
html[data-theme] body .site-content .collection-wishlist-row {
  grid-template-columns: 64px minmax(0, 1fr) auto;
  align-items: center;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--site-rule);
  padding: 1.4rem 0;
  gap: 1rem;
}
html[data-theme] body .site-content .collection-wishlist-row h3 {
  font-family: var(--site-font-display);
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 0 0 0.4rem;
}
html[data-theme] body .site-content .collection-wishlist-row > a {
  grid-column: auto;
  min-width: 64px;
  padding: 0.5rem 0;
  border: 0;
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 0.3em;
  font-size: 0.9rem;
  font-weight: 500;
}
html[data-theme] body .site-content .collection-index-group > h2 {
  margin-top: 2rem;
}
html[data-theme] body .site-content .collection-index-group > .collection-section-label {
  font: 650 0.7rem var(--site-font-reading);
  color: var(--theme-muted);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
html[data-theme] body #wish-items > .wishlist-item {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--site-rule);
  border-radius: 0;
  box-shadow: none;
  padding: 1.4rem 0;
  gap: 0.65rem 1.2rem;
}
html[data-theme] body #wish-items .wishlist-item h2 {
  font-size: 1.35rem;
  line-height: 1.35;
}
html[data-theme] body #wish-items .wishlist-item p {
  font-size: 0.9rem;
  line-height: 1.6;
}
html[data-theme] body #wish-items .wish-saved-price strong {
  font-size: 1.4rem;
  font-weight: 500;
}
html[data-theme] body #wish-items .wish-row-actions {
  gap: 1.2rem;
}
html[data-theme] body #wish-items .wish-row-actions button {
  opacity: 1;
  text-decoration: underline;
  text-decoration-color: var(--site-rule);
}
html[data-theme] body #wish-items .wish-row-actions button:hover {
  text-decoration-color: currentColor;
}
html[data-theme] body .site-content :is(#wish-share, #wish-settings, #wishlist-email-open) {
  background: transparent;
  border-color: transparent;
  color: var(--theme-accent);
  text-decoration: underline;
  text-underline-offset: 0.3em;
  padding-inline: 0.65rem;
}
html[data-theme] body .site-content :is(.wish-toolbar, .cc-tools, #games-search) {
  padding-block: 0.75rem 1.25rem;
}
html[data-theme] body #cc-overview .cc-row,
html[data-theme] body #cc-items > .cc-row,
html[data-theme] body #games-list > .game-row,
html[data-theme] body #log-list > li {
  border: 0;
  border-top: 1px solid var(--site-rule);
  background: transparent;
  border-radius: 0;
  padding: 1.3rem 0;
  box-shadow: none;
}
html[data-theme] body #cc-overview :is(h2, h3),
html[data-theme] body #cc-items :is(h2, h3),
html[data-theme] body #games-list summary > strong,
html[data-theme] body #log-list strong,
html[data-theme] body .view-item h3 {
  font-family: var(--site-font-display);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.3;
}
html[data-theme] body .site-content .view-item {
  padding-block: 1.3rem;
  border-color: var(--site-rule);
}
html[data-theme] body .site-content :is(.cc-list, .log-list) {
  gap: 0;
}
html[data-theme] body .site-content .cc-open {
  border-color: transparent;
  border-radius: 0;
  background: transparent;
  color: var(--theme-accent);
  text-decoration: underline;
  text-underline-offset: 0.3em;
}
html[data-theme] body .site-content .view-source {
  border-color: var(--site-rule);
}
html[data-theme] body .site-content .games-badge {
  font: 500 0.75rem/1.4 var(--site-font-reading);
  letter-spacing: normal;
  vertical-align: middle;
}
html[data-theme] body #log-list > li > a {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0.4rem 0;
}
html[data-theme] body #games-list summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.4rem 1rem;
}
html[data-theme] body #games-list summary > small {
  grid-column: 1;
  margin-left: 0;
}
html[data-theme] body #games-list summary::after {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}
@media (max-width: 520px) {
  html[data-theme] body .site-content .fin-head {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
  }
  html[data-theme] body .site-content .fin-head > div {
    flex: 1 1 18rem;
  }
  html[data-theme] body .site-content .fin-head h1 {
    font-size: clamp(2rem, 8vw, 2.7rem);
  }
  html[data-theme] body .site-content .collection-wishlist-row {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 0.5rem 1rem;
  }
  html[data-theme] body .site-content .collection-wishlist-row > a {
    grid-column: 2;
    justify-self: start;
  }
  html[data-theme] body .site-content .collection-wishlist-row .wishlist-badge {
    width: 48px !important;
    height: 48px !important;
    flex-basis: 48px !important;
  }
  html[data-theme] body #wish-items > .wishlist-item {
    gap: 0.65rem 0.85rem;
  }
}
@media (forced-colors: active) {
  .site-more-nav > nav > a[aria-current] {
    border-color: Highlight;
  }
}
