/* Second edition: theatrical snowfall, Kudry lettering and illustrated keepsakes. */
@font-face{font-family:Kudry;src:url('assets/kudry-headline.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#e8e5de;--ink:#354f65;--muted:#5f7383;--display:Kudry,Cormorant,Georgia,serif}
body{background:#b9c5cb}
body::before{background:radial-gradient(ellipse at 50% 25%,#dde2e2 0,transparent 68%),repeating-linear-gradient(90deg,transparent 0,transparent 99px,#8499a21c 100px,#8499a21c 101px)}
.invitation-book{box-shadow:0 0 90px #30495720}
.desktop-note{color:#526a7d}
h2,.hero h1,.curtain-title,.signature,.location-chapter h3,.dress-notes span{font-family:var(--display);font-weight:400;letter-spacing:-.4px}
h2{font-size:clamp(34px,8.8vw,43px);line-height:1.09}
h2 em{font-family:inherit;font-style:normal}
.hero h1{font-size:clamp(53px,13.8vw,72px);line-height:1.02;margin-top:23px;letter-spacing:-1px}
.hero h1 i{font-family:Golos,Arial,sans-serif;font-style:normal;font-size:25px;line-height:1;margin:8px 0 9px}
#hero-title:focus{outline:none}
.monogram{letter-spacing:-1px}
.monogram>span,.seal-amp{font-family:Golos,Arial,sans-serif!important;font-style:normal!important;font-weight:400;letter-spacing:0!important}
.monogram>span{font-size:17px;padding:0 3px}
.seal-button>span{letter-spacing:-1px;margin-left:0;font-family:var(--serif);font-size:38px}
.seal-amp{font-size:25px!important;margin:0 3px!important}
.curtain-title{font-size:37px;line-height:1.16}
.hero-art{aspect-ratio:1/1.1;margin-top:-14px}
.hero-art img{bottom:-2px}
.hero-art .snowfall{display:none}
.intro-chapter{padding-top:80px;padding-bottom:75px}
.intro-chapter h2{font-size:35px}
.date-chapter{padding-top:44px;padding-bottom:88px}
.date-frame h2{font-size:29px}
.date-frame::before{border-color:#a8946770}
.date-frame #date-caption{font-size:20px}
.location-chapter{background:#d2dce17a;padding-bottom:62px}
.location-chapter::before{background:#d2dce17a}
.palace-window{width:calc(100% + 28px);max-width:none;aspect-ratio:4/5;border-radius:48% 48% 2px 2px;margin:30px -14px 27px;padding:6px;border-color:#99adb9;background:#cbd4d826}
.palace-window img{width:100%;height:100%;object-fit:cover;object-position:center;transform:none;border-radius:48% 48% 0 0;mix-blend-mode:multiply}
.palace-window::after{border-radius:48% 48% 0 0;border-color:#ad987756}
.window-star{top:3px;background:var(--paper);color:#917b50}
.location-chapter h3{font-size:32px;line-height:1.17}
.location-chapter #venue-address{max-width:360px;margin-left:auto;margin-right:auto}
.program-chapter{padding-top:83px;padding-bottom:91px}
.program-chapter h2{font-size:39px}
.timeline{position:relative;z-index:1}
.timeline h3{font-size:25px}
.timeline-mark{color:#738da1}
.dress-chapter{padding-top:70px;padding-bottom:67px}
.ribbon-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:33px -6px 30px;padding:0 0 10px;align-items:start}
.ribbon-item:nth-child(even){padding-top:15px}
.fabric-ribbon{display:block;width:100%;height:185px;position:relative;background:linear-gradient(90deg,var(--shade),var(--fabric) 20%,var(--shine) 57%,var(--fabric) 80%,var(--shade));box-shadow:3px 6px 9px #273e5420;border-radius:2px 2px 40% 7%;transform:rotate(-1deg)}
.ribbon-item:nth-child(2) .fabric-ribbon{height:197px;transform:rotate(1deg)}
.ribbon-item:nth-child(3) .fabric-ribbon{height:193px}
.ribbon-item:nth-child(4) .fabric-ribbon{height:181px;transform:rotate(1deg)}
.ribbon-item:nth-child(5) .fabric-ribbon{height:200px}
.fabric-ribbon::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,#fff1 0,#fff1 1px,transparent 1px,transparent 3px);opacity:.4;mix-blend-mode:soft-light;border-radius:inherit}
.fabric-ribbon::after{content:"";position:absolute;bottom:-3px;left:0;width:100%;height:32px;border-radius:45% 15% 45% 15%;background:linear-gradient(180deg,var(--shade),var(--fabric) 17%,var(--shine) 46%,var(--fabric) 69%,var(--shade));box-shadow:0 6px 8px #263f5524}
.ribbon-label{display:block;font-family:var(--serif);font-size:15px;line-height:1.1;margin-top:21px;color:#354f65}
.dress-notes{border-top:1px solid #a6b5bf70;padding-top:23px;gap:14px}
.dress-notes span{font-size:26px;margin-bottom:11px}
.dress-notes p{font-size:10px;line-height:1.9}
.details-chapter{padding-top:74px;padding-bottom:65px;background:#d4dce07a}
.details-chapter details{position:relative;z-index:1}
.rsvp-chapter{padding-top:77px}
.rsvp-chapter h2{font-size:35px}
.countdown-chapter h2{font-size:38px}
.countdown-chapter{padding-bottom:35px}
.sticker{position:absolute;z-index:3;object-fit:contain;pointer-events:none;user-select:none;width:80px;height:80px;max-width:none;animation:sticker-sway 6s ease-in-out infinite;transform-origin:50% 70%;filter:drop-shadow(0 4px 4px #354f6512)}
.sticker-fan{width:94px;height:94px;left:10px;top:-13px;--tilt:-12deg}
.sticker-carriage{width:98px;height:98px;right:6px;bottom:-25px;--tilt:5deg;animation-delay:-2s;animation-duration:7s}
.sticker-ballerina{width:86px;height:110px;right:0;bottom:-31px;--tilt:8deg;animation-delay:-3s;animation-duration:8s}
.sticker-piano{width:105px;height:105px;left:4px;top:-43px;--tilt:-5deg;animation-delay:-1s;animation-duration:7.5s}
.sticker-fan-second{width:78px;height:78px;right:8px;top:-12px;--tilt:16deg;animation-delay:-4s}
.site-snow{position:fixed;inset:0;z-index:12;pointer-events:none;overflow:hidden;contain:strict}
.site-snow i{position:absolute;left:var(--x);top:-15px;width:var(--size);height:var(--size);border-radius:50%;background:#fff;box-shadow:0 0 4px #ffffff50;opacity:0;animation:site-snowfall var(--duration) linear var(--delay) infinite}
.site-snow i:nth-child(8n){filter:blur(.7px)}
.snow-paused i{animation-play-state:paused}
.chapter{transform-origin:center top;isolation:isolate}
.farewell-chapter{padding:0 0 30px;margin-top:9px}
.farewell-scene{position:relative;isolation:isolate;width:100%;min-width:0;min-height:650px;aspect-ratio:520/710;overflow:hidden;background:#d4dce0}
.dancing-couple{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 24%;margin:0;mix-blend-mode:multiply;transform-origin:50% 75%;animation:final-waltz 10s ease-in-out infinite;opacity:.84}
.farewell-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--paper) 0,transparent 13%,transparent 27%,#e8e5de1a 37%,#e8e5dec4 63%,var(--paper) 94%);z-index:1;pointer-events:none}
.farewell-caption{position:absolute;z-index:2;left:15px;right:15px;bottom:39px;text-shadow:0 1px 15px #e8e5de}
.farewell-caption>.eyebrow{font-size:8px;letter-spacing:1.9px}
.farewell-caption h2{font-size:44px;line-height:1.06;margin:20px 0 17px;color:#324f68}
.farewell-your{font-size:23px;line-height:1.3}
.signature{font-size:31px;font-style:normal;line-height:1.35;margin-top:7px;letter-spacing:-.5px}
.signature span{font-family:Golos,Arial,sans-serif;font-style:normal;font-size:18px;margin:0 2px;color:#8b764e}
.farewell-caption .footer-rule{margin-top:17px}.farewell-caption .footer-note{margin-top:13px}
.farewell-chapter .back-top{margin-top:0}
.floating-nav{background:#e8e5def0}
.drink-options input:checked+span::before{content:"";display:inline-block;width:7px;height:4px;border-left:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(-45deg);margin:0 7px 3px 0}
@keyframes site-snowfall{0%{opacity:0;transform:translate3d(0,-12px,0)}7%{opacity:var(--alpha)}92%{opacity:var(--alpha)}100%{opacity:0;transform:translate3d(var(--drift),calc(100dvh + 25px),0)}}
@keyframes sticker-sway{0%,100%{transform:rotate(calc(var(--tilt,0deg) - 6deg)) translateY(0)}50%{transform:rotate(calc(var(--tilt,0deg) + 6deg)) translateY(-5px)}}
@keyframes final-waltz{0%,100%{transform:scale(1.04) rotate(-1deg)}50%{transform:scale(1.06) rotate(1deg)}}
@media(max-width:370px){.hero h1{font-size:50px}.curtain-title{font-size:33px}.intro-chapter h2{font-size:32px}.program-chapter h2{font-size:34px}.rsvp-chapter h2{font-size:30px}.ribbon-palette{gap:7px}.fabric-ribbon{height:155px}.ribbon-item:nth-child(2) .fabric-ribbon{height:163px}.ribbon-item:nth-child(3) .fabric-ribbon{height:161px}.ribbon-item:nth-child(4) .fabric-ribbon{height:150px}.ribbon-item:nth-child(5) .fabric-ribbon{height:165px}.ribbon-label{font-size:13px}.farewell-caption h2{font-size:40px}.signature{font-size:27px}.farewell-scene{min-height:590px}.sticker-fan{width:82px;height:82px}.sticker-piano{width:91px;height:91px}}
@media(prefers-reduced-motion:reduce){.site-snow{display:none}.sticker,.dancing-couple{animation:none!important}}
@media print{.site-snow,.sticker{display:none}}

/* Final editorial refinements. */
.monogram,.monogram>span{font-family:var(--display)!important;font-style:normal!important}
.monogram{font-size:31px;letter-spacing:0}.monogram>span{font-size:22px;padding:0 3px}
.hero .hero-salutation,.hero-prelude,.hero-prelude em,.hero-invite{font-family:var(--serif);font-style:normal;font-size:25px;line-height:1.23;letter-spacing:0;text-transform:none}
.hero-prelude{margin-top:6px}.hero h1{margin-top:42px;margin-bottom:24px}
.hero-invite{font-size:25px;position:relative;z-index:2}.hero-art{margin-top:0}
.date-number{font-size:65px;letter-spacing:-1px;font-style:normal;white-space:nowrap;line-height:1.2}
.date-month{font-size:14px;letter-spacing:4px;margin-top:12px}
#details-title,#rsvp-title{font-family:var(--serif);font-style:normal;font-weight:400;font-size:40px;letter-spacing:0;line-height:1.12;font-variant-ligatures:none}
#details-title em,#rsvp-title em{font-family:inherit;font-style:normal}
.timeline li{padding-bottom:37px;align-items:center}.timeline li:last-child{padding-bottom:0}
.palette{margin:33px 0 25px;align-items:flex-start}.palette span{width:49px;height:49px}.palette small{font-size:9px;line-height:1.3;display:block}
.dress-image{margin-top:7px;margin-bottom:25px}.dress-notes{padding-top:21px}
.wishlist-link{text-decoration:underline;text-underline-offset:4px;color:#355f7d}
#wishlist-note{font-size:11px;margin-top:12px;color:#617689}
@media(max-width:370px){.hero .hero-salutation,.hero-prelude,.hero-prelude em,.hero-invite{font-size:23px}.date-number{font-size:51px}.palette span{width:41px;height:41px}.palette small{font-size:8px}#details-title,#rsvp-title{font-size:35px}}

/* Original satin palette, now displayed in circular swatches. */
.palette span{background:linear-gradient(105deg,var(--shade),var(--fabric) 24%,var(--shine) 58%,var(--fabric) 83%,var(--shade));border:0;box-shadow:inset 0 0 0 1px #ffffff35,0 3px 7px #354f6520}
.seal-button>span,.seal-button .seal-amp{font-family:var(--display)!important;font-style:normal!important;letter-spacing:0!important}
.seal-button>span{font-size:38px;margin:0}.seal-button .seal-amp{font-size:27px!important}

/* Once revealed, elements remain in place and visible in both scroll directions. */
.scroll-appearance{opacity:0;transform:translateY(20px);transition:opacity .65s ease var(--appear-delay,0ms),transform .65s cubic-bezier(.2,.65,.3,1) var(--appear-delay,0ms)}
.scroll-appearance.has-appeared{opacity:1;transform:none}
.scroll-appearance:focus-within{opacity:1;transform:none}
.dress-image,.dress-image img{background:transparent;mix-blend-mode:normal}
@media(prefers-reduced-motion:reduce){.scroll-appearance{opacity:1;transform:none;transition:none}}
@media print{.scroll-appearance{opacity:1;transform:none}}

/* Both languages share the invitation layout. */
.language-switch{display:flex;gap:5px;align-items:center;font:10px var(--sans);letter-spacing:.4px;margin-left:auto;white-space:nowrap}.language-switch a{padding:12px 2px;color:#71818b}.language-switch a[aria-current]{color:#354f65;text-decoration:underline;text-underline-offset:5px}.masthead>span{margin-left:10px;margin-right:8px;font-size:7px;letter-spacing:1px}.masthead .replay{width:28px;margin-left:7px}.curtain-languages{position:absolute;bottom:95px;display:flex;gap:16px;font:11px var(--sans);letter-spacing:1px}.curtain-languages a{padding:10px}.curtain-languages a[aria-current]{text-decoration:underline;text-underline-offset:5px}
:lang(en) .hero-invite{font-size:23px}:lang(en) .hero h1{font-size:clamp(49px,13vw,68px)}:lang(en) .date-number{font-size:60px}:lang(en) .program-chapter h2{font-size:39px}:lang(en) .timeline h3{font-size:24px}:lang(en) .signature{font-size:29px}:lang(en) .farewell-caption h2{font-size:43px}:lang(en) .location-chapter h3{font-size:30px}
@media(max-width:370px){.language-switch{font-size:9px}.masthead>span{font-size:6px;letter-spacing:.7px}.masthead .replay{width:23px;margin-left:3px}:lang(en) .hero-invite{font-size:21px}:lang(en) .date-number{font-size:49px}:lang(en) .timeline h3{font-size:22px}:lang(en) .signature{font-size:25px}:lang(en) .program-chapter h2{font-size:35px}}

/* Compact three-line greeting, a single continuous arrow and agency contact. */
.hero .hero-salutation,.hero .hero-prelude{line-height:1.15;margin-top:0;margin-bottom:0}
.hero .hero-prelude em{font-size:inherit;line-height:inherit}
.scroll-invitation .scroll-line{position:relative;display:block;width:1px;height:38px;margin:16px auto 5px;background:currentColor}
.scroll-invitation .scroll-line::after{content:"";position:absolute;left:50%;bottom:0;width:8px;height:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateX(-50%) rotate(45deg);transform-origin:center}
.agency-chapter{padding:55px 28px 65px;text-align:center}
.agency-contact{font-family:var(--serif);font-style:italic;font-size:27px;line-height:1.3}
.agency-contact p+p{margin-top:6px}.agency-contact a{display:inline-block;padding:5px 0;text-underline-offset:5px}.agency-caption{font-style:normal;margin:22px auto 0;max-width:330px;font-size:12px;line-height:1.8}
html.curtain-pending #curtain[hidden]{display:flex!important}
html.curtain-pending body{overflow:hidden}
.scroll-appearance{transform:translateY(26px);transition-duration:.85s}
.scroll-appearance.has-appeared{transform:none}
@media(prefers-reduced-motion:reduce){.scroll-appearance{transform:none}}

/* October review: centred masthead, framed organisers, floating carriage. */
:lang(en) .hero h1{margin-top:30px;margin-bottom:20px}
:lang(en) .hero-art{margin-top:18px}
.location-chapter .sticker-carriage{top:-56px;bottom:auto;z-index:5}
.agency-frame{position:relative;border:1px solid #ab956f;padding:37px 20px 30px;background:linear-gradient(135deg,#f8f5ed66,#dbe5e933);box-shadow:0 7px 25px #354f6508}
.agency-frame::before{content:"";position:absolute;inset:6px;border:1px solid #8da4b566;pointer-events:none}
.agency-frame::after{content:"❦";position:absolute;top:-19px;left:50%;transform:translateX(-50%);padding:0 12px;background:var(--paper);color:#aa956f;font:29px var(--serif)}
.agency-contact .agency-heading{font-size:25px;line-height:1.2;margin-bottom:22px}
.agency-caption{letter-spacing:1px;font-size:10px;margin-top:22px}
@media(max-width:370px){.agency-frame{padding-left:14px;padding-right:14px}}

/* Restore the corner-aligned masthead and lift its replay ornament. */
.masthead{justify-content:space-between}
.masthead .replay{transform:translateY(-1mm)}
