/* ============================================================
   GAME STREET — Redesign (Cyberpunk Editorial)
   Front-page-only styles. High-specificity overrides of SWELL.
   ============================================================ */

body.gs-page-front, body.gs-page-article {
  --bg:        #07060c;
  --bg-2:      #0d0b18;
  --panel:     #11101c;
  --panel-2:   #161528;
  --line:      #23213a;
  --line-2:    #2e2c4a;
  --fg:        #e8e6ff;
  --fg-dim:    #9a97c2;
  --fg-mute:   #5e5b85;
  --neon:      #ff2a6d;
  --cyan:      #00e7ff;
  --acid:      #c6ff3d;
  --gold:      #ffb020;

  margin: 0;
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(255,42,109,.12), transparent 60%),
    radial-gradient(1000px 600px at -10% 30%, rgba(0,231,255,.08), transparent 60%),
    linear-gradient(180deg, #07060c 0%, #0a0814 100%) !important;
  color: var(--fg) !important;
  font-family: 'Noto Sans JP', system-ui, sans-serif !important;
  min-height: 100vh;
  overflow-x: clip;
}

body.gs-page-front::before, body.gs-page-article::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background: repeating-linear-gradient(to bottom, rgba(255,255,255,.015) 0 1px, transparent 1px 3px);
  mix-blend-mode: overlay;
}

/* Hide SWELL's injected wrappers/header on our front page.
   (SWELL doesn't wrap if we skip get_header, but fallback:) */
body.gs-page-front #body_wrap > :not(.gs-ticker):not(.gs-header):not(.gs-hero):not(.gs-wrap):not(.gs-filterbar):not(.gs-main):not(.gs-footer) {
  display: none !important;
}

body.gs-page-front *, body.gs-page-article * { box-sizing: border-box; }
body.gs-page-front a, body.gs-page-article a { color: inherit; text-decoration: none; }
body.gs-page-front .mono, body.gs-page-article .mono           { font-family: 'JetBrains Mono', ui-monospace, monospace; }
body.gs-page-front .condensed, body.gs-page-article .condensed { font-family: 'Barlow Condensed', 'Chakra Petch', 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; letter-spacing: .02em; }
body.gs-page-front ::selection, body.gs-page-article ::selection { background: var(--neon); color: #000; }

/* Scrollbar */
body.gs-page-front ::-webkit-scrollbar, body.gs-page-article ::-webkit-scrollbar             { width: 10px; height: 10px; }
body.gs-page-front ::-webkit-scrollbar-track, body.gs-page-article ::-webkit-scrollbar-track { background: #0a0814; }
body.gs-page-front ::-webkit-scrollbar-thumb, body.gs-page-article ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--neon), #7a0f3c); border-radius: 10px; }

/* Glitch text */
.gs-glitch { position: relative; display: inline-block; color: var(--fg); }
.gs-glitch::before, .gs-glitch::after {
  content: attr(data-text); position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none;
}
.gs-glitch::before { color: var(--neon); transform: translate(2px, 0); mix-blend-mode: screen; clip-path: inset(0 0 55% 0); opacity: .75; }
.gs-glitch::after  { color: var(--cyan); transform: translate(-2px, 0); mix-blend-mode: screen; clip-path: inset(55% 0 0 0); opacity: .75; }
.gs-glitch:hover::before { animation: gs-shift 1.2s infinite steps(6); }
.gs-glitch:hover::after  { animation: gs-shift 1.2s infinite steps(6) reverse; }
@keyframes gs-shift { 0%{transform:translate(2px,0);} 20%{transform:translate(-3px,1px);} 40%{transform:translate(3px,-1px);} 60%{transform:translate(-1px,2px);} 80%{transform:translate(4px,0);} 100%{transform:translate(0,0);} }
@keyframes gs-pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.4;transform:scale(1.4);} }
@media (prefers-reduced-motion: reduce) {
  .gs-glitch::before, .gs-glitch::after { animation: none !important; }
  .gs-ticker__track { animation: none !important; }
}

/* L-corner decorations */
.gs-corner { position: absolute; width: 12px; height: 12px; border-color: var(--c, var(--cyan)); border-style: solid; }
.gs-corner--sm                 { width: 8px; height: 8px; }
.gs-corner--tl { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.gs-corner--tr { top: -1px; right: -1px; border-width: 2px 2px 0 0; }
.gs-corner--bl { bottom: -1px; left: -1px; border-width: 0 0 2px 2px; }
.gs-corner--br { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }

/* Score block (simplified — no verdict label) */
.gs-scoreblock {
  width: 96px; padding: 6px 10px; background: rgba(0,0,0,.5);
  border: 1px solid var(--vc); color: var(--vc);
  position: relative;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%);
  flex: 0 0 auto;
}
.gs-scoreblock--lg       { width: 150px; }
.gs-scoreblock__label    { font-size: 11px; letter-spacing: .15em; opacity: .8; }
.gs-scoreblock__num      { font-size: 44px; font-weight: 900; line-height: 1; letter-spacing: -.02em; }
.gs-scoreblock--lg .gs-scoreblock__num { font-size: 80px; }
.gs-scoreblock__denom    { font-size: .35em; opacity: .5; }
.gs-scoreblock__verdict  { display: none; }

/* Genre chip — bold, rounded, prominent */
.gs-genre-chip {
  display: inline-block; padding: 5px 12px;
  background: color-mix(in oklab, var(--acid) 14%, transparent);
  color: var(--acid); border: 1px solid color-mix(in oklab, var(--acid) 55%, transparent);
  font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 13px;
  letter-spacing: .04em; line-height: 1.3; border-radius: 2px;
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}
.gs-genre-chip--sm { padding: 3px 8px; font-size: 11px; }

/* ==========================================================
   TICKER
   ========================================================== */
.gs-ticker {
  position: relative;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(90deg, rgba(255,42,109,.06), rgba(0,231,255,.04));
  overflow: hidden;
  z-index: 2;
}
.gs-ticker__track {
  display: flex; gap: 40px; padding: 7px 0; white-space: nowrap;
  animation: gs-ticker 48s linear infinite;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: .2em; color: var(--fg-dim);
}
.gs-ticker__item { display: inline-flex; align-items: center; gap: 10px; }
.gs-ticker__dot  { width: 6px; height: 6px; background: var(--neon); display: inline-block; }
@keyframes gs-ticker { 0%{ transform: translateX(0); } 100%{ transform: translateX(-33.33%); } }

/* ==========================================================
   HEADER
   ========================================================== */
.gs-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(10px);
  background: rgba(7,6,12,.78);
  border-bottom: 1px solid var(--line);
}
.gs-header__inner {
  max-width: 1440px; margin: 0 auto;
  padding: 14px 32px;
  display: flex; align-items: center; gap: 28px;
}
.gs-logo { display: flex; align-items: center; gap: 14px; }
.gs-logo__mark { position: relative; width: 44px; height: 44px; flex: 0 0 44px; }
.gs-logo__diamond { position: absolute; inset: 0; transform: rotate(45deg); }
.gs-logo__diamond--outer { border: 1px solid var(--neon); }
.gs-logo__diamond--inner { inset: 6px; border: 1px solid var(--cyan); }
.gs-logo__monogram { position: absolute; inset: 0; display: grid; place-items: center; font-size: 14px; font-weight: 700; color: var(--acid); }
.gs-logo__text .condensed { display: block; font-size: 22px; font-weight: 900; letter-spacing: .05em; line-height: 1; }
.gs-logo__sub { display: block; font-size: 9px; color: var(--fg-mute); letter-spacing: .3em; margin-top: 2px; }

.gs-nav { display: flex; gap: 0; margin-left: 28px; flex: 1; }
.gs-nav__item { position: relative; display: flex; }
.gs-nav__link {
  padding: 10px 14px; display: flex; flex-direction: column; line-height: 1;
  border-left: 1px solid var(--line); transition: background .15s;
}
.gs-nav__link:hover { background: rgba(255,42,109,.08); }
.gs-nav__item:hover .gs-nav__link { background: rgba(255,42,109,.08); }
.gs-nav__count { font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--fg-mute); margin-left: 6px; letter-spacing: .1em; }
.gs-nav__jp { font-size: 15px; font-weight: 700; letter-spacing: .05em; color: var(--fg); font-family: 'Noto Sans JP', sans-serif; }
.gs-nav__en { font-size: 9px; color: var(--fg-mute); letter-spacing: .2em; margin-top: 3px; }
.gs-nav__item:hover .gs-nav__jp { color: var(--neon); }

.gs-header__right { display: flex; align-items: center; gap: 18px; }
.gs-live { font-size: 10px; color: var(--fg-mute); letter-spacing: .2em; display: flex; align-items: center; gap: 6px; }
.gs-live__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--acid); box-shadow: 0 0 8px var(--acid); animation: gs-pulse 1.6s ease-in-out infinite; }
.gs-jump {
  padding: 10px 16px; background: var(--neon); color: #000; border: none;
  font-size: 11px; letter-spacing: .2em; cursor: pointer;
  clip-path: polygon(0 0,100% 0,100% 70%,92% 100%,0 100%);
  transition: transform .15s;
}
.gs-jump:hover { transform: translateX(2px); }

/* ==========================================================
   HERO
   ========================================================== */
.gs-hero { max-width: 1440px; margin: 0 auto; padding: 20px 32px 8px; position: relative; z-index: 1; }
.gs-hero__grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: 20px; }
.gs-hero__feature {
  position: relative; overflow: hidden; display: flex; flex-direction: column;
  border: 1px solid var(--line-2);
  background: var(--panel);
}
.gs-hero__visual { position: relative; aspect-ratio: 21/9; background-size: cover; background-position: center; overflow: hidden; filter: saturate(1.1) contrast(1.05); }
.gs-hero__fade  { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,6,12,.15) 0%, rgba(7,6,12,.05) 40%, rgba(7,6,12,.95) 100%); }
.gs-hero__scan  { position: absolute; inset: 0; mix-blend-mode: overlay; background: repeating-linear-gradient(to bottom, rgba(255,255,255,.05) 0 1px, transparent 1px 3px); }
.gs-hero__badges { position: absolute; top: 18px; left: 18px; display: flex; align-items: center; gap: 10px; }
.gs-badge          { padding: 4px 10px; font-size: 10px; letter-spacing: .25em; font-weight: 700; }
.gs-badge--featured { background: var(--neon); color: #000; }
.gs-badge__issue   { font-size: 10px; color: var(--fg-dim); letter-spacing: .25em; }
.gs-hero__platforms { position: absolute; top: 18px; right: 18px; display: flex; gap: 6px; }
.gs-platform { font-size: 10px; color: var(--cyan); border: 1px solid var(--cyan); padding: 3px 7px; letter-spacing: .2em; }
.gs-hero__title-wrap { position: absolute; left: 0; right: 0; bottom: 0; padding: 0 24px 18px; }
.gs-hero__title-wrap .gs-genre-chip { margin-bottom: 10px; }
.gs-hero__title { font-size: clamp(32px, 5vw, 56px); line-height: .95; margin: 0; font-weight: 900; letter-spacing: -.01em; }
.gs-hero__panel { padding: 14px 24px 18px; background: var(--bg-2); border-top: 1px solid var(--line); display: flex; align-items: flex-end; gap: 18px; flex-wrap: wrap; }
.gs-hero__meta  { flex: 1; min-width: 260px; }
.gs-hero__jp    { font-size: 13px; color: var(--fg-dim); margin: 0 0 8px; line-height: 1.5; }
.gs-hero__quote { margin: 0; padding: 8px 14px; border-left: 2px solid var(--neon); font-size: 13px; line-height: 1.5; color: var(--fg); background: rgba(0,0,0,.25); }
.gs-hero__quote-meta { font-size: 10px; color: var(--fg-mute); margin-top: 5px; letter-spacing: .2em; }

.gs-runners { display: flex; flex-direction: column; gap: 8px; }
.gs-runners__label { font-size: 10px; color: var(--cyan); letter-spacing: .3em; margin-bottom: 2px; }
.gs-runner {
  position: relative; display: grid; grid-template-columns: 92px 1fr auto; gap: 10px;
  border: 1px solid var(--line); padding: 8px;
  background: rgba(17,16,28,.6); transition: all .2s;
}
.gs-runner:hover { border-color: var(--neon); transform: translateX(-2px); }
.gs-runner__num { position: absolute; top: -8px; left: -1px; background: var(--bg); color: var(--fg-mute); padding: 0 8px; font-size: 9px; letter-spacing: .3em; }
.gs-runner__thumb { width: 92px; height: 52px; background-size: cover; background-position: center; box-shadow: inset 0 0 20px rgba(7,6,12,.7); align-self: center; }
.gs-runner__body { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.gs-runner__title { font-size: 17px; font-weight: 700; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--fg); }
.gs-runner__jp    { font-size: 11px; color: var(--fg-dim); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.gs-runner__score { display: flex; align-items: center; justify-content: center; }
.gs-runner__score .condensed { font-size: 28px; font-weight: 900; line-height: 1; color: var(--vc); }

/* ==========================================================
   ARCHIVE HEADER (category / tag / taxonomy / search)
   ========================================================== */
.gs-ahdr {
  position: relative;
  max-width: 1440px; margin: 0 auto;
  padding: 44px 32px 28px;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(700px 200px at 90% 0%, rgba(255,42,109,.08), transparent 70%),
    radial-gradient(500px 180px at 0% 100%, rgba(0,231,255,.06), transparent 70%);
  z-index: 1;
}
.gs-ahdr__inner { position: relative; z-index: 1; }
.gs-ahdr__kind {
  display: inline-block;
  padding: 5px 12px;
  font-size: 10px; font-weight: 700; letter-spacing: .3em;
  color: var(--neon); border: 1px solid var(--neon);
  background: rgba(255,42,109,.08);
  margin-bottom: 16px;
}
.gs-ahdr__title {
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 900; line-height: .95;
  margin: 0; letter-spacing: -.01em;
  color: var(--fg);
}
.gs-ahdr__desc {
  font-size: 14px; color: var(--fg-dim);
  margin-top: 16px; max-width: 720px; line-height: 1.6;
}
.gs-ahdr__meta {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  margin-top: 18px; padding-top: 14px;
  border-top: 1px dashed var(--line-2);
  font-size: 11px; color: var(--fg-dim); letter-spacing: .15em;
}
.gs-ahdr__meta-k { color: var(--fg-mute); font-size: 9px; letter-spacing: .3em; margin-right: 6px; }
.gs-ahdr__meta-v { color: var(--acid); font-weight: 700; font-size: 15px; letter-spacing: -.01em; margin: 0 4px; font-family: 'Barlow Condensed', monospace; }
.gs-ahdr__meta-sep { color: var(--fg-mute); }

/* ==========================================================
   DIVIDER
   ========================================================== */
.gs-wrap { max-width: 1440px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 1; }
.gs-divider { display: flex; align-items: center; gap: 12px; margin: 40px 0 20px; }
.gs-divider__label { font-size: 11px; color: var(--neon); letter-spacing: .3em; }
.gs-divider__line  { flex: 1; height: 1px; background: linear-gradient(90deg, var(--neon), transparent); }
.gs-divider__right { font-size: 11px; color: var(--fg-mute); letter-spacing: .2em; }

/* ==========================================================
   FILTER BAR (sticky)
   ========================================================== */
.gs-filterbar {
  position: sticky; top: 73px; z-index: 30;
  background: rgba(7,6,12,.92); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line); padding: 14px 0;
}
.gs-filterbar__inner {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
  padding: 0 32px; max-width: 1440px; margin: 0 auto;
}
.gs-filterbar__label { font-size: 12px; color: var(--neon); letter-spacing: .15em; margin-right: 4px; font-weight: 700; font-family: 'Noto Sans JP', sans-serif; }
.gs-filterbar__key   { font-size: 12px; color: var(--fg-mute); letter-spacing: .05em; font-weight: 700; font-family: 'Noto Sans JP', sans-serif; }
.gs-filterbar__genres { display: flex; gap: 4px; flex-wrap: wrap; }
.gs-filterbar__spacer { flex: 1; min-width: 16px; }

.gs-chip {
  background: rgba(0,0,0,.25); color: var(--fg-dim); border: 1px solid var(--line-2);
  padding: 7px 14px; font-size: 13px; font-weight: 700; letter-spacing: .02em; cursor: pointer;
  transition: all .15s; font-family: 'Noto Sans JP', sans-serif;
  clip-path: polygon(5px 0, 100% 0, 100% calc(100% - 5px), calc(100% - 5px) 100%, 0 100%, 0 5px);
}
.gs-chip:hover        { border-color: var(--neon); color: var(--fg); background: rgba(255,42,109,.08); }
.gs-chip.is-active    { background: var(--neon); color: #000; border-color: var(--neon); }
.gs-chip--cyan        { color: var(--cyan); border-color: color-mix(in oklab, var(--cyan) 60%, transparent); }
.gs-chip--cyan:hover  { background: rgba(0,231,255,.08); }
.gs-chip--cyan.is-active { background: var(--cyan); color: #000; }

.gs-price { display: flex; align-items: center; gap: 10px; min-width: 260px; }
.gs-price__body { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.gs-price__labels { display: flex; justify-content: space-between; font-size: 10px; color: var(--acid); letter-spacing: .1em; }
.gs-price__slider { position: relative; height: 18px; }
.gs-price__track  { position: absolute; top: 8px; left: 0; right: 0; height: 2px; background: var(--line-2); }
.gs-price__range  {
  position: absolute; top: 7px; height: 4px;
  background: linear-gradient(90deg, var(--acid), var(--cyan));
  box-shadow: 0 0 8px rgba(198,255,61,.5);
}
.gs-price input[type=range] {
  position: absolute; top: 0; left: 0; width: 100%; height: 18px;
  -webkit-appearance: none; appearance: none; background: transparent;
  pointer-events: none; margin: 0;
}
.gs-price input[type=range][data-price-input="lo"] { z-index: 1; }
.gs-price input[type=range][data-price-input="hi"] { z-index: 2; }
.gs-price input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none; width: 16px; height: 16px;
  background: var(--bg); border: 2px solid var(--acid); cursor: pointer;
  pointer-events: auto; box-shadow: 0 0 8px rgba(198,255,61,.6); margin-top: -7px;
  transform: rotate(45deg); border-radius: 0;
}
.gs-price input[type=range]::-moz-range-thumb {
  width: 14px; height: 14px; background: var(--bg); border: 2px solid var(--acid);
  cursor: pointer; pointer-events: auto; box-shadow: 0 0 8px rgba(198,255,61,.6);
  transform: rotate(45deg); border-radius: 0;
}
.gs-price input[type=range]::-webkit-slider-runnable-track { height: 2px; background: transparent; }
.gs-price input[type=range]::-moz-range-track { height: 2px; background: transparent; }

.gs-sort {
  background: rgba(0,0,0,.25); color: var(--fg); border: 1px solid var(--line-2);
  padding: 7px 12px; font-size: 13px; font-weight: 700; outline: none;
  font-family: 'Noto Sans JP', sans-serif; cursor: pointer;
}
.gs-sort option { background: var(--bg-2); color: var(--fg); }

.gs-view { display: flex; border: 1px solid var(--line-2); }
.gs-view__btn {
  padding: 7px 14px; background: transparent; color: var(--fg-dim);
  border: none; cursor: pointer; font-size: 13px; font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
}
.gs-view__btn:hover { background: rgba(255,42,109,.08); color: var(--fg); }
.gs-view__btn.is-active { background: var(--fg); color: #000; }

.gs-count__n { color: var(--acid); font-size: 14px; font-weight: 800; }

/* ==========================================================
   MAIN + GRID/LIST
   ========================================================== */
.gs-main { padding-top: 32px; padding-bottom: 80px; }
.gs-main__grid { display: grid; grid-template-columns: 1fr 320px; gap: 32px; align-items: flex-start; }

.gs-list-header { display: none; }
.gs-content[data-view-mode="list"] .gs-list-header {
  display: grid; grid-template-columns: 50px 220px 1fr 90px 90px 90px 90px; gap: 16px;
  padding: 10px 16px; border-bottom: 1px solid var(--line); background: rgba(0,0,0,.4);
  font-size: 9px; color: var(--fg-mute); letter-spacing: .25em;
}
.gs-content[data-view-mode="list"] .gs-cards { border: 1px solid var(--line); background: var(--panel); display: block; }

.gs-cards {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px;
}

.gs-card {
  position: relative; overflow: hidden;
  background: var(--panel); border: 1px solid var(--line);
  transition: all .22s cubic-bezier(.2,.7,.2,1);
}
.gs-card:hover { border-color: var(--neon); transform: translateY(-2px); box-shadow: 0 12px 30px -10px rgba(255,42,109,.35); }
.gs-card:hover .gs-card__visual { background-size: 105% auto; }
.gs-card.is-hidden { display: none !important; }

.gs-card__inner { display: block; color: inherit; }

/* GRID view */
.gs-card__visual {
  position: relative; aspect-ratio: 16/9; background-size: cover; background-position: center;
  transition: background-size .4s;
}
.gs-card__visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(7,6,12,.85) 100%); }
.gs-card__num      { position: absolute; top: 10px; left: 10px; font-size: 10px; color: var(--fg-dim); letter-spacing: .25em; z-index: 2; }
.gs-card__platforms { position: absolute; top: 10px; right: 10px; display: flex; gap: 4px; z-index: 2; }
.gs-card__genre-chip { position: absolute; bottom: 10px; left: 10px; z-index: 2; }
.gs-card__score {
  position: absolute; bottom: -16px; right: 12px; background: var(--bg); border: 1px solid var(--vc);
  padding: 4px 12px; display: flex; align-items: center; z-index: 2; min-width: 54px; justify-content: center;
  clip-path: polygon(10px 0, 100% 0, 100% 100%, 0 100%, 0 10px);
}
.gs-card__score .condensed { font-size: 30px; font-weight: 900; color: var(--vc); line-height: 1; }
.gs-card__body { padding: 22px 18px 16px; }
.gs-card__title { font-size: 22px; font-weight: 700; margin: 0 0 6px; line-height: 1.2; letter-spacing: -.005em; color: var(--fg); }
.gs-card__jp { font-size: 13px; color: var(--fg-dim); margin: 4px 0 14px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.gs-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  padding: 12px 0; border-top: 1px dashed var(--line-2); border-bottom: 1px dashed var(--line-2); margin-bottom: 12px;
}
.gs-stat { display: flex; flex-direction: column; gap: 3px; line-height: 1.1; }
.gs-stat__label { font-size: 11px; color: var(--fg-mute); font-family: 'Noto Sans JP', sans-serif; font-weight: 500; }
.gs-stat__value { font-size: 19px; font-weight: 800; color: var(--fg); letter-spacing: -.01em; }
.gs-stat__value.is-free { color: var(--acid); }
.gs-stat__value.is-cyan { color: var(--cyan); }
.gs-stat__value.is-neon { color: var(--neon); }

.gs-card__tags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.gs-tag        { font-size: 10px; color: var(--fg-dim); border: 1px solid var(--line-2); padding: 3px 7px; letter-spacing: .08em; }
.gs-card__foot { display: flex; align-items: center; justify-content: space-between; font-size: 11px; color: var(--fg-mute); letter-spacing: .1em; }

/* LIST view — hide grid presentation, show row */
.gs-row { display: none; }
.gs-content[data-view-mode="list"] .gs-cards { gap: 0; }
.gs-content[data-view-mode="list"] .gs-card {
  border: none; border-bottom: 1px solid var(--line); transform: none !important; box-shadow: none !important;
}
.gs-content[data-view-mode="list"] .gs-card:hover { background: rgba(255,42,109,.05); }
.gs-content[data-view-mode="list"] .gs-card__visual,
.gs-content[data-view-mode="list"] .gs-card__body { display: none; }
.gs-content[data-view-mode="list"] .gs-row {
  display: grid; grid-template-columns: 50px 220px 1fr 90px 90px 90px 90px; gap: 16px;
  align-items: center; padding: 14px 16px; cursor: pointer;
}
.gs-row__num  { font-size: 11px; color: var(--fg-mute); letter-spacing: .2em; }
.gs-row__thumb { width: 220px; aspect-ratio: 16/9; background-size: cover; background-position: center; position: relative; }
.gs-row__body { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.gs-row__title { font-size: 20px; font-weight: 700; line-height: 1.15; color: var(--fg); }
.gs-row__jp    { font-size: 12px; color: var(--fg-dim); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.gs-row__score { display: flex; align-items: center; justify-content: flex-end; }
.gs-row__score .condensed { font-size: 36px; font-weight: 900; color: var(--vc); line-height: 1; }

/* No-results */
.gs-noresults { padding: 80px 20px; text-align: center; border: 1px dashed var(--line-2); }
.gs-noresults__label { font-size: 12px; color: var(--neon); letter-spacing: .3em; margin-bottom: 10px; }
.gs-noresults__title { font-size: 32px; font-weight: 900; color: var(--fg); }

/* ==========================================================
   SIDEBAR
   ========================================================== */
.gs-sidebar {
  display: flex; flex-direction: column; gap: 16px;
  position: sticky !important;
  top: 100px !important;
  align-self: start !important;
}
.gs-sidebar--widgets { gap: 16px; }

/* Sticky-safe ancestors: any overflow on these breaks position:sticky. */
body.gs-page-front,
body.gs-page-archive,
body.gs-page-article,
.gs-wrap,
.gs-main,
.gs-main__grid,
.gs-awrap,
.gs-awrap__grid {
  overflow: visible !important;
}
body.gs-page-front,
body.gs-page-archive,
body.gs-page-article { overflow-x: clip !important; }
.gs-main__grid { align-items: start !important; }

/* SWELL widget container → cyberpunk retheme */
.gs-sidebar--widgets .widget,
.gs-sidebar--widgets .c-widget,
.gs-sidebar--widgets .p-widget,
.gs-sidebar--widgets .wp-block-group,
.gs-sidebar--widgets section[id^="widget"],
.gs-sidebar--widgets .widget_block {
  position: relative;
  padding: 16px 18px !important;
  border: 1px solid var(--line) !important;
  background: linear-gradient(180deg, rgba(17,16,28,.85), rgba(13,11,24,.9)) !important;
  box-shadow: 0 4px 16px -8px rgba(0,0,0,.6);
  border-radius: 0 !important;
  overflow: hidden;
  margin: 0 !important;
}
.gs-sidebar--widgets .widget::before,
.gs-sidebar--widgets .c-widget::before,
.gs-sidebar--widgets section[id^="widget"]::before,
.gs-sidebar--widgets .widget_block::before {
  content: ''; position: absolute; top: -1px; left: -1px;
  width: 12px; height: 12px; border: 2px solid var(--neon);
  border-right: 0; border-bottom: 0; pointer-events: none;
}
.gs-sidebar--widgets .widget::after,
.gs-sidebar--widgets .c-widget::after,
.gs-sidebar--widgets section[id^="widget"]::after,
.gs-sidebar--widgets .widget_block::after {
  content: ''; position: absolute; bottom: -1px; right: -1px;
  width: 12px; height: 12px; border: 2px solid var(--cyan);
  border-left: 0; border-top: 0; pointer-events: none;
}

.gs-sidebar--widgets .widget_title,
.gs-sidebar--widgets .widgettitle,
.gs-sidebar--widgets .c-widget__title,
.gs-sidebar--widgets h2.wp-block-heading,
.gs-sidebar--widgets h3.wp-block-heading {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  color: var(--neon) !important;
  letter-spacing: .25em !important;
  font-weight: 700 !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}
.gs-sidebar--widgets .widget_title::before,
.gs-sidebar--widgets .c-widget__title::before,
.gs-sidebar--widgets h2.wp-block-heading::before,
.gs-sidebar--widgets h3.wp-block-heading::before { content: '▌'; color: var(--neon); margin-right: 6px; }

/* Category/tag/menu items */
.gs-sidebar--widgets ul {
  list-style: none !important; padding: 0 !important; margin: 0 !important;
}
.gs-sidebar--widgets li {
  padding: 8px 0 !important;
  border-bottom: 1px dashed var(--line-2);
  font-size: 13px !important;
  line-height: 1.5 !important;
}
.gs-sidebar--widgets li:last-child { border-bottom: none; }
.gs-sidebar--widgets a {
  color: var(--fg-dim) !important;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  text-decoration: none !important;
  transition: color .15s, padding-left .15s;
}
.gs-sidebar--widgets a:hover {
  color: var(--neon) !important;
  padding-left: 6px;
}
.gs-sidebar--widgets a::before { content: '▸ '; color: var(--fg-mute); font-family: 'JetBrains Mono', monospace; font-size: 11px; }
.gs-sidebar--widgets a:hover::before { color: var(--neon); }
.gs-sidebar--widgets .post-count,
.gs-sidebar--widgets .cat-count,
.gs-sidebar--widgets .count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; color: var(--fg-mute); letter-spacing: .1em;
}

/* Tag cloud */
.gs-sidebar--widgets .tagcloud,
.gs-sidebar--widgets .wp-block-tag-cloud {
  display: flex; flex-wrap: wrap; gap: 4px;
}
.gs-sidebar--widgets .tagcloud a,
.gs-sidebar--widgets .wp-block-tag-cloud a {
  display: inline-block !important;
  padding: 4px 9px !important;
  background: rgba(0,231,255,.06) !important;
  color: var(--cyan) !important;
  border: 1px solid rgba(0,231,255,.35) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important; letter-spacing: .1em;
  font-weight: 500 !important;
  border-radius: 0 !important;
}
.gs-sidebar--widgets .tagcloud a::before,
.gs-sidebar--widgets .wp-block-tag-cloud a::before { content: '#'; }
.gs-sidebar--widgets .tagcloud a:hover,
.gs-sidebar--widgets .wp-block-tag-cloud a:hover {
  background: var(--cyan) !important; color: #000 !important;
  padding-left: 9px !important;
}

/* Search widget */
.gs-sidebar--widgets .search-form,
.gs-sidebar--widgets .wp-block-search {
  display: flex; gap: 0;
}
.gs-sidebar--widgets .search-field,
.gs-sidebar--widgets input[type="search"] {
  flex: 1; background: rgba(0,0,0,.5) !important;
  border: 1px solid var(--line-2) !important;
  color: var(--fg) !important;
  padding: 8px 10px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  border-radius: 0 !important;
}
.gs-sidebar--widgets .search-submit,
.gs-sidebar--widgets input[type="submit"],
.gs-sidebar--widgets button[type="submit"] {
  background: var(--neon) !important; color: #000 !important;
  border: none !important; padding: 8px 14px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important; letter-spacing: .2em;
  font-weight: 700 !important; cursor: pointer; border-radius: 0 !important;
}

/* Popular posts widget (wordpress-popular-posts) */
.gs-sidebar--widgets .wpp-list {
  padding: 0 !important; margin: 0 !important; list-style: none !important;
}
.gs-sidebar--widgets .wpp-list li {
  display: flex; gap: 10px; padding: 10px 0;
  border-bottom: 1px dashed var(--line-2);
}
.gs-sidebar--widgets .wpp-thumbnail { width: 72px !important; height: 40px !important; border: 1px solid var(--line-2); border-radius: 0 !important; }
.gs-sidebar--widgets .wpp-post-title { font-size: 13px !important; color: var(--fg) !important; line-height: 1.3 !important; font-weight: 700; }

/* ==========================================================
   PAGINATION — cyberpunk animated navigator
   ========================================================== */
.gs-pager {
  position: relative;
  margin-top: 56px;
  padding: 22px 24px 24px;
  border: 1px solid var(--line-2);
  background:
    radial-gradient(600px 80px at 50% 100%, rgba(255,42,109,.08), transparent 70%),
    linear-gradient(180deg, rgba(17,16,28,.85), rgba(7,6,12,.92));
  box-shadow: 0 0 0 1px rgba(255,42,109,.05), 0 30px 60px -30px rgba(0,0,0,.7);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
  overflow: hidden;
}
.gs-pager::before, .gs-pager::after {
  content: ''; position: absolute;
  width: 14px; height: 14px; pointer-events: none;
  border: 2px solid var(--neon);
}
.gs-pager::before { top: -1px; left: -1px;  border-right: 0; border-bottom: 0; }
.gs-pager::after  { top: -1px; right: -1px; border-left: 0;  border-bottom: 0; border-color: var(--cyan); }

.gs-pager__head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 14px;
}
.gs-pager__tag {
  font-size: 11px; color: var(--neon); letter-spacing: .3em; font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
}
.gs-pager__meta {
  display: flex; align-items: baseline; gap: 6px;
  font-family: 'JetBrains Mono', monospace;
}
.gs-pager__meta-key { font-size: 10px; color: var(--fg-mute); letter-spacing: .25em; margin-right: 4px; }
.gs-pager__meta-cur {
  font-size: 28px; font-weight: 900; color: var(--acid); line-height: 1;
  letter-spacing: -.02em;
  text-shadow: 0 0 12px rgba(198,255,61,.4);
  animation: gs-pager-pulse 2.4s ease-in-out infinite;
}
.gs-pager__meta-sep { font-size: 18px; color: var(--fg-mute); }
.gs-pager__meta-tot { font-size: 18px; color: var(--fg-dim); font-weight: 700; }
@keyframes gs-pager-pulse {
  0%,100% { text-shadow: 0 0 12px rgba(198,255,61,.4); }
  50%     { text-shadow: 0 0 18px rgba(198,255,61,.8); }
}

/* Progress bar */
.gs-pager__progress {
  position: relative; height: 6px; margin-bottom: 18px;
  background: rgba(255,255,255,.04);
  overflow: visible;
}
.gs-pager__progress-track {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 4px, transparent 4px 8px);
}
.gs-pager__progress-fill {
  position: absolute; top: 0; bottom: 0; left: 0;
  background: linear-gradient(90deg, var(--neon), var(--cyan), var(--acid));
  box-shadow: 0 0 14px rgba(255,42,109,.6);
  transition: width .4s cubic-bezier(.2,.7,.2,1);
}
.gs-pager__progress-head {
  position: absolute; top: 50%; transform: translate(-50%, -50%);
  width: 12px; height: 12px;
  background: var(--acid); border-radius: 50%;
  box-shadow: 0 0 12px var(--acid), 0 0 24px rgba(198,255,61,.5);
  animation: gs-pager-head 1.6s ease-in-out infinite;
}
@keyframes gs-pager-head {
  0%,100% { transform: translate(-50%, -50%) scale(1); }
  50%     { transform: translate(-50%, -50%) scale(1.35); }
}

/* Row: prev | numbers | next */
.gs-pager__row {
  display: grid; grid-template-columns: auto 1fr auto; gap: 16px;
  align-items: stretch;
}

.gs-pager__ctrl {
  display: inline-flex; align-items: center; gap: 14px;
  padding: 12px 18px;
  color: var(--fg); text-decoration: none;
  background: rgba(0,0,0,.45);
  border: 1px solid var(--line-2);
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  transition: all .2s cubic-bezier(.2,.7,.2,1);
  position: relative; overflow: hidden;
}
.gs-pager__ctrl::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(255,42,109,0), rgba(255,42,109,.12), rgba(255,42,109,0));
  transform: translateX(-100%);
  transition: transform .5s ease;
}
.gs-pager__ctrl:hover::before { transform: translateX(100%); }
.gs-pager__ctrl:hover:not(.is-disabled) {
  border-color: var(--neon); color: var(--neon);
  box-shadow: 0 0 0 1px rgba(255,42,109,.2), 0 10px 30px -10px rgba(255,42,109,.4);
}
.gs-pager__ctrl.is-disabled { opacity: .35; cursor: not-allowed; pointer-events: none; }
.gs-pager__ctrl-arrow {
  font-size: 20px; line-height: 1; color: var(--neon);
  transition: transform .2s;
}
.gs-pager__ctrl--prev:hover .gs-pager__ctrl-arrow { transform: translateX(-4px); }
.gs-pager__ctrl--next:hover .gs-pager__ctrl-arrow { transform: translateX(4px); }
.gs-pager__ctrl-body { display: flex; flex-direction: column; gap: 2px; line-height: 1.1; }
.gs-pager__ctrl--next .gs-pager__ctrl-body { text-align: right; }
.gs-pager__ctrl-hint {
  font-size: 9px; color: var(--fg-mute); letter-spacing: .3em;
}
.gs-pager__ctrl-label {
  font-size: 14px; font-weight: 800; color: var(--fg);
  font-family: 'Barlow Condensed', 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  letter-spacing: .02em;
}

.gs-pager__nums {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  flex-wrap: wrap;
}
.gs-pager__num {
  position: relative;
  min-width: 48px; padding: 10px 12px;
  text-align: center; text-decoration: none;
  background: rgba(0,0,0,.45);
  border: 1px solid var(--line-2);
  color: var(--fg-dim);
  transition: all .25s cubic-bezier(.2,.7,.2,1);
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}
.gs-pager__num::before {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent);
  transform: scaleX(0);
  transition: transform .25s;
}
.gs-pager__num:hover::before { transform: scaleX(1); }
.gs-pager__num:hover {
  border-color: var(--cyan); color: var(--cyan);
  transform: translateY(-2px);
}
.gs-pager__num-n {
  display: block; font-size: 16px; font-weight: 900; line-height: 1;
  letter-spacing: -.01em;
  font-family: 'Barlow Condensed', 'Chakra Petch', monospace;
}
.gs-pager__num.is-active {
  background: linear-gradient(180deg, var(--neon), #c21554);
  border-color: var(--neon);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(255,42,109,.3), 0 10px 24px -6px var(--neon),
              inset 0 0 16px rgba(255,255,255,.2);
  transform: translateY(-2px);
  animation: gs-pager-active 2s ease-in-out infinite;
}
.gs-pager__num.is-active .gs-pager__num-n { color: #fff; }
.gs-pager__num.is-active::before { transform: scaleX(1); background: var(--acid); }
@keyframes gs-pager-active {
  0%,100% { box-shadow: 0 0 0 1px rgba(255,42,109,.3), 0 10px 24px -6px var(--neon), inset 0 0 16px rgba(255,255,255,.2); }
  50%     { box-shadow: 0 0 0 2px rgba(255,42,109,.5), 0 14px 36px -6px var(--neon), inset 0 0 22px rgba(255,255,255,.3); }
}
.gs-pager__sep {
  color: var(--fg-mute); font-family: 'JetBrains Mono', monospace;
  padding: 0 4px; letter-spacing: .15em;
}

/* ==========================================================
   CATEGORY TREE (sidebar) — cyberpunk hierarchical nav
   ========================================================== */
.gs-ctree { display: flex; flex-direction: column; gap: 10px; }

/* Reorder behavior: opened section sinks to the bottom so its
   header + all closed siblings remain visible at the top. */
.gs-ctree__root            { order: 0; }
.gs-ctree__root[open]      { order: 2; }

/* View Transitions API — smooths the reorder animation when JS
   toggles [open]. Only the 3 ctree roots animate; the page root
   cross-fade is disabled to avoid a white flash between snapshots. */
::view-transition-group(root),
::view-transition-old(root),
::view-transition-new(root) {
  animation: none !important;
  mix-blend-mode: normal !important;
}
::view-transition-group(gs-ctree-category),
::view-transition-group(gs-ctree-theme),
::view-transition-group(gs-ctree-feature) {
  animation-duration: .45s;
  animation-timing-function: cubic-bezier(.2,.75,.2,1);
}
::view-transition-old(gs-ctree-category),
::view-transition-old(gs-ctree-theme),
::view-transition-old(gs-ctree-feature),
::view-transition-new(gs-ctree-category),
::view-transition-new(gs-ctree-theme),
::view-transition-new(gs-ctree-feature) {
  animation-duration: .4s;
}

.gs-ctree__root {
  position: relative;
  border: 1px solid var(--line-2);
  background: linear-gradient(180deg, rgba(17,16,28,.9), rgba(13,11,24,.95));
  overflow: hidden;
  transition: border-color .2s;
}
.gs-ctree__root::before {
  content: ''; position: absolute; top: -1px; left: -1px;
  width: 14px; height: 14px; border: 2px solid var(--neon);
  border-right: 0; border-bottom: 0; pointer-events: none;
}
.gs-ctree__root::after {
  content: ''; position: absolute; bottom: -1px; right: -1px;
  width: 14px; height: 14px; border: 2px solid var(--cyan);
  border-left: 0; border-top: 0; pointer-events: none;
}
.gs-ctree__root[open] { border-color: var(--line); }

.gs-ctree__root-sum {
  list-style: none;
  cursor: pointer;
  display: grid; grid-template-columns: auto 1fr auto; gap: 12px;
  align-items: center;
  padding: 13px 16px 13px 14px;
  background: linear-gradient(90deg, rgba(255,42,109,.08) 0%, rgba(0,231,255,.04) 60%, transparent 100%);
  border-bottom: 1px dashed transparent;
  transition: all .2s;
  user-select: none;
}
.gs-ctree__root[open] .gs-ctree__root-sum {
  border-bottom-color: var(--line-2);
}
.gs-ctree__root-sum::-webkit-details-marker { display: none; }
.gs-ctree__root-sum::marker { content: ''; }
.gs-ctree__root-sum:hover { background: linear-gradient(90deg, rgba(255,42,109,.16) 0%, rgba(0,231,255,.08) 60%, transparent 100%); }

.gs-ctree__icon {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border: 1px solid var(--neon);
  color: var(--neon);
  font-size: 16px;
  background: rgba(255,42,109,.08);
  box-shadow: 0 0 12px -4px rgba(255,42,109,.5);
  transition: transform .2s;
}
.gs-ctree__root:hover .gs-ctree__icon { transform: rotate(45deg) scale(1.05); }
.gs-ctree__root-name {
  font-size: 17px; font-weight: 900; color: var(--fg);
  letter-spacing: .02em;
}
.gs-ctree__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-ctree__chev {
  color: var(--cyan); font-size: 12px;
  transition: transform .25s;
}
.gs-ctree__root[open] > .gs-ctree__root-sum .gs-ctree__chev { transform: rotate(180deg); }

.gs-ctree__list { list-style: none; padding: 4px 0; margin: 0; }
.gs-ctree__list--d1 > .gs-ctree__item > .gs-ctree__link,
.gs-ctree__list--d1 > .gs-ctree__item > .gs-ctree__sub > .gs-ctree__sub-sum {
  padding-left: 22px;
}
.gs-ctree__list--d2 > .gs-ctree__item > .gs-ctree__link,
.gs-ctree__list--d2 > .gs-ctree__item > .gs-ctree__sub > .gs-ctree__sub-sum {
  padding-left: 36px;
}

.gs-ctree__link,
.gs-ctree__sub-sum {
  display: grid; grid-template-columns: 1fr auto; gap: 10px;
  align-items: center;
  padding: 9px 16px;
  color: var(--fg-dim);
  font-size: 13px;
  text-decoration: none;
  border-left: 2px solid transparent;
  transition: all .15s;
  cursor: pointer;
  user-select: none;
  position: relative;
}
.gs-ctree__sub-sum::-webkit-details-marker { display: none; }
.gs-ctree__sub-sum::marker { content: ''; list-style: none; }
.gs-ctree__link::before { content: '▸'; margin-right: 6px; color: var(--fg-mute); font-size: 10px; font-family: 'JetBrains Mono', monospace; }
.gs-ctree__link:hover,
.gs-ctree__sub-sum:hover {
  color: var(--neon);
  background: linear-gradient(90deg, rgba(255,42,109,.08), transparent 80%);
  border-left-color: var(--neon);
  padding-left: 20px;
}
.gs-ctree__link-name,
.gs-ctree__sub-name {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
}
.gs-ctree__link:hover .gs-ctree__link-name { color: var(--neon); }
.gs-ctree__sub[open] > .gs-ctree__sub-sum { color: var(--cyan); border-left-color: var(--cyan); }
.gs-ctree__sub[open] > .gs-ctree__sub-sum .gs-ctree__chev { transform: rotate(180deg); color: var(--cyan); }

/* ==========================================================
   NAV MEGA MENU (hover dropdown for ジャンル etc.)
   ========================================================== */
.gs-nav__item { position: relative; }
.gs-nav__menu {
  position: absolute; top: 100%; left: -1px;
  min-width: 280px;
  background: rgba(7,6,12,.97); backdrop-filter: blur(14px);
  border: 1px solid var(--line-2); border-top: 2px solid var(--neon);
  padding: 14px 16px;
  display: none; z-index: 60;
  box-shadow: 0 20px 40px -10px rgba(0,0,0,.7), 0 0 0 1px rgba(255,42,109,.1);
}
.gs-nav__item:hover .gs-nav__menu { display: block; }
.gs-nav__menu-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; color: var(--neon); letter-spacing: .3em;
  margin-bottom: 10px;
}
.gs-nav__menu-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 14px; }
.gs-nav__menu a {
  display: block; padding: 6px 8px 6px 14px;
  font-size: 13px; color: var(--fg-dim);
  border-left: 1px solid transparent;
  font-family: 'Noto Sans JP', sans-serif; font-weight: 500;
  transition: all .15s;
}
.gs-nav__menu a:hover {
  color: var(--neon); border-left-color: var(--neon);
  background: rgba(255,42,109,.05);
}
.gs-nav__menu a::before { content: '▸ '; color: var(--fg-mute); font-family: 'JetBrains Mono', monospace; }

.gs-search {
  position: relative; padding: 18px; border: 1px solid var(--neon);
  background: linear-gradient(135deg, rgba(255,42,109,.14), rgba(0,231,255,.06));
}
.gs-search__label { font-size: 10px; color: var(--acid); letter-spacing: .3em; margin-bottom: 8px; }
.gs-search__heading { font-size: 22px; font-weight: 900; line-height: 1; margin-bottom: 10px; color: var(--fg); }
.gs-search__field { display: flex; gap: 0; margin-bottom: 12px; }
.gs-search__prompt {
  display: grid; place-items: center; padding: 0 10px;
  background: rgba(0,0,0,.5); border: 1px solid var(--line-2); border-right: none;
  color: var(--neon); font-size: 12px;
}
.gs-search__input {
  flex: 1; background: rgba(0,0,0,.5); border: 1px solid var(--line-2);
  padding: 9px 10px; color: var(--fg); font-size: 11px; outline: none; letter-spacing: .05em;
  font-family: 'JetBrains Mono', monospace;
}
.gs-search__clear {
  padding: 9px 12px; background: var(--neon); color: #000; border: none;
  font-size: 11px; letter-spacing: .2em; cursor: pointer;
}
.gs-search__popular { font-size: 9px; color: var(--fg-mute); letter-spacing: .25em; margin-bottom: 8px; }
.gs-search__chips   { display: flex; flex-wrap: wrap; gap: 4px; }
.gs-search__chip {
  font-size: 10px; padding: 4px 8px; background: transparent; color: var(--fg-dim);
  border: 1px solid var(--line-2); letter-spacing: .1em; cursor: pointer;
}
.gs-search__chip:hover          { border-color: var(--neon); color: var(--fg); }
.gs-search__chip.is-active      { background: var(--neon); color: #000; border-color: var(--neon); }

.gs-panel { position: relative; border: 1px solid var(--line); padding: 18px; background: var(--panel); }
.gs-panel__label { font-size: 10px; color: var(--neon); letter-spacing: .3em; margin-bottom: 14px; }
.gs-panel__label.is-cyan { color: var(--cyan); }
.gs-top {
  display: flex; align-items: center; gap: 12px; padding: 10px 0;
  border-bottom: 1px dashed var(--line-2); color: inherit;
}
.gs-top:last-child { border-bottom: none; }
.gs-top:hover      { background: rgba(255,42,109,.04); }
.gs-top__rank { font-size: 28px; font-weight: 900; color: var(--fg-mute); width: 30px; line-height: 1; }
.gs-top__rank.is-first { color: var(--neon); }
.gs-top__body { flex: 1; min-width: 0; }
.gs-top__title { font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--fg); }
.gs-top__meta { font-size: 9px; color: var(--fg-mute); letter-spacing: .2em; }
.gs-top__score { font-size: 20px; font-weight: 900; color: var(--vc); }

.gs-editor { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--line-2); }
.gs-editor:last-child { border-bottom: none; }
.gs-editor__avatar {
  width: 38px; height: 38px; border: 1px solid var(--cyan);
  display: grid; place-items: center; font-size: 11px; color: var(--cyan); letter-spacing: .1em;
  background: repeating-linear-gradient(45deg, rgba(0,231,255,.05) 0 3px, transparent 3px 6px);
}
.gs-editor__body { flex: 1; }
.gs-editor__name { font-size: 14px; font-weight: 700; color: var(--fg); }
.gs-editor__meta { font-size: 9px; color: var(--fg-mute); letter-spacing: .2em; }

/* ==========================================================
   FOOTER
   ========================================================== */
.gs-footer { border-top: 1px solid var(--line); padding: 40px 0 32px; margin-top: 20px; position: relative; z-index: 1; }
.gs-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; }
.gs-footer__logo { font-size: 32px; font-weight: 900; color: var(--fg); }
.gs-footer__sub  { font-size: 10px; color: var(--fg-mute); letter-spacing: .2em; margin-top: 6px; }
.gs-footer__text { font-size: 12px; color: var(--fg-dim); margin-top: 14px; max-width: 460px; line-height: 1.6; }
.gs-footer__h    { font-size: 10px; color: var(--neon); letter-spacing: .3em; margin-bottom: 12px; }
.gs-footer__link { display: block; font-size: 12px; color: var(--fg-dim); padding: 4px 0; }
.gs-footer__link span { color: var(--fg-mute); }
.gs-footer__link:hover { color: var(--neon); }
.gs-footer__bottom {
  margin: 32px auto 0; border-top: 1px dashed var(--line-2); padding-top: 16px;
  display: flex; justify-content: space-between; font-size: 10px; color: var(--fg-mute); letter-spacing: .2em;
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width: 1100px) {
  .gs-main__grid { grid-template-columns: 1fr; }
  .gs-sidebar    { position: static; }
  .gs-hero__grid { grid-template-columns: 1fr; }
  .gs-nav        { display: none; }
  .gs-footer__grid { grid-template-columns: 1fr 1fr; }
  .gs-content[data-view-mode="list"] .gs-list-header,
  .gs-content[data-view-mode="list"] .gs-row {
    grid-template-columns: 40px 120px 1fr 80px 60px;
  }
  .gs-content[data-view-mode="list"] .gs-row > :nth-child(5),
  .gs-content[data-view-mode="list"] .gs-row > :nth-child(6),
  .gs-content[data-view-mode="list"] .gs-list-header > :nth-child(5),
  .gs-content[data-view-mode="list"] .gs-list-header > :nth-child(6) { display: none; }
}
@media (max-width: 640px) {
  .gs-hero        { padding: 12px 16px; }
  .gs-wrap        { padding: 0 16px; }
  .gs-filterbar__inner { padding: 0 16px; }
  .gs-header__inner    { padding: 10px 16px; gap: 12px; }
  .gs-logo__text .condensed { font-size: 18px; }
  .gs-logo__sub   { display: none; }
  .gs-hero__title { font-size: 28px; }
  .gs-header__right { margin-left: auto; }
  .gs-live        { display: none; }
  .gs-cards       { grid-template-columns: 1fr; }
  .gs-footer__grid { grid-template-columns: 1fr; gap: 24px; }
  .gs-footer__bottom { flex-direction: column; gap: 6px; }
  .gs-filterbar { top: 56px; }
}
