.choice-btn {
    font-family: 'Josefin Sans', sans-serif !important;
}

.landing-page {
    min-height: 100vh;
    min-height: 100dvh;
}

.landing-wrapper {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.landing-photo {
    width: clamp(5.5rem, 28vh, 13rem);
    height: clamp(5.5rem, 28vh, 13rem);
    margin-bottom: 1.5rem;
}

.landing-title {
    font-size: clamp(1.35rem, 7vh, 2.25rem);
    margin-bottom: 1.5rem;
}

.landing-subtitle {
    font-size: clamp(1.35rem, 6vh, 2.25rem);
    margin-bottom: 0.5rem;
}

.landing-date {
    font-size: clamp(0.8rem, 3vh, 1rem);
    margin-bottom: 1.5rem;
}

.landing-buttons {
    gap: 0.75rem;
}

/* Only compress spacing on genuinely short viewports (e.g. landscape phones) —
   the default spacing above should otherwise stay generous, not cramped. */
@media (max-height: 480px) {
    .landing-wrapper {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    .landing-photo,
    .landing-title,
    .landing-date {
        margin-bottom: 0.5rem;
    }

    .landing-subtitle {
        margin-bottom: 0.25rem;
    }

    .landing-buttons {
        gap: 0.5rem;
    }

    .choice-btn {
        --bs-btn-padding-y: 0.375rem;
        font-size: 1rem;
    }
}
