.wedding-heart-rain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;contain:layout paint}.wedding-falling-heart{position:absolute;top:0;left:var(--heart-left);width:var(--heart-size);height:var(--heart-size);color:var(--theme-accent);opacity:0;pointer-events:none;animation:wedding-heart-fall var(--heart-duration) var(--heart-delay) linear infinite!important}.wedding-falling-heart:nth-child(3n){color:var(--theme-primary)}.wedding-falling-heart:nth-child(3n+1){color:var(--theme-ornament-dark)}.wedding-falling-heart svg{display:block;width:100%;height:100%;animation:wedding-heart-sway var(--heart-sway-duration) var(--heart-delay) ease-in-out infinite!important}.wedding-heart-rain[data-paused=true] .wedding-falling-heart,.wedding-heart-rain[data-paused=true] .wedding-falling-heart svg{animation-play-state:paused!important}@keyframes wedding-heart-fall{0%{transform:translate3d(0,-40px,0);opacity:0}8%,90%{opacity:var(--heart-opacity)}to{transform:translate3d(0,calc(100dvh + 40px),0);opacity:0}}@keyframes wedding-heart-sway{0%,to{transform:translate(0) rotate(-20deg)}50%{transform:translate(var(--heart-drift)) rotate(20deg)}}@media(max-width:760px){.wedding-falling-heart{width:calc(var(--heart-size) * .85);height:calc(var(--heart-size) * .85)}.wedding-falling-heart:nth-child(n+13){display:none}}.wedding-wish-stream{position:fixed;z-index:60;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:min(300px,72vw);height:190px;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}.wedding-wish-stream-track{animation:wedding-wishes-rise var(--wish-stream-duration) linear infinite!important;will-change:transform}.wedding-wish-stream-group{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-bottom:6px}.wedding-wish-bubble{max-width:100%;padding:6px 9px;border:1px solid rgba(var(--theme-ornament-rgb),.55);border-radius:7px;background:linear-gradient(135deg,rgba(var(--theme-mid-rgb),.94),rgba(var(--theme-primary-rgb),.94));box-shadow:0 2px 8px rgba(var(--theme-shadow-rgb),.12);color:var(--theme-paper);font:500 11px/1.55 Be Vietnam Pro,Arial,sans-serif;overflow-wrap:anywhere}.wedding-wish-bubble p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0}.wedding-wish-bubble strong{font-weight:700}.wedding-wish-bubble-heart{color:var(--theme-ornament-light)}.wedding-wish-stream-readable{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.wedding-wish-stream[data-paused=true] .wedding-wish-stream-track{animation-play-state:paused!important}body:has(dialog[open]) .wedding-wish-stream{visibility:hidden}@keyframes wedding-wishes-rise{to{transform:translate3d(0,-50%,0)}}@media(max-width:760px){.wedding-wish-stream{width:min(270px,72vw);height:155px}.wedding-wish-bubble{padding:5px 8px;font-size:10.5px}}@font-face{font-family:Philosopher;src:url(/fonts/save-date/Philosopher-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Fz Photograph;src:url(/fonts/save-date/Fz-Photograph.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:The Nautigal;src:url(/fonts/invitation/TheNautigal-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Birthstone Bounce;src:url(/fonts/invitation/BirthstoneBounce-Medium.ttf) format("truetype");font-style:normal;font-weight:500;font-display:swap}.save-date-section{padding:clamp(44px,6vw,84px) 16px clamp(40px,5vw,68px);background:#f8f7f1;background-image:url(/images/decorations/paper-grain.svg);background-size:180px 180px;color:var(--theme-primary);text-align:center;font-family:Be Vietnam Pro,Arial,sans-serif}.save-date-envelope{position:relative;isolation:isolate;--envelope-front-height: clamp(190px, 60vw, 360px);width:min(100%,600px);margin:auto;padding-bottom:clamp(78px,15vw,125px);filter:drop-shadow(0 14px 18px rgba(var(--theme-shadow-rgb),.18))}.save-date-envelope-back{position:absolute;inset:auto 0 0;width:100%;height:calc(var(--envelope-front-height) * 1.45);overflow:visible}.save-date-letter{position:relative;isolation:isolate;container-type:inline-size;z-index:1;width:78%;margin:auto;padding:clamp(54px,9vw,78px) clamp(12px,3vw,24px) clamp(112px,23vw,155px);border:1px solid #E4DDCE;border-radius:1px;background-color:#faf7ee;background-image:url(/images/decorations/paper-grain.svg),linear-gradient(115deg,rgba(255,255,255,.52),transparent 42%,rgba(214,201,175,.1));background-size:180px 180px,100% 100%;box-shadow:inset 0 0 22px #b49d720b,0 2px 14px rgba(var(--theme-shadow-rgb),.12)}.save-date-paper-frame{position:absolute;top:10px;right:10px;bottom:10px;left:10px;width:calc(100% - 20px);height:calc(100% - 20px);z-index:-1;pointer-events:none}.save-date-paper-botanical{position:absolute;z-index:-1;width:27%;height:auto;pointer-events:none}.save-date-paper-botanical-left{left:-12px;bottom:4px;width:22%}.save-date-paper-botanical-right{right:-12px;bottom:4px;width:22%;transform:scaleX(-1)}.save-date-intro{margin:0;font-size:clamp(17px,2.1vw,22px);line-height:1.7;letter-spacing:.015em}.save-date-section .save-date-names{display:flex;flex-direction:column;align-items:center;margin:22px 0 26px;font-family:"Fz Photograph",var(--script);font-size:clamp(30px,10.5cqw,62px);font-style:normal;font-weight:400;line-height:1.55;color:#183f30}.save-date-names>span{max-width:100%;overflow-wrap:anywhere;text-wrap:balance}.save-date-names .save-date-amp{display:flex;align-items:center;justify-content:center;gap:16px;width:70%;margin:5px 0;color:#b58f4d;font-size:.72em;line-height:1.35}.save-date-amp:before,.save-date-amp:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,#BC9A5B)}.save-date-amp:after{transform:rotate(180deg)}.save-date-amp-symbol{position:relative;padding:0 2px}.save-date-amp-symbol:before{content:"♥";position:absolute;top:-.3em;left:50%;transform:translate(-50%);font:400 .28em/1 Georgia,serif}.save-date-caption{margin:0 0 18px;color:var(--theme-primary);font-size:clamp(16px,1.8vw,20px);line-height:1.6;letter-spacing:.035em}.save-date-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(5px,1.2vw,12px);padding:10px 5px;border-radius:4px;background:transparent}.save-date-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;aspect-ratio:1;border:1px solid var(--theme-primary);border-radius:50%;background:var(--theme-primary);color:#fff}.save-date-circle strong{font:500 clamp(27px,4.4vw,42px)/1 "Be Vietnam Pro",Arial,sans-serif;font-variant-numeric:tabular-nums}.save-date-circle span{margin-top:6px;font-family:var(--sans);font-size:clamp(10px,1.2vw,12px);line-height:1.2}.save-date-status{max-width:none;margin:16px auto 0;color:var(--theme-primary);font-size:clamp(15px,1.6vw,18px);line-height:1.7;font-style:italic;white-space:nowrap}.save-date-envelope-front{position:absolute;z-index:2;inset:auto 0 0;width:100%;height:var(--envelope-front-height);overflow:visible;filter:drop-shadow(0 -2px 2px rgba(var(--theme-shadow-rgb),.09));pointer-events:none}.save-date-seal{position:absolute;z-index:3;left:50%;bottom:calc(var(--envelope-front-height) * .5);display:grid;place-items:center;width:clamp(66px,13vw,90px);aspect-ratio:1;transform:translate(-50%,50%);background:none;border:none;box-shadow:none;pointer-events:none}.save-date-seal-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 6px 14px rgba(40,60,48,.35))}.save-date-envelope .save-date-flower{display:none}.just-married-section{padding:0 16px;background:var(--theme-paper)}.just-married-photo{position:relative;isolation:isolate;container-type:inline-size;overflow:hidden;width:min(100%,960px);aspect-ratio:4 / 3;margin:auto;background:var(--theme-deep)}.just-married-photo.is-placeholder{background:radial-gradient(ellipse at 25% 20%,rgba(var(--theme-ornament-rgb),.26),transparent 60%),linear-gradient(135deg,var(--theme-mid),var(--theme-deep))}.just-married-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(transparent 45%,rgba(var(--theme-shadow-rgb),.32));pointer-events:none}.just-married-photo img{display:block;width:100%;height:100%;object-fit:cover}.just-married-lettering{position:absolute;z-index:2;inset:auto 4% 8%;display:flex;flex-direction:column;align-items:center;margin:0;color:#fff;text-align:center;font-weight:400;text-shadow:0 2px 18px rgba(var(--theme-shadow-rgb),.2);pointer-events:none}.just-married-section .just-married-script{font:400 clamp(58px,20cqw,192px)/.8 "Fz Photograph",var(--script);transform:translate(4%) rotate(-8deg)}.just-married-section .just-married-title{max-width:100%;font:400 clamp(38px,16cqw,154px)/1 "Times New Roman",Georgia,serif;letter-spacing:.015em}@media(max-width:600px){.save-date-letter{width:86%;padding-inline:10px}.save-date-circle strong{font-size:clamp(24px,7.2vw,36px)}.save-date-circle span{margin-top:4px;font-size:10px}.just-married-section{padding-inline:0}}/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--radius-sm:.25rem;--radius-md:.375rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{inset-block:0}.right-0{right:0}.left-0{left:0}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.inline{display:inline}.w-1\/2{width:50%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.overflow-hidden{overflow:hidden}.italic{font-style:italic}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--wine:var(--theme-primary);--wine-dark:var(--theme-deep);--wine-mid:var(--theme-mid);--red:var(--theme-accent);--paper:var(--theme-paper);--white:var(--theme-paper);--cream:var(--theme-cream);--gold:var(--theme-ornament);--gold-light:var(--theme-ornament-light);--gold-dark:var(--theme-ornament-dark);--gold-shine:linear-gradient(135deg, var(--theme-ornament) 0%, var(--theme-ornament-light) 40%, var(--theme-ornament) 60%, var(--theme-ornament-dark) 100%);--ink:var(--theme-ink);--muted:var(--theme-muted);--line:var(--theme-line);--line-light:var(--theme-line-light);--serif:"Cormorant Garamond", "Playfair Display", Georgia, serif;--script:"Great Vibes", "Brush Script MT", cursive;--sans:"Be Vietnam Pro", Arial, sans-serif;--shadow-sm:0 2px 8px rgba(var(--theme-shadow-rgb), .07);--shadow-md:0 8px 32px rgba(var(--theme-shadow-rgb), .1);--shadow-lg:0 20px 60px rgba(var(--theme-shadow-rgb), .15);--shadow-xl:0 30px 90px rgba(var(--theme-shadow-rgb), .2);--radius-sm:3px;--radius-md:6px;--radius-lg:12px;--transition:.25s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{color:var(--ink);background:var(--paper);font:18px/1.85 var(--serif);margin:0}body.cover-locked,body.modal-locked{overflow:hidden}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}img{object-fit:cover;width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}::selection{color:var(--theme-paper);background:var(--wine)}[hidden]{display:none!important}.container{width:min(100% - 48px,1080px);margin-inline:auto}.section{padding-block:100px}.eyebrow{font:300 10px/1.8 var(--sans);letter-spacing:.28em;text-transform:uppercase}.section-heading{color:var(--wine);margin:10px 0 18px;font-size:clamp(32px,4vw,46px);font-weight:400;line-height:1.35}.section-intro{max-width:480px;color:var(--muted);margin:auto;font-size:16px;line-height:1.95}.section-head{text-align:center;margin-bottom:48px}.section-head .eyebrow{color:var(--gold-dark)}.script{font-family:var(--script);font-weight:400}.button{border:1px solid var(--wine);border-radius:var(--radius-sm);background:var(--wine);min-height:50px;color:var(--theme-paper);font:300 11px/1.6 var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:background var(--transition),box-shadow var(--transition),transform var(--transition);box-shadow:0 2px 12px rgba(var(--theme-primary-rgb),.18);justify-content:center;align-items:center;gap:10px;padding:13px 26px;text-decoration:none;display:inline-flex}.button:hover{background:var(--wine-dark);box-shadow:0 6px 24px rgba(var(--theme-primary-rgb),.28);transform:translateY(-2px)}.button-outline{color:var(--wine);box-shadow:none;background:0 0}.button-outline:hover{color:var(--theme-paper);background:var(--wine);box-shadow:0 4px 16px rgba(var(--theme-primary-rgb),.22)}.button:disabled{cursor:wait;opacity:.6;box-shadow:none;transform:none}.icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.ornament{color:var(--gold);justify-content:center;align-items:center;gap:16px;margin:28px auto;display:flex}.ornament:before,.ornament:after{content:"";background:linear-gradient(90deg,transparent,var(--gold),transparent);width:60px;height:1px}.ornament span{font-size:18px}.reveal{opacity:1;transform:none}@font-face{font-family:EdwardianScriptRegular;src:url(/fonts/invitation/EdwardianScriptRegular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Invitation Guest;src:url(/fonts/invitation/TheNautigal-Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}.invitation-section{isolation:isolate;background:var(--theme-paper);color:var(--theme-ink);text-align:center;--sans:"Be Vietnam Pro",Arial,sans-serif;padding:clamp(54px,7vw,100px) 16px;font-family:Be Vietnam Pro,Arial,sans-serif;font-weight:400;position:relative}.invitation-heading{margin:0 auto 30px}.invitation-section .invitation-heading h2{color:var(--theme-primary);font-size:clamp(58px,7vw,84px);line-height:1.5}.invitation-section .invitation-heading>p{font-size:clamp(17px,1.7vw,20px);font-style:italic}.invitation-shell{width:min(100%,660px);margin:auto;position:relative}.invitation-sidebar,.invitation-details{min-width:0}.invitation-card{isolation:isolate;border:1px solid rgba(var(--theme-ornament-rgb),.2824);background-color:var(--theme-paper);background-image:radial-gradient(rgba(var(--theme-ornament-rgb),.0627) .6px,transparent .6px);box-shadow:0 8px 36px rgba(var(--theme-muted-rgb),.0392);background-size:5px 5px;border-radius:5px;padding:clamp(28px,4vw,52px) clamp(18px,4vw,50px);position:relative}.invitation-paper-decor{z-index:-1;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.invitation-paper-flower{width:clamp(100px,15vw,165px);height:clamp(100px,15vw,165px);color:var(--theme-accent);opacity:.09;stroke-width:.65px;position:absolute}.invitation-paper-flower.top-left{top:-20px;left:-25px;transform:rotate(135deg)}.invitation-paper-flower.top-right{top:-20px;right:-25px;transform:rotate(-135deg)}.invitation-paper-flower.bottom-left{bottom:-20px;left:-25px;transform:rotate(45deg)}.invitation-paper-flower.bottom-right{bottom:-20px;right:-25px;transform:rotate(-45deg)}.invitation-families{grid-template-rows:repeat(4,auto);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;font-size:clamp(17px,15px + .4vw,20px);font-weight:500;line-height:1.75;display:grid;container-type:inline-size}.invitation-family{grid-template-rows:subgrid;grid-row:span 4;min-width:0;display:grid}.invitation-families h3{color:var(--theme-primary);font-size:inherit;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-weight:500}.invitation-families p{margin:0}.invitation-families .invitation-parent-name{white-space:nowrap;overflow-wrap:normal;font-size:clamp(10px,4.4cqw,18px)}.invitation-families .invitation-family-address{color:var(--theme-muted);margin:10px 0 0;font-size:clamp(13px,1.1vw,15px);font-style:normal;font-weight:400;line-height:1.65}.invitation-family-address span{white-space:nowrap;display:block}.invitation-monogram{width:clamp(160px,24vw,220px);max-width:100%;margin:28px auto}.invitation-monogram img{object-fit:contain;width:100%;height:auto;display:block}.invitation-month-calendar{background:var(--theme-paper);border:1px solid rgba(var(--theme-ornament-rgb),.1569);width:min(100%,420px);box-shadow:0 3px 16px rgba(var(--theme-muted-rgb),.0275);border-radius:10px;margin:0 auto 38px;padding:18px 8px}.invitation-calendar-heading{justify-content:center;align-items:center;gap:8px;margin-bottom:16px;display:flex}.invitation-calendar-heading h3{color:var(--theme-primary);flex:1;font-size:clamp(22px,2vw,27px);font-weight:600;line-height:1.4}.invitation-calendar-heading h3 span{white-space:nowrap}.invitation-calendar-heading button{background:var(--theme-cream);width:44px;height:44px;color:var(--theme-primary);border:0;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.invitation-calendar-heading button:disabled{opacity:.35;cursor:default}.invitation-calendar-heading svg{width:19px;height:19px}.invitation-calendar-defs{position:absolute}.invitation-month-calendar table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:clamp(18px,1.5vw,20px);font-weight:500}.invitation-month-calendar th{color:var(--theme-muted);padding:4px 0 10px;font-size:clamp(15px,1.2vw,17px);font-weight:400}.invitation-month-calendar abbr{text-decoration:none}.invitation-month-calendar td{padding:4px 0}.invitation-calendar-day{place-items:center;min-height:34px;display:grid;position:relative}.invitation-calendar-day svg{width:34px;height:34px;fill:var(--theme-primary);color:var(--theme-primary);stroke-width:0;position:absolute}.invitation-calendar-day.bride svg{fill:var(--theme-accent)}.invitation-calendar-day time{z-index:1;line-height:1;position:relative}.invitation-calendar-day.marked time{color:var(--theme-paper);font-weight:600;transform:translateY(-1px)}.invitation-content-stack{display:grid}.invitation-card-content{overflow-wrap:anywhere;grid-area:1/1;min-width:0}.invitation-card-content[aria-hidden=true]{pointer-events:none}.invitation-section .invitation-salutation{font:500 clamp(23px,calc(20px + 1vw),32px)/1.6 var(--sans);color:var(--theme-primary);letter-spacing:.015em;text-wrap:balance}.invitation-section .invitation-guest{color:var(--theme-guest);font-family:"Invitation Guest",var(--script);text-wrap:balance;margin:16px 0 24px;padding:0 8px;font-size:clamp(40px,36px + 1vw,52px);font-style:normal;font-weight:400;line-height:1.55}.invitation-section .invitation-text{text-wrap:balance;max-width:480px;margin:auto;font-size:clamp(19px,17px + .4vw,23px);line-height:1.85}.invitation-text>span{display:block}.invitation-section .invitation-names{color:var(--theme-primary);font-family:"EdwardianScriptRegular",var(--script);text-wrap:balance;flex-direction:column;align-items:center;gap:0;margin:24px auto;padding:0 8px;font-size:clamp(54px,46px + 2vw,74px);font-weight:400;line-height:1.5;display:flex}.invitation-names>span{max-width:100%;display:block}.invitation-section .invitation-names .invitation-birth-order{font:400 clamp(16px,1.4vw,19px)/1.5 var(--sans);color:var(--theme-muted);margin:4px 0 8px;display:block}.invitation-section .invitation-names .invitation-amp{color:var(--theme-accent);font-size:.65em;line-height:1.25}.invitation-info-layout{container-type:inline-size}.invitation-section .invitation-reception-row{width:100%;color:var(--theme-primary);text-transform:uppercase;white-space:nowrap;justify-content:center;align-items:center;margin:20px auto 0;font-size:clamp(12px,4.6cqw,26px);font-weight:500;line-height:1.4;display:flex}.invitation-reception-row>span{flex-shrink:0;padding-inline:clamp(4px,1.4cqw,10px)}.invitation-reception-row>span:first-child{padding-left:0}.invitation-reception-row>span:last-child{padding-right:0}.invitation-reception-row>span+span{border-left:1px solid var(--theme-ornament)}.invitation-section .invitation-lunar,.invitation-section .invitation-venue,.invitation-section .invitation-address{color:var(--theme-primary);font-weight:400}.invitation-section .invitation-lunar{color:var(--theme-muted);text-wrap:balance;margin:6px 0 0;font-size:clamp(16px,14px + .45vw,20px);line-height:1.6}.invitation-section .invitation-ceremony-heading{color:var(--theme-muted);text-wrap:balance;margin:clamp(28px,7cqw,40px) auto 0;font-size:clamp(16px,4cqw,21px);font-weight:400;line-height:1.7}.invitation-section .invitation-pending-date{font-size:clamp(18px,1.6vw,21px);line-height:1.7}.invitation-section .invitation-venue{text-transform:uppercase;text-wrap:balance;margin:14px 0 0;font-size:clamp(22px,7cqw,36px);line-height:1.5}.invitation-section .invitation-address{max-width:480px;color:var(--theme-muted);text-wrap:balance;margin:6px auto 0;font-size:clamp(17px,15px + .5vw,21px);line-height:1.6}.invitation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,440px);margin:28px auto 0;display:grid}.invitation-section .invitation-actions .button{letter-spacing:0;background:var(--theme-primary);border-color:var(--theme-primary);min-height:48px;color:var(--theme-paper);gap:6px;padding:12px 8px;font-size:clamp(14px,1.3vw,17px);line-height:1.5}.invitation-section .invitation-actions .button-outline{color:var(--theme-primary);background:0 0}.invitation-actions .icon{flex-shrink:0;width:18px;height:18px}.invitation-actions .button:disabled{opacity:.45;cursor:default;transform:none}.invitation-section .invitation-map-note,.invitation-section .invitation-calendar-notice{max-width:440px;margin:14px auto 0;font-size:clamp(15px,1.4vw,18px);line-height:1.65}.invitation-calendar-notice:empty{display:none}.invitation-section button:focus-visible,.invitation-section a:focus-visible,.invitation-card:focus-visible{outline:2px solid var(--theme-primary);outline-offset:4px}@media(max-width:360px){.invitation-actions{grid-template-columns:1fr}}@media(max-width:760px){.invitation-section{padding:48px 12px}.invitation-card{padding:28px 16px}.invitation-families{column-gap:12px;font-size:clamp(14px,3.9vw,18px)}.invitation-section .invitation-names{font-size:clamp(44px,12vw,64px)}.invitation-section .invitation-salutation{font-size:clamp(19px,5.3vw,25px)}.invitation-section .invitation-guest{font-size:clamp(36px,10vw,46px)}.invitation-section .invitation-text{font-size:clamp(14px,4.2vw,19px);line-height:1.9}.invitation-section .invitation-address{font-size:clamp(15px,4vw,18px)}}@media(min-width:1024px){.invitation-shell{width:min(100%,1160px)}.invitation-card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;column-gap:40px;padding:48px 40px;display:grid}.invitation-sidebar{border-right:1px solid var(--theme-line);padding-right:40px}.invitation-families{column-gap:12px;font-size:18px}.invitation-month-calendar{margin-bottom:0}.invitation-section .invitation-names{margin-top:0;font-size:64px}.invitation-section .invitation-salutation{font-size:26px}.invitation-section .invitation-guest{font-size:48px}.invitation-section .invitation-text{font-size:clamp(17px,1.5vw,20px)}}.hero{isolation:isolate;background:var(--theme-deep);width:100%;height:100svh;min-height:500px;max-height:860px;color:var(--theme-paper);text-align:center;justify-content:center;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero-picture{z-index:-3;display:block;position:absolute;top:0;right:0;bottom:0;left:0}.hero-picture img{object-fit:cover;object-position:var(--hero-mobile-position,50% 25%);width:100%;height:100%}.hero:after{content:"";z-index:-2;background:linear-gradient(180deg,rgba(var(--theme-overlay-rgb),0) 15%,rgba(var(--theme-overlay-rgb),.06) 40%,rgba(var(--theme-overlay-rgb),.45) 68%,rgba(var(--theme-overlay-rgb),.75) 88%,rgba(var(--theme-overlay-rgb),.88));pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hero:before{content:"";z-index:-1;background:radial-gradient(ellipse 80% 100% at 50% 100%,transparent 50%,rgba(var(--theme-overlay-rgb),.3) 100%);pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.hero-content{z-index:2;width:min(100% - 32px,960px);padding:30px 0 32px;position:relative}.hero-title{color:var(--theme-paper);font:400 clamp(38px,10vw,76px)/1.4 "Fz Photograph",var(--script);letter-spacing:.025em;white-space:nowrap;text-shadow:0 3px 24px rgba(var(--theme-overlay-rgb),.5)}#hero-title:focus{outline:none}.hero-names{color:#fffcf8f7;font:400 clamp(33px,8.5vw,51px)/1.38 var(--script);text-shadow:0 2px 16px rgba(var(--theme-overlay-rgb),.55);white-space:nowrap;flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(8px,2vw,18px);margin:5px 0 0;display:flex}.hero-names [data-groom],.hero-names [data-bride]{flex-shrink:0;max-width:100%;display:inline-block}.hero-names .ampersand{flex-shrink:0;padding-inline:0;font-size:.65em;line-height:1}.hero-dates{text-align:center;justify-content:center;align-items:center;margin:18px 0 0;display:flex}.hero-dates time{color:var(--theme-paper);letter-spacing:5px;text-shadow:0 2px 12px #0006;border-top:1px solid #fefcf8e6;border-bottom:1px solid #fefcf8e6;padding:8px 20px;font-family:Cormorant Garamond,Playfair Display,serif;font-size:clamp(22px,4vw,38px);font-style:italic;font-weight:300;line-height:1.3}@media(max-width:768px){.hero-dates time{letter-spacing:3px;padding:6px 14px;font-size:18px}}.hero-dates>span{white-space:nowrap}.hero-dates-separator{color:var(--theme-ornament-light)}.hero-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(100%,650px);margin:24px auto 0;display:grid}.hero-action{border-radius:var(--radius-sm);min-height:48px;color:var(--wine);font:300 10px/1.6 var(--sans);letter-spacing:.08em;text-transform:uppercase;transition:background var(--transition),color var(--transition),border-color var(--transition);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fefcf8f2;border:1px solid #fffcf8a6;justify-content:center;align-items:center;gap:6px;padding:10px 8px;text-decoration:none;display:inline-flex}.hero-action .icon{width:15px;height:15px}.hero-action:hover{background:var(--wine);border-color:var(--wine);color:var(--theme-paper)}.hero-action:focus-visible{outline-color:var(--theme-ornament-light)}.hero-step{opacity:1;transform:none}.hero-petals{z-index:1;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.hero-petal{top:-25px;left:var(--left);background:linear-gradient(135deg,rgba(var(--theme-accent-rgb),.8),rgba(var(--theme-primary-rgb),.6667));opacity:0;width:7px;height:11px;animation:petal-fall var(--duration) var(--delay) linear infinite;border-radius:80% 15% 75% 25%;animation-play-state:paused;position:absolute}.hero.is-active .hero-petal{animation-play-state:running}.hero.petals-paused .hero-petal{animation-play-state:paused}@keyframes petal-fall{0%{opacity:0;transform:translateY(-15px)rotate(0)scale(.8)}10%{opacity:.55}88%{opacity:.4}to{opacity:0;transform:translate3d(var(--drift),900px,0) rotate(300deg) scale(1.1)}}@media(max-width:380px){.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:17px}.hero-action:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 4px)}.hero-content{padding-bottom:22px}.hero-title{font-size:38px}.hero-names{font-size:33px}.hero-dates-separator{display:none}.hero-dates{column-gap:16px}}@media(min-width:761px){.hero{height:84svh;min-height:580px;max-height:none}.hero-picture img{object-position:var(--hero-desktop-position,50% 0%)}.hero-content{padding-bottom:44px}.hero-title{font-size:clamp(78px,7.6vw,122px)}.hero-names{margin:2px 0 10px;font-size:clamp(42px,4.2vw,66px)}.hero-dates{gap:12px;font-size:12px}.hero-actions{gap:18px;margin-top:30px}.hero-action{min-height:48px;padding-inline:20px;font-size:11px}}.story-section{background:var(--paper);padding:44px 0 48px;overflow:hidden}.story-layout{grid-template-columns:minmax(0,1fr);align-items:center;gap:30px;width:min(100% - 32px,1120px);margin:auto;display:grid}.story-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-sm),0 8px 28px rgba(var(--theme-shadow-rgb),.06);text-align:center;padding:26px 22px 24px}.story-card .story-flower{width:38px;height:38px;color:var(--gold);margin-bottom:13px}.story-title{color:var(--wine);letter-spacing:.06em;margin-bottom:22px;font-size:clamp(20px,5vw,26px);line-height:1.5}#our-story .story-copy{color:var(--muted);text-align:left;overflow-wrap:anywhere;font-family:Be Vietnam Pro,Arial,sans-serif;font-size:clamp(17px,1.3vw,19px);font-style:normal;line-height:1.85}.story-copy p+p{margin-top:18px}.story-heart{width:18px;height:18px;color:var(--red);margin-top:26px}.story-collage{aspect-ratio:1.08;width:100%;max-width:560px;margin:0 auto;position:relative}.story-photo{border:1px solid var(--theme-cream-deep);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);background:#fff;padding:6px;transition:transform .4s,box-shadow .4s;position:absolute}.story-photo:hover{box-shadow:var(--shadow-lg);transform-origin:50%}.story-photo img{object-fit:cover;object-position:50% 0%;width:100%;height:100%}.story-photo-top{width:88%;height:56%;top:0;left:4%}.story-photo-left{z-index:1;width:45%;height:56%;top:40%;left:0;transform:rotate(-3deg)}.story-photo-right{z-index:2;width:45%;height:53%;top:47%;right:0;transform:rotate(3deg)}.story-photo-left:hover{transform:rotate(-1.5deg)scale(1.02)}.story-photo-right:hover{transform:rotate(1.5deg)scale(1.02)}#guestbook,#rsvp-form{scroll-margin-top:24px}#guestbook:focus,#rsvp-form:focus{outline:none}@media(min-width:761px){.story-section{padding:64px 0 56px}.story-layout{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(28px,4vw,48px)}.story-card{padding:clamp(26px,3vw,38px) clamp(24px,3vw,36px) 30px}.story-collage{aspect-ratio:1}.story-photo{padding:8px}}.countdown-section{background:linear-gradient(155deg,var(--theme-primary) 0%,var(--theme-deep) 60%,var(--theme-deep) 100%);color:var(--theme-paper);text-align:center;position:relative;overflow:hidden}.countdown-section:before,.countdown-section:after{content:"";border:1px solid rgba(var(--theme-ornament-rgb),.25);pointer-events:none;border-radius:50%;width:340px;height:340px;position:absolute;top:-140px}.countdown-section:before{box-shadow:0 0 0 20px rgba(var(--theme-ornament-rgb),.05),0 0 0 40px rgba(var(--theme-ornament-rgb),.02);left:-140px}.countdown-section:after{right:-140px}.countdown-section .section-heading{color:var(--theme-paper);font-weight:300}.countdown-section .section-head{margin-bottom:36px}.countdown-section .eyebrow{color:rgba(var(--theme-ornament-light-rgb),.9);letter-spacing:.25em}.countdown-grid{grid-template-columns:repeat(4,1fr);gap:18px;max-width:580px;margin:auto;display:grid}.countdown-unit{border:1px solid rgba(var(--theme-ornament-rgb),.35);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow-sm);background:#fefcf808;padding:22px 10px}.countdown-unit strong{color:var(--theme-ornament-light);font-variant-numeric:tabular-nums;font:400 48px/1.3 Cormorant Garamond,serif;display:block}.countdown-unit span{color:#fefcf8cc;font:300 10.5px var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-top:8px;display:block}.countdown-note{color:rgba(var(--theme-cream-rgb),.9);margin-top:26px;font-family:Cormorant Garamond,serif;font-size:15px;font-style:italic}.timeline{max-width:780px;margin:auto;padding-left:47px;position:relative}.timeline:before{content:"";background:linear-gradient(180deg,var(--gold-dark),rgba(var(--theme-ornament-rgb),.3));width:1px;position:absolute;top:8px;bottom:40px;left:9px}.event{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);box-shadow:var(--shadow-sm);margin-bottom:30px;padding:34px 40px;position:relative}.event:last-child{margin-bottom:0}.event:before{content:"";border:3px solid var(--paper);background:var(--gold);width:14px;height:14px;box-shadow:0 0 0 1px rgba(var(--theme-ornament-rgb),.7);border-radius:50%;position:absolute;top:40px;left:-44px}.event-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.event-top .eyebrow{color:var(--gold-dark);letter-spacing:.2em}.event-date{color:var(--muted);font:300 10.5px var(--sans);letter-spacing:.08em}.event h3{color:var(--wine);margin:10px 0 22px;font:400 32px/1.4 Cormorant Garamond,serif}.event-times{color:var(--wine);flex-wrap:wrap;gap:12px 28px;margin-bottom:18px;font-size:14px;display:flex}.event-times p{align-items:center;gap:10px;display:flex}.event-times .icon{width:17px;height:17px;color:var(--gold-dark)}.event-venue{color:var(--wine);font-size:18px}.event-address{color:var(--muted);margin:4px 0 22px;font-size:14.5px;line-height:1.8}.event .button{min-height:44px;padding:10px 18px;font-size:10.5px}.gallery-section{padding-top:10px}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;grid-auto-flow:dense;gap:14px;display:grid}.gallery-item{border-radius:var(--radius-sm);background:var(--theme-cream-deep);border:0;padding:0;display:block;position:relative;overflow:hidden}.gallery-item:first-child,.gallery-item:nth-child(3),.gallery-item:nth-child(5),.gallery-item:nth-child(6){grid-row:span 2}.gallery-item img{height:100%;transition:transform .7s cubic-bezier(.2,0,.1,1)}.gallery-item:hover img,.gallery-item:focus-visible img,.gallery-item:active img{transform:scale(1.08)}.gallery-item:after{content:"↗";color:#fff;opacity:0;width:34px;height:34px;transition:opacity var(--transition);background:#0003;border:1px solid #fff9;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:14px;right:14px}.gallery-item:hover:after,.gallery-item:focus-visible:after{opacity:1}.gallery-note{color:var(--muted);font:300 10.5px var(--sans);text-align:center;letter-spacing:.08em;margin-top:22px}.rsvp-section{border-top:1px solid var(--line-light);background:linear-gradient(to bottom,var(--theme-cream),var(--paper))}.rsvp-layout{grid-template-columns:.95fr 1.05fr;align-items:start;gap:76px;display:grid}.rsvp-text .section-head{text-align:left;margin:0 0 28px}.rsvp-text .section-intro{margin:0;font-size:15.5px;line-height:2}.rsvp-text .section-heading{max-width:380px}.rsvp-flower{width:110px;height:110px;color:var(--gold-dark);margin-bottom:24px}.rsvp-form{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-lg);gap:20px;padding:36px;display:grid}.field{gap:8px;display:grid}.field label{color:var(--wine);font:300 11.5px/1.8 var(--sans);letter-spacing:.05em}.field input,.field select,.field textarea{border:1px solid rgba(var(--theme-ornament-rgb),.4);border-radius:var(--radius-sm);background:var(--theme-paper);width:100%;min-width:0;color:var(--ink);font:300 14.5px/1.7 var(--sans);transition:border-color var(--transition),box-shadow var(--transition);padding:13px 15px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--theme-ornament-rgb),.15);outline:none}.field textarea{resize:vertical;min-height:130px}.field input::placeholder,.field textarea::placeholder{color:var(--theme-muted);font-size:13px;font-weight:300}.form-note{color:var(--muted);font:300 10.5px/1.8 var(--sans)}.form-status{border-left:3px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--theme-cream);color:var(--wine);font:300 13px/1.8 var(--sans);padding:14px 16px}.wish-list{gap:15px;margin-top:26px;display:grid}.wish{border-left:2px solid rgba(var(--theme-ornament-rgb),.4);padding-left:18px}.wish p{color:var(--muted);overflow-wrap:anywhere;font-family:Cormorant Garamond,serif;font-size:14.5px;font-style:italic;line-height:1.85}.wish strong{color:var(--wine);font:300 10.5px/1.8 var(--sans);overflow-wrap:anywhere;letter-spacing:.05em;margin-top:6px;display:block}.gift-section{background:var(--paper);padding-block:80px}.gift-box{border:1px solid rgba(var(--theme-ornament-rgb),.7);background:linear-gradient(145deg,var(--theme-primary) 0%,var(--theme-deep) 60%,var(--theme-deep) 100%);max-width:860px;color:var(--theme-paper);text-align:center;border-radius:var(--radius-sm);box-shadow:var(--shadow-xl);margin:auto;padding:60px 40px;position:relative}.gift-box:before{content:"";border:1px solid rgba(var(--theme-ornament-rgb),.35);pointer-events:none;border-radius:1px;position:absolute;top:10px;right:10px;bottom:10px;left:10px}.gift-icon{width:40px;height:40px;color:var(--gold-light);margin-bottom:14px}.gift-box .eyebrow{color:rgba(var(--theme-ornament-light-rgb),.8);letter-spacing:.3em}.gift-box .section-heading{color:var(--theme-paper);margin-top:8px;font-weight:300}.gift-box p{max-width:460px;color:rgba(var(--theme-cream-rgb),.9);margin:auto;font-size:15px;line-height:1.95}.gift-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:30px;display:flex}.gift-actions .button{border:1px solid rgba(var(--theme-ornament-light-rgb),.6);min-width:185px;color:rgba(var(--theme-ornament-light-rgb),.95);transition:background var(--transition),color var(--transition),border-color var(--transition);background:0 0}.gift-actions .button:hover{background:rgba(var(--theme-ornament-rgb),.18);color:var(--gold-light);border-color:var(--gold-light)}.footer{text-align:center;padding:30px 24px 44px}.footer .script{color:var(--wine);margin:20px 0 14px;font-size:clamp(70px,11vw,115px);line-height:1.15}.footer-message{max-width:440px;color:var(--muted);margin:auto;font-size:16px;line-height:1.95}.footer-names{color:var(--wine);margin:26px 0 9px;font-size:22px;font-weight:400}.footer .eyebrow{color:var(--gold-dark);font-size:9px}.footer-bottom{border-top:1px solid var(--line-light);max-width:1080px;color:var(--muted);font:300 9px var(--sans);letter-spacing:.12em;margin:48px auto 0;padding-top:20px}dialog{border:1px solid rgba(var(--theme-ornament-rgb),.6);border-radius:var(--radius-md);background:var(--paper);width:min(440px,100% - 32px);max-height:calc(100dvh - 40px);color:var(--ink);text-align:center;padding:38px 28px;overflow-y:auto;box-shadow:0 8px 20px #00000014,0 30px 100px #00000040}dialog::backdrop{background:rgba(var(--theme-overlay-rgb),.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-close{z-index:2;width:40px;height:40px;color:var(--wine);transition:background var(--transition);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:28px;display:grid;position:absolute;top:10px;right:10px}.dialog-close:hover{background:rgba(var(--theme-primary-rgb),.08)}.gift-dialog h2{color:var(--wine);margin:12px 0 8px;font-size:30px;font-weight:400}.gift-switch{grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 5px;display:grid}.gift-switch button{border:1px solid rgba(var(--theme-ornament-rgb),.7);border-radius:var(--radius-sm);min-height:44px;color:var(--wine);font:300 12px var(--sans);transition:background var(--transition),color var(--transition);background:0 0;padding:8px 12px}.gift-switch button[aria-pressed=true]{background:var(--wine);border-color:var(--wine);color:var(--theme-paper)}.qr-image{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-sm);object-fit:contain;width:220px;max-width:100%;box-shadow:var(--shadow-sm);background:#fff;margin:22px auto;padding:9px}.account-owner{color:var(--wine);font:300 12px/1.9 var(--sans)}.account-bank{color:var(--muted);margin-top:5px;font-size:15px}.account-number{color:var(--wine);margin:7px 0 15px;font-size:23px}.qr-note{color:var(--muted);font:300 10px/1.8 var(--sans);margin-top:15px}.lightbox{border-radius:var(--radius-sm);background:var(--theme-deep);border:0;width:min(1000px,100% - 24px);padding:0;overflow:hidden;box-shadow:0 40px 120px #0009}.lightbox .dialog-close{box-shadow:var(--shadow-sm);background:#fefcf8f2}.lightbox img{object-fit:contain;width:100%;height:min(76dvh,750px);animation:.3s photo-in}.lightbox-bottom{color:#ffffffd9;font:300 12px var(--sans);justify-content:space-between;align-items:center;padding:13px 18px;display:flex}.lightbox-arrow{color:#fff;width:44px;height:44px;transition:border-color var(--transition);background:0 0;border:1px solid #ffffff59;border-radius:50%;font-size:22px}.lightbox-arrow:hover{border-color:#ffffffb3}@keyframes photo-in{0%{opacity:.35;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media(max-width:760px){.section{padding-block:65px}.container{width:calc(100% - 36px)}.countdown-grid{gap:9px}.countdown-unit{padding:16px 4px}.countdown-unit strong{font-size:35px}.countdown-unit span{font-size:9px}.timeline{padding-left:28px}.timeline:before{left:5px}.event{padding:23px 21px}.event:before{width:11px;height:11px;top:31px;left:-29px}.event h3{font-size:26px}.event-times{flex-direction:column;gap:10px}.event-date{font-size:9px}.gallery-section{padding-top:0}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(135px,38vw,230px);gap:9px}.rsvp-layout{grid-template-columns:1fr;gap:29px}.rsvp-text .section-head{text-align:center}.rsvp-text .section-intro,.rsvp-text .section-heading{margin-inline:auto}.rsvp-flower{width:76px;height:76px;margin-inline:auto;display:block}.rsvp-form{padding:23px}.gift-section{padding-block:50px}.gift-box{padding:43px 23px}.gift-actions{gap:10px}.gift-actions .button{flex:1;min-width:0;padding-inline:12px;font-size:10px}.gift-actions .icon{width:16px;height:16px}.footer{padding-top:0}}@media(max-width:360px){.event{padding-inline:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.hero-petals{display:none}}.wedding-opening{z-index:90;width:100%;height:100dvh}.opening-wing{background-color:var(--theme-primary);background-image:radial-gradient(ellipse at 50% 30%,rgba(var(--theme-accent-rgb),.25),transparent 58%),radial-gradient(ellipse at 50% 80%,rgba(var(--theme-shadow-rgb),.4),transparent 70%),linear-gradient(160deg,var(--theme-mid) 0%,var(--theme-deep) 50%,var(--theme-deep) 100%);will-change:transform;height:100%}.opening-wing:after{content:"";border:1px solid rgba(var(--theme-ornament-rgb),.45);pointer-events:none;position:absolute;top:20px;right:20px;bottom:20px;left:20px}.opening-left{z-index:2;border-right:1px solid rgba(var(--theme-ornament-rgb),.5)}.opening-right{z-index:1;border-left:1px solid rgba(var(--theme-ornament-rgb),.5)}.opening-left:after{border-right:0;right:0}.opening-right:after{border-left:0;left:0}.opening-pattern{color:var(--theme-ornament);opacity:.12;position:absolute;top:0;right:0;bottom:0;left:0}.opening-right .opening-pattern{transform:scaleX(-1)}.opening-seal{z-index:3;aspect-ratio:1;border:1.5px solid var(--theme-ornament);background:radial-gradient(circle at 40% 35%,var(--theme-mid),var(--theme-deep));width:clamp(90px,24vw,130px);color:var(--theme-ornament);box-shadow:0 0 0 4px rgba(var(--theme-deep-rgb),.8),0 8px 32px rgba(var(--theme-shadow-rgb),.6),0 0 24px rgba(var(--theme-ornament-rgb),.15);text-align:center;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;right:0;translate:50% -50%}.opening-seal:before{content:"";border:1px solid rgba(var(--theme-ornament-rgb),.4);border-radius:50%;position:absolute;top:6px;right:6px;bottom:6px;left:6px}.double-happiness{color:var(--theme-ornament-light);text-shadow:0 2px 12px rgba(var(--theme-shadow-rgb),.5),0 0 30px rgba(var(--theme-ornament-rgb),.2);font-family:Noto Serif SC,Microsoft YaHei,PingFang SC,SimSun,serif;font-size:clamp(48px,13vw,70px);font-weight:300;line-height:1.25}.music-dock{z-index:120;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));flex-direction:row-reverse;bottom:auto;left:auto}.music-toggle{border:1px solid rgba(var(--theme-ornament-rgb),.502);background:var(--theme-paper);width:46px;height:46px;color:var(--theme-primary);box-shadow:0 4px 18px rgba(var(--theme-shadow-rgb),.1255);border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid}.music-toggle.playing .icon{animation:9s linear infinite music-spin}.music-toggle:disabled{opacity:.75;cursor:progress}.music-prompt{border:1px solid rgba(var(--theme-ornament-rgb),.3765);background:var(--theme-paper);max-width:calc(100vw - 94px);min-height:44px;color:var(--theme-primary);box-shadow:0 4px 18px rgba(var(--theme-shadow-rgb),.0824);font:10px/1.6 var(--sans);border-radius:22px;padding:8px 14px}@keyframes music-spin{to{transform:rotate(360deg)}}.icon{vertical-align:middle;display:inline-block}dialog{margin:auto}.qr-demo{aspect-ratio:1;width:220px;max-width:100%;color:var(--wine);border:1px solid var(--line);background:#fff;margin:20px auto;padding:18px}.qr-demo svg{width:100%;height:100%}.event-lunar-date{color:var(--muted);margin-top:16px;font-size:11px}.guest-invitation{color:var(--wine)}.story-section{isolation:isolate;position:relative}.story-layout{z-index:1;position:relative}.story-petals{z-index:0}.story-petals .hero-petal{width:6px;height:9px}.story-section.petals-active .hero-petal{animation-play-state:running}.footer{padding-bottom:85px}.replay-opening{min-height:44px;color:var(--wine);font:11px/1.8 var(--sans);text-underline-offset:4px;background:0 0;border:0;margin-top:15px;padding:8px 14px;text-decoration:underline}.replay-opening:hover{color:var(--red)}@media(max-width:760px){.hero{min-height:600px}.hero-content{padding-bottom:max(86px,calc(686px - 100svh),calc(env(safe-area-inset-bottom) + 70px))}.opening-wing:after{top:12px;bottom:12px}.opening-left:after{left:12px}.opening-right:after{right:12px}}@media(prefers-reduced-motion:reduce){.music-toggle.playing .icon{animation:none}}.our-love-section{isolation:isolate;background:linear-gradient(155deg,var(--theme-primary) 0%,var(--theme-deep) 60%,var(--theme-deep) 100%);color:var(--theme-paper);text-align:center;padding:80px 0 75px;position:relative;overflow:hidden}.our-love-section:before{content:"";z-index:-1;border:1px solid rgba(var(--theme-ornament-rgb),.25);width:320px;height:320px;box-shadow:0 0 0 18px rgba(var(--theme-ornament-rgb),.05);border-radius:50%;position:absolute;top:150px;right:-120px}.our-love-section:after{content:"♡";z-index:-1;color:rgba(var(--theme-ornament-rgb),.12);font-size:130px;position:absolute;top:45%;left:-12px;transform:rotate(-15deg)}.our-love-inner{width:min(100% - 32px,800px);margin:auto}.our-love-inner>div:first-child .eyebrow{color:rgba(var(--theme-ornament-light-rgb),.85);letter-spacing:.25em;font-size:9px}.our-love-title{color:var(--theme-ornament-light);letter-spacing:.15em;text-shadow:0 2px 14px #0000004d;margin:10px 0 32px;font-size:clamp(38px,8vw,72px);line-height:1.25}.our-love-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,2vw,16px);display:grid}.our-love-photos figure{aspect-ratio:2/3;border-radius:var(--radius-sm);border:1px solid #fefcf859;overflow:hidden;box-shadow:0 8px 24px #00000040}.our-love-photos img{object-fit:cover;object-position:50% 35%;width:100%;height:100%;transition:transform var(--transition)}.our-love-photos figure:hover img{transform:scale(1.04)}.our-love-introduction{color:#fefcf8e6;max-width:650px;margin:32px auto 0;font-family:Cormorant Garamond,serif;font-size:clamp(15px,1.7vw,17px);font-style:italic;line-height:1.95}.love-transition{margin:26px 0}.love-transition>div{flex-direction:column;align-items:center;gap:8px;display:flex}.love-line{background:linear-gradient(180deg,rgba(var(--theme-ornament-rgb),.8),rgba(var(--theme-ornament-rgb),.2));width:1px;height:26px}.love-wax-seal{border:2px solid var(--theme-accent);background:radial-gradient(circle at 40% 35%,var(--theme-mid),var(--theme-deep));width:38px;height:38px;color:var(--theme-ornament-light);box-shadow:inset 0 0 0 2px var(--theme-deep),0 4px 12px #0000004d;border-radius:47% 53% 45% 55%;place-items:center;font-size:17px;display:grid}.our-love-petals{z-index:1;pointer-events:none}.our-love-petals .hero-petal{background:rgba(var(--theme-accent-rgb),.6);width:6px;height:10px}.our-love-section.petals-active .hero-petal{animation-play-state:running}.our-love-inner{z-index:2;position:relative}.love-rose{transform-origin:bottom;width:52px;height:52px;animation:8s ease-in-out infinite alternate rose-sway}@keyframes rose-sway{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}.wedding-calendar{border:1px solid rgba(var(--theme-ornament-rgb),.5);background:linear-gradient(145deg,var(--theme-cream) 0%,var(--theme-cream-deep) 100%);width:min(100%,480px);color:var(--wine);box-shadow:0 16px 48px rgba(var(--theme-shadow-rgb),.25);border-radius:20px;margin:auto;padding:30px 32px 26px;position:relative}.calendar-caption{max-width:310px;font:300 10.5px/1.9 var(--sans);letter-spacing:.12em;color:var(--gold-dark);margin:auto}.calendar-month-heading{justify-content:center;align-items:center;gap:12px;margin:20px 0 22px;display:flex}.calendar-month-heading>div{flex:1;min-width:0}.calendar-month-heading h3{color:var(--wine);font:400 48px/1.3 Cormorant Garamond,serif}.calendar-month-heading p{color:var(--wine);margin-top:2px;font-size:18px;font-weight:300}.calendar-month-heading button{border:1px solid rgba(var(--theme-ornament-rgb),.5);width:46px;height:46px;color:var(--wine);transition:background var(--transition),border-color var(--transition);background:#fefcf899;border-radius:50%;flex-shrink:0;place-items:center;padding:8px;display:grid}.calendar-month-heading button:hover:not(:disabled){border-color:var(--gold-dark);background:#fff}.calendar-month-heading button:disabled{opacity:.28;cursor:default}.calendar-definitions{pointer-events:none;position:absolute}.calendar-grid{border-collapse:collapse;table-layout:fixed;width:100%;font:300 15px/1.5 var(--sans)}.calendar-grid th{color:var(--wine);letter-spacing:.05em;padding:0 0 12px;font-size:10.5px;font-weight:500}.calendar-grid abbr{text-decoration:none}.calendar-grid td{text-align:center;height:48px;padding:0}.calendar-day{place-items:center;width:42px;max-width:100%;height:42px;margin:auto;display:grid;position:relative}.calendar-day time{z-index:1;font-variant-numeric:tabular-nums;position:relative}.calendar-day>svg{stroke-width:1.2px;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.wedding-day{color:#fff;font-weight:400}.bride-day>svg,.bride-heart{color:var(--red);fill:var(--red)}.groom-day>svg,.groom-heart{color:var(--wine);fill:var(--wine)}.shared-day>svg,.shared-heart{stroke:var(--wine);fill:url(#shared-wedding-heart)}.calendar-legend{border-top:1px solid rgba(var(--theme-ornament-rgb),.35);font:300 10.5px/1.7 var(--sans);gap:10px;margin-top:22px;padding-top:18px;display:grid}.calendar-legend p{justify-content:center;align-items:center;gap:8px;display:flex}.calendar-legend svg{stroke-width:1.4px;flex-shrink:0;width:18px;height:18px}.calendar-pending{font-size:var(--text-body);margin-top:26px;font-family:Cormorant Garamond,serif;font-style:italic;line-height:1.7}.love-countdown{max-width:480px;margin:36px auto 0}.countdown-heading{color:#fefcf8e6;font:300 10.5px/1.8 var(--sans);letter-spacing:.15em;margin-bottom:20px}.love-countdown-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,2vw,18px);display:grid}.love-countdown-circle{aspect-ratio:1;border:1px solid rgba(var(--theme-ornament-rgb),.4);color:var(--wine);box-shadow:var(--shadow-sm);background:#fefcf8f2;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:6px;display:flex;overflow:hidden}.love-countdown-circle strong{font-variant-numeric:tabular-nums;font:400 clamp(26px,6.5vw,44px)/1.15 Cormorant Garamond,serif}.love-countdown-circle span{font:300 8.5px/1.5 var(--sans);letter-spacing:.15em;text-transform:uppercase;margin-top:5px}.love-countdown-note{color:#fefcf8e6;margin-top:24px;font-family:Cormorant Garamond,serif;font-size:14px;font-style:italic}.love-countdown-target{color:#fefcf8e6;font:var(--text-small)/1.8 var(--sans);text-wrap:balance;margin-top:20px;font-weight:300}.love-countdown-target time{font-size:var(--text-caption)}@media(prefers-reduced-motion:reduce){.our-love-petals{display:none}.love-rose{animation:none}}.gallery-section{background:var(--theme-paper);padding-top:75px}.gallery-section .section-heading{letter-spacing:.045em;font-size:clamp(25px,4vw,38px)}.gallery-grid{columns:3;column-gap:16px;display:block}.gallery-item{break-inside:avoid;aspect-ratio:4/3;width:100%;margin-bottom:16px;display:block}.gallery-item:nth-child(6n+1),.gallery-item:nth-child(6n+5){aspect-ratio:3/4}.gallery-item:nth-child(6n+3){aspect-ratio:1}.gallery-item img{width:100%;height:100%}.gallery-more{text-align:center;margin-top:24px}.guestbook-section{background:var(--theme-cream)}.lightbox-gesture{touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none}@media(max-width:760px){.our-love-section{padding:52px 0 48px}.our-love-title{margin-bottom:24px}.wedding-calendar{padding:23px 17px 21px}.calendar-caption{font-size:9px}.calendar-month-heading h3{font-size:clamp(34px,9vw,46px)}.calendar-grid{font-size:12px}.calendar-grid td{height:39px}.calendar-day{width:33px;height:33px}.gallery-grid{columns:2;column-gap:10px}.gallery-item{margin-bottom:10px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--text-body: clamp(17px, 1.35vw, 19px);--text-small: clamp(14px, 1.1vw, 16px);--text-caption: clamp(12px, .9vw, 14px);--text-input: clamp(15px, 1.2vw, 17px);--text-button: clamp(11px, .95vw, 13px)}html{scrollbar-gutter:stable}body{font-size:var(--text-body)}.section-heading{font-size:clamp(34px,4.2vw,52px);text-wrap:balance;font-weight:400}.section-intro{max-width:560px}.eyebrow,.invitation-heading .eyebrow,.our-love-inner>div:first-child .eyebrow,.footer .eyebrow,.gift-box .eyebrow{font-size:var(--text-caption);letter-spacing:.16em}.button,.event .button,.gift-actions .button,.invitation-actions .button,.hero-action,.gift-switch button{font-size:var(--text-button)}.button{min-height:50px}.hero-title{font-size:clamp(38px,10vw,76px)}.hero-names{font-size:clamp(25px,7.5vw,57px)}.hero-dates time{font-size:clamp(18px,3.5vw,34px)}.story-title{font-size:clamp(22px,2.5vw,29px);text-wrap:balance;font-weight:400}.story-copy{font-size:var(--text-body);line-height:1.9}.event h3{font-size:clamp(30px,3.2vw,38px);font-weight:400}.event-date,.event-lunar-date,.gallery-note,.form-note,.qr-note,.footer-bottom,.music-prompt,.replay-opening,.wish strong{font-size:var(--text-caption)}.event-times,.event-address,.wish p,.gift-box p,.account-bank,.footer-message{font-size:var(--text-body)}.event-venue{font-size:clamp(20px,2vw,25px)}.field label,.form-status,.account-owner,.lightbox-bottom{font-size:var(--text-small)}.field input,.field select,.field textarea,.field input::placeholder,.field textarea::placeholder{font-size:var(--text-input)}.field input,.field select{min-height:52px}.gift-dialog h2{font-size:clamp(32px,3vw,40px);font-weight:400}.account-number{font-size:26px;overflow-wrap:anywhere}.dialog-close{font-size:32px}.lightbox-arrow{font-size:26px}.footer .script{font-size:clamp(80px,12vw,128px)}.footer-names{font-size:clamp(24px,2.2vw,30px);font-weight:400}.our-love-title{font-size:clamp(42px,8.5vw,78px);font-weight:400;letter-spacing:.1em}.our-love-introduction,.love-countdown-note{font-size:var(--text-body)}.calendar-caption,.calendar-grid th,.calendar-legend,.countdown-heading{font-size:var(--text-caption)}.calendar-month-heading h3{font-size:clamp(40px,9.5vw,56px)}.calendar-month-heading p{font-size:20px}.calendar-grid{font-size:clamp(14px,1.25vw,17px)}.love-countdown-circle{padding:3px}.love-countdown-circle strong{font-size:clamp(28px,7vw,50px)}.love-countdown-circle span{margin-top:3px;font-size:var(--text-caption);line-height:1.35;letter-spacing:.03em}.gallery-section .section-heading{font-size:clamp(30px,4.3vw,46px);text-wrap:balance}@media(max-width:380px){.hero-content{width:calc(100% - 16px)}.hero-title{font-size:clamp(34px,10.5vw,39px)}}@media(min-width:761px){.hero-title{font-size:clamp(78px,7.6vw,122px)}.hero-names{font-size:clamp(48px,4.6vw,74px)}}.wedding-couple-section{--couple-gold: #b89050;--couple-paper: #f8f5ee;position:relative;isolation:isolate;overflow:hidden;background:var(--couple-paper)}.couple-banner{position:relative;z-index:1;padding:34px 24px 32px;border-bottom:1px solid var(--couple-gold);border-radius:0 0 50% 50%/0 0 48px 48px;background:radial-gradient(ellipse at 50% 0,#32634c,var(--theme-deep) 80%);color:var(--theme-paper);text-align:center}.couple-banner-heading{position:relative;z-index:1;max-width:1050px;margin:auto}.couple-banner h2{margin:12px auto 8px;font-size:clamp(24px,3.2vw,40px);font-weight:400;line-height:1.45;text-wrap:balance}.couple-banner-heading>p{color:#e5d3a4;font-size:clamp(15px,1.6vw,19px);text-wrap:balance}.couple-rings-rule,.couple-heart-rule{display:flex;justify-content:center;align-items:center;gap:20px;color:var(--couple-gold)}.couple-rings-rule:before,.couple-rings-rule:after,.couple-heart-rule:before,.couple-heart-rule:after{content:"";height:1px;width:100px;background:linear-gradient(90deg,transparent,currentColor)}.couple-rings-rule:after,.couple-heart-rule:after{transform:rotate(180deg)}.couple-rings-rule svg{width:44px;height:34px;flex-shrink:0}.couple-banner .couple-rings-rule,.couple-banner .couple-heart-rule{color:#e0bf7c}.couple-banner .couple-heart-rule{margin-top:16px}.couple-heart-rule .icon{width:18px;height:18px;flex-shrink:0;stroke-width:1.6}.couple-editorial{position:relative;isolation:isolate;padding:64px 52px 44px;background-image:linear-gradient(#f8f5eede,#f8f5eede),url(/images/decorations/paper-grain.svg)}.couple-editorial:before,.couple-editorial:after{content:"";position:absolute;z-index:-1;width:420px;height:420px;border:1px solid #d8bd884d;border-radius:50%;pointer-events:none}.couple-editorial:before{top:-280px;left:-220px}.couple-editorial:after{bottom:-340px;right:-130px;width:700px;height:400px}.couple-profiles{position:relative;z-index:1;width:min(100%,1000px);margin:auto}.couple-profile+.couple-profile{margin-top:60px}.couple-profile-inner{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(42px,6vw,78px)}.couple-photo-composition{position:relative;isolation:isolate;width:min(100%,370px);margin:auto}.couple-photo-composition:before{content:"";position:absolute;z-index:-1;top:38px;bottom:-18px;left:-34px;width:72%;border:1px solid var(--couple-gold);border-radius:12px;background:linear-gradient(135deg,#487359,var(--theme-deep))}.couple-photo-frame{overflow:hidden;aspect-ratio:3 / 4;border:4px solid var(--theme-paper);border-radius:15px;background:var(--theme-cream-deep);box-shadow:0 14px 34px #263f2c26}.couple-photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}.couple-photo-botanical{position:absolute;z-index:1;bottom:-30px;left:-56px;width:190px;height:auto;pointer-events:none;filter:drop-shadow(0 3px 5px #263f2c14)}.couple-biography{position:relative;isolation:isolate;min-width:0;padding:28px 0}.couple-watermark{position:absolute;z-index:-1;top:-48px;right:-12px;color:#71815d20;font-family:"Invitation Guest",var(--script);font-size:clamp(100px,12vw,165px);line-height:1.2;pointer-events:none}.couple-role-line{display:flex;align-items:center;gap:20px}.couple-role-line:after{content:"";width:110px;max-width:28%;height:1px;background:linear-gradient(90deg,var(--couple-gold),transparent)}.couple-role{color:var(--theme-primary);font-family:"Invitation Guest",var(--script);font-size:clamp(44px,5.5vw,62px);line-height:1.25}.couple-name{margin:10px 0 26px;color:var(--theme-deep);font-size:clamp(27px,3.1vw,38px);font-weight:400;line-height:1.45;text-wrap:balance}.couple-leaf-sprig{display:block;width:95px;height:auto;color:#6d8266}.couple-biography-leaf{position:absolute;top:14px;right:-30px;width:62px;transform:rotate(-36deg);opacity:.7}.couple-biography-copy{color:#454b42;font-size:clamp(16px,1.5vw,18px);line-height:1.85}.couple-biography-copy p+p{margin-top:14px}.couple-personal-quote{margin:24px 0 0;padding-top:18px;border-top:1px solid #b8905066;color:var(--theme-primary);font-size:clamp(16px,1.5vw,18px);font-style:italic;line-height:1.85}.couple-profile.is-bride .couple-photo-composition{grid-column:2;grid-row:1}.couple-profile.is-bride .couple-biography{grid-column:1;grid-row:1}.couple-profile.is-bride .couple-photo-composition:before{left:auto;right:-34px}.couple-profile.is-bride .couple-photo-botanical{left:auto;right:-56px;transform:scaleX(-1)}.couple-profile.is-bride .couple-watermark{top:auto;bottom:-44px;right:0}.couple-closing{position:relative;z-index:1;width:min(100%,850px);margin:68px auto 0;text-align:center}.couple-closing-quote{position:relative;margin:26px 28px 16px;color:#3e5142;font-size:clamp(16px,1.7vw,20px);font-style:italic;line-height:1.8;text-wrap:balance}.couple-closing-quote:before,.couple-closing-quote:after{position:absolute;color:var(--couple-gold);font:64px/1 Georgia,serif}.couple-closing-quote:before{content:"“";top:-8px;left:-28px}.couple-closing-quote:after{content:"”";bottom:-24px;right:-28px}.couple-closing>.couple-leaf-sprig{margin:18px auto 0}.couple-footer-botanical{position:absolute;bottom:-30px;width:210px;height:auto;pointer-events:none;opacity:.85}.couple-footer-botanical-left{left:-45px}.couple-footer-botanical-right{right:-40px;bottom:-130px;width:165px;transform:scaleX(-1)}@media(max-width:760px){.couple-banner{padding:30px 24px 38px;border-bottom-left-radius:50% 28px;border-bottom-right-radius:50% 28px}.couple-banner h2{font-size:clamp(22px,5.7vw,30px)}.couple-rings-rule{gap:16px}.couple-rings-rule:before,.couple-rings-rule:after{width:64px}.couple-editorial{padding:44px 24px 40px}.couple-profile-inner{grid-template-columns:minmax(0,1fr);gap:32px}.couple-photo-composition{width:min(82%,320px)}.couple-photo-composition:before{left:-18px;top:24px;bottom:-12px}.couple-photo-botanical{width:126px;left:-34px;bottom:-20px}.couple-biography{padding:4px 0 0}.couple-watermark{top:-20px;right:0;font-size:105px}.couple-role{font-size:49px}.couple-name{font-size:clamp(26px,6.5vw,32px);margin:8px 0 20px}.couple-biography-copy,.couple-personal-quote{font-size:16px}.couple-biography-leaf{right:0;top:10px;width:48px}.couple-profile+.couple-profile{margin-top:52px}.couple-profile.is-bride .couple-photo-composition,.couple-profile.is-bride .couple-biography{grid-column:auto;grid-row:auto}.couple-profile.is-bride .couple-photo-composition:before{right:-18px}.couple-profile.is-bride .couple-photo-botanical{right:-34px}.couple-profile.is-bride .couple-watermark{bottom:-42px}.couple-closing{margin-top:60px}.couple-closing-quote{margin-inline:14px;font-size:16px}.couple-closing-quote:before{left:-18px;font-size:48px}.couple-closing-quote:after{right:-18px;font-size:48px}.couple-footer-botanical{width:110px;bottom:-20px;opacity:.6}.couple-footer-botanical-left{left:-45px}.couple-footer-botanical-right{right:-32px;bottom:-85px;width:85px}}.wedding-romantic-section{position:relative;isolation:isolate;overflow:hidden;padding:clamp(56px,6vw,92px) 0;background:var(--paper);color:var(--wine)}.wedding-section-decor{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.romantic-corner{position:absolute;width:clamp(140px,19vw,300px);height:auto;opacity:.45;color:var(--gold-light)}.romantic-corner-top{top:-40px;right:-20px}.romantic-corner-bottom{bottom:-50px;left:-20px;transform:rotate(180deg)}.wedding-family-section .romantic-corner{opacity:.2}.romantic-petals .hero-petal{width:6px;height:10px;background:rgba(var(--theme-accent-rgb),.4)}.wedding-romantic-section.petals-active .hero-petal{animation-play-state:running}.family-container{width:min(100% - 40px,940px);margin:auto}.family-heading{margin-bottom:42px;text-align:center}.family-heading>.icon{width:52px;height:52px;margin:0 auto 16px;color:var(--gold-dark)}.family-heading h2{color:var(--wine);font:400 clamp(48px,7vw,84px)/1.2 "Cormorant Garamond",serif;text-wrap:balance}.family-heading>p{margin-top:12px;font-size:var(--text-body);line-height:1.8;text-wrap:balance;color:var(--muted)}.wedding-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 36px}.family-portrait{min-width:0;text-align:center}.family-portrait-groom{grid-column:1;grid-row:1}.family-portrait-bride{grid-column:2;grid-row:1}.family-portrait>div{aspect-ratio:3 / 4;overflow:hidden;border:6px solid white;border-radius:var(--radius-md);background:var(--theme-cream);box-shadow:var(--shadow-md)}.family-portrait img{width:100%;height:100%;object-fit:contain}.family-portrait figcaption{margin-top:18px;color:var(--wine);font:400 clamp(32px,4.5vw,52px)/1.3 "Cormorant Garamond",serif;font-style:italic;overflow-wrap:anywhere}.wedding-family-card{display:flex;flex-direction:column;min-width:0;padding:28px 24px;border:1px solid rgba(var(--theme-ornament-rgb),.4);border-radius:var(--radius-sm);background:var(--paper);box-shadow:var(--shadow-sm);text-align:center}.family-info-groom{grid-column:1;grid-row:2}.family-info-bride{grid-column:2;grid-row:2}.wedding-family-section[data-first-side=bride] :is(.family-portrait-bride,.family-info-bride){grid-column:1}.wedding-family-section[data-first-side=bride] :is(.family-portrait-groom,.family-info-groom){grid-column:2}.wedding-family-card h3{margin-bottom:16px;color:var(--wine);font:400 var(--text-small)/1.7 var(--sans);letter-spacing:.18em;text-transform:uppercase}.wedding-family-card p{margin:6px 0;font-size:var(--text-body);line-height:1.8;overflow-wrap:anywhere}.wedding-family-card strong{font-weight:500;color:var(--wine);font-size:19px}.wedding-family-card .family-address{margin-top:auto;padding-top:20px;border-top:1px solid rgba(var(--theme-ornament-rgb),.25);color:var(--muted);font-size:var(--text-small);line-height:1.7}.wedding-family-card p:nth-last-child(2){margin-bottom:22px}.wedding-events-container{width:min(100% - 48px,1200px);margin:auto}.wedding-events-header{max-width:840px;margin:0 auto 38px;text-align:center}.events-heading-icon{width:60px;height:60px;margin:auto;color:var(--wine);stroke-width:1.1}.wedding-events-header h2{margin:16px 0 0;color:var(--wine);font:400 clamp(36px,5vw,68px)/1.2 "Cormorant Garamond",serif;text-wrap:balance}.events-welcome{margin-top:10px;color:var(--wine);font:400 clamp(36px,4.5vw,54px)/1.4 "Cormorant Garamond",serif;font-style:italic;text-wrap:balance}.events-heart-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px auto;color:var(--gold-dark)}.events-heart-divider span{width:80px;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--theme-ornament-rgb),.8))}.events-heart-divider span:last-child{transform:rotate(180deg)}.events-heart-divider svg{width:18px;height:18px;stroke-width:1.2}.events-introduction{max-width:680px;margin:auto;font-size:var(--text-body);line-height:1.8;text-wrap:balance;color:var(--muted)}.wedding-events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:28px}.wedding-event-card{display:grid;grid-template-columns:minmax(0,36fr) minmax(0,64fr);gap:22px;min-width:0;padding:18px;border:1px solid rgba(var(--theme-ornament-rgb),.5);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition)}.wedding-event-card:hover{box-shadow:var(--shadow-md);border-color:rgba(var(--theme-ornament-rgb),.8)}.wedding-event-photo{min-height:320px;overflow:hidden;border-radius:var(--radius-sm);transition:transform var(--transition)}.wedding-event-photo img{width:100%;height:100%;object-fit:cover}.wedding-event-content{display:flex;flex-direction:column;min-width:0}.wedding-event-heading{display:flex;gap:12px;align-items:center;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(var(--theme-ornament-rgb),.3)}.wedding-event-heading>svg{width:30px;height:30px;color:var(--gold-dark);flex-shrink:0;stroke-width:1.3}.wedding-event-heading h3{color:var(--wine);font:400 clamp(26px,2.3vw,34px)/1.2 "Cormorant Garamond",serif;overflow-wrap:anywhere}.wedding-event-heading p{margin-top:6px;color:var(--muted);font:300 10px/1.6 var(--sans);text-transform:uppercase;letter-spacing:.15em}.wedding-event-details{display:grid;gap:12px;margin-bottom:24px}.wedding-event-details p{display:flex;gap:12px;color:var(--ink);font-size:clamp(16px,1.3vw,18px);line-height:1.7}.wedding-event-details svg{width:22px;height:22px;margin-top:3px;flex-shrink:0;color:var(--gold-dark)}.wedding-event-details span,.wedding-event-details time{min-width:0;overflow-wrap:anywhere}.wedding-event-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto}.wedding-event-actions .button{flex:1 1 130px;gap:8px;min-height:50px;padding:10px 8px;font-size:11px;letter-spacing:.08em}.wedding-event-actions svg{width:18px;height:18px;flex-shrink:0}.event-calendar-pending{margin-top:12px;font-size:var(--text-caption);line-height:1.7;color:var(--muted);font-family:Cormorant Garamond,serif;font-style:italic}.wedding-events-footer{max-width:680px;margin:32px auto 0;text-align:center}.wedding-events-footer p{color:var(--wine);font:400 clamp(22px,2.5vw,30px)/1.7 "Cormorant Garamond",serif;font-style:italic;text-wrap:balance}@media(hover:hover)and (prefers-reduced-motion:no-preference){.wedding-event-card{transition:translate .25s,box-shadow .25s}.wedding-event-card:hover{translate:0 -4px}}@media(min-width:701px)and (max-width:1100px){.wedding-event-card{grid-template-columns:1fr}.wedding-event-photo{height:200px;min-height:0}}@media(max-width:700px){.wedding-events-container{width:calc(100% - 32px)}.wedding-events-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:20px}.wedding-event-card{grid-template-columns:1fr;gap:20px;padding:16px}.wedding-event-photo{height:215px;min-height:0}.wedding-event-heading h3{font-size:27px}.family-container{width:calc(100% - 32px)}.wedding-family-grid{gap:18px 14px}.family-portrait>div{border-width:3px;border-radius:8px}.family-portrait figcaption{font-size:clamp(29px,7.5vw,40px)}.wedding-family-card{padding:21px 13px}.wedding-family-card p{font-size:17px}.wedding-family-card strong{display:block}.wedding-family-card .family-address{font-size:15px}}@media(max-width:380px){.wedding-family-section[data-first-side=bride] .family-info-bride{grid-column:1 / -1;grid-row:2}.wedding-family-section[data-first-side=bride] .family-info-groom{grid-column:1 / -1;grid-row:3}.family-info-groom{grid-column:1 / -1;grid-row:2}.family-info-bride{grid-column:1 / -1;grid-row:3}.wedding-family-card strong{display:inline}}@media(prefers-reduced-motion:reduce){.romantic-petals{display:none}.wedding-event-card,.wedding-event-photo{transition:none}}:is(#rsvp,#guestbook){--rsvp-gold:#bea16b;--rsvp-green:#204f43;position:relative;isolation:isolate;overflow:hidden;padding:48px 48px 64px;background:linear-gradient(#faf8f3bf,#faf8f3bf),url(/images/decorations/paper-grain.svg);color:var(--rsvp-green)}:is(#rsvp,#guestbook) .personalized-rsvp-card{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:clamp(40px,5vw,80px);width:min(100%,1280px);margin:auto;padding:0;border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:none}.rsvp-content{min-width:0}.rsvp-heading{text-align:center;margin-bottom:18px}:is(#rsvp,#guestbook) .rsvp-eyebrow{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 12px;color:#73846f;font-size:12px;line-height:1.6;letter-spacing:.24em;text-transform:uppercase}.rsvp-eyebrow span{width:22px;height:1px;background:#d3c7ac}:is(#rsvp,#guestbook) :is(#rsvp-title,#guestbook-title){position:relative;display:inline-block;margin:0;color:var(--rsvp-green);font:italic 400 clamp(36px,4vw,62px)/1.35 "Be Vietnam Pro",Arial,sans-serif;text-wrap:balance}:is(#rsvp,#guestbook) .rsvp-heading-heart{position:absolute;right:-48px;top:7px;width:40px;height:46px;color:#c7a05d;stroke-width:1;transform:rotate(16deg)}:is(#rsvp,#guestbook) .rsvp-welcome{max-width:590px;margin:14px auto 0;color:#7b8077;font-size:14px;line-height:1.8;text-wrap:pretty}.rsvp-heart-rule{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px auto 0;color:var(--rsvp-green)}.rsvp-heart-rule span{width:90px;height:1px;background:linear-gradient(90deg,transparent,#c8bb9e)}.rsvp-heart-rule span:last-child{transform:rotate(180deg)}.rsvp-heart-rule svg{width:12px;height:12px;stroke-width:1}:is(#rsvp,#guestbook) :is(.rsvp-controls,.rsvp-events,.rsvp-attendance,.rsvp-count,.rsvp-privacy){min-width:0;margin:0;padding:0;border:0}:is(#rsvp,#guestbook) .rsvp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:is(#rsvp,#guestbook) .rsvp-field,:is(#rsvp,#guestbook) .rsvp-attendance,:is(#rsvp,#guestbook) .rsvp-count{margin-bottom:12px}:is(#rsvp,#guestbook) .rsvp-field-label{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 8px;padding:0;color:var(--rsvp-green);font-size:14px;font-weight:600;line-height:1.5}.rsvp-field-label>svg{width:18px;height:18px;flex-shrink:0;stroke-width:1.8}:is(#rsvp,#guestbook) .rsvp-field-label>small{color:#87907e;font-size:10px;font-weight:400}:is(#rsvp,#guestbook) .rsvp-field-label>span{margin-left:-4px;color:#ba302b}:is(#rsvp,#guestbook) :is(.rsvp-name-input,textarea){display:block;width:100%;min-width:0;min-height:46px;padding:10px 16px;border:1px solid #d9dcd5;border-radius:6px;background:#ffffffdb;color:var(--rsvp-green);font-size:16px;line-height:1.5;box-shadow:none}:is(#rsvp,#guestbook) .rsvp-name-input[readonly]{color:#72796e}:is(#rsvp,#guestbook) textarea{min-height:88px;resize:vertical}:is(#rsvp,#guestbook) textarea::placeholder{color:#969b90}.rsvp-option-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}:is(#rsvp,#guestbook) .rsvp-choice{display:flex;align-items:center;gap:10px;min-height:56px;margin:0;padding:12px 14px;border:1px solid #d9dcd5;border-radius:6px;background:#ffffffc7;color:var(--rsvp-green);font-size:14px;line-height:1.6;cursor:pointer}:is(#rsvp,#guestbook) .rsvp-choice.chosen{background:#f0f3ec;border-color:#668776}:is(#rsvp,#guestbook) input:is([type=radio],[type=checkbox]){width:18px;height:18px;flex-shrink:0;margin:0;accent-color:var(--rsvp-green)}:is(#rsvp,#guestbook) .rsvp-count-stepper{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;gap:0;min-height:46px;border:1px solid #d9dcd5;border-radius:6px;overflow:hidden;background:#fff}:is(#rsvp,#guestbook) .rsvp-count-stepper button{min-height:44px;border:0;border-radius:0;background:#f0f2e9;color:var(--rsvp-green);font-size:24px;line-height:1}:is(#rsvp,#guestbook) .rsvp-count-stepper input{width:100%;min-width:0;min-height:44px;padding:8px;border:0;border-inline:1px solid #e4e7de;border-radius:4px;background:#fff;color:var(--rsvp-green);text-align:center;font-size:17px}:is(#rsvp,#guestbook) .rsvp-count small{display:block;margin-top:4px;color:#7a8174;font-size:12px;line-height:1.6}:is(#rsvp,#guestbook) .rsvp-event-picker{border:1px solid #d9dcd5;border-radius:6px;background:#ffffffdb}:is(#rsvp,#guestbook) .rsvp-event-picker summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 16px;font-size:14px;line-height:1.6;list-style:none;cursor:pointer}:is(#rsvp,#guestbook) .rsvp-event-picker summary::-webkit-details-marker{display:none}:is(#rsvp,#guestbook) .rsvp-event-picker summary>svg{width:18px;height:18px;flex-shrink:0;transition:transform .2s}:is(#rsvp,#guestbook) .rsvp-event-picker[open] summary>svg{transform:rotate(180deg)}:is(#rsvp,#guestbook) .rsvp-events{padding:0 12px 12px}:is(#rsvp,#guestbook) .rsvp-events>p{margin:0 0 8px;color:#7a8174;font-size:12px}:is(#rsvp,#guestbook) .rsvp-event-choice{display:flex;align-items:center;gap:10px;margin-top:8px;padding:10px;border:1px solid #e0e4da;border-radius:5px;cursor:pointer}:is(#rsvp,#guestbook) .rsvp-event-choice.chosen{background:#f0f3ec;border-color:#668776}:is(#rsvp,#guestbook) .rsvp-event-choice>span{min-width:0}:is(#rsvp,#guestbook) .rsvp-event-choice strong{display:block;font-size:14px;font-weight:500;line-height:1.6}:is(#rsvp,#guestbook) .rsvp-event-choice :is(time,small){display:block;margin-top:2px;color:#7a8174;font-size:11px;line-height:1.6}:is(#rsvp,#guestbook) .rsvp-wish-counter{display:block;margin-top:3px;color:#748171;font-size:11px;line-height:1.5;text-align:right}:is(#rsvp,#guestbook) .rsvp-privacy-choice{position:relative;gap:10px;min-height:68px;padding:10px 12px}:is(#rsvp,#guestbook) .rsvp-privacy-choice input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}:is(#rsvp,#guestbook) .rsvp-privacy-choice>svg{width:20px;height:20px;flex-shrink:0;color:#8c9a88}:is(#rsvp,#guestbook) .rsvp-privacy-choice.chosen>svg{color:var(--rsvp-green)}:is(#rsvp,#guestbook) .rsvp-privacy-choice:focus-within{outline:2px solid #668776;outline-offset:2px}:is(#rsvp,#guestbook) .rsvp-privacy-choice strong{display:block;font-size:13px;line-height:1.5;font-weight:500}:is(#rsvp,#guestbook) .rsvp-privacy-choice small{display:block;margin-top:2px;color:#6d7d69;font-size:10px;line-height:1.5}:is(#rsvp,#guestbook) .rsvp-submit{width:100%;min-height:50px;margin-top:16px;padding:12px 16px;gap:10px;border:1px solid #254f42;border-radius:6px;background:#254f42;color:#fffdf8;box-shadow:none;font-size:16px;line-height:1.5;font-weight:600;letter-spacing:0;text-transform:none}:is(#rsvp,#guestbook) .rsvp-submit:hover:not(:disabled){background:#346653}:is(#rsvp,#guestbook) .rsvp-submit>svg{width:19px;height:19px}:is(#rsvp,#guestbook) .rsvp-save-note{margin:8px 0 0;color:#87907e;font-size:11px;line-height:1.7}:is(#rsvp,#guestbook) button:disabled,:is(#rsvp,#guestbook) input:disabled{cursor:default}:is(#rsvp,#guestbook) .rsvp-submit:disabled{opacity:.6}:is(#rsvp,#guestbook) .rsvp-count:disabled .rsvp-count-stepper{opacity:.55}:is(#rsvp,#guestbook) .rsvp-verification{margin-bottom:18px;padding:12px 16px;border:1px solid #d6d7c8;border-radius:8px;background:#f0f2e8;color:#5b6656;font-size:14px;line-height:1.7}:is(#rsvp,#guestbook) .rsvp-verification .button{margin-top:10px}:is(#rsvp,#guestbook) .rsvp-success,:is(#rsvp,#guestbook) .rsvp-error{margin-top:14px;font-size:14px;line-height:1.8}:is(#rsvp,#guestbook) .rsvp-success:empty{display:none}:is(#rsvp,#guestbook) .rsvp-error{color:#9b3c2f}:is(#rsvp,#guestbook) .rsvp-refresh{min-height:44px;padding:6px 0;border:0;background:transparent;text-decoration:underline;color:var(--rsvp-green);font-size:14px}:is(#rsvp,#guestbook) .rsvp-decline{display:flex;align-items:flex-start;gap:10px;margin:10px 0 18px;color:#68745f;font-size:14px;line-height:1.7}:is(#rsvp,#guestbook) .rsvp-decline svg{width:18px;height:18px;flex-shrink:0}.rsvp-photo-panel{position:relative;min-width:0;padding-top:10px}.rsvp-photo-composition{position:relative;margin-inline:10px}.rsvp-photo-frame{position:relative;width:100%;aspect-ratio:4/5;padding:7px;border:1px solid #c8a96a;border-radius:2px;background:#fffcf4}:is(#rsvp,#guestbook) .rsvp-portrait{display:block;width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 45%;border-radius:0}:is(#rsvp,#guestbook) .rsvp-photo-floral-top,:is(#rsvp,#guestbook) .rsvp-photo-floral-bottom{position:absolute;z-index:2;width:clamp(110px,13vw,180px);height:auto;pointer-events:none}:is(#rsvp,#guestbook) .rsvp-photo-floral-top{top:-58px;left:-68px;transform:rotate(-15deg)}:is(#rsvp,#guestbook) .rsvp-photo-floral-bottom{bottom:-48px;right:-60px;transform:rotate(165deg)}.rsvp-signing-panel{position:relative;margin-top:8px;padding:28px 24px 20px;border:1px solid #e2d6c2;border-radius:0 0 24px 24px;background:#ffffffdb;text-align:center}:is(#rsvp,#guestbook) .rsvp-signing-note{display:block;width:fit-content;margin:0 auto 16px;padding:5px 14px;border:1px solid #eadcc0;border-radius:999px;background:#fffcf4;color:#9c824d;font-size:12px;line-height:1.7}.rsvp-sign-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 28px;border:0;border-radius:999px;background:#a90f21;color:#fff;font-size:16px;line-height:1.5;box-shadow:0 7px 18px #8a14242b}.rsvp-sign-button:hover:not(:disabled){background:#8f0e1c}.rsvp-sign-button>svg{width:19px;height:19px}.rsvp-sign-button:disabled{opacity:.55}.rsvp-signing-steps{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;padding:0;margin:20px 0 0;list-style:none;color:#b99a98;font-size:11px}.rsvp-signing-steps li{display:flex;align-items:center;gap:5px}.rsvp-signing-steps span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f4e6e5;color:#ad484d}.rsvp-signing-steps span svg{width:12px;height:12px}.rsvp-signing-steps .active,.rsvp-signing-steps .done{color:#9e2635}:is(#rsvp,#guestbook) .rsvp-signature-note{margin:14px auto 0;max-width:340px;color:#909386;font-size:10px;line-height:1.8}.rsvp-photo-signature{position:absolute;z-index:1;width:36%;transform:translate(-50%,-50%);pointer-events:none;color:#fff;filter:drop-shadow(0 1px 2px rgb(0 0 0 / 75%))}.wedding-signature-art{display:block;width:100%;height:auto;aspect-ratio:3/1;fill:none}.wedding-signature-art path,.signature-pad path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.rsvp-signature-place{position:absolute;z-index:3;top:7px;right:7px;bottom:7px;left:7px;display:flex;align-items:flex-start;justify-content:center;padding:16px;border:2px dashed #e1c07c;background:transparent;cursor:crosshair}.rsvp-signature-place span{padding:5px 12px;border-radius:20px;background:#fff9e8;color:#796437;font-size:12px}.rsvp-signature-actions,.rsvp-signature-presets{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;margin-top:14px}.rsvp-signature-actions button,.rsvp-signature-presets button{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:4px;border:0;background:transparent;color:#65725c;font-size:12px;text-decoration:underline}.rsvp-signature-actions svg{width:14px;height:14px}.rsvp-signature-presets button{padding:5px 10px;border:1px solid #ddd4be;border-radius:5px;text-decoration:none}.rsvp-section-florals{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}:is(#rsvp,#guestbook) .rsvp-corner{position:absolute;width:clamp(150px,19vw,270px);height:auto;opacity:.7}:is(#rsvp,#guestbook) .rsvp-corner-top-left{left:-74px;top:-96px;transform:rotate(165deg)}:is(#rsvp,#guestbook) .rsvp-corner-top-right{right:-90px;top:-16px;transform:rotate(135deg)}:is(#rsvp,#guestbook) .rsvp-corner-bottom-left{left:-112px;bottom:-100px}:is(#rsvp,#guestbook) .rsvp-corner-bottom-right{right:-112px;bottom:-100px;transform:scaleX(-1)}:is(#rsvp,#guestbook) :is(input,textarea,button,summary):focus-visible{outline:2px solid var(--rsvp-green);outline-offset:3px}html:has(.signature-dialog[open]){overflow:hidden}.signature-dialog{width:min(520px,calc(100% - 28px));max-height:calc(100dvh - 32px);margin:auto;padding:26px;border:1px solid #e1cdca;border-radius:14px;background:#fffdfb;color:#493f3a;text-align:left;overscroll-behavior:contain}.signature-dialog::backdrop{background:#0a1e15a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.signature-dialog-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:#49604c}.signature-dialog-close>svg{width:22px;height:22px}.signature-dialog-icon{width:26px;height:26px;margin:0 auto 10px;color:#a78a52}.signature-dialog h2{margin:0 0 12px;font:600 20px/1.5 Be Vietnam Pro,Arial,sans-serif}.signature-wizard-controls{min-width:0;margin:0;padding:0;border:0}.signature-wizard-steps{display:flex;gap:32px;margin:0 0 26px;padding:0;list-style:none}.signature-wizard-steps li{position:relative}.signature-wizard-steps li+li:before{content:"";position:absolute;top:16px;right:calc(100% + 5px);width:22px;border-top:1px solid #dcd9d4}.signature-wizard-steps li>span:first-child{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e5e3e0;color:#8e7d73;font-size:14px;font-weight:600}.signature-wizard-steps .active>span:first-child{background:#9b101d;color:#fff}.signature-wizard-steps .done>span:first-child{background:#d9b9b8;color:#7c1721}.signature-step-hint{display:flex;align-items:flex-start;gap:7px;margin:0 0 14px;color:#997d78;font-size:12px;line-height:1.7}.signature-step-hint svg{width:16px;height:16px;flex-shrink:0;margin-top:2px}.signature-wizard-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.signature-wizard-actions .signature-confirm{width:auto;padding-inline:20px;background:#9b101d}.signature-secondary{min-height:46px;padding:10px 16px;border:1px solid #e6dfd9;border-radius:7px;background:#fff;color:#645853;font-size:14px}.signature-position-photo{position:relative;width:min(100%,42dvh);aspect-ratio:4/5;margin-inline:auto;overflow:hidden;border-radius:10px;background:#eee9dd}.signature-position-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 45%;-webkit-user-select:none;user-select:none}.signature-draggable{position:absolute;padding:5px;transform:translate(-50%,-50%);border:1px solid #a92732;border-radius:5px;background:#ffffffa6;color:#161616;touch-action:none;cursor:move}.signature-draggable:focus-visible{outline:2px solid #9b101d;outline-offset:2px}.signature-size-label{display:flex;justify-content:space-between;gap:12px;margin-top:16px;color:#997d78;font-size:13px}.signature-size-label output{color:#493f3a}.signature-size{width:100%;margin-top:12px;accent-color:#9b101d}.signature-dialog .signature-pad{border:1px dashed #d5a5a6;background:#fff;color:#161616}.signature-dialog>p{margin:10px auto 20px;color:#79806e;font-size:13px;line-height:1.8}.signature-pad{position:relative;overflow:hidden;margin-top:18px;border:1px solid #d9d4c5;border-radius:8px;background:repeating-linear-gradient(transparent,transparent calc(100% - 35px),#e8e6dd calc(100% - 34px),transparent calc(100% - 33px)),#fff;color:#254f42}.signature-pad>svg{display:block;width:100%;aspect-ratio:3/1;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair}.signature-pad-placeholder{position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);color:#bbc0b2;font:400 34px/1.5 The Nautigal,cursive;pointer-events:none}.signature-edit-actions{display:flex;justify-content:flex-start;gap:22px;margin-top:14px}.signature-edit-actions button{display:flex;align-items:center;gap:6px;min-height:36px;padding:4px;border:0;background:transparent;color:#5c6e58;font-size:13px}.signature-edit-actions svg{width:16px;height:16px}.signature-edit-actions button:disabled{opacity:.4}.signature-dialog .signature-pad-status{min-height:18px;margin:8px 0;font-size:12px;color:#937235}.signature-confirm{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;padding:10px;border:0;border-radius:6px;background:#254f42;color:#fff;font-size:15px}.signature-confirm>svg{width:18px;height:18px}.signature-confirm:disabled{opacity:.4}.signature-dialog .signature-save-note{margin-bottom:0;font-size:11px}.signature-dialog button:focus-visible{outline:2px solid #a78a52;outline-offset:3px}.guestbook-inner{text-align:center}.guestbook-heading{max-width:670px;margin:0 auto 28px}.guestbook-heading>.rsvp-flower{display:block;width:130px;height:52px;margin:0 auto 14px}.guestbook-heading .section-intro{margin:12px auto 0}.guestbook-wishes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.guestbook-wish{min-width:0;padding:26px;border:1px solid #ded8c6;border-radius:12px;background:#fffdf8;color:#35523d;text-align:left}.guestbook-wish>.icon{width:18px;height:18px;margin-bottom:12px;color:#b5a170;stroke-width:1}.guestbook-wish>p{margin:0 0 18px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.9}.guestbook-wish>strong{display:block;font-size:14px;font-weight:500}.guestbook-wish>time{display:block;margin-top:4px;color:#8a8b79;font-size:11px}.guestbook-signature{width:160px;margin:0 0 12px}.guestbook-notice{margin:20px auto;max-width:600px;color:#7b8170;font-size:15px;line-height:1.8}.guestbook-notice .button{margin-top:12px}.guestbook-write{margin-top:28px}.admin-wish{max-width:620px;margin-top:16px;padding:16px;border:1px solid #d6ddcb;border-radius:8px;background:#f7f8f1}.admin-wish>p{white-space:pre-wrap;overflow-wrap:anywhere}.admin-wish>small{display:block;margin-bottom:8px;color:#617253}.admin-wish .wedding-signature-art{width:190px;color:#254f42}@media(max-width:1050px)and (min-width:761px){:is(#rsvp,#guestbook){padding:54px 30px 64px}:is(#rsvp,#guestbook) .personalized-rsvp-card{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}:is(#rsvp,#guestbook) :is(#rsvp-title,#guestbook-title){font-size:38px}:is(#rsvp,#guestbook) .rsvp-heading-heart{width:28px;right:-30px}:is(#rsvp,#guestbook) .rsvp-choice{padding:10px;gap:7px;font-size:12px}:is(#rsvp,#guestbook) .rsvp-privacy-choice strong{font-size:12px}:is(#rsvp,#guestbook) .rsvp-photo-floral-top{width:120px;left:-44px;top:-40px}:is(#rsvp,#guestbook) .rsvp-photo-floral-bottom{width:120px;right:-35px;bottom:-28px}.rsvp-signing-panel{padding-inline:14px}}@media(max-width:760px){:is(#rsvp,#guestbook){padding:48px 22px 58px}:is(#rsvp,#guestbook) .personalized-rsvp-card{grid-template-columns:1fr;gap:40px;max-width:570px}:is(#rsvp,#guestbook) :is(#rsvp-title,#guestbook-title){font-size:clamp(31px,7.6vw,43px)}:is(#rsvp,#guestbook) .rsvp-heading-heart{position:static;display:inline-block;width:27px;height:31px;margin-left:8px;vertical-align:middle}:is(#rsvp,#guestbook) .rsvp-welcome{font-size:13px}:is(#rsvp,#guestbook) .rsvp-field-label{font-size:13px}:is(#rsvp,#guestbook) .rsvp-choice{padding:10px;min-height:64px;gap:7px;font-size:12px}:is(#rsvp,#guestbook) .rsvp-privacy-choice{min-height:80px}:is(#rsvp,#guestbook) .rsvp-privacy-choice strong{font-size:12px}:is(#rsvp,#guestbook) .rsvp-privacy-choice small{font-size:10px}.rsvp-option-grid{gap:8px}.rsvp-photo-panel{width:calc(100% - 12px);margin:auto;padding-top:10px}:is(#rsvp,#guestbook) .rsvp-photo-floral-top{width:120px;left:-40px;top:-40px}:is(#rsvp,#guestbook) .rsvp-photo-floral-bottom{width:120px;right:-38px;bottom:-32px}.rsvp-signing-panel{padding:24px 14px 18px}.rsvp-signing-steps{gap:8px;font-size:10px}.signature-dialog{padding:26px 18px 20px}.signature-dialog h2{font-size:22px}.signature-pad-placeholder{font-size:27px}.guestbook-wishes{grid-template-columns:1fr}:is(#rsvp,#guestbook) .rsvp-corner{width:175px;opacity:.5}}@media(min-width:761px){#guestbook .rsvp-photo-panel{width:100%;padding-top:0}#guestbook .rsvp-photo-composition{margin-inline:0}#guestbook .rsvp-content,#guestbook-form,#guestbook-form .rsvp-controls,#guestbook .rsvp-message-field{display:flex;flex-direction:column}#guestbook-form,#guestbook-form .rsvp-controls,#guestbook .rsvp-message-field{flex:1}#guestbook textarea{flex:1;min-height:160px}}#rsvp.rsvp-centered{padding-block:64px 72px}#rsvp.rsvp-centered .personalized-rsvp-card{display:block;max-width:740px}#rsvp.rsvp-centered #rsvp-title,#guestbook #guestbook-title{font-family:The Nautigal,cursive;font-size:clamp(60px,7vw,94px);line-height:1.2;font-style:normal}#rsvp.rsvp-centered .rsvp-welcome{max-width:660px;font-size:16px}#rsvp.rsvp-centered .rsvp-heading{margin-bottom:30px}#rsvp.rsvp-centered .rsvp-submit{border-color:#c5a465;border-radius:12px;min-height:56px;font-size:20px}#rsvp .rsvp-thank-you{display:flex;align-items:flex-start;justify-content:center;gap:10px;margin:22px auto 0;max-width:680px;color:#8b8171;font-size:12px;line-height:1.8;text-align:center}.rsvp-thank-you svg{width:16px;height:16px;flex-shrink:0;margin-top:3px;color:#bea16b;fill:currentColor}@media(max-width:760px){#rsvp.rsvp-centered{padding:48px 22px 56px}#rsvp.rsvp-centered #rsvp-title,#guestbook #guestbook-title{font-size:clamp(49px,12vw,68px)}#rsvp.rsvp-centered .rsvp-welcome{font-size:14px}}.wedding-admin{min-height:100dvh;max-width:1200px;padding:40px 24px;margin:auto;color:var(--theme-muted)}.wedding-admin header{margin-bottom:26px}.wedding-admin h1{font-size:clamp(28px,4vw,44px);color:var(--theme-primary);line-height:1.4}.wedding-admin h2{font-size:25px;color:var(--theme-primary);margin-bottom:20px}.admin-panel{margin:24px 0;padding:24px;background:#fff;border:1px solid rgba(var(--theme-accent-rgb),.1882);border-radius:12px}.admin-login{max-width:440px;margin:40px auto}.wedding-admin label{display:block;font-size:16px;margin-bottom:14px}.wedding-admin input:not([type=checkbox]),.wedding-admin select{width:100%;min-height:46px;display:block;margin-top:6px;padding:10px;border:1px solid rgba(var(--theme-ornament-rgb),.3765);border-radius:6px;background:var(--theme-paper);font-size:16px;color:var(--theme-muted)}.wedding-admin fieldset{border:0;padding:0;min-width:0}.admin-editor fieldset{display:grid;grid-template-columns:2fr 1fr;gap:16px}.admin-event-permissions,.admin-check{grid-column:1/-1}.admin-event-permissions{display:grid;grid-template-columns:1fr 1fr}.admin-event-permissions h3{grid-column:1/-1;margin-bottom:12px}.admin-event-permissions label,.admin-check{display:flex!important;align-items:center;gap:10px;min-height:44px}.wedding-admin input[type=checkbox]{width:20px;height:20px;accent-color:var(--theme-primary)}.admin-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.admin-toolbar button:not(.button),.admin-delete button{min-height:44px;padding:8px 14px;border:1px solid rgba(var(--theme-accent-rgb),.251);background:var(--theme-cream);color:var(--theme-primary);border-radius:6px;cursor:pointer;font-size:15px}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}.admin-stats div{padding:20px;background:var(--theme-cream);border-radius:10px;text-align:center}.admin-stats strong{display:block;font-size:32px;color:var(--theme-primary)}.admin-stats span{display:block;font-size:15px;line-height:1.5}.admin-filters{display:flex;gap:20px}.admin-filters label{flex:1}.admin-guests article{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid rgba(var(--theme-accent-rgb),.1255)}.admin-guests h3{color:var(--theme-primary);font-size:22px}.admin-guests p,.admin-link p{font-size:15px;line-height:1.7}.admin-delete{flex-basis:100%;padding:14px;background:var(--theme-cream)}.admin-delete button{margin:8px 8px 0 0}.admin-message{position:sticky;bottom:16px;background:var(--theme-cream);color:var(--theme-primary);line-height:1.7;border-radius:8px}.admin-message:not(:empty){padding:14px;border:1px solid rgba(var(--theme-ornament-rgb),.3137)}.admin-loading{text-align:center;padding:40px}@media(max-width:600px){.personalized-rsvp-card{padding:24px 18px}.rsvp-recipient strong{font-size:21px}.rsvp-choice{font-size:16px}.wedding-admin{padding:24px 16px}.admin-panel{padding:18px}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-editor fieldset,.admin-event-permissions{grid-template-columns:1fr}.admin-filters{flex-direction:column;gap:0}}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-Medium.ttf) format("truetype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-SemiBold.ttf) format("truetype");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-Bold.ttf) format("truetype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-Italic.ttf) format("truetype");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-MediumItalic.ttf) format("truetype");font-style:italic;font-weight:500;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-SemiBoldItalic.ttf) format("truetype");font-style:italic;font-weight:600;font-display:swap}@font-face{font-family:Be Vietnam Pro;src:url(/fonts/text/be-vietnam-pro/BeVietnamPro-BoldItalic.ttf) format("truetype");font-style:italic;font-weight:700;font-display:swap}:is(#our-story,#couple,#wedding-film,#our-love,#welcome,#families,#events,#rsvp,#gallery,#gifts,#guestbook,#thank-you),:is(#gift-dialog,#photo-dialog,.wedding-film-dialog){--serif: "Be Vietnam Pro", Arial, sans-serif;--sans: "Be Vietnam Pro", Arial, sans-serif;font-family:var(--serif);font-weight:500}:is(#our-story,#couple,#wedding-film,#our-love,#welcome,#families,#events,#rsvp,#gallery,#gifts,#guestbook,#thank-you) :where(:not(.script,.script *)),:is(#gift-dialog,#photo-dialog,.wedding-film-dialog) :where(:not(.script,.script *)){font-family:Be Vietnam Pro,Arial,sans-serif}#families :is(.family-heading h2,.family-portrait figcaption),#events .events-welcome{font-family:Be Vietnam Pro,Arial,sans-serif}:is(#our-story,#couple,#our-love) :is(#story-title,#couple-title,#our-love-title){font-family:The Nautigal,cursive;font-style:normal;font-weight:400;letter-spacing:0;line-height:1.25;text-transform:none;text-wrap:balance;padding:.06em .12em}#our-story #story-title{font-size:clamp(52px,5.2vw,72px)}#couple #couple-title,#our-love #our-love-title{max-width:1000px;font-size:clamp(60px,6.6vw,88px)}@media(max-width:760px){#our-story #story-title{font-size:clamp(46px,11.5vw,60px)}#couple #couple-title,#our-love #our-love-title{font-size:clamp(46px,12vw,64px)}}:root{color-scheme:light;--theme-primary: #285A45;--theme-primary-rgb: 40, 90, 69;--theme-deep: #153C2F;--theme-deep-rgb: 21, 60, 47;--theme-mid: #3D725A;--theme-mid-rgb: 61, 114, 90;--theme-accent: #52765E;--theme-accent-rgb: 82, 118, 94;--theme-guest: #C71515;--theme-paper: #FDFEFC;--theme-paper-rgb: 253, 254, 252;--theme-cream: #EFF4EC;--theme-cream-rgb: 239, 244, 236;--theme-cream-deep: #E4EDE0;--theme-ink: #213B2D;--theme-muted: #536456;--theme-muted-rgb: 83, 100, 86;--theme-ornament: #9DB39D;--theme-ornament-rgb: 157, 179, 157;--theme-ornament-light: #E1E9D9;--theme-ornament-light-rgb: 225, 233, 217;--theme-ornament-dark: #526D51;--theme-line: #D7E3D3;--theme-line-light: #EBF1E7;--theme-overlay-rgb: 13, 34, 24;--theme-shadow-rgb: 21, 47, 37}.botanical-corner{display:none}:root[data-wedding-theme=green] .botanical-corner{display:block;opacity:.55}:root[data-wedding-theme=green] .wedding-family-section .botanical-corner{opacity:.3}:root[data-wedding-theme=green] .hero-petal{border-radius:0 85%;background:linear-gradient(135deg,rgba(var(--theme-accent-rgb),.45),rgba(var(--theme-deep-rgb),.25))}:root[data-wedding-theme=green] .love-rose>path:nth-child(2){fill:var(--theme-paper);stroke:var(--theme-ornament)}.wedding-floral{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.wedding-section-decor .romantic-corner{top:auto;bottom:-24px;width:clamp(130px,17vw,240px);height:auto;opacity:.85}.wedding-section-decor .romantic-corner-left{left:-42px;right:auto;transform:none}.wedding-section-decor .romantic-corner-right{right:-42px;left:auto;transform:scaleX(-1)}.wedding-section-decor .romantic-corner[data-floral=camellia]{width:clamp(100px,12vw,165px);bottom:-115px}.personalized-rsvp-card .romantic-corner{opacity:.4;width:150px}.personalized-rsvp-card .romantic-corner[data-floral=camellia]{width:105px;bottom:-80px}.invitation-paper-decor .invitation-paper-flower{top:auto;bottom:-12px;width:clamp(100px,18vw,150px);height:auto;opacity:.45}.invitation-paper-decor .bottom-left{left:-25px;transform:none}.invitation-paper-decor .bottom-right{right:-25px;transform:scaleX(-1)}.story-card .story-flower{width:100px;height:40px;margin:0 auto 16px}.family-heading>.wedding-floral{width:120px;height:48px}.rsvp-text .rsvp-flower{width:150px;height:60px}.love-transition .love-rose{width:125px;height:50px}.couple-closing>.couple-leaf-sprig{width:125px}.couple-biography-leaf{width:82px}@media(max-width:760px){.wedding-section-decor .romantic-corner{width:125px;bottom:-18px;opacity:.65}.wedding-section-decor .romantic-corner-left{left:-44px}.wedding-section-decor .romantic-corner-right{right:-44px}.wedding-section-decor .romantic-corner[data-floral=camellia]{width:85px;bottom:-80px}.personalized-rsvp-card .romantic-corner{opacity:.3}.invitation-paper-decor .invitation-paper-flower{width:100px;bottom:-10px;opacity:.35}}.journey-section{--journey-gold: #b89050;position:relative;isolation:isolate;overflow:hidden;padding:66px 24px 176px;background:#faf8f3;color:var(--theme-deep)}.journey-section:before{content:"";position:absolute;top:-162px;left:-92px;width:420px;height:225px;border:1px solid var(--journey-gold);border-radius:50%;background:linear-gradient(120deg,#426e54,var(--theme-deep));transform:rotate(-18deg)}.journey-section:after{content:"";position:absolute;z-index:-1;top:48px;left:-160px;width:310px;height:290px;border:1px solid #b8905026;border-radius:50%}.journey-inner{position:relative;z-index:2;width:min(100%,1120px);margin:auto}.journey-heading{text-align:center}.journey-eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--journey-gold);font-size:14px;line-height:1.6;letter-spacing:.13em}.journey-eyebrow:before,.journey-eyebrow:after{content:"";width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--journey-gold))}.journey-eyebrow:after{transform:rotate(180deg)}.journey-heading h2{margin:16px auto 6px;color:var(--theme-deep);font-size:clamp(25px,2.8vw,36px);line-height:1.5;font-weight:400;text-wrap:balance}.journey-subtitle{color:var(--theme-muted);font-size:clamp(16px,1.4vw,18px);line-height:1.7;text-wrap:balance}.journey-rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px auto 0;color:var(--journey-gold)}.journey-rule:before,.journey-rule:after{content:"";width:90px;height:1px;background:linear-gradient(90deg,transparent,currentColor)}.journey-rule:after{transform:rotate(180deg)}.journey-rule>svg{width:22px;height:22px;stroke-width:1.3}.journey-collage{position:relative;isolation:isolate;width:min(100% - 100px,940px);margin:52px auto 0}.journey-photo-grid{position:relative;z-index:2;display:grid;grid-template-columns:.9fr 1.2fr .9fr;align-items:end}.journey-photo{position:relative;margin:0;padding:7px;border-radius:5px;background:#fffefa;box-shadow:0 9px 24px #725b332b}.journey-photo img{width:100%;height:100%;object-fit:cover}.journey-photo-1{z-index:1;aspect-ratio:.92;transform:translate(24px,-4px) rotate(-7deg)}.journey-photo-2{z-index:3;aspect-ratio:1;transform:translateY(-12px) rotate(3deg)}.journey-photo-3{z-index:2;aspect-ratio:.98;transform:translate(-24px,10px) rotate(7deg)}.journey-story-label{position:absolute;top:-22px;right:-20px;z-index:3;color:var(--journey-gold);font-family:"Invitation Guest",var(--script);font-size:clamp(36px,4.2vw,55px);line-height:1.2;transform:rotate(-13deg)}.journey-collage-flowers{position:absolute;z-index:1;height:auto}.journey-collage-flowers-left{bottom:8px;left:-70px;width:150px;transform:rotate(-15deg)}.journey-collage-flowers-right{bottom:-42px;right:-74px;width:230px;transform:scaleX(-1) rotate(-8deg)}.journey-description{position:relative;max-width:650px;margin:32px auto 0;text-align:center;color:#3e5847;font-size:clamp(15px,1.35vw,17px);line-height:1.85;text-wrap:balance}.journey-description p+p{margin-top:3px}.journey-floral-rule{margin:14px auto 0;gap:10px}.journey-floral-rule .wedding-floral{width:66px;height:auto}.journey-floral-rule:before,.journey-floral-rule:after{width:74px}.journey-milestones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;width:min(100%,900px);padding:0;margin:24px auto 0;list-style:none}.journey-milestone{min-width:0;padding:18px 16px 20px;border:1px solid #b8905040;border-radius:12px;background:#fffefa80;text-align:center;box-shadow:0 5px 18px #82612d05}.journey-milestone-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 10px;border:1px solid #95b19d80;border-radius:50%;background:radial-gradient(circle at 35% 25%,#417457,var(--theme-deep));color:#fffef7;box-shadow:inset 0 0 0 3px #ffffff08}.journey-milestone-icon svg{width:31px;height:31px;stroke-width:1.15}.journey-milestone h3{margin:0 0 4px;font-size:17px;line-height:1.5;font-weight:400}.journey-milestone>p{max-width:145px;margin:auto;color:#4a6150;font-size:15px;line-height:1.6;text-wrap:balance}.journey-soft-leaves{position:absolute;z-index:0;height:auto;opacity:.2;filter:blur(3px)}.journey-soft-leaves-left{width:290px;left:-190px;top:40%;transform:rotate(65deg)}.journey-soft-leaves-right{width:260px;right:-140px;bottom:-50px;transform:rotate(-32deg)}.journey-bottom-wave{position:absolute;z-index:1;right:0;bottom:0;left:0;width:100%;height:145px;pointer-events:none}@media(max-width:760px){.journey-section{padding:48px 20px 105px}.journey-section:before{top:-195px;left:-150px}.journey-eyebrow{gap:8px;font-size:11px;letter-spacing:.09em}.journey-eyebrow:before,.journey-eyebrow:after{width:30px}.journey-heading h2{max-width:440px;margin-top:12px;font-size:clamp(24px,6.3vw,30px)}.journey-subtitle{font-size:15px}.journey-collage{width:100%;margin-top:42px}.journey-photo-grid{grid-template-columns:.8fr 1.5fr .8fr;align-items:center}.journey-photo{padding:4px;border-radius:3px}.journey-photo-1{transform:translate(10px) rotate(-8deg)}.journey-photo-2{transform:rotate(3deg)}.journey-photo-3{transform:translate(-10px) rotate(8deg)}.journey-story-label{top:-24px;right:8px;font-size:32px}.journey-collage-flowers-left{width:70px;left:-22px;bottom:-5px}.journey-collage-flowers-right{width:100px;right:-24px;bottom:-22px}.journey-description{margin-top:28px;font-size:15px}.journey-description p+p{margin-top:8px}.journey-milestones{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.journey-milestone{padding:16px 10px;border-radius:10px}.journey-milestone-icon{width:50px;height:50px}.journey-milestone-icon svg{width:28px;height:28px}.journey-milestone h3{font-size:14px}.journey-milestone>p{font-size:14px}.journey-soft-leaves-left{left:-220px;opacity:.12}.journey-soft-leaves-right{right:-190px;opacity:.12}.journey-bottom-wave{height:82px}}.wedding-welcome{position:relative;isolation:isolate;display:grid;align-items:center;min-height:860px;padding:88px 32px 92px;overflow:hidden;background:#252823;color:#fff;font-synthesis:none}.welcome-photo,.wedding-welcome:after,.welcome-sparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.welcome-photo{z-index:-3}.welcome-photo img{display:block;width:100%;height:100%;object-fit:cover}.wedding-welcome:after{content:"";z-index:-2;background:linear-gradient(180deg,#0000008a,#000000a8 50%,#0000009e)}.welcome-inner{width:min(100%,960px);margin:auto}.welcome-letter{text-align:center;text-shadow:0 2px 12px rgb(0 0 0 / 35%)}#welcome .welcome-title{margin:0 0 36px;color:#fff;font-family:"The Nautigal",var(--script);font-size:clamp(60px,7vw,92px);font-weight:400;line-height:1.2;text-wrap:balance}.welcome-title:after{content:"";display:block;width:136px;height:2px;margin:16px auto 0;border-radius:50%;background:currentColor;transform:rotate(-3deg);opacity:.85}.welcome-title-heart{display:inline-block;font-size:.38em;vertical-align:middle}.welcome-copy{margin:auto;font-size:clamp(16px,1.35vw,19px);font-weight:400;line-height:1.9;text-wrap:pretty}.welcome-copy p{margin:0}.welcome-copy p+p{margin-top:18px}.welcome-copy .welcome-quote{max-width:800px;margin:0 auto 26px;font-size:1.06em}.welcome-copy strong{font-weight:600}.welcome-copy .welcome-thanks{margin-top:26px}.welcome-thanks span{white-space:nowrap}.welcome-copy .welcome-signoff{margin-top:26px}.welcome-signoff strong{display:block;margin-top:8px;font-size:1.12em}.welcome-sparkles{z-index:-1}.welcome-sparkles span{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffffffa6;box-shadow:0 0 6px #ffffff4d}.welcome-sparkles span:nth-child(1){left:6%;top:23%}.welcome-sparkles span:nth-child(2){left:27%;top:11%;width:3px;height:3px}.welcome-sparkles span:nth-child(3){left:81%;top:17%}.welcome-sparkles span:nth-child(4){left:95%;top:42%;width:3px;height:3px}.welcome-sparkles span:nth-child(5){left:8%;top:67%}.welcome-sparkles span:nth-child(6){left:91%;top:80%}.welcome-sparkles span:nth-child(7){left:25%;top:91%;width:3px;height:3px}.welcome-sparkles span:nth-child(8){left:72%;top:95%;width:3px;height:3px}@media(max-width:760px){.wedding-welcome{min-height:0;padding:64px 22px 68px}#welcome .welcome-title{margin-bottom:28px;font-size:clamp(54px,10vw,72px);line-height:1.15}.welcome-title:after{width:104px}.welcome-copy{font-size:16px;line-height:1.85}.welcome-copy p+p{margin-top:18px}}#events{--events-gold: #b78b4c;--events-green: #164c3e;padding:38px 0 72px;background:#faf6ed url(/images/decorations/paper-grain.svg);color:var(--events-green)}#events:before,#events:after{content:"";position:absolute;z-index:-1;pointer-events:none;border:1px solid var(--events-gold);border-radius:20px}#events:before{top:22px;right:24px;bottom:28px;left:24px;opacity:.75}#events:after{top:30px;right:32px;bottom:36px;left:32px;opacity:.3}#events .wedding-events-container{position:relative;width:min(100% - 112px,1480px);z-index:1}#events .wedding-events-header{margin-bottom:26px}#events .events-heart-divider{color:var(--events-gold);margin:12px auto}#events .events-heart-divider span{width:85px;background:linear-gradient(90deg,transparent,var(--events-gold))}#events .events-heart-divider svg{width:18px;height:18px}#events #events-title{margin:0;font:400 clamp(76px,7vw,108px)/1.05 "The Nautigal",var(--script);color:var(--events-green)}#events .events-welcome{margin-top:10px;font-size:clamp(15px,1.7vw,20px);line-height:1.6;letter-spacing:.14em;font-style:normal;color:var(--events-green)}#events .events-heading-ornament{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;color:var(--events-gold);font-size:29px;line-height:1}#events .events-heading-ornament span{width:88px;height:1px;background:var(--events-gold);opacity:.6}#events .wedding-events-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;align-items:stretch}#events[data-side=bride] .wedding-event-card:last-child:nth-child(odd){grid-column:1 / -1;width:calc((100% - 26px)/2);justify-self:center}#events .wedding-event-card{position:relative;display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:24px;padding:18px 18px 18px 20px;border:1px solid var(--events-gold);border-radius:22px;background:#fffdf8a6;box-shadow:0 3px 14px #57412117}#events .wedding-event-visual{position:relative;align-self:center;min-width:0;margin-block:2px}#events .wedding-event-photo{position:relative;min-height:0;height:auto;aspect-ratio:10 / 9;border:1px solid var(--events-gold);border-radius:50% 50% 9px 9px/36% 36% 9px 9px;overflow:hidden;box-shadow:0 4px 8px #57412124}#events .wedding-event-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgb(255 250 230 / 35%);border-radius:inherit;pointer-events:none}#events .wedding-event-photo img{display:block;width:100%;height:100%;object-fit:cover}#events .event-photo-floral{position:absolute;z-index:1;height:auto;max-width:none;filter:drop-shadow(0 2px 2px rgb(87 65 33 / 8%))}#events .event-photo-floral-top{width:136px;top:-16px;right:-28px;transform:rotate(31deg)}#events .event-photo-floral-bottom{width:76px;bottom:-27px;left:-24px;transform:rotate(-31deg)}#events .wedding-event-heading{position:relative;display:block;width:100%;margin:0 0 14px;padding:8px 5px;border:1px solid var(--events-gold);border-radius:3px 10px;background:linear-gradient(120deg,#205b48,#103d32);box-shadow:inset 0 0 0 2px #ffffff1a;text-align:center}#events .wedding-event-heading h3{color:#fffdf8;font-size:clamp(17px,1.35vw,22px);line-height:1.5;text-transform:uppercase;overflow-wrap:normal;text-wrap:balance}#events .wedding-event-content{padding:6px 0 0}#events .wedding-event-details{gap:12px;margin-bottom:18px}#events .wedding-event-details p{gap:10px;color:var(--events-green);font-size:15px;line-height:1.55}#events .wedding-event-details svg{width:26px;height:30px;color:var(--events-green);stroke-width:1.8}#events .wedding-event-details strong{display:block;font-weight:500}#events .wedding-event-details time>span,#events .event-address{display:block;margin-top:3px;font-size:14px}#events .wedding-event-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}#events .wedding-event-actions .button{min-width:0;min-height:42px;padding:8px 6px;border:1px solid var(--events-green);border-radius:9px;background:transparent;color:var(--events-green);font-size:13px;font-weight:400;letter-spacing:0;line-height:1.5;text-transform:none}#events .wedding-event-actions .event-rsvp{border-color:var(--events-gold);background:linear-gradient(110deg,#205b48,#103d32);color:#fffdf8}#events .wedding-event-actions .button:hover{box-shadow:0 3px 12px #164c3e24}#events .wedding-events-footer{max-width:none;margin-top:22px}#events .events-couple-names{margin-top:12px;color:#a47532;font:400 clamp(46px,4.5vw,64px)/1.2 "The Nautigal",var(--script);text-wrap:balance}#events .events-closing{margin-top:8px;color:var(--events-green);font-size:13px;font-style:normal;line-height:1.7;letter-spacing:.18em}.events-floral-decor{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.events-flower{position:absolute;height:auto}.events-flower-top-left{top:-205px;left:-46px;width:240px;transform:rotate(-24deg)}.events-flower-top-right{top:-230px;right:-50px;width:240px;transform:scaleX(-1) rotate(-24deg)}.events-flower-bottom-left{bottom:5px;left:-80px;width:320px;transform:rotate(30deg)}.events-flower-bottom-right{bottom:5px;right:-80px;width:320px;transform:scaleX(-1) rotate(30deg)}.events-bottom-wave{position:absolute;bottom:-1px;left:0;width:100%;height:160px;z-index:-1;fill:#164c3e}.events-wave-line{fill:none;stroke:#b78b4c;stroke-width:1.5}@media(min-width:601px)and (max-width:1100px){#events .wedding-events-container{width:calc(100% - 72px)}#events .wedding-events-grid{grid-template-columns:1fr;max-width:820px;margin:auto;gap:22px}#events[data-side=bride] .wedding-event-card:last-child:nth-child(odd){grid-column:auto;width:100%}.events-flower-top-left,.events-flower-top-right{opacity:.65}}@media(max-width:600px){#events{padding:42px 0 94px}#events:before{top:15px;right:10px;bottom:22px;left:10px}#events:after{top:21px;right:16px;bottom:28px;left:16px}#events .wedding-events-container{width:calc(100% - 52px)}#events .wedding-events-header{margin-bottom:30px}#events #events-title{font-size:clamp(65px,16vw,90px)}#events .events-welcome{font-size:12px;letter-spacing:.1em}#events .wedding-events-grid,#events[data-side=groom] .wedding-events-grid{grid-template-columns:1fr;gap:24px;max-width:410px;margin:auto}#events[data-side=bride] .wedding-event-card:last-child:nth-child(odd){grid-column:auto;width:100%}#events .wedding-event-card{grid-template-columns:1fr;gap:18px;padding:12px 14px 20px}#events .wedding-event-content{padding:0}#events .wedding-event-visual{width:calc(100% - 12px);margin:10px auto 12px}#events .wedding-event-photo{min-height:0;height:auto;aspect-ratio:10 / 9}#events .event-photo-floral-top{width:120px;top:-15px;right:-21px}#events .event-photo-floral-bottom{width:65px;bottom:-24px;left:-20px}#events .wedding-event-heading h3{font-size:19px}#events .wedding-event-details p{font-size:16px}#events .wedding-event-actions .button{font-size:13px}#events .events-couple-names{font-size:clamp(41px,10vw,60px)}#events .events-closing{font-size:10px;letter-spacing:.1em}.events-flower-top-left{width:110px;top:-100px;left:-65px}.events-flower-top-right{width:110px;top:-110px;right:-65px}.events-flower-bottom-left{width:185px;bottom:2px;left:-83px}.events-flower-bottom-right{width:185px;bottom:2px;right:-83px}.events-bottom-wave{height:100px}}#gallery{position:relative;isolation:isolate;overflow:hidden;padding:60px 28px 54px;border-top:1px solid #e0d5bf;background:#101311;color:#fff}.gallery-backdrop,#gallery:before{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.gallery-backdrop{z-index:-3}.gallery-backdrop img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}#gallery:before{content:"";z-index:-2;background:linear-gradient(90deg,#000000e0,#000000c7 52%,#000000d6)}.gallery-inner{width:min(100%,1120px);margin:auto}.gallery-heading{text-align:center;margin-bottom:30px}#gallery #gallery-title{margin:0;color:#fff;font:400 clamp(46px,4.4vw,66px)/1.2 "The Nautigal",var(--script)}.gallery-quote{max-width:800px;margin:16px auto 0;color:#f0efeb;font-size:clamp(15px,1.15vw,17px);font-style:italic;font-weight:400;line-height:1.9;text-wrap:pretty;text-shadow:0 2px 10px rgb(0 0 0 / 50%)}#gallery .gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(130px,23vw,264px);grid-auto-flow:row dense;gap:clamp(8px,1.4vw,18px);columns:auto;width:100%;margin:auto}#gallery .gallery-item{grid-column:span 4;grid-row:span 2;width:100%;margin:0;padding:4px;aspect-ratio:auto;overflow:hidden;border:1px solid #e2d9c8;border-radius:2px;background:#fffdf8;box-shadow:0 4px 16px #3935241f}#gallery .gallery-item:nth-child(1){grid-area:1 / 1 / span 2 / span 4}#gallery .gallery-item:nth-child(2){grid-area:1 / 5 / span 1 / span 2}#gallery .gallery-item:nth-child(3){grid-area:1 / 7 / span 1 / span 2}#gallery .gallery-item:nth-child(4){grid-area:2 / 5 / span 1 / span 2}#gallery .gallery-item:nth-child(5){grid-area:2 / 7 / span 1 / span 2}#gallery .gallery-item:nth-child(6){grid-area:1 / 9 / span 2 / span 4}#gallery .gallery-item:nth-child(n+7):nth-child(3n+1):nth-last-child(2),#gallery .gallery-item:nth-child(n+7):nth-child(3n+2):last-child{grid-column:span 6}#gallery .gallery-item img{display:block;width:100%;height:100%;object-fit:cover}#gallery .gallery-item:after{content:none}.gallery-zoom{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#ffffffe0;color:#405545;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.gallery-zoom svg{width:17px;height:17px}.gallery-item:hover .gallery-zoom,.gallery-item:focus-visible .gallery-zoom{opacity:1;transform:none}#gallery .gallery-item:focus-visible{outline:2px solid white;outline-offset:3px}#gallery .gallery-more{margin-top:20px;text-align:center}.gallery-load-more{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:170px;min-height:44px;padding:9px 24px;border:1px solid rgb(198 174 125 / 65%);border-radius:999px;background:#10131199;color:#ead5b2;font-size:15px;font-weight:400;letter-spacing:.05em;line-height:1.5;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.gallery-load-more svg{width:19px;height:19px;stroke-width:1.3}.gallery-load-more:hover{background:#c6ae7d24;border-color:#e8cda1;color:#fff1d9}.gallery-load-more:focus-visible{outline:2px solid #e8cda1;outline-offset:3px}html:has(#photo-dialog[open]){overflow:hidden}#photo-dialog{width:min(1100px,calc(100% - 48px));height:min(920px,calc(100dvh - 48px));max-width:none;max-height:none;padding:0;overflow:hidden;border:0;border-radius:4px;background:#191d1a;color:#fff}#photo-dialog[open]{display:flex;flex-direction:column}#photo-dialog::backdrop{background:#080c09e0}.lightbox-stage{position:relative;flex:1;min-height:0}#photo-dialog .lightbox-gesture{width:100%;height:100%}#photo-dialog .lightbox-gesture img{display:block;width:100%;height:100%;object-fit:contain}#photo-dialog .dialog-close,#photo-dialog .lightbox-arrow{position:absolute;z-index:1;display:grid;place-items:center;width:44px;height:44px;padding:8px;border:0;border-radius:50%;background:#ffffffd9;color:#18251e;box-shadow:0 2px 12px #0000001a;cursor:pointer}#photo-dialog .dialog-close{top:10px;right:10px}#photo-dialog .lightbox-arrow{top:50%;transform:translateY(-50%)}#photo-dialog .lightbox-previous{left:12px}#photo-dialog .lightbox-next{right:12px}#photo-dialog :is(.dialog-close,.lightbox-arrow):hover{background:#fff}#photo-dialog :is(.dialog-close,.lightbox-arrow) svg{width:28px;height:28px;stroke-width:1.5}#photo-dialog button:focus-visible{outline:3px solid #c6ae7d;outline-offset:-3px}.lightbox-counter{position:absolute;left:14px;bottom:12px;padding:4px 12px;border-radius:999px;background:#0000007a;color:#fff;font:400 13px/1.6 var(--sans);pointer-events:none}.lightbox-thumbnails{display:flex;flex:0 0 auto;gap:8px;width:100%;padding:8px;overflow-x:auto;overscroll-behavior-x:contain;background:#fff;scrollbar-width:thin;scrollbar-color:#91a294 #fff}.lightbox-thumbnail{flex:0 0 64px;height:80px;padding:2px;overflow:hidden;border:2px solid transparent;border-radius:0;background:transparent;opacity:.6;cursor:pointer;transition:opacity .2s,border-color .2s}#photo-dialog .lightbox-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;animation:none}.lightbox-thumbnail[aria-current=true]{border-color:#254b3c;opacity:1}.lightbox-thumbnail:hover{opacity:1}.lightbox-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(hover:none){.gallery-zoom{opacity:1;transform:none}}@media(max-width:600px){#gallery{padding:40px 18px 32px}.gallery-heading{margin-bottom:24px}#gallery #gallery-title{font-size:49px}.gallery-quote{margin-top:14px;font-size:15px;line-height:1.85}#gallery .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:8px}#gallery .gallery-item,#gallery .gallery-item:nth-child(n){grid-area:auto;aspect-ratio:2 / 3}#gallery .gallery-item:nth-child(6n+1){grid-column:span 2;aspect-ratio:4 / 3}#photo-dialog{width:100vw;height:100dvh;margin:0;border-radius:0}#photo-dialog .dialog-close{top:max(8px,env(safe-area-inset-top));right:8px}#photo-dialog .lightbox-previous{left:6px}#photo-dialog .lightbox-next{right:6px}.lightbox-thumbnails{gap:6px;padding:6px 6px max(6px,env(safe-area-inset-bottom))}.lightbox-thumbnail{flex-basis:56px;height:70px}}#gifts{position:relative;isolation:isolate;overflow:hidden;padding:56px 32px 48px;margin-top:0;border-top:1px solid #c4ae7b;background:#153324;color:#fffaf0}#gifts:before{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#06160e9c,#05160ede 48%,#071910c2);pointer-events:none}.gift-backdrop{position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.gift-scene-photo{position:absolute;left:0;top:0;width:66%;height:100%;object-fit:cover;filter:saturate(.55);-webkit-mask-image:linear-gradient(90deg,#000 55%,transparent);mask-image:linear-gradient(90deg,#000 55%,transparent)}#gifts[data-side=groom] .gift-scene-photo{width:auto;max-width:58%;object-fit:contain}.gift-scene-foliage{position:absolute;right:-7%;top:-20%;width:51%;height:145%;object-fit:cover;opacity:.22;filter:brightness(.65) saturate(.6);transform:rotate(-12deg)}.gift-container{position:relative;z-index:2;width:min(100%,1000px);margin:auto}.gift-card{position:relative;min-height:660px;display:grid;align-items:center}.gift-copy{width:100%;padding:0 24px;text-align:center;text-shadow:0 2px 12px rgb(0 0 0 / 22%)}.gift-heart-rule{display:flex;justify-content:center;align-items:center;gap:16px;margin:0 auto 22px;color:#eadcba}.gift-heart-rule span{width:clamp(60px,9vw,140px);height:1px;background:#bcb28c}.gift-heart-rule .icon{width:18px;height:18px;fill:currentColor;stroke-width:1}.gift-title-floral{display:block;width:110px;height:44px;margin:0 auto 12px;opacity:.85}#gifts #gift-title{margin:0;padding:0 8px;color:#fffdf4;font-family:"Great Vibes",var(--script);font-size:clamp(58px,7vw,88px);font-weight:400;line-height:1.45;text-wrap:balance}#gifts .gift-recipient{margin:-10px 0 12px;color:#e5d3a1;font:400 clamp(34px,4vw,52px)/1.4 "The Nautigal",var(--script)}.gift-diamond-rule{display:flex;justify-content:center;align-items:center;gap:8px;margin:0 auto 24px;color:#dacb9d;font-size:17px;line-height:1}.gift-diamond-rule span{width:64px;height:1px;background:#9f9f7f}#gifts .gift-message{max-width:720px;margin:0 auto;color:#f4f1e6;font-size:clamp(16px,1.5vw,20px);line-height:1.85;text-wrap:pretty}#gifts .gift-thanks{max-width:790px;margin:26px auto 0;color:#e2d8b9;font-size:14px;font-style:italic;line-height:1.8;text-wrap:pretty}.gift-action-row{display:flex;justify-content:center;margin-top:26px}.gift-open-button{display:inline-flex;justify-content:center;align-items:center;width:184px;height:116px;padding:20px;border:1px solid #f5eedb;border-radius:20px;background:#08140d40;color:#fffdf2;box-shadow:inset 0 0 24px #ece5c40d,0 6px 24px #00000026;transition:background .2s,box-shadow .2s}.gift-open-button .icon{width:72px;height:72px;stroke-width:1.8;filter:drop-shadow(0 0 8px rgb(243 237 208 / 30%))}.gift-open-button:hover{background:#d7c79c24;box-shadow:0 0 28px #ded3ab26}.gift-open-button:focus-visible{outline:2px solid #f3e8cb;outline-offset:5px}.gift-heart-rule-bottom{margin-top:22px;margin-bottom:0}.gift-heart-rule-bottom span{width:68px}.gift-card-floral{position:absolute;z-index:1;bottom:-38px;width:clamp(170px,19vw,290px);height:auto;opacity:.92}.gift-card-floral-left{left:-32px}.gift-card-floral-bottom{right:-32px;transform:scaleX(-1)}html:has(#gift-dialog[open]){overflow:hidden}#gift-dialog{width:min(660px,calc(100% - 28px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #d9d2c2;border-radius:18px;background:#faf8f0;color:#244d42;text-align:center;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b6b8a7 transparent}#gift-dialog::backdrop{background:#17241cad;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.gift-dialog-card{position:relative;isolation:isolate;padding:34px 38px 24px;overflow:hidden;background:linear-gradient(#fdfbf5d9,#fdfbf5d9),url(/images/decorations/paper-grain.svg)}.gift-dialog-florals{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}#gift-dialog .gift-dialog-floral-top{position:absolute;top:-66px;left:-72px;width:250px;height:auto;transform:rotate(165deg);opacity:.85}#gift-dialog .gift-dialog-floral-bottom{position:absolute;right:-62px;bottom:-66px;width:235px;height:auto;transform:scaleX(-1);opacity:.85}#gift-dialog .dialog-close{width:44px;height:44px;top:12px;right:12px;color:#59685e}#gift-dialog .dialog-close svg{width:25px;height:25px;stroke-width:1.8}.gift-dialog-emblem{display:flex;align-items:center;justify-content:center;gap:22px;margin:0 auto 8px;color:#b59456}.gift-dialog-emblem span{width:62px;height:1px;background:#c9b182}.gift-dialog-icon{display:block;width:36px;height:36px;stroke-width:1.4}#gift-dialog #gift-dialog-title{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px 0 2px;color:#204d42;font:400 clamp(44px,5vw,64px)/1.25 "The Nautigal",cursive;text-wrap:balance}.gift-dialog-title-heart{width:32px;height:36px;color:#b59456;stroke-width:1.3;flex-shrink:0;transform:rotate(15deg)}#gift-dialog .gift-dialog-intro{margin:8px auto 0;max-width:440px;color:#777e72;font-size:14px;font-weight:400;line-height:1.8}.gift-dialog-rule{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px auto;color:#b59456}.gift-dialog-rule span{width:62px;height:1px;background:#c9b182}.gift-dialog-rule svg{width:15px;height:15px;stroke-width:1}.gift-qr-composition{position:relative;isolation:isolate;width:min(100%,360px);margin:0 auto 22px}#gift-dialog .gift-qr-floral{position:absolute;z-index:-1;width:104px;height:auto;bottom:0;opacity:.9}#gift-dialog .gift-qr-floral-left{left:-2px;transform:rotate(-18deg)}#gift-dialog .gift-qr-floral-right{right:-2px;transform:scaleX(-1) rotate(-18deg)}.gift-qr-frame{position:relative;width:min(100%,248px);aspect-ratio:1;margin:auto;padding:18px;border:1px solid #dfd6c2;border-radius:18px;background:#fffdf7;box-shadow:0 2px 12px #4a442e0d}.gift-qr-frame:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:1px dashed #d2c6aa;border-radius:11px;pointer-events:none}.gift-qr-frame>img{position:relative;display:block;width:100%;height:100%;object-fit:contain;background:#fff}.gift-qr-placeholder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;width:100%;height:100%;color:#678171}.gift-qr-placeholder svg{width:118px;height:118px;stroke-width:1;color:#567364}.gift-qr-placeholder span{padding:5px 9px;border-radius:10px;background:#e9ede2;color:#315a4c;font-size:11px;line-height:1.6}.gift-account-details{display:grid;gap:4px;margin:0 0 20px;padding:12px 14px;border:1px solid #ded6c5;border-radius:12px;background:#fffdf7a6}.gift-account-details>div{display:grid;grid-template-columns:148px minmax(0,1fr) 34px;gap:12px;align-items:center;min-height:44px;text-align:left}.gift-account-details dt{display:flex;align-items:center;gap:10px;color:#7c8075;font-size:12px;font-weight:400;line-height:1.6}.gift-account-details dt svg{width:20px;height:20px;flex-shrink:0;color:#b59456;stroke-width:1.6}#gift-dialog .gift-account-details dd{margin:0;padding-left:16px;border-left:1px solid #dbcfb6;color:#244d42;font-size:14px;font-weight:600;line-height:1.6;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}#gift-dialog .gift-account-details .account-owner{font-size:14px}#gift-dialog .gift-account-details .account-number{font-size:16px;font-variant-numeric:tabular-nums}.gift-copy-detail{display:grid;place-items:center;width:34px;height:40px;padding:6px;border:0;border-radius:6px;background:transparent;color:#b59456}.gift-copy-detail svg{width:19px;height:19px;stroke-width:1.7}.gift-copy-detail:hover:not(:disabled){background:#f0ebdf}.gift-copy-detail:disabled{opacity:.4;cursor:not-allowed}.gift-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gift-dialog-actions button{display:flex;justify-content:center;align-items:center;gap:9px;min-height:50px;padding:12px 10px;border:1px solid #315b4b;border-radius:8px;font-size:12px;font-weight:600;line-height:1.5}.gift-dialog-actions svg{width:19px;height:19px;flex-shrink:0}.gift-download-button{background:#285246;color:#fffdf7}.gift-copy-button{background:#fffdf7a6;color:#285246}.gift-dialog-actions button:hover:not(:disabled){background:#e2e9dc;color:#234b3b}.gift-dialog-actions button:disabled{opacity:.5;cursor:not-allowed}#gift-dialog button:focus-visible{outline:2px solid #a18957;outline-offset:3px}.gift-dialog-rule-bottom{margin:24px auto 14px}#gift-dialog .gift-dialog-note{max-width:440px;margin:0 auto;color:#7c8075;font-size:12px;font-weight:400;line-height:1.8;text-wrap:pretty}#gift-dialog .gift-action-status{min-height:0;margin:10px 0 0;color:#315b45;font-size:12px;line-height:1.6}#gift-dialog .gift-action-status:empty{display:none}@media(max-width:760px){#gifts{padding:46px 26px 54px}#gifts:before{background:linear-gradient(#07180fb5,#06180fe3 58%,#07170ed4)}.gift-card{min-height:0}.gift-copy{padding:0 8px}.gift-scene-photo{width:100%;-webkit-mask-image:none;mask-image:none}#gifts[data-side=groom] .gift-scene-photo{width:100%;max-width:none;-webkit-mask-image:linear-gradient(transparent,#000 48%);mask-image:linear-gradient(transparent,#000 48%)}.gift-scene-foliage{right:-35%;width:85%}.gift-title-floral{width:90px;height:36px;margin-bottom:14px}#gifts #gift-title{padding:0;font-size:clamp(44px,10.5vw,68px);line-height:1.6}#gifts .gift-recipient{margin-top:-4px;font-size:37px}#gifts .gift-message{font-size:16px;line-height:1.9}#gifts .gift-thanks{max-width:420px;font-size:12px;margin-top:24px}.gift-open-button{width:154px;height:102px;border-radius:17px}.gift-open-button .icon{width:62px;height:62px}.gift-card-floral{width:170px;bottom:-26px;opacity:.75}.gift-card-floral-left{left:-65px}.gift-card-floral-bottom{right:-65px}}@media(max-width:540px){#gift-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:14px}.gift-dialog-card{padding:30px 18px 24px}#gift-dialog .gift-dialog-floral-top{width:180px;top:-54px;left:-70px;opacity:.65}#gift-dialog .gift-dialog-floral-bottom{width:180px;right:-68px;bottom:-58px;opacity:.65}#gift-dialog .dialog-close{top:6px;right:6px}.gift-dialog-emblem{gap:16px}.gift-dialog-emblem span{width:40px}.gift-dialog-icon{width:30px;height:30px}#gift-dialog #gift-dialog-title{font-size:clamp(39px,10.5vw,54px);gap:5px;margin-top:12px}.gift-dialog-title-heart{width:24px;height:28px}#gift-dialog .gift-dialog-intro{max-width:270px;font-size:12px}.gift-qr-composition{width:100%;margin-bottom:18px}.gift-qr-frame{width:214px;padding:17px}.gift-qr-placeholder svg{width:100px;height:100px}#gift-dialog .gift-qr-floral{width:82px}#gift-dialog .gift-qr-floral-left{left:-3px}#gift-dialog .gift-qr-floral-right{right:-3px}.gift-account-details{padding:10px;gap:8px;margin-bottom:16px}.gift-account-details>div{grid-template-columns:104px minmax(0,1fr) 28px;gap:6px}.gift-account-details dt{gap:7px;font-size:11px}.gift-account-details dt svg{width:18px;height:18px}#gift-dialog .gift-account-details dd{padding-left:8px;font-size:12px}#gift-dialog .gift-account-details .account-owner{font-size:11px}#gift-dialog .gift-account-details .account-number{font-size:13px}.gift-copy-detail{width:28px;height:36px;padding:4px}.gift-copy-detail svg{width:17px;height:17px}.gift-dialog-actions{grid-template-columns:1fr;gap:8px}.gift-dialog-actions button{min-height:46px;font-size:13px}.gift-dialog-rule-bottom{margin-top:20px}#gift-dialog .gift-dialog-note{font-size:11px}}#thank-you{position:relative;isolation:isolate;overflow:hidden;padding:0;background:#111315;color:#fff}.thank-you-backdrop{position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;background-repeat:repeat-x;background-size:auto 100%;filter:grayscale(.85);pointer-events:none}#thank-you:before{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background:linear-gradient(#06080a94,#06080ab3);pointer-events:none}.thank-you-inner{display:grid;place-items:center;width:100%;min-height:620px;margin:auto;padding:72px 24px 88px}.thank-you-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;container-type:inline-size;width:min(100%,900px);margin:auto;text-align:center}#thank-you .footer-title{margin:0;color:#fff;font-size:clamp(50px,20cqw,128px);white-space:nowrap;text-shadow:0 3px 24px rgb(0 0 0 / 25%)}#thank-you .footer-message{max-width:760px;margin:24px auto 0;color:#f3f3f3;font-size:clamp(15px,1.4vw,18px);font-weight:400;line-height:1.9;text-wrap:pretty}#thank-you .footer-message p+p{margin-top:10px}#thank-you .footer-names{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 14px;width:100%;margin:28px auto 0;color:#fff;font-family:The Nautigal,cursive;font-size:clamp(35px,3.8vw,55px);font-weight:400;line-height:1.35}.footer-names>span{white-space:nowrap}#thank-you .footer-names svg{width:24px;height:26px;flex-shrink:0;color:#e92f3f;stroke-width:1.2}@media(max-width:760px){.thank-you-inner{min-height:600px;padding:60px 24px 86px}#thank-you .footer-message{margin-top:22px;font-size:15px;line-height:1.85}#thank-you .footer-names{flex-direction:column;margin-top:24px;font-size:39px;gap:3px}#thank-you .footer-names svg{width:18px;height:21px}}
