.home-page {
  overflow: hidden;
  background: var(--color-ink);
}

.home-page > section {
  position: relative;
}

.home-page > section::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  content: "";
  opacity: 0.025;
  background-image: radial-gradient(rgba(232, 231, 225, 0.7) 0.55px, transparent 0.75px);
  background-size: 5px 5px;
}

.home-page > section > * {
  position: relative;
  z-index: 1;
}

.home-hero {
  min-height: 42.5rem;
  isolation: isolate;
  background: var(--color-moss);
}

.home-hero__visual {
  position: absolute;
  inset: 0 0 0 33%;
  z-index: 0;
  overflow: hidden;
}

/* The page-wide section layer rule also matches this element.  Restore the
   hero visual to an absolute background so its image cannot take up layout
   space and push the hero panel below the fold. */
.home-page > .home-hero > .home-hero__visual {
  position: absolute;
  z-index: 0;
}

.home-hero__visual::after {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(9, 11, 15, 0.31);
}

.home-hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.home-hero__container {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-5);
  min-height: 42.5rem;
  align-items: center;
  z-index: 1;
}

.home-hero__panel {
  grid-column: 1 / span 6;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  min-width: 0;
  max-width: 46rem;
  padding: var(--space-8) var(--space-7);
  border: 1px solid var(--color-line);
  background: rgba(9, 11, 15, 0.82);
}

.home-hero__panel > * { margin: 0; }

.home-hero__meta,
.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.home-hero__lead { max-width: 44rem; }
.home-hero__primary { border-color: var(--color-brass); background: var(--color-ink); }
.home-hero__primary:hover { background: var(--color-moss); border-color: var(--color-electric-cobalt); }
.home-hero__secondary { font-size: var(--text-meta); font-weight: 600; }

.home-facts-section { padding-block: var(--space-5); background: var(--color-ink); }
.home-facts-section::before { display: none; }
.home-page__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; }
.home-page__facts > li { min-width: 0; padding: var(--space-4); white-space: normal; }
.home-page__facts > li + li::before { flex: 0 0 4px; }
.home-page__facts strong,
.home-page__facts small { display: block; }
.home-page__facts strong { color: var(--color-ivory); font-size: var(--text-meta); font-weight: 600; }
.home-page__facts small { margin-top: var(--space-1); color: var(--color-ash); font-size: var(--text-micro); }
.home-fact__index { color: var(--color-brass); font-size: var(--text-micro); font-variant-numeric: tabular-nums; font-weight: 600; letter-spacing: 0.12em; }

.home-idea__grid,
.home-table__grid,
.home-occasions__grid,
.home-setting__grid,
.home-standard__grid,
.home-cta__grid,
.home-epilogue__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-5);
}

.home-idea__main { grid-column: 2 / span 7; min-width: 0; max-width: 52rem; }
.home-idea__copy { max-width: 52rem; }
.home-idea__aside { grid-column: 9 / span 4; align-self: start; min-width: 0; margin-top: var(--space-7); }
.home-idea__aside > :last-child { margin-bottom: 0; }
.home-idea__callout { max-width: 30rem; margin-top: var(--space-7); }
.home-idea__callout blockquote { margin-bottom: var(--space-4); }

.home-editorial-link {
  display: inline-block;
  color: var(--color-ivory);
  font-size: var(--text-meta);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(109, 124, 255, 0.68);
  text-underline-offset: 0.2em;
}
.home-editorial-link span { display: inline-block; transition: transform var(--transition-base); }
.home-editorial-link:hover span { transform: translateX(4px); }

.home-routes__intro { width: 41.667%; min-width: 0; max-width: 34rem; }
.home-routes__list { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; width: 75%; margin-top: var(--space-8); margin-left: 16.667%; }
.home-route { display: grid; grid-template-columns: minmax(2rem, 1fr) minmax(0, 6fr) minmax(13rem, 3fr); gap: var(--space-5); min-width: 0; padding: var(--space-6) 0; border-top: 1px solid var(--color-line); transition: border-color var(--transition-base); }
.home-route:last-child { border-bottom: 1px solid var(--color-line); }
.home-route:hover { border-color: var(--color-line-strong); }
.home-route__index { min-width: 0; color: var(--color-brass); font-size: var(--text-meta); font-variant-numeric: tabular-nums; font-weight: 600; letter-spacing: 0.12em; }
.home-route__copy { min-width: 0; max-width: 38rem; }
.home-route__copy h3 a { text-decoration: none; }
.home-route__copy h3 a:hover { color: var(--color-electric-cobalt); }
.home-route__action { display: flex; flex-direction: column; align-items: flex-end; align-self: center; gap: var(--space-4); min-width: 0; text-align: right; }
.home-route__action > * { min-width: 0; }

.home-table__figure { grid-column: 1 / span 7; min-width: 0; align-self: start; margin: 0; aspect-ratio: 4 / 3; }
.home-table__panel { grid-column: 7 / span 6; z-index: 1; min-width: 0; max-width: 34rem; margin-top: var(--space-7); margin-left: calc(var(--space-7) * -1); background: var(--color-ink); }
.home-table__panel > :last-child { margin-bottom: 0; }
.home-table__lead { max-width: 34rem; }
.home-table__details { display: grid; gap: 0; margin: var(--space-6) 0; }
.home-table__details > div { min-width: 0; padding: var(--space-4) 0; border-top: 1px solid var(--color-line); }
.home-table__details > div:last-child { border-bottom: 1px solid var(--color-line); }
.home-table__details dt { color: var(--color-brass); font-size: var(--text-micro); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.home-table__details dd { margin: var(--space-2) 0 0; color: var(--color-ash); font-size: var(--text-meta); line-height: 1.55; }

.home-occasions__header { grid-column: 1 / span 6; min-width: 0; max-width: 42rem; }
.home-occasions__notes { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; margin-top: var(--space-7); }
.home-occasion-note { min-width: 0; padding: 0 var(--space-5); border-left: 1px solid var(--color-line); }
.home-occasion-note:first-child { padding-left: 0; border-left: 0; }
.home-occasion-note:nth-child(2) { margin-top: var(--space-5); }
.home-occasion-note:nth-child(3) { margin-top: var(--space-6); }
.home-occasion-note h3 { max-width: 19rem; }
.home-occasion-note p { max-width: 28rem; }
.home-occasions__bridge { grid-column: 5 / span 6; min-width: 0; max-width: 38rem; margin-top: var(--space-7); }

.home-setting__intro { grid-column: 1 / span 5; min-width: 0; max-width: 40rem; }
.home-setting__figure { grid-column: 7 / span 6; min-width: 0; margin: 0; }
.home-setting__figure img { aspect-ratio: 4 / 3; object-fit: cover; }
.home-setting__comparison { grid-column: 2 / span 10; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; margin-top: var(--space-7); padding: var(--space-6); background: var(--color-moss); }
.home-setting__entry { min-width: 0; padding: 0 var(--space-6); }
.home-setting__entry:first-child { padding-left: 0; border-right: 1px solid var(--color-line-strong); }
.home-setting__entry:last-child { padding-right: 0; }
.home-setting__entry p { max-width: 30rem; }
.home-setting__note { grid-column: 2 / span 6; min-width: 0; max-width: 36rem; margin-top: var(--space-6); }

.home-standard { border-block: 1px solid var(--color-line); }
.home-standard__intro { grid-column: 1 / span 6; min-width: 0; max-width: 40rem; }
.home-standard__list { grid-column: 2 / span 10; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; margin-top: var(--space-7); }
.home-standard__item { min-width: 0; padding: 0 var(--space-5); border-left: 1px solid var(--color-line); }
.home-standard__item:first-child { padding-left: 0; border-left: 0; }
.home-standard__item:last-child { padding-right: 0; }
.home-standard__number { display: block; margin-bottom: var(--space-4); color: var(--color-brass); font-family: var(--font-heading); font-size: clamp(2rem, 3vw, 3.25rem); line-height: 0.9; }
.home-standard__item p { max-width: 25rem; }
.home-standard__closing { grid-column: 7 / span 5; min-width: 0; max-width: 34rem; margin-top: var(--space-7); }

.home-cta { padding-top: var(--space-10); padding-bottom: 7rem; }
.home-cta__panel { grid-column: 3 / span 8; display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; padding: 3.5rem; }
.home-cta__panel > * { margin: 0; }
.home-cta__panel h2,
.home-cta__panel > p { max-width: 42rem; }
.home-cta__actions { display: flex; align-items: center; gap: var(--space-5); min-width: 0; margin-top: var(--space-2); }
.home-cta__primary { flex: 0 0 auto; border-color: var(--color-brass); background: var(--color-ink); }
.home-cta__primary:hover { border-color: var(--color-electric-cobalt); background: var(--color-cobalt-night); }
.home-cta__links { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: var(--space-3) var(--space-5); min-width: 0; }
.home-cta__links a { font-size: var(--text-meta); }

.home-epilogue { padding-block: var(--space-8); }
.home-epilogue__note { grid-column: 3 / span 6; min-width: 0; max-width: 36rem; }
.home-epilogue__rule { width: calc(100% + 10rem); max-width: 100%; height: 1px; margin-bottom: var(--space-4); background: var(--color-brass); }
.home-epilogue__note .metadata { display: block; margin-bottom: var(--space-3); color: var(--color-brass); }

[data-reveal] { opacity: 0; transform: translateY(10px); transition: opacity 220ms ease, transform 220ms ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1023px) {
  .home-hero { min-height: 38rem; }
  .home-hero__container { grid-template-columns: repeat(8, minmax(0, 1fr)); min-height: 38rem; }
  .home-hero__visual { inset-left: 38%; }
  .home-hero__panel { grid-column: 1 / span 5; padding: var(--space-6); }
  .home-idea__grid, .home-table__grid, .home-occasions__grid, .home-setting__grid, .home-standard__grid, .home-cta__grid, .home-epilogue__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .home-idea__main { grid-column: 1 / span 5; }
  .home-idea__aside { grid-column: 6 / span 3; padding: var(--space-5); }
  .home-routes__intro { width: 62.5%; }
  .home-routes__list { width: 100%; margin-left: 0; }
  .home-route { grid-template-columns: 3rem minmax(0, 1fr); }
  .home-route__action { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; text-align: left; }
  .home-table__figure { grid-column: 1 / span 5; }
  .home-table__panel { grid-column: 5 / span 4; margin-left: calc(var(--space-5) * -1); }
  .home-occasions__header { grid-column: 1 / span 5; }
  .home-occasions__notes { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-6); }
  .home-occasion-note:nth-child(3) { margin-top: 0; padding-left: 0; border-left: 0; }
  .home-occasions__bridge { grid-column: 3 / span 5; }
  .home-setting__intro { grid-column: 1 / span 4; }
  .home-setting__figure { grid-column: 5 / span 4; }
  .home-setting__comparison { grid-column: 1 / -1; }
  .home-setting__note { grid-column: 2 / span 5; }
  .home-standard__intro { grid-column: 1 / span 5; }
  .home-standard__list { grid-column: 1 / -1; }
  .home-standard__closing { grid-column: 4 / span 5; }
  .home-cta__panel { grid-column: 2 / span 6; }
  .home-epilogue__note { grid-column: 2 / span 5; }
}

@media (max-width: 759px) {
  .home-page > section::before { opacity: 0.018; }
  .home-hero { display: flex; flex-direction: column; min-height: 0; padding-top: 25rem; }
  .home-hero__visual { inset: 0 0 auto; height: 25rem; }
  .home-hero__visual::after { background: rgba(9, 11, 15, 0.22); }
  .home-hero__container { display: block; min-height: 0; }
  .home-hero__panel { width: 100%; max-width: 34rem; padding: var(--space-5); transform: none; }
  .home-hero__panel .display { font-size: clamp(3.1rem, 14vw, 3.8rem); line-height: 0.96; }
  .home-hero__lead { font-size: 1.08rem; }
  .home-hero__actions { align-items: flex-start; flex-direction: column; }
  .home-facts-section { padding-block: var(--space-4); }
  .home-page__facts { display: flex; margin-right: calc(var(--container-inline) * -1); padding-right: var(--container-inline); overflow-x: auto; scroll-snap-type: x proximity; }
  .home-page__facts::after { position: sticky; right: 0; width: 1.5rem; content: ""; background: linear-gradient(90deg, transparent, var(--color-ink)); }
  .home-page__facts > li { flex: 0 0 clamp(10.75rem, 55vw, 13rem); scroll-snap-align: start; }
  .home-idea__grid, .home-table__grid, .home-occasions__grid, .home-setting__grid, .home-standard__grid, .home-cta__grid, .home-epilogue__grid { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--space-5); }
  .home-idea__main, .home-idea__aside, .home-table__figure, .home-table__panel, .home-occasions__header, .home-occasions__notes, .home-occasions__bridge, .home-setting__intro, .home-setting__figure, .home-setting__comparison, .home-setting__note, .home-standard__intro, .home-standard__list, .home-standard__closing, .home-cta__panel, .home-epilogue__note { grid-column: 1; width: 100%; max-width: 34rem; margin: 0; }
  .home-idea__callout { max-width: none; margin-top: var(--space-6); }
  .home-idea__aside { padding: var(--space-5); }
  .home-routes__intro, .home-routes__list { width: 100%; max-width: 34rem; margin-left: 0; }
  .home-routes__list { margin-top: var(--space-6); }
  .home-route { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); padding-block: var(--space-5); }
  .home-route__index { grid-row: 1; }
  .home-route__copy { grid-row: 2; max-width: none; }
  .home-route__action { grid-column: 1; grid-row: 3; align-items: flex-start; flex-direction: column; gap: var(--space-3); }
  .home-table__figure { aspect-ratio: 4 / 3; }
  .home-table__panel { padding: var(--space-5); }
  .home-table__lead { max-width: none; font-size: 1.08rem; }
  .home-occasions__notes, .home-standard__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); margin-top: var(--space-5); }
  .home-occasion-note, .home-occasion-note:first-child, .home-occasion-note:nth-child(2), .home-occasion-note:nth-child(3) { margin: 0; padding: var(--space-5) 0 0; border-top: 1px solid var(--color-line); border-left: 0; }
  .home-occasion-note p { max-width: none; }
  .home-occasions__bridge { margin-top: var(--space-2); }
  .home-setting__figure { order: 2; }
  .home-setting__comparison { display: grid; grid-template-columns: minmax(0, 1fr); padding: var(--space-5); }
  .home-setting__entry, .home-setting__entry:first-child, .home-setting__entry:last-child { padding: 0; border: 0; }
  .home-setting__entry + .home-setting__entry { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--color-line); }
  .home-setting__entry p { max-width: none; }
  .home-standard__item, .home-standard__item:first-child, .home-standard__item:last-child { padding: var(--space-5) 0 0; border-top: 1px solid var(--color-line); border-left: 0; }
  .home-standard__item p { max-width: none; }
  .home-standard__closing { margin-top: var(--space-2); }
  .home-cta { padding-top: var(--space-8); padding-bottom: var(--space-8); }
  .home-cta__panel { padding: var(--space-5); }
  .home-cta__actions { align-items: stretch; flex-direction: column; }
  .home-cta__primary { width: 100%; }
  .home-cta__links { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .home-epilogue { padding-block: var(--space-7); }
  .home-epilogue__rule { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; }
  .home-editorial-link span { transition: none; }
  .home-editorial-link:hover span { transform: none; }
}
