.games {
  --games-accent: var(--mob-magenta);
  --games-accent-rgb: var(--mob-magenta-rgb);
  --games-gutter: clamp(1.25rem, .5rem + 2.2vw, 2.5rem);
  position: relative;
}

.games__intro {
  margin: var(--sp-2) 0 0;
  color: var(--text-muted);
  line-height: var(--lh-body);
}

.games__cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.25rem, 1.4rem + 3.6vw, 3.5rem);
  align-items: stretch;
}

.games__col {
  position: relative;
  min-width: 0;
}

.games__col--play { --col-accent: var(--mob-magenta);    --col-accent-rgb: var(--mob-magenta-rgb); }
.games__col--make { --col-accent: var(--mob-vermillion); --col-accent-rgb: var(--mob-vermillion-rgb); }

.games__col-title {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin: 0 0 var(--sp-5);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--line);
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 600;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--text);
}

.games__col-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 3.5rem;
  height: 2px;
  background: var(--col-accent);
  box-shadow: 0 0 12px -2px rgba(var(--col-accent-rgb), .95);
}

.games__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--gap-card);
  margin: 0;
  padding: 0;
  list-style: none;
}

.games__item { display: flex; }

.game-card {
  --gc-accent: var(--games-accent);
  --gc-accent-rgb: var(--games-accent-rgb);
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: var(--pad-card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: rgba(var(--white-rgb), .035);
  backdrop-filter: blur(14px) saturate(130%);
  -webkit-backdrop-filter: blur(14px) saturate(130%);
  overflow: hidden;
  transition:
    border-color var(--dur-2) var(--ease-out),
    box-shadow var(--dur-2) var(--ease-out),
    transform var(--dur-2) var(--ease-spring);
}

.game-card::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -30%;
  width: 70%;
  height: 100%;
  pointer-events: none;
  opacity: .18;
  background: radial-gradient(closest-side, var(--gc-accent), transparent 72%);
  transition: opacity var(--dur-2) var(--ease-out);
}

.game-card--valorant  { --gc-accent: var(--mob-crimson);   --gc-accent-rgb: var(--mob-crimson-rgb); }
.game-card--overwatch { --gc-accent: var(--mob-cyan);      --gc-accent-rgb: var(--mob-cyan-rgb); }
.game-card--lol       { --gc-accent: var(--mob-magenta-2); --gc-accent-rgb: var(--mob-magenta-2-rgb); }
.game-card--fortnite  { --gc-accent: var(--mob-rose);      --gc-accent-rgb: var(--mob-rose-rgb); }

.game-card--main {
  border-color: rgba(var(--gc-accent-rgb), .48);
  background: var(--glass-bg);
  box-shadow:
    inset 0 0 0 1px rgba(var(--white-rgb), .03),
    0 0 34px -18px rgba(var(--gc-accent-rgb), .9);
}

.game-card--main::before { opacity: .3; }

.game-card__badge {
  position: absolute;
  top: var(--pad-card);
  right: var(--pad-card);
  margin: 0;
  padding: .2em .7em;
  font-family: var(--font-display);
  font-size: .6rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-900);
  background: var(--gc-accent);
  border-radius: var(--r-pill);
}

.game-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.1rem;
  height: 3.1rem;
  margin-bottom: var(--sp-4);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  color: var(--gc-accent);
  background: rgba(var(--white-rgb), .04);
  transition:
    transform var(--dur-2) var(--ease-spring),
    box-shadow var(--dur-2) var(--ease-out),
    border-color var(--dur-2) var(--ease-out);
}

.game-card__icon svg {
  display: block;
  width: 1.85rem;
  height: 1.85rem;
  filter: drop-shadow(0 0 6px currentColor);
}

.game-card__icon-img {
  display: block;
  width: 1.85rem;
  height: 1.85rem;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.game-card__title {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: var(--ls-title);
  text-transform: uppercase;
  color: var(--text);
  text-wrap: balance;
  overflow-wrap: break-word;
}

.game-card__role {
  margin: 0 0 var(--sp-4);
  font-size: var(--fs-small);
  line-height: 1.65;
  color: var(--text-muted);
  overflow-wrap: break-word;
}

.game-card__role strong { color: var(--text); font-weight: 600; }

.game-card__mention,
.content-card__mention {
  color: var(--gc-accent);
  font-weight: 600;
  white-space: nowrap;
}

.game-card__cmd,
.content-card__cmd {
  padding: .1em .45em;
  font-family: var(--font-mono);
  font-size: .85em;
  color: var(--gc-accent);
  border: 1px solid rgba(var(--gc-accent-rgb), .32);
  border-radius: 6px;
  background: rgba(var(--gc-accent-rgb), .08);
  white-space: nowrap;
}

.game-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin: auto 0 0;
  padding: 0;
}

.game-card__chip {
  display: inline-block;
  padding: .25em .8em;
  font-family: var(--font-display);
  font-size: .68rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: var(--ls-link);
  text-transform: uppercase;
  color: var(--text);
  border: 1px solid rgba(var(--gc-accent-rgb), .45);
  border-radius: var(--r-pill);
  background: rgba(var(--gc-accent-rgb), .1);
}

.game-card__chip--free,
.game-card__chip--soft {
  color: var(--text-dim);
  border-color: var(--line);
  background: rgba(var(--white-rgb), .03);
}

.game-card__more {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  margin-top: var(--sp-3);
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: var(--ls-link);
  text-transform: uppercase;
  text-decoration: none;
  color: var(--gc-accent);
}

.game-card__more::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.game-card__more-arrow {
  transition: transform var(--dur-1) var(--ease-out);
}

.game-card__more:focus-visible {
  outline: 2px solid var(--mob-cyan);
  outline-offset: 4px;
  border-radius: 4px;
}

.game-card:focus-within { border-color: var(--gc-accent); }

@media (hover: hover) and (pointer: fine) {
  .game-card:hover {
    border-color: var(--gc-accent);
    transform: translateY(-3px);
    box-shadow:
      inset 0 0 0 1px rgba(var(--white-rgb), .04),
      0 0 26px -8px rgba(var(--gc-accent-rgb), .9),
      var(--shadow-2);
  }

  .game-card:hover::before { opacity: .42; }

  .game-card:hover .game-card__more-arrow { transform: translateX(4px); }

  .game-card:hover .game-card__icon {
    transform: translateY(-2px) scale(1.05);
    border-color: var(--gc-accent);
    box-shadow: 0 0 18px -6px rgba(var(--gc-accent-rgb), .9);
  }
}

.games__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin: 0;
  padding: var(--sp-2);
  list-style: none;
  border: var(--glass-border);
  border-radius: var(--r-lg);
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-shadow);
}

@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
  .games__list { background: var(--glass-solid); }
}

.games__row { display: block; }

.content-card {
  --cc-accent: var(--games-accent);
  --cc-accent-rgb: var(--games-accent-rgb);
  --gc-accent: var(--cc-accent);
  --gc-accent-rgb: var(--cc-accent-rgb);
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--sp-4);
  align-items: start;
  padding: var(--sp-4) var(--sp-3);
  border-radius: var(--r-md);
  transition: background-color var(--dur-2) var(--ease-out);
}

.games__row + .games__row .content-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: var(--sp-3);
  right: var(--sp-3);
  height: 1px;
  background: var(--line);
}

:where(.games__row:nth-child(3n + 1)) .content-card { --cc-accent: var(--mob-magenta);    --cc-accent-rgb: var(--mob-magenta-rgb); }
:where(.games__row:nth-child(3n + 2)) .content-card { --cc-accent: var(--mob-magenta-2);  --cc-accent-rgb: var(--mob-magenta-2-rgb); }
:where(.games__row:nth-child(3n + 3)) .content-card { --cc-accent: var(--mob-vermillion); --cc-accent-rgb: var(--mob-vermillion-rgb); }

.content-card--chatting { --cc-accent: var(--mob-magenta);    --cc-accent-rgb: var(--mob-magenta-rgb); }
.content-card--art      { --cc-accent: var(--mob-magenta-2);  --cc-accent-rgb: var(--mob-magenta-2-rgb); }
.content-card--cosplay  { --cc-accent: var(--mob-vermillion); --cc-accent-rgb: var(--mob-vermillion-rgb); }

.content-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 2.4rem;
  height: 2.4rem;
  margin-top: .15rem;
  border-radius: var(--r-pill);
  color: var(--cc-accent);
  background: rgba(var(--cc-accent-rgb), .1);
  box-shadow: inset 0 0 0 1px rgba(var(--cc-accent-rgb), .3);
  transition:
    transform var(--dur-2) var(--ease-spring),
    box-shadow var(--dur-2) var(--ease-out);
}

.content-card__icon svg {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
  filter: drop-shadow(0 0 6px currentColor);
}

.content-card__icon-img {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.content-card__body { min-width: 0; }

.content-card__title {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin: 0 0 var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-display);
  color: var(--text);
  overflow-wrap: break-word;
}

.content-card__title::after {
  content: "";
  flex: 1 1 var(--sp-6);
  min-width: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--cc-accent-rgb), .55), transparent);
}

.content-card__link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--cc-accent-rgb), .5);
  transition:
    color var(--dur-2) var(--ease-out),
    border-color var(--dur-2) var(--ease-out);
}

.content-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.content-card__link:hover,
.content-card__link:focus-visible {
  color: var(--cc-accent);
  border-bottom-color: var(--cc-accent);
}

.content-card__link:focus-visible {
  outline: 2px solid var(--mob-cyan);
  outline-offset: 4px;
  border-radius: 4px;
}

.content-card__text {
  margin: 0;
  max-width: var(--content-measure);
  color: var(--text-muted);
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  overflow-wrap: break-word;
}

.content-card__text strong { color: var(--text); font-weight: 600; }

.content-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-1) var(--sp-4);
  margin: var(--sp-3) 0 0;
  padding: 0;
}

.content-card__chip {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  font-family: var(--font-display);
  font-size: var(--fs-label);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--text-dim);
}

.content-card__chip::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: var(--r-pill);
  background: var(--cc-accent);
  box-shadow: 0 0 8px rgba(var(--cc-accent-rgb), .85);
}

.content-card__more {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  margin-top: var(--sp-3);
  font-family: var(--font-display);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  text-decoration: none;
  color: var(--cc-accent);
}

.content-card__more-arrow { transition: transform var(--dur-2) var(--ease-out); }

.content-card__more:hover .content-card__more-arrow,
.content-card__more:focus-visible .content-card__more-arrow {
  transform: translateX(3px);
}

.content-card__more:focus-visible {
  outline: 2px solid var(--mob-cyan);
  outline-offset: 4px;
  border-radius: 4px;
}

.content-card:focus-within {
  background: rgba(var(--cc-accent-rgb), .07);
}

@media (hover: hover) and (pointer: fine) {
  .content-card:hover { background: rgba(var(--cc-accent-rgb), .06); }

  .content-card:hover .content-card__icon,
  .content-card:focus-within .content-card__icon {
    transform: scale(1.06);
    box-shadow:
      inset 0 0 0 1px rgba(var(--cc-accent-rgb), .6),
      0 0 18px -4px rgba(var(--cc-accent-rgb), .8);
  }
}

@media (min-width: 768px) {
  .games__cols {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 0;
  }

  .games__col--play { padding-right: var(--games-gutter); }
  .games__col--make { padding-left: var(--games-gutter); }

  .games__col--make::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    pointer-events: none;
    background: linear-gradient(180deg,
      transparent 0%,
      rgba(var(--mob-magenta-rgb), .38) 16%,
      rgba(var(--mob-vermillion-rgb), .38) 84%,
      transparent 100%);
  }
}

@media (min-width: 1100px) {
  .games__cols { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }

  .games__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .game-card,
  .game-card::before,
  .game-card__icon,
  .game-card__more-arrow,
  .content-card,
  .content-card__icon,
  .content-card__link,
  .content-card__more-arrow { transition: none; }

  .game-card:hover { transform: none; }
  .game-card:hover .game-card__more-arrow { transform: none; }
  .game-card:hover .game-card__icon { transform: none; }

  .content-card:hover .content-card__icon,
  .content-card:focus-within .content-card__icon { transform: none; }

  .content-card__more:hover .content-card__more-arrow,
  .content-card__more:focus-visible .content-card__more-arrow { transform: none; }
}

.games__all {
  display: flex;
  justify-content: center;
  margin: calc(-.5 * clamp(2rem, 1rem + 3vw, 3.5rem)) 0 clamp(2rem, 1rem + 3vw, 3.5rem);
}

.games__all-btn {
  box-shadow: var(--glow-strong);
}

.games__all-btn::after {
  content: "";
  flex: none;
  width: .38em;
  height: .62em;
  background-color: currentColor;
  clip-path: polygon(18% 0, 100% 50%, 18% 100%, 0 82%, 62% 50%, 0 18%);
  transition: translate var(--dur-2) var(--ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .games__all-btn:hover::after { translate: 3px 0; }
}

@media (max-width: 479.98px) {
  .games__all-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .games__all-btn::after { transition: none; }
  .games__all-btn:hover::after { translate: none; }
}
