/* Shared spacing and Russian editorial typography. */
:root{--section-gap:clamp(3rem,7vw,4.5rem);--gutter:clamp(1.25rem,5vw,2.5rem);--heading-gap:clamp(1.5rem,4vw,2rem);--paragraph-gap:1rem;--text-width:28rem}
body{font-size:1rem;line-height:1.65}p,legend,label{overflow-wrap:break-word;word-break:normal;hyphens:none}p{text-wrap:pretty}h2,h3{text-wrap:balance}h2{line-height:1.3}button,.button{max-width:100%;white-space:normal;font-size:.875rem;line-height:1.5;min-height:2.75rem}
.location,.dress,.rsvp{padding:var(--section-gap) var(--gutter)}.welcome{padding-inline:var(--gutter);padding-bottom:var(--section-gap)}.restored-schedule{padding-block:var(--section-gap)}.details-section{padding-top:var(--section-gap)}
.welcome>h2,.location>h2,.dress>h2,.rsvp>h2,.restored-schedule>h2,.details-section>h2{margin-bottom:var(--heading-gap)}.welcome-text,.dress>p,.dress .outfit-intro,.rsvp-intro{max-width:var(--text-width);font-size:1rem;line-height:1.65;margin-inline:auto}.welcome-text p+p{margin-top:.75rem}.dress .outfit-intro{margin-top:1.5rem;margin-bottom:1.5rem}.location h3{margin-top:0;margin-bottom:.5rem}.location .address{font-size:1rem;line-height:1.65}.swatches{margin-block:1.5rem}.rsvp-intro{margin-bottom:2rem}
.restored-lace .program-event p,.restored-lace .program-event:last-child p{font-size:.875rem;line-height:1.6}.restored-lace .program-event h3{font-size:1rem;line-height:1.5;margin-bottom:.5rem}.restored-lace .program-event{margin-bottom:1.75rem}.restored-lace .program-event:last-child{margin-bottom:0}.final-line{white-space:normal}
.detail-item p{font-size:1rem;line-height:1.7;max-width:27rem;margin-bottom:1.25rem}.detail-item h3{margin-bottom:.75rem}.details-section .detail-item{margin-bottom:3rem}.details-section .detail-item:last-child{margin-bottom:0}.details-section .details.has-photo{padding-block:5.5rem}.details-content{max-width:28rem}
.rsvp form{padding:clamp(1.25rem,5vw,2rem);border-radius:0;background:#5E6B4F}.rsvp label,.rsvp legend{font-size:1rem;line-height:1.5}.rsvp fieldset{margin-block:1.75rem}.rsvp fieldset label{min-height:2.75rem;padding-block:.5rem}.rsvp input:not([type=radio]):not([type=checkbox]):not([type=hidden]),.rsvp textarea{font-size:1rem;line-height:1.5}.rsvp .companions-label{margin-top:1.5rem}.rsvp-intro strong{font-weight:600}.rsvp-intro strong time{font:inherit}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ribbon-track{animation:none}}
@media(max-width:350px){.restored-lace .program-list{width:100%}.restored-lace .program-event:last-child p{font-size:.875rem}.countdown{flex-wrap:wrap}.details-section .details.has-photo{padding-inline:11%}}

/* Desktop invitation: continuous paper background and full-width garlands. */
.desktop-garland{display:none}
@media(min-width:900px){
 html,body{background:#f6f3ea;margin:0;padding:0;min-height:100%}
 main{max-width:none;width:100%;margin:0;background:#f6f3ea}
 main>section:not(.hero),main>footer{width:100%;max-width:760px;margin-left:auto;margin-right:auto}
 .hero{width:100%;height:820px;margin:0;padding:0;justify-content:center}
 .hero-copy{flex:0 1 660px;max-width:660px;margin:0 auto;padding:0 28px}
 .hero-chandelier,.hero-candles{width:760px;left:50%;right:auto;transform:translateX(-50%);height:820px}
 .hero-chandelier{clip-path:inset(0 25% 62% 25%)}
 .hero-candles{transform:translate(-50%,-12%)}
 .desktop-garland{display:block;position:absolute;top:0;width:calc(50% - 190px);height:311px;overflow:hidden;pointer-events:none;z-index:-1}
 .garland-left{left:0}.garland-right{right:0}
 .desktop-garland img{position:absolute;top:0;width:400%;max-width:none;height:820px;filter:url(#remove-lace-paper);object-fit:fill}
 .garland-left img{left:0}.garland-right img{right:0}
 .ribbon{width:100%}.ribbon-track>span{min-width:100vw;text-align:center}
 main>.welcome{margin-top:-60px}main>footer{padding-bottom:0}
}

/* Restore cover spacing; extend ornaments at their original scale. */
@media(min-width:900px){
 .hero{height:940px}.hero-copy{flex:0 1 760px;max-width:760px;padding:0 46px}
 .hero-chandelier,.hero-candles{height:940px;width:760px}
 .desktop-garland{height:357px;display:flex;align-items:flex-start}
 .garland-left{flex-direction:row-reverse}.garland-right{flex-direction:row}
 .garland-tile{display:block;flex:0 0 190px;height:357px;background-image:url('cover.png');background-size:760px 940px;background-repeat:no-repeat;filter:url(#remove-lace-paper)}
 .garland-left .garland-tile{background-position:left top}.garland-right .garland-tile{background-position:right top}.garland-tile:nth-child(even){transform:scaleX(-1)}
}
.ribbon-track{width:max-content;animation:marquee 36s linear infinite}.ribbon-track>.ribbon-group{display:flex;align-items:center;flex:none;min-width:0;white-space:nowrap}.ribbon-item{display:inline-flex;align-items:center;flex:none;gap:2.5rem;padding-inline:1.25rem}.ribbon-dot{font-size:1.1em}
.countdown{gap:clamp(8px,2vw,16px)}.countdown>div{width:clamp(60px,18vw,84px);height:clamp(60px,18vw,84px);padding:10px 6px;flex:none}.countdown small{font-size:12px;margin-top:7px;line-height:1.3}.countdown-label{font-weight:600;color:#5E6B4F;font-size:1rem}
@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none}}

/* One continuous sweep from the center, with room around the names. */
.continuous-garland{display:none}
@media(min-width:900px){
 .hero{height:1100px}.hero-chandelier,.hero-candles{height:1100px}
 .desktop-garland{display:none}.continuous-garland{display:block;position:absolute;inset:0 0 auto;width:100%;height:350px;color:#5E6B4F;z-index:-1;pointer-events:none}
 .hero-chandelier{height:940px;clip-path:inset(0 34% 62% 34%)}
 .hero-candles{transform:translate(-50%,-5%)}
}

/* Clean ornament boundaries and adjust the cover's vertical rhythm. */
.restored-schedule,.restored-lace{border:0;box-shadow:none}.restored-schedule::after,.restored-lace::after,.program-event::after{display:none!important}.restored-lace .lace-art{clip-path:inset(1px)}
@media(min-width:900px){
 .hero-candles{transform:translate(-50%,-11%)}
 .hero-chandelier{height:1040px;clip-path:polygon(46% 0,54% 0,54% 9%,66% 11%,66% 38%,34% 38%,34% 11%,46% 9%)}
}

/* One responsive cover and a frame whose center grows without squashing its ends. */
html,body,main{background:#f6f3ea;margin:0;min-width:0}main{width:100%;max-width:none}
main>section:not(.hero),main>footer{width:100%;max-width:760px;margin-inline:auto}
.hero{--cover-width:min(100vw,760px);height:clamp(660px,150vw,1080px);min-height:0;max-height:none;margin:0;padding:0;justify-content:center;overflow:hidden;border:0;box-shadow:none}
.hero-copy{flex:0 1 760px;max-width:760px;width:100%;padding:0 6%;margin:0 auto;z-index:1}
.hero-chandelier{width:var(--cover-width);height:auto;aspect-ratio:2/3;left:50%;right:auto;top:0;bottom:auto;transform:translateX(-50%);object-fit:contain;clip-path:polygon(46% 1%,54% 1%,54% 9%,66% 11%,66% 35%,34% 35%,34% 11%,46% 9%)}
.hero-candles{width:var(--cover-width);height:auto;aspect-ratio:2/3;left:50%;right:auto;top:auto;bottom:3rem;transform:translateX(-50%);object-fit:contain;clip-path:inset(70% 0 1% 0)}
.desktop-garland{display:none!important}.continuous-garland{display:block;position:absolute;top:0;left:0;width:100%;height:clamp(150px,25vw,310px);color:#5E6B4F;z-index:0;pointer-events:none}
main>.welcome{margin-top:0;padding-top:1.5rem;border:0;box-shadow:none}.hero::after,.welcome::before{display:none}
.restored-lace{--frame-end:clamp(110px,24vw,170px);position:relative;width:100%;max-width:700px;padding:calc(var(--frame-end) + 24px) 24%;height:auto;aspect-ratio:auto;isolation:isolate}
.restored-lace .lace-art{position:absolute;inset:0;width:100%;height:100%;border-style:solid;border-width:var(--frame-end) clamp(42px,17vw,125px);border-image-source:url('lace-frame.png');border-image-slice:500 190 500 190 fill;border-image-repeat:stretch round;border-image-width:1;filter:url(#remove-lace-paper);clip-path:inset(1px);z-index:-1;pointer-events:none}
.restored-lace .program-list{width:100%;max-width:100%;margin:0;transform:none;min-width:0}.restored-lace .program-event p,.restored-lace .program-event:last-child p{font-size:.875rem;line-height:1.6;max-width:100%;overflow-wrap:anywhere}.restored-lace .program-event h3{font-size:1rem;overflow-wrap:anywhere}.restored-lace .program-event time{font-size:clamp(32px,6vw,44px)}
@media(max-width:520px){.hero-copy h1{font-size:9vw}.hero-copy{padding-inline:7%}.restored-lace{padding-inline:23%}.restored-lace .program-event{margin-bottom:1.5rem}}

/* Whole runner artwork, without border-image slicing or repeated joins. */
.hero-candles{bottom:calc(3rem + 14px)}
.restored-lace{width:100%;max-width:560px;aspect-ratio:1/3;min-height:0;height:auto;padding:28% 16%;display:flex;align-items:center;justify-content:center}
.restored-lace .lace-art{border:0;border-image:none;background:none;clip-path:none;width:100%;height:100%;object-fit:fill;position:absolute;inset:0;filter:url(#remove-lace-paper)}
.restored-lace .program-list{width:100%;max-width:320px;margin:auto}.restored-lace .program-event p,.restored-lace .program-event:last-child p{max-width:100%;font-size:.875rem;line-height:1.6}.restored-lace .program-event{margin-bottom:1.75rem}.restored-lace .program-event:last-child{margin-bottom:0}
@media(max-width:520px){.restored-lace{padding:28% 16%}.restored-lace .program-event time{font-size:34px}.restored-lace .program-event h3{font-size:15px}}

.restored-lace{padding-inline:0}.restored-lace .program-list{width:50%;max-width:280px}

/* Art-directed versions of the same timing frame. */
.hero-candles{bottom:calc(3rem + 24px)}
.restored-lace{max-width:520px;aspect-ratio:1/3;padding:28% 0}.restored-lace .program-list{width:54%;max-width:300px}
.restored-lace picture.lace-art{display:block;border:0;background:none;filter:none}.restored-lace picture.lace-art img{display:block;width:100%;height:100%;object-fit:fill;filter:url(#remove-lace-paper)}
@media(min-width:768px){.restored-lace{max-width:720px;aspect-ratio:2/3;padding:26% 0}.restored-lace .program-list{width:46%;max-width:330px}.restored-lace .program-event{margin-bottom:1.5rem}.restored-lace .program-event:last-child{margin-bottom:0}}
.swans img{filter:url(#remove-lace-paper);width:100%;height:auto}

/* Five concise events, safely inside each frame's green center. */
.restored-lace{width:min(100%,300px);max-width:300px;aspect-ratio:1/3;padding:0;display:flex;align-items:center;justify-content:center}
.restored-lace .program-list{width:48%;max-width:none;flex:none;margin:0 auto;transform:translateY(-1%)}
.restored-lace .program-event{margin:0 0 1.75rem;padding:0}.restored-lace .program-event:last-child{margin-bottom:0}.restored-lace .program-event time{font-size:32px;line-height:1.15;display:block}.restored-lace .program-event h3{font-size:14px;line-height:1.5;font-weight:500;margin:5px 0 0;overflow-wrap:normal}
@media(min-width:768px){.restored-lace{width:460px;max-width:100%;aspect-ratio:2/3;padding:0}.restored-lace .program-list{width:46%}.restored-lace .program-event{margin-bottom:1.5rem}.restored-lace .program-event:last-child{margin-bottom:0}.restored-lace .program-event time{font-size:36px}.restored-lace .program-event h3{font-size:15px}}

/* Shorter transitions and an airy final signature. */
.location{padding-bottom:1rem}.restored-schedule{padding-top:1.25rem;padding-bottom:.5rem}.dress{padding-top:1rem}
main>footer{padding-bottom:3.5rem}.footer-year{font-family:Cormorant,Georgia,serif;font-size:1.5rem;font-weight:400;letter-spacing:.12em;line-height:1.4;margin:.5rem auto 0;text-align:center;color:#5E6B4F}
.swans img{filter:none;mix-blend-mode:multiply}

.swans img{filter:url(#swans-soft-paper);mix-blend-mode:normal}

/* Shared compact timing and reliable unfiltered swan artwork. */
.swans img{filter:none;mix-blend-mode:normal;background:transparent;display:block}
.location{padding-bottom:1.5rem;text-align:center}.location>.button{display:table;margin:0 auto}.restored-schedule{padding-top:1.5rem;padding-bottom:1rem;text-align:center}.restored-schedule>h2{margin-inline:auto;text-align:center;width:100%}.dress{padding-top:1.5rem}
.restored-lace{width:min(460px,100%);max-width:460px;aspect-ratio:2/3;padding:0;margin:0 auto;display:flex;align-items:center;justify-content:center}.restored-lace .program-list{width:46%;max-width:none;margin:auto;text-align:center;transform:translateY(-1%)}.restored-lace .program-event{margin:0 0 clamp(12px,2.8vw,24px)}.restored-lace .program-event:last-child{margin-bottom:0}.restored-lace .program-event time{font-size:clamp(25px,5.5vw,36px);line-height:1.15}.restored-lace .program-event h3{font-size:clamp(12px,2.8vw,15px);line-height:1.4;margin:4px 0 0}.restored-lace picture.lace-art{filter:none}.restored-lace picture.lace-art img{object-fit:fill}
.hero-candles{bottom:calc(3rem + 44px)}

/* Avoid SVG-filter edge artifacts around the timing artwork on mobile. */
.restored-lace picture.lace-art,.restored-lace picture.lace-art img{filter:none;border:0;outline:0;box-shadow:none;background:transparent}
.restored-lace picture.lace-art img{mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 1%,#000 99%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 1%,#000 99%,transparent)}

.chat-buttons{display:flex;justify-content:center;gap:12px;width:100%;margin:4px auto 0}.detail-item .chat-buttons button,.detail-item .chat-buttons .button{min-width:0;flex:1 1 0;max-width:180px;padding:12px 8px;margin:0;font-size:14px;text-transform:none}

/* Mobile-only painting: proportional crop, never independent X/Y scaling. */
@media(max-width:767px){
 .details-section .details.has-photo{background-image:linear-gradient(rgba(12,22,28,.48),rgba(12,22,28,.40)),url('winter-details-mobile.png')!important;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;min-height:0;height:auto;padding:48px 11% 56px;aspect-ratio:auto}
 .details-section .details-content{width:100%;max-width:440px}
 .details-section .detail-item{margin-bottom:24px}.details-section .detail-item:last-child{margin-bottom:0}
 .details-section .detail-item h3{font-size:38px;line-height:1.25;margin-bottom:8px}
 .details-section .detail-item p{font-size:14px;line-height:1.6;margin-bottom:14px}
 .details-section .detail-item button,.details-section .detail-item .button{min-height:44px;padding-top:10px;padding-bottom:10px}
}

/* Approved dress-code palette: four neutral shades, then four greens. */
.color-swatch{display:block;width:100%;aspect-ratio:1;border-radius:50%;border:0}
