:root{--color-bg: #f7f3ea;--color-bg-secondary: #f4efe5;--color-text: #2f312c;--color-text-muted: #5e6258;--color-green: #7d846f;--color-green-dark: #4e5647;--color-line: rgba(78, 86, 71, .22);--color-card: rgba(255, 252, 246, .72);--color-card-strong: rgba(255, 252, 246, .9);--color-hover: #6f7764;--color-button-text: #fffdf8;--color-error: #8b5e54;--color-warm: #b2a58f;--font-script: "Great Vibes", cursive;--font-text: "Montserrat Alternates", sans-serif;--font-serif: var(--font-text);--font-sans: var(--font-text);--ease-soft: cubic-bezier(.22, 1, .36, 1);--shadow-soft: 0 18px 45px rgba(47, 49, 44, .06);--content-width: 1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--color-text);background:url(/images/paper-texture.png),radial-gradient(circle at 10% 4%,rgba(176,188,162,.22),transparent 25rem),radial-gradient(circle at 88% 22%,rgba(176,165,143,.18),transparent 22rem),var(--color-bg);font-family:var(--font-text);overflow-x:hidden;text-rendering:optimizeLegibility}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;content:"";background:linear-gradient(90deg,rgba(255,253,248,.58),transparent 18%,transparent 82%,rgba(255,253,248,.58)),linear-gradient(180deg,rgba(255,253,248,.38),transparent 35%,rgba(244,239,229,.34))}img,svg{display:block;max-width:100%}button,input,textarea{font:inherit}button{border:0}main{position:relative;overflow:hidden}.section{position:relative;padding:104px 24px}.section:before{position:absolute;top:0;left:50%;width:min(1120px,calc(100% - 48px));height:1px;content:"";background:linear-gradient(90deg,transparent,var(--color-line),transparent);opacity:1;transform:translate(-50%) scaleX(1);transform-origin:center}.section__inner{position:relative;width:min(var(--content-width),100%);margin:0 auto}.section__inner--narrow{width:min(760px,100%);text-align:center}.section__inner--form{width:min(760px,100%);margin:0 auto}.section-title{margin:0;color:var(--color-green-dark);font-family:var(--font-script);font-size:clamp(46px,6vw,76px);font-weight:400;line-height:.95;text-align:center}.section-subtitle{width:min(560px,100%);margin:18px auto 34px;color:var(--color-text-muted);font-family:var(--font-sans);font-size:15px;line-height:1.7;text-align:center}.prose{margin-top:30px;color:var(--color-text);font-size:clamp(18px,2vw,21px);line-height:1.72}.prose p{margin:0 auto 20px}.prose p:last-child{margin-bottom:0}.decor-divider{width:126px;margin:0 auto 24px;opacity:.72}.decor-divider--bottom{margin:30px auto 0;transform:rotate(180deg)}.button,.choice-button{min-height:44px;border:1px solid var(--color-line);border-radius:999px;color:var(--color-text);background:#fffcf68f;cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:500;line-height:1.2;text-align:center;text-decoration:none;transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease,opacity .25s ease}.button:hover,.choice-button:hover{color:var(--color-button-text);background:var(--color-green);border-color:var(--color-green);box-shadow:0 10px 24px #4e564724;transform:translateY(-1px)}.button:active,.choice-button:active{transform:translateY(0)}.button:focus-visible,.choice-button:focus-visible{outline:none;box-shadow:0 0 0 3px #7d846f33}.button--outline{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px}.button--submit{width:100%;padding:14px 24px;color:var(--color-button-text);background:var(--color-green-dark);border-color:var(--color-green-dark);letter-spacing:.08em;text-transform:uppercase}.button--submit:disabled{cursor:not-allowed;opacity:.7;transform:none}.reveal{--reveal-ease: cubic-bezier(.16, 1, .3, 1);opacity:0;transform:translate3d(0,46px,0) scale(.992);transition:opacity 1.06s var(--reveal-ease) 80ms,transform 1.06s var(--reveal-ease) 80ms;will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:translateZ(0) scale(1)}.reveal:before{opacity:0;transform:translate(-50%) scaleX(.18);transition:opacity .9s var(--reveal-ease) 80ms,transform 1.1s var(--reveal-ease) 80ms}.reveal.is-visible:before{opacity:1;transform:translate(-50%) scaleX(1)}.reveal .section-title,.reveal .section-subtitle,.reveal .prose,.reveal .calendar-countdown,.reveal .timeline,.reveal .location-section__icon,.reveal .location-section__title,.reveal .location-section__address,.reveal .location-section__button,.reveal .rsvp-form{opacity:0;filter:blur(7px);transform:translate3d(0,22px,0);transition:opacity .86s var(--reveal-ease),filter .86s var(--reveal-ease),transform .86s var(--reveal-ease);will-change:opacity,filter,transform}.reveal .decor-divider{opacity:0;filter:blur(5px);transform:translate3d(0,14px,0) scale(.96);transition:opacity .76s var(--reveal-ease),filter .76s var(--reveal-ease),transform .76s var(--reveal-ease)}.reveal .decor-divider--bottom{transform:translate3d(0,14px,0) scale(.96) rotate(180deg)}.reveal.is-visible .section-title,.reveal.is-visible .section-subtitle,.reveal.is-visible .prose,.reveal.is-visible .calendar-countdown,.reveal.is-visible .timeline,.reveal.is-visible .location-section__icon,.reveal.is-visible .location-section__title,.reveal.is-visible .location-section__address,.reveal.is-visible .location-section__button,.reveal.is-visible .rsvp-form{opacity:1;filter:blur(0);transform:translateZ(0)}.reveal.is-visible .decor-divider{opacity:.72;filter:blur(0);transform:translateZ(0) scale(1)}.reveal.is-visible .decor-divider--bottom{transform:translateZ(0) scale(1) rotate(180deg)}.reveal.is-visible .decor-divider{transition-delay:.15s}.reveal.is-visible .section-title,.reveal.is-visible .location-section__icon{transition-delay:.21s}.reveal.is-visible .section-subtitle,.reveal.is-visible .prose,.reveal.is-visible .location-section__title{transition-delay:.33s}.reveal.is-visible .calendar-countdown,.reveal.is-visible .timeline,.reveal.is-visible .location-section__address,.reveal.is-visible .rsvp-form{transition-delay:.43s}.reveal.is-visible .location-section__button{transition-delay:.56s}.hero{position:relative;isolation:isolate;display:grid;place-items:center;min-height:100svh;padding:70px 24px 210px;overflow:hidden;background-color:var(--color-bg);background-image:url(/images/hero-bg-desktop.png);background-repeat:no-repeat;background-position:center bottom;background-size:cover;animation:heroFade .9s ease both}.hero__content{position:relative;z-index:2;width:min(680px,100%);text-align:center}.hero__name{margin:0;color:#1f241d;font-family:var(--font-script);font-size:clamp(72px,8vw,124px);font-weight:400;line-height:.88;animation:heroTextIn 1.1s var(--ease-soft) both;animation-delay:.25s}.hero__name--second{animation-delay:.36s}.hero__ampersand{margin:8px 0 4px;color:var(--color-green-dark);font-family:var(--font-script);font-size:clamp(36px,4vw,58px);font-weight:400;line-height:1;animation:heroTextIn .9s var(--ease-soft) both;animation-delay:.45s}.hero__divider{margin-top:28px;margin-bottom:20px;animation:dividerIn .9s var(--ease-soft) both;animation-delay:.65s}.hero__date{margin:0;color:var(--color-text);font-family:var(--font-text);font-size:clamp(22px,2.1vw,28px);letter-spacing:.28em;animation:dateIn .9s var(--ease-soft) both;animation-delay:.8s}.invitation{background:radial-gradient(circle at 4% 20%,rgba(125,132,111,.1),transparent 24rem),radial-gradient(circle at 94% 82%,rgba(178,165,143,.1),transparent 20rem)}.calendar-countdown{display:grid;grid-template-columns:minmax(280px,.8fr) auto minmax(380px,1fr);gap:44px;align-items:center;margin-top:42px}.calendar-countdown__line{width:1px;height:250px;background:linear-gradient(180deg,transparent,var(--color-line),transparent);opacity:0;transform:scaleY(.08);transform-origin:center}.is-visible .calendar-countdown__line{opacity:1;transform:scaleY(1);transition:opacity .78s var(--reveal-ease) .52s,transform .98s var(--reveal-ease) .52s}.calendar{width:min(390px,100%);margin:0 auto;padding:30px;border:1px solid rgba(78,86,71,.16);border-radius:20px;background:var(--color-card);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;filter:blur(6px);transform:translate3d(0,28px,0) scale(.98)}.is-visible .calendar{opacity:1;filter:blur(0);transform:translateZ(0) scale(1);transition:opacity .88s var(--reveal-ease) .56s,filter .88s var(--reveal-ease) .56s,transform .88s var(--reveal-ease) .56s}.calendar__month{margin:0 0 22px;color:var(--color-green-dark);font-family:var(--font-text);font-size:22px;letter-spacing:.18em;text-align:center}.calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(28px,1fr));gap:10px 8px;align-items:center;color:var(--color-text-muted);font-family:var(--font-text);font-size:18px;text-align:center}.calendar__grid--weekdays{margin-bottom:12px;color:#4e5647c7;font-family:var(--font-sans);font-size:11px;letter-spacing:.12em}.calendar__day{display:grid;place-items:center;width:34px;height:34px;margin:0 auto;border-radius:999px}.calendar__day--wedding{position:relative;isolation:isolate;color:var(--color-button-text);background:transparent;box-shadow:none;transition:transform .25s ease}.calendar__day--wedding:before,.calendar__day--wedding:after{position:absolute;top:5px;width:18px;height:27px;content:"";background:var(--color-green);border-radius:18px 18px 5px 5px;box-shadow:0 8px 18px #4e56472e;animation:calendarHeartBeat 2.05s cubic-bezier(.2,1,.3,1) infinite;z-index:-1;will-change:transform,box-shadow,filter}.calendar__day--wedding:before{--heart-rotate: -45deg;left:50%;transform:rotate(var(--heart-rotate)) scale(1);transform-origin:0 100%}.calendar__day--wedding:after{--heart-rotate: 45deg;left:calc(50% - 18px);transform:rotate(var(--heart-rotate)) scale(1);transform-origin:100% 100%}.calendar__day-number{position:relative;z-index:1;font-size:.84em}.calendar__day--wedding:hover{transform:scale(1.04)}.timer{display:grid;grid-template-columns:repeat(4,minmax(82px,1fr));gap:18px;align-items:end;opacity:0;filter:blur(5px);transform:translate3d(0,24px,0)}.is-visible .timer{opacity:1;filter:blur(0);transform:translateZ(0);transition:opacity .86s var(--reveal-ease) .62s,filter .86s var(--reveal-ease) .62s,transform .86s var(--reveal-ease) .62s}.timer-unit{min-width:82px;text-align:center;opacity:0;filter:blur(4px);transform:translate3d(0,18px,0)}.is-visible .timer-unit{opacity:1;filter:blur(0);transform:translateZ(0);transition:opacity .68s var(--reveal-ease) var(--timer-delay),filter .68s var(--reveal-ease) var(--timer-delay),transform .68s var(--reveal-ease) var(--timer-delay)}.is-visible .timer-unit:nth-child(1){--timer-delay: .72s}.is-visible .timer-unit:nth-child(2){--timer-delay: .79s}.is-visible .timer-unit:nth-child(3){--timer-delay: .86s}.is-visible .timer-unit:nth-child(4){--timer-delay: .93s}.timer-value{position:relative;display:grid;place-items:center;min-width:90px;height:clamp(58px,6vw,86px);overflow:hidden;color:var(--color-text);font-family:var(--font-text);font-size:clamp(42px,5vw,72px);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";line-height:1}.timer-value__digits{display:inline-flex;align-items:center;justify-content:center}.timer-digit-window,.timer-label-window{position:relative;overflow:hidden;transform:translateZ(0)}.timer-digit-window{display:inline-block;flex:0 0 .66em;width:.66em;height:1.08em}.timer-label-window{display:block;width:100%;min-width:82px;height:1.5em}.timer-label-static{display:block;width:100%;line-height:1.5;text-align:center;white-space:nowrap}.timer-drum-static,.timer-drum-strip,.timer-drum-row{position:absolute;left:0;width:100%;background:transparent}.timer-drum-static{top:0;height:100%;display:grid;place-items:center;opacity:1;transform:translateZ(0)}.timer-drum-strip{top:0;height:200%;transform:translate3d(0,-50%,0);animation:timerDrumStrip .3s cubic-bezier(.28,1,.32,1) both;backface-visibility:hidden;will-change:transform}.timer-drum-row{top:0;display:grid;place-items:center;height:50%;text-align:center;opacity:1;transform:translateZ(0);will-change:opacity}.timer-drum-row--incoming{animation:timerDrumIncomingOpacity .3s cubic-bezier(.28,1,.32,1) both}.timer-drum-row--outgoing{top:50%;animation:timerDrumOutgoingOpacity .3s cubic-bezier(.28,1,.32,1) both}.timer-drum-glyph{display:inline-block;line-height:inherit;background:transparent;filter:blur(0);transform:translateZ(0);will-change:filter}.timer-digit-window .timer-drum-static,.timer-digit-window .timer-drum-row{line-height:1}.timer-label-window .timer-drum-static,.timer-label-window .timer-drum-row{line-height:1.5;white-space:nowrap}.timer-drum-row--outgoing .timer-drum-glyph{animation:timerDigitBlurOut .3s cubic-bezier(.28,1,.32,1) both}.timer-drum-row--incoming .timer-drum-glyph{animation:timerDigitBlurIn .3s cubic-bezier(.28,1,.32,1) both}.timer-label-window .timer-drum-row--outgoing .timer-drum-glyph{animation-name:timerLabelBlurOut}.timer-label-window .timer-drum-row--incoming .timer-drum-glyph{animation-name:timerLabelBlurIn}.timer-unit__label{position:relative;display:grid;place-items:center;min-width:82px;height:1.5em;margin-top:10px;overflow:hidden;color:var(--color-text-muted);font-family:var(--font-sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.countdown-arrived{margin:0;color:var(--color-green-dark);font-family:var(--font-text);font-size:clamp(36px,5vw,64px);text-align:center}.timeline{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-top:46px;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.timeline__item{position:relative;display:grid;justify-items:center;min-height:214px;padding:34px 18px 30px;text-align:center;opacity:0;filter:blur(6px);transform:translate3d(0,34px,0) scale(.98)}.is-visible .timeline__item{opacity:1;filter:blur(0);transform:translateZ(0) scale(1);transition:opacity .94s var(--reveal-ease) var(--delay),filter .94s var(--reveal-ease) var(--delay),transform .94s var(--reveal-ease) var(--delay)}.timeline__item+.timeline__item:before{position:absolute;top:34px;bottom:34px;left:0;width:1px;content:"";background:linear-gradient(180deg,transparent,var(--color-line),transparent)}.timeline__icon{width:56px;height:56px;object-fit:contain;margin-bottom:18px;opacity:.86}.timeline__connector{display:none}.timeline__content{display:grid;justify-items:center}.timeline__time{color:var(--color-text);font-family:var(--font-text);font-size:30px;letter-spacing:.12em}.timeline__title{margin:10px 0 0;color:var(--color-text-muted);font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.16em;line-height:1.55;text-transform:uppercase}.wishes{overflow:hidden;background:linear-gradient(180deg,#fffcf65c,#f4efe538),radial-gradient(circle at 12% 64%,rgba(125,132,111,.08),transparent 18rem),radial-gradient(circle at 90% 20%,rgba(178,165,143,.08),transparent 20rem)}.section-leaf{position:absolute;width:min(24vw,250px);opacity:0;pointer-events:none;filter:blur(7px);will-change:opacity,filter,transform}.section-leaf--left{left:-72px;bottom:20px;transform:translate3d(-26px,34px,0) rotate(-4deg)}.section-leaf--right{top:20px;right:-68px;transform:translate3d(26px,34px,0) rotate(4deg)}.is-visible .section-leaf{opacity:.58;filter:blur(0);transition:opacity 1.3s var(--reveal-ease) .3s,filter 1.3s var(--reveal-ease) .3s,transform 1.3s var(--reveal-ease) .3s}.is-visible .section-leaf--left,.is-visible .section-leaf--right{transform:translateZ(0) rotate(0)}.location-section{text-align:center}.location-section__icon{width:50px;height:50px;margin:0 auto 18px;opacity:.82}.location-section__title{margin:28px 0 8px;color:var(--color-text);font-family:var(--font-text);font-size:clamp(24px,2.2vw,32px)}.location-section__address{margin:0 auto 28px;color:var(--color-text-muted);font-family:var(--font-sans);font-size:15px;line-height:1.7}.location-section__button{min-width:248px}.rsvp-section{padding-bottom:120px}.rsvp-form{display:grid;gap:22px;padding:clamp(24px,4vw,42px);border:1px solid rgba(78,86,71,.16);border-radius:20px;background:var(--color-card);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.form-field{display:grid;gap:9px;color:var(--color-text);font-family:var(--font-sans);font-size:14px;font-weight:500}.form-field span,.form-field legend,.form-field--choice legend{color:var(--color-green-dark)}.form-field--choice{padding:0;border:0;margin:0}.form-field--choice legend{margin-bottom:10px;font-family:var(--font-sans);font-size:14px;font-weight:500}.form-field--nested{padding-top:2px}.field-hint{margin:-2px 0 12px;color:var(--color-text-muted);font-family:var(--font-sans);font-size:12px;font-weight:400}.toggle-grid{display:flex;flex-wrap:wrap;gap:10px}.choice-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px}.choice-button.is-selected{color:var(--color-button-text);background:var(--color-green-dark);border-color:var(--color-green-dark);box-shadow:inset 0 0 0 1px #fffdf833,0 10px 24px #4e564724}.choice-button.is-selected:focus-visible{box-shadow:inset 0 0 0 1px #fffdf833,0 0 0 3px #7d846f33,0 10px 24px #4e564724}input,textarea{width:100%;border:1px solid rgba(78,86,71,.25);border-radius:14px;color:var(--color-text);background:#fffcf6d1;font-family:var(--font-sans);font-size:15px;outline:none;transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease}input{height:50px;padding:0 16px}textarea{height:120px;padding:14px 16px;resize:none}input:focus,textarea:focus{border-color:var(--color-green);background:#fffcf6f5;box-shadow:0 0 0 3px #7d846f29}input::placeholder,textarea::placeholder{color:#5e62589e}.char-counter{justify-self:end;color:var(--color-text-muted);font-family:var(--font-sans);font-size:12px;font-weight:400}.collapsible{max-height:0;overflow:hidden;opacity:0;transform:translateY(-8px);transition:max-height .55s var(--ease-soft),opacity .35s ease,transform .45s var(--ease-soft)}.collapsible.is-open{max-height:2200px;opacity:1;transform:translateY(0)}.collapsible__inner{display:grid;gap:22px;padding-top:2px}.form-subgroup,.guest-fields{display:grid;gap:16px}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:22px;animation:formDialogLayerIn .26s ease both}.form-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;background:#2f312c47;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer}.form-dialog__panel{position:relative;z-index:1;width:min(470px,100%);padding:30px clamp(22px,5vw,34px) 26px;border:1px solid rgba(78,86,71,.18);border-radius:22px;max-height:calc(100svh - 44px);color:var(--color-text);background:linear-gradient(180deg,#fffdf8f5,#f7f3eae6),var(--color-card-strong);box-shadow:0 28px 70px #2f312c2e,inset 0 0 0 1px #fffdf880;font-family:var(--font-sans);text-align:center;overflow-y:auto;animation:formDialogPanelIn .52s cubic-bezier(.16,1,.3,1) both}.form-dialog__panel:before{position:absolute;top:0;left:50%;width:72%;height:1px;content:"";background:linear-gradient(90deg,transparent,rgba(78,86,71,.34),transparent);transform:translate(-50%)}.form-dialog__mark{position:relative;display:grid;place-items:center;width:46px;height:46px;margin:0 auto 16px;border-radius:999px;background:var(--color-green-dark);box-shadow:inset 0 0 0 1px #fffdf838,0 12px 24px #4e56472e}.form-dialog__mark:before{color:var(--color-button-text);content:"!";font-size:22px;font-weight:600;line-height:1}.form-dialog__panel--error .form-dialog__mark{background:var(--color-error)}.form-dialog__panel--success .form-dialog__mark:before{content:"";width:15px;height:9px;border-right:2px solid var(--color-button-text);border-bottom:2px solid var(--color-button-text);transform:rotate(45deg) translateY(-1px)}.form-dialog__eyebrow{margin:0 0 8px;color:var(--color-text-muted);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.form-dialog__title{margin:0;color:var(--color-green-dark);font-family:var(--font-text);font-size:clamp(22px,6vw,30px);font-weight:500;line-height:1.18}.form-dialog__text{margin:14px 0 0;color:var(--color-text);font-size:15px;line-height:1.62}.form-dialog__list{display:grid;gap:9px;margin:18px 0 0;padding:14px 16px 14px 32px;border:1px solid rgba(78,86,71,.12);border-radius:16px;color:var(--color-text-muted);background:#fffcf6ad;font-size:14px;line-height:1.45;text-align:left}.form-dialog__button{display:inline-flex;align-items:center;justify-content:center;min-width:164px;min-height:44px;margin-top:22px;padding:12px 24px;border-radius:999px;color:var(--color-button-text);background:var(--color-green-dark);box-shadow:inset 0 0 0 1px #fffdf82e,0 10px 24px #4e564724;cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.form-dialog__button:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #fffdf82e,0 0 0 3px #7d846f3d,0 10px 24px #4e564724}@keyframes heroFade{0%{opacity:0}to{opacity:1}}@keyframes heroTextIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes dividerIn{0%{opacity:0;transform:scaleX(.75)}to{opacity:.72;transform:scaleX(1)}}@keyframes dateIn{0%{opacity:0;letter-spacing:.34em}to{opacity:1;letter-spacing:.28em}}@keyframes calendarHeartBeat{0%,58%,to{filter:drop-shadow(0 0 0 rgba(78,86,71,0));box-shadow:0 8px 18px #4e56472e;transform:rotate(var(--heart-rotate)) scale(1)}10%{filter:drop-shadow(0 0 5px rgba(78,86,71,.2));box-shadow:0 14px 30px #4e564747;transform:rotate(var(--heart-rotate)) scale(1.16)}20%{filter:drop-shadow(0 0 1px rgba(78,86,71,.08));box-shadow:0 7px 16px #4e564726;transform:rotate(var(--heart-rotate)) scale(.98)}31%{filter:drop-shadow(0 0 3px rgba(78,86,71,.15));box-shadow:0 12px 25px #4e56473d;transform:rotate(var(--heart-rotate)) scale(1.09)}43%{filter:drop-shadow(0 0 0 rgba(78,86,71,0));box-shadow:0 8px 18px #4e56472e;transform:rotate(var(--heart-rotate)) scale(1)}}@keyframes timerDrumStrip{0%{transform:translate3d(0,-50%,0)}48%{transform:translate3d(0,-5%,0)}72%{transform:translate3d(0,-1.2%,0)}to{transform:translateZ(0)}}@keyframes timerDrumOutgoingOpacity{0%{opacity:1}48%{opacity:.25}72%{opacity:.08}to{opacity:0}}@keyframes timerDrumIncomingOpacity{0%{opacity:0}48%{opacity:.92}72%{opacity:.98}to{opacity:1}}@keyframes timerDigitBlurOut{0%{filter:blur(0);transform:scale(1)}48%{filter:blur(1.5px);transform:scale(1)}72%{filter:blur(.5px);transform:scale(1)}to{filter:blur(0)}}@keyframes timerDigitBlurIn{0%{filter:blur(0);transform:scale(1)}48%{filter:blur(1.5px);transform:scale(1)}72%{filter:blur(.5px);transform:scale(1)}to{filter:blur(0);transform:scale(1)}}@keyframes timerLabelBlurOut{0%{filter:blur(0)}48%{filter:blur(1px)}72%{filter:blur(.25px)}to{filter:blur(0)}}@keyframes timerLabelBlurIn{0%{filter:blur(0)}48%{filter:blur(1px)}72%{filter:blur(.25px)}to{filter:blur(0);transform:scale(1)}}@keyframes formDialogLayerIn{0%{opacity:0}to{opacity:1}}@keyframes formDialogPanelIn{0%{opacity:0;filter:blur(8px);transform:translate3d(0,18px,0) scale(.96)}68%{filter:blur(0)}to{opacity:1;filter:blur(0);transform:translateZ(0) scale(1)}}@media(min-aspect-ratio:16 / 10){.hero{background-image:url(/images/hero-bg-wide.png)}}@media(max-width:900px)and (orientation:portrait),(max-aspect-ratio:1 / 1){.hero{background-image:url(/images/hero-bg-portrait.png)}}@media(min-width:901px){.hero__content{transform:translateY(clamp(-135px,-14vh,-92px))}}@media(max-width:1024px){.section{padding:84px 24px}.calendar-countdown{grid-template-columns:1fr;gap:30px}.calendar-countdown__line{width:min(560px,100%);height:1px;margin:0 auto;background:linear-gradient(90deg,transparent,var(--color-line),transparent);transform:scaleX(.08)}.is-visible .calendar-countdown__line{transform:scaleX(1)}.timer{width:min(620px,100%);margin:0 auto}.timeline{grid-template-columns:repeat(2,1fr)}.timeline__item:nth-child(3):before{display:none}}@media(max-width:640px){.section{padding:68px 18px}.section:before{width:calc(100% - 36px)}.section-title{font-size:clamp(42px,13vw,58px)}.section-subtitle{margin-bottom:28px;font-size:14px}.prose{font-size:17px;line-height:1.68}.hero{min-height:100svh;padding:clamp(36px,6svh,58px) 18px clamp(300px,46svh,390px);background-image:url(/images/hero-bg-portrait.png);background-position:center bottom}.hero__name{font-size:clamp(50px,16vw,76px)}.hero__content{transform:translateY(clamp(14px,4svh,34px))}.hero__ampersand{font-size:clamp(34px,11vw,42px)}.hero__date{font-size:clamp(15px,4.6vw,18px);letter-spacing:.18em}.calendar{padding:24px 18px}.calendar__grid{gap:8px 4px;font-size:16px}.calendar__day{width:30px;height:30px}.timer{grid-template-columns:repeat(2,minmax(120px,1fr));gap:24px 12px}.timer-value{min-width:86px;height:58px;font-size:clamp(38px,12vw,48px)}.timer-unit__label{font-size:11px}.timeline{display:grid;grid-template-columns:1fr;gap:0;width:min(390px,100%);margin-inline:auto;border:0}.timeline:before{display:none}.timeline__item{display:grid;grid-template-columns:1fr;justify-items:center;min-height:auto;padding:10px 0 0;text-align:center}.timeline__item:first-child{padding-top:0}.timeline__item:not(:last-child):after{display:block;width:1px;height:24px;margin:16px auto 8px;content:"";background:var(--color-line)}.timeline__item+.timeline__item:before{display:none}.timeline__icon{position:relative;z-index:1;justify-self:center;width:56px;height:56px;margin:0;padding:10px;border:1px solid rgba(78,86,71,.14);border-radius:999px;background:#fffcf6c7}.timeline__connector{display:block;width:1px;height:16px;margin:7px 0 8px;background:var(--color-line)}.timeline__content{display:grid;align-content:center;justify-items:center;min-width:0;padding-left:0}.timeline__time{display:block;font-size:26px;line-height:1;text-align:center}.timeline__title{display:block;margin-top:6px;font-size:11px;text-align:center;overflow-wrap:anywhere}.section-leaf{width:210px;opacity:.28}.section-leaf--left{left:-116px}.section-leaf--right{right:-118px}.rsvp-form{gap:20px;padding:22px 16px;border-radius:18px}.toggle-grid{display:grid;grid-template-columns:1fr}.choice-button{width:100%}.location-section__button{width:100%;min-width:0}}@media(max-width:640px)and (max-aspect-ratio:2 / 3){.hero{background-image:url(/images/hero-bg-mobile.png)}}@media(max-width:380px){.hero{background-image:url(/images/hero-bg-portrait.png)}.hero__content{transform:translateY(clamp(10px,3svh,24px))}.hero__name{font-size:clamp(44px,14vw,52px)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-delay:0ms!important;transition-duration:.01ms!important}}
