@font-face{font-family:'Old Standard TT';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/OldStandardTT-Regular.woff2') format('woff2')}
@font-face{font-family:'Old Standard TT';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/OldStandardTT-Italic.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/CormorantGaramond-Regular.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/CormorantGaramond-Italic.woff2') format('woff2')}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/GreatVibes-Regular.woff2') format('woff2')}
:root{color-scheme:light;--ink:#45413C;--blue:#83A1B0;--paper:#F9F3EE;--line:#D8D0C8;--background:#D3DDE5}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--background) url('assets/watercolor.svg') repeat;font-family:'Cormorant Garamond';font-synthesis:none;font-size:20px;line-height:1.42;-webkit-font-smoothing:antialiased}svg{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}img{display:block;width:100%;height:auto}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.invitation{width:min(100%,480px);margin:0 auto;padding:54px 24px 54px}.hero{text-align:center;padding:0 3px 30px}figure{margin:0}.polaroid{padding:12px 12px 6px;background:#fffcf7;box-shadow:1px 7px 16px #4a535327;position:relative}.hero-photo{width:89%;margin:0 auto 40px;transform:rotate(-5deg)}.hero-photo:before{content:'';position:absolute;inset:-11px 17px 12px -9px;background:#f6f3ed;box-shadow:0 3px 8px #4a53531a;transform:rotate(-3deg);z-index:-1}.polaroid figcaption{min-height:40px;display:flex;align-items:center;justify-content:flex-end;padding:4px 7px 0}.hero-photo figcaption{justify-content:center;font-style:italic;font-size:29px;gap:12px;white-space:nowrap}.heart{width:31px;height:40px;display:inline-block;vertical-align:middle;flex-shrink:0;stroke-width:1.5}h1,h2,p{margin:0}h1{font-weight:400;font-size:clamp(32px,8.4vw,43px);line-height:1.15;letter-spacing:-1.6px;white-space:nowrap}h2{font-weight:400;font-size:clamp(30px,8vw,39px);font-style:italic;line-height:1.18;text-align:center;letter-spacing:-1px;margin-bottom:26px}.subtitle{font-size:26px;font-style:italic;margin:19px 0 12px}.wedding-date{display:flex;align-items:center;justify-content:center;gap:12px;font-size:29px;letter-spacing:2px}.wedding-date span{width:38px;height:1px;background:var(--line)}.heart-divider{display:flex;align-items:center;justify-content:center;gap:15px;margin:16px auto 0}.heart-divider span{width:85px;max-width:28%;height:1px;background:var(--line)}.card{border-radius:27px;background:var(--paper) url('assets/paper.svg');padding:38px 27px;margin:0 0 24px;box-shadow:0 2px 5px #7d929708}.welcome{text-align:center;padding:35px 32px 28px}.welcome .handwritten{font-size:clamp(62px,18vw,78px);letter-spacing:0;margin-bottom:23px;font-family:'Great Vibes';font-style:normal;font-weight:400;line-height:1.35}.welcome p{font-size:22px;line-height:1.45}.welcome>.heart{margin-top:22px}.calendar-card{padding:35px 24px 29px}.calendar-card h2{margin-bottom:30px}.calendar{border-collapse:collapse;table-layout:fixed;width:100%;font-size:19px;text-align:center}.calendar th{font-size:17px;font-weight:400;padding:3px 0 12px}.calendar td{height:43px;padding:0}.circled{display:inline-grid;place-items:center;position:relative;width:37px;height:37px;border:1.6px solid var(--blue);border-radius:50%;transform:rotate(-9deg)}.circled:after{content:'';position:absolute;inset:-4px -2px -2px -4px;border:1px solid var(--blue);border-radius:48% 52% 49% 51%;transform:rotate(24deg)}.wheel-photo{width:94%;margin:34px auto 12px;transform:rotate(4deg)}.wheel-photo figcaption{height:38px}.wave{display:block;width:100%;height:60px;color:var(--blue);stroke-width:1.4}.between-wave{margin:12px 0 16px;transform:rotate(-5deg)}.program{padding-bottom:39px}.program h2{margin-bottom:9px}.program>.wave{height:44px;margin-bottom:25px}.timeline{list-style:none;padding:0;margin:0;position:relative}.timeline:before{content:'';position:absolute;left:44%;top:6px;bottom:8px;width:1px;background:var(--line)}.timeline li{display:grid;grid-template-columns:44% 56%;position:relative;min-height:139px}.timeline li:last-child{min-height:96px}.timeline li:before{content:'';width:10px;height:10px;position:absolute;left:calc(44% - 4.5px);top:17px;background:var(--line);border:1px solid var(--blue);border-radius:50%}.timeline address{font-size:18px;line-height:1.28;align-self:start;padding:15px 16px 10px 0;overflow-wrap:break-word}.event{padding:0 0 25px 23px}.event time{font-size:31px;line-height:1.4}.event p{font-size:19px;line-height:1.25;hyphens:auto;overflow-wrap:anywhere}.details h2{margin-bottom:17px}.detail{display:grid;grid-template-columns:35px 1fr;gap:14px;padding:26px 0;border-bottom:1px solid var(--line)}.detail:last-of-type{border:0;padding-bottom:9px}.icon{width:35px;height:42px;stroke-width:1.3}.detail p{font-size:18px;line-height:1.38}.with-portrait{grid-template-columns:28px 1fr 85px;gap:10px;align-items:center;padding-top:16px}.with-portrait p{font-size:17px}.portrait{padding:5px 5px 13px;transform:rotate(7deg)}.portrait img{aspect-ratio:3/4;object-fit:cover}.details .heart-divider{margin-top:24px}.rsvp{text-align:center;padding-bottom:33px}.rsvp>p{font-size:21px;max-width:320px;margin:0 auto}.button{display:flex;justify-content:center;align-items:center;gap:18px;min-height:58px;background:var(--blue);color:#fffdf9;border-radius:40px;text-decoration:none;font-size:21px;padding:13px 18px;margin:29px auto 40px;box-shadow:inset 0 0 18px #ffffff14;transition:background .2s,transform .2s}.button-label{line-height:1.2;white-space:nowrap}.button-arrow{display:block;width:30px;height:22px;flex:0 0 30px;stroke-width:1.2}.button:hover{background:#7595A5;transform:translateY(-2px)}a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}.embrace-photo{transform:rotate(4deg);margin:0 -4px;padding-bottom:18px}.ending{text-align:center;padding-bottom:35px;margin-bottom:0}.contacts>p{font-size:19px;max-width:310px;margin:auto}.envelope{display:block;width:54px;height:40px;margin:22px auto 16px}dl,dd{margin:0}dl>div{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:10px}dt{font-size:23px;font-style:italic}dd{font-size:21px}dd a{color:inherit;text-decoration:none;white-space:nowrap;padding:7px 0;min-height:44px;display:inline-flex;align-items:center}dd a:hover{text-decoration:underline}.contact-wave{width:calc(100% + 54px);max-width:none;margin:28px -27px 25px}.countdown-section h2{font-size:34px;margin-bottom:23px}.countdown{display:grid;grid-template-columns:1.15fr auto 1fr auto 1fr auto 1fr;align-items:start;gap:4px;font-variant-numeric:tabular-nums}.countdown div{min-width:0}.countdown span{font-size:35px;line-height:1.2;letter-spacing:-1px}.countdown b{font-size:30px;font-weight:400;line-height:1.3}.countdown small{display:block;font-size:14px;margin-top:8px}.final-photo{margin:47px -5px 0;transform:rotate(-4deg)}.final-photo figcaption{height:38px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:700px){.invitation{padding-top:68px;padding-bottom:75px}.card{margin-bottom:28px}.hero{padding-bottom:37px}}
@media(max-width:359px){.invitation{padding-left:18px;padding-right:18px}.card{padding-left:21px;padding-right:21px}h1{font-size:31px}.hero-photo figcaption{font-size:24px}.wedding-date{font-size:25px}.timeline address{font-size:16px;padding-right:11px}.event{padding-left:17px}.event p{font-size:17px}.event time{font-size:28px}.detail{gap:10px;grid-template-columns:29px 1fr}.with-portrait{grid-template-columns:22px 1fr 68px;gap:8px}.with-portrait p{font-size:16px}.detail p{font-size:17px}dd{font-size:17px}dt{font-size:20px}dl>div{gap:12px}.countdown span{font-size:29px}.countdown small{font-size:12px}.countdown-section h2{font-size:29px}.button{font-size:18px;padding:13px}.contact-wave{width:calc(100% + 42px);margin-left:-21px;margin-right:-21px}}
@media(prefers-reduced-motion:no-preference){.reveal.is-pending{opacity:0;translate:0 16px}.reveal{transition:opacity .65s ease,translate .65s ease}}
@media print{body{background:var(--background)}.invitation{width:420px}.card,figure{break-inside:avoid}.reveal{opacity:1!important;translate:none!important}}

@media(max-width:374px){.button{font-size:18px;padding:13px;gap:14px}}

/* Детали исходного приглашения: бумага, графит и ботанические акценты. */
.card{position:relative}
h1{font-family:'Old Standard TT';font-size:clamp(36px,11.6vw,48px);letter-spacing:-1.5px}
h2{font-family:'Old Standard TT';font-size:clamp(32px,9.8vw,43px);font-style:italic;letter-spacing:-1.2px;line-height:1.2}
.subtitle{font-family:'Old Standard TT';font-size:28px}
.hero-photo{width:91%;margin-bottom:42px;padding:12px 12px 5px;isolation:isolate;transform:rotate(-5deg)}
.hero-photo:before{inset:-19px 27px 16px 6px;background:#f6f2ec;transform:rotate(-5deg);box-shadow:0 3px 9px #59636a25;z-index:-1}
.hero-photo:after{content:'';position:absolute;inset:6px 13px 20px -16px;background:#e7e4df;transform:rotate(-6deg);box-shadow:0 3px 10px #59636a20;z-index:-2}
.hero-photo figcaption{min-height:53px;gap:8px;padding:7px 0 1px 26px}
.hero-caption{font-family:'Great Vibes';font-style:normal;font-size:clamp(35px,10.6vw,47px);letter-spacing:.4px;line-height:1.2;white-space:nowrap}
.hero-photo figcaption .heart{width:26px;height:33px}
.decoration{pointer-events:none;position:absolute;user-select:none}
.hero-flowers{left:-37px;bottom:-5px;width:99px;height:auto;transform:rotate(-8deg);z-index:2}
.wedding-date{font-family:'Old Standard TT';font-size:30px;gap:13px;letter-spacing:2px}
.wedding-date span{width:48px;height:1px;flex:0 1 48px;background:linear-gradient(90deg,transparent,#9e9c95)}
.wedding-date span:last-child{transform:rotate(180deg)}
.hero .heart-divider{margin-top:13px;gap:13px}
.heart-divider span{width:89px;background:linear-gradient(90deg,transparent,#b0a9a0)}
.heart-divider span:last-child{transform:rotate(180deg)}
.welcome .handwritten{font-family:'Great Vibes';font-size:clamp(65px,19vw,83px);letter-spacing:0;line-height:1.32;margin-bottom:22px}
.welcome p{font-size:24px;line-height:1.36}
.calendar-card{padding-bottom:39px}
.calendar{font-family:'Old Standard TT';font-size:20px}
.calendar th{font-size:17px}
.circled{border:0;transform:none;width:37px;height:37px;isolation:isolate}
.circled:after{content:none}
.circled span{position:relative;z-index:1}
.date-mark{position:absolute;width:59px;height:77px;left:50%;top:50%;transform:translate(-50%,-35%);color:var(--blue);stroke-width:1.15;opacity:.94;overflow:visible}
.date-mark .date-rays{stroke-width:1.5}
.between-wave{width:78%;height:95px;margin:-4px -6px 3px auto;transform:none;stroke-width:1.2}
.program{padding-bottom:77px}
.program h2{margin-bottom:8px;white-space:nowrap}
.program>.wave:not(.program-tail){height:48px;margin-bottom:24px}
.program-foliage{left:-7px;bottom:-5px;width:165px;height:auto;opacity:.9;z-index:1}
.program>.program-tail{position:absolute;width:72%;height:89px;right:-4px;bottom:-4px;margin:0;stroke-width:1.2}
.timeline:before{background:#a69a8d}
.timeline li:before{background:#cbb89d;border-color:#aa9578}
.timeline address{font-size:20px;line-height:1.2}
.event p{font-size:21px;line-height:1.2}
.event time{font-family:'Old Standard TT';font-size:32px}
.detail p{font-size:21px;line-height:1.28}
.with-portrait{grid-template-columns:25px minmax(0,1fr) 112px;gap:10px;padding-top:27px;padding-bottom:27px}
.with-portrait p{font-size:19px;line-height:1.27}
.portrait{padding:6px 6px 16px;transform:rotate(7deg)}
.portrait-rays,.button-rays,.countdown-rays{position:absolute;pointer-events:none;width:43px;height:43px;color:var(--blue);stroke-width:1.5}
.portrait-rays{right:0;top:-35px;transform:rotate(-6deg)}
.rsvp{margin-top:88px}
.rsvp-flowers{width:133px;height:auto;right:-7px;top:-107px;z-index:1}
.rsvp>p{font-size:24px;line-height:1.3}
.button{position:relative;font-size:23px}
.button-rays{right:-13px;top:-37px;transform:rotate(10deg)}
.contacts>p{font-size:22px;line-height:1.3}
.contact-wave{stroke-width:1.3;margin-top:28px;margin-bottom:31px}
.countdown-section{position:relative}
.countdown-section h2{font-size:clamp(29px,8.9vw,39px);white-space:nowrap}
.countdown-rays{right:-8px;top:-35px;transform:rotate(5deg)}
.countdown span{font-family:'Old Standard TT';font-size:35px;letter-spacing:-1px}
.countdown small{font-family:'Old Standard TT';font-size:14px}
@media(max-width:374px){
 .button{font-size:21px;gap:13px;padding:13px}
 .hero-flowers{left:-30px;width:88px}
 .with-portrait{grid-template-columns:23px minmax(0,1fr) 99px;gap:8px}
 .with-portrait p{font-size:18px}
 .detail p{font-size:20px}
 .hero-photo figcaption{padding-left:21px;gap:5px}
}
@media(max-width:359px){
 h1{font-size:36px;letter-spacing:-1.2px}
 h2{font-size:32px}
 .subtitle{font-size:26px}
 .wedding-date{font-size:27px;gap:10px;letter-spacing:1.5px}
 .welcome p{font-size:22px}
 .timeline address{font-size:18px}
 .event p{font-size:19px}
 .event time{font-size:29px}
 .with-portrait{grid-template-columns:22px minmax(0,1fr) 91px;gap:7px}
 .with-portrait p{font-size:17px}
 .detail p{font-size:19px}
 .rsvp>p{font-size:22px}
 .rsvp-flowers{width:118px;top:-94px;right:-5px}
 .contacts>p{font-size:21px}
 .countdown span{font-size:29px}
 .countdown small{font-size:12px}
 .countdown-section h2{font-size:29px;letter-spacing:-1.3px}
}

/* Передний Polaroid целиком над двумя задними отпечатками. */
.hero-photo-stack{position:relative;isolation:isolate;width:91%;margin:0 auto 42px;transform:rotate(-5deg)}
.hero-photo-stack:before,.hero-photo-stack:after{content:'';position:absolute;pointer-events:none}
.hero-photo-stack:before{inset:-19px 27px 16px 6px;background:#f6f2ec;transform:rotate(-5deg);box-shadow:0 3px 9px #59636a25;z-index:1}
.hero-photo-stack:after{inset:6px 13px 20px -16px;background:#e7e4df;transform:rotate(-6deg);box-shadow:0 3px 10px #59636a20;z-index:0}
.hero-photo{width:100%;margin:0;isolation:auto;transform:none;position:relative;z-index:2;background:#fffcf7}
.hero-photo:before,.hero-photo:after{content:none}
.hero-flowers{left:-34px;bottom:9px;width:97px;transform:rotate(-7deg)}
@media(max-width:374px){.hero-flowers{left:-29px;bottom:10px;width:86px}}
