.home-page {
  overflow: clip;
}

.home-page a:not(.button) {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.28em;
}

.home-page [data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 360ms ease, transform 360ms ease, border-color var(--transition-fast);
}

.home-page [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.home-hero {
  position: relative;
  display: grid;
  min-height: 47.5rem;
  overflow: clip;
  background: var(--color-violet-base);
}

.home-hero__image,
.home-hero__wash,
.home-hero__container {
  grid-area: 1 / 1;
}

.home-hero__image {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: 800px;
  object-fit: cover;
  object-position: center top;
}

.home-hero__wash {
  pointer-events: none;
  background: linear-gradient(180deg, rgb(8 7 13 / 4%) 22%, rgb(8 7 13 / 24%) 48%, rgb(8 7 13 / 88%) 100%);
}

.home-hero__container {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  align-items: flex-end;
  justify-content: flex-end;
  padding-block: var(--space-8);
}

.home-hero__panel {
  display: flex;
  width: min(35.5rem, 100%);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  margin: 0;
  padding: var(--space-6);
  border-color: rgb(57 231 245 / 68%);
  background: rgb(8 7 13 / 94%);
  box-shadow: var(--shadow-cyan);
}

.home-hero__panel > * { margin: 0; }
.home-hero__panel h1 { font-size: clamp(2.25rem, 3.4vw, 3.25rem); }
.home-hero__panel .lead { max-width: 43ch; }
.home-hero__actions { width: 100%; }
.home-hero__actions > * { flex: 0 1 auto; min-width: 0; }

.home-rankings__intro,
.home-signals__intro,
.home-moods__intro,
.home-frames__intro,
.home-faq__intro {
  width: min(100%, 57.5rem);
  min-width: 0;
}

.home-rankings__intro { max-width: 58ch; }
.home-rankings__grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr);
  gap: var(--space-5);
  min-width: 0;
  margin-top: var(--space-7);
}

.home-rank-card {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(5rem, auto) minmax(0, 1fr);
  align-items: start;
  gap: var(--space-5);
  margin: 0;
}

.home-rank-card--one { grid-column: 1; }
.home-rank-card--two { grid-column: 2; grid-template-columns: 1fr; }
.home-rank-card--three { grid-column: 3; grid-template-columns: 1fr; }
.home-rank-card--three .status { margin-bottom: var(--space-2); }
.home-rank-card .rank { color: transparent; -webkit-text-stroke: 1px var(--color-cyan-signal); }
.home-rank-card--two .rank { -webkit-text-stroke-color: var(--color-pink-action); }
.home-rank-card__copy { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.home-rank-card__copy > * { margin: 0; }
.home-rank-card__copy p:not(.label) { max-width: 48ch; }
.home-rank-card--two .home-rank-card__copy p:not(.label),
.home-rank-card--three .home-rank-card__copy p:not(.label) { max-width: 38ch; }

.home-signals { overflow: clip; }
.home-signals__intro { max-width: 63ch; }
.home-signals__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
  margin-top: var(--space-7);
}
.home-signal { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin: 0; }
.home-signal > * { margin: 0; }
.home-signal p:not(.label) { max-width: 42ch; }
.home-signal__green-label { color: var(--color-green-status); }
.home-signal__green-label::before { background: var(--color-green-status); }

.home-session__layout {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr);
  align-items: start;
  gap: var(--space-8);
}
.home-session__narrative { min-width: 0; max-width: 66ch; }
.home-session__narrative > p { max-width: 66ch; }
.home-session__window { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); margin: 0; }
.home-session__window > * { margin: 0; }
.home-session__window ol { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: 0; list-style: none; }
.home-session__window li { min-width: 0; padding-top: var(--space-3); border-top: 1px solid var(--color-violet-edge); color: var(--color-mist-text); }
.home-session__callout { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-top: var(--space-6); padding: var(--space-5); border-left: 2px solid var(--color-pink-action); background: rgb(33 24 58 / 56%); }
.home-session__callout > * { margin: 0; }
.home-session__callout p { max-width: 62ch; }

.home-table__layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--space-8);
}
.home-table__figure { width: 100%; min-width: 0; margin: 0; }
.home-table__figure img { aspect-ratio: 4 / 3; }
.home-table__copy { min-width: 0; padding-top: var(--space-6); }
.home-table__copy > p { max-width: 64ch; }
.home-table__checks { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); max-width: 62ch; margin-top: var(--space-5); padding: 0; list-style: none; }
.home-table__checks li { position: relative; min-width: 0; padding-left: var(--space-5); color: var(--color-mist-text); }
.home-table__checks li::before { position: absolute; top: 0.72em; left: 0; width: 0.5rem; height: 0.5rem; border: 1px solid var(--color-cyan-signal); content: ""; }

.home-moods__intro { max-width: 62ch; }
.home-moods__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
  margin-top: var(--space-7);
}
.home-mood { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); margin: 0; }
.home-mood > * { margin: 0; }
.home-mood__code { color: transparent; font-family: var(--font-heading); font-size: clamp(3.25rem, 5vw, 4.5rem); font-weight: 700; letter-spacing: -0.08em; line-height: .85; -webkit-text-stroke: 1px var(--color-cyan-signal); }
.home-mood--social .home-mood__code { -webkit-text-stroke-color: var(--color-pink-action); }
.home-mood p:not(.label):not(.home-mood__code) { max-width: 40ch; }
.home-mood .status { margin-bottom: var(--space-2); }

.home-menu__layout {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: start;
  gap: var(--space-8);
}
.home-menu__intro { min-width: 0; max-width: 60ch; }
.home-menu__matrix { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: var(--space-4); padding: var(--space-5); border: var(--border); background: rgb(33 24 58 / 60%); }
.home-menu__row { display: grid; min-width: 0; grid-template-columns: minmax(8rem, .75fr) minmax(0, 2fr); gap: var(--space-5); padding-bottom: var(--space-4); border-bottom: var(--border); }
.home-menu__row > * { min-width: 0; margin: 0; }
.home-menu__row p:last-child { max-width: 40ch; }
.home-menu__row--pink { border-bottom-color: rgb(255 61 154 / 50%); }
.home-menu__row--green { border-bottom-color: rgb(156 255 87 / 50%); }
.home-menu__row--green .label { color: var(--color-green-status); }
.home-menu__row--green .label::before { background: var(--color-green-status); }

.home-host { background: linear-gradient(90deg, var(--color-violet-base), var(--color-void-black) 70%); }
.home-host__layout { display: grid; grid-template-columns: 11.25rem minmax(0, 42.5rem) minmax(0, 1fr); gap: var(--space-6); min-width: 0; }
.home-host__rail { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding-top: var(--space-3); color: var(--color-muted-text); font-size: var(--text-label); letter-spacing: .1em; }
.home-host__rail span:first-child { color: var(--color-pink-action); font-family: var(--font-heading); font-size: 3rem; line-height: 1; }
.home-host__note { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); padding-left: var(--space-5); border-left: 2px solid var(--color-pink-action); }
.home-host__note > * { margin: 0; }
.home-host__note > p { max-width: 64ch; }
.home-host__prompts { display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); width: 100%; }
.home-host__prompts > div { min-width: 0; padding-top: var(--space-4); border-top: var(--border); }
.home-host__prompts p { max-width: 62ch; }

.home-gathering__shell { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); min-width: 0; }
.home-gathering__figure { width: 100%; min-width: 0; margin: 0; }
.home-gathering__figure img { aspect-ratio: 3 / 2; }
.home-gathering__panel { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); margin: 0; clip-path: none; }
.home-gathering__panel > * { margin: 0; }
.home-gathering__panel p:not(.eyebrow) { max-width: 43ch; }
.home-gathering__points { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding: 0; list-style: none; }
.home-gathering__points li { min-width: 0; color: var(--color-mist-text); }
.home-gathering__points li:last-child strong { color: var(--color-green-status); }

.home-frames__intro { max-width: 58ch; }
.home-frames__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); gap: var(--space-5); min-width: 0; margin-top: var(--space-7); }
.home-frame { display: flex; min-width: 0; min-height: 13rem; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: var(--space-3); padding: var(--space-5); border: var(--border); background: var(--color-violet-panel); }
.home-frame > * { margin: 0; }
.home-frame p:not(.label) { max-width: 34ch; }
.home-frame--lounge { border-top-color: var(--color-cyan-signal); background: linear-gradient(135deg, rgb(23 17 43), rgb(8 7 13)); }
.home-frame--dining { border-top-color: var(--color-pink-action); background: linear-gradient(180deg, rgb(33 24 58), rgb(16 12 28)); }
.home-frame--gathering { border-top-color: var(--color-green-status); background: linear-gradient(225deg, rgb(29 22 48), rgb(8 7 13)); }
.home-frames__route { display: inline-block; margin-top: var(--space-5); }

.home-faq__intro { max-width: 62ch; }
.home-faq__list { display: flex; min-width: 0; max-width: 57.5rem; flex-direction: column; gap: var(--space-3); margin-top: var(--space-7); }
.home-faq__item { min-width: 0; margin: 0; padding: 0; clip-path: none; }
.home-faq__question { display: flex; width: 100%; min-width: 0; min-height: 3.25rem; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); border: 0; border-bottom: 1px solid var(--color-violet-edge); background: transparent; color: var(--color-paper-text); text-align: left; }
.home-faq__question span { min-width: 0; font-size: .875rem; font-weight: 500; }
.home-faq__question small { flex: 0 0 auto; color: var(--color-cyan-signal); font-size: var(--text-label); letter-spacing: .08em; text-transform: uppercase; }
.home-faq__question[aria-expanded="true"] { border-bottom-color: var(--color-cyan-signal); }
.home-faq__answer { max-width: 42.5rem; padding: 0 var(--space-5) var(--space-5); }
.home-faq__answer p { margin: 0; }

.home-enquiry__panel { display: flex; width: min(100%, 42.5rem); min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); margin: 0 auto; padding: var(--space-6); }
.home-enquiry__panel > * { margin: 0; }
.home-enquiry__panel p:not(.eyebrow) { max-width: 52ch; }
.home-enquiry__actions { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: space-between; gap: var(--space-5); }
.home-enquiry__actions > * { min-width: 0; }
.home-enquiry__actions > a:first-child { overflow-wrap: anywhere; }

@media (max-width: 77.5rem) {
  .home-rankings__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-rank-card--one { grid-column: 1 / -1; }
  .home-rank-card--two { grid-column: 1; }
  .home-rank-card--three { grid-column: 2; }
}

@media (max-width: 70rem) {
  .home-host__layout { grid-template-columns: minmax(0, 42.5rem); justify-content: center; }
  .home-host__rail { display: none; }
}

@media (max-width: 65.625rem) {
  .home-signals__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-signals__grid > :nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 62.5rem) {
  .home-table__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .home-table__copy { width: min(100%, 42.5rem); padding-top: 0; }
  .home-moods__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-moods__grid > :nth-child(3) { grid-column: 1 / -1; }
  .home-gathering__shell { grid-template-columns: 1fr; }
  .home-gathering__figure { order: 1; }
  .home-gathering__panel { order: 2; }
}

@media (max-width: 61.25rem) {
  .home-menu__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .home-menu__intro { max-width: 42.5rem; }
}

@media (max-width: 56.25rem) {
  .home-session__layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .home-session__narrative { max-width: 42.5rem; }
  .home-session__window { width: min(100%, 42.5rem); }
}

@media (max-width: 47.5rem) {
  .home-hero { min-height: 41.25rem; }
  .home-hero__image { min-height: 41.25rem; object-position: 38% top; }
  .home-hero__wash { background: linear-gradient(180deg, rgb(8 7 13 / 5%) 20%, rgb(8 7 13 / 36%) 45%, rgb(8 7 13 / 96%) 88%); }
  .home-hero__container { align-items: flex-end; justify-content: flex-start; padding-block: var(--space-5); }
  .home-hero__panel { width: 100%; padding: var(--space-5); gap: var(--space-4); }
  .home-hero__panel h1 { font-size: clamp(2.25rem, 10vw, 2.75rem); }
  .home-hero__actions { flex-direction: column; align-items: stretch; }
  .home-hero__actions > * { width: 100%; }

  .home-rankings__grid,
  .home-signals__grid,
  .home-moods__grid,
  .home-frames__grid { grid-template-columns: 1fr; gap: var(--space-4); }
  .home-rank-card--one,
  .home-rank-card--two,
  .home-rank-card--three,
  .home-signals__grid > :nth-child(3),
  .home-moods__grid > :nth-child(3) { grid-column: 1; }
  .home-rank-card { grid-template-columns: minmax(4rem, auto) minmax(0, 1fr); gap: var(--space-4); }
  .home-rank-card--two,
  .home-rank-card--three { grid-template-columns: minmax(4rem, auto) minmax(0, 1fr); }
  .home-rank-card--three .status { grid-column: 1 / -1; }
  .home-rank-card--three .rank { grid-column: 1; }
  .home-rank-card--three .home-rank-card__copy { grid-column: 2; }
  .home-rank-card .rank { font-size: clamp(3.5rem, 17vw, 4.25rem); }

  .home-menu__row { grid-template-columns: 1fr; gap: var(--space-2); }
  .home-menu__matrix { padding: var(--space-4); }
  .home-host__note { padding-left: var(--space-4); }
  .home-gathering__panel { padding: var(--space-5); }
  .home-frame { min-height: 8.75rem; }
  .home-faq__list { margin-top: var(--space-6); }
  .home-faq__question { min-height: 3.25rem; padding-inline: var(--space-4); }
  .home-faq__answer { padding-inline: var(--space-4); }
  .home-enquiry__panel { padding: var(--space-5); }
  .home-enquiry__actions { flex-direction: column; align-items: stretch; gap: var(--space-4); }
  .home-enquiry__actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page [data-reveal],
  .home-page [data-reveal].is-visible { opacity: 1; transform: none; }
}
