.wedding-prep-collage{display:grid;grid-template-columns:1.1fr 1fr;grid-template-rows:auto auto;gap:26px 30px;max-width:940px;margin:auto;align-items:start}.wedding-prep-collage>.photo:first-child{grid-column:1;grid-row:1/span 2}.wedding-prep-collage>.photo:nth-child(2){grid-column:2;grid-row:1;width:84%;margin:0 0 0 auto}.wedding-prep-collage>.paper-card{grid-column:2;grid-row:2;width:75%;max-width:280px;margin:-45px 0 0 8%;z-index:2;transform:rotate(-5deg)}.guest-keepsake.photo-only{display:block;max-width:600px;margin:45px auto 30px;padding:0 24px}.guest-keepsake.photo-only figure{max-width:450px;margin:auto}.guest-keepsake.photo-only .photo img{width:auto;height:auto;max-width:100%;max-height:500px;margin:auto}.alfa-paper:has(> .paper-card:only-child){margin-top:8px}@media(max-width:700px){.wedding-prep-collage{gap:14px;grid-template-columns:1.1fr 1fr}.wedding-prep-collage>.photo:nth-child(2){width:90%}.wedding-prep-collage>.paper-card{width:90%;margin:-12px 0 0 0}.guest-keepsake.photo-only{margin:30px auto 20px;padding:0 24px}.guest-keepsake.photo-only .photo img{max-height:52svh}}

/* Wedding stationery shares the scale and natural color of the surrounding photographs. */
.wedding-prep-collage>.paper-card{width:100%;max-width:none;margin:-18px 0 0;transform:rotate(-2deg);border:0;border-radius:12px;background:var(--paper);box-shadow:0 5px 14px #26343816;aspect-ratio:1.71}
.wedding-prep-collage>.paper-card img{filter:saturate(.95) contrast(.98) brightness(1.06);object-position:50% 50%}
.wedding-prep-collage>.paper-card:after{background:none;box-shadow:none}
@media(max-width:700px){.wedding-prep-collage>.paper-card{width:100%;margin:-4px 0 0;transform:rotate(-1deg);border-radius:8px}}

/* Consistent small, muted captions beneath photos and clips. */
main figcaption,main p.location-caption,main p.well-caption,main p.guest-media-caption{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:11px;font-weight:400;font-style:normal;line-height:1.65;letter-spacing:.04em;color:var(--muted);margin-top:14px;text-align:center}
main .dark figcaption,main .dark p.location-caption,main .dark p.well-caption,main .dark p.guest-media-caption{color:#d1ddd9}

/* A composed opening: the group portrait leads, with the guest passport alongside. */
.guest-opening-collage{max-width:1220px;margin:0 auto 55px;padding:0 4vw;display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.34fr);gap:26px;align-items:end}
.guest-opening-collage .guest-hero{padding:0;margin:0;width:100%;min-width:0}
.guest-opening-collage .guest-hero>.photo{background:transparent}
.guest-opening-collage .guest-keepsake.photo-only{padding:0;margin:0 0 35px -18px;max-width:none;position:relative;z-index:1;transform:rotate(3deg)}
.guest-opening-collage .guest-keepsake.photo-only figure{max-width:none}
.guest-opening-collage .guest-keepsake.photo-only .photo{border:7px solid var(--paper);border-radius:4px;box-shadow:0 7px 22px #24303620}
.guest-opening-collage .guest-keepsake.photo-only .photo img{width:100%;max-height:none;border-radius:0}
.home-story-navigation{max-width:1000px;margin:55px auto 0;text-align:left}
.home-story-navigation h3{font:400 13px/1.5 Inter,ui-sans-serif,system-ui,sans-serif;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 20px}
.home-story-links{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.home-story-links a{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:25px 28px;border:1px solid #58696d50;border-radius:16px;background:#f6f3ee88;transition:background .2s}
.home-story-links a:hover{background:var(--paper)}
.home-story-links span{font:400 25px/1.2 Georgia,serif;letter-spacing:-.02em}
.home-story-links small{grid-column:1;font-size:12px;color:var(--muted)}
.home-story-links b{grid-column:2;grid-row:1/3;align-self:center;font-size:24px;font-weight:400}
@media(max-width:700px){.guest-opening-collage{display:block;padding:0 18px;margin-bottom:35px}.guest-opening-collage .guest-keepsake.photo-only{width:39%;margin:-25px 7px 0 auto}.guest-opening-collage .guest-keepsake.photo-only .photo{border-width:4px}.home-story-links{grid-template-columns:1fr;gap:12px}.home-story-links a{padding:21px}.home-story-links span{font-size:23px}.home-story-navigation{margin-top:35px}}

/* Pair the wider edited terrace portrait with Darin without additional cropping. */
#before-the-ceremony{grid-template-columns:.72fr 1.28fr;align-items:center;gap:32px}
#before-the-ceremony>.photo:nth-child(2){margin-top:0}
#before-the-ceremony>.photo img{width:100%;height:auto;object-fit:contain}
@media(max-width:700px){#before-the-ceremony{grid-template-columns:1fr;gap:24px}#before-the-ceremony>.photo:first-child{width:65%;margin:0 auto}#before-the-ceremony>.photo:nth-child(2){width:100%}}

/* Preserve the edited violinist frame and balance the new village portraits. */
#ceremony-music .photo{aspect-ratio:auto;height:auto}
#ceremony-music .photo img{height:auto;max-height:none;object-fit:contain}
.village-portrait-pair{display:grid;grid-template-columns:.72fr 1.28fr;gap:30px;align-items:center}
.village-portrait-pair .photo img{height:auto;object-fit:contain}
@media(max-width:700px){.village-portrait-pair{grid-template-columns:1fr;gap:24px}.village-portrait-pair>.photo:first-child{max-width:80%;margin:auto}}

/* Family and Friends: a continuous featured story with clips in their event sequence. */
body[data-chapter="guests"] .guest-story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:38px 32px;align-items:center}
.guest-story-grid>.photo{margin:0!important;display:flex;align-items:center;justify-content:center;background:transparent}
.guest-story-grid>.photo img{width:auto;max-width:100%;height:auto;max-height:500px;object-fit:contain}
.guest-story-grid>.guest-story-video{margin:0;min-width:0}
.guest-story-video video{display:block;width:100%;height:auto;max-height:500px;object-fit:contain;border-radius:28px;background:var(--mist)}
body[data-chapter="guests"] #before-wedding{padding-top:65px;padding-bottom:55px}
body[data-chapter="guests"] #after-wedding{padding-top:45px;padding-bottom:60px}
body[data-chapter="guests"] .night-before-dinner{margin-top:65px;margin-bottom:0}
body[data-chapter="guests"] #guest-gallery{padding-top:60px}
@media(max-width:700px){body[data-chapter="guests"] .guest-story-grid{grid-template-columns:1fr;gap:28px}.guest-story-grid>.photo img,.guest-story-video video{max-height:65svh}.guest-story-video video{border-radius:22px}body[data-chapter="guests"] #before-wedding{padding-top:35px}.guest-story-grid>.photo{width:100%}}

.memory-carousel .carousel-status{position:static;width:auto;height:auto;min-height:20px;overflow:visible;clip:auto;clip-path:none;white-space:normal;margin:10px 0 0;padding:0;font:12px/1.6 Inter,ui-sans-serif,system-ui,sans-serif;color:var(--muted)}
.memory-track>li{position:relative}
.carousel-photo-number{position:absolute;left:12px;top:12px;z-index:2;pointer-events:none;background:#f6f3eef2;color:#243036;border:1px solid #24303620;border-radius:18px;min-width:29px;padding:3px 8px;text-align:center;font:12px/1.5 Inter,ui-sans-serif,system-ui,sans-serif;box-shadow:0 2px 6px #0001}

#favorite-moments>.photo.borgo-favorite-lead{grid-column:1/-1;height:min(65svh,560px);max-width:1050px;margin:0 auto;background:transparent}#favorite-moments>.photo.borgo-favorite-lead img{max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain}@media(max-width:700px){#favorite-moments>.photo.borgo-favorite-lead{height:auto;max-height:65svh}}

/* New walk portrait: keep the group and steps, trimming the empty sky above. */
#village-approach{max-width:760px}
#village-approach .photo{aspect-ratio:1/1;display:block;overflow:hidden}
#village-approach .photo img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center bottom}
/* Ceremony portrait: a tighter vertical frame with the couple and seated guests visible. */
#ceremony-compact{max-width:480px;margin:32px auto}
#ceremony-compact .photo{aspect-ratio:4/5;display:block;height:auto;overflow:hidden}
#ceremony-compact .photo img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:50% 85%}
@media(max-width:700px){#village-approach{max-width:100%}#ceremony-compact{max-width:min(100%,430px);margin:24px auto}}
