@import url("https://fonts.googleapis.com/css2?family=Anton&family=Inter:wght@400;600;700;800;900&display=swap");

:root {
  --h5-bg: #050505;
  --h5-panel: #101010;
  --h5-panel-soft: #171717;
  --h5-line: rgba(255, 255, 255, 0.14);
  --h5-line-strong: rgba(255, 255, 255, 0.28);
  --h5-text: #f7f7f2;
  --h5-muted: #a2a29a;
  --h5-muted-2: #71716b;
  --h5-lime: #d8ff5d;
  --h5-cream: #f5efe0;
  --h5-orange: #ff9f1c;
  --h5-danger: #ff5d5d;
  --h5-radius: 10px;
  --h5-ease: cubic-bezier(0.19, 1, 0.22, 1);
}

html {
  scroll-behavior: smooth;
}

body.h5-subpage {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  color: var(--h5-text);
  font-family: "Inter", "PingFang SC", "Microsoft YaHei", sans-serif;
  background:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    radial-gradient(circle at 82% 8%, rgba(216, 255, 93, 0.16), transparent 30%),
    radial-gradient(circle at 14% 88%, rgba(255, 159, 28, 0.12), transparent 28%),
    var(--h5-bg) !important;
  background-size: 32px 32px, 32px 32px, auto, auto, auto !important;
  -webkit-font-smoothing: antialiased;
}

body.h5-subpage::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.08), transparent 38%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 24%);
}

body.h5-subpage a {
  color: var(--h5-cream);
  text-decoration: none;
}

body.h5-subpage .wrap,
body.h5-subpage .header,
body.h5-subpage .page,
body.h5-subpage .screen {
  position: relative;
}

body.h5-directory .wrap,
body.h5-directory .header {
  width: min(1120px, calc(100% - 24px));
  margin-inline: auto;
}

body.h5-directory .wrap {
  padding: clamp(16px, 4vw, 42px) 0 34px;
}

body.h5-directory .header {
  padding: clamp(20px, 5vw, 44px) 0 10px;
  text-align: left;
}

body.h5-directory .top,
body.h5-directory .header,
body.h5-flow .hero,
body.h5-game #startScreen,
body.h5-placeholder main {
  overflow: hidden;
  border: 1px solid var(--h5-line);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(216, 255, 93, 0.075), transparent 32%),
    rgba(12, 12, 12, 0.92);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 20px 70px rgba(0, 0, 0, 0.42);
}

body.h5-directory .top,
body.h5-flow .hero {
  padding: clamp(18px, 5vw, 38px) !important;
}

body.h5-directory .top a,
body.h5-flow .hero-back,
body.h5-flow .hero a,
body.h5-game .back-link,
body.h5-directory .back-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 32px;
  margin-bottom: 14px;
  border: 1px solid var(--h5-line);
  border-radius: 999px;
  padding: 0 10px;
  color: var(--h5-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  transition: transform 0.22s var(--h5-ease), color 0.22s var(--h5-ease), border-color 0.22s var(--h5-ease);
}

body.h5-directory .top a:hover,
body.h5-flow .hero-back:hover,
body.h5-flow .hero a:hover,
body.h5-game .back-link:hover,
body.h5-directory .back-link:hover {
  color: var(--h5-lime);
  border-color: var(--h5-lime);
  transform: translate3d(4px, 0, 0);
}

body.h5-directory h1,
body.h5-directory .logo,
body.h5-flow .hero-title,
body.h5-flow .hero h1,
body.h5-game .logo,
body.h5-placeholder h1 {
  color: var(--h5-cream) !important;
  font-family: "Anton", "Impact", "Arial Black", "PingFang SC", sans-serif;
  font-size: clamp(42px, 8vw, 96px) !important;
  font-weight: 900 !important;
  line-height: 0.9 !important;
  letter-spacing: -0.045em !important;
  text-transform: uppercase;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

body.h5-flow .hero-title,
body.h5-game .logo {
  font-size: clamp(42px, 12vw, 72px) !important;
}

body.h5-directory .sub,
body.h5-directory .subtitle,
body.h5-flow .hero-sub,
body.h5-flow .hero-meta,
body.h5-game .subtitle,
body.h5-game .info-card p,
body.h5-placeholder p {
  color: var(--h5-muted) !important;
  line-height: 1.72;
}

body.h5-directory .grid,
body.h5-directory .portal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}

body.h5-subpage .card,
body.h5-subpage .portal-card,
body.h5-subpage .question-card,
body.h5-subpage .info-card,
body.h5-subpage .result-item,
body.h5-subpage .dim,
body.h5-subpage .group-card,
body.h5-subpage .side-card {
  border: 1px solid var(--h5-line) !important;
  border-radius: var(--h5-radius) !important;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)) !important;
  box-shadow: none !important;
  transition:
    transform 0.36s var(--h5-ease),
    border-color 0.36s var(--h5-ease),
    background 0.36s var(--h5-ease),
    box-shadow 0.36s var(--h5-ease);
}

body.h5-subpage a.card:hover,
body.h5-subpage a.portal-card:hover,
body.h5-subpage .card[data-motion]:hover,
body.h5-subpage .result-item:hover,
body.h5-subpage .group-card:hover {
  transform: translate3d(0, -4px, 0);
  border-color: var(--h5-line-strong) !important;
  background:
    linear-gradient(145deg, rgba(216, 255, 93, 0.075), rgba(255, 255, 255, 0.02)) !important;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.28) !important;
}

body.h5-subpage .name,
body.h5-subpage .card-title,
body.h5-subpage .result-level,
body.h5-subpage .question-title,
body.h5-subpage .q-text,
body.h5-subpage .card-label,
body.h5-subpage .type-name,
body.h5-subpage .beast-name,
body.h5-subpage .result-name,
body.h5-subpage .title-row .name {
  color: var(--h5-cream) !important;
}

body.h5-subpage .meta,
body.h5-subpage .desc,
body.h5-subpage .card-desc,
body.h5-subpage .meta-line,
body.h5-subpage .q-scene,
body.h5-subpage .q-dim,
body.h5-subpage .progress-info,
body.h5-subpage .pi,
body.h5-subpage .result-desc,
body.h5-subpage .result-note,
body.h5-subpage .desc-text,
body.h5-subpage .sub {
  color: var(--h5-muted) !important;
}

body.h5-subpage .btn,
body.h5-subpage .btn-primary,
body.h5-subpage .btn-secondary,
body.h5-subpage .btn-outline,
body.h5-subpage button,
body.h5-subpage .card-cta {
  border-radius: 8px !important;
  font-weight: 900 !important;
  transition:
    transform 0.28s var(--h5-ease),
    border-color 0.28s var(--h5-ease),
    background 0.28s var(--h5-ease),
    color 0.28s var(--h5-ease) !important;
}

body.h5-subpage .btn-primary,
body.h5-subpage .btn.submit {
  border: 1px solid var(--h5-lime) !important;
  background: var(--h5-lime) !important;
  color: #070707 !important;
  box-shadow: none !important;
}

body.h5-subpage .btn-secondary,
body.h5-subpage .btn-outline,
body.h5-subpage .btn:not(.submit),
body.h5-subpage .skip-btn {
  border: 1px solid var(--h5-line) !important;
  background: rgba(255, 255, 255, 0.035) !important;
  color: var(--h5-cream) !important;
  box-shadow: none !important;
}

body.h5-subpage button:hover,
body.h5-subpage .btn:hover,
body.h5-subpage .btn-primary:hover,
body.h5-subpage .btn-secondary:hover,
body.h5-subpage .btn-outline:hover {
  transform: translate3d(0, -2px, 0) scale(1.01);
  border-color: var(--h5-lime) !important;
}

body.h5-subpage button:active,
body.h5-subpage .btn:active,
body.h5-subpage .btn-primary:active,
body.h5-subpage .btn-secondary:active,
body.h5-subpage .btn-outline:active {
  transform: translate3d(0, 1px, 0) scale(0.985);
}

body.h5-subpage .progress-bar,
body.h5-subpage .progress .track,
body.h5-subpage .bar,
body.h5-subpage .track,
body.h5-subpage .dim-track {
  background: rgba(255, 255, 255, 0.08) !important;
}

body.h5-subpage .progress-fill,
body.h5-subpage .fill,
body.h5-subpage .dim-fill,
body.h5-subpage .dim-fill-pos,
body.h5-subpage .dim-fill-neg {
  background: linear-gradient(90deg, var(--h5-lime), var(--h5-cream)) !important;
  transition: width 0.82s var(--h5-ease), stroke-dashoffset 1.1s var(--h5-ease) !important;
}

body.h5-subpage .q-option,
body.h5-subpage .opt,
body.h5-game .option-btn {
  border: 1px solid var(--h5-line) !important;
  border-radius: var(--h5-radius) !important;
  background: rgba(255, 255, 255, 0.03) !important;
  transition:
    transform 0.26s var(--h5-ease),
    border-color 0.26s var(--h5-ease),
    background 0.26s var(--h5-ease) !important;
}

body.h5-subpage .q-option:hover,
body.h5-subpage .opt:hover,
body.h5-game .option-btn:hover {
  transform: translate3d(6px, 0, 0);
  border-color: var(--h5-lime) !important;
}

body.h5-subpage .q-option.selected,
body.h5-subpage .opt.sel {
  border-color: var(--h5-lime) !important;
  background: rgba(216, 255, 93, 0.1) !important;
}

body.h5-subpage .q-option.selected .dot {
  border-color: var(--h5-lime) !important;
  background: var(--h5-lime) !important;
}

body.h5-game .option-btn.correct {
  border-color: var(--h5-lime) !important;
  background: rgba(216, 255, 93, 0.12) !important;
}

body.h5-game .option-btn.wrong {
  border-color: var(--h5-danger) !important;
  background: rgba(255, 93, 93, 0.12) !important;
}

body.h5-flow .page {
  max-width: 560px !important;
  padding: max(16px, env(safe-area-inset-top)) 16px max(86px, env(safe-area-inset-bottom)) !important;
}

body.h5-flow .page.active {
  animation: h5-page-slide 0.72s var(--h5-ease) both;
}

body.h5-flow .hero {
  margin: 10px 0 16px;
}

body.h5-flow .type-scroll,
body.h5-flow .beast-scroll,
body.h5-flow .hero-icons {
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  animation: h5-soft-float 3.6s var(--h5-ease) infinite alternate;
}

body.h5-flow .test-nav,
body.h5-flow .nav,
body.h5-flow .actions,
body.h5-flow .act,
body.h5-flow .modal-actions {
  gap: 10px !important;
}

body.h5-flow .radar-wrap svg {
  max-width: min(280px, 88vw) !important;
}

body.h5-game .screen {
  width: 100%;
  padding: max(18px, env(safe-area-inset-top)) 14px max(24px, env(safe-area-inset-bottom)) !important;
}

body.h5-game .screen.active {
  animation: h5-page-slide 0.72s var(--h5-ease) both;
}

body.h5-game #startScreen {
  min-height: calc(100vh - 28px) !important;
  width: min(760px, calc(100% - 24px));
  margin: 14px auto;
}

body.h5-game .quiz-header,
body.h5-game .question-card,
body.h5-game .options-grid {
  max-width: 560px !important;
}

body.h5-game .q-mark {
  border-color: var(--h5-lime) !important;
  color: var(--h5-lime) !important;
}

body.h5-game .score-num,
body.h5-game .stat-val,
body.h5-game .timer,
body.h5-directory .diff,
body.h5-directory .badge,
body.h5-subpage .tag,
body.h5-subpage .tag-good,
body.h5-subpage .pill,
body.h5-subpage .dim-label,
body.h5-subpage .card-label {
  color: var(--h5-lime) !important;
}

body.h5-subpage .tag,
body.h5-subpage .pill {
  border-color: var(--h5-line) !important;
  background: rgba(216, 255, 93, 0.055) !important;
}

body.h5-subpage .modal-mask {
  backdrop-filter: blur(12px);
}

body.h5-subpage .modal-body {
  border: 1px solid var(--h5-line) !important;
  border-radius: var(--h5-radius) !important;
  background: rgba(14, 14, 14, 0.96) !important;
}

body.h5-subpage .modal-body textarea,
body.h5-subpage input {
  border: 1px solid var(--h5-line) !important;
  border-radius: var(--h5-radius) !important;
  background: rgba(255, 255, 255, 0.04) !important;
  color: var(--h5-text) !important;
}

body.h5-subpage .icp,
body.h5-subpage .icp-footer {
  position: static !important;
  display: block;
  margin: 22px auto 0;
  transform: none !important;
  color: var(--h5-muted-2) !important;
  text-align: center;
  white-space: normal !important;
}

body.h5-subpage .icp a,
body.h5-subpage .icp-footer a {
  color: var(--h5-muted) !important;
}

body.h5-placeholder {
  display: grid !important;
  place-items: center !important;
  padding: 18px;
}

body.h5-placeholder main {
  width: min(680px, 100%);
  padding: clamp(24px, 7vw, 58px);
  text-align: center;
}

body.h5-placeholder p {
  margin-top: 12px;
}

body.h5-placeholder .button-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}

body.h5-placeholder .btn-primary,
body.h5-placeholder .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 14px;
}

body.h5-game svg [fill="#6c5ce7"],
body.h5-game svg [fill="#00cec9"],
body.h5-game svg [fill="#fd79a8"],
body.h5-game svg [fill="#00b894"],
body.h5-game svg [fill="#e17055"],
body.h5-game svg [fill="#fdcb6e"] {
  fill: var(--h5-lime);
}

body.h5-game svg [stroke="#6c5ce7"],
body.h5-game svg [stroke="#00cec9"],
body.h5-game svg [stroke="#fd79a8"],
body.h5-game svg [stroke="#00b894"],
body.h5-game svg [stroke="#e17055"],
body.h5-game svg [stroke="#fdcb6e"] {
  stroke: var(--h5-lime);
}

body.h5-home .content-panel {
  animation: h5-shell-enter 0.92s var(--h5-ease) both;
}

body.h5-home .showcase {
  animation: h5-preview-float 5.2s var(--h5-ease) infinite alternate;
}

body.h5-home .preview-main::before {
  content: "";
  position: absolute;
  inset: -40% 0 auto;
  z-index: 2;
  height: 42%;
  pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(216, 255, 93, 0.12), transparent);
  mix-blend-mode: screen;
  animation: h5-scan 4.8s var(--h5-ease) infinite;
}

body.h5-home .nav-dot.active {
  animation: h5-nav-pulse 2.4s var(--h5-ease) infinite;
}

html.motion-ready [data-motion] {
  opacity: 0;
  transform: translate3d(0, 34px, 0);
  transition:
    opacity 0.78s var(--h5-ease),
    transform 0.78s var(--h5-ease);
  transition-delay: var(--motion-delay, 0ms);
  will-change: opacity, transform;
}

html.motion-ready [data-motion="left"] {
  transform: translate3d(-38px, 0, 0);
}

html.motion-ready [data-motion="right"] {
  transform: translate3d(38px, 0, 0);
}

html.motion-ready [data-motion="pop"] {
  transform: translate3d(0, 24px, 0) scale(0.965);
}

html.motion-ready [data-motion].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

@keyframes h5-shell-enter {
  from {
    opacity: 0;
    transform: translate3d(0, 22px, 0) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes h5-page-slide {
  from {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes h5-soft-float {
  from {
    transform: translate3d(-3px, 0, 0);
  }
  to {
    transform: translate3d(3px, -6px, 0);
  }
}

@keyframes h5-preview-float {
  from {
    transform: translate3d(0, 0, 0) rotate(-0.35deg);
  }
  to {
    transform: translate3d(0, -8px, 0) rotate(0.35deg);
  }
}

@keyframes h5-scan {
  0% {
    transform: translate3d(0, -40%, 0);
    opacity: 0;
  }
  20%,
  70% {
    opacity: 1;
  }
  100% {
    transform: translate3d(0, 320%, 0);
    opacity: 0;
  }
}

@keyframes h5-nav-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(216, 255, 93, 0);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(216, 255, 93, 0.12);
  }
}

@media (max-width: 860px) {
  body.h5-directory .grid,
  body.h5-directory .portal-grid,
  body.h5-subpage .group-cards,
  body.h5-subpage .dims,
  body.h5-subpage .vs {
    grid-template-columns: 1fr !important;
  }

  body.h5-directory .wrap,
  body.h5-directory .header {
    width: min(100% - 18px, 680px);
  }

  body.h5-directory .top,
  body.h5-directory .header,
  body.h5-flow .hero,
  body.h5-subpage .card,
  body.h5-subpage .question-card,
  body.h5-subpage .info-card {
    border-radius: 14px !important;
  }

  body.h5-directory .top,
  body.h5-flow .hero {
    padding: 18px !important;
  }

  body.h5-flow .test-nav,
  body.h5-flow .nav,
  body.h5-flow .modal-actions,
  body.h5-subpage .actions,
  body.h5-subpage .act {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  body.h5-subpage .btn,
  body.h5-subpage .btn-primary,
  body.h5-subpage .btn-secondary,
  body.h5-subpage .btn-outline,
  body.h5-subpage button {
    width: 100% !important;
    max-width: none !important;
    min-height: 44px;
  }

  body.h5-flow .type-scroll,
  body.h5-flow .beast-scroll,
  body.h5-flow .hero-icons {
    white-space: normal;
    letter-spacing: 3px !important;
  }
}

@media (max-width: 480px) {
  body.h5-directory .wrap {
    padding-top: 10px;
  }

  body.h5-directory h1,
  body.h5-directory .logo,
  body.h5-flow .hero-title,
  body.h5-flow .hero h1,
  body.h5-game .logo,
  body.h5-placeholder h1 {
    font-size: clamp(38px, 15vw, 62px) !important;
  }

  body.h5-game .options-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body.h5-game .option-btn {
    min-height: 64px !important;
    padding: 8px !important;
  }

  body.h5-game .option-btn svg,
  body.h5-game .question-visual svg {
    width: 42px !important;
    height: 42px !important;
  }

  body.h5-game .score-ring {
    width: 150px !important;
    height: 150px !important;
  }
}

@media (max-width: 350px) {
  body.h5-game .options-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }

  html.motion-ready [data-motion] {
    opacity: 1 !important;
    transform: none !important;
  }
}
