@import "https://fonts.googleapis.com/css2?family=Allura&family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Cormorant+Garamond:wght@500;600;700&family=Dancing+Script:wght@500;600;700&family=Playfair+Display:wght@500;600;700;800&display=swap";*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--color-text);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 88%, transparent), color-mix(in srgb, var(--color-paper-cream) 96%, transparent)), var(--color-background);font-family:var(--font-body);font-size:var(--font-md);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}fieldset{border:0;margin:0;padding:0}#root{min-height:100svh}@keyframes fade-up{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-left{0%{clip-path:inset(0 100% 0 0);transform:translate(-.75rem)}to{clip-path:inset(0);transform:translate(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes line-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.page-state{min-height:100svh;padding:var(--spacing-xl);color:var(--color-text-muted);text-align:center;place-items:center;display:grid}.section-kicker{font-family:var(--font-serif);font-size:var(--font-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.section-title{margin:var(--spacing-xs) 0 var(--spacing-md);font-family:var(--font-serif);color:var(--color-text);font-size:clamp(1.6rem,3vw,2.7rem);line-height:1.05}.section-copy{max-width:50rem;color:var(--color-text-muted);margin:0 auto}.form-error{margin-top:var(--spacing-2xs);color:var(--color-danger);font-size:var(--font-xs)}.form-success{color:var(--color-success);font-size:var(--font-sm)}.loader{place-items:center;gap:var(--spacing-md);min-height:100svh;color:var(--color-text-muted);text-align:center;display:grid}.loader__mark{aspect-ratio:1;border:1px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-pill);width:2.25rem;animation:.9s linear infinite loader-spin}@keyframes loader-spin{to{transform:rotate(1turn)}}.button{justify-content:center;align-items:center;gap:var(--spacing-xs);min-height:2.6rem;padding:0 var(--spacing-lg);border-radius:var(--radius-pill);font-size:var(--font-sm);letter-spacing:.03em;text-transform:uppercase;border:1px solid #0000;font-weight:700;transition:transform .26s,box-shadow .26s,background .26s,border-color .26s;display:inline-flex}.button:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:3px}.button:disabled{cursor:not-allowed;opacity:.62}.button:not(:disabled):hover{transform:translateY(-1px)}.button--primary{color:var(--color-surface);background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));box-shadow:0 .75rem 1.5rem color-mix(in srgb, var(--color-primary) 22%, transparent)}.button--ghost{color:var(--color-primary);background:color-mix(in srgb, var(--color-surface) 86%, transparent);border-color:var(--color-border)}.button--plain{min-height:auto;color:var(--color-primary);box-shadow:none;background:0 0;border-color:#0000;padding:0}.button--sm{min-height:2rem;padding-inline:var(--spacing-md);font-size:var(--font-xs)}.button--lg{min-height:3rem;padding-inline:var(--spacing-xl)}.music-player{align-items:center;gap:var(--spacing-xs);border:1px solid color-mix(in srgb, var(--color-border) 86%, transparent);border-radius:var(--radius-pill);background:linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 94%, transparent), color-mix(in srgb, var(--color-surface-soft) 72%, transparent)), var(--color-surface);min-width:10.75rem;box-shadow:var(--shadow-sm);padding:.28rem .55rem .28rem .32rem;display:inline-flex;position:relative}.music-player button{aspect-ratio:1;border-radius:var(--radius-pill);width:2rem;color:var(--color-surface);background:var(--color-primary);box-shadow:0 .45rem 1rem color-mix(in srgb, var(--color-primary) 24%, transparent);border:0;place-items:center;display:grid}.music-player__copy{min-width:4.2rem;line-height:1.05;display:grid}.music-player__copy span{color:var(--color-text-muted);font-family:var(--font-serif);letter-spacing:.08em;text-transform:uppercase;font-size:.64rem}.music-player__copy strong{color:var(--color-text);font-size:.72rem;font-weight:700}.music-player__bars{align-items:center;gap:.14rem;height:1.25rem;display:inline-flex}.music-player__bars i{border-radius:var(--radius-pill);background:var(--color-primary);opacity:.45;transform-origin:bottom;width:.18rem;height:.38rem}.music-player__mark{color:var(--color-primary);opacity:.7}.music-player.is-playing .music-player__bars i{animation:.76s ease-in-out infinite music-bar}.music-player.is-playing .music-player__bars i:nth-child(2){animation-delay:.12s}.music-player.is-playing .music-player__bars i:nth-child(3){animation-delay:.24s}.music-player.has-error{opacity:.7}@keyframes music-bar{0%,to{transform:scaleY(.75)}50%{transform:scaleY(2.4)}}@media (width<=1024px){.music-player{gap:0;min-width:auto;padding:.22rem}.music-player button{width:2.35rem}.music-player__copy,.music-player__bars,.music-player__mark{display:none}}body.wedding-slide-page{background:var(--color-background);overflow:hidden}.wedding-shell{background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 86%, transparent), color-mix(in srgb, var(--color-background) 98%, transparent)), var(--color-background);width:100%;height:100svh;min-height:100svh;box-shadow:none;border:0;border-radius:0;flex-direction:column;margin:0;display:flex;position:relative;overflow:hidden}.wedding-header{z-index:50;border-bottom:1px solid color-mix(in srgb, var(--color-border) 62%, transparent);background:linear-gradient(90deg, color-mix(in srgb, var(--color-surface) 94%, transparent), color-mix(in srgb, var(--color-surface-soft) 78%, transparent)), color-mix(in srgb, var(--color-surface) 88%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.02);backdrop-filter:blur(18px)saturate(1.02);height:72px;box-shadow:0 .65rem 2rem color-mix(in srgb, var(--color-primary-dark) 7%, transparent);flex:none;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(.9rem,2vw,1.75rem);padding:0 clamp(1.25rem,5.6vw,7.5rem);transition:border-color .26s,background .26s,-webkit-backdrop-filter .26s,backdrop-filter .26s,box-shadow .26s;display:grid;position:absolute;top:0;left:0;right:0}.wedding-shell.is-at-hero .wedding-header{background:linear-gradient(180deg, color-mix(in srgb, var(--color-paper-cream) 42%, transparent), transparent 88%);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:#0000}.wedding-shell.is-at-hero .wedding-header__nav button{color:color-mix(in srgb, var(--color-primary-dark) 86%, var(--color-text))}.wedding-shell.is-at-hero .wedding-header__nav button.is-active{color:var(--color-primary)}.wedding-shell.is-at-hero .wedding-header__nav button:after{background:color-mix(in srgb, var(--color-accent) 78%, var(--color-primary))}.wedding-shell.is-at-hero .wedding-header__logo{color:var(--color-primary);text-shadow:0 .35rem 1rem color-mix(in srgb, var(--color-primary) 10%, transparent)}.wedding-shell.is-at-hero .wedding-header__actions .music-player{border-color:color-mix(in srgb, var(--color-accent) 24%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 64%, transparent), color-mix(in srgb, var(--color-paper-cream) 58%, transparent));box-shadow:none}.wedding-shell.is-at-hero .wedding-header__actions .button{border-color:color-mix(in srgb, var(--color-accent) 36%, transparent);box-shadow:0 .65rem 1.35rem color-mix(in srgb, var(--color-primary-dark) 12%, transparent)}.wedding-slides{z-index:2;scroll-behavior:smooth;scroll-snap-type:y mandatory;overscroll-behavior:contain;touch-action:pan-y;background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 62%, transparent), color-mix(in srgb, var(--color-background) 98%, transparent)), var(--color-background);flex:100%;height:100%;min-height:0;scroll-padding-top:0;position:relative;overflow:hidden auto}.wedding-slides>*{isolation:isolate;scroll-snap-align:start;scroll-snap-stop:always;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-primary) 28%, transparent) transparent;opacity:.62;width:100%;max-width:none;height:100%;min-height:100%;margin:0;transition:opacity .65s,filter .65s;position:relative;overflow:clip auto}.wedding-slides>::-webkit-scrollbar{width:.35rem}.wedding-slides>::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-primary) 26%, transparent)}.wedding-slides>.is-slide-active{opacity:1;filter:none}.wedding-slides>*>*{opacity:.72;transition:opacity .68s,transform .82s cubic-bezier(.16,1,.3,1);transform:translateY(.9rem)}.wedding-slides>.is-slide-active>*{opacity:1;transform:translateY(0)}.wedding-slides>:before{z-index:-2;background:linear-gradient(116deg, transparent 0 73%, color-mix(in srgb, var(--color-primary) 9%, transparent) 73.1% 73.28%, transparent 73.4%), linear-gradient(62deg, transparent 0 78%, color-mix(in srgb, var(--color-secondary) 8%, transparent) 78.1% 78.32%, transparent 78.45%), radial-gradient(ellipse .7rem 1.7rem at 5% 17%, color-mix(in srgb, var(--color-primary) 18%, transparent) 0 48%, transparent 50%), radial-gradient(ellipse .9rem 2.1rem at 8% 24%, color-mix(in srgb, var(--color-secondary) 16%, transparent) 0 48%, transparent 50%), radial-gradient(ellipse .72rem 1.65rem at 11% 15%, color-mix(in srgb, var(--color-accent) 14%, transparent) 0 48%, transparent 50%), radial-gradient(ellipse .8rem 2rem at 95% 19%, color-mix(in srgb, var(--color-primary) 16%, transparent) 0 48%, transparent 50%), radial-gradient(ellipse .66rem 1.55rem at 91% 28%, color-mix(in srgb, var(--color-secondary) 15%, transparent) 0 48%, transparent 50%), radial-gradient(ellipse .58rem 1.45rem at 88% 14%, color-mix(in srgb, var(--color-accent) 13%, transparent) 0 48%, transparent 50%), var(--slide-bg,var(--color-background));content:"";position:absolute;inset:0}.wedding-slides>.has-section-image:before{background:linear-gradient(90deg, color-mix(in srgb, var(--color-background) 92%, transparent), color-mix(in srgb, var(--color-surface) 70%, transparent) 46%, color-mix(in srgb, var(--color-background) 88%, transparent)), linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 66%, transparent), color-mix(in srgb, var(--color-secondary) 14%, transparent)), var(--slide-image), var(--slide-bg,var(--color-background));background-position:50%;background-size:cover,cover,cover,auto}.wedding-slides>:after{z-index:-1;background:repeating-linear-gradient(100deg, transparent 0 .55rem, color-mix(in srgb, var(--color-primary) 16%, transparent) .58rem .68rem, transparent .72rem 1.12rem), linear-gradient(180deg, transparent, color-mix(in srgb, var(--color-secondary) 18%, transparent));height:clamp(6rem,17vh,11rem);opacity:var(--grass-opacity,.5);content:"";pointer-events:none;position:absolute;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 42% 100%);mask-image:linear-gradient(#0000 0%,#000 42% 100%)}.wedding-slides :is(.hero-section__photo,.hero-section__monogram,.hero-section__guest-badge,.hero-section__content h1,.hero-section__invite,.hero-section__copy,.hero-section__content .button,.hero-section__scroll,.section-kicker,.section-title,.section-copy,.invitation-card,.story-timeline__item,.album-grid__item,.album-section>.button,.rsvp-panel__intro,.rsvp-form__switch,.rsvp-form label,.rsvp-form__status,.rsvp-form__summary,.rsvp-form__footer,.wishes-gallery,.wishes-gallery__summary,.wish-card,.wish-form,.wish-form__icon,.wish-form__heading,.wish-form label,.wish-form .button){opacity:0;filter:blur(7px);transform:translate3d(0, 1.35rem, 0) scale(.985) rotate(var(--card-tilt,0deg));will-change:opacity, filter, transform;transition:opacity .76s,filter .76s,transform .92s cubic-bezier(.16,1,.3,1)}.wedding-slides>.is-slide-active :is(.hero-section__photo,.hero-section__monogram,.hero-section__guest-badge,.hero-section__content h1,.hero-section__invite,.hero-section__copy,.hero-section__content .button,.hero-section__scroll,.section-kicker,.section-title,.section-copy,.invitation-card,.story-timeline__item,.album-grid__item,.album-section>.button,.rsvp-panel__intro,.rsvp-form__switch,.rsvp-form label,.rsvp-form__status,.rsvp-form__summary,.rsvp-form__footer,.wishes-gallery,.wishes-gallery__summary,.wish-card,.wish-form,.wish-form__icon,.wish-form__heading,.wish-form label,.wish-form .button){opacity:1;filter:blur();transform:translate3d(0, 0, 0) scale(1) rotate(var(--card-tilt,0deg))}.wedding-slides>.is-slide-active :is(.section-kicker,.hero-section__monogram){transition-delay:80ms}.wedding-slides>.is-slide-active :is(.section-title,.hero-section__photo,.hero-section__guest-badge){transition-delay:.17s}.wedding-slides>.is-slide-active :is(.section-copy,.hero-section__content h1,.rsvp-panel__intro){transition-delay:.26s}.wedding-slides>.is-slide-active :is(.hero-section__invite,.invitation-card,.wishes-gallery){transition-delay:.36s}.wedding-slides>.is-slide-active :is(.hero-section__copy,.rsvp-form__switch,.wish-form){transition-delay:.45s}.wedding-slides>.is-slide-active :is(.hero-section__content .button,.album-section>.button,.rsvp-form__footer){transition-delay:.56s}.wedding-slides>.is-slide-active .hero-section__scroll{transition-delay:.7s}.wedding-slides>.is-slide-active .story-timeline__item:first-child,.wedding-slides>.is-slide-active .album-grid__item:first-child,.wedding-slides>.is-slide-active .rsvp-form label:first-of-type,.wedding-slides>.is-slide-active .wishes-gallery__summary{transition-delay:.34s}.wedding-slides>.is-slide-active .story-timeline__item:nth-child(2),.wedding-slides>.is-slide-active .album-grid__item:nth-child(2),.wedding-slides>.is-slide-active .rsvp-form label:nth-of-type(2),.wedding-slides>.is-slide-active .wish-card:first-child{transition-delay:.43s}.wedding-slides>.is-slide-active .story-timeline__item:nth-child(3),.wedding-slides>.is-slide-active .album-grid__item:nth-child(3),.wedding-slides>.is-slide-active .rsvp-form label:nth-of-type(3),.wedding-slides>.is-slide-active .wish-card:nth-child(2){transition-delay:.52s}.wedding-slides>.is-slide-active .story-timeline__item:nth-child(4),.wedding-slides>.is-slide-active .album-grid__item:nth-child(4),.wedding-slides>.is-slide-active .rsvp-form label:nth-of-type(4),.wedding-slides>.is-slide-active .wish-card:nth-child(3){transition-delay:.61s}.wedding-slides>.is-slide-active .album-grid__item:nth-child(5),.wedding-slides>.is-slide-active .rsvp-form label:nth-of-type(5),.wedding-slides>.is-slide-active .rsvp-form__summary,.wedding-slides>.is-slide-active .wish-card:nth-child(4){transition-delay:.7s}.wedding-slides>.is-slide-active .album-grid__item:nth-child(6),.wedding-slides>.is-slide-active .wish-card:nth-child(5){transition-delay:.79s}.wedding-slides>.is-slide-active .wish-form__icon{transition-delay:.42s}.wedding-slides>.is-slide-active .wish-form__heading{transition-delay:.5s}.wedding-slides>.is-slide-active .wish-form label:first-of-type{transition-delay:.58s}.wedding-slides>.is-slide-active .wish-form label:nth-of-type(2){transition-delay:.66s}.wedding-slides>.is-slide-active .wish-form .button{transition-delay:.74s}.wedding-slides>.hero-section{--grass-opacity:.58;--slide-bg:linear-gradient(105deg, color-mix(in srgb, var(--color-primary) 24%, transparent), transparent 38%), linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-background) 96%, transparent));height:100%;overflow:hidden}.wedding-slides>.hero-section:before,.wedding-slides>.hero-section:after,.wedding-slides>.hero-section.has-section-image:before{display:none}.wedding-slides>.invitation-section,.wedding-slides>.story-section,.wedding-slides>.album-section,.wedding-slides>.rsvp-section,.wedding-slides>.wishes-section{align-content:center;width:100%;max-width:none;margin-inline:0;padding-block:calc(72px + clamp(.85rem,2.5vh,1.7rem)) clamp(1rem,3.5vh,2.4rem);padding-inline:clamp(1rem,5vw,5rem);display:grid}.wedding-slides>.invitation-section{--slide-bg:linear-gradient(140deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-surface-soft) 72%, transparent)), linear-gradient(35deg, transparent 0 42%, color-mix(in srgb, var(--color-accent) 14%, transparent) 43% 55%, transparent 56%), $color-background}.wedding-slides>.story-section{--slide-bg:linear-gradient(180deg, color-mix(in srgb, var(--color-surface-soft) 74%, transparent), color-mix(in srgb, var(--color-background) 96%, transparent)), repeating-linear-gradient(120deg, color-mix(in srgb, var(--color-primary) 7%, transparent) 0 1px, transparent 1px 3rem)}.wedding-slides>.album-section{--slide-bg:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 86%, transparent), color-mix(in srgb, var(--color-surface-soft) 80%, transparent)), repeating-linear-gradient(90deg, color-mix(in srgb, var(--color-secondary) 8%, transparent) 0 1px, transparent 1px 4rem);--grass-opacity:.38}.wedding-slides>.rsvp-section{--slide-bg:linear-gradient(135deg, color-mix(in srgb, var(--color-surface-soft) 62%, transparent), color-mix(in srgb, var(--color-paper-cream) 88%, transparent)), repeating-linear-gradient(45deg, color-mix(in srgb, var(--color-primary) 8%, transparent) 0 1px, transparent 1px 3.4rem)}.wedding-slides>.wishes-section{--slide-bg:linear-gradient(160deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-background) 88%, transparent)), linear-gradient(25deg, color-mix(in srgb, var(--color-accent) 12%, transparent), transparent 38%);--grass-opacity:.3}.wedding-slides .invitation-section__intro,.wedding-slides .story-section__intro,.wedding-slides .album-section__intro,.wedding-slides .wishes-section__intro{margin-bottom:clamp(.9rem,2.6vh,1.6rem)}@media (height<=820px) and (width>=760px){.wedding-slides>.invitation-section:not(.invitation-section--personal){padding-block:calc(72px + .45rem) .45rem}}.wedding-art-layer{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.wedding-art-layer span{background:color-mix(in srgb, var(--color-primary) 38%, transparent);width:.5rem;height:1.45rem;box-shadow:0 .45rem 1rem color-mix(in srgb, var(--color-secondary) 12%, transparent);opacity:.24;border-radius:80% 0;animation:11s linear infinite petal-drift;position:absolute;transform:rotate(28deg)}.wedding-art-layer span:first-child{animation-delay:-2s;left:8%}.wedding-art-layer span:nth-child(2){animation-duration:13s;animation-delay:-7s;left:34%}.wedding-art-layer span:nth-child(3){animation-duration:15s;animation-delay:-4s;left:66%}.wedding-art-layer span:nth-child(4){animation-duration:12s;animation-delay:-9s;left:88%}.floating-hearts{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:hidden}.floating-hearts span{bottom:-3.5rem;left:var(--heart-left);color:color-mix(in srgb, var(--color-primary) 68%, var(--color-accent));font-family:var(--font-serif);font-size:var(--heart-size,1.3rem);opacity:0;text-shadow:0 .45rem 1.6rem color-mix(in srgb, var(--color-primary) 14%, transparent);animation:heart-rise var(--heart-duration,18s) linear infinite;animation-delay:var(--heart-delay,0s);line-height:1;position:absolute;transform:translate(0,0)scale(.82)}.floating-hearts span:first-child{--heart-left:4%;--heart-size:1.25rem;--heart-drift:1.8rem;--heart-delay:-1s;--heart-duration:18s}.floating-hearts span:nth-child(2){--heart-left:11%;--heart-size:.95rem;--heart-drift:-1.4rem;--heart-delay:-9s;--heart-duration:22s}.floating-hearts span:nth-child(3){--heart-left:19%;--heart-size:1.1rem;--heart-drift:2.4rem;--heart-delay:-15s;--heart-duration:24s}.floating-hearts span:nth-child(4){--heart-left:82%;--heart-size:1.18rem;--heart-drift:-2rem;--heart-delay:-5s;--heart-duration:20s}.floating-hearts span:nth-child(5){--heart-left:91%;--heart-size:.92rem;--heart-drift:1.2rem;--heart-delay:-12s;--heart-duration:23s}.floating-hearts span:nth-child(6){--heart-left:96%;--heart-size:1.35rem;--heart-drift:-1.8rem;--heart-delay:-18s;--heart-duration:26s}.floating-hearts span:nth-child(7){--heart-left:28%;--heart-size:.78rem;--heart-drift:-2.3rem;--heart-delay:-7s;--heart-duration:25s}.floating-hearts span:nth-child(8){--heart-left:74%;--heart-size:.82rem;--heart-drift:2.1rem;--heart-delay:-3s;--heart-duration:21s}.floating-hearts span:nth-child(9){--heart-left:7%;--heart-size:1rem;--heart-drift:2.8rem;--heart-delay:-21s;--heart-duration:27s}.floating-hearts span:nth-child(10){--heart-left:88%;--heart-size:1.08rem;--heart-drift:-2.6rem;--heart-delay:-16s;--heart-duration:24s}.floating-hearts span:nth-child(11){--heart-left:34%;--heart-size:.74rem;--heart-drift:1.8rem;--heart-delay:-11s;--heart-duration:28s}.floating-hearts span:nth-child(12){--heart-left:67%;--heart-size:.78rem;--heart-drift:-1.9rem;--heart-delay:-19s;--heart-duration:29s}.floating-hearts span:nth-child(13){--heart-left:14%;--heart-size:.88rem;--heart-drift:-1.7rem;--heart-delay:-25s;--heart-duration:30s}.floating-hearts span:nth-child(14){--heart-left:93%;--heart-size:.86rem;--heart-drift:1.5rem;--heart-delay:-27s;--heart-duration:31s}.slide-rail{z-index:45;gap:.45rem;display:grid;position:absolute;top:50%;right:clamp(.75rem,2vw,1.2rem);transform:translateY(-50%)}.slide-rail button{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-primary) 58%, transparent);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-surface) 88%, transparent);width:.48rem;box-shadow:var(--shadow-sm);padding:0;transition:height .26s,background .26s,transform .26s}.slide-rail button.is-active{background:var(--color-primary);height:1.55rem;transform:translate(-.05rem)}@keyframes petal-drift{0%{top:-8%;transform:translate(0,0)rotate(28deg)}50%{transform:translate(1.8rem,48vh)rotate(108deg)}to{top:108%;transform:translate(-1.2rem)rotate(208deg)}}.wedding-shell:has(.invitation-section.is-slide-active) .floating-hearts{opacity:.16}@keyframes heart-rise{0%{opacity:0;transform:translate(0,0)scale(.72)rotate(-8deg)}12%{opacity:.16}72%{opacity:.12}to{opacity:0;transform:translate3d(var(--heart-drift,1rem), -84vh, 0) scale(1.18) rotate(12deg)}}.wedding-header__logo{color:var(--color-primary);font-family:var(--font-editorial);letter-spacing:.09em;background:0 0;border:0;font-size:clamp(1.55rem,2.35vw,2.55rem);font-weight:400;line-height:1}.wedding-header__nav{justify-content:center;align-items:center;gap:clamp(1rem,2.65vw,3.3rem);display:flex}.wedding-header__nav button{color:var(--color-text);font-family:var(--font-serif);letter-spacing:.14em;text-transform:uppercase;background:0 0;border:0;padding:.38rem 0;font-size:clamp(.68rem,.72vw,.78rem);font-weight:600;position:relative}.wedding-header__nav button:after{background:var(--color-primary);content:"";transform-origin:50%;height:1px;transition:transform .26s;position:absolute;bottom:0;left:12%;right:12%;transform:scaleX(0)}.wedding-header__nav button.is-active{color:var(--color-primary)}.wedding-header__nav button.is-active:after{transform:scaleX(1)}.wedding-header__actions{align-items:center;gap:clamp(.45rem,1vw,.75rem);display:flex}.wedding-header__actions .music-player{min-width:clamp(8.8rem,10vw,10rem);padding:.22rem .46rem .22rem .26rem}.wedding-header__actions .music-player button{width:1.78rem}.wedding-header__actions .music-player__copy{min-width:3.7rem}.wedding-header__actions .music-player__copy span{letter-spacing:.11em;font-size:.56rem}.wedding-header__actions .music-player__copy strong{font-size:.66rem}.wedding-header__actions .button{min-height:2.15rem;padding-inline:clamp(.72rem,1.15vw,1rem);font-size:.68rem}.wedding-header__menu{aspect-ratio:1;width:2.5rem;color:var(--color-primary);background:0 0;border:0;display:none}.mobile-drawer{z-index:70;gap:var(--spacing-sm);padding:var(--spacing-2xl);color:var(--color-text);background:var(--color-surface);flex-direction:column;transition:transform .52s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0;transform:translate(100%)}.mobile-drawer.is-open{transform:translate(0)}.mobile-drawer button{padding:var(--spacing-md) 0;border:0;border-bottom:1px solid var(--color-border);color:inherit;font-family:var(--font-serif);font-size:var(--font-xl);text-align:left;background:0 0}.mobile-drawer__close{aspect-ratio:1;align-self:flex-end;place-items:center;width:2.75rem;display:grid}@media (width<=1024px){.wedding-shell{border-radius:0;width:100%;height:100svh;min-height:100svh}.wedding-header{flex-basis:auto;grid-template-columns:auto auto;justify-content:space-between;height:4.3rem;padding-inline:clamp(1.15rem,5vw,2rem)}.wedding-header__nav,.wedding-header__actions .button{display:none}.wedding-header__menu{place-items:center;display:grid}.floating-hearts span{font-size:calc(var(--heart-size,1rem) * .86)}.slide-rail{grid-auto-flow:column;top:auto;bottom:.55rem;right:50%;transform:translate(50%)}.slide-rail button.is-active{width:1.45rem;height:.48rem;transform:none}.wedding-shell:has(.invitation-section--personal.is-slide-active) .slide-rail{display:none}.wedding-slides>.invitation-section,.wedding-slides>.story-section,.wedding-slides>.album-section,.wedding-slides>.rsvp-section,.wedding-slides>.wishes-section{padding-block:calc(4.3rem + var(--spacing-md)) calc(var(--spacing-xl) + .8rem);padding-inline:var(--spacing-md)}}@media (width<=430px){.wedding-shell{width:100%;height:100svh;min-height:100svh;margin:0}}@media (prefers-reduced-motion:reduce){.wedding-slides,.wedding-slides>*,.wedding-slides :is(.hero-section__photo,.hero-section__monogram,.hero-section__guest-badge,.hero-section__content h1,.hero-section__invite,.hero-section__copy,.hero-section__content .button,.hero-section__scroll,.section-kicker,.section-title,.section-copy,.invitation-card,.story-timeline__item,.album-grid__item,.album-section>.button,.rsvp-panel__intro,.rsvp-form__switch,.rsvp-form label,.rsvp-form__status,.rsvp-form>.button,.wishes-gallery,.wishes-gallery__summary,.wish-card,.wish-form,.wish-form__icon,.wish-form__heading,.wish-form label,.wish-form .button){scroll-behavior:auto;transition-duration:1ms;transition-delay:0s;animation-duration:1ms;animation-delay:0s}.wedding-art-layer span,.floating-hearts span{animation:none}}.lightbox{z-index:80;padding:var(--spacing-lg);place-items:center;display:grid;position:fixed;inset:0}.lightbox__backdrop{background:var(--color-overlay);border:0;position:absolute;inset:0}.lightbox__stage{z-index:1;place-items:center;width:min(100%,70rem);display:grid;position:relative}.lightbox__stage img{border-radius:var(--radius-md);width:auto;max-height:82svh;box-shadow:var(--shadow-lg)}.lightbox__close,.lightbox__nav{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-surface) 40%, transparent);border-radius:var(--radius-pill);width:2.75rem;color:var(--color-surface);background:var(--color-overlay-soft);place-items:center;display:inline-grid;position:absolute}.lightbox__close{top:var(--spacing-md);right:var(--spacing-md)}.lightbox__nav{top:50%;transform:translateY(-50%)}.lightbox__nav--prev{left:var(--spacing-md)}.lightbox__nav--next{right:var(--spacing-md)}.lightbox__meta{right:var(--spacing-md);bottom:var(--spacing-md);left:var(--spacing-md);justify-content:space-between;align-items:center;gap:var(--spacing-md);color:var(--color-surface);text-shadow:0 1px 0 var(--color-overlay-text);display:flex;position:absolute}@media (width<=768px){.lightbox{padding:var(--spacing-sm)}.lightbox__nav{width:2.35rem}.lightbox__meta{margin-top:var(--spacing-sm);position:static}}.album-section{width:min(100%,1280px);padding-inline:clamp(1rem,3vw,4rem);padding-block:var(--spacing-xl) var(--spacing-section);text-align:center;margin-inline:auto}.album-section__intro{margin-bottom:var(--spacing-xl)}.album-grid{gap:var(--spacing-sm);max-width:62rem;margin:0 auto var(--spacing-lg);grid-template-rows:repeat(2,clamp(8rem,17vw,14rem));grid-template-columns:1.15fr .85fr .85fr 1fr;display:grid}.album-grid__item{border-radius:var(--radius-xs);background:var(--color-surface-soft);min-width:0;box-shadow:var(--shadow-sm);border:0;padding:0;animation:.52s cubic-bezier(.16,1,.3,1) both scale-in;overflow:hidden}.album-grid__item:hover img{transform:scale(1.04)}.album-grid__item img{object-fit:cover;width:100%;height:100%;transition:transform .52s cubic-bezier(.16,1,.3,1)}.album-grid__item--1{grid-area:span 2/1}.album-grid__item--2{grid-area:1/2}.album-grid__item--3{grid-area:1/3}.album-grid__item--4{grid-area:2/2/auto/span 2}.album-grid__item--5{grid-area:1/4}.album-grid__item--6{grid-area:2/4}.album-grid--mosaic{grid-template-rows:repeat(3,clamp(5.6rem,10vw,8.5rem));grid-template-columns:repeat(5,minmax(0,1fr))}.album-grid--mosaic .album-grid__item--1{grid-area:span 2/span 2}.album-grid--mosaic .album-grid__item--2{grid-area:span 1/span 2}.album-grid--mosaic .album-grid__item--3,.album-grid--mosaic .album-grid__item--4,.album-grid--mosaic .album-grid__item--5,.album-grid--mosaic .album-grid__item--6,.album-grid--mosaic .album-grid__item--7,.album-grid--mosaic .album-grid__item--8{grid-area:auto}.album-grid--portrait_wall{grid-template-rows:repeat(2,clamp(9rem,19vw,15rem));grid-template-columns:repeat(4,minmax(0,1fr))}.album-grid--portrait_wall .album-grid__item{grid-area:auto}.album-grid--portrait_wall .album-grid__item--2,.album-grid--portrait_wall .album-grid__item--5{margin-top:1rem}.album-custom-layout{gap:var(--spacing-sm);width:min(100%,62rem);max-height:min(58vh,30rem);margin:0 auto var(--spacing-lg);padding-right:var(--spacing-xs);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-primary) 34%, transparent) transparent;display:grid;overflow-y:auto}.album-custom-layout__row{grid-template-columns:repeat(var(--album-row-columns), minmax(0, 1fr));gap:var(--spacing-sm);display:grid}.album-custom-layout__row--compact .album-custom-layout__item{aspect-ratio:16/9}.album-custom-layout__row--normal .album-custom-layout__item{aspect-ratio:4/3}.album-custom-layout__row--tall .album-custom-layout__item{aspect-ratio:3/4}.album-custom-layout__item{width:100%}@media (width<=768px){.album-grid{gap:var(--spacing-xs);grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr))}.album-grid__item--1{aspect-ratio:16/10;grid-area:auto/1/auto/-1}.album-grid__item--2,.album-grid__item--3,.album-grid__item--4,.album-grid__item--5,.album-grid__item--6{aspect-ratio:1;grid-area:auto}}@media (width<=430px){.album-section__intro{margin-bottom:var(--spacing-sm)}.album-section__intro .section-copy{display:none}.album-grid{margin-bottom:var(--spacing-sm);gap:.45rem}.album-grid__item--1{aspect-ratio:16/8}.album-grid__item--2,.album-grid__item--3,.album-grid__item--4,.album-grid__item--5{aspect-ratio:4/3}.album-grid .album-grid__item:nth-child(n+6){display:none}.album-custom-layout{max-height:43svh;margin-bottom:var(--spacing-sm);gap:.45rem}.album-custom-layout__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}}.wedding-footer{justify-items:center;gap:var(--spacing-xs);padding:var(--spacing-2xl) var(--spacing-md);border-top:1px solid var(--color-border);background:var(--color-surface-soft);text-align:center;display:grid}.wedding-footer p{color:var(--color-primary);font-family:var(--font-display);margin:0;font-size:clamp(2.4rem,6vw,4rem);line-height:1}.wedding-footer h2{justify-content:center;align-items:center;gap:var(--spacing-xs);font-family:var(--font-serif);font-size:var(--font-lg);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;margin:0;display:flex}.wedding-footer h2 small{align-items:center;gap:var(--spacing-2xs);color:color-mix(in srgb, var(--color-accent) 76%, var(--color-primary));letter-spacing:0;grid-template-columns:1.4rem auto 1.4rem;font-size:.75em;display:inline-grid}.wedding-footer h2 small:before,.wedding-footer h2 small:after{content:"";opacity:.42;background:currentColor;height:1px}.wedding-footer span{color:var(--color-text-muted);font-family:var(--font-serif)}.hero-section{isolation:isolate;border:1px solid color-mix(in srgb, var(--color-accent) 58%, transparent);height:100%;min-height:100%;color:var(--color-text);background:radial-gradient(circle at 48% 52%, color-mix(in srgb, var(--color-surface) 78%, transparent), transparent 34%), linear-gradient(90deg, color-mix(in srgb, var(--color-paper-cream) 97%, #fff) 0 43%, color-mix(in srgb, var(--color-paper-cream) 78%, transparent) 57%, transparent 78%), linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 96%, #fff), color-mix(in srgb, var(--color-background) 86%, #fff));box-shadow:inset 0 0 0 clamp(.42rem, .7vw, .8rem) color-mix(in srgb, var(--color-surface) 58%, transparent), inset 0 0 0 calc(clamp(.42rem, .7vw, .8rem) + 1px) color-mix(in srgb, var(--color-accent) 28%, transparent);border-radius:clamp(1.1rem,1.7vw,1.7rem);grid-template-columns:minmax(20rem,.86fr) minmax(0,1.14fr);align-items:stretch;display:grid;position:relative;overflow:hidden}.hero-section__photo{z-index:1;-webkit-mask-composite:source-in;background:0 0;grid-area:1/2;place-self:stretch stretch;min-width:0;min-height:0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 18% 100%),linear-gradient(#0000 0%,#000 12% 95%,#0000 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.hero-section__photo:before,.hero-section__photo:after{z-index:2;content:"";pointer-events:none;position:absolute;inset:0}.hero-section__photo:before{background:radial-gradient(circle at 74% 16%, #ffffffa3, transparent 28%), linear-gradient(90deg, color-mix(in srgb, var(--color-paper-cream) 98%, transparent), transparent 32%), linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 70%, transparent), transparent 21%)}.hero-section__photo:after{background:linear-gradient(180deg, transparent 58%, color-mix(in srgb, var(--color-paper-cream) 70%, transparent)), linear-gradient(90deg, color-mix(in srgb, var(--color-paper-cream) 54%, transparent), transparent 34%);opacity:.72}.hero-section__photo img{object-fit:cover;object-position:center bottom;filter:saturate(.82)sepia(.11)contrast(.94)brightness(1.12);width:100%;height:100%;animation:.98s cubic-bezier(.16,1,.3,1) both reveal-left;transform:scale(1.03)}.hero-section__content{z-index:3;text-align:left;grid-area:1/1;align-content:center;justify-items:start;width:min(100%,39rem);padding:calc(72px + clamp(1.1rem,4.2vh,3.5rem)) clamp(1.8rem,4.8vw,5.25rem) clamp(3.4rem,8vh,5.8rem) clamp(2.6rem,7.2vw,8rem);display:grid;position:relative}.hero-section__content:after{background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent) 66%, transparent), color-mix(in srgb, var(--color-accent) 28%, transparent) 42%, transparent);content:"";order:4;width:min(14.4rem,68%);height:1px;margin:clamp(1.35rem,3vh,1.9rem) 0 clamp(1.55rem,3.4vh,2.15rem);display:block}.hero-section__monogram{display:none}.hero-section__guest-badge{border:1px solid color-mix(in srgb, var(--color-accent) 38%, transparent);border-radius:var(--radius-pill);min-height:1.75rem;color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface) 58%, transparent);font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;align-items:center;margin-bottom:clamp(.9rem,2.2vh,1.45rem);padding:0 clamp(.78rem,1.5vw,1.1rem);font-size:clamp(.66rem,.72vw,.76rem);font-weight:700;display:inline-flex}.hero-section__names{width:min(100%,40rem);max-width:min(100%,38rem);color:var(--color-primary);font-family:var(--font-editorial);letter-spacing:0;justify-items:start;row-gap:clamp(.22rem,.75vh,.45rem);margin:0;font-size:clamp(3.35rem,4.25vw,5.15rem);font-weight:400;line-height:1.16;animation:.52s cubic-bezier(.16,1,.3,1) both fade-up;display:grid}.hero-section__names .hero-section__name{overflow-wrap:break-word;white-space:nowrap;max-width:100%;display:block}.hero-section__headline-line{white-space:nowrap;max-width:100%;display:block}.hero-section__headline-line:nth-child(2n){font-style:italic}.hero-section__ampersand{width:min(14.5rem,68vw);color:color-mix(in srgb, var(--color-accent) 78%, var(--color-primary));font-family:var(--font-serif);grid-template-columns:minmax(3.7rem,1fr) auto minmax(3.7rem,1fr);align-items:center;gap:clamp(.55rem,1.2vw,.9rem);font-size:clamp(.95rem,1.1vw,1.18rem);line-height:1;display:grid}.hero-section__ampersand:before,.hero-section__ampersand:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--color-accent) 80%, transparent));content:"";height:1px}.hero-section__ampersand:after{background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent) 80%, transparent), transparent)}.hero-section__ampersand span{aspect-ratio:1;border-radius:var(--radius-pill);background:0 0;border:0;place-items:center;width:1.35rem;display:inline-grid}.hero-section__invite{color:var(--color-primary-dark);font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;order:5;margin:0 0 clamp(.7rem,1.3vh,.9rem);font-size:clamp(.74rem,.85vw,.88rem);font-weight:700;line-height:1.4}.hero-section__invite:after{display:none}.hero-section__copy{max-width:min(100%,28.5rem);color:var(--color-text-muted);order:6;margin:0 0 clamp(1.15rem,2.8vh,1.85rem);font-size:clamp(.96rem,1.15vw,1.14rem);font-weight:400;line-height:1.75}.hero-section__content .button{border-color:color-mix(in srgb, var(--color-accent) 46%, transparent);min-width:clamp(11rem,14vw,14rem);min-height:clamp(2.8rem,4.8vh,3.25rem);color:var(--color-surface);background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 92%, #fff), var(--color-primary-dark));box-shadow:0 1rem 2.3rem color-mix(in srgb, var(--color-primary-dark) 16%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 12%, transparent);font-family:var(--font-serif);letter-spacing:.02em;text-transform:none;order:7;font-size:clamp(.85rem,.96vw,1rem)}.hero-section__scroll{z-index:5;color:var(--color-primary-dark);font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;background:0 0;border:0;justify-items:center;gap:.42rem;padding:0;font-size:clamp(.62rem,.72vw,.76rem);display:grid;position:absolute;bottom:clamp(.95rem,2.4vh,1.55rem);left:50%;transform:translate(-50%)}.hero-section__scroll:after{background:color-mix(in srgb, var(--color-accent) 80%, transparent);content:"";width:1px;height:clamp(1.6rem,4vh,2.3rem);display:block}.hero-section__scroll svg{width:.92rem;height:.92rem;color:color-mix(in srgb, var(--color-accent) 82%, var(--color-primary));transform:translateY(-.32rem)}@media (width<=1024px){.hero-section{background:linear-gradient(180deg, color-mix(in srgb, var(--color-paper-cream) 88%, #fff), color-mix(in srgb, var(--color-background) 88%, #fff)), var(--color-background);border-radius:clamp(.9rem,3.4vw,1.4rem);grid-template-columns:minmax(16rem,.92fr) minmax(0,1.08fr);align-items:center}.hero-section__photo{opacity:.64;grid-area:1/2;width:100%;height:100%;position:relative;inset:auto;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 22% 100%),linear-gradient(#0000 0%,#000 12% 78%,#0000 100%)}.hero-section__content{grid-column:1;width:min(100%,36rem);padding:calc(4.3rem + clamp(1.15rem,5vh,3.4rem)) clamp(1.35rem,5vw,3.4rem) clamp(3.8rem,8.5vh,5.4rem)}.hero-section__names{max-width:min(100%,32rem);font-size:clamp(3rem,9.6vw,4.85rem)}.hero-section__copy{max-width:min(100%,27rem)}}@media (height<=820px) and (width>=760px){.hero-section__content{padding-block:clamp(2.4rem,6vh,3.8rem)}.hero-section__names{font-size:clamp(2.85rem,8.2vh,4.1rem)}.hero-section__content:after{margin-block:clamp(.9rem,2vh,1.25rem) clamp(1rem,2.2vh,1.45rem)}.hero-section__copy{margin-bottom:1rem;font-size:.92rem;line-height:1.55}}@media (width<=430px){.hero-section{border-radius:0;grid-template-rows:minmax(13.25rem,36svh) minmax(0,1fr);grid-template-columns:1fr;align-items:stretch}.hero-section__photo{opacity:.78;grid-area:1/1;width:100%;height:100%;position:relative;inset:auto;transform:none;-webkit-mask-image:linear-gradient(#000 0% 72%,#0000 100%)}.hero-section__photo img{object-position:center 45%;transform:scale(1.04)}.hero-section__photo:before{background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 28%, transparent), transparent 42%), linear-gradient(90deg, color-mix(in srgb, var(--color-paper-cream) 30%, transparent), transparent 36%)}.hero-section__photo:after{background:linear-gradient(180deg, transparent 54%, color-mix(in srgb, var(--color-paper-cream) 92%, transparent)), linear-gradient(90deg, color-mix(in srgb, var(--color-paper-cream) 22%, transparent), transparent 40%);opacity:.82}.hero-section__content{grid-area:2/1;align-content:start;padding:clamp(.78rem,2.6vh,1.1rem) clamp(1.1rem,6vw,1.55rem) clamp(3.35rem,8.4vh,4.3rem)}.hero-section__content:after{width:min(12rem,62%);margin:.72rem 0 .86rem}.hero-section__guest-badge{margin-bottom:.52rem;font-size:.64rem}.hero-section__names{font-size:clamp(2.25rem,10.6vw,3.12rem);line-height:1.08}.hero-section__ampersand{width:min(10rem,56vw)}.hero-section__invite{margin-bottom:.5rem;font-size:.7rem}.hero-section__copy{margin-bottom:.78rem;font-size:.84rem;line-height:1.46}.hero-section__content .button{min-width:11rem;min-height:2.58rem}.hero-section__scroll{bottom:.9rem}}@media (width<=430px) and (height<=720px){.hero-section{grid-template-rows:minmax(10.8rem,29svh) minmax(0,1fr)}.hero-section__content{padding-top:.62rem;padding-bottom:1rem}.hero-section__content:after{margin-block:.48rem .58rem}.hero-section__guest-badge{margin-bottom:.38rem}.hero-section__names{font-size:clamp(2.05rem,9.8vw,2.62rem)}.hero-section__invite{margin-bottom:.32rem}.hero-section__copy{margin-bottom:.62rem;font-size:.82rem;line-height:1.42}.hero-section__content .button{min-height:2.58rem}.hero-section__scroll{display:none}}@keyframes invitation-fade-in{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translate(0,0)}}@keyframes invitation-photo-reveal{0%{clip-path:inset(0 100% 0 0 round 1.25rem);opacity:.4}to{clip-path:inset(0 round 1.25rem);opacity:1}}@keyframes invitation-divider-reveal{0%{opacity:0;transform:scaleX(.74)}to{opacity:1;transform:scaleX(1)}}@keyframes invitation-day-in{0%{opacity:0;transform:translateY(.95rem)scale(.94)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes invitation-floral-in{0%{opacity:0;transform:translate3d(var(--floral-x,.9rem), var(--floral-y,-.75rem), 0) scale(.98)}to{opacity:var(--floral-opacity,1);transform:translate(0,0)scale(1)}}@keyframes invitation-floral-idle{0%{transform:translate(0,0)}to{transform:translateY(-.16rem)}}.invitation-card{--invite-frame-radius:clamp(1.25rem, 1.75vw, 1.9rem);--invite-inner-radius:clamp(1rem, 1.45vw, 1.55rem);--invite-content-pad-y:clamp(1.35rem, 2.25vw, 2.5rem);--invite-content-pad-x:clamp(2.3rem, 4.2vw, 4.8rem);isolation:isolate;aspect-ratio:1672/941;border:1px solid color-mix(in srgb, var(--wedding-gold) 58%, transparent);border-radius:var(--invite-frame-radius);width:min(100%,1672px);color:var(--wedding-text);font-family:var(--font-body);background:radial-gradient(circle at 64% 45%, #ffffffb8, transparent 38%), linear-gradient(135deg, color-mix(in srgb, var(--wedding-paper) 94%, #fff), var(--wedding-bg) 100%);box-shadow:0 1.8rem 4.2rem color-mix(in srgb, var(--wedding-primary-dark) 9%, transparent), inset 0 0 0 1px #ffffffb8;grid-template-columns:46% 54%;align-self:start;margin-inline:auto;padding:clamp(.72rem,1.32vw,1.42rem);animation:.85s both invitation-fade-in;display:grid;position:relative;overflow:hidden}.invitation-card:before{z-index:10;border:1px solid color-mix(in srgb, var(--wedding-gold) 30%, transparent);border-radius:calc(var(--invite-frame-radius) - .35rem);content:"";pointer-events:none;position:absolute;inset:clamp(.42rem,.74vw,.8rem)}.invitation-card:after{z-index:0;background:linear-gradient(90deg, transparent 45.98%, color-mix(in srgb, var(--wedding-gold) 48%, transparent) 46%, transparent 46.08%), url(/assets/paper-frame-texture-B18_xdtG.png) center/cover no-repeat;mix-blend-mode:multiply;opacity:.1;content:"";pointer-events:none;position:absolute;inset:0}.invitation-card__ornament{display:none}.invitation-card__photo,.invitation-card__content,.invitation-card__decor{z-index:2;min-width:0;position:relative}.invitation-card__photo{border-radius:calc(var(--invite-inner-radius) - .18rem) 0 0 calc(var(--invite-inner-radius) - .18rem);background:color-mix(in srgb, var(--wedding-sage) 20%, var(--wedding-paper));grid-column:1;height:100%;min-height:0;margin:0;animation:1.1s cubic-bezier(.16,1,.3,1) .12s both invitation-photo-reveal;overflow:hidden}.invitation-card__photo:before,.invitation-card__photo:after{z-index:2;content:"";pointer-events:none;position:absolute;inset:0}.invitation-card__photo:before{background:linear-gradient(#faf8ef1f,#faf8ef00 34%),linear-gradient(#3e503300 40%,#3e50330d 52%,#3e503352 72%,#314428b8 100%)}.invitation-card__photo:after{mix-blend-mode:screen;opacity:.55;background:radial-gradient(circle at 22% 8%,#fff7e17a,#0000 28%),linear-gradient(90deg,#30412c1f,#0000 44%)}.invitation-card__photo>img:not(.invitation-card__photo-botanical){object-fit:cover;object-position:center center;filter:saturate(.82)sepia(.08)contrast(.96)brightness(1.06);width:100%;height:100%;transition:filter 1.2s,transform 1.2s cubic-bezier(.16,1,.3,1);transform:scale(1)}.invitation-card__photo figcaption{z-index:8;color:#efe3be;width:min(72%,34rem);max-width:72%;font-family:var(--font-display);text-shadow:0 .4rem 1rem #1f2d1c52;opacity:0;grid-template-columns:auto auto 1fr;align-items:center;gap:.08em .26em;font-size:clamp(2.35rem,3.25vw,3.65rem);font-weight:400;line-height:.98;animation:.76s .82s both invitation-fade-in;display:grid;position:absolute;bottom:clamp(2.1rem,5.6%,3.45rem);left:clamp(2.2rem,5vw,5.1rem);transform:translateY(.75rem)}.invitation-card__photo figcaption span{white-space:nowrap;display:block}.invitation-card__photo figcaption span:first-child{grid-area:1/1}.invitation-card__photo figcaption span:last-child{grid-area:2/2/auto/4;justify-self:center;margin-top:.1em;padding-left:clamp(1.3rem,3.2vw,3.2rem)}.invitation-card__photo figcaption small{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--wedding-gold) 62%, transparent);border-radius:var(--radius-pill);width:1.85rem;color:color-mix(in srgb, var(--wedding-gold-soft) 86%, #fff);font-family:var(--font-editorial);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#30412c3d;grid-area:1/2;place-items:center;margin-inline:.02em;font-size:1.06rem;line-height:1;display:inline-grid}.invitation-card:hover .invitation-card__photo>img:not(.invitation-card__photo-botanical){filter:saturate(.88)sepia(.06)contrast(.98)brightness(1.08);transform:scale(1.015)}.invitation-card__photo-botanical{z-index:5;opacity:.64;pointer-events:none;width:54%;max-width:28rem;position:absolute;bottom:-10%;left:-9%;transform:rotate(1deg)}.invitation-card__content{z-index:7;min-height:100%;padding:var(--invite-content-pad-y) var(--invite-content-pad-x) clamp(2.45rem, 3.45vw, 3.75rem);text-align:center;grid-column:2;align-content:start;justify-items:center;display:grid}.invitation-card__decor{pointer-events:none;position:absolute}.invitation-card__decor img{width:100%;height:auto;display:block}.invitation-card__decor--top-right{--floral-x:.95rem;--floral-y:-.75rem;--floral-opacity:.96;z-index:4;opacity:0;width:clamp(10rem,16.3vw,18.2rem);animation:1.25s .52s both invitation-floral-in,7.5s ease-in-out 1.8s infinite alternate invitation-floral-idle;top:-2.3%;right:-.7%}.invitation-card__decor--content-sprig{--floral-x:-.45rem;--floral-y:-.85rem;--floral-opacity:.52;z-index:3;opacity:0;transform-origin:0 0;width:clamp(5.8rem,8.6vw,9.2rem);animation:1.15s .56s both invitation-floral-in;top:-2.6%;left:45.2%;overflow:hidden}.invitation-card__decor--content-sprig img{transform:translate(-22%,-20%)scale(1.08)rotate(-11deg)}.invitation-card__decor--center-bouquet{--floral-x:-.25rem;--floral-y:.9rem;--floral-opacity:.98;z-index:6;opacity:0;width:clamp(8.3rem,13vw,14.55rem);animation:1.2s .76s both invitation-floral-in,8s ease-in-out 2.1s infinite alternate invitation-floral-idle;bottom:clamp(.38rem,.68vw,.72rem);left:39%;transform:translate(-50%)}.invitation-card__decor--bottom-right{--floral-x:.7rem;--floral-y:.7rem;--floral-opacity:.86;z-index:3;opacity:0;width:clamp(7.4rem,12.2vw,13.6rem);animation:1.2s .9s both invitation-floral-in;bottom:clamp(.45rem,.82vw,.95rem);right:clamp(.45rem,.82vw,.95rem)}.invitation-card__ceremony{opacity:0;width:min(100%,38rem);margin:0;animation:.76s .42s both invitation-fade-in;transform:translateY(.75rem)}.invitation-card__ceremony-title{color:var(--wedding-primary-dark);font-family:var(--font-editorial);letter-spacing:.08em;text-transform:uppercase;font-size:clamp(2.8rem,3.65vw,4.05rem);font-weight:600;line-height:1;display:block}.invitation-card__floral-divider{opacity:0;transform-origin:50%;place-items:center;width:min(64%,31rem);height:clamp(1.6rem,2.45vw,2.55rem);margin-top:clamp(.78rem,1.28vw,1.05rem);animation:.85s .6s both invitation-divider-reveal;display:grid}.invitation-card__floral-divider img{object-fit:contain;width:100%;height:100%}.invitation-card__families{width:min(100%,41rem);color:var(--wedding-text);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;margin-top:clamp(.72rem,1.22vw,1rem);display:grid;position:relative}.invitation-card__family{opacity:0;min-width:0;padding-inline:clamp(1rem,2.2vw,2rem);animation:.65s both invitation-fade-in;transform:translateY(.7rem)}.invitation-card__family:first-child{animation-delay:.76s}.invitation-card__family:last-child{animation-delay:.88s}.invitation-card__family h3{color:var(--wedding-primary);font-family:var(--font-editorial);letter-spacing:.1em;text-transform:uppercase;margin:0 0 clamp(.5rem,.9vw,.72rem);font-size:clamp(1.25rem,1.35vw,1.75rem);font-weight:600;line-height:1}.invitation-card__family p{color:var(--wedding-text);margin:.12rem 0;font-size:clamp(.88rem,.92vw,1.08rem);font-weight:500;line-height:1.42}.invitation-card__family strong{color:var(--wedding-sage);margin-top:clamp(.42rem,.72vw,.56rem);font-size:clamp(.9rem,.9vw,1.04rem);font-weight:600;line-height:1.25;display:block}.invitation-card__family-divider{background:linear-gradient(180deg, transparent, var(--wedding-line) 18% 82%, transparent);opacity:0;width:1px;height:clamp(4.9rem,6.2vw,6rem);animation:.65s .82s both invitation-fade-in;display:block;position:relative}.invitation-card__family-divider:before{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--wedding-gold) 72%, transparent);background:color-mix(in srgb, var(--wedding-paper) 86%, #fff);content:"";width:.38rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.invitation-card__date{width:min(100%,41.2rem);color:var(--wedding-primary);grid-template-columns:minmax(7rem,1fr) auto minmax(7rem,1fr);align-items:center;margin-top:clamp(.85rem,1.75vw,1.34rem);display:grid;position:relative}.invitation-card__date>span{color:var(--wedding-primary);opacity:0;justify-items:center;gap:clamp(.24rem,.42vw,.34rem);animation:.65s .98s both invitation-fade-in;display:grid;transform:translateY(.7rem)}.invitation-card__date>span:before,.invitation-card__date>span:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--wedding-gold) 76%, transparent), transparent);content:"";width:min(82%,10.4rem);height:1px;display:block}.invitation-card__date>span small{color:var(--wedding-primary);font-family:var(--font-editorial);letter-spacing:.14em;text-transform:uppercase;font-size:clamp(.74rem,.86vw,.94rem);font-weight:700;line-height:1}.invitation-card__date>span b{color:var(--wedding-primary);font-family:var(--font-editorial);font-size:clamp(1.95rem,2.15vw,2.38rem);font-weight:600;line-height:.9}.invitation-card__day-mark{opacity:0;place-items:center;min-width:clamp(6.5rem,9.9vw,10.2rem);animation:.78s cubic-bezier(.16,1,.3,1) 1.08s both invitation-day-in;display:grid;position:relative}.invitation-card__day-mark strong{z-index:2;color:var(--wedding-primary);font-family:var(--font-editorial);font-size:clamp(5.25rem,6.9vw,8.05rem);font-weight:500;line-height:.82;position:relative}.invitation-card__date-sprig{z-index:1;opacity:.5;filter:saturate(.85)sepia(.05);pointer-events:none;width:clamp(3.4rem,5.4vw,5.9rem);position:absolute}.invitation-card__date-sprig--left{bottom:4%;right:62%;transform:rotate(-14deg)scaleX(-1)}.invitation-card__date-sprig--right{bottom:4%;left:62%;transform:rotate(14deg)}.invitation-card__lunar{width:min(100%,38rem);color:color-mix(in srgb, var(--wedding-primary-dark) 78%, var(--wedding-muted));opacity:0;margin:clamp(.72rem,.96vw,.92rem) 0 0;font-size:clamp(.9rem,.92vw,1rem);font-weight:400;line-height:1.45;animation:.62s 1.18s both invitation-fade-in;transform:translateY(.55rem)}.invitation-card__details{grid-template-columns:repeat(var(--detail-count,3), minmax(0, 1fr));border-top:1px solid color-mix(in srgb, var(--wedding-gold) 40%, transparent);width:min(100%,42rem);color:var(--wedding-text);margin-top:clamp(.82rem,1.25vw,1.05rem);padding-top:clamp(.72rem,1.02vw,.9rem);display:grid}.invitation-card__detail{opacity:0;align-content:start;justify-items:center;min-width:0;min-height:clamp(4rem,4.85vw,4.95rem);padding-inline:clamp(.7rem,1.3vw,1.1rem);animation:.62s both invitation-fade-in;display:grid;position:relative;transform:translateY(.6rem)}.invitation-card__detail:first-child{animation-delay:1.27s}.invitation-card__detail:nth-child(2){animation-delay:1.37s}.invitation-card__detail:nth-child(3){animation-delay:1.47s}.invitation-card__detail+.invitation-card__detail{border-left:1px solid var(--wedding-line)}.invitation-card__detail>span{color:var(--wedding-primary-dark);font-family:var(--font-editorial);letter-spacing:.08em;text-transform:uppercase;font-size:clamp(1.08rem,1.15vw,1.38rem);font-weight:600;line-height:1}.invitation-card__detail strong,.invitation-card__detail p{color:var(--wedding-text);margin:0;font-size:clamp(.85rem,.86vw,1rem);line-height:1.4}.invitation-card__detail strong{margin-top:.55rem;font-weight:700}.invitation-card__detail p{color:var(--wedding-muted);font-weight:500}.invitation-card__map-link{color:var(--wedding-primary-dark);align-items:center;gap:.24rem;margin-top:.45rem;font-size:clamp(.82rem,.82vw,.92rem);font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.invitation-card__map-link:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .23s;position:absolute;bottom:-.12rem;left:0;right:0;transform:scaleX(0)}.invitation-card__map-link small{font-size:.9em;transition:transform .23s}.invitation-card__map-link:hover:after,.invitation-card__map-link:focus-visible:after{transform:scaleX(1)}.invitation-card__map-link:hover small,.invitation-card__map-link:focus-visible small{transform:translate(2px,-2px)}.invitation-card__map-preview{z-index:20;border:1px solid color-mix(in srgb, var(--wedding-gold) 36%, transparent);width:min(18rem,78vw);color:var(--wedding-text);background:color-mix(in srgb, var(--wedding-paper) 96%, #fff);box-shadow:0 1rem 2.4rem color-mix(in srgb, var(--wedding-primary-dark) 15%, transparent);opacity:0;pointer-events:none;text-align:left;visibility:hidden;border-radius:.75rem;padding:.9rem;transition:opacity .22s,transform .26s,visibility .22s;position:absolute;bottom:calc(100% + .75rem);left:50%;transform:translate(-50%,.5rem)scale(.98)}.invitation-card__map-preview strong,.invitation-card__map-preview p,.invitation-card__map-preview span{display:block}.invitation-card__map-preview strong{color:var(--wedding-primary-dark);margin-top:.5rem}.invitation-card__map-preview p,.invitation-card__map-preview span{color:var(--wedding-muted);margin-top:.25rem;font-size:.82rem}.invitation-card__map-art{background:linear-gradient(135deg, color-mix(in srgb, var(--wedding-sage) 28%, #fff), color-mix(in srgb, var(--wedding-gold-soft) 26%, #fff));border-radius:.55rem;height:4rem;position:relative;overflow:hidden}.invitation-card__map-art span{border:1px solid color-mix(in srgb, var(--wedding-primary) 24%, transparent);border-radius:999px;position:absolute;inset:.8rem}.invitation-card__detail--map:hover .invitation-card__map-preview,.invitation-card__detail--map:focus-within .invitation-card__map-preview{opacity:1;visibility:visible;transform:translate(-50%)scale(1)}.invitation-card__detail--dress{gap:clamp(.55rem,.85vw,.74rem);padding-inline:clamp(.35rem,.72vw,.62rem)}.invitation-card__dress-palette{flex-wrap:wrap;justify-content:center;gap:clamp(.32rem,.46vw,.46rem);margin-top:.42rem;display:inline-flex}.invitation-card__dress-swatch{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--wedding-gold) 46%, transparent);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--dress-color) 92%, #fff);cursor:help;opacity:0;width:clamp(1.68rem,1.76vw,1.96rem);box-shadow:inset 0 0 0 clamp(.33rem, .42vw, .42rem) color-mix(in srgb, var(--wedding-paper) 78%, transparent), 0 .38rem .8rem color-mix(in srgb, var(--dress-color) 24%, transparent);place-items:center;transition:box-shadow .22s,transform .22s;animation:.52s both invitation-day-in;display:inline-grid;position:relative;transform:scale(.82)}.invitation-card__dress-swatch:first-child{animation-delay:1.52s}.invitation-card__dress-swatch:nth-child(2){animation-delay:1.59s}.invitation-card__dress-swatch:nth-child(3){animation-delay:1.66s}.invitation-card__dress-swatch:nth-child(4){animation-delay:1.73s}.invitation-card__dress-swatch:nth-child(5){animation-delay:1.8s}.invitation-card__dress-swatch:nth-child(6){animation-delay:1.87s}.invitation-card__dress-swatch:nth-child(7){animation-delay:1.94s}.invitation-card__dress-swatch:nth-child(8){animation-delay:2.01s}.invitation-card__dress-swatch:after{z-index:20;border:1px solid color-mix(in srgb, var(--wedding-gold) 42%, transparent);width:max-content;max-width:7rem;color:var(--wedding-primary-dark);background:color-mix(in srgb, var(--wedding-paper) 94%, #fff);content:attr(data-color-name);opacity:0;pointer-events:none;visibility:hidden;box-shadow:0 .55rem 1.2rem color-mix(in srgb, var(--wedding-primary-dark) 12%, transparent);border-radius:.45rem;padding:.28rem .48rem;font-size:.72rem;font-weight:700;line-height:1;transition:opacity .18s,transform .22s,visibility .18s;position:absolute;bottom:calc(100% + .48rem);left:50%;transform:translate(-50%,.3rem)}.invitation-card__dress-swatch:hover,.invitation-card__dress-swatch:focus-visible{box-shadow:inset 0 0 0 clamp(.33rem, .42vw, .42rem) color-mix(in srgb, var(--wedding-paper) 78%, transparent), 0 0 0 .2rem color-mix(in srgb, var(--dress-color) 22%, transparent), 0 .48rem .9rem color-mix(in srgb, var(--dress-color) 28%, transparent);transform:scale(1.08)}.invitation-card__dress-swatch:hover:after,.invitation-card__dress-swatch:focus-visible:after{opacity:1;visibility:visible;transform:translate(-50%)}.invitation-card__floral-divider--guest{opacity:.58;width:min(48%,24rem);height:clamp(.72rem,1.1vw,1.05rem);margin-top:clamp(.44rem,.72vw,.62rem);animation-delay:1.54s}.invitation-card__guest-ribbon{width:min(100%,42rem);color:var(--wedding-primary);text-align:center;opacity:0;justify-items:center;margin-top:clamp(1.28rem,1.62vw,1.56rem);animation:.7s 1.63s both invitation-fade-in;display:grid;transform:translateY(.75rem)}.invitation-card__guest-label{color:var(--wedding-primary);font-family:var(--font-editorial);letter-spacing:.22em;text-transform:uppercase;font-size:clamp(.94rem,.96vw,1.13rem);font-weight:500;line-height:1}.invitation-card__guest-ribbon strong{color:#4b6c45;font-family:var(--font-display);margin-top:clamp(.42rem,.72vw,.64rem);font-size:clamp(2.2rem,2.7vw,3.05rem);font-weight:400;line-height:1;display:block}.invitation-card__guest-ribbon p{width:min(96%,39rem);color:var(--wedding-muted);margin:clamp(.34rem,.62vw,.54rem) 0 0;font-size:clamp(.78rem,.78vw,.88rem);font-weight:400;line-height:1.38}.invitation-card:not(.invitation-card--with-photo){aspect-ratio:auto;grid-template-columns:1fr;max-width:66rem;min-height:clamp(34rem,78vh,48rem)}.invitation-card:not(.invitation-card--with-photo) .invitation-card__content{grid-column:1}.invitation-card:not(.invitation-card--with-photo) .invitation-card__decor--center-bouquet{opacity:.54;left:6%}@media (width<=1180px){.invitation-card{--invite-content-pad-y:clamp(2rem, 4vw, 3.8rem);--invite-content-pad-x:clamp(2rem, 4.4vw, 4.2rem)}.invitation-card__decor--top-right{width:clamp(8rem,16vw,13rem)}.invitation-card__decor--bottom-right{width:clamp(7rem,14vw,12rem)}}@media (width>=901px){.invitation-card--personal{width:min(100%,177.683svh - 127.932px - 1.95452rem,1672px)}.invitation-card__dress-palette{flex-wrap:nowrap}}@media (width>=901px) and (width<=1180px) and (height<=820px){.invitation-card{--invite-content-pad-y:clamp(1.4rem, 2.35vw, 1.85rem);--invite-content-pad-x:clamp(1.55rem, 3.1vw, 2rem)}.invitation-card--personal{aspect-ratio:auto;min-height:calc(100svh - 72px - 2rem)}.invitation-card__details{width:min(100%,36rem)}.invitation-card__detail{padding-inline:clamp(.28rem,.64vw,.45rem)}.invitation-card__detail strong,.invitation-card__detail p,.invitation-card__detail .invitation-card__map-link{font-size:clamp(.75rem,.78vw,.86rem)}.invitation-card__detail--dress{padding-inline:.18rem}.invitation-card__dress-palette{gap:.24rem}.invitation-card__dress-swatch{width:1.38rem;box-shadow:inset 0 0 0 .28rem color-mix(in srgb, var(--wedding-paper) 78%, transparent), 0 .32rem .72rem color-mix(in srgb, var(--dress-color) 22%, transparent)}}@media (width<=900px){.invitation-card{--invite-frame-radius:clamp(1rem, 4vw, 1.5rem);--invite-inner-radius:clamp(.78rem, 3vw, 1.15rem);--invite-content-pad-y:clamp(1.5rem, 5vw, 2.4rem);--invite-content-pad-x:clamp(1.2rem, 5vw, 2.6rem);aspect-ratio:auto;grid-template-columns:1fr;width:min(100%,46rem);height:auto;min-height:0;padding:clamp(.55rem,2vw,.8rem)}.invitation-card:after{background:linear-gradient(180deg, transparent 28%, color-mix(in srgb, var(--wedding-gold) 34%, transparent) 28.08%, transparent 28.18%), url(/assets/paper-frame-texture-B18_xdtG.png) center/cover no-repeat;opacity:.08}.invitation-card__photo{border-radius:calc(var(--invite-inner-radius) - .12rem) calc(var(--invite-inner-radius) - .12rem) 0 0;grid-column:1;height:clamp(16rem,43svh,24rem)}.invitation-card__content{min-height:auto;padding:var(--invite-content-pad-y) var(--invite-content-pad-x) clamp(1.7rem, 5vw, 2.4rem);grid-column:1}.invitation-card__photo figcaption{max-width:76%;font-size:clamp(2.1rem,8vw,3.05rem);bottom:clamp(1.35rem,6vw,2rem);left:clamp(1.7rem,7vw,3rem)}.invitation-card__decor--top-right{opacity:.62;width:clamp(7rem,25vw,10.5rem);top:28%;right:-3%}.invitation-card__decor--content-sprig{opacity:.34;width:clamp(5rem,18vw,7.4rem);top:28%;left:-3%}.invitation-card__decor--center-bouquet{z-index:3;opacity:.46;width:clamp(7.4rem,27vw,11rem);top:clamp(12rem,33svh,17.6rem);bottom:auto;left:72%}.invitation-card__decor--bottom-right{opacity:.52;width:clamp(6.8rem,25vw,10rem)}.invitation-card__ceremony-title{font-size:clamp(2.35rem,8.2vw,3.6rem)}.invitation-card__floral-divider{width:min(72%,26rem)}.invitation-card__families{width:min(100%,35rem)}.invitation-card__date{grid-template-columns:minmax(5.4rem,1fr) auto minmax(5.4rem,1fr);width:min(100%,35rem)}.invitation-card__details{width:min(100%,36rem)}}@media (width>=431px) and (width<=900px){.invitation-card--personal.invitation-card--with-photo{grid-template-rows:clamp(17rem,32svh,24rem) minmax(0,1fr);height:calc(100svh - 72px - 1rem);max-height:calc(100svh - 72px - 1rem)}.invitation-card--personal .invitation-card__photo{grid-row:1;height:100%;min-height:0}.invitation-card--personal .invitation-card__content{grid-row:2;align-content:space-between;row-gap:clamp(.18rem,.7svh,.42rem);height:100%;min-height:0}.invitation-card--personal .invitation-card__photo figcaption span:last-child{margin-top:.12em}}@media (width>=431px) and (width<=900px) and (height<=900px){.invitation-card--personal.invitation-card--with-photo{grid-template-rows:clamp(13.75rem,28svh,16rem) minmax(0,1fr)}.invitation-card--personal .invitation-card__content{row-gap:clamp(.1rem,.42svh,.22rem);padding:clamp(.72rem,2svh,1.05rem) clamp(1rem,3vw,1.45rem) .78rem}.invitation-card--personal .invitation-card__decor--center-bouquet{width:clamp(6.3rem,20vw,8.2rem);top:clamp(12.5rem,28svh,15.2rem)}.invitation-card--personal .invitation-card__ceremony-title{padding-top:10px;font-size:clamp(2.18rem,7.2vw,2.95rem)}.invitation-card--personal .invitation-card__floral-divider{height:clamp(.88rem,2.1svh,1.18rem);margin-top:clamp(.3rem,.72svh,.46rem)}.invitation-card--personal .invitation-card__families{margin-top:clamp(.38rem,.9svh,.56rem)}.invitation-card--personal .invitation-card__family h3{margin-bottom:.26rem;font-size:clamp(.88rem,2.9vw,1.02rem)}.invitation-card--personal .invitation-card__family p,.invitation-card--personal .invitation-card__family strong{font-size:clamp(.7rem,2.45vw,.8rem);line-height:1.2}.invitation-card--personal .invitation-card__family strong{margin-top:.2rem}.invitation-card--personal .invitation-card__family-divider{height:clamp(3rem,7svh,3.55rem)}.invitation-card--personal .invitation-card__date{margin-top:clamp(.28rem,.8svh,.48rem)}.invitation-card--personal .invitation-card__date>span{gap:.14rem}.invitation-card--personal .invitation-card__date>span small{font-size:clamp(.56rem,1.9vw,.66rem)}.invitation-card--personal .invitation-card__date>span b{font-size:clamp(1.32rem,4.7vw,1.62rem)}.invitation-card--personal .invitation-card__day-mark{min-width:clamp(4.65rem,16vw,5.4rem)}.invitation-card--personal .invitation-card__day-mark strong{font-size:clamp(3.45rem,12.8vw,4.55rem)}.invitation-card--personal .invitation-card__lunar{margin-top:clamp(.16rem,.45svh,.24rem);font-size:clamp(.66rem,2vw,.76rem);line-height:1.24}.invitation-card--personal .invitation-card__details{margin-top:clamp(.32rem,.8svh,.46rem);padding-top:clamp(.34rem,.8svh,.48rem)}.invitation-card--personal .invitation-card__detail{min-height:clamp(3rem,7.2svh,3.45rem)}.invitation-card--personal .invitation-card__detail>span{font-size:clamp(.82rem,2.6vw,.94rem)}.invitation-card--personal .invitation-card__detail strong,.invitation-card--personal .invitation-card__detail p,.invitation-card--personal .invitation-card__detail .invitation-card__map-link{font-size:clamp(.66rem,2.2vw,.76rem);line-height:1.18}.invitation-card--personal .invitation-card__map-link{margin-top:.16rem}.invitation-card--personal .invitation-card__dress-swatch{width:clamp(1.16rem,4.1vw,1.32rem)}.invitation-card--personal .invitation-card__floral-divider--guest{height:clamp(.48rem,1.4svh,.72rem);margin-top:clamp(.22rem,.55svh,.34rem)}.invitation-card--personal .invitation-card__guest-ribbon{margin-top:clamp(.28rem,.7svh,.42rem)}.invitation-card--personal .invitation-card__guest-label{font-size:clamp(.66rem,2vw,.76rem)}.invitation-card--personal .invitation-card__guest-ribbon strong{margin-top:.16rem;font-size:clamp(1.72rem,6.4vw,2.12rem)}.invitation-card--personal .invitation-card__guest-ribbon p{margin-top:.22rem;font-size:clamp(.64rem,2.05vw,.74rem);line-height:1.22}}@media (width<=430px){.invitation-card{padding:.48rem}.invitation-card__photo{height:clamp(13.25rem,38svh,18rem)}.invitation-card__photo-botanical{opacity:.5;width:64%}.invitation-card__photo figcaption{text-align:left;width:min(68%,16rem);max-width:68%;font-size:clamp(1.85rem,8.4vw,2.45rem);bottom:1.05rem;left:1.15rem;right:auto}.invitation-card__photo figcaption span:last-child{padding-left:clamp(1.1rem,7vw,2.4rem)}.invitation-card__photo figcaption small{width:1.45rem;font-size:.82rem}.invitation-card__content{padding:clamp(1.25rem,5vw,1.75rem) clamp(.9rem,4.4vw,1.25rem) clamp(1.35rem,4.5vw,1.8rem)}.invitation-card__decor--top-right{opacity:.45;width:clamp(6.3rem,31vw,8rem);top:31%;right:-8%}.invitation-card__decor--content-sprig{display:none}.invitation-card__decor--center-bouquet{opacity:.42;width:clamp(6rem,27vw,8rem);top:clamp(11.8rem,32svh,15.4rem)}.invitation-card__decor--bottom-right{opacity:.42;width:clamp(5.8rem,30vw,7.8rem)}.invitation-card__ceremony-title{letter-spacing:.07em;font-size:clamp(2rem,11vw,2.78rem)}.invitation-card__floral-divider{width:min(84%,19rem);height:2rem;margin-top:.82rem}.invitation-card__families{margin-top:.82rem}.invitation-card__family{padding-inline:.68rem}.invitation-card__family h3{font-size:clamp(1rem,5vw,1.28rem)}.invitation-card__family p,.invitation-card__family strong{font-size:clamp(.82rem,3.7vw,.94rem)}.invitation-card__family-divider{height:4.3rem}.invitation-card__date{grid-template-columns:minmax(4.7rem,1fr) auto minmax(4.7rem,1fr);margin-top:1.05rem}.invitation-card__date>span small{font-size:.72rem}.invitation-card__date>span b{font-size:clamp(1.48rem,7vw,1.95rem)}.invitation-card__day-mark{min-width:clamp(5.1rem,23vw,6.6rem)}.invitation-card__day-mark strong{font-size:clamp(4.25rem,21vw,5.9rem)}.invitation-card__date-sprig{opacity:.36;width:clamp(2.8rem,12vw,3.6rem)}.invitation-card__lunar{margin-top:.45rem;font-size:clamp(.82rem,3.6vw,.94rem)}.invitation-card__details{grid-template-columns:1fr;margin-top:.92rem;padding-top:.72rem}.invitation-card__detail{min-height:0;padding-block:.72rem}.invitation-card__detail+.invitation-card__detail{border-top:1px solid var(--wedding-line);border-left:0}.invitation-card__detail>span{font-size:clamp(1rem,4.8vw,1.22rem)}.invitation-card__detail strong,.invitation-card__detail p,.invitation-card__detail .invitation-card__map-link{font-size:clamp(.84rem,3.8vw,.95rem)}.invitation-card__dress-swatch{width:1.9rem}.invitation-card__floral-divider--guest{width:min(70%,18rem);margin-top:.7rem}.invitation-card__guest-label{font-size:.9rem}.invitation-card__guest-ribbon strong{font-size:clamp(2.1rem,11vw,2.9rem)}.invitation-card__guest-ribbon p{width:min(100%,22rem);font-size:clamp(.82rem,3.5vw,.92rem)}}@media (width<=374px){.invitation-card__decor--center-bouquet{display:none}.invitation-card__families{grid-template-columns:1fr;row-gap:.8rem}.invitation-card__family-divider{background:linear-gradient(90deg, transparent, var(--wedding-line) 18% 82%, transparent);width:min(68%,12rem);height:1px;margin-inline:auto}.invitation-card__family-divider:before{width:.34rem}.invitation-card__date{grid-template-columns:minmax(4.1rem,1fr) auto minmax(4.1rem,1fr)}}@media (width<=430px){.invitation-card--personal.invitation-card--with-photo{--invite-frame-radius:clamp(.82rem, 3.6vw, 1.1rem);--invite-inner-radius:clamp(.62rem, 2.8vw, .9rem);grid-template-rows:clamp(11.8rem,29svh,15.25rem) minmax(0,1fr);width:100%;height:calc(100svh - 5.08rem);min-height:0;max-height:calc(100svh - 5.08rem);padding:.34rem}.invitation-card--personal .invitation-card__photo{grid-row:1;height:100%;min-height:0}.invitation-card--personal .invitation-card__content{grid-row:2;align-content:space-between;row-gap:clamp(.12rem,.52svh,.28rem);height:100%;min-height:0;padding:clamp(.54rem,2.4svh,.76rem) clamp(.58rem,3vw,.78rem) .62rem}.invitation-card--personal .invitation-card__photo-botanical{display:none}.invitation-card--personal .invitation-card__photo figcaption{color:#fff0c8;text-shadow:0 .16rem .26rem #202d1c57,0 .62rem 1.3rem #1a2a1875;width:min(84%,18rem);max-width:84%;font-size:clamp(1.58rem,7.35vw,2.06rem);line-height:.92;bottom:clamp(.88rem,3.2svh,1.18rem);left:clamp(.8rem,4.4vw,1.18rem)}.invitation-card--personal .invitation-card__photo figcaption span:last-child{margin-top:.12em;padding-left:clamp(1.8rem,11.6vw,3.55rem)}.invitation-card--personal .invitation-card__photo figcaption small{border-color:color-mix(in srgb, var(--wedding-gold) 76%, transparent);width:clamp(1.08rem,5vw,1.28rem);color:color-mix(in srgb, var(--wedding-gold-soft) 92%, #fff);background:#3e4e2f57;font-size:clamp(.66rem,3.1vw,.78rem);box-shadow:0 .32rem .72rem #202d1c38}.invitation-card--personal .invitation-card__decor--top-right{opacity:.28;width:clamp(4.7rem,21vw,5.9rem);top:27.8%;right:-4%}.invitation-card--personal .invitation-card__decor--center-bouquet{opacity:.5;width:clamp(4.6rem,21vw,5.7rem);display:block;top:clamp(9.5rem,25.4svh,13.45rem);bottom:auto;left:75%}.invitation-card--personal .invitation-card__decor--bottom-right{opacity:.22;width:clamp(3.75rem,21vw,5.2rem);bottom:.28rem;right:.3rem}.invitation-card--personal .invitation-card__ceremony-title{letter-spacing:.065em;font-size:clamp(1.55rem,8.2vw,2.05rem)}.invitation-card--personal .invitation-card__floral-divider{width:min(72%,14.4rem);height:clamp(.78rem,3.4svh,1.05rem);margin-top:clamp(.22rem,.9svh,.36rem)}.invitation-card--personal .invitation-card__families{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);row-gap:0;width:100%;margin-top:clamp(.62rem,1.8svh,.86rem)}.invitation-card--personal .invitation-card__family{padding-inline:clamp(.34rem,2vw,.52rem)}.invitation-card--personal .invitation-card__family h3{letter-spacing:.08em;margin-bottom:.22rem;font-size:clamp(.76rem,3.7vw,.92rem)}.invitation-card--personal .invitation-card__family p,.invitation-card--personal .invitation-card__family strong{font-size:clamp(.61rem,2.95vw,.72rem);line-height:1.24}.invitation-card--personal .invitation-card__family strong{margin-top:.2rem}.invitation-card--personal .invitation-card__family-divider{background:linear-gradient(180deg, transparent, var(--wedding-line) 18% 82%, transparent);width:1px;height:clamp(2.65rem,8.4svh,3.35rem);margin-inline:0}.invitation-card--personal .invitation-card__date{grid-template-columns:minmax(3.5rem,1fr) auto minmax(3.5rem,1fr);width:100%;margin-top:clamp(.22rem,1svh,.42rem)}.invitation-card--personal .invitation-card__date>span{gap:.12rem}.invitation-card--personal .invitation-card__date>span small{letter-spacing:.12em;font-size:clamp(.52rem,2.55vw,.62rem)}.invitation-card--personal .invitation-card__date>span b{font-size:clamp(1.02rem,5.2vw,1.28rem)}.invitation-card--personal .invitation-card__day-mark{min-width:clamp(3.55rem,17vw,4.55rem)}.invitation-card--personal .invitation-card__day-mark strong{font-size:clamp(3.15rem,16vw,4rem);line-height:.78}.invitation-card--personal .invitation-card__date-sprig{opacity:.2;width:clamp(1.8rem,9vw,2.45rem)}.invitation-card--personal .invitation-card__lunar{margin-top:clamp(.08rem,.45svh,.18rem);font-size:clamp(.58rem,2.8vw,.68rem);line-height:1.2}.invitation-card--personal .invitation-card__details{grid-template-columns:repeat(var(--detail-count,3), minmax(0, 1fr));width:100%;margin-top:clamp(.28rem,1.05svh,.42rem);padding-top:clamp(.28rem,1svh,.38rem)}.invitation-card--personal .invitation-card__detail{min-height:clamp(2.55rem,8.4svh,3.25rem);padding:0 clamp(.2rem,1.3vw,.32rem)}.invitation-card--personal .invitation-card__detail+.invitation-card__detail{border-top:0;border-left:1px solid var(--wedding-line)}.invitation-card--personal .invitation-card__detail>span{letter-spacing:.065em;font-size:clamp(.66rem,3.05vw,.78rem)}.invitation-card--personal .invitation-card__detail strong,.invitation-card--personal .invitation-card__detail p,.invitation-card--personal .invitation-card__detail .invitation-card__map-link{font-size:clamp(.56rem,2.55vw,.66rem);line-height:1.18}.invitation-card--personal .invitation-card__detail strong,.invitation-card--personal .invitation-card__map-link{margin-top:.18rem}.invitation-card--personal .invitation-card__map-preview{display:none}.invitation-card--personal .invitation-card__detail--dress{gap:.16rem}.invitation-card--personal .invitation-card__dress-palette{flex-wrap:wrap;gap:clamp(.12rem,.75vw,.2rem);margin-top:.16rem}.invitation-card--personal .invitation-card__dress-swatch{width:clamp(.76rem,3.6vw,.92rem);box-shadow:inset 0 0 0 .18rem color-mix(in srgb, var(--wedding-paper) 78%, transparent), 0 .18rem .4rem color-mix(in srgb, var(--dress-color) 20%, transparent)}.invitation-card--personal .invitation-card__floral-divider--guest{opacity:.4;width:min(48%,10.6rem);height:clamp(.46rem,1.8svh,.64rem);margin-top:clamp(.18rem,.72svh,.3rem)}.invitation-card--personal .invitation-card__guest-ribbon{margin-top:clamp(.48rem,1.18svh,.68rem)}.invitation-card--personal .invitation-card__guest-label{letter-spacing:.18em;font-size:clamp(.58rem,2.8vw,.68rem)}.invitation-card--personal .invitation-card__guest-ribbon strong{margin-top:.14rem;font-size:clamp(1.48rem,7.9vw,1.96rem);line-height:.92}.invitation-card--personal .invitation-card__guest-ribbon p{width:min(100%,19rem);margin-top:.22rem;font-size:clamp(.62rem,2.82vw,.72rem);line-height:1.28}}@media (width<=430px) and (height<=760px){.invitation-card--personal.invitation-card--with-photo{grid-template-rows:clamp(9.5rem,26svh,11.4rem) minmax(0,1fr)}.invitation-card--personal .invitation-card__content{padding-top:.48rem;padding-bottom:.5rem}.invitation-card--personal .invitation-card__ceremony-title{padding-top:8px;font-size:clamp(1.38rem,7.8vw,1.78rem)}.invitation-card--personal .invitation-card__floral-divider{height:.7rem}.invitation-card--personal .invitation-card__family-divider{height:2.45rem}.invitation-card--personal .invitation-card__guest-ribbon p{line-height:1.14}}@media (prefers-reduced-motion:reduce){.invitation-card,.invitation-card *,.invitation-card :before,.invitation-card :after{transition-duration:.01ms;animation:none}}.invitation-section{z-index:2;width:min(100%,1280px);padding-inline:clamp(1rem,3vw,4rem);padding-block:clamp(2.5rem, 5vw, 4.5rem) var(--spacing-section);margin-inline:auto;position:relative}.invitation-section__intro{max-width:44rem;margin:0 auto var(--spacing-xl);text-align:center}.invitation-section--personal{align-content:center;width:min(100%,1672px);max-width:none;padding-block:clamp(.35rem,1vh,.7rem);padding-inline:clamp(.55rem,1.25vw,1.2rem)}.wedding-slides>.invitation-section.invitation-section--personal{align-content:start;place-items:start center;padding-block:calc(72px + clamp(.35rem,1vh,.7rem)) clamp(.35rem,1vh,.7rem);padding-inline:clamp(.55rem,1.25vw,1.2rem)}@media (height<=820px) and (width>=760px){.wedding-slides .invitation-section--personal{padding-block:calc(72px + .8rem) .8rem}.wedding-slides .invitation-section__intro{margin-bottom:.55rem}.wedding-slides .invitation-section__intro .section-kicker{font-size:.72rem}.wedding-slides .invitation-section__intro .section-title{margin-block:.2rem .35rem;font-size:clamp(1.45rem,5vh,2rem)}.wedding-slides .invitation-section__intro .section-copy{max-width:34rem;font-size:.76rem;line-height:1.35}}@media (width<=430px){.invitation-section--personal{padding:.35rem .45rem}.wedding-slides>.invitation-section.invitation-section--personal{align-content:start;height:100%;min-height:100%;padding:4.65rem .45rem .35rem;overflow:hidden}.invitation-section__intro{margin-bottom:.75rem}.invitation-section__intro .section-title{margin-block:.25rem .45rem;font-size:clamp(1.45rem,7vw,1.85rem)}.invitation-section__intro .section-copy{font-size:.8rem;line-height:1.45}}.invitation-intro{z-index:100;background-color:var(--color-background);background:radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--color-accent) 20%, var(--color-background)), transparent 28%), radial-gradient(circle at 82% 74%, color-mix(in srgb, var(--color-secondary) 15%, var(--color-background)), transparent 30%), linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 96%, var(--color-background)), var(--color-background));flex-direction:column;justify-content:center;align-items:center;gap:clamp(.55rem,1.4vmin,1rem);height:100svh;padding:clamp(.75rem,2.2vmin,1.5rem);display:flex;position:fixed;inset:0;overflow:hidden}.invitation-intro__texture{opacity:.36;pointer-events:none;background-image:linear-gradient(45deg, color-mix(in srgb, var(--color-border) 28%, transparent) 1px, transparent 1px), linear-gradient(-45deg, color-mix(in srgb, var(--color-border) 22%, transparent) 1px, transparent 1px);background-size:3.5rem 3.5rem;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 76%);mask-image:radial-gradient(circle,#000 0%,#0000 76%)}.intro-stage{isolation:isolate;width:min(100%,70rem);height:min(74svh,42rem);min-height:min(30rem,100svh - 7rem);position:relative}.intro-actions{z-index:12;place-items:center;min-height:3rem;display:grid;position:relative}.intro-closed,.intro-open{place-items:center;display:grid;position:absolute;inset:0}.intro-closed{transition:opacity .42s,transform .52s cubic-bezier(.16,1,.3,1)}.intro-closed__envelope{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:radial-gradient(circle at 50% 12%, color-mix(in srgb, var(--color-paper-white) 92%, transparent) 0 .12rem, transparent .14rem) 0 0/1.2rem 1.2rem, linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 94%, var(--color-background)), color-mix(in srgb, var(--color-surface-soft) 70%, var(--color-background))), var(--color-surface);width:min(100%,54rem);height:min(100%,33rem);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.intro-closed__envelope:before,.intro-closed__envelope:after{background:linear-gradient(135deg, transparent 50%, color-mix(in srgb, var(--color-surface-soft) 88%, var(--color-background)) 50%), var(--color-surface-soft);border-top:1px solid color-mix(in srgb, var(--color-border) 80%, transparent);content:"";height:58%;position:absolute;inset:auto 0 0}.intro-closed__envelope:before{clip-path:polygon(0 0,50% 48%,0 100%)}.intro-closed__envelope:after{clip-path:polygon(100% 0,50% 48%,100% 100%)}.intro-closed__flap{z-index:3;transform-origin:top;background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 90%, var(--color-background)), color-mix(in srgb, var(--color-surface-soft) 82%, var(--color-background)));clip-path:polygon(0 0,100% 0,50% 62%);transition:transform .78s cubic-bezier(.16,1,.3,1),opacity .26s;position:absolute;inset:0}.intro-closed__lace{z-index:4;opacity:.68;background:radial-gradient(circle at 1rem 1rem, transparent 0 .55rem, color-mix(in srgb, var(--color-paper-white) 78%, transparent) .58rem .72rem, transparent .75rem), radial-gradient(circle at 2.4rem 1.3rem, transparent 0 .42rem, color-mix(in srgb, var(--color-paper-white) 80%, transparent) .45rem .58rem, transparent .62rem);width:55%;height:26%;filter:drop-shadow(0 .45rem .8rem color-mix(in srgb, var(--color-text) 10%, transparent));pointer-events:none;background-size:3rem 2.1rem;position:absolute;top:0}.intro-closed__lace--left{transform-origin:0 0;left:-5%;transform:rotate(18deg)}.intro-closed__lace--right{transform-origin:100% 0;right:-5%;transform:rotate(-18deg)}.intro-closed__copy{z-index:5;text-align:center;justify-items:center;display:grid;position:absolute;inset:25% 9% auto}.intro-closed__copy>span,.intro-closed__copy>p{color:var(--color-text-muted);font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase}.intro-closed__copy>span{font-size:clamp(1rem,1.7vmin,1.35rem);font-weight:700}.intro-closed__copy h1{max-width:min(15ch,100%);color:var(--color-primary);font-family:var(--font-display);grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:clamp(.35rem,1.15vmin,.65rem);margin:clamp(.45rem,1.2vmin,.8rem) 0;font-size:clamp(4.2rem,10.3vmin,8rem);font-weight:400;line-height:.82;display:grid}.intro-closed__copy h1 span{overflow-wrap:break-word;text-align:center;max-width:100%;display:block}.intro-closed__copy p{z-index:7;margin:clamp(.15rem,.6vmin,.35rem) 0 0;font-size:clamp(.95rem,1.7vmin,1.25rem);font-weight:700;position:relative}.intro-closed__guest{max-width:min(34rem,92%);color:var(--color-primary-dark);font-family:var(--font-serif);letter-spacing:.06em;text-transform:uppercase;margin-top:clamp(.05rem,.45vmin,.2rem);font-size:clamp(.8rem,1.65vmin,1.08rem);font-weight:800;line-height:1.35}.intro-name-ampersand{width:min(18rem,64%);color:color-mix(in srgb, var(--color-accent) 75%, var(--color-primary));font-family:var(--font-serif);grid-template-columns:minmax(3.5rem,1fr) auto minmax(3.5rem,1fr);align-items:center;gap:clamp(.55rem,1.2vmin,.95rem);font-size:clamp(.95rem,2vmin,1.25rem);font-weight:800;line-height:1;display:grid}.intro-name-ampersand:before,.intro-name-ampersand:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--color-primary) 44%, transparent));content:"";height:1px}.intro-name-ampersand:after{background:linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 44%, transparent), transparent)}.intro-name-ampersand span{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-accent) 62%, transparent);border-radius:var(--radius-pill);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--color-surface) 88%, transparent), color-mix(in srgb, var(--color-accent) 18%, transparent));width:clamp(1.65rem,3.4vmin,2.2rem);box-shadow:0 .55rem 1.2rem color-mix(in srgb, var(--color-primary) 10%, transparent), inset 0 0 0 .18rem color-mix(in srgb, var(--color-accent) 10%, transparent);place-items:center;padding-bottom:.08em;display:grid}.intro-closed__seal{z-index:6;aspect-ratio:1;width:clamp(3.1rem,6vmin,4.2rem);color:var(--color-surface);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--color-primary) 86%, var(--color-surface)), var(--color-primary));border-radius:var(--radius-pill);box-shadow:0 .8rem 1.6rem color-mix(in srgb, var(--color-primary) 28%, transparent), inset 0 0 0 .28rem color-mix(in srgb, var(--color-surface) 16%, transparent);place-items:center;transition:transform .52s cubic-bezier(.16,1,.3,1),opacity .26s;display:grid;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.intro-open{opacity:0;pointer-events:none;transition:opacity .52s,transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(1.8rem)scale(.96)}.intro-open:before{z-index:1;border:1px solid var(--color-border);border-radius:var(--radius-md);background:linear-gradient(145deg, color-mix(in srgb, var(--color-surface-soft) 82%, var(--color-background)), color-mix(in srgb, var(--color-surface) 92%, var(--color-background)));width:min(88%,52rem);height:40%;box-shadow:var(--shadow-lg);content:"";position:absolute;bottom:4%;left:50%;transform:translate(-50%)}.intro-open__back-card{z-index:2;width:min(44%,25rem);height:62%;padding:var(--spacing-xl);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 94%, var(--color-background)), color-mix(in srgb, var(--color-surface-soft) 55%, var(--color-background)));box-shadow:var(--shadow-md);text-align:center;align-content:center;justify-items:center;display:grid;position:absolute;top:2%;left:50%;transform:translate(-50%)}.intro-open__back-card:before{z-index:-1;border:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);border-radius:var(--radius-md);background:radial-gradient(circle, color-mix(in srgb, var(--color-paper-white) 80%, var(--color-background)) 0 .26rem, transparent .28rem) 0 0/1rem 1rem;content:"";opacity:.7;position:absolute;inset:-.85rem}.intro-open__back-card>span,.intro-open__back-card>p{font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase}.intro-open__back-card>span{color:var(--color-primary);font-size:var(--font-xs);overflow-wrap:anywhere;max-width:100%}.intro-open__back-card>em{margin-top:var(--spacing-xs);border:1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));border-radius:var(--radius-pill);color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface-soft) 58%, var(--color-surface));font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;padding:.25rem .75rem;font-size:.64rem;font-style:normal;font-weight:800}.intro-open__back-card h2{margin:var(--spacing-sm) 0;color:var(--color-primary);font-family:var(--font-display);grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:clamp(.25rem,.9vmin,.45rem);font-size:clamp(3rem,5.8vmin,5.2rem);font-weight:400;line-height:.84;display:grid}.intro-open__back-card h2>span{overflow-wrap:break-word;text-align:center;max-width:min(11ch,100%);display:block}.intro-open__back-card h2 .intro-name-ampersand{width:min(12rem,70%);font-size:clamp(.82rem,1.55vmin,1rem)}.intro-open__back-card h2 .intro-name-ampersand span{width:clamp(1.3rem,2.6vmin,1.75rem)}.intro-open__back-card p{color:var(--color-text-muted);font-size:var(--font-sm);margin:0}.intro-open__photo{z-index:5;border:.45rem solid var(--color-surface);background:var(--color-surface);box-shadow:var(--shadow-md);opacity:0;transition:opacity .52s,transform .7s cubic-bezier(.16,1,.3,1);position:absolute;overflow:hidden}.intro-open__photo img{object-fit:cover;width:100%;height:100%}.intro-open__photo--left{aspect-ratio:4/5;border-radius:48% 48% 42% 42%;width:min(25%,15rem);bottom:21%;left:18%;transform:translate(-2rem,1.4rem)rotate(-5deg)}.intro-open__photo--right{aspect-ratio:5/4;border-radius:var(--radius-sm);width:min(27%,16.5rem);bottom:27%;right:18%;transform:translate(2rem,1.4rem)rotate(7deg)}.intro-open__invitation{z-index:7;justify-items:center;gap:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 98%, var(--color-background));width:min(31%,17rem);box-shadow:var(--shadow-md);text-align:center;opacity:0;padding:clamp(.85rem,2vmin,1.25rem);transition:opacity .52s .12s,transform .7s cubic-bezier(.16,1,.3,1) .12s;display:grid;position:absolute;bottom:22%;left:50%;transform:translate(-50%)translateY(1.1rem)}.intro-open__invitation small{max-width:100%;color:var(--color-primary-dark);font-family:var(--font-body);letter-spacing:.08em;overflow-wrap:anywhere;text-transform:uppercase;font-size:.68rem;font-weight:800;line-height:1.25}.intro-open__invitation span{color:var(--color-primary);font-family:var(--font-serif);font-size:var(--font-sm);letter-spacing:.09em;text-transform:uppercase;font-weight:700}.intro-open__invitation p{color:var(--color-text-muted);font-family:var(--font-serif);font-size:var(--font-sm);margin:0;line-height:1.2}.intro-open__date{align-items:center;gap:var(--spacing-xs);grid-template-columns:1fr auto 1fr;width:100%;display:grid}.intro-open__date small{border-block:1px solid var(--color-paper-line);color:var(--color-text);font-family:var(--font-serif);text-transform:uppercase;font-weight:700;line-height:2}.intro-open__date strong{color:var(--color-primary);font-family:var(--font-serif);font-size:clamp(3.1rem,7vmin,5rem);line-height:.9}.intro-open__pocket{z-index:8;width:min(88%,52rem);height:36%;color:var(--color-text);background:linear-gradient(145deg, transparent 50%, color-mix(in srgb, var(--color-surface-soft) 84%, var(--color-background)) 51%) left bottom/50% 100% no-repeat, linear-gradient(215deg, transparent 50%, color-mix(in srgb, var(--color-surface-soft) 86%, var(--color-background)) 51%) right bottom/50% 100% no-repeat, color-mix(in srgb, var(--color-surface) 96%, var(--color-background));border:1px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);clip-path:polygon(0 0,50% 46%,100% 0,100% 100%,0 100%);box-shadow:0 1.2rem 2.2rem color-mix(in srgb, var(--color-text) 10%, transparent);border-top:0;place-items:end center;padding-bottom:clamp(1.25rem,4vmin,2.4rem);display:grid;position:absolute;bottom:4%;left:50%;transform:translate(-50%)}.intro-open__pocket span{font-family:var(--font-serif);letter-spacing:.08em;font-size:clamp(1.5rem,4vmin,3rem)}.intro-open__pearls{z-index:10;border-radius:var(--radius-pill);background:radial-gradient(circle, color-mix(in srgb, var(--color-paper-white) 95%, transparent) 0 33%, color-mix(in srgb, var(--color-accent) 65%, transparent) 34% 44%, transparent 45%) 0 0/100% 1.15rem repeat-y;width:clamp(1rem,2vmin,1.35rem);height:48%;filter:drop-shadow(0 .4rem .5rem color-mix(in srgb, var(--color-text) 12%, transparent));opacity:0;transition:opacity .52s .22s,transform .52s cubic-bezier(.16,1,.3,1) .22s;position:absolute;bottom:8%;right:12%;transform:translateY(-1rem)}.invitation-intro--opening .intro-closed__flap{opacity:.88;transform:rotateX(168deg)}.invitation-intro--opening .intro-closed__seal{opacity:0;transform:translate(-50%)translateY(1.2rem)scale(.82)}.invitation-intro--mini .intro-closed,.invitation-intro--photos .intro-closed,.invitation-intro--ready .intro-closed{opacity:0;pointer-events:none;transform:translateY(-1.2rem)scale(.98)}.invitation-intro--mini .intro-open,.invitation-intro--photos .intro-open,.invitation-intro--ready .intro-open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.invitation-intro--mini .intro-open__invitation,.invitation-intro--photos .intro-open__invitation,.invitation-intro--ready .intro-open__invitation{opacity:1;transform:translate(-50%)translateY(0)}.invitation-intro--photos .intro-open__photo,.invitation-intro--ready .intro-open__photo{opacity:1}.invitation-intro--photos .intro-open__photo--left,.invitation-intro--photos .intro-open__photo--right,.invitation-intro--ready .intro-open__photo--left,.invitation-intro--ready .intro-open__photo--right{transform:translate(0, 0) rotate(var(--photo-rotate,0deg))}.invitation-intro--photos .intro-open__photo--left,.invitation-intro--ready .intro-open__photo--left{--photo-rotate:-4deg}.invitation-intro--photos .intro-open__photo--right,.invitation-intro--ready .intro-open__photo--right{--photo-rotate:5deg}.invitation-intro--photos .intro-open__pearls,.invitation-intro--ready .intro-open__pearls{opacity:1;transform:translateY(0)}@media (width<=768px){.intro-stage{width:min(100%,29rem);height:min(77svh,42rem);min-height:min(33rem,100svh - 6rem)}.intro-closed__envelope{width:min(100%,24rem);height:min(100%,32rem)}.intro-closed__copy{inset:25% 9% auto}.intro-closed__copy h1{font-size:clamp(3rem,14vw,4.5rem)}.intro-closed__seal{bottom:9%}.intro-open:before,.intro-open__pocket{width:min(94%,25rem)}.intro-open:before{height:38%;bottom:8%}.intro-open__back-card{width:min(72%,18rem);height:47%;padding:var(--spacing-md);top:3%}.intro-open__back-card h2{font-size:clamp(2.3rem,12vw,3.6rem)}.intro-open__photo--left{width:35%;bottom:35%;left:6%}.intro-open__photo--right{width:38%;bottom:38%;right:6%}.intro-open__invitation{gap:var(--spacing-2xs);width:min(72%,18rem);padding:var(--spacing-sm);bottom:24%}.intro-open__invitation p{font-size:var(--font-xs)}.intro-open__date strong{font-size:clamp(2.7rem,14vw,4.2rem)}.intro-open__pocket{height:28%;padding-bottom:var(--spacing-lg);bottom:8%}.intro-open__pearls{height:36%;bottom:10%;right:7%}}@media (width<=430px){.invitation-intro{padding:var(--spacing-sm)}.intro-stage{height:min(78svh,36rem);min-height:min(30rem,100svh - 5.5rem)}.intro-actions{min-height:2.6rem}.intro-closed__copy p,.intro-closed__guest,.intro-open__back-card p,.intro-open__invitation p{font-size:.68rem}.intro-open__invitation p:last-child{display:none}}.thank-you-modal{z-index:140;background:radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--color-surface) 22%, transparent), transparent 27%), color-mix(in srgb, var(--color-primary-dark) 46%, transparent);-webkit-backdrop-filter:blur(10px)saturate(1.05);backdrop-filter:blur(10px)saturate(1.05);place-items:center;padding:clamp(1rem,4vw,2rem);animation:.22s both thank-you-fade;display:grid;position:fixed;inset:0}.thank-you-modal__card{border:1px solid color-mix(in srgb, var(--color-accent) 52%, var(--color-border));background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--color-accent) 12%, transparent), transparent 35%), linear-gradient(150deg, color-mix(in srgb, var(--color-surface) 96%, transparent), color-mix(in srgb, var(--color-paper-cream) 92%, transparent)), var(--color-surface);width:min(100%,28rem);box-shadow:0 1.6rem 4.8rem color-mix(in srgb, var(--color-primary-dark) 30%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 70%, transparent);text-align:center;border-radius:clamp(1rem,2.4vw,1.45rem);padding:clamp(1.35rem,4vw,2.2rem);animation:.52s cubic-bezier(.16,1,.3,1) both thank-you-card-in;position:relative;overflow:hidden}.thank-you-modal__card:before,.thank-you-modal__card:after{content:"";pointer-events:none;position:absolute}.thank-you-modal__card:before{border:1px solid color-mix(in srgb, var(--color-accent) 30%, transparent);border-radius:inherit;inset:.65rem}.thank-you-modal__card:after{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);border-radius:50%;width:8rem;bottom:-2.8rem;right:-2.4rem}.thank-you-modal__card h3,.thank-you-modal__card p,.thank-you-modal__card small,.thank-you-modal__card button,.thank-you-modal__card .thank-you-modal__icon,.thank-you-modal__card .thank-you-modal__kicker{z-index:1;position:relative}.thank-you-modal__card h3{color:var(--color-text);font-family:var(--font-serif);margin:.25rem 0 .55rem;font-size:clamp(1.55rem,4vw,2.35rem);line-height:1.04}.thank-you-modal__card p{width:min(100%,21rem);color:color-mix(in srgb, var(--color-text-muted) 86%, var(--color-text));margin:0 auto;font-size:clamp(.86rem,2.2vw,1rem);line-height:1.65}.thank-you-modal__card small{width:min(100%,20rem);color:color-mix(in srgb, var(--color-primary) 78%, var(--color-text-muted));margin:.7rem auto 0;font-size:.78rem;line-height:1.5;display:block}.thank-you-modal__close{z-index:2;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);width:2rem;color:var(--color-primary);background:color-mix(in srgb, var(--color-surface) 72%, transparent);border-radius:50%;place-items:center;display:grid;position:absolute;top:.75rem;right:.75rem}.thank-you-modal__icon{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--color-accent) 50%, transparent);width:clamp(3.7rem,10vw,4.6rem);color:var(--color-primary);background:radial-gradient(circle, color-mix(in srgb, var(--color-surface) 86%, transparent), color-mix(in srgb, var(--color-accent) 12%, transparent));box-shadow:0 .85rem 2.2rem color-mix(in srgb, var(--color-primary-dark) 10%, transparent);border-radius:50%;place-items:center;margin-bottom:.8rem;display:inline-grid}.thank-you-modal__icon svg:first-child{stroke-width:1.7px}.thank-you-modal__icon svg:last-child{color:color-mix(in srgb, var(--color-accent) 82%, var(--color-primary));position:absolute;top:.72rem;right:.82rem}.thank-you-modal__kicker{color:var(--color-primary);font-family:var(--font-serif);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:700}.thank-you-modal__action{border:1px solid color-mix(in srgb, var(--color-accent) 54%, transparent);border-radius:var(--radius-pill);min-width:9rem;min-height:2.65rem;color:var(--color-surface);background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));box-shadow:0 .8rem 1.8rem color-mix(in srgb, var(--color-primary-dark) 20%, transparent);font-family:var(--font-serif);letter-spacing:.1em;text-transform:uppercase;margin-top:1.25rem;padding:0 1.25rem;font-size:.82rem;font-weight:700}@keyframes thank-you-fade{0%{opacity:0}to{opacity:1}}@keyframes thank-you-card-in{0%{opacity:0;transform:translateY(1rem)scale(.96)}to{opacity:1;transform:translate(0,0)scale(1)}}@media (width<=430px){.thank-you-modal__card{padding:1.25rem 1rem}}.toast{margin:var(--spacing-sm) 0 0;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--font-sm)}.toast--success{color:var(--color-success)}.toast--error{color:var(--color-danger)}.rsvp-section{width:100%;max-width:none;color:var(--color-text);--rsvp-gold:color-mix(in srgb, var(--color-accent) 82%, #b88e43);--rsvp-line:color-mix(in srgb, var(--color-accent) 46%, var(--color-primary));--rsvp-paper:color-mix(in srgb, var(--color-surface) 91%, var(--color-paper-cream));margin-inline:auto;padding-inline:clamp(1rem,3vw,4rem);position:relative;overflow:hidden}.rsvp-section:before,.rsvp-section:after{z-index:-1;content:"";pointer-events:none;position:absolute}.rsvp-section:before{border:1px solid var(--rsvp-gold);background:radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--color-surface) 86%, transparent), transparent 30%), radial-gradient(circle at 86% 18%, color-mix(in srgb, var(--color-secondary) 12%, transparent), transparent 28%), linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 88%, transparent), color-mix(in srgb, var(--color-paper-cream) 92%, transparent));box-shadow:0 1.35rem 4rem color-mix(in srgb, var(--color-primary-dark) 12%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 72%, transparent);border-radius:clamp(1rem,2vw,1.45rem);inset:clamp(1.1rem,2vw,2.7rem) clamp(.85rem,3vw,4.5rem)}.rsvp-section:after{aspect-ratio:1.45;border:1px solid color-mix(in srgb, var(--rsvp-gold) 38%, transparent);opacity:.34;border-top:0;border-right:0;width:clamp(11rem,19vw,20rem);inset:auto auto clamp(1.4rem,4vh,3.6rem) clamp(1rem,5vw,5.5rem);-webkit-mask-image:linear-gradient(135deg,#000,#0000 76%);mask-image:linear-gradient(135deg,#000,#0000 76%)}.rsvp-panel{z-index:2;border-radius:clamp(1rem,2vw,1.5rem);grid-template-columns:minmax(15rem,.78fr) minmax(27rem,1.32fr);align-items:center;gap:clamp(1.6rem,5vw,6rem);width:min(100%,78rem);min-height:min(39.5rem,100svh - 72px - clamp(4rem,7vh,6rem));margin-inline:auto;padding:clamp(1.15rem,3vw,2.6rem);display:grid;position:relative}.rsvp-panel__intro{text-align:center;justify-items:center;gap:clamp(.7rem,2vh,1.15rem);max-width:25rem;margin-inline:auto;display:grid}.rsvp-panel__intro .section-kicker{color:color-mix(in srgb, var(--rsvp-gold) 74%, var(--color-primary));font-family:var(--font-serif);letter-spacing:.04em;font-size:clamp(.95rem,1.3vw,1.25rem);font-weight:500}.rsvp-panel__intro .section-title{color:var(--color-text);font-family:var(--font-serif);letter-spacing:0;margin:0;font-size:2rem;font-weight:600;line-height:.93}.rsvp-panel__intro .section-title span{display:block}.rsvp-panel__intro p{width:min(100%,19.2rem);color:color-mix(in srgb, var(--color-text-muted) 86%, var(--color-text));margin:0;font-size:clamp(.9rem,1.15vw,1.06rem);line-height:1.65}.rsvp-panel__intro p strong{color:var(--color-text);font-weight:600}.rsvp-panel__divider{width:min(10.5rem,58%);color:var(--rsvp-gold);grid-template-columns:minmax(2.5rem,1fr) auto minmax(2.5rem,1fr);align-items:center;gap:.5rem;line-height:1;display:grid}.rsvp-panel__divider:before,.rsvp-panel__divider:after{background:linear-gradient(90deg, transparent, var(--rsvp-gold));content:"";height:1px}.rsvp-panel__divider:after{background:linear-gradient(90deg, var(--rsvp-gold), transparent)}.rsvp-panel__divider span{width:1.1rem;height:1.1rem;color:color-mix(in srgb, var(--rsvp-gold) 80%, var(--color-primary));font-family:var(--font-serif);place-items:center;font-size:1rem;display:grid}.rsvp-panel__heart{color:var(--rsvp-gold);font-family:var(--font-serif);font-size:1.45rem;line-height:1}.rsvp-form{border:1px solid color-mix(in srgb, var(--color-border) 68%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-paper-cream) 86%, transparent)), var(--rsvp-paper);width:min(100%,45.5rem);box-shadow:0 1.35rem 3.8rem color-mix(in srgb, var(--color-primary-dark) 13%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 74%, transparent);border-radius:clamp(1rem,1.7vw,1.35rem);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.8rem,1.55vh,1.15rem) clamp(.9rem,1.8vw,1.35rem);margin-inline:auto;padding:clamp(1rem,2.1vw,1.75rem);display:grid;position:relative;overflow:hidden}.rsvp-form:before{border-right:1px solid color-mix(in srgb, var(--color-primary) 32%, transparent);border-bottom:1px solid color-mix(in srgb, var(--color-primary) 28%, transparent);content:"";opacity:.38;pointer-events:none;border-radius:0 0 2.4rem;width:4rem;height:5.2rem;position:absolute;bottom:5.3rem;right:1rem}.rsvp-form__switch,.rsvp-form__status,.rsvp-form__message,.rsvp-form__summary,.rsvp-form__footer,.rsvp-form__wide-error{grid-column:1/-1}.rsvp-form__switch{border:1px solid color-mix(in srgb, var(--color-border) 86%, var(--rsvp-gold));border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-surface-soft) 58%, var(--color-surface));min-height:clamp(2.6rem,5vh,3.05rem);box-shadow:inset 0 .35rem .9rem color-mix(in srgb, var(--color-primary-dark) 6%, transparent);grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.25rem;display:grid}.rsvp-form__switch button{border-radius:var(--radius-pill);min-width:0;color:color-mix(in srgb, var(--color-text-muted) 88%, var(--color-text));letter-spacing:.01em;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;font-size:clamp(.78rem,1.05vw,.96rem);font-weight:500;transition:color .26s,background .26s,border-color .26s,box-shadow .26s,transform .26s;display:inline-flex}.rsvp-form__switch button:not(:disabled):hover{color:var(--color-primary);transform:translateY(-1px)}.rsvp-form__switch button.is-active{color:var(--color-surface);border-color:color-mix(in srgb, var(--rsvp-gold) 46%, transparent);background:radial-gradient(circle at 18% 18%, color-mix(in srgb, var(--color-surface) 18%, transparent), transparent 34%), linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));box-shadow:0 .65rem 1.5rem color-mix(in srgb, var(--color-primary-dark) 22%, transparent)}.rsvp-form__switch button:disabled{cursor:not-allowed}.rsvp-field{min-width:0;color:var(--color-text);gap:.45rem;display:grid;position:relative}.rsvp-field>span:first-child{color:color-mix(in srgb, var(--color-text) 82%, var(--color-text-muted));font-size:clamp(.74rem,.9vw,.86rem);font-weight:500}.rsvp-field--wide{grid-column:1/-1}.rsvp-field--suggest{z-index:20}.rsvp-field__control{border:1px solid color-mix(in srgb, var(--color-border) 88%, var(--rsvp-gold));background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 96%, transparent), color-mix(in srgb, var(--color-paper-cream) 78%, transparent));min-height:clamp(2.75rem,5.2vh,3.35rem);color:color-mix(in srgb, var(--color-primary) 70%, var(--color-text-muted));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 62%, transparent);border-radius:.65rem;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;padding:0 .95rem;transition:border-color .26s,box-shadow .26s,background .26s;display:grid;position:relative}.rsvp-field__control:focus-within{border-color:color-mix(in srgb, var(--color-primary) 60%, var(--rsvp-gold));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 72%, transparent), 0 0 0 3px color-mix(in srgb, var(--color-primary) 11%, transparent)}.rsvp-field__control.has-error{border-color:color-mix(in srgb, var(--color-danger) 70%, var(--color-border))}.rsvp-field__control input,.rsvp-field__control select,.rsvp-field__control textarea{width:100%;min-width:0;color:var(--color-text);font:inherit;background:0 0;border:0;outline:0}.rsvp-field__control input,.rsvp-field__control select{min-height:2.35rem}.rsvp-field__control input::placeholder,.rsvp-field__control textarea::placeholder{color:color-mix(in srgb, var(--color-text-muted) 60%, transparent)}.rsvp-field__control select{appearance:none;cursor:pointer}.rsvp-field__control select:disabled{color:color-mix(in srgb, var(--color-text-muted) 58%, transparent);cursor:not-allowed}.rsvp-field__control textarea{resize:none;min-height:clamp(5rem,11vh,6.5rem);padding-block:.9rem;line-height:1.55}.rsvp-field__control--textarea{align-items:start;padding-top:.1rem}.rsvp-field__control--textarea svg{margin-top:1rem}.rsvp-form__status{border:0;gap:.55rem;min-width:0;padding:0;display:grid}.rsvp-form__status legend{color:color-mix(in srgb, var(--color-text) 82%, var(--color-text-muted));padding:0;font-size:clamp(.78rem,.95vw,.9rem);font-weight:600}.rsvp-form__status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.55rem,1.2vw,.9rem);display:grid}.rsvp-form__status-grid button{border:1px solid color-mix(in srgb, var(--color-border) 76%, transparent);min-width:0;min-height:clamp(2.65rem,5.2vh,3.2rem);color:var(--color-text-muted);background:color-mix(in srgb, var(--color-surface) 72%, transparent);border-radius:.65rem;justify-content:center;align-items:center;gap:.62rem;padding:0 .7rem;font-size:clamp(.78rem,1.05vw,.96rem);font-weight:500;transition:color .26s,background .26s,border-color .26s,box-shadow .26s,transform .26s;display:inline-flex}.rsvp-form__status-grid button svg{flex:none}.rsvp-form__status-grid button:hover{color:var(--color-primary);border-color:color-mix(in srgb, var(--color-primary) 38%, var(--color-border));transform:translateY(-1px)}.rsvp-form__status-grid button.is-active{color:var(--color-primary-dark);border-color:color-mix(in srgb, var(--color-primary) 42%, var(--rsvp-gold));background:linear-gradient(135deg, color-mix(in srgb, var(--color-surface-soft) 74%, var(--color-surface)), color-mix(in srgb, var(--color-surface) 88%, transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 70%, transparent)}.rsvp-form__status-grid button.is-active svg{fill:color-mix(in srgb, var(--color-primary) 22%, transparent)}.rsvp-form__summary{min-width:0;max-width:min(100%,38rem);color:color-mix(in srgb, var(--color-text-muted) 88%, var(--color-text));text-align:center;justify-content:center;align-items:center;gap:.7rem;margin-top:-.2rem;display:flex}.rsvp-form__summary:before,.rsvp-form__summary:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--rsvp-line) 70%, transparent));content:"";flex:0 clamp(2rem,7vw,5.5rem);height:1px}.rsvp-form__summary:after{background:linear-gradient(90deg, color-mix(in srgb, var(--rsvp-line) 70%, transparent), transparent)}.rsvp-form__summary span{color:var(--color-primary);letter-spacing:.12em;text-transform:uppercase;flex:none;font-size:.72rem;font-weight:700}.rsvp-form__summary strong{min-width:0;max-width:min(100%,29rem);color:var(--color-text);font-family:var(--font-handwriting);white-space:normal;word-break:break-word;flex:0 auto;font-size:clamp(1.25rem,2vw,1.75rem);font-weight:600;line-height:1.16;overflow:visible}.rsvp-suggestions{z-index:12;border:1px solid color-mix(in srgb, var(--color-border) 84%, var(--rsvp-gold));background:linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 96%, transparent), color-mix(in srgb, var(--color-paper-cream) 92%, transparent)), var(--color-surface);box-shadow:0 .85rem 2.2rem color-mix(in srgb, var(--color-primary-dark) 16%, transparent);border-radius:.68rem;gap:.3rem;padding:.38rem;display:grid;position:absolute;top:calc(100% + .34rem);left:0;right:0}.rsvp-suggestions button,.rsvp-suggestions .rsvp-suggestions__state{width:100%;min-width:0;color:var(--color-text-muted);text-align:left;background:0 0;border:0;border-radius:.48rem;padding:.48rem .58rem;font-size:.75rem;line-height:1.25}.rsvp-suggestions button{gap:.12rem;display:grid}.rsvp-suggestions button:hover{color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface-soft) 66%, transparent)}.rsvp-suggestions strong{color:var(--color-text);font-size:.82rem;font-weight:700}.rsvp-suggestions span{color:var(--color-text-muted)}.rsvp-form__footer{gap:.6rem;display:grid}.rsvp-form__submit{border-color:color-mix(in srgb, var(--rsvp-gold) 58%, transparent);border-radius:var(--radius-pill);width:100%;min-height:clamp(2.7rem,4.9vh,3.05rem);color:color-mix(in srgb, var(--color-paper-cream) 88%, #fff);background:radial-gradient(circle at 18% 12%, color-mix(in srgb, var(--color-surface) 17%, transparent), transparent 34%), linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));box-shadow:0 .9rem 1.9rem color-mix(in srgb, var(--color-primary-dark) 22%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 16%, transparent);font-family:var(--font-serif);letter-spacing:.11em;font-size:clamp(.88rem,1.15vw,1.04rem);font-weight:600}.rsvp-form .toast{background:color-mix(in srgb, var(--color-surface) 76%, transparent);text-align:center;border-radius:.65rem;margin:0}.rsvp-form__wide-error{margin-top:-.55rem}@media (height<=820px) and (width>=769px){.rsvp-panel{gap:clamp(1.2rem,4vw,4.5rem);min-height:min(34rem,100svh - 72px - 2.8rem);padding-block:1rem}.rsvp-panel__intro{gap:.62rem}.rsvp-panel__intro .section-title{font-size:clamp(2.7rem,6vh,4.3rem)}.rsvp-panel__intro p{font-size:.86rem;line-height:1.48}.rsvp-form{gap:.66rem .85rem;padding:.9rem}.rsvp-field__control{min-height:2.62rem}.rsvp-field__control textarea{min-height:4.45rem}.rsvp-form__switch,.rsvp-form__status-grid button,.rsvp-form__submit{min-height:2.36rem}}@media (width<=768px){.rsvp-panel{grid-template-columns:1fr;gap:clamp(.9rem,2.8vh,1.4rem);width:min(100%,42rem);min-height:auto;padding-inline:clamp(.9rem,4vw,1.4rem)}.rsvp-panel__intro{gap:.55rem;max-width:100%}.rsvp-panel__intro .section-title{font-size:clamp(2.15rem,9vw,3.35rem);line-height:.96}.rsvp-panel__intro p{width:min(100%,23rem);font-size:.82rem;line-height:1.5}.rsvp-form{width:min(100%,34rem)}}@media (width<=430px){.wedding-slides>.rsvp-section{align-content:stretch;padding-block:calc(72px + .5rem) .7rem;padding-inline:.72rem}.rsvp-section{overflow:hidden}.rsvp-section:before{border-radius:.95rem;inset:calc(72px + .42rem) .42rem .48rem}.rsvp-panel{grid-template-rows:auto minmax(0,1fr);gap:.52rem;width:100%;height:calc(100svh - 72px - 1.2rem);min-height:0;padding:.62rem;display:grid}.rsvp-panel__intro{gap:.34rem}.rsvp-panel__intro .section-kicker{letter-spacing:.12em;font-size:.68rem}.rsvp-panel__intro .section-title{font-size:clamp(1.68rem,4vw,2.12rem);line-height:.92}.rsvp-panel__intro p{width:min(100%,18rem);font-size:.66rem;line-height:1.36}.rsvp-panel__divider{gap:.36rem;width:min(7rem,43%)}.rsvp-panel__divider span{width:.85rem;height:.85rem;font-size:.78rem}.rsvp-panel__heart{display:none}.rsvp-form{border-radius:.82rem;grid-template-columns:1fr 1fr;align-content:start;align-self:stretch;gap:.44rem .5rem;width:100%;min-height:0;padding:.58rem}.rsvp-form:before{display:none}.rsvp-form__switch{height:2.08rem;min-height:0;padding:.18rem}.rsvp-form__switch button{gap:.26rem;height:100%;min-height:0;padding:0 .38rem;font-size:.68rem}.rsvp-form__switch button svg{width:.88rem;height:.88rem}.rsvp-field{gap:.22rem}.rsvp-field>span:first-child{font-size:.62rem}.rsvp-field__control{border-radius:.46rem;gap:.38rem;min-height:2.05rem;padding-inline:.54rem}.rsvp-field__control svg{width:.82rem;height:.82rem}.rsvp-field__control input,.rsvp-field__control select{min-height:1.8rem;font-size:.74rem}.rsvp-field__control textarea{min-height:clamp(5.2rem,21svh,8.8rem);padding-block:.52rem;font-size:.72rem;line-height:1.34}.rsvp-field__control--textarea svg{margin-top:.62rem}.rsvp-form__status{gap:.28rem}.rsvp-form__status legend{font-size:.64rem}.rsvp-form__status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.rsvp-form__status-grid button{border-radius:.48rem;flex-direction:column;gap:.12rem;min-height:2.32rem;padding:.18rem .16rem;font-size:.58rem;line-height:1.05}.rsvp-form__status-grid button svg{width:.84rem;height:.84rem}.rsvp-form__summary{gap:.38rem;max-width:100%;margin:-.12rem auto 0;display:block}.rsvp-form__summary:before,.rsvp-form__summary:after{display:none}.rsvp-form__summary span{letter-spacing:.1em;font-size:.53rem}.rsvp-form__summary strong{width:100%;max-width:100%;font-size:1.08rem;line-height:1.05;display:block}.rsvp-suggestions{border-radius:.5rem;padding:.26rem;top:calc(100% + .24rem)}.rsvp-suggestions button,.rsvp-suggestions .rsvp-suggestions__state{padding:.38rem .44rem;font-size:.62rem}.rsvp-suggestions strong{font-size:.68rem}.rsvp-form__submit{letter-spacing:.09em;height:2.2rem;min-height:0;padding-inline:1rem;font-size:.72rem}.rsvp-form__footer{gap:.32rem}.rsvp-form .toast{padding:.42rem .54rem;font-size:.64rem;line-height:1.28}.form-error{font-size:.58rem;line-height:1.2}}.story-section{isolation:isolate;width:100%;max-width:none;color:var(--color-text);text-align:left;contain:paint;margin-inline:auto;padding-inline:clamp(1rem,3vw,4rem);position:relative;overflow:hidden}.story-section:before,.story-section:after{z-index:-1;content:"";pointer-events:none;position:absolute}.story-section:before{background:radial-gradient(circle at 10% 18%, color-mix(in srgb, var(--color-surface) 82%, transparent), transparent 28%), radial-gradient(circle at 84% 32%, color-mix(in srgb, var(--color-secondary) 8%, transparent), transparent 32%), linear-gradient(90deg, color-mix(in srgb, var(--color-paper-cream) 96%, #fff), color-mix(in srgb, var(--color-background) 86%, #fff));inset:0}.story-section:after{background:radial-gradient(circle at 92% 62%, color-mix(in srgb, var(--color-secondary) 6%, transparent), transparent 18%), radial-gradient(circle at 11% 78%, color-mix(in srgb, var(--color-accent) 6%, transparent), transparent 18%);opacity:.68;inset:0}.wedding-slides>.story-section:before,.wedding-slides>.story-section.has-section-image:before{background:radial-gradient(circle at 10% 18%, color-mix(in srgb, var(--color-surface) 82%, transparent), transparent 28%), radial-gradient(circle at 84% 32%, color-mix(in srgb, var(--color-secondary) 8%, transparent), transparent 32%), linear-gradient(90deg, color-mix(in srgb, var(--color-paper-cream) 96%, #fff), color-mix(in srgb, var(--color-background) 86%, #fff));opacity:1;background-size:auto}.wedding-slides>.story-section{align-content:center;padding-block:calc(72px + clamp(.45rem,1.4vh,1.05rem)) clamp(.55rem,1.8vh,1.4rem);padding-inline:clamp(1.2rem,4.8vw,6rem);display:grid;overflow:hidden}.story-section__inner{z-index:2;grid-template-columns:minmax(17rem,.35fr) minmax(0,.65fr);align-items:center;gap:clamp(2rem,4vw,4.9rem);width:min(100%,99rem);height:100%;min-height:0;max-height:min(50rem,100svh - 72px - clamp(5.2rem,8.8vh,6.6rem));margin:0 auto;display:grid;position:relative}.story-section__intro{text-align:center;justify-items:center;max-width:31rem;margin:0;display:grid}.story-section__intro .section-kicker{color:var(--color-primary);font-family:var(--font-serif);letter-spacing:.2em;font-size:clamp(.78rem,.92vw,.96rem);font-weight:700}.story-section__intro .section-title{color:var(--color-text);font-family:var(--font-serif);letter-spacing:0;margin:clamp(1.1rem,2.8vh,2rem) 0 clamp(.85rem,2.3vh,1.55rem);font-size:clamp(2.9rem,4.1vw,4.85rem);font-weight:500;line-height:.98}.story-section__intro .section-title span{white-space:nowrap;display:block}.story-section__intro .section-copy{width:min(100%,22.5rem);color:color-mix(in srgb, var(--color-text-muted) 92%, var(--color-text));margin:0 auto;font-size:clamp(.82rem,1.02vw,1rem);line-height:1.72}.story-section__mark{margin-inline:auto;width:min(7.3rem,48%);color:color-mix(in srgb, var(--color-primary) 80%, var(--color-accent));justify-content:center;justify-self:center;align-items:center;gap:.55rem;margin-top:clamp(1.05rem,2.5vh,1.65rem);line-height:1;display:flex}.story-section__mark:before,.story-section__mark:after{content:"";flex:1 1 0;min-width:0;height:1px;display:block}.story-section__mark:before{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--color-primary) 54%, transparent))}.story-section__mark:after{background:linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 54%, transparent), transparent)}.story-section__heart{color:currentColor;width:1rem;height:1rem;font-family:var(--font-serif);flex:none;place-items:center;font-size:.95rem;line-height:1;display:grid;transform:translateY(-.02rem)}.story-section__flourish{border-bottom:1px solid color-mix(in srgb, var(--color-accent) 56%, transparent);border-radius:50%;width:min(12rem,46%);height:.8rem;margin-bottom:clamp(1rem,2.4vh,1.75rem);display:block}.story-timeline{--story-row-gap:clamp(.42rem, 1vh, .86rem);--story-center-gap:clamp(2.2rem, 3.6vw, 4.25rem);grid-template-rows:repeat(var(--story-count), minmax(0, 1fr));gap:var(--story-row-gap);height:100%;min-height:0;padding-block:clamp(.7rem,1.65vh,1.2rem);display:grid;position:relative;overflow:visible}.story-timeline:before{display:none}.story-timeline.is-dense{--story-row-gap:clamp(.42rem, 1vh, .82rem)}.story-timeline.is-very-dense{--story-row-gap:clamp(.24rem, .68vh, .55rem)}.story-timeline__vine{z-index:0;width:clamp(3.2rem,5.4vw,6.8rem);height:calc(100% - clamp(1.5rem,3.5vh,2.4rem));color:color-mix(in srgb, var(--color-accent) 66%, var(--color-primary));opacity:.52;pointer-events:none;position:absolute;top:clamp(.75rem,1.75vh,1.2rem);bottom:clamp(.75rem,1.75vh,1.2rem);left:50.25%;overflow:visible;transform:translate(-50%)}.story-timeline__vine path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:.82px;vector-effect:non-scaling-stroke}.story-timeline__item{z-index:1;grid-template-columns:minmax(0, 1fr) var(--story-center-gap) minmax(0, 1fr);min-height:0;animation:.52s cubic-bezier(.16,1,.3,1) both fade-up;animation-delay:calc(var(--story-index) * 70ms);align-items:center;display:grid;position:relative}.story-timeline__item:before{z-index:3;aspect-ratio:1;border:2px solid color-mix(in srgb, var(--color-surface) 92%, transparent);border-radius:var(--radius-pill);background:var(--color-primary);width:clamp(.46rem,.72vw,.68rem);box-shadow:0 0 0 .28rem color-mix(in srgb, var(--color-surface) 48%, transparent), 0 .4rem 1rem color-mix(in srgb, var(--color-primary) 18%, transparent);content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.story-timeline__item.is-copy-left .story-timeline__image{grid-column:3}.story-timeline__item.is-copy-left .story-timeline__copy,.story-timeline__item.is-copy-right .story-timeline__image{grid-column:1}.story-timeline__item.is-copy-right .story-timeline__copy{grid-column:3}.story-timeline__image,.story-timeline__copy{grid-row:1;align-self:center;min-width:0}.story-timeline__image{border:1px solid color-mix(in srgb, var(--color-accent) 38%, transparent);background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--color-surface) 54%, transparent), transparent 38%), linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 16%, transparent), color-mix(in srgb, var(--color-surface-soft) 78%, transparent));height:min(100%,clamp(5.9rem,14.2vh,10.25rem));min-height:0;box-shadow:0 .75rem 2rem color-mix(in srgb, var(--color-primary-dark) 8%, transparent);border-radius:clamp(.48rem,.8vw,.72rem);margin:0;position:relative;overflow:hidden}.story-timeline__image img{object-fit:cover;filter:saturate(.9)sepia(.06)contrast(.96)brightness(1.08);width:100%;height:100%;transition:transform .52s cubic-bezier(.16,1,.3,1),filter .26s;transform:scale(1.01)}.story-timeline__image.is-empty{place-items:center;display:grid}.story-timeline__image.is-empty span{aspect-ratio:1;background:color-mix(in srgb, var(--color-primary) 16%, transparent);border-radius:999px 0;width:44%;transform:rotate(34deg)}.story-timeline__item:hover .story-timeline__image img{filter:saturate(.96)sepia(.04)contrast(.98)brightness(1.1);transform:scale(1.045)}.story-timeline__copy{border:1px solid color-mix(in srgb, var(--color-accent) 58%, transparent);background:linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 84%, transparent), color-mix(in srgb, var(--color-paper-cream) 72%, transparent)), var(--color-surface);height:min(100%,clamp(5.9rem,13.7vh,9.25rem));min-height:0;box-shadow:inset 0 0 0 1px #ffffff61, 0 .7rem 1.8rem color-mix(in srgb, var(--color-primary-dark) 6%, transparent);isolation:isolate;border-radius:clamp(.52rem,.82vw,.74rem);outline:0;align-content:center;gap:clamp(.2rem,.48vh,.34rem);padding:clamp(.82rem,1.55vh,1.08rem) clamp(1rem,1.75vw,1.55rem);display:grid;position:relative;overflow:hidden}.story-timeline__copy:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:3px}.story-timeline__year{grid-template-columns:auto minmax(2rem,1fr);align-items:center;gap:clamp(.55rem,1vw,.9rem);min-width:0;display:grid}.story-timeline__year strong{color:var(--color-primary);font-family:var(--font-editorial);white-space:nowrap;font-size:clamp(1.55rem,2.05vw,2.25rem);font-weight:700;line-height:.95}.story-timeline__year span{background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent) 86%, transparent), transparent);height:1px}.story-timeline__copy h3,.story-timeline__copy p{-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.story-timeline__copy h3{color:var(--color-text);font-family:var(--font-serif);-webkit-line-clamp:1;font-size:clamp(1.02rem,1.35vw,1.42rem);font-weight:700;line-height:1.12}.story-timeline__copy p{color:color-mix(in srgb, var(--color-text-muted) 92%, var(--color-text));-webkit-line-clamp:2;font-size:clamp(.68rem,.84vw,.86rem);line-height:1.42}.story-timeline__tooltip{z-index:12;border-radius:inherit;width:100%;max-height:100%;color:var(--color-text);background:linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 96%, transparent), color-mix(in srgb, var(--color-paper-cream) 90%, transparent)), var(--color-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 58%, transparent), inset 0 0 4rem color-mix(in srgb, var(--color-surface-soft) 46%, transparent);opacity:0;pointer-events:none;align-content:center;gap:.26rem;padding:clamp(.72rem,1.35vh,1rem) clamp(.92rem,1.75vw,1.4rem);transition:opacity .26s,transform .26s;display:grid;position:absolute;inset:0;overflow:auto;transform:scale(.985)}.story-timeline__tooltip strong{color:var(--color-primary);font-family:var(--font-serif);font-size:1.2rem;line-height:1;display:block}.story-timeline__tooltip h4{font-family:var(--font-serif);margin:.18rem 0;font-size:1.02rem;line-height:1.18}.story-timeline__tooltip p{color:var(--color-text-muted);margin:0;font-size:.78rem;line-height:1.45;display:block;overflow:visible}.story-timeline__copy:hover .story-timeline__tooltip,.story-timeline__copy:focus .story-timeline__tooltip,.story-timeline__copy:focus-within .story-timeline__tooltip{opacity:1;transform:scale(1)}.story-timeline.is-dense .story-timeline__image,.story-timeline.is-dense .story-timeline__copy{height:min(100%,clamp(5.25rem,11.7vh,7.75rem))}.story-timeline.is-dense .story-timeline__copy{padding-block:clamp(.5rem,1vh,.76rem)}.story-timeline.is-dense .story-timeline__year strong{font-size:clamp(1.25rem,1.8vw,1.8rem)}.story-timeline.is-dense .story-timeline__copy h3{font-size:clamp(.88rem,1.12vw,1.12rem)}.story-timeline.is-dense .story-timeline__copy p{-webkit-line-clamp:1;font-size:clamp(.62rem,.76vw,.76rem)}.story-timeline.is-very-dense .story-timeline__image,.story-timeline.is-very-dense .story-timeline__copy{height:100%}.story-timeline.is-very-dense .story-timeline__copy{gap:.1rem;padding:.38rem .7rem}.story-timeline.is-very-dense .story-timeline__year{gap:.45rem}.story-timeline.is-very-dense .story-timeline__year strong{font-size:clamp(1rem,1.35vw,1.45rem)}.story-timeline.is-very-dense .story-timeline__copy h3{font-size:clamp(.76rem,.95vw,.94rem)}.story-timeline.is-very-dense .story-timeline__copy p{-webkit-line-clamp:1;font-size:clamp(.56rem,.68vw,.68rem);line-height:1.24}@media (height<=820px) and (width>=769px){.story-section__inner{gap:clamp(1.4rem,3.6vw,4rem)}.story-section__intro .section-title{margin-block:.8rem .65rem;font-size:clamp(2.55rem,6.2vh,4.1rem)}.story-section__mark{margin-top:.75rem}.story-section__flourish{margin-bottom:.85rem}.story-section__intro .section-copy{font-size:clamp(.72rem,1.8vh,.86rem);line-height:1.55}.story-timeline{--story-row-gap:clamp(.28rem, .88vh, .64rem)}.story-timeline__image,.story-timeline__copy{height:min(100%,clamp(5.35rem,13.7vh,7.72rem))}.story-timeline__copy{padding-block:clamp(.52rem,1.08vh,.78rem)}}@media (width<=768px){.wedding-slides>.story-section{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-block:calc(4.3rem + var(--spacing-md)) calc(var(--spacing-xl) + .9rem);scrollbar-color:color-mix(in srgb, var(--color-primary) 44%, transparent) transparent;scrollbar-width:thin;align-content:start;padding-inline:clamp(1rem,4vw,1.5rem);overflow-y:auto}.story-section{overflow:hidden}.story-section__inner{width:min(100%,42rem);height:auto;max-height:none;display:block}.story-section__intro{max-width:100%;margin:0 auto clamp(1.35rem,4vh,2rem)}.story-section__intro .section-title{margin-block:.85rem .65rem;font-size:clamp(2.35rem,10vw,3.55rem)}.story-section__intro .section-copy{width:min(100%,22rem);font-size:.88rem;line-height:1.62}.story-section__mark{width:min(6.4rem,44%);margin-top:.85rem}.story-section__heart{width:.92rem;height:.92rem;font-size:.9rem;transform:translateY(-.015rem)}.story-section__flourish{margin-bottom:.95rem}.story-timeline,.story-timeline.is-dense,.story-timeline.is-very-dense{touch-action:pan-y;grid-template-rows:none;gap:1rem;height:auto;padding:0 0 .2rem;display:grid;overflow:visible}.story-timeline:before,.story-timeline.is-dense:before,.story-timeline.is-very-dense:before{border-left:1px solid color-mix(in srgb, var(--color-accent) 64%, var(--color-primary));content:"";opacity:.62;border-radius:0;width:1px;display:block;position:absolute;top:.8rem;bottom:.8rem;left:.7rem;transform:none}.story-timeline__vine{display:none}.story-timeline__item{grid-template-columns:1.4rem minmax(0,1fr);align-items:start;gap:.7rem;display:grid}.story-timeline__item:before{width:.58rem;top:.7rem;left:.7rem;transform:translate(-50%)}.story-timeline__item.is-copy-left .story-timeline__image,.story-timeline__item.is-copy-left .story-timeline__copy,.story-timeline__item.is-copy-right .story-timeline__image,.story-timeline__item.is-copy-right .story-timeline__copy{grid-column:2}.story-timeline__image{grid-row:1;width:100%;height:clamp(9.6rem,31svh,14.5rem);margin-bottom:.55rem}.story-timeline__copy,.story-timeline.is-dense .story-timeline__copy,.story-timeline.is-very-dense .story-timeline__copy{grid-row:2;gap:.34rem;height:auto;min-height:auto;padding:.9rem 1rem}.story-timeline__year strong,.story-timeline.is-dense .story-timeline__year strong,.story-timeline.is-very-dense .story-timeline__year strong{font-size:clamp(1.45rem,7vw,2.05rem)}.story-timeline__copy h3,.story-timeline.is-dense .story-timeline__copy h3,.story-timeline.is-very-dense .story-timeline__copy h3{-webkit-line-clamp:2;font-size:clamp(1rem,4.7vw,1.35rem)}.story-timeline__copy p,.story-timeline.is-dense .story-timeline__copy p,.story-timeline.is-very-dense .story-timeline__copy p{-webkit-line-clamp:4;font-size:.82rem;line-height:1.45}.story-timeline__tooltip{display:none}}@media (width<=430px){.wedding-slides>.story-section{padding-block:calc(72px + .7rem) 1rem;padding-inline:.82rem}.story-section__intro{margin-bottom:.68rem}.story-section__intro .section-kicker{letter-spacing:.17em;font-size:.64rem}.story-section__intro .section-copy{width:min(100%,18.4rem);font-size:.72rem;line-height:1.48}.story-section__intro .section-title{margin-block:.38rem .32rem;font-size:clamp(1.72rem,8.2vw,2.26rem);line-height:.96}.story-section__mark{gap:.48rem;width:min(4.8rem,38%);margin-top:.38rem}.story-section__heart{width:.82rem;height:.82rem;font-size:.82rem;transform:translateY(-.01rem)}.story-section__flourish{width:min(8.5rem,42%);height:.48rem;margin-bottom:.44rem}.story-timeline{gap:.52rem}.story-timeline__image{border-radius:.52rem;height:clamp(7rem,21.5svh,9rem);margin-bottom:.42rem}.story-timeline__copy,.story-timeline.is-dense .story-timeline__copy,.story-timeline.is-very-dense .story-timeline__copy{border-radius:.52rem;gap:.22rem;padding:.68rem .78rem}.story-timeline__year{gap:.55rem}.story-timeline__year strong,.story-timeline.is-dense .story-timeline__year strong,.story-timeline.is-very-dense .story-timeline__year strong{font-size:clamp(1.18rem,6vw,1.62rem)}.story-timeline__copy h3,.story-timeline.is-dense .story-timeline__copy h3,.story-timeline.is-very-dense .story-timeline__copy h3{font-size:clamp(.86rem,4.1vw,1.08rem);line-height:1.12}.story-timeline__copy p,.story-timeline.is-dense .story-timeline__copy p,.story-timeline.is-very-dense .story-timeline__copy p{-webkit-line-clamp:3;font-size:.68rem;line-height:1.38}.story-timeline__item{grid-template-columns:1.16rem minmax(0,1fr);gap:.52rem}.story-timeline__item:before{width:.48rem;box-shadow:0 0 0 .24rem color-mix(in srgb, var(--color-surface) 48%, transparent), 0 .3rem .8rem color-mix(in srgb, var(--color-primary) 14%, transparent);border-width:1px;left:.58rem}.story-timeline:before,.story-timeline.is-dense:before,.story-timeline.is-very-dense:before{left:.58rem}}.wishes-section{width:min(100%,1280px);color:var(--color-text);--wish-gold:color-mix(in srgb, var(--color-accent) 88%, #b88939);--wish-gold-soft:color-mix(in srgb, var(--color-accent) 42%, transparent);--wish-ink:color-mix(in srgb, var(--color-text) 92%, var(--color-primary-dark));--wish-paper:color-mix(in srgb, var(--color-surface) 92%, var(--color-paper-cream));--wish-shadow:color-mix(in srgb, var(--color-primary-dark) 11%, transparent);grid-template-rows:auto minmax(0,1fr);gap:clamp(.9rem,2.2vh,1.45rem);margin-inline:auto;padding-inline:clamp(1rem,3vw,4rem);display:grid;position:relative;overflow:hidden}.wishes-section:before,.wishes-section:after{z-index:-1;content:"";pointer-events:none;position:absolute}.wishes-section:before{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--wish-gold) 26%, transparent);opacity:.42;border-radius:50%;width:clamp(17rem,26vw,29rem);inset:clamp(1.6rem,5vh,4rem) auto auto clamp(-10rem,-8vw,-5rem)}.wishes-section:after{aspect-ratio:1;background-image:radial-gradient(color-mix(in srgb, var(--wish-gold) 24%, transparent) 1px, transparent 1.5px);opacity:.34;background-size:.62rem .62rem;width:clamp(8rem,13vw,14rem);bottom:clamp(.8rem,4vh,3rem);right:clamp(2rem,6vw,7rem)}.wedding-slides .wishes-section :is(.wishes-gallery,.wishes-gallery__summary,.wish-card,.wish-form,.wish-form__icon,.wish-form__heading,.wish-form label,.wish-form .button){transition-duration:.54s,.54s,.76s}.wishes-section__intro{z-index:3;text-align:center;justify-items:center;gap:clamp(.32rem,.85vh,.58rem);display:grid;position:relative}.wishes-section__intro .section-kicker{width:min(24rem,60vw);color:color-mix(in srgb, var(--wish-gold) 86%, var(--color-primary));font-family:var(--font-serif);letter-spacing:.28em;text-transform:uppercase;grid-template-columns:minmax(3.6rem,1fr) auto minmax(3.6rem,1fr);align-items:center;gap:.7rem;font-size:clamp(.72rem,.92vw,.92rem);font-weight:700;line-height:1;display:grid}.wishes-section__intro .section-kicker:before,.wishes-section__intro .section-kicker:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--wish-gold) 80%, transparent));content:"";height:1px}.wishes-section__intro .section-kicker:after{background:linear-gradient(90deg, color-mix(in srgb, var(--wish-gold) 80%, transparent), transparent)}.wishes-section__intro .section-title{color:var(--wish-ink);font-family:var(--font-serif);letter-spacing:0;justify-items:center;gap:clamp(.38rem,.9vh,.55rem);margin:0;font-size:clamp(3.3rem,6.2vw,6.4rem);font-weight:600;line-height:.86;display:grid}.wishes-section__intro .section-title:after{background:linear-gradient(90deg, transparent, var(--wish-gold), transparent);content:"";width:min(10rem,34vw);height:1px}.wishes-section__intro p{width:min(100%,34rem);color:color-mix(in srgb, var(--color-text-muted) 86%, var(--color-text));margin:0;font-size:clamp(.86rem,1.08vw,1rem);line-height:1.55}.wishes-layout{z-index:3;grid-template-columns:minmax(38rem,1.45fr) minmax(21rem,.72fr);align-items:stretch;gap:clamp(1.7rem,4.4vw,4.2rem);width:min(100%,88rem);height:100%;min-height:0;margin-inline:auto;display:grid;position:relative}.wishes-gallery{grid-template-rows:auto minmax(0,1fr);gap:clamp(.85rem,1.6vh,1.2rem);min-height:0;display:grid}.wishes-gallery__summary{align-items:baseline;gap:.62rem;min-width:0;display:flex}.wishes-gallery__summary strong{color:var(--color-primary-dark);font-family:var(--font-serif);font-size:clamp(2.55rem,4.5vw,4.15rem);font-weight:500;line-height:.78}.wishes-gallery__summary span{color:color-mix(in srgb, var(--color-text-muted) 76%, var(--color-text));font-family:var(--font-serif);font-size:clamp(1rem,1.35vw,1.3rem);line-height:1}.wish-card-grid{grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.78rem,1.5vh,1rem) clamp(.82rem,1.4vw,1.05rem);min-height:0;padding-bottom:.1rem;display:grid;overflow:hidden}.wish-card{border:1px solid color-mix(in srgb, var(--wish-gold) 44%, var(--color-border));background:linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 95%, transparent), color-mix(in srgb, var(--color-paper-cream) 88%, transparent)), var(--wish-paper);min-width:0;min-height:0;box-shadow:0 .72rem 1.65rem var(--wish-shadow), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 70%, transparent);border-radius:clamp(.5rem,.9vw,.72rem);grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.34rem,.8vh,.52rem);padding:clamp(.82rem,1.35vw,1.15rem) clamp(.9rem,1.55vw,1.28rem);display:grid;position:relative;overflow:hidden}.wish-card:before{background:radial-gradient(circle at 18% 12%, color-mix(in srgb, var(--wish-gold) 10%, transparent), transparent 34%), linear-gradient(135deg, transparent 0 72%, color-mix(in srgb, var(--color-primary) 5%, transparent));content:"";pointer-events:none;position:absolute;inset:0}.wish-card p,.wish-card footer,.wish-card .wish-card__quote{z-index:1;position:relative}.wish-card p{color:color-mix(in srgb, var(--color-text) 88%, var(--color-text-muted));-webkit-line-clamp:3;-webkit-box-orient:vertical;align-self:center;margin:0;font-size:clamp(.76rem,.92vw,.9rem);line-height:1.5;display:-webkit-box;overflow:hidden}.wish-card footer{justify-content:space-between;align-items:end;gap:.7rem;display:flex}.wish-card strong{min-width:0;color:color-mix(in srgb, var(--color-text) 88%, var(--color-primary-dark));font-family:var(--font-serif);align-items:center;font-size:clamp(.72rem,.86vw,.84rem);font-weight:500;line-height:1.15;display:inline-flex}.wish-card strong:before{background:var(--wish-gold);content:"";width:1.2rem;height:1px;margin-right:.54rem}.wish-card--4{grid-column:span 1}.wish-card__quote{color:color-mix(in srgb, var(--wish-gold) 80%, transparent);font-family:var(--font-serif);font-size:clamp(2rem,3vw,3.1rem);font-weight:700;line-height:.52}.wish-card__like{aspect-ratio:1;width:clamp(1.5rem,2vw,1.85rem);color:color-mix(in srgb, var(--color-text) 86%, var(--color-primary));background:0 0;border:0;flex:none;place-items:center;transition:color .26s,transform .26s;display:grid}.wish-card__like svg{stroke-width:1.5px;width:100%;height:100%}.wish-card__like:hover,.wish-card__like.is-liked{color:var(--color-primary);transform:translateY(-1px)scale(1.04)}.wish-card__like.is-liked svg{fill:color-mix(in srgb, var(--color-primary) 18%, transparent)}.wish-form{border:1px solid color-mix(in srgb, var(--wish-gold) 62%, var(--color-border));background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--wish-gold) 10%, transparent), transparent 34%), linear-gradient(150deg, color-mix(in srgb, var(--color-surface) 95%, transparent), color-mix(in srgb, var(--color-paper-cream) 92%, transparent)), var(--wish-paper);min-width:0;min-height:0;box-shadow:0 1.15rem 3.2rem var(--wish-shadow), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 72%, transparent);border-radius:clamp(1.05rem,1.8vw,1.45rem);align-content:center;align-self:stretch;gap:clamp(.72rem,1.55vh,1rem);padding:clamp(1.25rem,2.2vw,1.8rem);display:grid;position:relative;overflow:hidden}.wish-form:before,.wish-form:after{pointer-events:none;content:"";position:absolute}.wish-form:before{border:1px solid color-mix(in srgb, var(--wish-gold) 40%, transparent);border-radius:calc(clamp(1.05rem,1.8vw,1.45rem) - .18rem);inset:.42rem}.wish-form:after{border:1px solid color-mix(in srgb, var(--wish-gold) 18%, transparent);border-radius:calc(clamp(1.05rem,1.8vw,1.45rem) - .42rem);inset:.86rem}.wish-form label,.wish-form .button,.wish-form .toast,.wish-form .wish-form__heading,.wish-form .wish-form__icon,.wish-form .wish-form__secure{z-index:1;position:relative}.wish-form label{gap:.3rem;display:grid}.wish-form label>span:first-child{color:color-mix(in srgb, var(--color-text) 88%, var(--color-primary-dark));font-size:clamp(.72rem,.84vw,.82rem);font-weight:600}.wish-form input,.wish-form textarea{border:1px solid color-mix(in srgb, var(--color-border) 74%, var(--wish-gold));width:100%;min-height:clamp(2.28rem,4.4vh,2.7rem);color:var(--color-text);background:color-mix(in srgb, var(--color-surface) 66%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 68%, transparent);border-radius:.58rem;outline:0;padding:0 clamp(.78rem,1.05vw,.95rem);font-size:clamp(.78rem,.9vw,.88rem);transition:border-color .26s,box-shadow .26s}.wish-form input::placeholder,.wish-form textarea::placeholder{color:color-mix(in srgb, var(--color-text-muted) 58%, transparent)}.wish-form input:focus,.wish-form textarea:focus{border-color:color-mix(in srgb, var(--color-primary) 48%, var(--wish-gold));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 76%, transparent), 0 0 0 3px color-mix(in srgb, var(--color-primary) 10%, transparent)}.wish-form textarea{padding-block:.68rem;resize:none;min-height:clamp(5.2rem,10.4vh,6.6rem);padding-right:3.1rem;line-height:1.5}.wish-form .button{border:1px solid color-mix(in srgb, var(--wish-gold) 62%, transparent);border-radius:var(--radius-pill);min-height:clamp(2.5rem,4.8vh,2.9rem);color:color-mix(in srgb, var(--color-paper-cream) 90%, #fff);background:radial-gradient(circle at 18% 12%, color-mix(in srgb, var(--color-surface) 15%, transparent), transparent 34%), linear-gradient(135deg, var(--color-primary-dark), color-mix(in srgb, var(--color-primary) 88%, #1f321f));box-shadow:0 .8rem 1.6rem color-mix(in srgb, var(--color-primary-dark) 23%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--color-surface) 16%, transparent);font-family:var(--font-serif);letter-spacing:0;text-transform:none;font-size:clamp(.95rem,1.18vw,1.12rem);font-weight:700}.wish-form .toast{text-align:center;margin:0}.wish-form__icon{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--wish-gold) 58%, transparent);width:clamp(2.7rem,4.1vw,3.25rem);color:var(--color-primary);background:color-mix(in srgb, var(--color-surface) 72%, transparent);border-radius:50%;place-self:center;place-items:center;display:grid}.wish-form__icon svg{stroke-width:1.45px}.wish-form__heading{text-align:center;justify-items:center;gap:clamp(.42rem,.9vh,.62rem);display:grid}.wish-form__heading h3{color:var(--wish-ink);font-family:var(--font-serif);justify-items:center;gap:.46rem;margin:0;font-size:clamp(1.8rem,2.75vw,2.65rem);font-weight:600;line-height:.96;display:grid}.wish-form__heading h3:after{background:linear-gradient(90deg, transparent, var(--wish-gold), transparent);content:"";width:4.8rem;height:1px}.wish-form__heading p{width:min(100%,22rem);color:color-mix(in srgb, var(--color-text-muted) 86%, var(--color-text));margin:0;font-size:clamp(.72rem,.84vw,.84rem);line-height:1.55}.wish-form__textarea{display:block;position:relative}.wish-form__textarea small{color:color-mix(in srgb, var(--color-text-muted) 72%, transparent);font-size:.66rem;position:absolute;bottom:.62rem;right:.78rem}.wish-form__secure{color:color-mix(in srgb, var(--color-text-muted) 78%, transparent);justify-content:center;align-items:center;gap:.34rem;font-size:clamp(.64rem,.76vw,.74rem);line-height:1.2;display:inline-flex}@media (height<=820px) and (width>=769px){.wishes-section{gap:.75rem}.wishes-section__intro .section-title{font-size:clamp(2.75rem,7.6vh,4.8rem)}.wishes-section__intro p{font-size:.82rem;line-height:1.42}.wishes-layout{gap:clamp(1.2rem,3.2vw,3.4rem)}.wish-card{padding:.78rem .95rem}.wish-card p{font-size:.76rem;line-height:1.38}.wish-form{gap:.58rem;padding:1rem 1.25rem}.wish-form textarea{min-height:4.8rem}}@media (width<=768px){.wishes-layout{grid-template-columns:1fr;gap:.8rem;width:min(100%,42rem)}.wishes-gallery,.wish-form{min-height:0}}@media (width<=430px){.wedding-slides>.wishes-section{align-content:stretch;padding-block:calc(72px + .36rem) .66rem;padding-inline:.72rem;overflow:hidden}.wishes-section{grid-template-rows:auto minmax(0,1fr);gap:.42rem}.wishes-section__intro{gap:.16rem}.wishes-section__intro .section-kicker{letter-spacing:.2em;grid-template-columns:minmax(2.2rem,1fr) auto minmax(2.2rem,1fr);gap:.48rem;width:min(18rem,82vw);font-size:.52rem}.wishes-section__intro .section-title{gap:.24rem;font-size:clamp(2.05rem,10.4vw,2.86rem);line-height:.86}.wishes-section__intro .section-title:after{width:6.6rem}.wishes-section__intro p{width:min(100%,20rem);font-size:.6rem;line-height:1.3}.wishes-layout{grid-template-rows:minmax(0,.86fr) minmax(0,1.14fr);gap:.5rem;width:100%;height:100%;min-height:0;display:grid}.wishes-gallery{gap:.34rem;height:100%;min-height:0;overflow:hidden}.wishes-gallery__summary{justify-content:center;gap:.36rem}.wishes-gallery__summary strong{font-size:1.7rem}.wishes-gallery__summary span{font-size:.76rem}.wish-card-grid{scroll-snap-type:x mandatory;scrollbar-width:none;grid-template-rows:1fr;grid-template-columns:repeat(6,minmax(9.4rem,1fr));grid-auto-columns:minmax(9.4rem,1fr);grid-auto-flow:column;gap:.48rem;padding-bottom:.12rem;overflow:auto hidden}.wish-card-grid::-webkit-scrollbar{display:none}.wish-card{scroll-snap-align:center;border-radius:.58rem;gap:.28rem;padding:.58rem .62rem}.wish-card p{-webkit-line-clamp:4;font-size:.62rem;line-height:1.32}.wish-card strong{font-size:.58rem}.wish-card strong:before{width:.9rem;margin-right:.36rem}.wish-card__quote{font-size:1.55rem}.wish-card__like{width:1.32rem}.wish-form{border-radius:.9rem;align-content:center;gap:.24rem;height:100%;min-height:0;padding:.6rem}.wish-form:before{inset:.36rem}.wish-form:after{inset:.7rem}.wish-form label{gap:.16rem}.wish-form label>span:first-child{font-size:.58rem}.wish-form input,.wish-form textarea{border-radius:.44rem;min-height:1.76rem;padding-inline:.62rem;font-size:.68rem}.wish-form textarea{padding-block:.44rem;min-height:clamp(2.62rem,9.2svh,3.55rem);padding-right:2.45rem;line-height:1.32}.wish-form .button{min-height:1.98rem;font-size:.72rem}.wish-form__icon{width:1.92rem}.wish-form__icon svg{width:.98rem;height:.98rem}.wish-form__heading{gap:.14rem}.wish-form__heading h3{gap:.22rem;font-size:1.12rem}.wish-form__heading h3:after{width:3.8rem}.wish-form__heading p{font-size:.54rem;line-height:1.24}.wish-form__textarea small{font-size:.52rem;bottom:.42rem;right:.52rem}.wish-form__secure{display:none}}.login-page{min-height:100svh;padding:var(--spacing-lg);place-items:center;display:grid}.login-card{gap:var(--spacing-md);width:min(100%,24rem);padding:var(--spacing-xl);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md);display:grid}.login-card h1{font-family:var(--font-serif);font-size:var(--font-2xl);text-align:center;margin:0}.login-card label{gap:var(--spacing-2xs);display:grid}.login-card span{color:var(--color-text-muted);font-size:var(--font-xs)}.login-card input{min-height:2.75rem;padding:0 var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.login-card__mark{aspect-ratio:1;border-radius:var(--radius-pill);width:3rem;color:var(--color-surface);background:var(--color-primary);place-items:center;margin:0 auto;display:grid}.media-picker{z-index:95;padding:var(--spacing-lg);place-items:center;display:grid;position:fixed;inset:0}.media-picker__backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#152216ad;border:0;position:absolute;inset:0}.media-picker__panel{z-index:1;gap:var(--spacing-md);border:1px solid color-mix(in srgb, var(--color-border) 80%, transparent);border-radius:var(--radius-md);background:linear-gradient(160deg, color-mix(in srgb, var(--color-surface) 96%, transparent), color-mix(in srgb, var(--color-surface-soft) 74%, transparent)), var(--color-surface);width:min(100%,64rem);max-height:min(86svh,46rem);box-shadow:var(--shadow-lg);grid-template-rows:auto auto minmax(0,1fr) auto;padding:clamp(1rem,2vw,1.4rem);display:grid;position:relative}.media-picker__header{justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.media-picker__header span{color:var(--color-primary);font-family:var(--font-serif);font-size:var(--font-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.media-picker__header h2{font-family:var(--font-serif);margin:.15rem 0 0;font-size:clamp(1.45rem,3vw,2.15rem)}.media-picker__close{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-pill);width:2.5rem;color:var(--color-primary);background:var(--color-surface);place-items:center;display:grid}.media-picker__search{align-items:center;gap:var(--spacing-sm);min-height:2.75rem;padding-inline:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);background:color-mix(in srgb, var(--color-surface) 88%, transparent);display:flex}.media-picker__search input{width:100%;color:var(--color-text);background:0 0;border:0;outline:0}.media-picker__grid{gap:var(--spacing-sm);min-height:16rem;padding-right:var(--spacing-xs);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-primary) 34%, transparent) transparent;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));display:grid;overflow-y:auto}.media-picker__item{gap:var(--spacing-xs);padding:var(--spacing-xs);border:1px solid color-mix(in srgb, var(--color-border) 84%, transparent);border-radius:var(--radius-sm);color:var(--color-text);background:color-mix(in srgb, var(--color-surface) 88%, transparent);text-align:left;transition:border-color .26s,box-shadow .26s,transform .26s;display:grid;position:relative}.media-picker__item:hover,.media-picker__item.is-active{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.media-picker__item img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-xs);background:var(--color-surface-soft);width:100%}.media-picker__item>span{color:var(--color-text-muted);font-size:var(--font-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.media-picker__item strong{top:var(--spacing-sm);right:var(--spacing-sm);aspect-ratio:1;border-radius:var(--radius-pill);width:1.8rem;color:var(--color-primary);background:color-mix(in srgb, var(--color-surface) 88%, transparent);box-shadow:var(--shadow-sm);place-items:center;display:grid;position:absolute}.media-picker__item.is-active strong{color:var(--color-surface);background:var(--color-primary)}.media-picker__empty{place-items:center;gap:var(--spacing-sm);min-height:14rem;color:var(--color-text-muted);text-align:center;grid-column:1/-1;display:grid}.media-picker__footer{justify-content:flex-end;display:flex}@media (width<=430px){.media-picker{padding:var(--spacing-sm)}.media-picker__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-shell{background:linear-gradient(135deg, color-mix(in srgb, var(--color-surface-soft) 62%, transparent), transparent 38%), var(--color-admin-background);grid-template-columns:minmax(15.5rem,17rem) minmax(0,1fr);min-height:100svh;display:grid}.admin-shell button{font-family:inherit}.admin-sidebar{min-height:100svh;padding:var(--spacing-lg);border-right:1px solid color-mix(in srgb, var(--color-border) 82%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 98%, transparent), color-mix(in srgb, var(--color-surface-soft) 62%, transparent)), var(--color-surface);align-self:start;position:sticky;top:0;box-shadow:.75rem 0 2rem #2d48300a}.admin-sidebar nav{margin-top:var(--spacing-lg);gap:.4rem;display:grid}.admin-sidebar a{align-items:center;gap:var(--spacing-sm);min-height:2.65rem;padding:0 var(--spacing-md);border-radius:var(--radius-sm);color:var(--color-text-muted);font-weight:700;transition:color .26s,background .26s,transform .26s;display:flex}.admin-sidebar a:hover{color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface-soft) 54%, transparent);transform:translate(2px)}.admin-sidebar a.active{color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));box-shadow:inset 3px 0 0 var(--color-primary)}.admin-sidebar__brand{align-items:center;gap:var(--spacing-sm);color:var(--color-primary);font-family:var(--font-serif);font-size:var(--font-xl);font-weight:700;display:flex}.admin-main{width:min(100%,86rem);min-width:0;margin-inline:auto;padding:clamp(1rem,2.5vw,2rem)}.admin-main>*+*{margin-top:var(--spacing-lg)}.admin-topbar{z-index:15;justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);background:linear-gradient(180deg, var(--color-admin-background) 72%, transparent);padding-block:0 .75rem;display:flex;position:sticky;top:0}.admin-topbar h1{font-family:var(--font-serif);font-size:clamp(1.8rem, 3vw, var(--font-2xl));margin:0;line-height:1}.admin-topbar button{justify-content:center;align-items:center;gap:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface) 90%, transparent);min-height:2.45rem;padding:0 var(--spacing-md);box-shadow:var(--shadow-sm);font-weight:700;display:inline-flex}.admin-card{border:1px solid color-mix(in srgb, var(--color-border) 86%, transparent);border-radius:var(--radius-md);background:linear-gradient(160deg, color-mix(in srgb, var(--color-surface) 97%, transparent), color-mix(in srgb, var(--color-surface-soft) 52%, transparent)), var(--color-surface);box-shadow:var(--shadow-sm);padding:clamp(.9rem,2vw,1.25rem);overflow-x:auto}.admin-card>h2{margin:0 0 var(--spacing-md);font-family:var(--font-serif);font-size:var(--font-xl)}.admin-grid .admin-card{gap:var(--spacing-xs);min-height:7rem;display:grid}.admin-grid .admin-card span{color:var(--color-text-muted);font-size:var(--font-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:800}.admin-grid .admin-card h2{color:var(--color-primary-dark);font-family:var(--font-serif);margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1}.admin-card__header,.admin-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.admin-card__header h2,.admin-card__header h3,.admin-toolbar h2,.admin-toolbar h3{font-family:var(--font-serif);margin:0}.admin-card__header p,.admin-toolbar p{color:var(--color-text-muted);font-size:var(--font-sm);margin:.25rem 0 0;line-height:1.45}.admin-card__header button:not(.button),.admin-toolbar button:not(.button){align-items:center;gap:var(--spacing-xs);min-height:2.25rem;padding:0 var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface) 88%, transparent);font-weight:700;transition:border-color .26s,background .26s,transform .26s;display:inline-flex}.admin-card__header button:not(.button):hover,.admin-toolbar button:not(.button):hover{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));transform:translateY(-1px)}.admin-grid{gap:var(--spacing-md);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.admin-table{border-collapse:collapse;width:100%;min-width:44rem;font-size:var(--font-sm)}.admin-table th,.admin-table td{padding:.78rem var(--spacing-sm);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.admin-table th{color:var(--color-text-muted);font-size:var(--font-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.admin-table p{color:var(--color-text-muted);margin:.2rem 0 0}.admin-table tr{transition:background .26s}.admin-table tbody tr:hover{background:color-mix(in srgb, var(--color-surface-soft) 42%, transparent)}.admin-form{gap:clamp(.8rem,1.6vw,1rem);display:grid}.admin-form label{gap:.35rem;display:grid}.admin-form span{color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.admin-form input,.admin-form select,.admin-form textarea{width:100%;min-height:2.55rem;padding:0 var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 92%, transparent);color:var(--color-text);transition:border-color .26s,box-shadow .26s}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 14%, transparent);outline:0}.admin-form textarea{min-height:6rem;padding-block:var(--spacing-sm)}.admin-actions{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;display:flex}.admin-actions button:not(.button){justify-content:center;align-items:center;gap:var(--spacing-xs);min-height:2.35rem;padding:0 var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface) 88%, transparent);font-size:var(--font-sm);font-weight:700;transition:border-color .26s,background .26s,box-shadow .26s,transform .26s;display:inline-flex}.admin-actions button:not(.button):hover,.admin-actions button:not(.button).is-active{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 11%, var(--color-surface));box-shadow:var(--shadow-sm);transform:translateY(-1px)}.admin-actions button:not(.button).is-danger{color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 38%, var(--color-border))}.admin-actions button:not(.button).is-danger:hover{background:color-mix(in srgb, var(--color-danger) 9%, var(--color-surface))}.admin-form-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-field-wide{grid-column:1/-1}.admin-preview-tile{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 88%, transparent);grid-template-columns:5rem minmax(0,1fr) auto;display:grid}.admin-preview-tile img,.admin-preview-tile>span{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-xs);background:var(--color-surface-soft);width:5rem}.admin-preview-tile>span{color:var(--color-text-muted);font-size:var(--font-xs);text-align:center;place-items:center;display:grid}.admin-preview-tile strong,.admin-preview-tile small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.admin-preview-tile small{color:var(--color-text-muted)}.admin-preview-tile button:not(.button){justify-content:center;align-items:center;gap:var(--spacing-xs);min-height:2.35rem;padding:0 var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-primary-dark);background:var(--color-surface);white-space:nowrap;font-weight:700;transition:border-color .26s,background .26s,transform .26s;display:inline-flex}.admin-preview-tile button:not(.button):hover{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));transform:translateY(-1px)}.admin-thumb{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-xs);background:var(--color-surface-soft);border:1px solid color-mix(in srgb, var(--color-border) 72%, transparent);width:4.6rem;display:inline-block}.admin-empty{padding:var(--spacing-lg);color:var(--color-text-muted);text-align:center}.admin-fieldset{gap:var(--spacing-md);min-width:0;padding:var(--spacing-md);border:1px solid color-mix(in srgb, var(--color-border) 86%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface-soft) 36%, var(--color-surface));display:grid}.admin-fieldset h3{font-family:var(--font-serif);margin:0}@media (width<=1024px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{z-index:20;border-right:0;border-bottom:1px solid var(--color-border);min-height:auto;padding:var(--spacing-md);position:sticky;top:0;overflow-x:auto}.admin-sidebar nav{margin-top:var(--spacing-md);grid-auto-columns:max-content;grid-auto-flow:column;overflow-x:auto}.admin-sidebar a{white-space:nowrap;min-height:2.35rem}.admin-sidebar a.active{box-shadow:inset 0 -2px 0 var(--color-primary)}.admin-main{padding:var(--spacing-md)}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid{grid-template-columns:1fr}}@media (width<=430px){.admin-sidebar nav{grid-auto-flow:initial;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.admin-sidebar a{min-width:0;padding-inline:var(--spacing-sm);white-space:normal;justify-content:flex-start;font-size:.86rem}.admin-sidebar__brand span{font-size:var(--font-lg)}.admin-topbar{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.admin-topbar button{width:100%}.admin-grid{grid-template-columns:1fr}.admin-card__header,.admin-toolbar{flex-direction:column;align-items:stretch}.admin-table{min-width:38rem}.admin-preview-tile{grid-template-columns:4.6rem minmax(0,1fr)}.admin-preview-tile img,.admin-preview-tile>span{width:4.6rem}.admin-preview-tile>button,.admin-preview-tile .admin-actions{grid-column:1/-1;width:100%}.admin-preview-tile .admin-actions button{flex:auto}}.album-editor__section{padding:var(--spacing-md);border:1px solid color-mix(in srgb, var(--color-border) 80%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 74%, transparent);gap:clamp(.75rem,1.5vw,1rem);display:grid}.album-image-list{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));display:grid}.album-image-list__item{gap:var(--spacing-sm);padding:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 92%, transparent);grid-template-columns:5.5rem minmax(0,1fr) auto;align-items:center;transition:border-color .26s,box-shadow .26s;display:grid}.album-image-list__item:hover{border-color:color-mix(in srgb, var(--color-primary) 52%, var(--color-border));box-shadow:var(--shadow-sm)}.album-image-list__item img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-xs);width:5.5rem}.album-image-list__item strong{margin-bottom:var(--spacing-2xs);color:var(--color-primary-dark);font-size:var(--font-sm);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.album-image-list__item input{min-height:2.1rem}.album-image-list__actions{gap:var(--spacing-2xs);display:grid}.album-image-list__actions button{min-height:1.9rem;padding-inline:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface) 90%, transparent);font-size:.68rem;font-weight:700;transition:border-color .26s,background .26s}.album-image-list__actions button:hover{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-surface))}.album-image-list__actions .is-danger{color:var(--color-danger)}.layout-preset-grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));display:grid}.layout-preset-grid button{align-content:start;gap:var(--spacing-xs);min-height:8.5rem;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:linear-gradient(150deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-surface-soft) 68%, transparent)), var(--color-surface);text-align:left;transition:border-color .26s,box-shadow .26s,transform .26s;display:grid}.layout-preset-grid button:hover,.layout-preset-grid button.is-active{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.layout-preset-grid button svg{color:var(--color-primary)}.layout-preset-grid button strong{font-family:var(--font-serif);font-size:var(--font-lg)}.layout-preset-grid button span{color:var(--color-text-muted);font-size:var(--font-xs);line-height:1.45}.custom-layout-builder{gap:var(--spacing-md);display:grid}.layout-row-editor{gap:var(--spacing-sm);padding:var(--spacing-md);border:1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));border-radius:var(--radius-sm);background:linear-gradient(150deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-surface-soft) 54%, transparent)), var(--color-surface);display:grid}.layout-row-editor__fields{gap:var(--spacing-sm);grid-template-columns:minmax(13rem,1fr) 8rem 8rem auto;align-items:end;display:grid}.layout-row-editor__fields button{justify-content:center;align-items:center;gap:var(--spacing-xs);min-height:2.6rem;padding-inline:var(--spacing-md);border:1px solid color-mix(in srgb, var(--color-danger) 38%, var(--color-border));border-radius:var(--radius-pill);color:var(--color-danger);background:var(--color-surface);font-weight:700;transition:border-color .26s,background .26s;display:inline-flex}.layout-row-editor__fields button:hover{background:color-mix(in srgb, var(--color-danger) 9%, var(--color-surface))}.layout-row-editor__images{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.layout-row-editor__images button{border-radius:var(--radius-xs);background:var(--color-surface-soft);border:2px solid #0000;width:5.2rem;padding:0;transition:border-color .26s,transform .26s;position:relative;overflow:hidden}.layout-row-editor__images button.is-active{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.layout-row-editor__images button:hover{transform:translateY(-1px)}.layout-row-editor__images button img{aspect-ratio:4/3;object-fit:cover;width:100%}.layout-row-editor__images button span{aspect-ratio:1;border-radius:var(--radius-pill);width:1.35rem;color:var(--color-surface);background:var(--color-primary);place-items:center;font-size:.68rem;font-weight:800;display:grid;position:absolute;bottom:.25rem;right:.25rem}.layout-row-editor__images p{color:var(--color-text-muted);font-size:var(--font-sm);margin:0}@media (width<=1024px){.layout-row-editor__fields{grid-template-columns:1fr 1fr}}@media (width<=430px){.album-image-list{grid-template-columns:1fr}.album-image-list__item{grid-template-columns:4.6rem minmax(0,1fr)}.album-image-list__actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.layout-preset-grid,.layout-row-editor__fields{grid-template-columns:1fr}}.guest-admin-hero{align-items:center;gap:var(--spacing-lg);grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.guest-admin-hero>div:first-child{gap:var(--spacing-xs);display:grid}.guest-admin-hero span{color:var(--color-primary);font-size:var(--font-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:800}.guest-admin-hero h2{color:var(--color-primary-dark);font-family:var(--font-serif);margin:0;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1}.guest-admin-hero p{max-width:48rem;color:var(--color-text-muted);margin:0}.guest-admin-stats{gap:var(--spacing-sm);grid-template-columns:repeat(4,minmax(4.8rem,1fr));display:grid}.guest-admin-stats strong{min-width:4.8rem;padding:var(--spacing-sm);border:1px solid color-mix(in srgb, var(--color-border) 76%, transparent);border-radius:var(--radius-sm);color:var(--color-primary-dark);background:linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 92%, transparent), color-mix(in srgb, var(--color-surface-soft) 62%, transparent));font-family:var(--font-serif);font-size:var(--font-xl);text-align:center;gap:.2rem;line-height:1;display:grid}.guest-admin-stats small{color:var(--color-text-muted);font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;font-size:.64rem;font-weight:800}.guest-filter-bar input,.guest-filter-bar select{max-width:18rem}.guest-workspace{gap:var(--spacing-lg);grid-template-columns:minmax(0,1fr) minmax(20rem,24rem);align-items:start;display:grid}.guest-table-card{min-width:0}.guest-table{min-width:55rem}.guest-table strong{color:var(--color-text);display:block}.guest-side-pill,.guest-status{min-height:1.8rem;padding:0 var(--spacing-sm);border-radius:var(--radius-pill);font-size:var(--font-xs);white-space:nowrap;align-items:center;font-weight:800;display:inline-flex}.guest-side-pill--groom{color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-primary) 13%, var(--color-surface))}.guest-side-pill--bride{color:#7a5a19;background:color-mix(in srgb, var(--color-accent) 22%, var(--color-surface))}.guest-status{color:var(--color-text-muted);background:color-mix(in srgb, var(--color-surface-soft) 72%, var(--color-surface))}.guest-status--confirmed{color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface))}.guest-status--declined{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 9%, var(--color-surface))}.guest-status--unsure{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, var(--color-surface))}.guest-row-actions{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.guest-row-actions button{min-height:2rem;padding:0 var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-surface) 92%, transparent);font-size:var(--font-xs);align-items:center;gap:.35rem;font-weight:800;transition:transform .26s,border-color .26s,background .26s;display:inline-flex}.guest-row-actions button:hover{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));transform:translateY(-1px)}.guest-side-panel{gap:var(--spacing-lg);display:grid}.invite-kit{z-index:100;padding:var(--spacing-lg);place-items:center;display:grid;position:fixed;inset:0}.invite-kit__backdrop{background:color-mix(in srgb, var(--color-primary-dark) 38%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:.22s both fade-in;position:absolute;inset:0}.invite-kit__panel{z-index:1;gap:var(--spacing-lg);border:1px solid color-mix(in srgb, var(--color-border) 84%, transparent);border-radius:var(--radius-lg);background:radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--color-accent) 16%, transparent), transparent 30%), linear-gradient(145deg, color-mix(in srgb, var(--color-surface) 98%, transparent), color-mix(in srgb, var(--color-surface-soft) 58%, transparent));width:min(100%,54rem);box-shadow:var(--shadow-lg);grid-template-columns:minmax(0,1fr) minmax(14rem,18rem);padding:clamp(1rem,3vw,1.6rem);animation:.36s cubic-bezier(.16,1,.3,1) both invite-kit-in;display:grid;position:relative}.invite-kit__close{top:var(--spacing-sm);right:var(--spacing-sm);aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-pill);width:2.25rem;color:var(--color-primary-dark);background:var(--color-surface);place-items:center;display:grid;position:absolute}.invite-kit__preview{align-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg);border:1px solid color-mix(in srgb, var(--color-border) 72%, transparent);border-radius:var(--radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 94%, transparent), color-mix(in srgb, var(--color-paper-cream) 62%, transparent));display:grid}.invite-kit__preview span{color:var(--color-primary);font-size:var(--font-xs);letter-spacing:.09em;text-transform:uppercase;font-weight:800}.invite-kit__preview h2{color:var(--color-primary-dark);font-family:var(--font-serif);margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:1}.invite-kit__preview p{color:var(--color-text-muted);margin:0;line-height:1.55}.invite-kit__preview small{color:var(--color-primary-dark);font-size:var(--font-sm);font-weight:700;line-height:1.45;display:block}.invite-kit__preview code{padding:var(--spacing-sm);overflow-wrap:anywhere;border-radius:var(--radius-sm);color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));font-family:var(--font-body);font-size:var(--font-xs);font-weight:700;display:block}.invite-kit__qr{padding:var(--spacing-md);border:1px solid color-mix(in srgb, var(--color-border) 72%, transparent);border-radius:var(--radius-md);background:var(--color-surface);place-items:center;display:grid}.invite-kit__qr img{border-radius:var(--radius-sm);width:min(100%,17rem)}.invite-kit__qr svg{width:9rem;height:9rem;color:var(--color-primary)}.invite-kit__actions{justify-content:flex-end;gap:var(--spacing-sm);flex-wrap:wrap;grid-column:1/-1;display:flex}@keyframes invite-kit-in{0%{opacity:0;transform:translateY(1.2rem)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width<=1024px){.guest-admin-hero,.guest-workspace{grid-template-columns:1fr}.guest-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-side-panel{grid-row:1}}@media (width<=768px){.invite-kit__panel{grid-template-columns:1fr}.invite-kit__actions{justify-content:stretch}.invite-kit__actions .button{flex:12rem}}@media (width<=430px){.guest-admin-stats{grid-template-columns:1fr 1fr}.guest-filter-bar input,.guest-filter-bar select,.guest-filter-bar .button{width:100%;max-width:none}.invite-kit{padding:var(--spacing-sm)}.invite-kit__panel{gap:var(--spacing-sm);max-height:calc(100svh - 1.5rem);padding:2.85rem var(--spacing-md) var(--spacing-md);overflow-y:auto}.invite-kit__preview{gap:var(--spacing-xs);padding:var(--spacing-md)}.invite-kit__preview h2{font-size:clamp(1.55rem,10vw,2.15rem)}.invite-kit__preview p,.invite-kit__preview small{font-size:.84rem;line-height:1.4}.invite-kit__qr{padding:var(--spacing-sm)}.invite-kit__qr img{width:min(100%,13rem)}.invite-kit__actions{gap:var(--spacing-xs)}.invite-kit__actions .button{flex-basis:calc(50% - var(--spacing-xs));min-height:2.35rem;padding-inline:var(--spacing-sm);font-size:.74rem}}:root{--color-primary:#426b3f;--color-primary-dark:#2e4d2e;--color-secondary:#8b9f6b;--color-accent:#d7c78a;--color-background:#f3f7ed;--color-surface:#fffef8;--color-surface-soft:#edf3df;--color-paper-white:#fff;--color-paper-cream:#fbf6e8;--color-admin-background:#f2f5ec;--color-overlay:#162618c7;--color-overlay-soft:#2d48308c;--color-overlay-text:#16261873;--color-text:#253124;--color-text-muted:#708064;--color-border:#cfd9bd;--color-paper-line:#aebd91;--color-success:#426b3f;--color-warning:#8a6e24;--color-danger:#9f4b3d;--wedding-bg:#faf8ef;--wedding-paper:#f7f5ec;--wedding-primary:#43583d;--wedding-primary-dark:#30412c;--wedding-sage:#9da98f;--wedding-gold:#c4a76a;--wedding-gold-soft:#d6c79e;--wedding-text:#263225;--wedding-muted:#717a68;--wedding-line:#8d9d7e59;--font-display:"Allura", "Segoe Script", "Apple Chancery", cursive;--font-handwriting:"Dancing Script", "Allura", "Segoe Script", "Apple Chancery", cursive;--font-editorial:"Cormorant Garamond Medium";--font-serif:"Playfair Display", "Times New Roman", serif;--font-body:"Be Vietnam Pro", "Inter", "Segoe UI", system-ui, sans-serif;--font-xs:.75rem;--font-sm:.875rem;--font-md:1rem;--font-lg:1.125rem;--font-xl:1.45rem;--font-2xl:2.2rem;--font-hero:clamp(3.4rem, 6.4vw, 6.5rem);--spacing-2xs:.25rem;--spacing-xs:.5rem;--spacing-sm:.75rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-section:clamp(3.5rem, 7vw, 6.5rem);--radius-xs:.25rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-xl:2rem;--radius-pill:999px;--shadow-sm:0 .5rem 1.5rem #2d483014;--shadow-md:0 1.25rem 3.5rem #2d48301f;--shadow-lg:0 2rem 5rem #253c282e}.media-grid{gap:var(--spacing-sm);margin-top:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));display:grid}.media-card{border:1px solid color-mix(in srgb, var(--color-border) 86%, transparent);border-radius:var(--radius-sm);background:linear-gradient(155deg, color-mix(in srgb, var(--color-surface) 94%, transparent), color-mix(in srgb, var(--color-surface-soft) 54%, transparent)), var(--color-surface);box-shadow:var(--shadow-sm);grid-template-rows:auto minmax(0,1fr);transition:border-color .26s,transform .26s;display:grid;overflow:hidden}.media-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.media-card img{aspect-ratio:4/3;object-fit:cover;width:100%}.media-card audio{width:100%}.media-card strong{padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-md);color:var(--color-primary-dark);font-size:var(--font-xs);overflow-wrap:anywhere;display:block}.media-card__audio{align-content:center;justify-items:center;gap:var(--spacing-md);min-height:10rem;padding:var(--spacing-md);color:var(--color-primary);background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 10%, transparent), color-mix(in srgb, var(--color-surface-soft) 82%, transparent)), var(--color-surface-soft);display:grid}.media-card__audio svg{width:2rem;height:2rem}@media (width<=430px){.media-grid{gap:var(--spacing-xs);grid-template-columns:repeat(2,minmax(0,1fr))}}
