@charset "UTF-8";
@font-face{font-family:'Marck Script';font-style:normal;font-weight:400;font-display:swap;src:url('/script.ttf') format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('/serif.ttf') format('truetype')}
:root{--paper:#f6f4ef;--ink:#494b48;--muted:#70746e;--blue:#dbe7ed;--blush:#eedce0;--sage:#dce3d6;--accent:#586a63;--line:#d5d9d3;--serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;--script:'Marck Script','URW Chancery L',Georgia,cursive;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans)}a{color:inherit}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #657e77;outline-offset:5px}.script{font-family:var(--script);font-weight:400}.small-caps{font-size:12px;letter-spacing:3px;line-height:1.8}.section{padding:92px 24px;max-width:1200px;margin:auto}.section-heading{text-align:center;margin-bottom:40px}h2{font-size:58px;line-height:1.2;margin-bottom:24px;letter-spacing:.2px}h2 .script{font-size:1.18em;line-height:1.15}.body-copy{font-size:16px;line-height:1.9;color:var(--muted)}.site-header{height:78px;max-width:1200px;padding:0 30px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:26px var(--serif);text-decoration:none}.brand span{font-family:var(--script);padding:0 5px}.site-header nav{display:flex;gap:28px}.site-header nav a{font-size:14px;text-decoration:none;padding:10px 0}.site-header nav a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:7px}.hero{max-width:1200px;margin:auto;text-align:center;padding:68px 24px 0}.hero-kicker{margin-bottom:18px;color:var(--muted)}h1{font-size:clamp(36px,5.1vw,76px);letter-spacing:.12em;line-height:1.2;margin-bottom:28px}.title-rule{width:220px;height:1px;background:var(--ink);margin:auto}.couple-names{font-size:clamp(46px,6vw,86px);line-height:1.3;margin:9px 0 40px}.couple-names span{font-size:.7em}.hero-photo{position:relative;width:100%;height:500px;overflow:hidden}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 52%;transition:transform 1s;will-change:transform}.photo-caption{position:absolute;bottom:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:20px 34px;background:linear-gradient(transparent,#363e356e);color:#fff;text-shadow:0 1px 3px #0007}.photo-date{font:30px var(--serif);letter-spacing:3px}.photo-venue{font-size:15px;letter-spacing:1px}.scroll-hint{display:flex;flex-direction:column;align-items:center;margin:24px auto 0;text-decoration:none;font-size:12px;letter-spacing:2px;gap:0}.scroll-hint span{font-size:26px;animation:nod 2.6s infinite}.welcome{text-align:center;max-width:800px;padding-top:95px;padding-bottom:80px}.overline{font-size:27px;color:#697d74;margin-bottom:22px}.welcome h2{font-size:58px}.ornament{font-size:40px;color:#9bafa1;margin-top:32px}.details{padding-top:55px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:950px;margin:auto}.date-card,.venue-card{padding:40px 42px;text-align:center;position:relative;border:1px solid #ced7d0}.date-card{background:#e8ede3}.venue-card{background:#e8eef1;border-color:#d4dfe3}.card-label{font-size:12px;letter-spacing:3px;margin-bottom:20px}.date-card h3,.venue-card h3{font-size:38px;line-height:1.2;margin-bottom:26px}.month-title{font-size:29px;margin-bottom:15px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:0 auto 26px;max-width:330px}.calendar span{height:35px;display:grid;place-items:center;font:20px var(--serif);position:relative}.calendar .weekday{font:11px var(--sans);color:var(--muted);height:26px}.calendar .selected{border:1.5px solid #738679;border-radius:50%;background:#ffffff80;font-weight:600}.event-time{padding-top:21px;border-top:1px solid #b9c5b6;display:flex;align-items:center;justify-content:center;gap:22px;text-align:left}.time{font:47px var(--serif);line-height:1}.event-time>span:last-child{font-size:14px;line-height:1.5}.event-time small{font-size:12px;color:#697464}.venue-monogram{margin:18px auto 28px;width:196px;min-height:196px;border:1px solid #b8cbd1;border-radius:100px 100px 5px 5px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;background:#f6f8f55e}.venue-monogram .script{font-size:53px;line-height:1}.venue-date{font-size:12px;letter-spacing:3px}.venue-note{font-size:15px;line-height:1.7;color:#64717a;margin-bottom:12px}.venue-address{font-size:14px;line-height:1.7;margin:20px 0}.button{display:inline-flex;justify-content:center;align-items:center;gap:15px;text-decoration:none;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:2px;padding:15px 26px;font-size:15px;min-height:52px;transition:background .2s,transform .2s}.button:hover{background:#455850}.button:active{transform:translateY(1px)}.button:disabled{opacity:.65;cursor:wait}.button.outline{background:transparent;color:var(--accent);border-color:#93a49c}.button.outline:hover{background:#fff7}.countdown-section{text-align:center;padding-top:25px;padding-bottom:105px}.countdown-section h2{font-size:36px}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:22px;margin-top:36px}.countdown>div{min-width:83px;display:flex;flex-direction:column}.countdown>div>span{font:62px/1.1 var(--serif);font-variant-numeric:tabular-nums}.countdown small{font-size:12px;letter-spacing:2px;margin-top:12px;color:var(--muted)}.count-separator{font:36px/1.65 var(--serif);color:#9dac9e}.rsvp-section{max-width:none;background:#efe8e8;padding-top:80px;padding-bottom:92px}.rsvp-section .small-caps{color:#706c6b}.form-card{max-width:620px;margin:auto;padding:38px 42px;background:#f9f7f2;border:1px solid #d8cecd;position:relative}.field{margin-bottom:25px}.field label,legend{font-size:15px;font-weight:400}.field label>span:not(.optional),legend>span{color:#89918a}.field input,.field textarea{width:100%;margin-top:9px;background:transparent;border:0;border-bottom:1px solid #bfc6be;border-radius:0;padding:12px 0;font-size:16px;color:var(--ink);line-height:1.5}.field input:focus,.field textarea:focus{outline:none;border-bottom:2px solid var(--accent);padding-bottom:11px}.field input::placeholder,.field textarea::placeholder{color:#7e857c;font-size:15px}.field textarea{resize:vertical;min-height:110px}.field-hint{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0 0}.optional{display:inline-block;color:var(--muted);font-size:12px;margin-left:8px}fieldset{padding:0;margin:0 0 30px;border:0;min-width:0}legend{margin-bottom:14px;padding:0}.attendance-options{display:flex;flex-direction:column;gap:9px}.attendance-option{position:relative;cursor:pointer;display:block}.attendance-option>input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0}.attendance-option>span{display:flex;align-items:center;gap:13px;padding:13px 15px;border:1px solid #d4d9d0;transition:background .2s,border-color .2s;font-size:15px;min-height:53px}.choice-circle{width:18px;height:18px;border:1px solid #a1ada2;border-radius:50%;position:relative;flex-shrink:0}.attendance-option>input:checked+span{background:#e6ece2;border-color:#8a9d8d}.attendance-option>input:checked+span .choice-circle:after{content:'';position:absolute;inset:4px;background:#688272;border-radius:50%}.attendance-option>input:focus-visible+span{outline:3px solid #657e77;outline-offset:3px}.attendance-option>input:disabled+span{opacity:.6}.submit{width:100%;margin-top:4px}.submit span{font-size:23px;line-height:1}.privacy{text-align:center;color:var(--muted);font-size:12px;line-height:1.6;margin:15px 0 0}.error{border:1px solid #bca6a1;background:#f4e7e3;color:#70524b;padding:12px;font-size:14px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.success{text-align:center;padding:40px 0;outline:none;overflow-wrap:anywhere}.success-ornament{font:60px/1 var(--serif);color:#99aa9a;margin-bottom:27px;animation:appear .7s both}.success h3{font-size:46px;line-height:1.3;margin:25px 0}.success h3 .script{font-size:1.15em}.success-sign{font-size:30px;margin:28px 0}.farewell{text-align:center;padding-top:90px;padding-bottom:90px}.farewell h2{font-size:48px}.closing-names{font-size:55px;margin:26px 0 8px}.closing-date{letter-spacing:4px;font-size:14px;color:var(--muted)}footer{max-width:1200px;margin:auto;padding:26px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}footer span:first-child{font:25px var(--serif)}footer span:nth-child(2){font-size:10px;letter-spacing:2px;color:var(--muted)}footer a{font-size:13px;text-decoration:none}
.js-ready .reveal{opacity:0;transform:translateY(32px);transition:opacity .85s ease,transform .85s cubic-bezier(.16,1,.3,1)}.js-ready .reveal.visible{opacity:1;transform:translateY(0)}.js-ready .hero h1{animation:appear 1s .1s both}.js-ready .hero .couple-names{animation:appear 1.2s .35s both}.js-ready .hero .hero-photo{animation:appear 1.4s .55s both}.intro-pending{overflow:hidden}.intro-pending .hero h1,.intro-pending .hero .couple-names,.intro-pending .hero .hero-photo{animation-play-state:paused}.opener{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;perspective:1400px;overflow:auto;transition:opacity .75s .5s,visibility .75s .5s}.opener-backdrop{position:absolute;inset:0;background:#29372b}.opening-card{position:relative;background:#fbf8f0;width:370px;max-width:100%;box-shadow:0 25px 90px #29392e40;padding:21px;transform-origin:center;animation:card-enter .85s both;transition:transform .95s cubic-bezier(.3,0,.2,1),opacity .65s .2s}.opening-frame{border:1px solid #bdc9bf;outline:1px dashed #bdc9bf;outline-offset:6px;padding:42px 19px 25px;text-align:center}.opening-frame .small-caps{font-size:11px;letter-spacing:2px;color:#778178;margin-bottom:20px}.opening-frame h2{font:24px/1.5 var(--serif);margin-bottom:24px}.opening-frame h2 .script{font-size:39px;display:block;line-height:1.3}.opening-monogram{font:43px var(--serif);color:#7f9287;margin-bottom:25px}.opening-monogram span{font-family:var(--script);font-size:33px;padding:0 9px}.slide-open{position:relative;width:210px;margin:0 auto 17px}.slide-open input{appearance:none;-webkit-appearance:none;width:100%;height:43px;background:#e5ebe4;border:1px solid #cad5c9;border-radius:30px;display:block;touch-action:pan-y;cursor:grab;margin:0}.slide-open input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:37px;height:37px;border-radius:50%;background:#98ad9e;border:5px solid #edf1e9;box-shadow:0 1px 3px #48615340}.slide-open input::-moz-range-thumb{width:27px;height:27px;border:5px solid #edf1e9;border-radius:50%;background:#98ad9e}.slide-open>span{position:absolute;top:12px;left:58px;pointer-events:none;font-size:11px;letter-spacing:.5px;color:#586e5f}.open-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:5px;color:#617467;font-size:13px;padding:12px;min-height:44px}.opening-date{letter-spacing:3px;font-size:11px;color:#7d897d;margin:15px 0 0}.opener.opening{opacity:0;visibility:hidden;pointer-events:none}.opener.opening .opening-card{transform:translateY(-30px) rotateY(-85deg) scale(.9);opacity:0}
.admin-page{background:var(--paper);color:var(--ink)}.admin-page main{max-width:1300px;margin:auto;padding:40px 5%}.back-link{font:26px var(--script);text-decoration:none}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:40px 0 25px}.admin-heading h1{font-size:48px;letter-spacing:0;margin:12px 0}.admin-heading p{color:var(--muted)}.eyebrow{font-size:12px;letter-spacing:2px}.table-wrap{overflow-x:auto;border:1px solid var(--line);background:#fcfaf5}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:16px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}th{background:#e6ece2}td{white-space:pre-wrap;overflow-wrap:anywhere;max-width:350px}
@keyframes appear{from{opacity:0;transform:translateY(23px)}to{opacity:1;transform:translateY(0)}}@keyframes card-enter{from{opacity:0;transform:translateY(30px) rotateY(8deg)}to{opacity:1;transform:translateY(0) rotateY(0)}}@keyframes nod{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(max-width:760px){html{scroll-padding-top:24px}.site-header{height:68px;padding:0 22px}.site-header nav{gap:22px}.site-header nav a{font-size:13px;min-height:44px;display:flex;align-items:center}.hero{padding:37px 16px 0}.hero-kicker{font-size:10px;letter-spacing:1.8px;margin-bottom:17px}h1{font-size:clamp(28px,6.5vw,48px);letter-spacing:.075em;margin-bottom:21px}.title-rule{width:155px}.couple-names{font-size:clamp(39px,10vw,62px);margin:12px 0 26px;line-height:1.3}.hero-photo{height:360px;max-height:65vh}.hero-photo img{object-position:58% center}.photo-caption{padding:17px 18px;align-items:flex-start;flex-direction:column;gap:4px}.photo-date{font-size:25px;letter-spacing:2px}.photo-venue{font-size:13px}.scroll-hint{margin-top:19px}.section{padding:62px 20px}h2{font-size:40px;line-height:1.24}h2 .script{font-size:1.15em}.welcome{padding-top:57px;padding-bottom:42px}.welcome h2{font-size:42px}.overline{font-size:24px;margin-bottom:18px}.body-copy{font-size:16px;line-height:1.85}.desktop-break{display:none}.details{padding-top:35px}.section-heading{margin-bottom:30px}.small-caps{font-size:10px;letter-spacing:2px}.detail-grid{grid-template-columns:1fr;gap:20px;max-width:430px}.date-card,.venue-card{padding:31px 27px}.date-card h3,.venue-card h3{font-size:34px;margin-bottom:20px}.calendar{gap:5px;max-width:310px}.calendar span{height:34px}.venue-monogram{min-height:172px;width:172px}.venue-monogram .script{font-size:46px}.venue-note{font-size:15px}.countdown-section{padding-top:0;padding-bottom:60px}.countdown-section h2{font-size:29px;max-width:330px;margin-left:auto;margin-right:auto}.countdown{gap:9px;margin-top:26px}.countdown>div{min-width:51px}.countdown>div>span{font-size:43px}.countdown small{font-size:10px;letter-spacing:.5px;margin-top:8px}.count-separator{font-size:28px;line-height:1.6}.rsvp-section{padding:58px 16px 64px}.rsvp-section h2{font-size:43px}.rsvp-section .body-copy{font-size:15px}.form-card{padding:28px 22px;max-width:430px}.field input,.field textarea{font-size:16px}.field{margin-bottom:24px}.attendance-option>span{padding:14px 12px;font-size:14px;min-height:55px}.optional{margin-left:5px;font-size:11px}.privacy{font-size:11px;line-height:1.65}.success{padding:26px 0}.success h3{font-size:39px}.farewell{padding:62px 20px}.farewell h2{font-size:37px}.closing-names{font-size:45px;margin-top:25px}.closing-date{font-size:12px}.ornament{margin-top:25px}footer{padding:20px;gap:12px}footer span:nth-child(2){font-size:9px;letter-spacing:1px;text-align:center;max-width:180px}.opening-card{width:340px;padding:19px}.opening-frame{padding:29px 14px 20px}.opening-frame h2 .script{font-size:36px}.opening-frame h2{font-size:23px}.opening-monogram{font-size:39px;margin-bottom:21px}.opener{padding:18px;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}.admin-heading{flex-direction:column;align-items:flex-start}.admin-heading h1{font-size:40px}}
@media(max-width:360px){.site-header{padding:0 16px}.site-header nav{gap:16px}.hero-photo{height:300px}.opening-frame h2 .script{font-size:31px}.opening-frame{padding-left:10px;padding-right:10px}.opening-card{padding:17px}.form-card{padding:26px 18px}.date-card,.venue-card{padding:28px 22px}.countdown{gap:7px}.countdown>div{min-width:47px}.countdown>div>span{font-size:39px}.count-separator{font-size:24px}.optional{display:block;margin-left:0}footer span:nth-child(2){max-width:145px}}
@media(max-height:620px) and (orientation:landscape){.opening-frame{padding-top:16px;padding-bottom:12px}.opening-frame .small-caps{margin-bottom:10px}.opening-frame h2{margin-bottom:10px}.opening-monogram{margin-bottom:12px}.opening-date{margin-top:5px}.opener{padding:16px}.opening-card{padding:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-ready .reveal{opacity:1;transform:none}}

/* Карта проезда: тот же виджет Яндекс Карт, что у площадки. */
.venue-map{max-width:950px;margin:28px auto 0;background:#e8eef1;border:1px solid #d4dfe3;overflow:hidden}.venue-map iframe{display:block;width:100%;height:380px;border:0}.venue-address{font-size:15px;overflow-wrap:anywhere}
@media(max-width:760px){.venue-map{max-width:430px;margin-top:20px}.venue-map iframe{height:300px}.venue-address{font-size:14px}}

/* Вертикальное фото пары без кадрирования на главной странице. */
.hero-photo.couple-photo{max-width:520px;height:auto;max-height:none;aspect-ratio:960 / 1441;margin-inline:auto;background:#e8eef1}
.hero-photo.couple-photo img{object-fit:contain;object-position:center;transform:none!important}
@media(max-width:760px){.hero-photo.couple-photo{height:auto;max-height:none;max-width:430px}.couple-photo .photo-caption{padding:18px 20px}}

/* Photograph of the wedding venue, centered within the blue card. */
.venue-photo{width:100%;max-width:360px;margin:18px auto 26px}
.venue-photo img{display:block;width:100%;height:auto;aspect-ratio:1000 / 752;object-fit:cover;border-radius:120px 120px 8px 8px;border:1px solid #c5d3d9;box-shadow:0 12px 28px #52677218}
.venue-photo figcaption{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:20px}
.venue-photo figcaption .script{font-size:42px;line-height:1.1}
@media(max-width:760px){.venue-photo{max-width:340px;margin-top:18px;margin-bottom:25px}.venue-photo img{border-radius:100px 100px 7px 7px}.venue-photo figcaption{padding-top:17px}.venue-photo figcaption .script{font-size:38px}}

.opener-backdrop img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}.opener-backdrop::after{content:"";position:absolute;inset:0;background:#29372b48;pointer-events:none}
