/* ============================================================
   GAME STREET — Article page CSS (single.php)
   Layered on top of gamestreet.css. Scoped to body.gs-page-article.
   ============================================================ */

body.gs-page-article { --toc-w: 260px; --cat-w: 300px; }

/* Hide SWELL's default wrappers completely on the article page */
body.gs-page-article #body_wrap > :not(.gs-ticker):not(.gs-header):not(.gs-crumb):not(.gs-ahero):not(.gs-tldr):not(.gs-awrap):not(.gs-footer) {
  display: none !important;
}

/* ==========================================================
   BREADCRUMB
   ========================================================== */
.gs-crumb {
  border-bottom: 1px solid var(--line);
  position: relative; z-index: 1;
  background: rgba(7,6,12,.5);
}
.gs-crumb__inner {
  max-width: 1440px; margin: 0 auto;
  padding: 12px 32px;
  display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
  font-size: 11px; letter-spacing: .12em;
}
.gs-crumb__home    { color: var(--fg-mute); }
.gs-crumb__sep     { color: var(--line-2); }
.gs-crumb__link    { color: var(--fg-dim); transition: color .15s; }
.gs-crumb__link:hover { color: var(--neon); }
.gs-crumb__current { color: var(--cyan); font-weight: 700; }

/* ==========================================================
   ARTICLE HERO
   ========================================================== */
.gs-ahero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line-2); isolation: isolate; }
.gs-ahero__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center 30%;
  filter: saturate(1.2) contrast(1.05) brightness(.55);
  z-index: -3;
}
.gs-ahero__fade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(7,6,12,.45) 0%, rgba(7,6,12,.65) 40%, rgba(7,6,12,.95) 100%);
  z-index: -2;
}
.gs-ahero__scan {
  position: absolute; inset: 0;
  mix-blend-mode: overlay;
  background: repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0 1px, transparent 1px 3px);
  z-index: -1;
}
.gs-ahero__glow {
  position: absolute; width: 700px; height: 700px;
  filter: blur(20px); pointer-events: none; z-index: -1;
}
.gs-ahero__glow--neon { left: -10%; top: -20%; background: radial-gradient(circle, rgba(255,42,109,.25), transparent 60%); }
.gs-ahero__glow--cyan { right: -10%; bottom: -30%; background: radial-gradient(circle, rgba(0,231,255,.18), transparent 60%); }
.gs-ahero__stroke {
  position: absolute; left: -2%; bottom: -40px;
  font-size: clamp(120px, 20vw, 320px); font-weight: 900;
  letter-spacing: -.02em; line-height: .85;
  color: transparent; -webkit-text-stroke: 1px rgba(255,42,109,.18);
  pointer-events: none; white-space: nowrap; z-index: -1;
}

.gs-ahero__inner {
  max-width: 1440px; margin: 0 auto;
  padding: 52px 32px 42px; position: relative;
  display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: end;
}
.gs-ahero__topmeta { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; flex-wrap: wrap; }
.gs-ahero__issue {
  padding: 5px 12px; background: var(--neon); color: #000;
  font-size: 10px; letter-spacing: .3em; font-weight: 700;
}
.gs-ahero__cat, .gs-ahero__date {
  font-size: 10px; color: var(--fg-dim); letter-spacing: .3em;
}
.gs-ahero__eyebrow { font-size: 11px; color: var(--acid); letter-spacing: .35em; margin-bottom: 10px; }
.gs-ahero__title {
  font-size: clamp(44px, 7vw, 120px); font-weight: 900; line-height: .9;
  margin: 0; letter-spacing: -.02em; color: var(--fg);
}
.gs-ahero__subtitle {
  font-size: clamp(16px, 1.5vw, 22px); font-weight: 500; color: var(--fg);
  margin-top: 16px; line-height: 1.5; max-width: 720px;
}
.gs-ahero__tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 22px; }

.gs-ahero__meta {
  display: flex; gap: 28px; flex-wrap: wrap;
  margin-top: 22px; padding-top: 18px; border-top: 1px dashed var(--line-2);
}
.gs-ahero__metaitem { display: flex; flex-direction: column; gap: 4px; }
.gs-ahero__metakey  { font-size: 9px; color: var(--fg-mute); letter-spacing: .3em; }
.gs-ahero__metaval  { font-size: 17px; font-weight: 700; color: var(--fg); }

/* Score box (right side) */
.gs-ahero__scorebox {
  position: relative; border: 1px solid var(--vc);
  padding: 22px 24px; background: rgba(7,6,12,.72); backdrop-filter: blur(6px);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%);
}
.gs-ahero__scorebox-label { font-size: 11px; color: var(--vc); letter-spacing: .3em; margin-bottom: 10px; }
.gs-ahero__scorebox-big   { display: flex; align-items: flex-end; gap: 12px; }
.gs-ahero__scorebox-num {
  font-size: 86px; font-weight: 900; line-height: .85;
  color: var(--vc); letter-spacing: -.03em;
}
.gs-ahero__scorebox-num span { font-size: 22px; opacity: .5; font-weight: 700; }
.gs-ahero__scorebox-meta {
  display: grid; grid-template-columns: auto 1fr; gap: 6px 14px;
  margin-top: 16px; font-size: 11px; letter-spacing: .1em;
}
.gs-ahero__scorebox-key { color: var(--fg-mute); }
.gs-ahero__scorebox-val { color: var(--fg); font-weight: 700; }
.gs-ahero__scorebox-val.is-acid { color: var(--acid); }
.gs-ahero__scorebox-cta {
  display: block; text-align: center; width: 100%;
  margin-top: 18px; padding: 12px 16px;
  background: var(--vc); color: #000; border: none;
  font-size: 12px; letter-spacing: .25em; font-weight: 700; cursor: pointer;
  clip-path: polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%);
  transition: transform .15s;
}
.gs-ahero__scorebox-cta:hover { transform: translateY(-1px); }

/* ==========================================================
   TL;DR
   ========================================================== */
.gs-tldr {
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  background: rgba(0,0,0,.4); position: relative; z-index: 1;
}
.gs-tldr__inner {
  max-width: 1440px; margin: 0 auto;
  padding: 20px 32px;
  display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center;
}
.gs-tldr__label {
  font-size: 12px; color: var(--neon); letter-spacing: .25em; white-space: nowrap;
  font-weight: 700; font-family: 'Noto Sans JP', sans-serif;
}
.gs-tldr__grid {
  display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 20px;
}
.gs-tldr__item { display: flex; gap: 10px; }
.gs-tldr__num  { font-size: 10px; color: var(--cyan); letter-spacing: .25em; flex: 0 0 auto; padding-top: 3px; }
.gs-tldr__text { font-size: 13px; color: var(--fg-dim); line-height: 1.6; }

/* ==========================================================
   BODY + SIDEBAR GRID — SIDEBAR ON RIGHT
   ========================================================== */
.gs-awrap {
  max-width: 1440px; margin: 0 auto;
  padding: 40px 32px 60px; position: relative; z-index: 1;
}
.gs-awrap__grid {
  display: grid; grid-template-columns: 1fr var(--cat-w); gap: 40px; align-items: start;
}
.gs-awrap__grid--tri {
  grid-template-columns: var(--toc-w) minmax(0, 1fr) var(--cat-w) !important;
  gap: 32px !important;
}
/* Lock explicit column placement in case existing CSS tries to move items */
.gs-awrap__grid--tri > .gs-aside-left { grid-column: 1 !important; grid-row: 1 !important; }
.gs-awrap__grid--tri > .gs-abody      { grid-column: 2 !important; grid-row: 1 !important; }
.gs-awrap__grid--tri > .gs-aside      { grid-column: 3 !important; grid-row: 1 !important; }

.gs-abody { min-width: 0 !important; max-width: none !important; width: 100% !important; margin: 0 !important; }

/* ==========================================================
   LEFT SIDEBAR (TOC) — article pages
   ========================================================== */
.gs-aside-left {
  position: sticky !important;
  top: 100px !important;
  align-self: start !important;
}

/* ==========================================================
   RIGHT SIDEBAR (category tree) — article pages
   ========================================================== */
.gs-aside {
  position: sticky !important;
  top: 100px !important;
  align-self: start !important;
  display: flex; flex-direction: column; gap: 16px;
}
.gs-awrap__grid { align-items: start !important; }

/* ==========================================================
   TOC (collapsible <details>)
   ========================================================== */
.gs-toc {
  position: relative;
  border: 1px solid var(--line-2);
  background: rgba(17,16,28,.85);
  overflow: hidden;
}
.gs-toc__sum {
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  align-items: center;
  padding: 14px 14px 14px 16px;
  background: linear-gradient(90deg, rgba(0,231,255,.08), transparent 80%);
  transition: background .2s;
  user-select: none;
  position: relative;
}
.gs-toc__sum::-webkit-details-marker { display: none; }
.gs-toc__sum::marker { content: ''; }
.gs-toc__sum:hover { background: linear-gradient(90deg, rgba(0,231,255,.16), transparent 80%); }
.gs-toc__head-label {
  font-size: 11px; color: var(--cyan); letter-spacing: .3em; font-weight: 700;
}
.gs-toc__count {
  font-size: 10px; color: var(--fg-mute); letter-spacing: .15em;
  padding: 2px 7px; border: 1px solid var(--line-2); background: rgba(0,0,0,.4);
}
.gs-toc__chev {
  color: var(--cyan); font-size: 12px;
  transition: transform .25s;
}
.gs-toc[open] > .gs-toc__sum .gs-toc__chev { transform: rotate(180deg); }
.gs-toc__body { padding: 14px 16px 14px; border-top: 1px dashed var(--line-2); }
.gs-toc__bar { height: 3px; background: rgba(255,255,255,.05); margin-bottom: 14px; position: relative; }
.gs-toc__bar > div {
  position: absolute; top: 0; bottom: 0; left: 0; width: 0%;
  background: linear-gradient(90deg, var(--neon), var(--cyan));
  transition: width .1s;
}
.gs-toc__list { display: flex; flex-direction: column; gap: 2px; }
.gs-toc__item {
  display: grid; grid-template-columns: 34px 1fr; gap: 8px;
  padding: 8px 6px; align-items: baseline;
  border-left: 2px solid transparent;
  transition: all .15s;
}
.gs-toc__item:hover { background: rgba(255,42,109,.05); }
.gs-toc__item.is-active {
  border-left-color: var(--neon);
  background: linear-gradient(90deg, rgba(255,42,109,.1), transparent);
}
.gs-toc__num  { font-size: 10px; color: var(--fg-mute); letter-spacing: .2em; }
.gs-toc__item.is-active .gs-toc__num { color: var(--neon); }
.gs-toc__text { font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--fg-dim); }
.gs-toc__item.is-active .gs-toc__text { color: var(--fg); }

.gs-aside-stats {
  border: 1px solid var(--line); padding: 14px 16px; background: rgba(0,0,0,.4);
}
.gs-aside-stats__head {
  font-size: 11px; color: var(--acid); letter-spacing: .25em;
  display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
}
.gs-aside-stats__grid {
  display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; font-size: 11px;
}
.gs-aside-stats__k { color: var(--fg-mute); letter-spacing: .1em; }
.gs-aside-stats__v { color: var(--fg); font-weight: 700; letter-spacing: .05em; }
.gs-aside-stats__v.is-acid { color: var(--acid); }
.gs-aside-stats__foot { font-size: 9px; color: var(--fg-mute); letter-spacing: .25em; margin-top: 12px; }

.gs-aside-share { border: 1px dashed var(--line-2); padding: 12px 14px; }
.gs-aside-share__head { font-size: 10px; color: var(--fg-mute); letter-spacing: .3em; margin-bottom: 10px; }
.gs-aside-share__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.gs-aside-share__btn {
  padding: 7px 8px; border: 1px solid var(--line-2); background: transparent;
  color: var(--fg-dim); font-size: 10px; letter-spacing: .15em; cursor: pointer;
  text-align: center; transition: all .15s;
}
.gs-aside-share__btn:hover { border-color: var(--neon); color: var(--fg); }

/* ==========================================================
   POST CONTENT — comprehensive dark cyberpunk styling
   All overrides scoped to body.gs-page-article .gs-article-body.
   ========================================================== */
body.gs-page-article .gs-article-body {
  font-family: 'Noto Sans JP', system-ui, sans-serif;
  color: var(--fg);
  font-size: 16px;
  line-height: 1.95;
}

/* Reset SWELL's post-content wrapper */
body.gs-page-article .gs-article-body::before,
body.gs-page-article .gs-article-body::after { display: none !important; }

/* Counter for h2 auto-numbering */
body.gs-page-article .gs-article-body { counter-reset: gs-h2; }

/* =========================================================
   H2 — CYBERPUNK TERMINAL BLOCK
   Dense-grid layout, chunky serial code, neon slash accent,
   faux terminal status indicator on the right.
   ========================================================= */
/* =========================================================
   H2 — CLEAN cyberpunk block. No pseudo elements to avoid
   collisions with SWELL's existing .post_content h2::before.
   ========================================================= */
html body.gs-page-article .gs-article-body h2 {
  position: relative !important;
  display: block !important;
  margin: 60px 0 28px !important;
  padding: 20px 22px !important;
  min-height: 0 !important;
  font-family: 'Barlow Condensed', 'Chakra Petch', 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif !important;
  font-size: clamp(22px, 2.2vw, 32px) !important;
  font-weight: 900 !important;
  line-height: 1.4 !important;
  color: var(--fg) !important;
  letter-spacing: .005em !important;
  border-top: 0 !important;
  border-right: 1px solid var(--line-2) !important;
  border-bottom: 1px solid var(--line-2) !important;
  border-left: 4px solid var(--neon) !important;
  border-radius: 0 !important;
  background:
    linear-gradient(90deg, rgba(255,42,109,.14) 0%, rgba(255,42,109,.03) 40%, transparent 80%),
    rgba(17,16,28,.85) !important;
  text-wrap: balance;
  box-shadow: 0 6px 20px -8px rgba(255,42,109,.25);
  isolation: isolate;
  overflow: hidden;
}
html body.gs-page-article .gs-article-body h2::before,
html body.gs-page-article .gs-article-body h2::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: none !important;
  width: 0 !important; height: 0 !important;
}

/* =========================================================
   H3 — clean cyan left-bar subhead. No pseudo elements.
   ========================================================= */
html body.gs-page-article .gs-article-body h3 {
  position: relative !important;
  margin: 44px 0 18px !important;
  padding: 10px 18px !important;
  font-family: 'Barlow Condensed', 'Chakra Petch', 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif !important;
  font-size: clamp(18px, 1.6vw, 24px) !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  color: var(--cyan) !important;
  border-top: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 3px solid var(--cyan) !important;
  border-radius: 0 !important;
  background:
    linear-gradient(90deg, rgba(0,231,255,.12), transparent 70%) !important;
  letter-spacing: .015em;
}
html body.gs-page-article .gs-article-body h3::before,
html body.gs-page-article .gs-article-body h3::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: none !important;
  width: 0 !important; height: 0 !important;
}

/* H4 — small accent */
body.gs-page-article .gs-article-body h4 {
  margin: 32px 0 12px !important;
  padding: 0 !important;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--acid) !important;
  border: none !important;
  letter-spacing: .04em !important;
}
body.gs-page-article .gs-article-body h4::before { content: '▌ '; color: var(--acid); }

/* Paragraphs */
body.gs-page-article .gs-article-body p {
  margin: 0 0 20px !important;
  font-size: 16px !important;
  line-height: 1.95 !important;
  color: var(--fg) !important;
  letter-spacing: .01em;
}

/* Strong / bold — neon highlight with underline */
body.gs-page-article .gs-article-body strong,
body.gs-page-article .gs-article-body b {
  color: var(--neon) !important;
  font-weight: 700 !important;
  background: linear-gradient(transparent 62%, rgba(255,42,109,.18) 62%) !important;
  padding: 0 2px !important;
}

/* Links */
body.gs-page-article .gs-article-body a:not(.gs-related__card):not(.gs-linkcard) {
  color: var(--cyan) !important;
  text-decoration: none !important;
  border-bottom: 1px dashed var(--cyan) !important;
  padding-bottom: 1px;
  transition: all .15s;
}
body.gs-page-article .gs-article-body a:not(.gs-related__card):not(.gs-linkcard):hover {
  color: var(--acid) !important; border-bottom-color: var(--acid) !important;
  background: rgba(0,231,255,.05);
}

/* Lists — checkmark bullets */
body.gs-page-article .gs-article-body ul:not(.gs-none) {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 20px 0 !important;
  border: 1px solid var(--line-2);
  background: rgba(0,231,255,.04);
  padding: 14px 18px !important;
}
body.gs-page-article .gs-article-body ul:not(.gs-none) > li {
  position: relative;
  padding: 6px 0 6px 26px !important;
  margin: 0 !important;
  border-top: 1px dashed var(--line-2);
  font-size: 15px;
  color: var(--fg);
  line-height: 1.65;
}
body.gs-page-article .gs-article-body ul:not(.gs-none) > li:first-child { border-top: none; }
body.gs-page-article .gs-article-body ul:not(.gs-none) > li::before {
  content: '✓'; position: absolute; left: 2px; top: 6px;
  color: var(--acid); font-family: 'JetBrains Mono', monospace;
  font-weight: 700; font-size: 14px;
}

body.gs-page-article .gs-article-body ol {
  list-style: none !important;
  counter-reset: gs-ol;
  padding-left: 0 !important;
  margin: 20px 0 !important;
}
body.gs-page-article .gs-article-body ol > li {
  counter-increment: gs-ol;
  position: relative;
  padding: 8px 0 8px 42px !important;
  margin: 0 !important;
  border-top: 1px dashed var(--line-2);
  font-size: 15px;
  color: var(--fg);
  line-height: 1.65;
}
body.gs-page-article .gs-article-body ol > li:first-child { border-top: none; }
body.gs-page-article .gs-article-body ol > li::before {
  content: counter(gs-ol, decimal-leading-zero);
  position: absolute; left: 0; top: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; color: var(--neon); letter-spacing: .15em; font-weight: 700;
}

/* Blockquote — pull-quote style */
body.gs-page-article .gs-article-body blockquote {
  position: relative;
  margin: 30px 0 !important;
  padding: 26px 28px 22px 52px !important;
  background: linear-gradient(90deg, rgba(255,42,109,.08), transparent 60%) !important;
  border: none !important;
  border-left: 3px solid var(--neon) !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: var(--fg) !important;
  font-style: normal !important;
  font-family: 'Barlow Condensed', 'Noto Sans JP', sans-serif;
  font-weight: 700;
  text-wrap: balance;
}
body.gs-page-article .gs-article-body blockquote::before {
  content: '“';
  position: absolute; top: 8px; left: 16px;
  font-family: 'Barlow Condensed', serif;
  font-size: 58px; line-height: 1;
  color: var(--neon); opacity: .45; font-weight: 900;
}
body.gs-page-article .gs-article-body blockquote p { font-size: inherit !important; line-height: inherit !important; color: inherit !important; margin: 0 0 10px !important; }
body.gs-page-article .gs-article-body blockquote p:last-child { margin-bottom: 0 !important; }
body.gs-page-article .gs-article-body blockquote cite,
body.gs-page-article .gs-article-body blockquote footer {
  display: block; margin-top: 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: .25em;
  color: var(--neon); font-style: normal; font-weight: 500;
}

/* Table — cyber dark */
body.gs-page-article .gs-article-body table,
body.gs-page-article .gs-article-body .wp-block-table table {
  width: 100% !important;
  border-collapse: collapse !important;
  border: 1px solid var(--line-2) !important;
  background: rgba(0,0,0,.4) !important;
  margin: 28px 0 !important;
  font-size: 14px !important;
  border-radius: 0 !important;
  box-shadow: inset 0 0 0 1px rgba(0,231,255,.1);
  overflow: hidden;
  font-family: 'Noto Sans JP', sans-serif;
}
body.gs-page-article .gs-article-body table th {
  padding: 12px 16px !important;
  background: linear-gradient(180deg, rgba(0,231,255,.12), rgba(0,231,255,.04)) !important;
  border-bottom: 1px solid var(--cyan) !important;
  border-right: 1px dashed var(--line-2) !important;
  color: var(--cyan) !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .2em !important;
  text-align: left !important;
  text-transform: uppercase;
}
body.gs-page-article .gs-article-body table td {
  padding: 12px 16px !important;
  border-bottom: 1px dashed var(--line-2) !important;
  border-right: 1px dashed var(--line-2) !important;
  color: var(--fg) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  background: transparent !important;
}
body.gs-page-article .gs-article-body table th:last-child,
body.gs-page-article .gs-article-body table td:last-child { border-right: none !important; }
body.gs-page-article .gs-article-body table tr:last-child td { border-bottom: none !important; }
body.gs-page-article .gs-article-body table tr:hover td { background: rgba(0,231,255,.04) !important; }

/* Images & figures — HUD frame */
body.gs-page-article .gs-article-body img,
body.gs-page-article .gs-article-body figure img {
  max-width: 100% !important; height: auto !important;
  display: block;
  border: 1px solid var(--line-2);
  box-shadow: 0 0 0 0 transparent, 0 20px 40px -20px rgba(0,231,255,.25);
}
body.gs-page-article .gs-article-body figure,
body.gs-page-article .gs-article-body .wp-block-image {
  margin: 28px 0 !important;
  position: relative;
}
body.gs-page-article .gs-article-body figure > img {
  display: block;
}
body.gs-page-article .gs-article-body figcaption,
body.gs-page-article .gs-article-body .wp-block-image figcaption {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px !important;
  color: var(--fg-dim) !important;
  letter-spacing: .2em !important;
  padding: 10px 14px !important;
  background: linear-gradient(transparent, rgba(0,0,0,.9)) !important;
  border: 1px solid var(--line-2) !important;
  border-top: none !important;
  margin: 0 !important;
  text-align: left !important;
}
body.gs-page-article .gs-article-body figcaption::before { content: '▲ '; color: var(--cyan); }

/* Horizontal rule */
body.gs-page-article .gs-article-body hr {
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, var(--neon), transparent) !important;
  margin: 40px 0 !important;
}

/* Code blocks / inline code */
body.gs-page-article .gs-article-body code {
  background: rgba(0,231,255,.08) !important;
  color: var(--cyan) !important;
  padding: 2px 6px !important;
  font-size: .92em !important;
  border: 1px solid rgba(0,231,255,.2);
  font-family: 'JetBrains Mono', monospace;
}
body.gs-page-article .gs-article-body pre {
  background: rgba(0,0,0,.5) !important;
  border: 1px solid var(--line-2) !important;
  padding: 16px !important;
  margin: 22px 0 !important;
  overflow-x: auto;
  font-size: 12px !important;
}
body.gs-page-article .gs-article-body pre code {
  background: transparent !important; border: none !important; padding: 0 !important;
  color: var(--fg) !important;
}

/* YouTube iframe — cyberpunk frame */
body.gs-page-article .gs-article-body iframe[src*="youtube"],
body.gs-page-article .gs-article-body iframe[src*="youtu.be"],
body.gs-page-article .gs-article-body .wp-block-embed-youtube iframe,
body.gs-page-article .gs-article-body .wp-block-embed iframe {
  width: 100% !important;
  aspect-ratio: 16/9 !important;
  height: auto !important;
  display: block;
  border: 1px solid var(--cyan);
}

/* Wrapper created by JS around embeds */
body.gs-page-article .gs-ytwrap {
  position: relative;
  margin: 32px 0;
  border: 1px solid var(--cyan);
  box-shadow: 0 0 0 1px rgba(0,231,255,.15), 0 30px 60px -20px rgba(0,231,255,.35);
  overflow: hidden;
}
body.gs-page-article .gs-ytwrap .gs-corner { z-index: 2; pointer-events: none; }
body.gs-page-article .gs-ytwrap iframe { border: none !important; box-shadow: none !important; }
body.gs-page-article .gs-ytwrap .gs-ytwrap__head {
  position: absolute; top: 12px; left: 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: .25em; color: var(--cyan);
  display: flex; align-items: center; gap: 8px; z-index: 2;
  padding: 4px 8px; background: rgba(0,0,0,.65); border: 1px solid rgba(0,231,255,.4);
}
body.gs-page-article .gs-ytwrap .gs-ytwrap__head::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--neon); box-shadow: 0 0 10px var(--neon);
  animation: gs-pulse 1.4s ease-in-out infinite;
}
body.gs-page-article .gs-ytwrap .gs-ytwrap__meta {
  position: absolute; top: 12px; right: 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: .25em; color: var(--fg-dim);
  padding: 4px 8px; background: rgba(0,0,0,.65);
  z-index: 2;
}

/* pz-linkcard — cyberpunk blogcard override */
body.gs-page-article .gs-article-body a.linkcard,
body.gs-page-article .gs-article-body .linkcard,
body.gs-page-article .gs-article-body .sc_card_wrap,
body.gs-page-article .gs-article-body .blogcard,
body.gs-page-article .gs-article-body .wp-block-swell-related,
body.gs-page-article .gs-article-body .swell-block-relatedPosts {
  position: relative;
  display: block !important;
  border: 1px solid var(--line-2) !important;
  background: linear-gradient(180deg, rgba(255,42,109,.04), rgba(0,231,255,.03)) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  overflow: hidden;
  margin: 28px 0 !important;
  transition: all .2s;
}
body.gs-page-article .gs-article-body a.linkcard:hover,
body.gs-page-article .gs-article-body .linkcard:hover {
  border-color: var(--neon) !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -10px rgba(255,42,109,.35) !important;
}
body.gs-page-article .gs-article-body a.linkcard::before,
body.gs-page-article .gs-article-body .linkcard::before {
  content: '▌関連記事 / RELATED';
  position: absolute; top: 10px; left: 14px; z-index: 3;
  padding: 3px 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; letter-spacing: .3em;
  color: var(--acid); border: 1px solid rgba(198,255,61,.5);
  background: rgba(0,0,0,.6);
}

/* pz-linkcard internal layout overrides */
body.gs-page-article .gs-article-body .linkcard-wrap { border: none !important; background: transparent !important; padding: 14px !important; display: grid !important; grid-template-columns: 160px 1fr !important; gap: 14px; }
body.gs-page-article .gs-article-body .linkcard-thumbnail { border: 1px solid var(--line-2); padding: 0; }
body.gs-page-article .gs-article-body .linkcard-thumbnail img { border: none !important; box-shadow: none !important; display: block; width: 100%; height: auto; }
body.gs-page-article .gs-article-body .linkcard-content { color: var(--fg) !important; padding: 0 !important; }
body.gs-page-article .gs-article-body .linkcard-title {
  font-family: 'Barlow Condensed','Noto Sans JP',sans-serif !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--fg) !important;
  line-height: 1.3 !important;
  margin: 0 0 8px !important;
}
body.gs-page-article .gs-article-body .linkcard-description,
body.gs-page-article .gs-article-body .linkcard-excerpt {
  font-size: 12px !important;
  color: var(--fg-dim) !important;
  line-height: 1.5 !important;
}
body.gs-page-article .gs-article-body .linkcard-footer,
body.gs-page-article .gs-article-body .linkcard-info { display: none !important; }

/* SWELL blogcard (p-blogCard) */
body.gs-page-article .gs-article-body .p-blogCard,
body.gs-page-article .gs-article-body .wp-block-swell-blogCard {
  border: 1px solid var(--line-2) !important;
  background: linear-gradient(180deg, rgba(255,42,109,.04), rgba(0,231,255,.03)) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
  transition: all .2s;
  margin: 28px 0 !important;
}
body.gs-page-article .gs-article-body .p-blogCard:hover {
  border-color: var(--neon) !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -10px rgba(255,42,109,.35) !important;
}
body.gs-page-article .gs-article-body .p-blogCard__title {
  font-family: 'Barlow Condensed','Noto Sans JP',sans-serif !important;
  font-size: 18px !important; font-weight: 800 !important;
  color: var(--fg) !important;
}

/* Any wp-embed card */
body.gs-page-article .gs-article-body .wp-embedded-content,
body.gs-page-article .gs-article-body blockquote.wp-embedded-content {
  border: 1px solid var(--line-2) !important;
  background: rgba(0,0,0,.4) !important;
  padding: 14px !important;
  border-left: 3px solid var(--cyan) !important;
}

/* ==========================================================
   EXISTING .pcog-ic STATS CARD — cyberpunk palette override
   The card is injected into post_content by the site; we keep
   the structure and retint it to match the new design.
   ========================================================== */
body.gs-page-article .gs-article-body .pcog-ic {
  position: relative;
  border: 1px solid var(--line-2) !important;
  background:
    radial-gradient(600px 200px at 90% 0%, rgba(0,231,255,.08), transparent 70%),
    linear-gradient(180deg, rgba(17,16,28,.92), rgba(13,11,24,.96)) !important;
  border-radius: 0 !important;
  box-shadow: 0 0 0 1px rgba(0,231,255,.1), 0 30px 50px -20px rgba(0,0,0,.5) !important;
  overflow: hidden;
  margin: 32px 0 !important;
  padding: 0 !important;
  isolation: isolate;
}
body.gs-page-article .gs-article-body .pcog-ic::before,
body.gs-page-article .gs-article-body .pcog-ic::after {
  content: ''; position: absolute;
  width: 14px; height: 14px;
  border: 2px solid var(--neon); pointer-events: none; z-index: 2;
}
body.gs-page-article .gs-article-body .pcog-ic::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
body.gs-page-article .gs-article-body .pcog-ic::after  { bottom: -1px; right: -1px; border-left: 0; border-top: 0; border-color: var(--cyan); }

body.gs-page-article .gs-article-body .pcog-ic__header {
  position: relative; overflow: hidden;
  min-height: 140px !important;
  padding: 28px 28px 22px !important;
}
body.gs-page-article .gs-article-body .pcog-ic__header-bg {
  position: absolute; inset: 0;
  background-size: cover !important; background-position: center !important;
  filter: saturate(1.15) contrast(1.05) brightness(.6) !important;
}
body.gs-page-article .gs-article-body .pcog-ic__header-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(7,6,12,.88) 0%, rgba(7,6,12,.55) 60%, rgba(7,6,12,.2) 100%),
              repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0 1px, transparent 1px 3px);
  mix-blend-mode: normal;
}
body.gs-page-article .gs-article-body .pcog-ic__header-content {
  position: relative; z-index: 1;
}
body.gs-page-article .gs-article-body .pcog-ic__title {
  font-family: 'Barlow Condensed', 'Chakra Petch', 'Zen Kaku Gothic New', sans-serif !important;
  font-size: 34px !important; font-weight: 900 !important;
  color: var(--fg) !important; line-height: 1.05 !important;
  letter-spacing: -.005em !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.6);
}
body.gs-page-article .gs-article-body .pcog-ic__subtitle {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important; letter-spacing: .25em !important;
  color: var(--cyan) !important;
  margin-top: 8px !important;
}
body.gs-page-article .gs-article-body .pcog-ic__subtitle::before { content: '▸ '; color: var(--neon); }

/* Release banner */
body.gs-page-article .gs-article-body .pcog-ic__release-banner {
  display: flex !important; align-items: center !important; gap: 14px !important;
  padding: 10px 20px !important;
  background: rgba(0,0,0,.5) !important;
  border-top: 1px dashed var(--line-2) !important;
  border-bottom: 1px dashed var(--line-2) !important;
}
body.gs-page-article .gs-article-body .pcog-ic__release-label {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .3em !important;
  color: var(--fg-mute) !important;
}
body.gs-page-article .gs-article-body .pcog-ic__release-date {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 20px !important; font-weight: 800 !important;
  color: var(--fg) !important;
}
body.gs-page-article .gs-article-body .pcog-ic__release-tag {
  padding: 4px 10px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; font-weight: 700 !important;
  letter-spacing: .2em !important;
  background: var(--acid) !important; color: #000 !important;
  border: none !important; border-radius: 0 !important;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4px), calc(100% - 4px) 100%, 0 100%);
}
body.gs-page-article .gs-article-body .pcog-ic__release-tag.--semi-new { background: var(--cyan) !important; }
body.gs-page-article .gs-article-body .pcog-ic__release-tag.--new      { background: var(--neon) !important; color: #fff !important; }

body.gs-page-article .gs-article-body .pcog-ic__status-badge {
  padding: 5px 12px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .25em !important; font-weight: 700 !important;
  background: transparent !important;
  color: var(--acid) !important;
  border: 1px solid var(--acid) !important;
  border-radius: 0 !important;
  margin-left: auto;
}
body.gs-page-article .gs-article-body .pcog-ic__status-badge.pcog-ic__status--active::before {
  content: '● '; color: var(--acid);
}

/* Live stats row */
body.gs-page-article .gs-article-body .pcog-ic__live-bar {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  padding: 22px 24px !important;
  border-bottom: 1px solid var(--line) !important;
  gap: 0 !important;
}
body.gs-page-article .gs-article-body .pcog-ic__live-stat {
  border-right: 1px dashed var(--line-2) !important;
  padding-right: 24px !important;
}
body.gs-page-article .gs-article-body .pcog-ic__live-stat:last-child {
  border-right: none !important; padding-left: 24px; padding-right: 0 !important;
}
body.gs-page-article .gs-article-body .pcog-ic__live-label {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .3em !important;
  color: var(--fg-mute) !important;
  display: flex; align-items: center; gap: 8px;
}
body.gs-page-article .gs-article-body .pcog-ic__live-label::before {
  content: '▌'; color: var(--neon);
}
body.gs-page-article .gs-article-body .pcog-ic__live-dot {
  width: 6px !important; height: 6px !important;
  background: var(--acid) !important; border-radius: 50% !important;
  box-shadow: 0 0 8px var(--acid) !important;
  animation: gs-pulse 1.4s ease-in-out infinite !important;
}
body.gs-page-article .gs-article-body .pcog-ic__live-big,
body.gs-page-article .gs-article-body .pcog-ic__live-stat-main {
  font-family: 'Barlow Condensed', 'Chakra Petch', sans-serif !important;
  font-size: 48px !important; font-weight: 900 !important; line-height: 1 !important;
  color: var(--acid) !important;
  letter-spacing: -.01em !important;
  margin-top: 8px !important;
}
body.gs-page-article .gs-article-body .pcog-ic__live-big.--review,
body.gs-page-article .gs-article-body .--reviews .pcog-ic__live-stat-main { color: var(--cyan) !important; }
body.gs-page-article .gs-article-body .pcog-ic__live-note {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; color: var(--fg-dim) !important;
  letter-spacing: .15em !important; margin-top: 8px !important;
}

/* Score ring / region cards */
body.gs-page-article .gs-article-body .pcog-ic__scores {
  display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 14px !important;
  padding: 20px 24px !important;
}
body.gs-page-article .gs-article-body .pcog-ic__score-region {
  position: relative;
  border: 1px solid var(--acid) !important;
  background: linear-gradient(180deg, rgba(198,255,61,.06), transparent) !important;
  padding: 16px 18px !important;
  border-radius: 0 !important;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%);
}
body.gs-page-article .gs-article-body .pcog-ic__score-region.--jp {
  border-color: var(--cyan) !important;
  background: linear-gradient(180deg, rgba(0,231,255,.06), transparent) !important;
}
body.gs-page-article .gs-article-body .pcog-ic__score-ring { filter: drop-shadow(0 0 8px currentColor); }
body.gs-page-article .gs-article-body .pcog-ic__ring-bg  { stroke: rgba(255,255,255,.06) !important; }
body.gs-page-article .gs-article-body .pcog-ic__ring-fill { stroke: var(--acid) !important; }
body.gs-page-article .gs-article-body .--jp .pcog-ic__ring-fill { stroke: var(--cyan) !important; }
body.gs-page-article .gs-article-body .pcog-ic__score-pct {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-weight: 900 !important; fill: var(--acid) !important;
}
body.gs-page-article .gs-article-body .--jp .pcog-ic__score-pct { fill: var(--cyan) !important; }
body.gs-page-article .gs-article-body .pcog-ic__score-label {
  font-family: 'Barlow Condensed','Zen Kaku Gothic New',sans-serif !important;
  font-size: 18px !important; font-weight: 800 !important;
  color: var(--fg) !important;
  margin-top: 4px !important;
}
body.gs-page-article .gs-article-body .pcog-ic__score-detail {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important; letter-spacing: .2em !important;
  color: var(--acid) !important;
  margin-top: 6px !important;
}
body.gs-page-article .gs-article-body .--jp .pcog-ic__score-detail { color: var(--cyan) !important; }
body.gs-page-article .gs-article-body .pcog-ic__score-bar {
  height: 4px !important; overflow: hidden;
  background: rgba(255,255,255,.04) !important; margin-top: 10px !important;
}
body.gs-page-article .gs-article-body .pcog-ic__bar-fill.--pos { background: var(--acid) !important; }
body.gs-page-article .gs-article-body .pcog-ic__bar-fill.--neg { background: var(--neon) !important; }
body.gs-page-article .gs-article-body .pcog-ic__score-counts {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .15em !important;
  margin-top: 6px !important;
}

/* Footer table (スペック等) */
body.gs-page-article .gs-article-body .pcog-ic__table {
  display: block !important;
  border: 1px solid var(--line-2) !important;
  border-collapse: collapse !important;
  margin: 20px 24px !important;
  background: rgba(0,0,0,.35) !important;
}
body.gs-page-article .gs-article-body .pcog-ic__table tbody { display: block; }
body.gs-page-article .gs-article-body .pcog-ic__table tr {
  display: grid !important;
  grid-template-columns: 140px 1fr !important;
  border-bottom: 1px dashed var(--line-2) !important;
}
body.gs-page-article .gs-article-body .pcog-ic__table tr:last-child { border-bottom: none !important; }
body.gs-page-article .gs-article-body .pcog-ic__table th {
  padding: 12px 16px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .25em !important;
  color: var(--cyan) !important;
  background: rgba(0,231,255,.04) !important;
  border: none !important;
  border-right: 1px dashed var(--line-2) !important;
  text-align: left !important;
  font-weight: 700 !important;
  text-transform: none !important;
}
body.gs-page-article .gs-article-body .pcog-ic__table th::before { content: '▌'; color: var(--cyan); margin-right: 6px; }
body.gs-page-article .gs-article-body .pcog-ic__table td {
  padding: 12px 16px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 14px !important;
  color: var(--fg) !important;
  background: transparent !important;
  border: none !important;
}
body.gs-page-article .gs-article-body .pcog-ic__table tr:hover td { background: rgba(0,231,255,.04) !important; }
body.gs-page-article .gs-article-body .pcog-ic__price-val {
  color: var(--acid) !important; font-weight: 800 !important;
}
body.gs-page-article .gs-article-body .pcog-ic__lang--none {
  padding: 3px 8px !important;
  background: rgba(255,42,109,.14) !important;
  color: var(--neon) !important;
  border: 1px solid var(--neon) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important; letter-spacing: .15em !important;
  border-radius: 0 !important;
}
body.gs-page-article .gs-article-body .pcog-ic__updated,
body.gs-page-article .gs-article-body .pcog-ic__footer {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .25em !important;
  color: var(--fg-mute) !important;
  padding: 10px 24px !important;
  border-top: 1px dashed var(--line-2) !important;
  background: rgba(0,0,0,.4);
}
body.gs-page-article .gs-article-body .pcog-ic__updated::before { content: '▲ '; color: var(--cyan); }
body.gs-page-article .gs-article-body .pcog-ic__jp-ratio-text {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; color: var(--fg-dim) !important;
  letter-spacing: .15em !important;
}
body.gs-page-article .gs-article-body .pcog-ic__pop-tag {
  padding: 3px 8px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .2em !important; font-weight: 700 !important;
  background: rgba(0,231,255,.14) !important; color: var(--cyan) !important;
  border: 1px solid var(--cyan) !important; border-radius: 0 !important;
}
body.gs-page-article .gs-article-body .pcog-ic__pop-tag.--niche { background: rgba(198,255,61,.14) !important; color: var(--acid) !important; border-color: var(--acid) !important; }

/* ==========================================================
   SECTION TAG / HEADING (for trailing blocks)
   ========================================================== */
.gs-section__tag {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 4px 12px 4px 10px;
  border: 1px solid var(--neon); color: var(--neon);
  font-size: 10px; letter-spacing: .3em;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%);
  background: rgba(0,0,0,.3);
  margin-bottom: 12px;
}
.gs-section__tag--cyan { border-color: var(--cyan); color: var(--cyan); }
.gs-section__tag--acid { border-color: var(--acid); color: var(--acid); }
.gs-section__tag .gs-dot { width: 6px; height: 6px; background: currentColor; box-shadow: 0 0 8px currentColor; }
.gs-section__h {
  font-size: clamp(28px, 3.2vw, 42px); font-weight: 900; line-height: 1.1;
  margin: 6px 0 22px; letter-spacing: -.005em; color: var(--fg);
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 14px;
  text-wrap: balance;
}
.gs-section__h.is-cyan { color: var(--cyan); }
.gs-section__sub { font-size: 11px; color: var(--fg-mute); letter-spacing: .25em; font-weight: 400; }

/* ==========================================================
   STEAM CARD (trailing)
   ========================================================== */
.gs-steamcard { margin: 60px 0; }
.gs-steamcard__box {
  position: relative;
  border: 1px solid var(--cyan);
  background: rgba(0,0,0,.5);
}
.gs-steamcard__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--line);
}
.gs-steamcard__cell {
  padding: 22px 24px; border-right: 1px solid var(--line);
}
.gs-steamcard__cell:last-child { border-right: none; }
.gs-steamcard__key  { font-size: 11px; color: var(--fg-mute); letter-spacing: .25em; }
.gs-steamcard__big  {
  font-size: 48px; font-weight: 900; line-height: 1; margin-top: 8px;
  letter-spacing: -.01em; color: var(--fg);
}
.gs-steamcard__big.is-acid { color: var(--acid); }
.gs-steamcard__big.is-cyan { color: var(--cyan); }
.gs-steamcard__big span { font-size: 14px; color: var(--fg-mute); margin-left: 6px; font-weight: 500; }
.gs-steamcard__sub {
  font-size: 11px; color: var(--fg-dim); letter-spacing: .15em; margin-top: 8px;
}
.gs-steamcard__sub.is-acid { color: var(--acid); }
.gs-steamcard__bar { display: flex; gap: 4px; height: 8px; margin-top: 12px; overflow: hidden; }
.gs-steamcard__foot {
  padding: 12px 24px;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 10px; color: var(--fg-mute); letter-spacing: .2em;
}
.gs-steamcard__foot .is-acid {
  color: var(--acid); display: flex; align-items: center; gap: 6px;
}

/* ==========================================================
   INFO TABLE (trailing)
   ========================================================== */
.gs-infotable-section { margin: 60px 0; }
.gs-infotable {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line-2);
}
.gs-infotable__cell {
  padding: 14px 16px;
  border-right: 1px dashed var(--line-2);
  border-bottom: 1px dashed var(--line-2);
}
.gs-infotable__cell:nth-child(4n) { border-right: none; }
.gs-infotable__cell:nth-last-child(-n+4):nth-child(4n+1),
.gs-infotable__cell:nth-last-child(-n+4):nth-child(4n+1) ~ .gs-infotable__cell { border-bottom: none; }
.gs-infotable__k { font-size: 10px; color: var(--fg-mute); letter-spacing: .25em; }
.gs-infotable__v { font-size: 17px; font-weight: 700; color: var(--fg); margin-top: 4px; }

/* ==========================================================
   RELATED GRID (trailing)
   ========================================================== */
.gs-related-section { margin: 60px 0 20px; }
.gs-related { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.gs-related__card {
  position: relative; display: block;
  border: 1px solid var(--line); background: var(--panel);
  transition: all .2s;
}
.gs-related__card:hover {
  border-color: var(--neon); transform: translateY(-3px);
  box-shadow: 0 14px 30px -10px rgba(255,42,109,.4);
}
.gs-related__thumb {
  position: relative; aspect-ratio: 16/9;
  background-size: cover; background-position: center;
}
.gs-related__thumb::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(17,16,28,.9));
}
.gs-related__score {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font-size: 12px; color: var(--vc); border: 1px solid var(--vc);
  padding: 3px 8px; background: rgba(0,0,0,.65);
  letter-spacing: .15em; font-weight: 700;
}
.gs-related__body { padding: 14px 14px 12px; }
.gs-related__title { font-size: 18px; font-weight: 800; line-height: 1.25; color: var(--fg); }
.gs-related__jp {
  font-size: 12px; color: var(--fg-dim); margin-top: 6px; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.gs-related__date { font-size: 10px; color: var(--fg-mute); letter-spacing: .25em; margin-top: 8px; }

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width: 1280px) {
  .gs-awrap__grid--tri { grid-template-columns: minmax(0, 1fr) var(--cat-w) !important; gap: 28px; }
  .gs-aside-left { display: none; }
}
@media (max-width: 1100px) {
  .gs-awrap__grid  { grid-template-columns: 1fr; }
  .gs-awrap__grid--tri { grid-template-columns: 1fr !important; }
  .gs-aside, .gs-aside-left { position: static !important; max-height: none !important; }
  .gs-aside-left { display: block; }
  .gs-ahero__inner { grid-template-columns: 1fr; gap: 24px; }
  .gs-ahero__scorebox { max-width: 420px; }
  .gs-tldr__inner  { grid-template-columns: 1fr; gap: 12px; }
  .gs-infotable    { grid-template-columns: repeat(2, 1fr); }
  .gs-infotable__cell:nth-child(2n)      { border-right: none; }
  .gs-infotable__cell:nth-last-child(-n+2) { border-bottom: none; }
  .gs-related      { grid-template-columns: repeat(2, 1fr); }
  .gs-steamcard__grid { grid-template-columns: 1fr; }
  .gs-steamcard__cell { border-right: none; border-bottom: 1px solid var(--line); }
  .gs-steamcard__cell:last-child { border-bottom: none; }
}
@media (max-width: 640px) {
  .gs-awrap        { padding: 24px 16px 40px; }
  .gs-ahero__inner { padding: 32px 16px 28px; }
  .gs-tldr__inner  { padding: 16px; }
  .gs-tldr__grid   { grid-template-columns: 1fr; }
  .gs-related      { grid-template-columns: 1fr; }
  .gs-crumb__inner { padding: 10px 16px; }
  body.gs-page-article .gs-article-body h2 { padding-left: 64px; }
  body.gs-page-article .gs-article-body h2::before { font-size: 44px; }
  body.gs-page-article .gs-article-body h2::after { left: 64px; }
  body.gs-page-article .gs-article-body .linkcard-wrap { grid-template-columns: 1fr !important; }
}
