@font-face{font-family:Cormorant;src:url('../fonts/CormorantGaramond-Re.woff') format('woff');font-display:swap}
@font-face{font-family:Mirra;src:url('../fonts/Mirra.woff') format('woff');font-display:swap}
@font-face{font-family:Gogol;src:url('../fonts/Gogol-Regular.woff') format('woff');font-display:swap}
@font-face{font-family:Moniqa;src:url('../fonts/Moniqa-ExtraLightDis.woff') format('woff');font-display:swap}
@font-face{font-family:Betmo;src:url('../fonts/Betmo-RUS.woff') format('woff');font-display:swap}
@font-face{font-family:Antarctic;src:url('../fonts/Antarctic.woff') format('woff');font-display:swap}
@font-face{font-family:Classica;src:url('../fonts/CLASSICA-TWO.woff') format('woff');font-display:swap}
@font-face{font-family:GoodVibes;src:url('../fonts/Good-Vibes-Pro.woff') format('woff');font-display:swap}
@font-face{font-family:Pips;src:url('../fonts/PIPS.woff') format('woff');font-display:swap}
:root{--cream:#fffbf0;--ink:#5c3427;--orange:#ffbf35;--blue:#46c8f3;--pink:#f6469d;--green:#b9df4b;--coral:#f58b73;--soft:#fff4d9;--line:rgba(92,52,39,.22);--paper:#fffdf6}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cream)}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Cormorant,Georgia,serif;font-size:18px;line-height:1.38;overflow-x:hidden}
button,input,textarea{font:inherit}
a{color:inherit}
img{display:block;max-width:100%}
[hidden]{display:none!important}
.invitation{position:relative;width:100%;max-width:576px;margin:0 auto;background:var(--cream);overflow:hidden}
.invite-section{position:relative;padding:58px 34px;text-align:center;isolation:isolate}
.section-title{position:relative;z-index:2;font-family:Betmo,Cormorant,serif;font-size:clamp(42px,11vw,68px);font-weight:400;line-height:.92;letter-spacing:-.02em}
.section-title--orange{color:var(--orange)}
.script-title{position:relative;z-index:2;max-width:450px;margin:22px auto 18px;font-family:GoodVibes,Gogol,cursive;font-size:clamp(43px,12vw,72px);font-weight:400;line-height:.92;color:var(--green);transform:rotate(-2deg)}
.section-copy{position:relative;z-index:2;max-width:430px;margin:0 auto;font-size:clamp(17px,4.7vw,25px);line-height:1.32}
.section-copy--small{max-width:410px;font-size:clamp(16px,4.2vw,22px)}
.music-toggle{position:fixed;z-index:80;top:12px;right:max(12px,calc((100vw - 576px)/2 + 12px));display:flex;align-items:center;gap:7px;border:1px solid rgba(92,52,39,.17);border-radius:999px;padding:7px 11px 7px 8px;background:rgba(255,251,240,.92);backdrop-filter:blur(10px);color:var(--ink);cursor:pointer;box-shadow:0 7px 20px rgba(91,55,29,.08)}
.music-toggle__heart{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--pink);color:#fff;font-size:13px;line-height:1}.music-toggle__label{font:600 10px/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}.music-toggle.is-playing .music-toggle__heart{animation:musicBeat .7s ease-in-out infinite alternate}.music-toggle.is-playing .music-toggle__label::after{content:' •'}
@keyframes musicBeat{to{transform:scale(1.15) rotate(-6deg)}}

/* Hero — same narrow collage proportions as the source template */
.hero{min-height:620px;padding:25px 20px 36px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:var(--cream)}
.hero__frame{position:absolute;z-index:0;inset:0 auto auto 50%;width:min(100%,576px);height:100%;object-fit:fill;transform:translateX(-50%);pointer-events:none}
.hero__star{position:absolute;z-index:2;width:33px}.hero__star--one{left:12%;top:25%;transform:rotate(-14deg)}.hero__star--two{right:10%;top:45%;width:27px;transform:rotate(18deg)}
.hero__label{z-index:3;margin-top:2px;font-family:Antarctic,Gogol,cursive;font-size:clamp(32px,8vw,49px);line-height:.8;color:var(--orange);text-transform:uppercase;transform:rotate(-2deg)}
.hero__label::first-line{color:var(--orange)}
.hero__names{position:relative;z-index:4;width:100%;height:88px;margin-top:13px}
.hero__name{position:absolute;font-family:Pips,Gogol,cursive;font-size:clamp(42px,12vw,69px);line-height:1;text-transform:uppercase;white-space:nowrap}.hero__name--groom{left:7%;top:2px;color:var(--blue);transform:rotate(-10deg)}.hero__name--bride{right:5%;top:18px;color:var(--pink);transform:rotate(8deg)}
.hero__photo{position:relative;z-index:2;width:86%;max-width:430px;height:280px;margin-top:-12px;overflow:hidden;border-radius:48% 52% 13% 15%/14% 15% 4% 5%;background:#fff6df}
.hero__photo::after{content:'';position:absolute;inset:0;box-shadow:inset 0 -18px 18px var(--cream),inset 0 8px 12px var(--cream);pointer-events:none}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.97) contrast(.99)}
.hero__invite{position:relative;z-index:3;margin:0 auto 8px;font-size:clamp(16px,4vw,22px);line-height:1.12}
.hero__date{position:relative;z-index:3;padding:8px 20px;border-radius:999px;background:#fff0bf;color:var(--ink);font-family:Classica,Cormorant,serif;font-size:clamp(18px,4.8vw,27px);box-shadow:0 5px 0 rgba(255,191,53,.22)}
.hero__down{position:absolute;z-index:4;bottom:18px;left:50%;display:grid;place-items:center;width:42px;height:42px;border:1.5px solid var(--green);border-radius:50%;background:var(--cream);color:var(--green);text-decoration:none;transform:translateX(-50%);font-size:19px}

/* Intro */
.about{min-height:704px;padding-top:40px;padding-bottom:74px}
.decor-star{position:absolute;z-index:0}.decor-star--about{top:35px;right:12%;width:22px}
.about .section-title{font-size:clamp(43px,11vw,66px)}
.about .section-copy{margin-top:18px}
.calendar{position:relative;z-index:2;width:min(82%,360px);margin:38px auto 0;padding:22px 20px 19px;background:var(--paper);border:2px solid var(--green);border-radius:46% 54% 44% 56%/10% 11% 10% 12%;box-shadow:0 10px 0 rgba(185,223,75,.12);transform:rotate(-1deg)}
.calendar::before{content:'';position:absolute;inset:-10px -8px;border:1px dashed rgba(185,223,75,.8);border-radius:48% 52% 46% 54%/12% 10% 11% 9%;pointer-events:none}
.calendar__month{font-family:Betmo,Cormorant,serif;color:var(--orange);font-size:clamp(28px,7vw,42px);line-height:1;margin-bottom:15px}.calendar__weekdays,.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar__weekdays{margin-bottom:6px}.calendar__weekdays span{font:700 9px/1 Arial,sans-serif;color:#d19e26}.calendar__day{position:relative;display:grid;place-items:center;aspect-ratio:1;font-size:14px}.calendar__day--empty{visibility:hidden}.calendar__day--active{color:#fff;font-weight:700}.calendar__day--active::before{content:'♥';position:absolute;z-index:-1;font-size:42px;color:var(--pink);line-height:1;transform:translateY(-1px) rotate(-7deg)}
.about__bottom{position:absolute;z-index:0;left:0;bottom:0;width:100%;height:70px;image-rendering:auto}

/* Location */
.location{min-height:342px;padding-top:47px;padding-bottom:45px}
.location__name{position:relative;z-index:2;margin:20px auto 6px;font-family:GoodVibes,Gogol,cursive;font-size:clamp(35px,9vw,57px);font-weight:400;color:var(--green);line-height:.95}
.location__address{position:relative;z-index:2;max-width:340px;margin:10px auto 17px;font-size:clamp(17px,4.3vw,23px);line-height:1.25}
.underlined-link{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:clamp(16px,4vw,20px);border-bottom:1px solid currentColor;padding-bottom:2px}.underlined-link img{width:18px;filter:sepia(.6)}
.location__photo{position:absolute;z-index:0;object-fit:contain;image-rendering:auto;opacity:.92}.location__photo--left{left:2%;top:70px;width:16%;height:160px}.location__photo--right{right:0;bottom:0;width:15%;height:155px}.location__spark{position:absolute;right:10%;top:44px;width:18px}

/* Timing — centered list and small photo cutouts, as in original */
.timing{min-height:620px;padding-top:40px;padding-bottom:46px}
.timing .section-copy{margin-top:20px;margin-bottom:23px}
.timing-list{position:relative;z-index:2;width:100%;max-width:390px;margin:0 auto;display:grid;gap:5px}
.timing-item{position:relative;min-height:82px;display:flex;align-items:center;justify-content:center}
.timing-item__text{position:relative;z-index:2;width:56%;padding:3px 7px;background:rgba(255,251,240,.82)}
.timing-item__text h3{margin:0;font-family:Cormorant,serif;font-size:clamp(18px,4.5vw,24px);font-weight:500;line-height:1.05}.timing-item__text time{display:block;margin-top:3px;font-family:Moniqa,Cormorant,serif;font-size:clamp(26px,6.5vw,38px);line-height:1;color:var(--orange)}
.timing-item__photo{position:absolute;left:2%;top:50%;width:80px;height:72px;transform:translateY(-50%) rotate(-6deg);overflow:hidden;border-radius:42% 58% 51% 49%/54% 45% 55% 46%;background:rgba(255,255,255,.62);border:1px solid rgba(255,191,53,.35)}
.timing-item__photo--right{left:auto;right:2%;transform:translateY(-50%) rotate(6deg)}
.timing-item__photo img{width:100%;height:100%;object-fit:cover}.timing-item__photo img[src$=".svg"]{object-fit:contain;padding:12px}
.timing__decor{position:absolute;z-index:0;object-fit:contain;opacity:.65}.timing__decor--left-top{left:0;top:100px;width:20%;height:120px}.timing__decor--right-top{right:-2%;top:150px;width:18%;height:140px}.timing__decor--left-bottom{left:-1%;bottom:95px;width:18%;height:135px}.timing__decor--right-bottom{right:-2%;bottom:22px;width:20%;height:125px}

/* Dress code */
.dress{min-height:380px;padding-top:45px;padding-bottom:48px}
.dress .section-copy{margin-top:21px;max-width:390px}
.heart-palette{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:11px;flex-wrap:wrap;max-width:380px;margin:28px auto 16px}
.heart-palette span{position:relative;width:50px;height:46px;transform:rotate(-45deg);background:var(--heart-color);border-radius:7px 0 7px 0;box-shadow:0 5px 0 rgba(92,52,39,.05)}.heart-palette span::before,.heart-palette span::after{content:'';position:absolute;width:50px;height:46px;border-radius:50%;background:inherit}.heart-palette span::before{top:-25px;left:0}.heart-palette span::after{left:25px;top:0}.heart-palette span:nth-child(even){transform:translateY(7px) rotate(-45deg) scale(.9)}
.dress__words{position:relative;z-index:2;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:12px;font-family:GoodVibes,Gogol,cursive;font-size:clamp(29px,7vw,43px);line-height:1}.dress__words span:nth-child(1){color:var(--blue);transform:rotate(-4deg)}.dress__words span:nth-child(2){color:var(--pink);transform:rotate(3deg)}.dress__words span:nth-child(3){color:var(--green);transform:rotate(-2deg)}
.dress__photo{position:absolute;z-index:0;object-fit:contain;opacity:.8}.dress__photo--left{left:-1%;top:120px;width:17%;height:130px}.dress__photo--right{right:-1%;bottom:30px;width:18%;height:130px}

/* Wishes */
.wishes{min-height:400px;padding-top:48px;padding-bottom:54px}
.wishes-list{position:relative;z-index:2;margin:25px auto 0;max-width:430px}.wishes-list .section-copy{margin:0 auto}.wishes-list__divider{margin:14px auto;color:var(--orange);font-family:Betmo,serif;font-size:18px;letter-spacing:.15em}.wishes__spark{position:absolute;z-index:0}.wishes__spark--one{left:6%;top:35px;width:18px}.wishes__spark--two{right:7%;bottom:55px;width:17px}

/* Telegram */
.telegram{min-height:360px;padding-top:55px;padding-bottom:60px;background:#fff8dc}
.telegram__flowers{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:fill;opacity:.85}.telegram__stars{position:absolute;z-index:0;right:7%;top:22px;width:60px}.telegram .section-copy{margin-top:24px;max-width:390px}
.telegram-button{position:relative;z-index:2;display:inline-flex;align-items:center;gap:11px;margin-top:25px;padding:8px 15px 8px 9px;border:1px solid rgba(92,52,39,.25);border-radius:999px;background:var(--cream);text-decoration:none;font-size:20px;box-shadow:6px 6px 0 rgba(70,200,243,.24)}.telegram-button img{width:40px;height:40px}.telegram-button b{font-size:24px;color:var(--blue)}

/* RSVP */
.rsvp{padding-top:48px;padding-bottom:76px;background:var(--cream)}
.rsvp>.section-copy{margin-top:20px;max-width:410px}.rsvp__spark{position:absolute;z-index:0}.rsvp__spark--one{right:7%;top:28px;width:38px}.rsvp__spark--two{left:6%;top:100px;width:18px}.rsvp__bottom{position:absolute;z-index:0;left:0;bottom:0;width:100%;height:70px}
.rsvp-form{position:relative;z-index:2;display:grid;grid-template-columns:1fr;gap:17px;width:min(100%,430px);margin:28px auto 0;padding:24px 20px 26px;background:rgba(255,253,246,.97);border:1px solid rgba(92,52,39,.17);border-radius:35px 28px 39px 25px;box-shadow:0 12px 0 rgba(255,191,53,.12)}
.field{display:grid;gap:8px;text-align:left;min-width:0}.field>span,.field legend{font:700 11px/1.25 Arial,sans-serif;text-transform:uppercase;letter-spacing:.07em;color:#81533f}.field input[type=text],.field textarea{width:100%;border:0;border-bottom:1px solid rgba(92,52,39,.34);border-radius:0;background:transparent;padding:10px 2px 8px;outline:none}.field textarea{resize:vertical;min-height:80px}.field input:focus,.field textarea:focus{border-bottom-color:var(--pink);box-shadow:0 2px 0 rgba(246,70,157,.14)}fieldset.field{border:0;padding:0;margin:0}.choice-grid{display:grid;grid-template-columns:1fr;gap:7px}.choice-grid--two,.choice-grid--drinks{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid label{display:block}.choice-grid input{position:absolute;opacity:0;pointer-events:none}.choice-grid span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:7px 8px;border:1px solid rgba(92,52,39,.22);border-radius:999px;background:#fffdf7;text-align:center;font-size:15px;cursor:pointer;transition:.18s}.choice-grid input:checked+span{border-color:var(--pink);background:rgba(246,70,157,.08);box-shadow:inset 0 0 0 1px var(--pink);color:#a82569}.rsvp-conditional{display:grid;gap:17px}.submit-button{border:0;border-radius:999px;background:var(--orange);color:#fff;padding:11px 17px;display:flex;align-items:center;justify-content:center;gap:16px;font-family:Betmo,Cormorant,serif;font-size:25px;cursor:pointer;box-shadow:0 7px 0 rgba(255,191,53,.2);transition:.18s}.submit-button:hover{transform:translateY(-2px)}.submit-button i{font-style:normal;font-size:25px}.submit-button[disabled]{opacity:.55;cursor:wait}.form-message{padding:10px 12px;border-radius:15px;text-align:center;font-size:15px}.form-message.is-success{background:rgba(185,223,75,.18);color:#56790c}.form-message.is-error{background:rgba(246,70,157,.1);color:#a52266}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Countdown and contacts */
.countdown{min-height:270px;padding-top:50px;padding-bottom:55px}.countdown-line{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:start;max-width:440px;margin:33px auto 0}.countdown-line div{min-width:0}.countdown-line strong{display:block;font-family:Moniqa,Cormorant,serif;font-size:clamp(37px,9vw,58px);font-weight:400;line-height:.9;color:var(--pink)}.countdown-line div:nth-of-type(2) strong{color:var(--blue)}.countdown-line div:nth-of-type(3) strong{color:var(--green)}.countdown-line div:nth-of-type(4) strong{color:var(--orange)}.countdown-line span{display:block;margin-top:8px;font:600 9px/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em}.countdown-line i{font-family:Moniqa,serif;font-size:clamp(30px,7vw,46px);font-style:normal;color:var(--ink);opacity:.35;line-height:.8}
.organizer{min-height:360px;padding-top:45px;padding-bottom:60px}.organizer .section-copy{margin-top:22px}.organizer__heart{position:absolute;z-index:0;right:7%;top:32px;width:44px}.organizer-card{position:relative;z-index:2;width:min(82%,330px);margin:25px auto 0;padding:19px 16px;border:1px solid rgba(92,52,39,.23);border-radius:45% 55% 48% 52%/16% 17% 15% 15%;background:var(--paper)}.organizer-card>span{font:600 10px/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}.organizer-card h2{margin:8px 0 11px;font-family:GoodVibes,Gogol,cursive;font-size:clamp(35px,9vw,50px);font-weight:400;color:var(--pink);line-height:1}.organizer-card a{display:inline-flex;align-items:center;gap:7px;text-decoration:none;font-size:18px}.organizer-card a img{width:27px;height:27px}.contact-icons{position:relative;z-index:2;display:flex;justify-content:center;gap:9px;margin-top:15px}.contact-icons a{display:block}.contact-icons img{width:40px;height:40px}
.footer{min-height:310px;padding-top:55px;padding-bottom:42px}.footer__love{margin:0;font-family:GoodVibes,Gogol,cursive;font-size:clamp(38px,10vw,58px);color:var(--green);transform:rotate(-3deg)}.footer__names{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px;font-family:Pips,Gogol,cursive;font-size:clamp(36px,10vw,58px);line-height:1}.footer__names span:first-child{color:var(--blue);transform:rotate(-5deg)}.footer__names span:last-child{color:var(--pink);transform:rotate(5deg)}.footer__names i{font-family:Cormorant,serif;font-style:normal;color:var(--orange);font-size:.55em}.footer__date{margin:20px 0 0;font-size:18px}.footer__top{display:inline-block;margin-top:15px;font-size:14px;text-decoration:none;border-bottom:1px solid currentColor}.footer__star{position:absolute;z-index:0}.footer__star--one{left:8%;top:44px;width:38px}.footer__star--two{right:9%;bottom:60px;width:19px}

.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.js .reveal.is-visible{opacity:1;transform:none}
@media(min-width:577px){body{font-size:21px}.invitation{box-shadow:0 0 70px rgba(93,67,42,.07)}.invite-section{padding-left:54px;padding-right:54px}.hero{min-height:992px;padding-top:40px}.hero__names{height:136px}.hero__photo{height:448px}.hero__date{margin-top:3px}.about{min-height:1126px;padding-top:65px}.location{min-height:547px;padding-top:76px}.timing{min-height:930px;padding-top:65px}.timing-item{min-height:125px}.timing-item__photo{width:123px;height:108px}.dress{min-height:590px;padding-top:74px}.wishes{min-height:620px}.telegram{min-height:540px}.rsvp{padding-top:75px}.countdown{min-height:390px}.organizer{min-height:520px}.footer{min-height:450px}}
@media(max-width:430px){.invite-section{padding-left:23px;padding-right:23px}.hero{min-height:620px}.hero__photo{width:91%;height:267px}.hero__names{height:82px}.calendar{width:87%;padding-left:14px;padding-right:14px}.timing-item__photo{width:71px;height:65px}.heart-palette span{width:43px;height:40px}.heart-palette span::before,.heart-palette span::after{width:43px;height:40px}.heart-palette span::before{top:-22px}.heart-palette span::after{left:22px}.choice-grid--drinks{grid-template-columns:1fr}.countdown-line{column-gap:2px}.music-toggle{right:8px;top:8px}.music-toggle__label{display:none}}
@media(max-width:350px){.hero__name{font-size:38px}.hero__photo{height:245px}.hero__label{font-size:29px}.location__photo,.timing__decor,.dress__photo{opacity:.45}.timing-item__photo{width:62px;height:58px}.timing-item__text{width:63%}.countdown-line strong{font-size:34px}.countdown-line i{font-size:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.music-toggle__heart{animation:none!important}}
