/* Quiet feedback, using theme tokens. Images retain their original framing. */
.gpw-main :is(.gpw-review-image, .gpw-editorial-cover, .gpw-gallery-cover, .gpw-gallery-image) img {
  transition: none;
}
.gpw-main :is(.gpw-review-card:hover .gpw-review-image, .gpw-editorial-card:hover .gpw-editorial-cover, .gpw-gallery-cover:hover, .gpw-gallery-image:hover) img {
  transform: none;
}

/* A quiet typographic signature gives the founding year a place of its own. */
.gpw-topline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: .8rem;
  padding-block: .5rem;
}
.gpw-topline > a { justify-self: end; white-space: nowrap; }
.gpw-heritage {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .1rem .35rem;
  color: var(--muted);
}
.gpw-heritage-star { display: none; }
.gpw-heritage strong {
  font: 700 1rem/1 var(--display);
  color: var(--ink);
  letter-spacing: -.035em;
  text-transform: none;
  white-space: nowrap;
}
.gpw-heritage-copy {
  border-left: 1px solid var(--gold);
  padding-left: .55rem;
  font: 700 .58rem/1.5 var(--body);
  letter-spacing: .075em;
  white-space: nowrap;
}
@media (max-width: 700px) {
  .gpw-topline { grid-template-columns: minmax(0, 1fr) auto; gap: .55rem 1rem; }
  .gpw-heritage { display: none; }
}

@media screen {
  /* Keep the solid wordmark at rest; reveal a moving ribbon of brand colors. */
  @supports (background-clip: text) or (-webkit-background-clip: text) {
    @media (forced-colors: none) {
      .gpw-brandmark {
        --gpw-logo-edge: var(--paper);
        /* Impact's outer glyph edges need room inside the clipped background. */
        padding-inline: .1em;
        margin-inline: -.1em;
        background-image: linear-gradient(110deg, var(--red) 0%, var(--gold) 25%, var(--teal) 50%, var(--red) 75%, var(--gold) 100%);
        background-size: 280% 100%;
        background-position: 0% 50%;
        -webkit-background-clip: text;
        background-clip: text;
      }
      .gpw-footer .gpw-brandmark {
        --gpw-logo-edge: var(--ink);
        background-image: linear-gradient(110deg, var(--gold) 0%, var(--paper) 25%, var(--gold) 50%, var(--surface) 75%, var(--gold) 100%);
      }
      .gpw-brand:focus-visible .gpw-brandmark {
        color: transparent;
        text-shadow: none;
        filter: drop-shadow(2px 2px 0 var(--gpw-logo-edge)) drop-shadow(2px 2px 0 var(--red));
        animation: gpw-logo-flow 3s ease-in-out infinite alternate;
      }
      @media (hover: hover) and (pointer: fine) {
        .gpw-brand:hover .gpw-brandmark {
          color: transparent;
          text-shadow: none;
          filter: drop-shadow(2px 2px 0 var(--gpw-logo-edge)) drop-shadow(2px 2px 0 var(--red));
          animation: gpw-logo-flow 3s ease-in-out infinite alternate;
        }
      }
    }
  }
  @keyframes gpw-logo-flow {
    from { background-position: 0% 50%; }
    to { background-position: 100% 50%; }
  }

  .gpw-nav a { position: relative; }
  .gpw-nav a::after {
    content: '';
    position: absolute;
    inset: auto .7rem .3rem;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
  }
  .gpw-nav a:is(:hover, :focus-visible, [aria-current=page])::after { transform: scaleX(1); }
  .gpw-nav a:hover { background: transparent; color: var(--red); }
  .gpw-nav a[aria-current=page] { background: var(--ink); color: var(--surface); }
  .gpw-arrowlink::after { display: inline-block; transition: transform .18s ease; }

  .gpw-search input { transition: box-shadow .18s ease, background-color .18s ease; }
  .gpw-search:focus-within input {
    background: var(--surface) !important;
    box-shadow: inset 0 0 0 1px var(--teal);
  }
  :is(button, .gpw-button, .gpw-action, .gpw-editorial-action, .gpw-pagination a, .gpw-reader-pages a) {
    transition: color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
  }
  :is(button, .gpw-button, .gpw-action, .gpw-editorial-action):not(:disabled):active {
    box-shadow: inset 0 0 0 2px currentColor;
  }

  .gpw-main :is(.gpw-release-lead, .gpw-release-grid > .gpw-release-card, .gpw-review-card, .gpw-gallery-collection, .gpw-gallery-mini) {
    transition: box-shadow .2s ease, transform .2s ease;
  }
  .gpw-main :is(.gpw-release-lead, .gpw-release-card, .gpw-review-card, .gpw-gallery-collection, .gpw-gallery-mini, .gpw-editorial-card, .gpw-product-row, .gpw-catalog-list li):focus-within {
    box-shadow: 0 0 0 1px var(--teal);
  }

  @media (hover: hover) and (pointer: fine) {
    .gpw-nav a::after { transition: transform .18s ease; }
    .gpw-main :is(.gpw-release-lead, .gpw-release-grid > .gpw-release-card, .gpw-review-card, .gpw-gallery-collection, .gpw-gallery-mini):hover {
      transform: translateY(-3px);
      box-shadow: 0 0 0 1px var(--line), 0 9px 22px color-mix(in srgb, var(--ink) 12%, transparent);
    }
    .gpw-main :is(.gpw-news-card, .gpw-editorial-card, .gpw-product-row, .gpw-catalog-list li):hover {
      border-color: var(--teal);
    }
    .gpw-arrowlink:hover::after { transform: translate(3px, -2px); }
    :is(button, .gpw-button, .gpw-action, .gpw-editorial-action):not(:disabled):hover {
      transform: translateY(-1px);
      box-shadow: 0 3px 8px color-mix(in srgb, var(--ink) 16%, transparent);
    }
    :is(button, .gpw-button, .gpw-action, .gpw-editorial-action):not(:disabled):active { transform: translateY(1px); }
  }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; }
    .gpw-brandmark { animation: none !important; }
    .gpw-main :is(.gpw-release-lead, .gpw-release-card, .gpw-review-card, .gpw-gallery-collection, .gpw-gallery-mini),
    :is(button, .gpw-button, .gpw-action, .gpw-editorial-action), .gpw-arrowlink::after { transform: none !important; }
  }
}
