/* Airier reading rhythm, with the approved serif/sans pairing. */
#invitation .section{padding-top:110px;padding-bottom:110px}
#invitation .invitation{padding-top:110px;padding-bottom:130px}
#invitation .winter-gallery{padding-top:100px;padding-bottom:76px}
#invitation .section h2{font-size:20px;line-height:1.8;letter-spacing:0}
#invitation .invitation h2{font-size:22px;line-height:1.85}
#invitation .eyebrow{font-size:10px;letter-spacing:2.2px;margin-bottom:24px}
#invitation .invitation-copy{font-size:15px;line-height:2.15;letter-spacing:.02em}
#invitation .invitation-copy p+p{margin-top:48px}
#invitation .invitation-letter{margin-top:64px;margin-bottom:84px}
#invitation .sign{margin-top:64px;font-size:14px}
#invitation .invitation-rule{margin:64px auto}
#invitation .family{font-size:14px;line-height:2.8}
#invitation .family strong{font-size:15px}
#invitation .family small{font-size:12px}
#invitation .contact-invitation{margin-top:48px}
#invitation .subtitle{font-size:15px;line-height:2.1;margin-top:28px}
#invitation .button,#invitation .accounts summary{font-size:14px;min-height:56px}
#invitation .forest{font-size:16px}
#invitation .winter-gallery .gallery{margin-top:56px}
#invitation .all-photos-button{margin-top:26px}
#invitation .calendar{margin-top:48px;padding-top:30px;padding-bottom:30px}
#invitation .countdown{margin-top:44px}
#invitation .countdown strong{font-size:29px}
#invitation .day-message{margin-top:28px;font-size:13px}
#invitation .venue-map{margin-top:48px;margin-bottom:24px}
#invitation .travel-row{margin-top:40px;padding-top:32px;gap:14px}
#invitation .travel-row h3{font-size:16px}
#invitation .travel-row p{font-size:14px;line-height:2;margin-top:14px}
#invitation .venue-inquiry{margin-top:36px}
#invitation .accounts details:first-of-type{margin-top:44px}
#invitation .accounts details+details{margin-top:16px}
#invitation .rsvp>.button{margin-top:44px}
#invitation #guestbook-form{margin-top:44px;padding:22px}
#invitation .notes{margin-top:44px}
#invitation .note p{font-size:15px}
#invitation footer{padding-top:80px;padding-bottom:64px}
#invitation footer h2{font-size:20px}
/* Reset the former section-wide, one-time reveal. */
.motion .section.reveal{opacity:1;transform:none;transition:none}
.scroll-motion .scroll-reveal{opacity:0;translate:0 64px;transition:opacity 1.55s cubic-bezier(.22,.61,.36,1),translate 1.55s cubic-bezier(.22,.61,.36,1)}
.scroll-motion .scroll-reveal.is-visible{opacity:1;translate:0 0}
.scroll-motion .scroll-reveal:focus-within{opacity:1;translate:0 0}
.letter-ready .letter-paper{transition:transform 1.8s cubic-bezier(.22,.61,.36,1)}
.letter-ready.letter-open .letter-paper{transition-duration:1.8s}
.letter-ready:not(.letter-open) .letter-paper{transform:translateY(150px)}
/* Replay the cover when returning to it, with a clearer stagger. */
.scroll-motion .paper-hero:not(.hero-in-view) .title-small,
.scroll-motion .paper-hero:not(.hero-in-view) .title-large,
.scroll-motion .paper-hero:not(.hero-in-view) .paper-couple,
.scroll-motion .paper-hero:not(.hero-in-view) .paper-caption,
.scroll-motion .paper-hero:not(.hero-in-view) .paper-heart{animation:none;opacity:0}
.scroll-motion .hero-in-view .title-small{animation:title-in 1.6s .1s both}
.scroll-motion .hero-in-view .title-large{animation:paper-in 1.6s .35s both}
.scroll-motion .hero-in-view>.paper-couple{animation:paper-in 1.9s .45s both}
.scroll-motion .hero-in-view .paper-caption{animation:paper-in 1.8s .7s both}
.scroll-motion .hero-in-view .paper-heart{animation:heart-in 1.5s var(--delay) both,heart-float 4s calc(var(--delay) + 1.5s) ease-in-out infinite}
@keyframes paper-in{from{opacity:0;translate:0 42px}to{opacity:1;translate:0 0}}
@keyframes title-in{from{opacity:0;translate:-24px 30px;rotate:-6deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes heart-in{from{opacity:0;scale:.35;translate:0 26px}to{opacity:1;scale:1;translate:0 0}}
@keyframes heart-float{0%,100%{translate:0 0;rotate:-4deg}50%{translate:0 -10px;rotate:5deg}}
.snowfall img{animation-duration:calc(var(--duration) * .78)}
@keyframes snow-drift{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}6%{opacity:.95}90%{opacity:.85}100%{opacity:0;transform:translate3d(calc(var(--drift) * 2),calc(var(--snow-height) + 170px),0) rotate(200deg)}}
@media(max-width:360px){#invitation .section{padding-top:96px;padding-bottom:96px}#invitation .invitation{padding-bottom:116px}#invitation .winter-gallery{padding-top:90px;padding-bottom:64px}#invitation .invitation h2{font-size:21px}#invitation .invitation-copy{font-size:15px}}
@media(prefers-reduced-motion:reduce){.scroll-motion .scroll-reveal{opacity:1;translate:none;transition:none}.letter-ready .letter-paper{transform:none!important;transition:none}}
