.astrolabe-home {
    --astro-ink: #24160f;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    overflow-x: clip;
    color: var(--astro-ink);
    font-family: Georgia, "Times New Roman", serif;
}
.astrolabe-home * { box-sizing: border-box; }
.astrolabe-home__hero {
    display: flex;
    min-height: 750px;
    flex-direction: column;
    padding: clamp(1rem, 2.4vw, 2rem) clamp(1rem, 4vw, 4.5rem) clamp(2rem, 5vw, 4.5rem);
    background: url("../../images/branding/hero-home.webp") center / cover no-repeat;
}
.astrolabe-home__festival-card:focus-visible { outline: 3px solid var(--astro-ink); outline-offset: 4px; }
.astrolabe-home__introduction {
    position: relative;
    top: -60px;
    width: min(42rem, 76%);
    margin: auto auto 2rem;
    padding: clamp(2rem, 8vh, 5rem) 0;
    text-align: center;
    text-shadow: 0 2px 7px rgba(255, 246, 220, .95);
}
.astrolabe-home-hero__title-image {
    display: block;
    width: min(100%, 960px);
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}
.astrolabe-home-hero__tagline { margin: 1rem 0 0; font-size: clamp(1.18rem, 2.625vw, 2.1rem); font-style: italic; line-height: 1.15; text-align: center; }
.astrolabe-home__festivals { position: relative; top: -50px; margin-top: auto; }
.astrolabe-home__festivals h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.astrolabe-home__festival-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(1rem, 2.5vw, 2rem);
    margin: 0;
    padding: .75rem .4rem 1.4rem;
}
.astrolabe-home__festival-item { flex: 0 0 clamp(270px, 29vw, 390px); list-style: none; }
.astrolabe-home__festival-item:nth-child(even) { transform: translateY(8px); }
.astrolabe-home__festival-card {
    display: flex;
    aspect-ratio: 1.42;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 15% 13%;
    overflow: hidden;
    background: url("../../images/ui/cards/festival-card-desktop.png") center / 100% 100% no-repeat;
    color: var(--astro-ink);
    filter: drop-shadow(0 7px 7px rgba(0, 0, 0, .28));
    text-align: center;
    text-decoration: none;
    transition: transform .18s ease, filter .18s ease;
}
.astrolabe-home__festival-card:hover { transform: translateY(-5px); filter: drop-shadow(0 11px 10px rgba(0, 0, 0, .36)); }
.astrolabe-home__festival-name { display: -webkit-box; overflow: hidden; font-size: clamp(1.35rem, 2.3vw, 2rem); font-weight: 700; line-height: 1.05; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.astrolabe-home__edition-name { display: -webkit-box; overflow: hidden; margin-top: .35rem; font-size: clamp(.9rem, 1.5vw, 1.2rem); font-weight: 600; line-height: 1.1; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.astrolabe-home__festival-divider { margin: .55rem 0; color: #765234; font-size: clamp(.7rem, 1.3vw, 1rem); white-space: nowrap; }
.astrolabe-home__festival-dates,
.astrolabe-home__festival-location { font-size: clamp(.9rem, 1.45vw, 1.15rem); line-height: 1.25; }
.astrolabe-home__festival-location { display: -webkit-box; overflow: hidden; margin-top: .35rem; opacity: .82; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.astrolabe-home__empty { width: min(42rem, 100%); margin: 1rem auto 0; padding: 1rem 1.5rem; background: rgba(246, 232, 199, .82); text-align: center; }
@media (max-width: 1024px) {
    .astrolabe-home__hero { min-height: 640px; }
    .astrolabe-home__festival-item { flex-basis: clamp(280px, 45vw, 370px); }
}
@media (max-width: 768px) {
    .astrolabe-home__hero { min-height: 620px; padding-inline: 1rem; background-position: 58% center; }
    .astrolabe-home__introduction { top: -40px; width: 100%; }
    .astrolabe-home__festival-item,
    .astrolabe-home__festival-item:nth-child(even) { flex-basis: min(86vw, 360px); transform: none; }
}
@media (max-width: 390px) {
    .astrolabe-home__hero { min-height: 580px; }
    .astrolabe-home__introduction { top: -30px; }
    .astrolabe-home-hero__title-image { width: 90%; }
    .astrolabe-home__festival-item { flex-basis: 88vw; }
}
@media (prefers-reduced-motion: reduce) {
    .astrolabe-home__festival-card { transition: none; }
    .astrolabe-home__festival-card:hover { transform: none; }
}
