.home-page {
  overflow: clip;
}

.home-page section {
  position: relative;
}

.home-page .home-reveal {
  opacity: 0;
  transform: translateY(10px);
}

.home-page .home-reveal.is-visible {
  animation: home-reveal-up 450ms var(--ease-enter) both;
}

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

.home-hero {
  padding-block: clamp(3.5rem, 7vw, 6rem) clamp(4rem, 8vw, 7.5rem);
  background: radial-gradient(circle at 78% 38%, rgba(100, 38, 56, 0.45), transparent 30rem);
}

.home-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 52fr) minmax(23.75rem, 42fr);
  align-items: center;
  gap: 6%;
  min-height: 43.125rem;
}

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

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

.home-hero__copy > * { margin-block: 0; }
.home-hero__eyebrow::before { content: ""; display: inline-block; width: 2.5rem; height: 1px; margin: 0 var(--space-3) 0 0; vertical-align: middle; background: var(--color-zloto-jasne); }
.home-hero h1 { max-width: 37.5rem; font-size: clamp(3.25rem, 5.2vw, 4rem); }
.home-hero__lead { max-width: 36.25rem; color: var(--color-text-muted); font-size: var(--text-lg); line-height: var(--leading-relaxed); }

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--space-3);
  width: 100%;
}
.home-hero__actions > * { flex: 0 1 auto; min-width: 0; }
.home-hero__signals { display: flex; flex-wrap: wrap; gap: var(--space-3); list-style: none; width: 100%; }
.home-hero__signals li { min-width: 0; color: var(--color-text-muted); font-size: var(--text-sm); }
.home-hero__signals li::before { content: "✦"; margin-inline-end: var(--space-2); color: var(--color-zloto-antyczne); }
.home-hero__media { width: 100%; max-width: 100%; margin: 0; border-radius: var(--radius-lg); }
.home-hero__media img { width: 100%; height: clamp(31.25rem, 55vw, 40rem); object-fit: cover; }

.home-format__intro, .home-timeline__intro, .home-features__intro, .home-rules__intro, .home-audience__intro { max-width: 41.25rem; }
.home-format__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.home-format__grid > * { min-width: 0; }
.home-format__card, .home-feature, .home-rule, .home-audience__card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.home-format__card > *, .home-feature > *, .home-rule > *, .home-audience__card > * { margin-block: 0; }
.home-format__card { gap: var(--space-4); }
.home-format__card p { max-width: 24rem; }
.home-card__number, .home-feature > span { color: var(--color-zloto-jasne); font-size: var(--text-sm); font-weight: 800; letter-spacing: .12em; }

.home-timeline { background: linear-gradient(180deg, transparent, rgba(56, 22, 34, .22), transparent); }
.home-timeline__list { display: flex; flex-direction: column; align-items: stretch; width: 100%; max-width: 53.75rem; min-width: 0; border-inline-start: 1px solid var(--color-zloto-antyczne); }
.home-timeline__item { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); gap: var(--space-3); min-width: 0; padding: 0 0 var(--space-7) var(--space-5); }
.home-timeline__item > * { min-width: 0; }
.home-timeline__number { color: var(--color-zloto-jasne); font-family: var(--font-heading); font-size: var(--text-2xl); line-height: 1; }
.home-timeline__content { max-width: 33.75rem; }
.home-timeline__content > :last-child { margin-bottom: 0; }
.home-timeline__item--formats { grid-template-columns: 5.25rem minmax(0, 1fr) minmax(0, 14.375rem); }
.home-timeline__formats { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding: var(--space-4); align-self: start; }
.home-timeline__formats > * { margin: 0; }
.home-timeline__item--pause { background: radial-gradient(circle at 32% 45%, rgba(100,38,56,.28), transparent 20rem); }
.home-timeline__cta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); width: 100%; max-width: 53.75rem; margin-top: var(--space-2); }
.home-timeline__cta > * { min-width: 0; margin: 0; }
.home-timeline__cta p { flex: 1 1 20rem; }
.home-timeline__cta .button { flex: 0 1 auto; }

.home-features__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.home-features__grid > * { min-width: 0; }
.home-feature { gap: var(--space-3); padding: var(--space-5); }
.home-feature h3 { font-size: var(--text-xl); }
.home-feature p { max-width: 22rem; }
.home-feature:hover, .home-format__card:hover, .home-rule:hover, .home-audience__card:hover { border-color: var(--color-border-strong); background-color: var(--color-surface-raised); }

.home-ambience { padding-block-start: var(--space-10); }
.home-ambience .container { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; }
.home-ambience__visual { grid-column: 1; grid-row: 1; width: 100%; margin: 0; border-radius: var(--radius-lg); }
.home-ambience__visual img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; }
.home-ambience__panel { grid-column: 1; grid-row: 1; align-self: end; width: 48%; min-width: 26.875rem; margin: 0 0 var(--space-5) var(--space-5); z-index: 1; }
.home-ambience__panel > :last-child { margin-bottom: 0; }
.home-ambience__points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); width: 100%; max-width: 48rem; margin-top: var(--space-5); }
.home-ambience__points > * { min-width: 0; }
.home-ambience__point { padding-inline-start: var(--space-4); border-inline-start: 1px solid var(--color-zloto-antyczne); }
.home-ambience__point > :last-child { margin-bottom: 0; }

.home-rules__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.home-rules__grid > * { min-width: 0; }
.home-rule { gap: var(--space-4); }
.home-rule p { max-width: 24rem; }
.home-rules__link, .home-faq__link { display: inline-flex; min-height: 2.75rem; align-items: center; gap: var(--space-2); margin-top: var(--space-5); font-weight: 700; }

.home-audience { background: radial-gradient(circle at 18% 50%, rgba(216,185,120,.09), transparent 30rem); }
.home-audience__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.home-audience__grid > * { min-width: 0; }
.home-audience__card { gap: var(--space-3); }
.home-audience__card h3 { font-size: var(--text-xl); }
.home-audience__card p { max-width: 24rem; }
.home-audience__card--beginner { background: linear-gradient(135deg, rgba(100,38,56,.5), var(--color-surface-glass)); }

.home-gallery__intro { max-width: 35rem; }
.home-gallery__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .8fr) minmax(0, 1.1fr); align-items: start; gap: var(--space-4); }
.home-gallery__grid > * { min-width: 0; }
.home-gallery__item { margin: 0; }
.home-gallery__item--food { padding-top: var(--space-6); }
.home-gallery__trigger { display: block; width: 100%; padding: 0; overflow: hidden; border: var(--border-default); border-radius: var(--radius-lg); background: var(--color-surface); }
.home-gallery__trigger img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform var(--transition-image), filter var(--transition-image); }
.home-gallery__trigger:hover img { transform: scale(1.025); filter: brightness(1.06); }
.home-gallery__item figcaption { margin-bottom: 0; }

.home-faq .container { display: flex; justify-content: center; min-width: 0; }
.home-faq__panel { width: 100%; max-width: 47.5rem; }
.home-faq__panel > :last-child { margin-bottom: 0; }
.home-faq__panel details { margin: 0; border-top: 1px solid var(--color-divider); }
.home-faq__panel summary { display: flex; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-3); color: var(--color-kosc-sloniowa); font-weight: 700; list-style: none; }
.home-faq__panel summary::-webkit-details-marker { display: none; }
.home-faq__panel summary::after { content: "+"; color: var(--color-zloto-jasne); font-size: var(--text-xl); font-weight: 400; }
.home-faq__panel details[open] summary::after { content: "−"; }
.home-faq__panel details p { max-width: 42.5rem; margin: 0 0 var(--space-5); color: var(--color-text-muted); }

.home-final { padding-top: var(--space-8); }
.home-final__panel { display: flex; flex-direction: column; align-items: center; width: 100%; min-width: 0; gap: var(--space-4); padding: clamp(3.5rem, 8vw, 7.5rem) var(--space-5); border: var(--border-default); border-radius: var(--radius-lg); background: radial-gradient(circle at 50% 20%, rgba(216,185,120,.18), transparent 26rem), linear-gradient(135deg, var(--color-bordo-glebokie), var(--color-lupek)); text-align: center; box-shadow: var(--shadow-soft); }
.home-final__panel > * { margin: 0; min-width: 0; }
.home-final__panel h2 { max-width: 47.5rem; }
.home-final__panel p { max-width: 32.5rem; color: var(--color-text-muted); }
.home-final__panel small { color: var(--color-text-muted); }
.home-final__panel .button { min-height: 3.25rem; }

.home-lightbox { position: fixed; z-index: 1100; inset: 0; display: none; align-items: center; justify-content: center; padding: var(--space-4); background: rgba(11,10,12,.94); }
.home-lightbox.is-open { display: flex; }
.home-lightbox__dialog { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; gap: var(--space-3); width: min(100%, 68.75rem); }
.home-lightbox__close { grid-column: 1 / -1; justify-self: end; min-width: 3rem; min-height: 3rem; border: var(--border-default); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-kosc-sloniowa); font-size: var(--text-xl); }
.home-lightbox__image { grid-column: 2; width: 100%; max-height: 72vh; object-fit: contain; }
.home-lightbox__previous, .home-lightbox__next { width: 3rem; min-width: 3rem; min-height: 3rem; border: var(--border-default); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-kosc-sloniowa); font-size: var(--text-xl); }
.home-lightbox__caption { grid-column: 2; margin: 0; color: var(--color-text-muted); text-align: center; }

@media (max-width: 67.4375rem) {
  .home-hero__layout { grid-template-columns: minmax(0, 56fr) minmax(18rem, 38fr); gap: 6%; }
  .home-hero h1 { font-size: clamp(3rem, 5.3vw, 3.25rem); }
  .home-features__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 56.1875rem) {
  .home-format__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-format__card:last-child { grid-column: 1 / -1; }
  .home-timeline__item--formats { grid-template-columns: 5.25rem minmax(0, 1fr); }
  .home-timeline__formats { grid-column: 2; width: 100%; }
  .home-ambience .container { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-5); }
  .home-ambience__visual, .home-ambience__panel { width: 100%; min-width: 0; margin: 0; }
  .home-rules__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-rules__grid > :last-child { grid-column: 1 / -1; }
  .home-audience__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-gallery__item--game { grid-column: 1 / -1; width: calc(50% - var(--space-2)); }
}

@media (max-width: 47.9375rem) {
  .home-hero { padding-block: var(--space-8) var(--space-8); }
  .home-hero__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); min-height: 0; }
  .home-hero__copy { max-width: none; gap: var(--space-4); }
  .home-hero h1 { max-width: none; font-size: clamp(2.625rem, 11vw, 3rem); }
  .home-hero__lead { max-width: none; font-size: 1.0625rem; }
  .home-hero__actions { flex-direction: column; width: 100%; }
  .home-hero__actions > * { width: 100%; }
  .home-hero__signals { flex-direction: column; gap: var(--space-2); }
  .home-hero__media img { height: 18.75rem; aspect-ratio: 4 / 3; }
  .home-format__grid, .home-features__grid, .home-rules__grid, .home-audience__grid { grid-template-columns: minmax(0, 1fr); }
  .home-format__card:last-child, .home-rules__grid > :last-child { grid-column: auto; }
  .home-format__intro, .home-timeline__intro, .home-features__intro, .home-rules__intro, .home-audience__intro, .home-gallery__intro { max-width: none; }
  .home-timeline__list { max-width: none; }
  .home-timeline__item, .home-timeline__item--formats { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); padding-left: var(--space-4); }
  .home-timeline__formats { grid-column: auto; }
  .home-timeline__content { max-width: none; }
  .home-timeline__cta { flex-direction: column; align-items: stretch; max-width: none; }
  .home-timeline__cta .button { width: 100%; }
  .home-features__grid { gap: var(--space-3); }
  .home-feature, .home-format__card, .home-rule, .home-audience__card { padding: var(--space-5); }
  .home-ambience__visual img { aspect-ratio: 4 / 3; }
  .home-ambience__points { grid-template-columns: minmax(0, 1fr); max-width: none; gap: var(--space-4); }
  .home-gallery__grid { display: flex; width: calc(100% + 1rem); margin-right: -1rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--space-3); }
  .home-gallery__item, .home-gallery__item--game { flex: 0 0 84%; width: 84%; padding: 0; scroll-snap-align: start; }
  .home-faq__panel { padding: var(--space-5); }
  .home-final__panel { padding: var(--space-7) var(--space-5); }
  .home-final__panel .button { width: 100%; }
  .home-lightbox__dialog { grid-template-columns: minmax(0, 1fr); }
  .home-lightbox__image, .home-lightbox__caption { grid-column: 1; }
  .home-lightbox__previous { position: absolute; left: var(--space-4); top: 50%; }
  .home-lightbox__next { position: absolute; right: var(--space-4); top: 50%; }
}

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