/* ==========================================================================
   공명 헌터 — 게임사 공식 홈페이지형 디자인 (js/hunter-site.js)
   styles.css 다음에 불러온다. 이 파일의 규칙은 모두 body.hx 안에서만 쓰인다.
   색: 밤의 남색 바탕 · 게이트 시안 · 공명 보라 · 공지 금색
   ========================================================================== */

body.hx {
  --hx-bg: #05070d;
  --hx-bg-2: #080c18;
  --hx-panel: #0c1222;
  --hx-panel-2: #111a30;
  --hx-line: rgba(140, 170, 255, 0.13);
  --hx-line-2: rgba(140, 170, 255, 0.26);
  --hx-ink: #eef3ff;
  --hx-soft: #b9c3dc;
  --hx-muted: #7f8aa8;
  --hx-cyan: #5ee3ff;
  --hx-violet: #8b7bff;
  --hx-gold: #e8c37a;
  --hx-red: #ff5a7a;
  --hx-head-h: 76px;
  --hx-gutter: clamp(16px, 4vw, 40px);
  --hx-chamfer: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);

  /* styles.css 공용 토큰도 맞춰 둔다(건너뛰기 링크·포커스 등) */
  --bg: var(--hx-bg);
  --surface: var(--hx-panel);
  --ink: var(--hx-ink);
  --accent: var(--hx-cyan);

  margin: 0;
  background: var(--hx-bg);
  color: var(--hx-ink);
  word-break: keep-all;
  overflow-wrap: anywhere;
}
html.hx-locked { overflow: hidden; }

body.hx a { color: inherit; text-decoration: none; }
body.hx :focus-visible { outline: 2px solid var(--hx-cyan); outline-offset: 3px; }
body.hx .hx-main:focus { outline: none; }

/* 톤(소속 색) */
body.hx [data-tone="cyan"] { --tone: #5ee3ff; }
body.hx [data-tone="blue"] { --tone: #5b93ff; }
body.hx [data-tone="teal"] { --tone: #3fd6a6; }
body.hx [data-tone="olive"] { --tone: #a9b86f; }
body.hx [data-tone="orange"] { --tone: #ff9d4d; }
body.hx [data-tone="silver"] { --tone: #dfe6ff; }
body.hx [data-tone="violet"] { --tone: #b07cff; }
body.hx [data-tone="crimson"] { --tone: #ff5a7a; }
body.hx [data-tone="sand"] { --tone: #d9bf8c; }

.hx-wrap {
  width: min(1280px, 100% - var(--hx-gutter) * 2);
  margin-inline: auto;
}

.hx-icon { width: 1.5rem; height: 1.5rem; flex: none; }
.hx-icon--sm { width: 1rem; height: 1rem; }

/* JS가 꺼졌을 때 */
.hx-noscript { padding: 3rem var(--hx-gutter); max-width: 48rem; margin: 0 auto; line-height: 1.8; color: var(--hx-soft); }
.hx-noscript a { color: var(--hx-cyan); text-decoration: underline; }

/* ---------- 상단 띠 (BYANGBYANG) ---------- */
.hx-topbar {
  background: #020308;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.75rem;
  color: var(--hx-muted);
}
.hx-topbar-inner { display: flex; align-items: center; justify-content: space-between; min-height: 34px; gap: 1rem; }
.hx-topbar-brand { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 800; letter-spacing: 0.16em; color: var(--hx-soft); }
.hx-topbar-brand img { width: 1rem; height: auto; }
.hx-topbar-brand:hover, .hx-topbar-nav a:hover { color: var(--hx-ink); }
.hx-topbar-nav { display: flex; gap: 1.25rem; }

/* ---------- 헤더 · GNB · 메가 메뉴 ---------- */
.hx-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(5, 7, 13, 0.9);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid var(--hx-line);
}
.hx-header-inner { position: relative; z-index: 2; display: flex; align-items: center; gap: 2rem; min-height: var(--hx-head-h); }

.hx-logo { display: inline-flex; align-items: center; gap: 0.7rem; flex: none; color: var(--hx-ink); }
.hx-logo-mark { width: 2.4rem; height: 2.4rem; color: var(--hx-cyan); filter: drop-shadow(0 0 10px rgba(94, 227, 255, 0.55)); }
.hx-logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.hx-logo-ko { font-size: 1.3rem; font-weight: 900; letter-spacing: -0.02em; }
.hx-logo-en { font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.32em; color: var(--hx-muted); }

.hx-gnb-nav { flex: 1; display: flex; justify-content: center; }
.hx-gnb { display: flex; list-style: none; margin: 0; padding: 0; }
.hx-gnb-item { position: relative; display: flex; align-items: center; min-height: var(--hx-head-h); width: 8.25rem; justify-content: center; }
.hx-gnb-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: var(--hx-head-h);
  padding: 0 0.5rem;
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--hx-ink);
  transition: color 160ms ease;
}
.hx-gnb-link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 0;
  height: 2px;
  background: var(--hx-cyan);
  box-shadow: 0 0 12px var(--hx-cyan);
  transform: translateX(-50%);
  transition: width 200ms ease;
}
.hx-gnb-item:hover .hx-gnb-link, .hx-gnb-link.is-current { color: var(--hx-cyan); }
.hx-gnb-item:hover .hx-gnb-link::after, .hx-gnb-link.is-current::after { width: 70%; }

.hx-gnb-sub {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  margin: 0;
  padding: 1.4rem 0 0;
  list-style: none;
  text-align: center;
}
.hx-gnb-sub li + li { margin-top: 0.15rem; }
.hx-gnb-sub a {
  display: block;
  padding: 0.4rem 0.25rem;
  font-size: 0.875rem;
  color: var(--hx-soft);
  transition: color 160ms ease;
}
.hx-gnb-sub a:hover { color: var(--hx-cyan); }
.hx-gnb-item + .hx-gnb-item .hx-gnb-sub { border-left: 1px solid var(--hx-line); }

.hx-mega-bg {
  display: none;
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  top: 100%;
  height: 15rem;
  background:
    radial-gradient(40rem 12rem at 50% 0%, rgba(94, 227, 255, 0.08), transparent 70%),
    rgba(6, 9, 18, 0.97);
  border-bottom: 1px solid var(--hx-line-2);
  box-shadow: 0 30px 50px -20px rgba(0, 0, 0, 0.8);
}
.hx-header:has(.hx-gnb-nav:hover, .hx-gnb-nav:focus-within, .hx-mega-bg:hover) .hx-gnb-sub,
.hx-header:has(.hx-gnb-nav:hover, .hx-gnb-nav:focus-within, .hx-mega-bg:hover) .hx-mega-bg { display: block; }

.hx-header-side { display: flex; align-items: center; gap: 0.75rem; flex: none; }
.hx-age {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 2px solid var(--hx-red);
  color: var(--hx-red);
  font-size: 0.8125rem;
  font-weight: 900;
}

.hx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 46px;
  padding: 0 1.5rem;
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: filter 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.hx-btn--primary, .hx-btn--cta {
  border: 0;
  background: linear-gradient(100deg, #6ff0ff, #8b7bff);
  color: #04050b;
  clip-path: var(--hx-chamfer);
}
.hx-btn--primary:hover, .hx-btn--cta:hover { filter: brightness(1.12) saturate(1.1); }
.hx-btn--cta { min-height: 40px; padding: 0 1.1rem; font-size: 0.875rem; }
.hx-btn--ghost {
  border: 1px solid rgba(238, 243, 255, 0.35);
  border-radius: 2px;
  background: rgba(5, 7, 13, 0.35);
  color: var(--hx-ink);
}
.hx-btn--ghost:hover { border-color: var(--hx-cyan); color: var(--hx-cyan); }

.hx-menu-btn {
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--hx-line-2);
  border-radius: 2px;
  background: transparent;
  color: var(--hx-ink);
  cursor: pointer;
}
.hx-menu-bars { display: grid; gap: 5px; width: 20px; }
.hx-menu-bars span { display: block; height: 2px; background: currentColor; }
.hx-menu-bars span:nth-child(2) { width: 70%; justify-self: end; }

/* 모바일 메뉴 */
.hx-drawer {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(0, 0, 0, 0.62);
}
.hx-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(380px, 88vw);
  display: flex;
  flex-direction: column;
  background: var(--hx-bg-2);
  border-left: 1px solid var(--hx-line-2);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.hx-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--hx-line); }
.hx-drawer-close { width: 44px; height: 44px; border: 1px solid var(--hx-line-2); border-radius: 2px; background: transparent; color: var(--hx-ink); font: inherit; cursor: pointer; }
.hx-drawer-nav { padding: 0.5rem 0; }
.hx-drawer-group { padding: 0.75rem 1.25rem; border-bottom: 1px solid var(--hx-line); }
.hx-drawer-main { display: flex; align-items: center; gap: 0.6rem; min-height: 44px; font-size: 1.0625rem; font-weight: 800; }
.hx-drawer-main small { margin-left: auto; color: var(--hx-muted); font-size: 0.625rem; letter-spacing: 0.24em; font-weight: 700; }
.hx-drawer-main .hx-icon { color: var(--hx-cyan); }
.hx-drawer-main.is-current { color: var(--hx-cyan); }
.hx-drawer-group ul { list-style: none; margin: 0.25rem 0 0; padding: 0 0 0 2.1rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0 0.75rem; }
.hx-drawer-group li a { display: flex; align-items: center; min-height: 40px; font-size: 0.875rem; color: var(--hx-soft); }
.hx-drawer-foot { margin-top: auto; display: flex; gap: 1.25rem; padding: 1.25rem; border-top: 1px solid var(--hx-line); font-size: 0.8125rem; color: var(--hx-muted); }
.hx-drawer-foot a { min-height: 40px; display: inline-flex; align-items: center; }

/* ---------- 키 비주얼 공통 ---------- */
.hx-kv, .hx-sub-kv, .hx-spot-kv, .hx-band-kv { position: absolute; inset: 0; overflow: hidden; }
.hx-kv-svg { display: block; width: 100%; height: 100%; }
.hx-gate-swirl, .hx-gate-ring { transform-box: fill-box; transform-origin: center; }
.hx-gate-swirl { animation: hx-spin 60s linear infinite; }
.hx-gate-ring { animation: hx-spin 90s linear infinite; }
.hx-gate-ring--rev { animation-direction: reverse; animation-duration: 120s; }
.hx-ember { animation: hx-rise 9s linear infinite; opacity: 0; }
.hx-ember:nth-child(3n) { animation-duration: 12s; animation-delay: -4s; }
.hx-ember:nth-child(3n + 1) { animation-duration: 7s; animation-delay: -2s; }
.hx-ember:nth-child(4n) { animation-delay: -6s; }
.hx-ember:nth-child(5n) { animation-duration: 14s; animation-delay: -9s; }
@keyframes hx-spin { to { transform: rotate(360deg); } }
@keyframes hx-rise {
  0% { transform: translateY(0); opacity: 0; }
  15% { opacity: 0.9; }
  100% { transform: translateY(-260px); opacity: 0; }
}

/* ---------- 메인 히어로 ---------- */
.hx-hero {
  position: relative;
  min-height: clamp(640px, 88vh, 880px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  isolation: isolate;
}
.hx-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(5, 7, 13, 0.94) 0%, rgba(5, 7, 13, 0.62) 38%, rgba(5, 7, 13, 0) 66%),
    linear-gradient(0deg, var(--hx-bg) 0%, rgba(5, 7, 13, 0) 30%);
}
.hx-hero-inner {
  position: relative;
  z-index: 2;
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 20rem);
  align-items: end;
  gap: 2rem;
  padding-block: clamp(4rem, 12vh, 7rem) 6.5rem;
}
.hx-hero-copy { align-self: center; max-width: 40rem; }
.hx-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--hx-cyan);
}
.hx-hero-kicker::before { content: ""; width: 2.25rem; height: 1px; background: var(--hx-cyan); box-shadow: 0 0 8px var(--hx-cyan); }
.hx-hero-title { display: flex; align-items: flex-start; gap: 0.75rem; margin: 0; line-height: 1; }
.hx-hero-title-ko {
  font-size: clamp(3.25rem, 8.4vw, 6.75rem);
  font-weight: 900;
  letter-spacing: -0.045em;
  background: linear-gradient(180deg, #ffffff 15%, #c9f7ff 55%, #8f86ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 24px rgba(94, 227, 255, 0.35));
}
.hx-wt {
  margin-top: 0.6rem;
  padding: 0.2rem 0.5rem;
  border: 1px solid rgba(238, 243, 255, 0.4);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--hx-soft);
  white-space: nowrap;
}
.hx-hero-en { margin: 0.9rem 0 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.62em; color: var(--hx-soft); }
.hx-hero-lines { display: grid; margin: 2rem 0 0; font-size: clamp(1.25rem, 2.4vw, 1.75rem); font-weight: 800; line-height: 1.45; letter-spacing: -0.01em; }
.hx-hero-lines span:last-child { color: var(--hx-cyan); }
.hx-hero-lead { margin: 1rem 0 0; max-width: 32rem; color: var(--hx-soft); line-height: 1.75; }
.hx-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }

.hx-status-card {
  padding: 1.5rem;
  background: linear-gradient(180deg, rgba(14, 20, 40, 0.82), rgba(6, 9, 18, 0.88));
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid var(--hx-line-2);
  border-top: 2px solid var(--hx-cyan);
}
.hx-status-en { margin: 0; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.24em; color: var(--hx-muted); }
.hx-status-badge { display: flex; align-items: center; gap: 0.5rem; margin: 0.6rem 0 1rem; font-size: 1.125rem; font-weight: 800; }
.hx-pulse { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--hx-cyan); box-shadow: 0 0 0 0 rgba(94, 227, 255, 0.6); animation: hx-pulse 2s ease-out infinite; }
@keyframes hx-pulse { 70% { box-shadow: 0 0 0 10px rgba(94, 227, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(94, 227, 255, 0); } }
.hx-status-list { display: grid; gap: 0.5rem; margin: 0; }
.hx-status-list div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 0.5rem; border-bottom: 1px dashed var(--hx-line-2); font-size: 0.875rem; }
.hx-status-list dt { color: var(--hx-muted); }
.hx-status-list dd { margin: 0; font-weight: 700; text-align: right; }
.hx-status-note { margin: 1rem 0 0; font-size: 0.8125rem; line-height: 1.7; color: var(--hx-soft); }

.hx-ticker {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(3, 5, 10, 0.82);
  border-top: 1px solid var(--hx-line);
}
.hx-ticker-inner { display: flex; align-items: center; gap: 1rem; min-height: 56px; }
.hx-ticker-label { flex: none; padding: 0.25rem 0.6rem; font-size: 0.6875rem; font-weight: 900; letter-spacing: 0.2em; color: #04050b; background: var(--hx-cyan); }
.hx-ticker-link { flex: 1; min-width: 0; display: flex; align-items: center; gap: 0.75rem; min-height: 44px; }
.hx-ticker-title { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 700; }
.hx-ticker-link:hover .hx-ticker-title { color: var(--hx-cyan); }
.hx-ticker-link time { flex: none; font-size: 0.8125rem; color: var(--hx-muted); }
.hx-ticker-more { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-left: 1px solid var(--hx-line); font-size: 1.5rem; font-weight: 300; color: var(--hx-soft); }
.hx-ticker-more:hover { color: var(--hx-cyan); }

/* ---------- 바로가기 ---------- */
.hx-quick { background: var(--hx-bg-2); border-bottom: 1px solid var(--hx-line); }
.hx-quick-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin-block: 0; padding: 0; }
.hx-quick-list li + li { border-left: 1px solid var(--hx-line); }
.hx-quick-item { display: flex; align-items: center; gap: 0.9rem; min-height: 6.25rem; padding: 1rem 1.25rem; transition: background-color 160ms ease; }
.hx-quick-item:hover { background: rgba(94, 227, 255, 0.05); }
.hx-quick-icon { width: 2.25rem; height: 2.25rem; color: var(--hx-cyan); }
.hx-quick-text { display: grid; gap: 0.2rem; min-width: 0; }
.hx-quick-text strong { font-size: 1rem; }
.hx-quick-text small { font-size: 0.75rem; line-height: 1.5; color: var(--hx-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- 섹션 공통 ---------- */
.hx-section { padding-block: clamp(4rem, 8vw, 6.5rem); }
.hx-section--features { background: linear-gradient(180deg, var(--hx-bg) 0%, var(--hx-bg-2) 100%); }
.hx-section--roadmap { background: var(--hx-bg-2); border-top: 1px solid var(--hx-line); }
.hx-sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.hx-sec-en { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.6rem; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.32em; color: var(--hx-cyan); }
.hx-sec-en::before { content: ""; width: 0.5rem; height: 0.5rem; background: var(--hx-cyan); transform: rotate(45deg); box-shadow: 0 0 10px var(--hx-cyan); }
.hx-sec-title { margin: 0; font-size: clamp(1.75rem, 3.4vw, 2.5rem); font-weight: 900; letter-spacing: -0.03em; }
.hx-more { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 44px; font-size: 0.875rem; font-weight: 700; color: var(--hx-soft); }
.hx-more:hover { color: var(--hx-cyan); }

.hx-panel { background: linear-gradient(180deg, rgba(17, 26, 48, 0.75), rgba(10, 14, 28, 0.92)); border: 1px solid var(--hx-line); }

/* ---------- 뉴스 ---------- */
.hx-news-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 1.5rem; }
.hx-news-board { padding: 0.5rem 1.5rem 1rem; }
.hx-tabs { display: flex; gap: 0.25rem; border-bottom: 1px solid var(--hx-line); overflow-x: auto; scrollbar-width: none; }
.hx-tab {
  position: relative;
  min-height: 52px;
  padding: 0 1rem;
  border: 0;
  background: none;
  color: var(--hx-muted);
  font: inherit;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}
.hx-tab:hover { color: var(--hx-ink); }
.hx-tab[aria-selected="true"] { color: var(--hx-ink); }
.hx-tab[aria-selected="true"]::after { content: ""; position: absolute; left: 0.75rem; right: 0.75rem; bottom: -1px; height: 2px; background: var(--hx-cyan); }

.hx-board { list-style: none; margin: 0; padding: 0; }
.hx-board-row a {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr) 6rem;
  align-items: center;
  gap: 1rem;
  min-height: 3.6rem;
  padding: 0.5rem 0.25rem;
  border-bottom: 1px solid var(--hx-line);
}
.hx-board-row a:hover .hx-board-title { color: var(--hx-cyan); }
.hx-board-row.is-pinned a { background: linear-gradient(90deg, rgba(232, 195, 122, 0.07), transparent 60%); }
.hx-board-title { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 600; transition: color 160ms ease; }
.hx-board-date { font-size: 0.8125rem; color: var(--hx-muted); text-align: right; font-variant-numeric: tabular-nums; }
.hx-board-empty { padding: 2rem 0; text-align: center; color: var(--hx-muted); }
.hx-new {
  display: inline-grid;
  place-items: center;
  width: 1.1rem;
  height: 1.1rem;
  margin-left: 0.4rem;
  border-radius: 2px;
  background: var(--hx-red);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 900;
  vertical-align: 0.15em;
}

.hx-cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.5rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid currentColor;
  font-size: 0.75rem;
  font-weight: 800;
  white-space: nowrap;
}
.hx-cat--notice { color: var(--hx-gold); }
.hx-cat--update { color: var(--hx-cyan); }
.hx-cat--devnote { color: #b3a8ff; }

.hx-spot {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 22rem;
  overflow: hidden;
  border: 1px solid var(--hx-line-2);
  isolation: isolate;
}
.hx-spot::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(4, 6, 12, 0.96) 15%, rgba(4, 6, 12, 0.2) 70%); }
.hx-spot-kv .hx-kv-svg { transition: transform 600ms ease; }
.hx-spot:hover .hx-spot-kv .hx-kv-svg { transform: scale(1.04); }
.hx-spot-body { position: relative; z-index: 2; display: grid; justify-items: start; gap: 0.6rem; padding: 1.75rem; }
.hx-spot-title { margin: 0.25rem 0 0; font-size: 1.375rem; font-weight: 900; line-height: 1.4; }
.hx-spot-sum { margin: 0; color: var(--hx-soft); font-size: 0.875rem; line-height: 1.7; }
.hx-spot-more { display: inline-flex; align-items: center; gap: 0.35rem; margin-top: 0.5rem; font-size: 0.875rem; font-weight: 800; color: var(--hx-cyan); }

/* ---------- 게임 특징 ---------- */
.hx-feat { display: grid; grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); gap: 1.5rem; }
.hx-feat-tabs { display: grid; align-content: start; gap: 0.35rem; }
.hx-feat-tab {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 3.75rem;
  padding: 0 1.25rem;
  border: 1px solid var(--hx-line);
  border-left: 3px solid transparent;
  background: rgba(12, 18, 34, 0.6);
  color: var(--hx-soft);
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}
.hx-feat-tab:hover { color: var(--hx-ink); background: rgba(17, 26, 48, 0.9); }
.hx-feat-tab[aria-selected="true"] { color: var(--hx-ink); border-left-color: var(--hx-cyan); background: linear-gradient(90deg, rgba(94, 227, 255, 0.14), rgba(17, 26, 48, 0.9) 70%); }
.hx-feat-num { font-size: 0.8125rem; color: var(--hx-muted); font-variant-numeric: tabular-nums; }
.hx-feat-tab[aria-selected="true"] .hx-feat-num { color: var(--hx-cyan); }
.hx-feat-panel {
  position: relative;
  min-height: 22rem;
  padding: clamp(1.5rem, 4vw, 2.75rem);
  border: 1px solid var(--hx-line-2);
  background:
    linear-gradient(rgba(94, 227, 255, 0.045) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(90deg, rgba(94, 227, 255, 0.045) 1px, transparent 1px) 0 0 / 32px 32px,
    radial-gradient(30rem 18rem at 85% 10%, rgba(139, 123, 255, 0.16), transparent 70%),
    var(--hx-panel);
}
.hx-feat-en { margin: 0; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.28em; color: var(--hx-cyan); }
.hx-feat-title { margin: 0.75rem 0 0; font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 900; letter-spacing: -0.02em; }
.hx-feat-text { margin: 1rem 0 0; max-width: 40rem; color: var(--hx-soft); line-height: 1.85; }

.hx-art { margin-top: 2rem; }
.hx-art ol, .hx-art ul { list-style: none; margin: 0; padding: 0; }
.hx-art-ranks { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: flex-start; }
.hx-art-ranks li { display: grid; justify-items: center; gap: 0.4rem; width: 4rem; }
.hx-art-ranks b {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  clip-path: polygon(25% 4%, 75% 4%, 100% 50%, 75% 96%, 25% 96%, 0 50%);
  background: rgba(140, 170, 255, 0.16);
  font-size: 1.375rem;
  font-weight: 900;
  color: var(--hx-soft);
}
.hx-art-ranks li.is-marked b { background: linear-gradient(135deg, #6ff0ff, #8b7bff); color: #04050b; }
.hx-art-ranks small { font-size: 0.6875rem; font-weight: 700; color: var(--hx-cyan); text-align: center; }
.hx-art-slots { display: grid; grid-template-columns: repeat(4, minmax(0, 6rem)); gap: 0.6rem; }
.hx-art-slots li { display: grid; place-items: end center; aspect-ratio: 1; padding: 0.5rem; border: 1px solid var(--hx-line-2); background: radial-gradient(circle at 50% 40%, rgba(94, 227, 255, 0.16), transparent 65%), rgba(5, 7, 13, 0.6); font-size: 0.75rem; font-weight: 700; color: var(--hx-soft); }
.hx-art-extra { display: grid; gap: 0.4rem; margin-top: 1rem !important; }
.hx-art-extra li { font-size: 0.875rem; color: var(--hx-soft); }
.hx-art-extra li::before, .hx-doc-list li::before { content: "◆"; margin-right: 0.5rem; font-size: 0.5rem; vertical-align: 0.25em; color: var(--hx-cyan); }
.hx-art-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.hx-art-chain li { display: flex; align-items: center; gap: 0.5rem; }
.hx-art-chain li span { padding: 0.6rem 0.9rem; border: 1px solid var(--hx-line-2); background: rgba(5, 7, 13, 0.6); font-size: 0.875rem; font-weight: 700; }
.hx-art-chain li:not(:last-child)::after { content: "→"; color: var(--hx-cyan); }
.hx-art-chain li.is-goal span { border-color: var(--hx-cyan); background: rgba(94, 227, 255, 0.12); color: var(--hx-cyan); }
.hx-art-meters { display: grid; gap: 1rem; max-width: 28rem; }
.hx-art-meter { display: grid; grid-template-columns: 3rem 1fr; align-items: center; gap: 0.75rem; font-size: 0.875rem; font-weight: 700; }
.hx-art-meter i { position: relative; height: 0.6rem; background: rgba(140, 170, 255, 0.14); }
.hx-art-meter i::after { content: ""; position: absolute; inset: 0 auto 0 0; }
.hx-art-meter--light i::after { width: 62%; background: linear-gradient(90deg, #5ee3ff, #c9f7ff); }
.hx-art-meter--dark i::after { width: 38%; background: linear-gradient(90deg, #ff5a7a, #8b7bff); }
.hx-art-tabs { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.hx-art-tabs li { padding: 0.45rem 0.8rem; border: 1px solid var(--hx-line-2); font-size: 0.8125rem; font-weight: 700; color: var(--hx-soft); }
.hx-art-tabs li.is-on { border-color: var(--hx-cyan); color: var(--hx-cyan); background: rgba(94, 227, 255, 0.1); }
.hx-art-screen {
  display: grid;
  place-items: center;
  max-width: 30rem;
  height: 7rem;
  margin-top: 0.5rem;
  border: 1px solid var(--hx-line-2);
  background: repeating-linear-gradient(0deg, rgba(94, 227, 255, 0.05) 0 1px, transparent 1px 4px), rgba(5, 7, 13, 0.7);
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: 0.6em;
  color: rgba(94, 227, 255, 0.55);
}
.hx-art-events { display: flex; gap: 0.5rem; margin-top: 0.75rem !important; }
.hx-art-events li { padding: 0.35rem 0.75rem; background: rgba(139, 123, 255, 0.18); font-size: 0.8125rem; font-weight: 700; }

/* ---------- 세계관 띠 ---------- */
.hx-band { position: relative; overflow: hidden; isolation: isolate; padding-block: clamp(4.5rem, 9vw, 7rem); }
.hx-band::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(5, 7, 13, 0.35), rgba(5, 7, 13, 0.92) 45%), linear-gradient(0deg, var(--hx-bg), transparent 25%, transparent 75%, var(--hx-bg-2)); }
.hx-band-inner { position: relative; z-index: 2; display: grid; justify-items: start; padding-left: min(40%, 32rem); }
.hx-band-title { margin: 0; font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 900; letter-spacing: -0.02em; line-height: 1.35; }
.hx-band-text { margin: 1.25rem 0 0; color: var(--hx-soft); line-height: 1.85; }
.hx-era-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; width: 100%; margin: 2.25rem 0; padding: 0; list-style: none; }
.hx-era-row li { position: relative; display: grid; align-content: start; gap: 0.35rem; padding-top: 1.25rem; border-top: 1px solid var(--hx-line-2); }
.hx-era-row li::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; background: var(--hx-cyan); transform: rotate(45deg); box-shadow: 0 0 10px var(--hx-cyan); }
.hx-era-date { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.12em; color: var(--hx-cyan); }
.hx-era-row strong { font-size: 1rem; }
.hx-era-text { font-size: 0.8125rem; line-height: 1.65; color: var(--hx-muted); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- 인물(메인) ---------- */
.hx-char-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.hx-char-card { display: grid; gap: 0.3rem; }
.hx-char-card .hx-portrait { margin-bottom: 0.6rem; transition: transform 220ms ease, box-shadow 220ms ease; }
.hx-char-card:hover .hx-portrait { transform: translateY(-4px); box-shadow: 0 18px 40px -20px var(--tone); }
.hx-char-camp { font-size: 0.75rem; font-weight: 700; color: var(--tone); }
.hx-char-name { font-size: 1.125rem; }
.hx-char-role { font-size: 0.8125rem; line-height: 1.5; color: var(--hx-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.hx-portrait {
  --tone: #5ee3ff;
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--tone) 35%, transparent);
  background:
    radial-gradient(circle at 50% 28%, color-mix(in srgb, var(--tone) 34%, transparent), transparent 62%),
    linear-gradient(180deg, #121b36, #070b16);
}
.hx-portrait::after { content: ""; position: absolute; inset: auto 0 0; height: 3px; background: var(--tone); box-shadow: 0 0 12px var(--tone); }
.hx-portrait-art { position: absolute; inset: auto 0 0; width: 100%; height: 88%; fill: color-mix(in srgb, var(--tone) 14%, #04060c); }
.hx-portrait-initial { position: absolute; top: 0.4rem; right: 0.6rem; font-size: 2.5rem; font-weight: 900; line-height: 1; color: color-mix(in srgb, var(--tone) 32%, transparent); }
.hx-portrait--sm .hx-portrait-initial { font-size: 1.25rem; top: 0.2rem; right: 0.35rem; }
.hx-portrait--xl .hx-portrait-initial { font-size: 5rem; }

/* ---------- 개발 현황 ---------- */
.hx-road-note { margin: -0.75rem 0 2rem; max-width: 46rem; color: var(--hx-soft); line-height: 1.8; }
.hx-road { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.hx-road::before { content: ""; position: absolute; top: 0.45rem; left: 0; right: 0; height: 1px; background: var(--hx-line-2); }
.hx-road-step { position: relative; display: grid; align-content: start; justify-items: start; gap: 0.5rem; padding-top: 1.75rem; }
.hx-road-dot { position: absolute; top: 0; left: 0; width: 0.9rem; height: 0.9rem; border-radius: 50%; border: 2px solid var(--hx-muted); background: var(--hx-bg-2); }
.hx-road-step.is-done .hx-road-dot { border-color: var(--hx-cyan); background: var(--hx-cyan); box-shadow: 0 0 10px var(--hx-cyan); }
.hx-road-step.is-proto .hx-road-dot { border-color: var(--hx-violet); background: var(--hx-violet); box-shadow: 0 0 10px var(--hx-violet); }
.hx-road-title { font-size: 1rem; line-height: 1.45; }
.hx-road-sub { font-size: 0.8125rem; line-height: 1.6; color: var(--hx-muted); }

.hx-state { display: inline-flex; align-items: center; padding: 0.15rem 0.5rem; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.04em; white-space: nowrap; }
.hx-state--done { background: rgba(94, 227, 255, 0.16); color: var(--hx-cyan); }
.hx-state--proto { background: rgba(139, 123, 255, 0.22); color: #c4bbff; }
.hx-state--plan { background: rgba(140, 170, 255, 0.1); color: var(--hx-soft); }
.hx-state--wait { background: rgba(255, 90, 122, 0.12); color: #ff9aae; }

/* ---------- 서브 페이지: 상단 비주얼 · LNB ---------- */
.hx-sub-visual { position: relative; overflow: hidden; isolation: isolate; min-height: 19rem; display: flex; align-items: flex-end; }
.hx-sub-visual::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(5, 7, 13, 0.95) 0%, rgba(5, 7, 13, 0.6) 55%, rgba(5, 7, 13, 0.2)), linear-gradient(0deg, var(--hx-bg), transparent 40%); }
.hx-sub-visual-inner { position: relative; z-index: 2; padding-block: 3rem 2.5rem; }
.hx-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 1.25rem; font-size: 0.8125rem; color: var(--hx-muted); }
.hx-crumbs a:hover { color: var(--hx-ink); }
.hx-sub-en { margin: 0; font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.4em; color: var(--hx-cyan); }
.hx-sub-title { margin: 0.4rem 0 0; font-size: clamp(2.25rem, 5vw, 3.5rem); font-weight: 900; letter-spacing: -0.035em; line-height: 1.15; }
.hx-sub-lead { margin: 0.9rem 0 0; max-width: 44rem; color: var(--hx-soft); line-height: 1.75; }

.hx-lnb { position: sticky; top: var(--hx-head-h); z-index: 40; background: rgba(8, 12, 24, 0.95); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--hx-line); }
.hx-lnb-list { display: flex; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.hx-lnb-list::-webkit-scrollbar, .hx-tabs::-webkit-scrollbar { display: none; }
.hx-lnb-link { position: relative; display: flex; align-items: center; min-height: 56px; padding: 0 1.4rem; font-weight: 800; color: var(--hx-muted); white-space: nowrap; }
.hx-lnb-link:hover { color: var(--hx-ink); }
.hx-lnb-link.is-current { color: var(--hx-ink); }
.hx-lnb-link.is-current::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: -1px; height: 2px; background: var(--hx-cyan); box-shadow: 0 0 10px var(--hx-cyan); }

.hx-page { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(4rem, 8vw, 6rem); }
.hx-empty { display: grid; justify-items: center; gap: 1rem; padding: 3rem 1.5rem; text-align: center; color: var(--hx-soft); }

/* 뉴스 목록 */
.hx-board-tools { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.hx-board-count { margin: 0; font-size: 0.875rem; color: var(--hx-muted); }
.hx-search {
  width: min(100%, 18rem);
  min-height: 44px;
  padding: 0 1rem;
  border: 1px solid var(--hx-line-2);
  border-radius: 2px;
  background: rgba(5, 7, 13, 0.7);
  color: var(--hx-ink);
  font: inherit;
  font-size: 0.9375rem;
}
.hx-search::placeholder { color: var(--hx-muted); }
.hx-search:focus { border-color: var(--hx-cyan); outline: none; box-shadow: 0 0 0 3px rgba(94, 227, 255, 0.15); }
.hx-board-head { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr) 6rem; gap: 1rem; padding: 0.8rem 0.25rem; border-top: 2px solid var(--hx-ink); border-bottom: 1px solid var(--hx-line-2); font-size: 0.8125rem; font-weight: 700; color: var(--hx-muted); }
.hx-board-head span:nth-child(2) { text-align: left; }
.hx-board-head span:last-child { text-align: right; }
.hx-board--full .hx-board-row a { min-height: 4.25rem; padding-inline: 0.25rem; }
.hx-board--full .hx-board-title { font-size: 1.0625rem; }

/* 뉴스 본문 */
.hx-article { max-width: 54rem; margin-inline: auto; }
.hx-article-head { display: grid; justify-items: start; gap: 0.9rem; padding-bottom: 1.75rem; border-top: 2px solid var(--hx-ink); padding-top: 2rem; border-bottom: 1px solid var(--hx-line-2); }
.hx-article-title { margin: 0; font-size: clamp(1.5rem, 3vw, 2.125rem); font-weight: 900; letter-spacing: -0.02em; line-height: 1.35; }
.hx-article-meta { margin: 0; font-size: 0.875rem; color: var(--hx-muted); }
.hx-article-body { padding-block: 2rem 2.5rem; }
.hx-article-lead { margin: 0 0 1.5rem; font-size: 1.0625rem; line-height: 1.85; color: var(--hx-ink); }
.hx-article-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0; margin: 0 0 2rem; border-top: 1px solid var(--hx-line); border-left: 1px solid var(--hx-line); }
.hx-article-facts div { padding: 0.9rem 1rem; background: var(--hx-panel); border-right: 1px solid var(--hx-line); border-bottom: 1px solid var(--hx-line); }
.hx-article-facts dt { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; color: var(--hx-cyan); }
.hx-article-facts dd { margin: 0.3rem 0 0; font-size: 0.9375rem; line-height: 1.55; }
.hx-doc-h3 { position: relative; margin: 2.25rem 0 0.9rem; padding-left: 0.9rem; font-size: 1.1875rem; font-weight: 800; }
.hx-doc-h3::before { content: ""; position: absolute; left: 0; top: 0.2em; bottom: 0.2em; width: 3px; background: var(--hx-cyan); }
.hx-doc-p { margin: 0 0 1rem; color: var(--hx-soft); line-height: 1.9; }
.hx-doc-list { display: grid; gap: 0.65rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.hx-doc-list li { padding-left: 1.1rem; text-indent: -1.1rem; color: var(--hx-soft); line-height: 1.8; }
.hx-article-nav { display: grid; gap: 1.5rem; justify-items: center; }
.hx-article-nav ul { width: 100%; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hx-line-2); }
.hx-article-nav li { display: grid; grid-template-columns: 5rem minmax(0, 1fr); align-items: center; gap: 1rem; min-height: 3.5rem; border-bottom: 1px solid var(--hx-line); }
.hx-article-nav li span { font-size: 0.8125rem; color: var(--hx-muted); }
.hx-article-nav li a { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.hx-article-nav li a:hover { color: var(--hx-cyan); }
.hx-article-nav .hx-btn { min-width: 9rem; }

/* 세계관 */
.hx-world-intro { display: grid; gap: 1.5rem; padding-bottom: 3rem; border-bottom: 1px solid var(--hx-line); }
.hx-world-intro-text { margin: 0; max-width: 52rem; font-size: clamp(1.0625rem, 1.6vw, 1.25rem); line-height: 1.95; color: var(--hx-ink); }
.hx-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.hx-tags li { padding: 0.35rem 0.75rem; border: 1px solid var(--hx-line-2); font-size: 0.8125rem; font-weight: 700; color: var(--hx-soft); }
.hx-block { padding-top: clamp(3rem, 6vw, 4.5rem); scroll-margin-top: calc(var(--hx-head-h) + 72px); }
.hx-timeline { position: relative; list-style: none; margin: 0; padding: 0; }
.hx-timeline::before { content: ""; position: absolute; top: 0.5rem; bottom: 0.5rem; left: 10.5rem; width: 1px; background: linear-gradient(var(--hx-cyan), var(--hx-violet)); opacity: 0.5; }
.hx-timeline li { position: relative; display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 3rem; padding-block: 1.25rem; }
.hx-timeline li::before { content: ""; position: absolute; left: calc(10.5rem - 6px); top: 1.85rem; width: 12px; height: 12px; background: var(--hx-bg); border: 2px solid var(--hx-cyan); transform: rotate(45deg); }
.hx-timeline li.is-now::before { background: var(--hx-cyan); box-shadow: 0 0 14px var(--hx-cyan); }
.hx-tl-date { font-size: 1.5rem; font-weight: 900; letter-spacing: -0.01em; color: var(--hx-cyan); text-align: right; font-variant-numeric: tabular-nums; }
.hx-tl-title { margin: 0.15rem 0 0.4rem; font-size: 1.25rem; font-weight: 800; }
.hx-tl-body p { margin: 0; color: var(--hx-soft); line-height: 1.85; max-width: 44rem; }

.hx-regions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.hx-region { --tone: #5ee3ff; position: relative; padding: 1.75rem 1.5rem; border: 1px solid var(--hx-line); background: linear-gradient(160deg, color-mix(in srgb, var(--tone) 12%, transparent), transparent 60%), var(--hx-panel); overflow: hidden; }
.hx-region::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--tone); }
.hx-region--south { --tone: #3fd6a6; }
.hx-region--zero-zone { --tone: #8b7bff; }
.hx-region--north { --tone: #ff5a7a; }
.hx-region-step { position: absolute; right: 1rem; top: 0.6rem; font-size: 3rem; font-weight: 900; color: color-mix(in srgb, var(--tone) 22%, transparent); }
.hx-region-en { margin: 0; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.24em; color: var(--tone); }
.hx-region-name { margin: 0.5rem 0 0.75rem; font-size: 1.375rem; font-weight: 900; }
.hx-region-body { margin: 0; color: var(--hx-soft); line-height: 1.8; font-size: 0.9375rem; }

.hx-factions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.hx-faction { --tone: #dfe6ff; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.5rem 1.25rem; padding: 1.5rem; border: 1px solid var(--hx-line); background: var(--hx-panel); }
.hx-faction-mark { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); background: linear-gradient(135deg, var(--tone), color-mix(in srgb, var(--tone) 35%, #05070d)); color: #04050b; font-size: 1.125rem; font-weight: 900; }
.hx-faction-type { margin: 0; font-size: 0.75rem; font-weight: 700; color: var(--tone); }
.hx-faction-name { margin: 0.2rem 0 0.5rem; font-size: 1.25rem; font-weight: 900; }
.hx-faction-text { margin: 0; color: var(--hx-soft); line-height: 1.75; font-size: 0.9375rem; }
.hx-faction-members { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0.5rem 0 0; padding: 0; }
.hx-faction-members a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 0.7rem; border: 1px solid color-mix(in srgb, var(--tone) 40%, transparent); font-size: 0.8125rem; font-weight: 700; }
.hx-faction-members a:hover { background: color-mix(in srgb, var(--tone) 16%, transparent); }

.hx-rank-ladder { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); align-items: end; gap: 0.6rem; list-style: none; margin: 1.5rem 0 0; padding: 0; }
.hx-rank-ladder li { display: grid; align-content: end; gap: 0.5rem; }
.hx-rank-ladder b { display: grid; place-items: center; border: 1px solid var(--hx-line-2); background: linear-gradient(180deg, rgba(94, 227, 255, 0.18), rgba(139, 123, 255, 0.06)); font-size: 1.5rem; font-weight: 900; }
.hx-rank-ladder li:nth-child(1) b { height: 4rem; }
.hx-rank-ladder li:nth-child(2) b { height: 5rem; }
.hx-rank-ladder li:nth-child(3) b { height: 6rem; }
.hx-rank-ladder li:nth-child(4) b { height: 7rem; }
.hx-rank-ladder li:nth-child(5) b { height: 8rem; }
.hx-rank-ladder li:nth-child(6) b { height: 9rem; }
.hx-rank-ladder li:nth-child(7) b { height: 10rem; background: linear-gradient(180deg, #e8c37a, rgba(232, 195, 122, 0.15)); color: #04050b; }
.hx-rank-ladder li.is-marked:not(:last-child) b { border-color: var(--hx-cyan); box-shadow: inset 0 0 20px rgba(94, 227, 255, 0.25); }
.hx-rank-ladder span { min-height: 2.6em; font-size: 0.75rem; line-height: 1.4; color: var(--hx-cyan); text-align: center; font-weight: 700; }

/* 인물 페이지 */
.hx-char-tools { display: grid; gap: 1rem; margin-bottom: 1.5rem; }
.hx-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.hx-chip {
  --tone: var(--hx-ink);
  min-height: 40px;
  padding: 0 1rem;
  border: 1px solid var(--hx-line-2);
  border-radius: 2px;
  background: transparent;
  color: var(--hx-soft);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
}
.hx-chip:hover { color: var(--hx-ink); border-color: var(--tone); }
.hx-chip[aria-pressed="true"] { border-color: var(--tone); background: color-mix(in srgb, var(--tone) 16%, transparent); color: var(--hx-ink); }
.hx-char-search { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.hx-char-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.hx-stage {
  --tone: #5ee3ff;
  position: sticky;
  top: calc(var(--hx-head-h) + 1rem);
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
  gap: 1.75rem;
  padding: 1.75rem;
  border: 1px solid color-mix(in srgb, var(--tone) 30%, transparent);
  background: radial-gradient(30rem 20rem at 20% 0%, color-mix(in srgb, var(--tone) 14%, transparent), transparent 70%), var(--hx-panel);
  scroll-margin-top: calc(var(--hx-head-h) + 1rem);
}
.hx-stage-camp { margin: 0; font-size: 0.8125rem; font-weight: 700; color: var(--hx-muted); }
.hx-stage-camp span { color: var(--tone); }
.hx-stage-name { margin: 0.4rem 0 0; font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; letter-spacing: -0.03em; line-height: 1.1; }
.hx-stage-role { margin: 0.6rem 0 0; font-weight: 700; color: var(--hx-soft); line-height: 1.6; }
.hx-stage-block { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--hx-line); }
.hx-stage-block h3 { margin: 0 0 0.4rem; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.12em; color: var(--tone); }
.hx-stage-block p { margin: 0; color: var(--hx-soft); line-height: 1.85; font-size: 0.9375rem; }
.hx-name-link { color: var(--hx-ink); font-weight: 700; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--tone) 60%, transparent); text-underline-offset: 3px; }
.hx-name-link:hover { color: var(--tone); }
.hx-roster { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem; list-style: none; margin: 0; padding: 0; }
.hx-roster-btn {
  --tone: #5ee3ff;
  display: grid;
  gap: 0.15rem;
  width: 100%;
  padding: 0.5rem;
  border: 1px solid var(--hx-line);
  background: rgba(12, 18, 34, 0.7);
  color: var(--hx-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.hx-roster-btn:hover { border-color: color-mix(in srgb, var(--tone) 55%, transparent); }
.hx-roster-btn[aria-pressed="true"] { border-color: var(--tone); background: color-mix(in srgb, var(--tone) 12%, rgba(12, 18, 34, 0.9)); }
.hx-roster-btn .hx-portrait { aspect-ratio: 1; margin-bottom: 0.35rem; }
.hx-roster-name { font-weight: 800; font-size: 0.9375rem; }
.hx-roster-camp { font-size: 0.75rem; color: var(--tone); font-weight: 700; }

/* 가이드 */
.hx-guide { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 3rem; align-items: start; }
.hx-toc { position: sticky; top: calc(var(--hx-head-h) + 1.5rem); padding: 1.25rem; border: 1px solid var(--hx-line); background: var(--hx-panel); }
.hx-toc-title { margin: 0 0 0.75rem; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.2em; color: var(--hx-muted); }
.hx-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.hx-toc li { counter-increment: toc; }
.hx-toc a { display: flex; gap: 0.6rem; align-items: center; min-height: 40px; padding: 0 0.5rem; border-left: 2px solid transparent; font-size: 0.9375rem; font-weight: 600; color: var(--hx-soft); }
.hx-toc a::before { content: counter(toc, decimal-leading-zero); font-size: 0.75rem; color: var(--hx-muted); }
.hx-toc a:hover, .hx-toc a[aria-current="true"] { color: var(--hx-cyan); border-left-color: var(--hx-cyan); background: rgba(94, 227, 255, 0.05); }
.hx-doc { max-width: 52rem; }
.hx-doc-sec { padding-bottom: 2.75rem; margin-bottom: 2.75rem; border-bottom: 1px solid var(--hx-line); scroll-margin-top: calc(var(--hx-head-h) + 1.5rem); }
.hx-doc-sec:last-child { border-bottom: 0; }
.hx-doc-num { margin: 0; font-size: 0.875rem; font-weight: 900; color: var(--hx-cyan); letter-spacing: 0.1em; }
.hx-doc-h2 { margin: 0.3rem 0 1.25rem; font-size: clamp(1.5rem, 2.8vw, 2rem); font-weight: 900; letter-spacing: -0.02em; }
.hx-doc-note { margin: 1rem 0 0; padding: 0.9rem 1.1rem; border-left: 3px solid var(--hx-violet); background: rgba(139, 123, 255, 0.08); color: var(--hx-soft); font-size: 0.9375rem; line-height: 1.7; }
.hx-table-wrap { margin-top: 0.5rem; overflow-x: auto; border: 1px solid var(--hx-line); }
.hx-table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.hx-table th, .hx-table td { padding: 0.9rem 1rem; border-bottom: 1px solid var(--hx-line); text-align: left; vertical-align: top; line-height: 1.65; }
.hx-table thead th { background: var(--hx-panel-2); font-size: 0.8125rem; font-weight: 800; color: var(--hx-muted); white-space: nowrap; }
.hx-table tbody th { width: 7rem; color: var(--hx-ink); font-weight: 800; white-space: nowrap; }
.hx-table td { color: var(--hx-soft); }
.hx-table tbody tr:last-child > * { border-bottom: 0; }

/* 미디어 */
.hx-media { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.hx-media-card { display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--hx-line); background: var(--hx-panel); }
.hx-media-screen {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background:
    repeating-linear-gradient(0deg, rgba(94, 227, 255, 0.04) 0 1px, transparent 1px 4px),
    radial-gradient(circle at 50% 50%, rgba(94, 227, 255, 0.1), transparent 65%),
    #070b16;
  border-bottom: 1px solid var(--hx-line);
}
.hx-media-card.is-proto .hx-media-screen { background: repeating-linear-gradient(0deg, rgba(139, 123, 255, 0.06) 0 1px, transparent 1px 4px), radial-gradient(circle at 50% 50%, rgba(139, 123, 255, 0.26), transparent 65%), #090a1c; }
.hx-media-code { font-size: 4rem; font-weight: 900; color: rgba(140, 170, 255, 0.14); letter-spacing: -0.04em; }
.hx-media-label { position: absolute; left: 0.9rem; bottom: 0.75rem; font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.14em; color: var(--hx-muted); }
.hx-media-card.is-proto .hx-media-label { color: #c4bbff; }
.hx-media-body { display: grid; align-content: start; justify-items: start; gap: 0.6rem; padding: 1.25rem; }
.hx-media-title { margin: 0; font-size: 1.125rem; font-weight: 900; }
.hx-media-text { margin: 0; color: var(--hx-soft); line-height: 1.75; font-size: 0.9375rem; }

/* ---------- 푸터 ---------- */
.hx-footer { background: #020308; border-top: 1px solid var(--hx-line); padding-block: 3rem 2.5rem; font-size: 0.875rem; color: var(--hx-muted); }
.hx-footer-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.hx-footer-nav { display: flex; flex-wrap: wrap; gap: 0.25rem 1.75rem; }
.hx-footer-nav a { display: inline-flex; align-items: center; min-height: 40px; font-weight: 700; color: var(--hx-soft); }
.hx-footer-nav a:hover { color: var(--hx-cyan); }
.hx-footer-rating { display: flex; align-items: center; gap: 1rem; padding-block: 1.75rem; border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.hx-footer-rating p { margin: 0; line-height: 1.7; }
.hx-footer-rating strong { color: var(--hx-soft); }
.hx-rating-mark { flex: none; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #d8203f; color: #fff; font-size: 1.125rem; font-weight: 900; }
.hx-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.75rem; }
.hx-footer-brand img { display: block; width: auto; height: 2rem; opacity: 0.85; }
.hx-footer-brand:hover img { opacity: 1; }
.hx-footer-copy { margin: 0; font-size: 0.8125rem; }

/* ---------- 반응형 ---------- */
@media (max-width: 1180px) {
  .hx-gnb-nav, .hx-mega-bg { display: none !important; }
  .hx-menu-btn { display: inline-grid; }
  .hx-header-inner { justify-content: space-between; }
  .hx-char-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hx-road { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2rem; }
  .hx-media { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hx-band-inner { padding-left: 0; }
  .hx-band::before { background: linear-gradient(90deg, rgba(5, 7, 13, 0.92), rgba(5, 7, 13, 0.7)), linear-gradient(0deg, var(--hx-bg), transparent 25%, transparent 75%, var(--hx-bg-2)); }
}

@media (max-width: 900px) {
  .hx-hero-inner { grid-template-columns: 1fr; align-items: start; padding-block: 3.5rem 6rem; }
  .hx-hero-copy { align-self: start; }
  .hx-status-card { max-width: 26rem; }
  .hx-hero::before { background: linear-gradient(0deg, var(--hx-bg) 0%, rgba(5, 7, 13, 0.82) 35%, rgba(5, 7, 13, 0.45) 100%); }
  .hx-kv .hx-kv-svg { position: absolute; top: 0; left: 72%; width: auto; height: 62%; max-width: none; transform: translateX(-69%); }
  .hx-quick-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .hx-quick-item { flex-direction: column; justify-content: center; gap: 0.4rem; min-height: 5.5rem; padding: 0.75rem 0.25rem; text-align: center; }
  .hx-quick-text small { display: none; }
  .hx-quick-text strong { font-size: 0.8125rem; }
  .hx-quick-icon { width: 1.75rem; height: 1.75rem; }
  .hx-news-grid, .hx-feat, .hx-char-layout, .hx-guide { grid-template-columns: 1fr; }
  .hx-spot { min-height: 16rem; }
  .hx-feat-tabs { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; scrollbar-width: none; }
  .hx-feat-tabs::-webkit-scrollbar { display: none; }
  .hx-feat-tab { min-height: 48px; border-left-width: 1px; border-bottom: 3px solid transparent; }
  .hx-feat-tab[aria-selected="true"] { border-left-color: var(--hx-line); border-bottom-color: var(--hx-cyan); }
  .hx-feat-panel { min-height: 0; }
  .hx-era-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hx-regions, .hx-factions { grid-template-columns: 1fr; }
  .hx-stage { position: static; }
  .hx-toc { position: static; }
  .hx-guide { gap: 2rem; }
  .hx-timeline::before { left: 0.35rem; }
  .hx-timeline li { grid-template-columns: 1fr; gap: 0.4rem; padding-left: 2rem; }
  .hx-timeline li::before { left: 0; top: 1.6rem; }
  .hx-tl-date { text-align: left; font-size: 1.25rem; }
}

@media (max-width: 640px) {
  .hx-topbar-nav { gap: 0.9rem; }
  .hx-header-inner { gap: 0.75rem; }
  .hx-logo-mark { width: 2rem; height: 2rem; }
  .hx-logo-ko { font-size: 1.125rem; }
  .hx-btn--cta { display: none; }
  .hx-hero-actions .hx-btn { flex: 1; }
  .hx-hero-en { letter-spacing: 0.4em; font-size: 0.6875rem; }
  .hx-ticker-link time { display: none; }
  .hx-ticker-link .hx-cat { display: none; }
  .hx-news-board { padding: 0.25rem 1rem 0.75rem; }
  .hx-board-row a, .hx-board-head { grid-template-columns: minmax(0, 1fr) auto; gap: 0.25rem 0.75rem; }
  .hx-board-row .hx-cat { grid-column: 1 / -1; justify-self: start; min-width: 0; font-size: 0.6875rem; }
  .hx-board-row a { padding-block: 0.75rem; }
  .hx-board-title { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .hx-board-head span:first-child { display: none; }
  .hx-board-head span:nth-child(2) { text-align: left; }
  .hx-board-tools, .hx-char-search { flex-direction: column; align-items: stretch; }
  .hx-search { width: 100%; }
  .hx-road { grid-template-columns: 1fr; row-gap: 1.25rem; }
  .hx-road::before { top: 0; bottom: 0; left: 0.45rem; right: auto; width: 1px; height: auto; }
  .hx-road-step { padding: 0 0 0 2rem; }
  .hx-era-row { grid-template-columns: 1fr; }
  .hx-media { grid-template-columns: 1fr; }
  .hx-stage { grid-template-columns: 1fr; padding: 1.25rem; }
  .hx-stage-figure { max-width: 9rem; }
  .hx-char-row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 44%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.75rem; scrollbar-width: thin; }
  .hx-char-row li { scroll-snap-align: start; }
  .hx-roster { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.4rem; }
  .hx-roster-btn { padding: 0.35rem; }
  .hx-roster-name { font-size: 0.8125rem; }
  .hx-roster-camp { font-size: 0.6875rem; }
  .hx-rank-ladder { gap: 0.3rem; }
  .hx-rank-ladder b { font-size: 1.125rem; }
  .hx-rank-ladder span { font-size: 0.625rem; }
  .hx-art-slots { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hx-faction { grid-template-columns: 1fr; }
  .hx-faction-members { grid-column: 1; }
  .hx-sub-visual { min-height: 15rem; }
  .hx-lnb-link { padding: 0 1rem; }
  .hx-table tbody th { width: auto; }
  .hx-article-nav li { grid-template-columns: 4rem minmax(0, 1fr); }
  .hx-footer-rating { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .hx-gate-swirl, .hx-gate-ring, .hx-ember, .hx-pulse { animation: none; }
  .hx-ember { opacity: 0.6; }
  .hx-spot-kv .hx-kv-svg, .hx-char-card .hx-portrait { transition: none; }
}
