@media (min-width: 640px) {
    .choice-grid { grid-template-columns: 1fr 1fr; }
    .btn, button.btn { width: auto; }
    .rsvp-form .btn { width: 100%; }
}
@media (min-width: 768px) {
    .parents-grid, .parents-names, .split, .dress-photos { grid-template-columns: 1fr 1fr; }
    .gallery-grid:not(.is-collage) { grid-template-columns: repeat(3, 1fr); }
    .gifts-grid { grid-template-columns: 1fr 1fr; }
    .photos-night-grid { grid-template-columns: repeat(3, 1fr); }
    .padrinos-grid { grid-template-columns: repeat(2, 1fr); }
    .section { padding: 110px 0; }
    .paper-card { padding: 48px 40px 40px; }
    .rsvp-card { padding: 48px 40px 40px; }
    .story-card { flex-basis: auto; }
    .dress-shot img { height: 320px; }
    .gallery-grid.is-collage { grid-auto-rows: 96px; }
}
@media (min-width: 1024px) {
    .gallery-grid:not(.is-collage) { grid-template-columns: repeat(4, 1fr); }
    .padrinos-grid { grid-template-columns: repeat(4, 1fr); }
    .wrap { width: min(1100px, calc(100% - 64px)); }
    .gifts-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
    .coming-soon-copy .script-names.cover-names {
        font-size: clamp(2.85rem, 14.5vw, 4.8rem);
        letter-spacing: 2px;
    }
    .coming-soon-soon {
        font-size: calc(clamp(1.55rem, 7.8vw, 2.15rem) - 5px);
    }
    .countdown {
        display: flex;
        justify-content: center;
        gap: 8px;
        flex-wrap: nowrap;
    }
    .count-card strong { font-size: clamp(1.35rem, 7vw, 1.85rem); }
    .count-card span { font-size: .58rem; letter-spacing: .08em; }
    .film-pin { height: 280vh; }
    .story-pin { height: 520vh; }
    .story-card {
        flex-basis: auto;
        width: max-content;
        display: flex;
        height: 100%;
        min-height: 0;
        padding-top: 0;
    }
    .story-copy {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        align-self: center;
        width: 58vw;
        min-width: 58vw;
        max-width: 58vw;
    }
    .story-photo {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        width: auto;
        max-width: none;
        max-height: none;
        height: 100%;
        transform: none;
        align-self: stretch;
    }
    .itinerary-icon {
        width: 74px;
        height: 74px;
    }
    .itinerary-icon svg { width: 66px; height: 66px; }
    .itinerary-copy h3 { letter-spacing: .12em; }
    .wrap,
    .wrap.narrow { width: calc(100% - 24px); }
    .section { padding: 64px 0; }
    .script-names { font-size: clamp(2.2rem, 9vw, 3.4rem); letter-spacing: .01em; }
    .script-names.cover-names { font-size: clamp(1.7rem, 6.8vw, 2.35rem); }
    .film-copy { padding-bottom: 88px; }
    .paper-card {
        padding: 28px 16px 24px;
        border-radius: 16px;
    }
    .rsvp-card {
        padding: 24px 16px 28px;
        border-radius: 16px;
        box-shadow: none;
        border: 1px solid rgba(26, 26, 26, .08);
    }
    .rsvp-form { gap: 16px; }
    .rsvp-form input,
    .rsvp-form select,
    .rsvp-form textarea {
        font-size: 16px;
        min-height: 52px;
    }
    .choice-card {
        min-height: 68px;
        font-size: 1.02rem;
    }
    .rsvp-form .btn {
        width: 100%;
        max-width: none;
        min-height: 54px;
    }
    .timeline li { grid-template-columns: 108px 1fr; }
    .gallery-grid.is-collage {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 72px;
    }
    .gallery-grid.is-collage .gallery-item:nth-child(1) { grid-column: 1 / 3; grid-row: span 3; }
    .gallery-grid.is-collage .gallery-item:nth-child(2) { grid-column: 1 / 2; grid-row: span 2; }
    .gallery-grid.is-collage .gallery-item:nth-child(3) { grid-column: 2 / 3; grid-row: span 2; }
    .gallery-grid.is-collage .gallery-item:nth-child(4) { grid-column: 1 / 2; grid-row: span 2; }
    .gallery-grid.is-collage .gallery-item:nth-child(5) { grid-column: 2 / 3; grid-row: span 2; }
    .gallery-grid.is-collage .gallery-item:nth-child(6) { grid-column: 1 / 3; grid-row: span 3; }
    .gallery-grid.is-collage .gallery-item:nth-child(7) { grid-column: 1 / 3; grid-row: span 3; }
    .dress-photos { grid-template-columns: 1fr; }
    .dress-shot img { height: 240px; }
}
