.home-page {
  background: var(--color-graphite);
  overflow: clip;
}

.home-page .home-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 520ms ease-out, transform 520ms ease-out;
}

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

.home-page .home-text-link {
  color: var(--color-burnt-copper);
  font-size: var(--text-14);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.home-page .home-text-link::after {
  display: block;
  width: 28px;
  height: 1px;
  margin-top: 5px;
  background: currentColor;
  content: "";
  transition: width var(--transition-fast);
}

.home-page .home-text-link:hover::after {
  width: 100%;
}

.home-hero {
  position: relative;
  display: flex;
  min-height: 760px;
  overflow: hidden;
  align-items: stretch;
  isolation: isolate;
}

.home-hero__image,
.home-hero__overlay {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
}

.home-hero__image {
  object-fit: cover;
  object-position: 65% center;
}

.home-hero__overlay {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(23, 24, 23, 0.89) 0%, rgba(23, 24, 23, 0.74) 43%, rgba(23, 24, 23, 0.22) 72%, rgba(23, 24, 23, 0.06) 100%),
    radial-gradient(circle at 70% 38%, rgba(184, 111, 75, 0.15), transparent 30%);
  animation: home-hero-light 18s ease-in-out infinite alternate;
}

.home-hero__container {
  position: relative;
  display: flex;
  width: min(100% - (var(--gutter-desktop) * 2), var(--container-max));
  min-width: 0;
  min-height: 760px;
  align-items: center;
}

.home-hero__content {
  display: flex;
  width: min(100%, 760px);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  margin-top: 68px;
}

.home-hero__content h1,
.home-hero__content p {
  margin: 0;
}

.home-hero__eyebrow {
  color: var(--color-olive-green);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: var(--leading-label);
}

.home-hero__content h1 {
  max-width: 700px;
}

.home-hero__lead {
  max-width: 510px;
  color: var(--color-muted-ivory);
  font-size: var(--text-18);
}

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

.home-hero__actions > * {
  min-width: 0;
}

.home-hero__signal {
  position: absolute;
  right: 0;
  bottom: var(--space-8);
  display: flex;
  width: clamp(250px, 22vw, 290px);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
  border: 1px solid rgba(23, 24, 23, 0.25);
  border-radius: var(--radius-control);
  background: var(--color-warm-ivory);
  color: var(--color-graphite);
  text-decoration: none;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.home-hero__signal::before {
  width: 100%;
  height: 1px;
  background: var(--color-burnt-copper);
  content: "";
}

.home-hero__signal:hover {
  border-color: var(--color-burnt-copper);
  color: var(--color-graphite);
  transform: translateY(-3px);
}

.home-hero__signal span {
  order: -1;
  color: var(--color-burnt-copper);
  font-size: var(--text-12);
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: var(--leading-label);
}

.home-hero__signal strong {
  color: var(--color-graphite);
  font-size: var(--text-16);
  font-weight: 700;
  line-height: 1.35;
}

.home-ritual__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 680px) minmax(0, 1fr);
  column-gap: clamp(var(--space-7), 10vw, var(--space-10));
}

.home-ritual__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-ritual__copy h2,
.home-ritual__copy p {
  margin: 0;
}

.home-ritual__copy > p {
  max-width: 660px;
}

.home-ritual__moments {
  display: flex;
  width: min(100%, 560px);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.home-ritual__moments p {
  padding-bottom: var(--space-3);
  border-bottom: var(--border-copper);
}

.home-ritual__rule {
  align-self: center;
  width: 1px;
  height: 180px;
  background: var(--color-border-copper);
}

.home-kitchen__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 43fr) minmax(0, 52fr);
  column-gap: 5%;
  align-items: start;
}

.home-kitchen__panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-5);
  padding: clamp(var(--space-6), 4vw, var(--space-8));
  border: var(--border-quiet);
  background: var(--color-graphite-elevated);
}

.home-kitchen__panel h2,
.home-kitchen__panel p {
  margin: 0;
}

.home-kitchen__panel h2 {
  max-width: 430px;
}

.home-kitchen__lead {
  max-width: 470px;
  color: var(--color-warm-ivory);
  font-size: var(--text-18);
}

.home-kitchen__panel > p:not(.meta):not(.home-kitchen__lead) {
  max-width: 420px;
}

.home-kitchen__links {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-5);
  padding-top: var(--space-5);
  border-top: var(--border-copper);
}

.home-kitchen__media {
  display: block;
  width: 100%;
  min-width: 0;
  aspect-ratio: 4 / 3;
  margin-top: var(--space-7);
}

.home-kitchen__media img {
  object-position: center;
  transition: filter var(--transition-base), transform var(--transition-base);
}

.home-kitchen__media:hover img {
  filter: brightness(1.08);
  transform: scale(1.015);
}

.home-poker__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(340px, 38fr) minmax(0, 46fr);
  column-gap: 16%;
  align-items: start;
}

.home-poker__media {
  display: block;
  width: 100%;
  min-width: 0;
  aspect-ratio: 3 / 4;
}

.home-poker__media img {
  object-position: center;
  transition: filter var(--transition-base), transform var(--transition-base);
}

.home-poker__media:hover img {
  filter: brightness(1.08);
  transform: scale(1.015);
}

.home-poker__copy {
  display: flex;
  width: 100%;
  max-width: 520px;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding-top: var(--space-6);
}

.home-poker__copy h2,
.home-poker__copy p {
  margin: 0;
}

.home-poker__copy > p:not(.meta) {
  max-width: 520px;
}

.home-poker__notes {
  display: flex;
  width: min(100%, 420px);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.home-poker__notes p {
  padding-bottom: var(--space-3);
  border-bottom: var(--border-copper);
}

.home-poker__action {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-poker__action p {
  max-width: 440px;
}

.home-paths__intro {
  width: min(100%, 620px);
  min-width: 0;
  margin-bottom: var(--space-7);
}

.home-paths__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 44fr) minmax(250px, 26fr) minmax(0, 30fr);
  align-items: start;
}

.home-path {
  display: flex;
  min-width: 0;
  min-height: 320px;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding: clamp(var(--space-5), 3vw, var(--space-7));
  border: var(--border-quiet);
  border-right: 0;
  background: var(--color-graphite-elevated);
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.home-path:last-child {
  border-right: var(--border-quiet);
}

.home-path:hover {
  border-color: var(--color-border-copper);
  background: var(--color-deep-burgundy);
}

.home-path h3,
.home-path p {
  margin: 0;
}

.home-path h3 {
  font-size: clamp(1.75rem, 3vw, 2.8rem);
}

.home-path p {
  max-width: 360px;
}

.home-path__number {
  color: var(--color-burnt-copper);
  font-size: var(--text-12);
  font-weight: 800;
  letter-spacing: 0.14em;
}

.home-path__links {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-path--restaurant {
  min-height: 390px;
}

.home-path--poker {
  margin-top: var(--space-7);
}

.home-path--themes {
  min-height: 350px;
}

.home-groups {
  border-top: var(--border-copper);
  border-bottom: var(--border-quiet);
  background: var(--color-deep-burgundy);
}

.home-groups__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 42fr) minmax(0, 44fr);
  column-gap: 14%;
  align-items: start;
}

.home-groups__action,
.home-groups__statement {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-groups__action h2,
.home-groups__action p,
.home-groups__statement p {
  margin: 0;
}

.home-groups__action h2,
.home-groups__action > p:not(.meta) {
  max-width: 500px;
}

.home-groups__statement {
  max-width: 560px;
  padding-top: var(--space-5);
}

.home-groups__statement > p {
  color: var(--color-warm-ivory);
  font-family: var(--font-heading);
  font-size: clamp(2.1rem, 4vw, 3.7rem);
  font-weight: 600;
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
}

.home-groups__reasons {
  display: flex;
  width: min(100%, 440px);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.home-groups__reasons p {
  padding-bottom: var(--space-3);
  border-bottom: var(--border-copper);
}

.home-groups__reasons span {
  display: inline-block;
  min-width: 34px;
  color: var(--color-burnt-copper);
  font-size: var(--text-12);
  font-weight: 800;
  letter-spacing: 0.1em;
}

.home-groups__cta {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding-top: var(--space-5);
}

.home-groups__cta p {
  max-width: 420px;
}

.home-themes__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 38fr) minmax(0, 48fr);
  column-gap: 14%;
  border-top: var(--border-copper);
  padding-top: var(--space-7);
}

.home-themes__intro,
.home-themes__program {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-themes__intro h2,
.home-themes__intro p,
.home-themes__program p {
  margin: 0;
}

.home-themes__intro {
  max-width: 470px;
}

.home-themes__program {
  position: relative;
  max-width: 600px;
  margin-top: var(--space-8);
  padding-left: var(--space-7);
}

.home-themes__number {
  position: absolute;
  top: -42px;
  left: 0;
  color: rgba(184, 111, 75, 0.24);
  font-family: var(--font-heading);
  font-size: clamp(5rem, 11vw, 9rem);
  font-weight: 600;
  line-height: 1;
}

.home-themes__statement {
  position: relative;
  max-width: 520px;
  color: var(--color-warm-ivory);
  font-family: var(--font-heading);
  font-size: clamp(2.1rem, 4vw, 3.7rem);
  font-weight: 600;
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
}

.home-themes__program > p:not(.home-themes__statement) {
  position: relative;
  max-width: 480px;
}

.home-themes__program .home-text-link {
  position: relative;
}

.home-visit__panel {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 46fr) minmax(0, 38fr);
  column-gap: 16%;
  padding: clamp(var(--space-5), 4vw, var(--space-8));
  border: var(--border-quiet);
  background: var(--color-graphite-elevated);
}

.home-visit__practical,
.home-visit__orientation {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-visit__practical h2,
.home-visit__practical p,
.home-visit__orientation h3,
.home-visit__orientation p {
  margin: 0;
}

.home-visit__practical > p:not(.home-visit__address) {
  max-width: 520px;
}

.home-visit__address {
  max-width: 470px;
  color: var(--color-warm-ivory);
  font-size: var(--text-18);
  font-weight: 600;
}

.home-visit__hours {
  display: flex;
  width: min(100%, 500px);
  min-width: 0;
  flex-direction: column;
}

.home-visit__hours p {
  display: flex;
  min-width: 0;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-3);
  border-bottom: var(--border-copper);
}

.home-visit__hours strong {
  white-space: nowrap;
}

.home-visit__orientation {
  max-width: 420px;
}

.home-visit__display {
  color: var(--color-warm-ivory);
  font-family: var(--font-heading);
  font-size: clamp(2.35rem, 4vw, 4.2rem);
  font-weight: 600;
  letter-spacing: var(--tracking-heading);
  line-height: 0.92;
}

.home-visit__access {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.home-visit__access p {
  padding-bottom: var(--space-3);
  border-bottom: var(--border-subtle);
}

.home-visit__access strong {
  display: block;
  margin-bottom: var(--space-1);
  color: var(--color-burnt-copper);
  font-size: var(--text-12);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-visit__orientation small {
  color: var(--color-muted-ivory);
}

.home-faq__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 720px) minmax(0, 1fr);
  row-gap: var(--space-7);
}

.home-faq__intro {
  width: min(100%, 620px);
  min-width: 0;
}

.home-faq__list {
  display: flex;
  width: min(100%, 720px);
  min-width: 0;
  grid-column: 1;
  flex-direction: column;
}

.home-faq__item {
  min-width: 0;
  border-bottom: var(--border-copper);
}

.home-faq__item:first-child {
  border-top: var(--border-copper);
}

.home-faq__item h3 {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-16);
  font-weight: 600;
  letter-spacing: 0;
  line-height: var(--leading-body);
}

.home-faq__item button {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  border: 0;
  background: transparent;
  color: var(--color-warm-ivory);
  font: inherit;
  text-align: left;
}

.home-faq__item button::after {
  flex: 0 0 auto;
  color: var(--color-burnt-copper);
  content: "+";
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}

.home-faq__item button[aria-expanded="true"]::after {
  content: "−";
}

.home-faq__answer {
  max-width: 680px;
  padding-bottom: var(--space-5);
}

.home-faq__answer p {
  margin: 0;
}

.home-final {
  position: relative;
  background: radial-gradient(circle at 82% 48%, rgba(74, 23, 36, 0.42), transparent 28%);
}

.home-final__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 760px) minmax(0, 1fr);
  column-gap: var(--space-9);
  align-items: center;
}

.home-final__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-final__copy h2,
.home-final__copy p {
  margin: 0;
}

.home-final__copy h2 {
  max-width: 680px;
}

.home-final__copy > p {
  max-width: 560px;
}

.home-final__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-5);
}

.home-final__rule {
  justify-self: center;
  width: 1px;
  height: 220px;
  background: var(--color-border-copper);
}

@keyframes home-hero-light {
  from { transform: translateX(-1%) scale(1); }
  to { transform: translateX(1%) scale(1.015); }
}

@media (max-width: 979px) {
  .home-hero__container {
    min-height: 730px;
    align-items: flex-end;
    padding-top: 150px;
    padding-bottom: var(--space-6);
  }

  .home-hero__content {
    width: min(100%, 650px);
    margin-top: 0;
  }

  .home-hero__signal {
    position: static;
    align-self: flex-start;
    margin-top: var(--space-5);
  }

  .home-kitchen__layout,
  .home-poker__layout,
  .home-groups__layout,
  .home-themes__layout,
  .home-visit__panel {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--space-6);
  }

  .home-kitchen__media {
    margin-top: 0;
  }

  .home-poker__copy {
    grid-row: 1;
    max-width: 620px;
    padding-top: 0;
  }

  .home-poker__media {
    grid-row: 2;
    width: min(100%, 480px);
  }

  .home-paths__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-path,
  .home-path:last-child {
    min-height: 0;
    border-right: var(--border-quiet);
    border-bottom: 0;
  }

  .home-path:not(:first-child) {
    margin-top: 0;
  }

  .home-path:last-child {
    border-bottom: var(--border-quiet);
  }

  .home-groups__statement,
  .home-themes__program {
    margin-top: 0;
    padding-top: 0;
  }

  .home-themes__program {
    padding-left: var(--space-7);
  }

  .home-visit__orientation {
    max-width: 520px;
  }
}

@media (max-width: 899px) {
  .home-hero__container,
  .home-hero__content {
    width: min(100% - (var(--gutter-tablet) * 2), var(--container-max));
  }

  .home-ritual__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-ritual__rule {
    width: 42px;
    height: 1px;
    align-self: start;
    order: -1;
  }

  .home-faq__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-final__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-final__rule {
    display: none;
  }
}

@media (max-width: 639px) {
  .home-hero {
    min-height: 690px;
  }

  .home-hero__image {
    object-position: 62% center;
  }

  .home-hero__overlay {
    background: linear-gradient(0deg, rgba(23, 24, 23, 0.9) 0%, rgba(23, 24, 23, 0.67) 48%, rgba(23, 24, 23, 0.24) 100%);
  }

  .home-hero__container {
    width: min(100% - (var(--gutter-mobile) * 2), var(--container-max));
    min-height: 690px;
    padding-top: 130px;
    padding-bottom: var(--space-5);
  }

  .home-hero__content {
    width: 100%;
    gap: var(--space-4);
  }

  .home-hero__content h1 {
    font-size: var(--text-44);
    line-height: var(--leading-heading);
  }

  .home-hero__lead {
    font-size: var(--text-16);
  }

  .home-hero__actions,
  .home-final__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3);
  }

  .home-hero__actions .button,
  .home-final__actions .button {
    width: 100%;
  }

  .home-hero__signal {
    width: 100%;
    padding: var(--space-4);
  }

  .home-kitchen__layout {
    width: 100%;
  }

  .home-kitchen__panel {
    width: min(100% - (var(--gutter-mobile) * 2), var(--container-max));
    margin-inline: auto;
    padding: var(--space-5);
  }

  .home-kitchen__media {
    width: 100%;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .home-poker__media {
    width: 100%;
    max-width: none;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .home-poker__copy {
    width: min(100% - (var(--gutter-mobile) * 2), var(--container-max));
    margin-inline: auto;
  }

  .home-poker__action {
    width: 100%;
  }

  .home-poker__action .button {
    width: 100%;
  }

  .home-path {
    padding: var(--space-5);
  }

  .home-path h3 {
    font-size: var(--text-32);
  }

  .home-groups__cta,
  .home-groups__cta .button {
    width: 100%;
  }

  .home-themes__program {
    padding-left: var(--space-5);
  }

  .home-themes__number {
    top: -25px;
    font-size: 5rem;
  }

  .home-visit__panel {
    padding: var(--space-5);
  }

  .home-visit__hours p {
    flex-direction: column;
    gap: var(--space-1);
  }

  .home-faq__item button {
    min-height: 48px;
    padding-block: var(--space-4);
  }

  .home-final__actions .home-text-link {
    align-self: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-reveal {
    opacity: 1;
    transform: none;
  }

  .home-hero__overlay {
    animation: none;
  }
}
