/* Hallmark · macrostructure: Long Document · tone: romantic · anchor hue: burgundy */
@import url('tokens.css');*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--color-wine);font-family:var(--font-body);background:#3a3432 url('assets/final.webp') center/cover fixed}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}a{color:inherit}:focus-visible{outline:3px solid #ac3f4a;outline-offset:4px}.hero{height:100svh;min-height:620px;position:relative;display:grid;place-items:center;text-align:center;color:white;overflow:hidden}.hero-video,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{background:linear-gradient(#08202647,#08202675 50%,#08202694)}.hero-content{position:relative;padding:32px;max-width:750px}.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(58px,10vw,100px);line-height:.9;margin:0}.hero h1 span{display:block;font-size:.35em;line-height:1.4}.hero-subtitle{font-size:clamp(23px,4vw,34px);margin:30px 0}.hero-date{display:flex;align-items:center;justify-content:center;gap:28px}.hero-date span{border-block:1px solid #ffffffbf;padding:8px 12px;font-size:14px;letter-spacing:.08em}.hero-date strong{font-weight:400;font-size:68px;line-height:1}.hero-wish{font-size:clamp(20px,3vw,28px);font-style:italic;line-height:1.5}.scroll-link{display:inline-block;text-decoration:none;font:32px/12px Georgia;opacity:.8}.paper{width:min(100% - 32px,720px);margin:0 auto;background:var(--color-paper);border-radius:18px 18px 0 0;box-shadow:0 14px 50px #22131338;position:relative;text-align:center;padding:0 28px}.section{padding:64px 12px}.section h2,.closing h2{font:400 clamp(42px,7vw,59px)/1.05 var(--font-display);margin:0 0 34px}.section p{font-size:18px;line-height:1.75;margin:0 auto;max-width:590px}.section .signature{font:32px var(--font-display);margin:25px 0}.divider{display:flex;align-items:center;gap:15px;color:var(--color-wine);font-size:14px}.divider:before,.divider:after{content:'';height:1px;background:var(--color-soft);flex:1}.divider i{font-family:var(--font-display);font-size:24px}.calendar{margin:30px auto 0;width:min(280px,100%);padding:20px 18px 22px;background:#fffaf4;border:1px solid var(--color-soft);border-radius:var(--radius-md);box-shadow:0 16px 40px #842c3420}.calendar h3{font:30px var(--font-display);margin:0 0 12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px 2px;align-items:center;font-size:11px}.calendar-grid span{height:23px;display:grid;place-items:center}.calendar-grid .day-name{font:10px Arial;letter-spacing:.05em}.calendar-grid .muted{opacity:.3}.calendar-grid .chosen{background:var(--color-wine);color:white;clip-path:polygon(50% 95%,9% 57%,2% 36%,8% 13%,27% 7%,50% 23%,73% 7%,92% 13%,98% 36%,91% 57%)}.timeline{position:relative;display:grid;gap:40px}.timeline:before{content:'';position:absolute;width:1px;top:0;bottom:0;left:50%;background:var(--color-soft)}.timeline article{position:relative;background:var(--color-paper);padding:4px 12px;width:min(100%,340px);margin:auto}.timeline article:before{content:'♥';display:block;font-size:22px}.timeline time{font-size:27px}.timeline h3,.caps{font:600 13px Arial;letter-spacing:.15em;margin:12px 0}.timeline p{font-size:16px}.venue{display:block;width:min(72vw,360px);height:min(72vw,360px);aspect-ratio:1;object-fit:cover;object-position:center;border:5px solid var(--color-wine);border-radius:50%;margin:0 auto 24px}.subhead{font-size:20px;margin:30px 0 15px}.outline-button{display:inline-block;margin:24px 0 0;border:1px solid var(--color-wine);border-radius:50px;background:transparent;color:var(--color-wine);padding:14px 24px;font:12px Arial;letter-spacing:.1em;text-decoration:none}.outline-button:hover{background:var(--color-wine);color:white}.outline-button:disabled{opacity:.5;cursor:not-allowed}.demo-note{font:13px/1.5 Arial!important;opacity:.7;margin-top:16px!important}.heart{font-size:30px;display:block;margin-top:32px}.gallery{margin:32px auto 0;max-width:480px}.gallery img{display:block;width:100%;height:420px;object-fit:cover}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:25px;padding:15px}.gallery-controls button{background:transparent;color:var(--color-wine);border:1px solid var(--color-soft);width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:20px}.gallery-controls button:hover{background:var(--color-soft)}form{text-align:left;margin:32px auto 0;max-width:480px}form>label,legend{display:block;font-size:16px;margin:24px 0 10px}input:not([type=radio]):not([type=checkbox]),textarea,select{border:1px solid #d9c4c4;border-radius:8px;padding:12px;width:100%;background:white;color:#513c3e}fieldset{border:0;margin:0;padding:0}.choices{display:flex;flex-wrap:wrap;gap:10px}.choices label{border:1px solid #ddcaca;border-radius:6px;padding:10px;font-size:14px}input[type=radio],input[type=checkbox]{accent-color:var(--color-wine)}.closing{min-height:500px;display:grid;place-items:center;text-align:center;color:white;background:linear-gradient(#131c18a0,#131c18a0),url('assets/final.webp') center/cover;padding:70px 20px}.closing p{font-size:19px}.countdown{font-size:20px;line-height:1.6}.closing-sign{font:30px var(--font-display)!important;margin-top:40px}@media(max-width:600px){.hero{min-height:580px}.hero-date{gap:8px}.hero-date span{font-size:11px}.paper{width:calc(100% - 20px);padding:0 18px}.section{padding:52px 5px}.section p{font-size:16px}.gallery img{height:340px}.hero h1{font-size:72px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-video{display:none}.hero{background:url('assets/final.webp') center/cover}}
/* Движение, галерея и анкета */
.timeline{gap:0;text-align:left;max-width:460px;margin:auto;padding:8px 0 8px 66px}.timeline:before{display:none}.timeline-rail{position:absolute;left:24px;top:23px;bottom:30px;width:1px;background:#d8b6ba}.timeline-traveler{position:absolute;top:0;left:0;display:block;color:var(--color-wine);font-size:27px;line-height:1;transform:translate(-50%,-50%);will-change:transform}.timeline article{width:100%;margin:0;padding:0 0 44px 8px;background:transparent}.timeline article:last-child{padding-bottom:0}.timeline article:before{content:'';position:absolute;top:10px;left:-45px;width:9px;height:9px;border:2px solid var(--color-paper);border-radius:50%;background:#b67b82}.timeline time{font-size:31px}.timeline h3{margin:8px 0}.timeline p{margin:0;font-size:16px}
.gallery{max-width:520px;margin-top:38px}.gallery-frame{position:relative;overflow:hidden;aspect-ratio:4/5;border-radius:8px;background:#eadfd8;box-shadow:0 16px 45px #552d2b20}.gallery .gallery-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 350ms cubic-bezier(.2,.7,.2,1)}.gallery .gallery-image.is-active{opacity:1}.gallery-controls{gap:24px;padding:18px 0}.gallery-controls button{display:grid;place-items:center;border-color:#d8babe;transition:transform 160ms var(--ease-out),background-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out)}.gallery-status{display:grid;gap:10px;justify-items:center;min-width:110px}.gallery-status>span{font:13px Arial;letter-spacing:.12em}.gallery-dots{display:flex;gap:8px}.gallery-dots button{width:9px;height:9px;padding:0;border:0;background:#d7bfc1;box-shadow:none}.gallery-dots button[aria-current="true"]{background:var(--color-wine)}
.outline-button{transition:transform 160ms var(--ease-out),background-color 180ms var(--ease-out),color 180ms var(--ease-out),box-shadow 180ms var(--ease-out)}.outline-button:not(:disabled):active,.gallery-controls button:active{transform:scale(.96)}
#rsvp-form{max-width:590px;margin:34px auto 0;padding:24px;background:#f7eee9;border:1px solid #ead7d3;border-radius:22px;color:var(--color-wine)}#rsvp-form .field-label,#rsvp-form legend{font-size:17px;margin:0 0 11px}#rsvp-form>fieldset{margin-top:24px}#rsvp-form input:not([type=radio]):not([type=checkbox]),#rsvp-form textarea{background:#fff;border:1px solid #e6d3d3;border-radius:14px;min-height:56px;padding:14px 17px;font-size:16px}#rsvp-form input::placeholder,#rsvp-form textarea::placeholder{color:#9c9ca8}#rsvp-form small{color:#968ea1;font-size:13px;font-weight:400}.choice-grid{display:grid;gap:10px}.attendance-grid{grid-template-columns:repeat(3,1fr)}.binary{grid-template-columns:repeat(2,1fr)}.choice-card{position:relative;display:block;cursor:pointer}.choice-card input,.meal-choices input{position:absolute;opacity:0;pointer-events:none}.choice-card span,.meal-choices span{display:flex;align-items:center;justify-content:center;min-height:62px;text-align:center;padding:12px;border:1px solid #ead4d5;background:white;border-radius:14px;color:#625761;font-size:16px;transition:transform 160ms var(--ease-out),border-color 160ms var(--ease-out),background-color 160ms var(--ease-out),color 160ms var(--ease-out),box-shadow 160ms var(--ease-out)}.choice-card input:checked+span,.meal-choices input:checked+span{border-color:var(--color-wine);background:#f7e9e9;color:var(--color-wine);box-shadow:0 5px 16px #8b242e18}.choice-card input:focus-visible+span,.meal-choices input:focus-visible+span{outline:3px solid #ac3f4a;outline-offset:3px}.choice-card:active span,.meal-choices label:active span{transform:scale(.98)}.form-panel{margin-top:20px;padding:20px;border:1px solid #edddda;border-radius:17px;background:#faf3ef}.form-panel h3{font-size:19px;font-weight:400;margin:0 0 20px}.form-panel fieldset+fieldset{margin-top:24px}.drink-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.drink-grid label{display:flex;align-items:center;gap:10px;min-height:47px;border:1px solid #ead8d7;border-radius:11px;background:white;padding:9px 11px;font-size:15px;cursor:pointer}.drink-grid input{width:18px;height:18px;flex:none}.meal-choices{display:flex;flex-wrap:wrap;gap:8px}.meal-choices label{position:relative;cursor:pointer}.meal-choices span{min-height:48px;padding:10px 14px;font-size:14px;color:var(--color-wine)}.companion-switch{display:flex;align-items:center;gap:12px;cursor:pointer}.companion-switch>span:first-child{flex:1}.companion-switch strong{font-size:17px;font-weight:400}.companion-switch small{display:block;margin:6px 0 0 24px;color:#8b5254!important}.companion-switch input{position:absolute;opacity:0}.switch-track{width:46px;height:26px;flex:none;border-radius:20px;background:#dfd7d2;position:relative;transition:background-color 160ms var(--ease-out)}.switch-track:after{content:'';position:absolute;width:20px;height:20px;left:3px;top:3px;background:white;border-radius:50%;box-shadow:0 1px 4px #0003;transition:transform 160ms var(--ease-out)}.companion-switch input:checked+.switch-track{background:var(--color-wine)}.companion-switch input:checked+.switch-track:after{transform:translateX(20px)}.companion-switch input:focus-visible+.switch-track{outline:3px solid #ac3f4a;outline-offset:3px}#companion-fields:not([hidden]){margin-top:18px}.preferences fieldset{margin-bottom:22px}#rsvp-form .outline-button{display:block;width:100%;margin:22px 0 0;min-height:52px}.countdown{display:flex;justify-content:center;gap:clamp(8px,2vw,18px);margin:28px 0}.countdown-unit{min-width:65px;display:grid;gap:7px;padding:14px 8px;border:1px solid #ffffff66;border-radius:14px;background:#ffffff19}.countdown-unit strong{font-size:30px;font-weight:400;line-height:1}.countdown-unit span{font:11px Arial;letter-spacing:.08em;text-transform:uppercase}.countdown-ended{font-size:24px}
@media(hover:hover) and (pointer:fine){.gallery-controls button:hover{transform:translateY(-2px);box-shadow:0 6px 14px #8b242e25}.choice-card:hover span,.meal-choices label:hover span{border-color:#bf888d}.outline-button:not(:disabled):hover{transform:translateY(-2px)}}
@media(max-width:600px){.timeline{padding-left:55px}.timeline-rail{left:20px}.timeline article:before{left:-39px}.gallery-frame{aspect-ratio:4/5}#rsvp-form{padding:16px}.form-panel{padding:16px}.attendance-grid{gap:6px}.attendance-grid .choice-card span{font-size:13px;padding:8px 4px;min-height:58px}.drink-grid label{font-size:14px}.countdown{gap:6px}.countdown-unit{min-width:0;flex:1;padding:12px 6px}.countdown-unit strong{font-size:25px}.countdown-unit span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.gallery .gallery-image{transition:opacity 100ms linear}.timeline-traveler{transform:translate(-50%,-50%)!important}.outline-button,.gallery-controls button,.choice-card span,.meal-choices span,.switch-track,.switch-track:after{transition:none!important}.outline-button:active,.gallery-controls button:active,.choice-card:active span,.meal-choices label:active span{transform:none}}
/* Фоновое видео, волна программы и финальный блок */
body{background:transparent;position:relative;isolation:isolate}.site-backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#3a3432 url('assets/final.webp') center/cover}.site-backdrop:after{content:'';position:absolute;inset:0;background:#14201b33}.background-video{width:100%;height:100%;object-fit:cover}.hero{background:transparent}.timeline{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:590px;padding:0;margin:0 auto;text-align:initial}.timeline-rail{position:absolute;left:0;right:0;top:0;bottom:0;width:auto;background:none}.timeline-curve{width:100%;height:100%;overflow:visible}.timeline-path{fill:none;stroke:#9a3b43;stroke-width:1.7px;vector-effect:non-scaling-stroke;stroke-linecap:round}.timeline-traveler{top:0;left:0;font-size:31px;z-index:2;will-change:transform}.timeline article{width:100%;padding:12px 23% 50px 0;text-align:right;grid-column:1;min-height:180px}.timeline article:nth-of-type(even){grid-column:2;padding:12px 0 50px 23%;text-align:left}.timeline article:nth-of-type(odd){grid-column:1}.timeline article:before{display:none}.timeline time{font-size:clamp(31px,5vw,47px)}.timeline h3{font-size:15px;line-height:1.4}.timeline p{font-size:17px;line-height:1.5}.closing{width:min(100% - 32px,720px);margin:0 auto;min-height:600px;padding:105px 20px 100px;position:relative;background:linear-gradient(#0c181039,#0c181020 50%,#0c181057),url('assets/final.webp') center 50%/cover;overflow:hidden}.closing>div{position:relative;z-index:1;align-self:start}.closing h2{font-size:clamp(50px,7vw,68px);margin:0 0 28px}.closing p{font:30px var(--font-display);margin:0}.closing-wave{position:absolute;left:0;width:100%;height:38px;z-index:2;fill:var(--color-paper)}.closing-wave-top{top:0}.closing-wave-bottom{bottom:0}.countdown{gap:clamp(16px,3vw,32px);margin:35px 0}.countdown-unit{min-width:48px;display:grid;gap:6px;padding:0;border:0;border-radius:0;background:transparent}.countdown-unit strong{font:bold clamp(29px,5vw,42px) Arial;line-height:1}.countdown-unit span{font:14px Arial;text-transform:none;letter-spacing:0}.closing .closing-sign{font:28px var(--font-display);margin-top:36px}
@media(max-width:600px){.timeline{padding:0}.timeline-rail{left:0}.timeline article{padding:8px 20% 45px 0;min-height:155px}.timeline article:nth-of-type(even){padding:8px 0 45px 20%}.timeline h3{font-size:12px;letter-spacing:.08em}.timeline p{font-size:14px}.timeline-traveler{font-size:24px}.closing{width:calc(100% - 20px);min-height:520px;padding-top:85px}.countdown{gap:12px}.countdown-unit{padding:0}.countdown-unit strong{font-size:28px}.countdown-unit span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.background-video{display:none}.site-backdrop{background:#3a3432 url('assets/final.webp') center/cover}.hero{background:transparent}.timeline-traveler{left:50%;transform:translate(-50%,-50%)!important}}
.timeline article:nth-of-type(1){grid-row:1}.timeline article:nth-of-type(2){grid-row:2}.timeline article:nth-of-type(3){grid-row:3}.timeline article:nth-of-type(4){grid-row:4}.timeline article:nth-of-type(5){grid-row:5}
/* В исходном ролике боковые поля уже находятся внутри кадра. */
.background-video{transform:scale(1.2)}

/* Полный кадр в галерее и читаемые инициалы на обложке. */
.gallery .gallery-image{object-fit:contain}
.hero h1 .hero-ampersand{font-family:Georgia,serif;font-style:italic;font-size:.32em;line-height:1.4}

/* Тот же синий оттенок на всём фиксированном фоне. */
.site-backdrop:after{background:linear-gradient(#08202647,#08202675 50%,#08202694),#14201b33}
.hero-shade{background:transparent}

/* Единый амперсанд и аккуратный фокус поля пожеланий. */
.divider i,.inline-ampersand{font-family:Georgia,serif;font-style:italic}
.inline-ampersand{font-size:.8em}
#rsvp-form label[for="notes"]{display:block;margin:0 0 12px}
#rsvp-form #notes{display:block;max-width:100%;resize:vertical}
#rsvp-form #notes:focus-visible{outline:2px solid #ac3f4a;outline-offset:-2px}
/* Плавное сердечко для даты свадьбы. */
.calendar-grid .chosen{position:relative;isolation:isolate;clip-path:none;background:none}
.calendar-grid .chosen::before{content:'';position:absolute;z-index:-1;left:50%;top:50%;width:38px;height:34px;transform:translate(-50%,-50%);background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 36'%3E%3Cpath fill='%238b242e' d='M20 33 C17 30 3 21 3 11 C3 4 8 1 13 1 C16.7 1 19 3.2 20 5.4 C21 3.2 23.3 1 27 1 C32 1 37 4 37 11 C37 21 23 30 20 33 Z'/%3E%3C/svg%3E")}

/* Пункты проявляются, когда сердце доходит до них. */
.timeline.reveal-ready article{opacity:0;transform:translateY(12px);transition:opacity 500ms cubic-bezier(.2,.7,.2,1),transform 500ms cubic-bezier(.2,.7,.2,1)}
.timeline.reveal-ready article.is-revealed{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.timeline.reveal-ready article{opacity:1;transform:none;transition:none}}

/* Палитра дресс-кода */
.dress-palette{display:flex;justify-content:center;gap:clamp(8px,2.5vw,16px);margin:30px auto 0}
.dress-palette span{width:clamp(38px,9vw,58px);aspect-ratio:1;border-radius:4px;background:#ddc8bd}
.dress-palette span:nth-child(2){background:#c8a89b}.dress-palette span:nth-child(3){background:#a1a78e}.dress-palette span:nth-child(4){background:#666e59}.dress-palette span:nth-child(5){background:#60493c}

#rsvp-form input:focus-visible,#rsvp-form textarea:focus-visible,#rsvp-form select:focus-visible{outline:2px solid #ac3f4a;outline-offset:-2px}#rsvp-form .choice-card input:focus-visible+span,#rsvp-form .meal-choices input:focus-visible+span{outline:2px solid #ac3f4a;outline-offset:-2px;border-radius:inherit}#rsvp-form .companion-switch input:focus-visible+.switch-track{outline:2px solid #ac3f4a;outline-offset:-2px}

#companion-fields .companion-guest{margin-top:0}#companion-fields .companion-guest .field-label:not(:first-child){display:block;margin:22px 0 10px}

.companion-list{display:grid;gap:12px;margin-top:18px}.companion-guest{margin:0!important}.guest-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.child-toggle,.highchair-toggle{display:inline-flex;align-items:center;gap:10px;font-size:16px;cursor:pointer}.child-toggle input,.highchair-toggle input{width:20px;height:20px;accent-color:var(--color-wine)}.remove-companion{border:0;background:none;color:#8c8580;font:600 14px Arial;cursor:pointer;padding:8px}.remove-companion:disabled{opacity:.5;cursor:default}.guest-name-age{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;align-items:end}.guest-name-age label{display:grid;gap:10px;font-size:16px}.guest-name-age input{width:100%;min-width:0}.companion-guest fieldset{margin-top:18px}.companion-guest .adult-fields[hidden],.companion-guest .child-fields[hidden],.guest-age-field[hidden]{display:none}.child-age-field[hidden]{display:none}.add-companion{margin:18px 0 0;padding:4px 0;border:0;background:none;color:var(--color-wine);font:600 17px var(--font-body);cursor:pointer}.add-companion:disabled{opacity:.5;cursor:default}@media(max-width:600px){.guest-name-age{grid-template-columns:minmax(0,1fr) 92px}.guest-name-age input{font-size:14px;padding-inline:12px}}

.music-toggle{position:fixed;z-index:20;right:22px;bottom:22px;display:flex;align-items:center;gap:9px;min-height:48px;padding:0 17px;border:1px solid #ffffffa6;border-radius:999px;background:#fffaf0ed;color:var(--color-wine);box-shadow:0 5px 20px #201a1a30;cursor:pointer;backdrop-filter:blur(10px);transition:transform 180ms var(--ease-out),background-color 180ms var(--ease-out),box-shadow 180ms var(--ease-out)}.music-toggle>span:first-child{font-size:22px;line-height:1}.music-toggle-label{font:13px Arial;letter-spacing:.03em}.music-toggle:hover{transform:translateY(-2px);box-shadow:0 8px 24px #201a1a40}.music-toggle[aria-pressed=true]{background:var(--color-wine);color:white}@media(max-width:600px){.music-toggle{right:14px;bottom:14px;min-height:44px;padding:0 14px}}@media(prefers-reduced-motion:reduce){.music-toggle{transition:none}}

.companion-guest .child-fields .meal-choices{gap:10px}.companion-guest .highchair-toggle{margin-top:16px;line-height:1.4}.companion-guest .child-fields fieldset legend{margin-bottom:12px}.companion-guest .child-fields .meal-choices span{min-width:112px;padding-inline:15px}@media(max-width:600px){.companion-guest .child-fields .meal-choices{gap:8px}.companion-guest .child-fields .meal-choices span{min-width:0;padding-inline:12px}}

.closing{display:block;min-height:0;padding:0 0 0;border-radius:0 0 30px 30px;background:transparent;overflow:hidden}.closing-countdown{min-height:600px;padding:105px 20px 85px;position:relative;text-align:center;color:white;background:linear-gradient(#0c181039,#0c181020 50%,#0c181057),url('assets/final.webp') center 50%/cover}.closing-countdown>div{position:relative;z-index:1}.closing-wave-top{position:absolute;top:0}.closing-wave-bottom{position:relative;top:auto;bottom:auto;display:block;height:38px;margin-top:-38px}.closing-sign-panel{position:relative;z-index:1;min-height:270px;padding:55px 20px 72px;background:var(--color-paper);color:var(--color-wine);text-align:center}.closing-sign-panel>p{font:24px var(--font-body);margin:0}.closing-sign-panel .closing-sign{font:48px var(--font-display);margin:30px 0 0}.closing-sign-panel .inline-ampersand{font:inherit}@media(max-width:600px){.closing-countdown{min-height:520px;padding:85px 12px 75px}.closing-sign-panel{min-height:230px;padding:48px 14px 60px}.closing-sign-panel .closing-sign{font-size:38px;margin-top:24px}}

.closing{display:block!important;width:min(calc(100% - 32px),720px);margin:0 auto;padding:0;min-height:0}.closing-countdown{display:block;width:100%;min-height:600px}.closing-sign-panel{display:block!important;width:100%!important;max-width:none!important;min-height:270px;margin:0;padding:55px 24px 72px;box-sizing:border-box;background:var(--color-paper);text-align:center}.closing-wave-bottom{display:block;width:100%;height:38px;margin:-38px 0 0;position:relative;left:0;top:auto;bottom:auto}.closing-sign-panel>p{width:100%;margin-left:auto;margin-right:auto}@media(max-width:600px){.closing{width:calc(100% - 20px)}.closing-sign-panel{min-height:230px;padding:48px 14px 60px}}

.closing-sign-panel>p:first-child{font-size:34px}@media(max-width:600px){.closing-sign-panel>p:first-child{font-size:29px}}

.closing-sign-panel .closing-sign{font-size:60px}@media(max-width:600px){.closing-sign-panel .closing-sign{font-size:46px}}

/* Mobile-first layout refinements */
html,body{max-width:100%;overflow-x:clip}
img,video,svg{max-width:100%}
@media(max-width:760px){
  .paper{width:calc(100% - 24px);padding-inline:clamp(14px,4vw,24px)}
  .section{padding:clamp(42px,8vw,58px) 4px}
  .hero{min-height: min(760px,100svh);min-height: max(560px,100svh)}
  .hero-content{width:100%;padding:24px 18px}
  .hero h1{font-size:clamp(52px,12vw,82px)}
  .hero-subtitle{margin:24px 0;font-size:clamp(20px,5vw,29px)}
  .hero-date{gap:clamp(7px,3vw,20px)}
  .hero-date strong{font-size:clamp(52px,14vw,68px)}
  .section h2{font-size:clamp(38px,9vw,52px)}
  .section p{font-size:clamp(15px,4vw,18px)}
  .paper .calendar{width:min(100%,340px)}
  .gallery{width:100%;max-width:480px}
  .gallery-frame{width:100%}
  #rsvp-form{width:100%;padding:clamp(14px,4vw,22px)}
  .form-panel{padding:clamp(13px,3.5vw,19px)}
  .attendance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .attendance-grid .choice-card span{min-height:56px;padding:8px 4px;font-size:clamp(12px,3.2vw,15px)}
  .drink-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .drink-grid label{min-width:0;padding:8px;font-size:clamp(12px,3.4vw,14px)}
  .meal-choices{gap:8px}
  .meal-choices label{max-width:100%}
  .meal-choices span{min-height:46px;padding:9px 11px;font-size:13px}
  .guest-name-age{grid-template-columns:minmax(0,1fr) 84px}
  .closing{width:calc(100% - 24px)}
  .closing-countdown{min-height:520px;padding:88px 12px 70px}
  .closing h2{font-size:clamp(42px,10vw,58px)}
  .closing-countdown>p{font-size:clamp(24px,6vw,30px)}
  .countdown{gap:clamp(5px,2vw,12px)}
  .countdown-unit{min-width:0;flex:1}
  .countdown-unit strong{font-size:clamp(24px,7vw,34px)}
  .countdown-unit span{font-size:clamp(9px,2.7vw,12px)}
  .closing-sign-panel{min-height:210px;padding:44px 12px 54px}
  .closing-sign-panel .closing-sign{font-size:clamp(34px,9vw,46px);white-space:normal}
  .music-toggle{right:12px;bottom:12px}
}
@media(max-width:420px){
  .paper{width:calc(100% - 16px);padding-inline:12px}
  .hero-content{padding-inline:12px}
  .hero-date span{padding:7px 8px;font-size:10px}
  .section{padding-inline:2px}
  #rsvp-form{padding:12px}
  .attendance-grid{gap:5px}
  .attendance-grid .choice-card span{font-size:11px}
  .drink-grid label{gap:6px;padding:7px 6px;font-size:11px}
  .drink-grid input{width:16px;height:16px}
  .meal-choices{gap:6px}
  .meal-choices span{padding:8px 9px;font-size:12px}
  .guest-name-age{grid-template-columns:minmax(0,1fr) 72px;gap:8px}
  .closing{width:calc(100% - 16px)}
  .closing-countdown{min-height:490px;padding-top:78px}
  .closing-sign-panel>p:first-child{font-size:27px}
  .closing-sign-panel .closing-sign{font-size:clamp(30px,8.5vw,38px)}
  .music-toggle-label{display:none}
  .music-toggle{width:44px;height:44px;justify-content:center;padding:0}
}

.form-trap{position:absolute!important;width:1px;height:1px;padding:0!important;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}


@font-face{font-family:'Great Vibes';src:url('assets/GreatVibes-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Alice;src:url('assets/Alice-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
