.home-page {
  position: relative;
  overflow-x: clip;
  background: var(--color-space-canvas);
}

.home-page::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(195, 199, 219, 0.025) 1px, transparent 1px), radial-gradient(circle at 16% 9%, rgba(168, 85, 247, 0.16) 0 1px, transparent 1.5px);
  background-size: 100% 6px, 180px 180px;
  content: "";
  opacity: 0.4;
}

.home-page > section { position: relative; z-index: 1; overflow-x: clip; }
.home-page .eyebrow { margin-bottom: var(--space-3); }
.home-page .panel { box-shadow: var(--shadow-offset), var(--shadow-inset); }
.home-page a:focus-visible { outline: 2px solid var(--color-alien-violet); outline-offset: 3px; }

.home-hero { padding-block: var(--space-9) var(--space-8); }
.hero-signal { position: absolute; top: 5rem; right: -1rem; color: transparent; font-family: var(--font-heading); font-size: clamp(5rem, 14vw, 12rem); font-weight: 650; letter-spacing: -0.08em; line-height: 0.8; -webkit-text-stroke: 1px rgba(195, 199, 219, 0.09); user-select: none; }
.home-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-6) var(--space-5); align-items: start; }
.home-hero__grid > * { min-width: 0; }
.home-hero__copy { grid-column: 1 / span 2; max-width: 43.75rem; }
.home-hero__lead { max-width: 40rem; }
.home-hero__status { margin-bottom: 0; color: var(--color-muted-silver); font-size: var(--text-small); }
.hero-artefact { grid-column: 3; width: 100%; max-width: 12rem; justify-self: end; overflow: hidden; }
.hero-artefact img, .hero-console img, .hero-landscape img { width: 100%; height: 100%; object-fit: cover; }
.hero-artefact img { aspect-ratio: 1; }
.hero-artefact figcaption, .hero-console figcaption, .hero-landscape figcaption { padding: var(--space-2) var(--space-3); border-top: 1px solid var(--border-color); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; text-transform: uppercase; }
.hero-report { grid-column: 1; width: min(100%, 22rem); }
.hero-report > :last-child, .hero-report__rows > :last-child { margin-bottom: 0; }
.hero-report__rows { display: flex; flex-direction: column; gap: var(--space-3); }
.hero-report__rows p { margin: 0; color: var(--color-muted-silver); font-size: var(--text-small); line-height: 1.5; }
.hero-report__rows span { display: block; color: var(--color-steel-silver); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; }
.hero-action { grid-column: 2; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: var(--space-3); padding-top: var(--space-3); }
.hero-action p { margin: 0; font-size: var(--text-small); }
.hero-console { grid-column: 3; grid-row: 2 / span 2; width: 100%; overflow: hidden; }
.hero-console img { aspect-ratio: 4 / 5; object-position: 50% 42%; }
.hero-landscape { grid-column: 1 / -1; width: 100%; margin: var(--space-4) 0 0; overflow: hidden; }
.hero-landscape img { aspect-ratio: 16 / 9; object-position: center 58%; }
.home-hero--ready .hero-landscape { animation: home-rise 800ms ease both; }

.home-world__grid, .home-story__grid, .home-clues__grid, .home-editorial__grid { display: grid; align-items: start; gap: var(--space-7); }
.home-world__grid { grid-template-columns: minmax(0, 8fr) minmax(17.5rem, 4fr); }
.home-world__grid > *, .home-story__grid > *, .home-clues__grid > *, .home-editorial__grid > * { min-width: 0; }
.home-world__copy { max-width: 42.5rem; }
.home-world__module { width: 100%; }
.home-world__module ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: 0 0 var(--space-4); padding: 0; }
.home-world__module li { min-width: 0; color: var(--color-muted-silver); font-size: var(--text-small); line-height: 1.45; }
.home-world__module li span { display: block; color: var(--color-alien-violet); font-family: var(--font-mono); font-size: var(--text-meta); }
.home-world__module > :last-child { margin-bottom: 0; }
.home-world__link { max-width: 38rem; margin-bottom: 0; }

.home-story__grid { grid-template-columns: minmax(0, 7fr) minmax(16.25rem, 3fr); justify-content: start; }
.home-story__copy { max-width: 40.625rem; }
.home-story__tracks { width: 100%; border-left: 1px solid var(--border-color); padding-left: var(--space-5); }
.home-story__tracks > div { padding-block: var(--space-3); border-bottom: 1px solid var(--border-color); }
.home-story__tracks span { color: var(--color-alien-violet); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; }
.home-story__tracks p { margin: var(--space-2) 0 0; color: var(--color-muted-silver); font-size: var(--text-small); line-height: 1.5; }
.home-story__link { margin-bottom: 0; }

.home-locations__blocks { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 2fr) minmax(0, 4fr); gap: var(--space-5); align-items: start; margin-top: var(--space-6); }
.home-location { min-width: 0; }
.home-location--open { grid-column: 1; max-width: 32.5rem; border-left: 1px solid var(--border-color); padding-left: var(--space-5); }
.home-location--return { grid-column: 3; max-width: 25rem; margin-top: var(--space-7); }
.home-locations__link { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-2) var(--space-4); align-items: start; width: 100%; margin-top: var(--space-7); border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); padding-block: var(--space-4); }
.home-locations__link > * { min-width: 0; }
.home-locations__link p { grid-column: 2; max-width: 45rem; margin: 0; color: var(--color-muted-silver); font-size: var(--text-small); }

.home-puzzles__intro { max-width: 42.5rem; }
.home-puzzles__warning { display: inline-block; margin-bottom: var(--space-2); color: var(--color-warning-amber); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; }
.home-puzzles__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: var(--space-6); border: 1px solid var(--border-color); }
.home-puzzles__grid > article { min-width: 0; padding: var(--space-5); border-right: 1px solid var(--border-color); }
.home-puzzles__grid > article:last-child { border-right: 0; }
.home-puzzles__grid p { font-size: var(--text-small); line-height: 1.5; }
.home-puzzles__grid > article > :last-child { margin-bottom: 0; }
.home-puzzles__guide { background: var(--color-violet-deep); }
.home-puzzles__guide a { display: inline-block; margin-top: var(--space-2); font-family: var(--font-heading); font-weight: 700; }

.home-clues__grid { grid-template-columns: minmax(0, 6fr) minmax(17.5rem, 4fr); justify-content: space-between; }
.home-clues__copy { max-width: 38.125rem; }
.home-clues__link { margin-bottom: 0; }
.home-clues__index { width: 100%; }
.home-clues__index > div { padding-block: var(--space-3); border-top: 1px solid var(--border-color); }
.home-clues__index span { color: var(--color-alien-violet); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; }
.home-clues__index p { margin: var(--space-1) 0 0; color: var(--color-muted-silver); font-size: var(--text-small); line-height: 1.5; }
.home-clues__index > :last-child { margin-bottom: 0; }

.home-beginners__intro { max-width: 42.5rem; }
.home-beginners__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.home-beginners__grid > * { display: grid; grid-template-columns: auto minmax(0, 1fr); min-width: 0; gap: var(--space-3); border: 1px solid var(--border-color); background: var(--color-inventory-panel); padding: var(--space-4); box-shadow: var(--shadow-inset); }
.home-beginners__grid article:nth-child(-n+3) { grid-column: span 2; }
.home-beginners__grid article:nth-child(4), .home-beginners__featured { grid-column: span 3; }
.home-beginners__grid span, .home-routes__grid span { color: var(--color-alien-violet); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; }
.home-beginners__grid h3 { margin-bottom: var(--space-2); font-size: 1.125rem; }
.home-beginners__grid p { margin: 0; color: var(--color-muted-silver); font-size: var(--text-small); line-height: 1.5; }
.home-beginners__featured { background: var(--color-violet-deep); color: var(--color-steel-silver); text-decoration: none; transition: border-color var(--transition-fast), transform var(--transition-fast); }
.home-beginners__featured:hover, .home-beginners__featured:focus-visible { border-color: var(--color-alien-violet); color: var(--color-steel-silver); transform: translate(1px, 1px); }

.home-routes__intro { max-width: 42.5rem; }
.home-routes__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-6); }
.home-routes__column { display: flex; flex-direction: column; min-width: 0; gap: var(--space-4); }
.home-routes__column--offset { padding-top: var(--space-7); }
.home-routes__column > a { display: grid; grid-template-columns: auto minmax(0, 1fr); min-width: 0; gap: var(--space-3); border-top: 1px solid var(--border-color); padding: var(--space-4); color: var(--color-steel-silver); text-decoration: none; transition: border-color var(--transition-fast), transform var(--transition-fast), background-color var(--transition-fast); }
.home-routes__column > a:hover, .home-routes__column > a:focus-visible { border-color: var(--color-alien-violet); background: rgba(56, 32, 79, 0.34); color: var(--color-steel-silver); transform: translate(1px, 1px); }
.home-routes__column h3 { margin-bottom: var(--space-2); }
.home-routes__column p { margin: 0; color: var(--color-muted-silver); font-size: var(--text-small); line-height: 1.5; }
.home-routes__column .home-routes__featured { border: 1px solid var(--color-alien-violet); background: var(--color-violet-deep); }

.home-editorial__grid { grid-template-columns: minmax(0, 7fr) minmax(17.5rem, 4fr); }
.home-editorial__copy { max-width: 42.5rem; }
.home-editorial__protocol { width: 100%; }
.home-editorial__status { display: inline-block; margin-bottom: var(--space-3); border: 1px solid var(--border-color); padding: var(--space-1) var(--space-2); color: var(--color-muted-silver); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; }

.home-faq__content { max-width: 48.75rem; }
.home-faq__list { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); margin-top: var(--space-5); }
.home-faq__list details { margin: 0; }
.home-faq__list details[open] { border-color: var(--color-alien-violet); background: var(--color-violet-deep); }
.home-faq__list summary { display: flex; align-items: center; justify-content: space-between; min-height: 3rem; padding: var(--space-4); }
.home-faq__list summary::after { flex: 0 0 auto; margin-left: var(--space-3); color: var(--color-alien-violet); content: "+"; font-family: var(--font-mono); }
.home-faq__list details[open] summary::after { content: "−"; }
.home-faq__list details > div { margin: 0 var(--space-4); border-top: 1px solid var(--border-color); padding-top: var(--space-4); }
.home-faq__list details > div > :last-child { margin-bottom: var(--space-4); }

.home-final { padding-block: var(--space-9); }
.home-final__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 2fr) minmax(0, 4fr); align-items: center; }
.home-final__copy { grid-column: 1; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: var(--space-4); max-width: 38.75rem; }
.home-final__copy > * { margin: 0; }
.home-final__coordinates { grid-column: 3; display: grid; grid-template-columns: auto 1fr auto; align-items: center; min-width: 0; gap: var(--space-3); color: var(--color-muted-silver); font-family: var(--font-mono); font-size: var(--text-meta); letter-spacing: 0.08em; }
.home-final__coordinates i { height: 1px; min-width: 0; background: var(--border-color); }
.home-final__coordinates b { color: var(--color-alien-violet); font-size: 1.5rem; }

@keyframes home-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 65rem) {
  .home-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .home-hero__copy { grid-column: 1; }
  .hero-artefact { grid-column: 2; grid-row: 1; justify-self: start; }
  .hero-report { grid-column: 1; }
  .hero-action { grid-column: 1; }
  .hero-console { grid-column: 2; grid-row: 2 / span 2; }
  .home-world__grid, .home-story__grid, .home-clues__grid, .home-editorial__grid { gap: var(--space-5); }
}

@media (max-width: 56.25rem) {
  .home-hero { padding-block: var(--space-8) var(--space-7); }
  .home-hero__grid, .home-world__grid, .home-story__grid, .home-clues__grid, .home-editorial__grid { grid-template-columns: minmax(0, 1fr); }
  .home-hero__copy, .hero-artefact, .hero-report, .hero-action, .hero-console, .hero-landscape { grid-column: 1; grid-row: auto; }
  .hero-artefact { max-width: 13.75rem; justify-self: start; }
  .hero-console { width: min(100%, 30rem); }
  .home-world__module, .home-story__tracks, .home-clues__index, .home-editorial__protocol { max-width: 32.5rem; }
  .home-story__tracks { border-left: 0; border-top: 1px solid var(--border-color); padding: var(--space-4) 0 0; }
  .home-locations__blocks { grid-template-columns: minmax(0, 1fr); }
  .home-location--open, .home-location--return { grid-column: 1; width: 100%; max-width: 32.5rem; margin-top: 0; }
  .home-puzzles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-puzzles__grid > article:nth-child(2) { border-right: 0; }
  .home-puzzles__grid > article:nth-child(-n+2) { border-bottom: 1px solid var(--border-color); }
  .home-beginners__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-beginners__grid article:nth-child(-n+3), .home-beginners__grid article:nth-child(4), .home-beginners__featured { grid-column: span 1; }
  .home-routes__grid { gap: var(--space-4); }
  .home-routes__column--offset { padding-top: 0; }
  .home-final__grid { grid-template-columns: minmax(0, 1fr); }
  .home-final__copy { grid-column: 1; }
  .home-final__coordinates { display: none; }
}

@media (max-width: 45rem) {
  .hero-signal { top: 3.5rem; right: -2rem; font-size: 24vw; }
  .home-hero__copy h1 { font-size: clamp(2.25rem, 10vw, 2.5rem); }
  .hero-console { width: 100%; }
  .hero-console img { aspect-ratio: 3 / 2; }
  .hero-landscape img { aspect-ratio: 4 / 3; }
  .home-world__module ul { grid-template-columns: minmax(0, 1fr); }
  .home-locations__link { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .home-locations__link p { grid-column: 1; }
  .home-puzzles__grid { grid-template-columns: minmax(0, 1fr); }
  .home-puzzles__grid > article { border-right: 0; border-bottom: 1px solid var(--border-color); }
  .home-puzzles__grid > article:last-child { border-bottom: 0; }
  .home-beginners__grid, .home-routes__grid { grid-template-columns: minmax(0, 1fr); }
  .home-beginners__grid article:nth-child(-n+3), .home-beginners__grid article:nth-child(4), .home-beginners__featured { grid-column: 1; }
  .home-routes__column { gap: var(--space-3); }
}

@media (max-width: 26.25rem) {
  .home-beginners__grid > *, .home-routes__column > a { grid-template-columns: minmax(0, 1fr); }
  .home-beginners__grid > * > span, .home-routes__column > a > span { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero--ready .hero-landscape { animation: none; }
}
