@import "https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400..700&family=Mea+Culpa&family=Parisienne&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=Playfair+Display:ital,wght@0,400;0,500;0,700;1,400;1,500&family=Be+Vietnam+Pro:wght@300;400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--gold:#c9a96e;--gold-light:#e8d5b0;--gold-faint:rgba(var(--gold-rgb), .12);--cream:#fff8f0;--cream-dark:#fbe8d8;--rose:#e8a598;--rose-light:#f5d5cf;--charcoal:#2c2c2c;--text:#5a4a42;--text-muted:#9b8b7a;--white:#fff;--white-glass:#ffffffbf;--gold-rgb:201, 169, 110;--rose-rgb:232, 165, 152;--cream-rgb:255, 248, 240;--font-heading:"Playfair Display", Georgia, serif;--font-display:"Mea Culpa", cursive, serif;--font-body:"Be Vietnam Pro", system-ui, sans-serif;--radius:16px;--shadow-soft:0 8px 32px #2c2c2c14;--shadow-hover:0 16px 48px rgba(var(--gold-rgb), .25);--transition:.35s cubic-bezier(.4, 0, .2, 1)}[data-theme=sage]{--gold:#6b8e5a;--gold-light:#b5c5a2;--gold-rgb:107, 142, 90;--gold-faint:rgba(var(--gold-rgb), .14);--rose:#c2807a;--rose-light:#e7c5c1;--rose-rgb:194, 128, 122;--cream:#f5f1e8;--cream-dark:#e3dcc5;--cream-rgb:245, 241, 232;--shadow-hover:0 16px 48px rgba(var(--gold-rgb), .28)}[data-theme=dusk]{--gold:#d97287;--gold-light:#f0bdc8;--gold-rgb:217, 114, 135;--gold-faint:rgba(var(--gold-rgb), .14);--rose:#d4a85c;--rose-light:#ecd9a5;--rose-rgb:212, 168, 92;--cream:#fdf5f4;--cream-dark:#f7e3df;--cream-rgb:253, 245, 244;--shadow-hover:0 16px 48px rgba(var(--gold-rgb), .28)}[data-theme=crimson]{--gold:#b8323a;--gold-light:#e9b9bb;--gold-rgb:184, 50, 58;--gold-faint:rgba(var(--gold-rgb), .13);--rose:#d4a64a;--rose-light:#ecd9a5;--rose-rgb:212, 166, 74;--cream:#fdf6ee;--cream-dark:#f5d9c5;--cream-rgb:253, 246, 238;--shadow-hover:0 16px 48px rgba(var(--gold-rgb), .28)}body{transition:background-color .45s}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text);background:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.7;overflow-x:clip}#root{width:100%;min-height:100svh}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--charcoal);font-weight:500;line-height:1.2}img{max-width:100%;display:block}button{cursor:pointer;font-family:var(--font-body)}.reveal{opacity:0;transition:opacity .75s,transform .75s;transform:translateY(36px)}.reveal.visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}.reveal-delay-6{transition-delay:.6s}@keyframes wipe-right{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}@keyframes wipe-left{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes wipe-up{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}[data-wipe=right]{animation:.9s cubic-bezier(.77,0,.18,1) both paused wipe-right}[data-wipe=left]{animation:.9s cubic-bezier(.77,0,.18,1) both paused wipe-left}[data-wipe=up]{animation:.9s cubic-bezier(.77,0,.18,1) both paused wipe-up}[data-wipe].wipe-in{animation-play-state:running}.reveal.reveal-zoom{transform:scale(.86)translateY(12px)}.reveal.reveal-drop{transform:translateY(-28px)scale(.97)}.reveal.reveal-blur{transition:opacity .8s,transform .8s,filter .8s;transform:translateY(20px)}.reveal.reveal-blur.visible{filter:none}.section{max-width:1100px;margin:0 auto;padding:clamp(35px,9vw,50px) clamp(18px,4vw,32px)}.section-label{font-family:var(--font-body);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-size:clamp(.7rem,2.2vw,.78rem);font-weight:600;display:block}.section-title{margin-bottom:clamp(12px,2vw,16px);font-size:clamp(1.7rem,4.4vw,2.8rem)}.section-divider{background:linear-gradient(90deg, var(--gold), var(--rose));border-radius:1px;width:clamp(48px,6vw,60px);height:2px;margin:0 auto clamp(28px,4vw,48px)}.reveal .section-divider{transform-origin:50%;transition:transform .9s cubic-bezier(.4,0,.2,1) .35s;transform:scaleX(0)}.reveal.visible .section-divider{transform:scaleX(1)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal.visible{opacity:1;filter:none;transform:none;transition:none!important}.reveal .section-divider,.reveal.visible .section-divider{transform:none;transition:none!important}[data-wipe]{clip-path:none!important;animation:none!important}}@keyframes loading-name-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-date-in{0%{opacity:0;letter-spacing:.6em}to{opacity:1;letter-spacing:.35em}}@keyframes loading-bar-grow{0%{width:0%}to{width:100%}}.loading-screen{z-index:9999;background:var(--cream);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);place-items:center;transition:opacity 1s cubic-bezier(.4,0,.2,1);display:grid;position:fixed;inset:0}.loading-screen.phase-enter{opacity:0}.loading-screen.phase-hold{opacity:1}.loading-screen.phase-exit{opacity:0;pointer-events:none}.loading-content{text-align:center;flex-direction:column;align-items:center;gap:clamp(14px,2.6vw,22px);width:100%;max-width:min(540px,92vw);padding:24px;display:flex}.loading-monogram{flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(10px,3vw,18px);width:100%;display:flex}.loading-name{font-family:var(--font-display);letter-spacing:0;background:linear-gradient(90deg, var(--charcoal) 0%, var(--charcoal) 20%, var(--gold-light) 38%, var(--cream) 50%, var(--gold-light) 62%, var(--charcoal) 80%, var(--charcoal) 100%);-webkit-text-fill-color:transparent;opacity:0;white-space:nowrap;background-position-x:200%;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.3rem,12.5vw,5.6rem);font-style:normal;font-weight:400;line-height:1.1}.loading-name-left{animation:.9s cubic-bezier(.22,1,.36,1) .3s both loading-name-in}.loading-name-right{animation:.9s cubic-bezier(.22,1,.36,1) .55s both loading-name-in}.loading-amp{font-family:var(--font-heading);color:var(--gold);opacity:0;font-size:clamp(1.4rem,5vw,2.6rem);font-style:italic;line-height:1;animation:.7s .42s both loading-name-in}.loading-date{font-family:var(--font-body);color:var(--gold);opacity:0;font-size:clamp(.72rem,2vw,.84rem);animation:.9s .85s both loading-date-in}.loading-bar-track{background:rgba(var(--gold-rgb), .18);border-radius:1px;width:min(220px,55vw);height:2px;overflow:hidden}.loading-bar-fill{background:linear-gradient(90deg, var(--gold), var(--rose));border-radius:1px;width:0%;height:100%;animation:1.5s cubic-bezier(.4,0,.2,1) .45s both loading-bar-grow}@media (width<=540px){.loading-monogram{flex-direction:column;gap:6px}.loading-amp{font-size:1.4rem}.loading-content{gap:18px;padding:18px}}@media (prefers-reduced-motion:reduce){.loading-name,.loading-amp,.loading-date,.loading-bar-fill{opacity:1;animation:none!important}.loading-bar-fill{width:100%}}@keyframes spark-float{0%{opacity:.85;transform:translate(0)scale(1)rotate(0)}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(.35) rotate(var(--rot))}}.cursor-spark{pointer-events:none;z-index:9990;color:var(--gold);-webkit-user-select:none;user-select:none;will-change:transform, opacity;font-size:clamp(.65rem,1vw,.85rem);animation:.7s ease-out forwards spark-float;position:fixed;translate:-50% -50%}@keyframes bar-bounce{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.audio-btn{bottom:max(20px, calc(env(safe-area-inset-bottom) + 12px));left:max(20px, calc(env(safe-area-inset-left) + 12px));z-index:500;background:var(--white-glass);-webkit-backdrop-filter:blur(12px);border:none;border:1.5px solid rgba(var(--gold-rgb), .4);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:box-shadow .35s,border-color .35s,transform .2s;display:flex;position:fixed;overflow:hidden;box-shadow:0 4px 20px #2c2c2c1f}@media (hover:hover){.audio-btn:hover{box-shadow:0 6px 28px rgba(var(--gold-rgb), .35);border-color:var(--gold);transform:scale(1.08)}}.audio-btn:active{transform:scale(.95)}.audio-icon{color:var(--gold);font-size:1.3rem;line-height:1;transition:opacity .3s;position:absolute}.audio-btn.playing .audio-icon{opacity:0}.audio-bars{opacity:0;align-items:flex-end;gap:3px;height:18px;transition:opacity .3s;display:flex;position:absolute}.audio-btn.playing .audio-bars{opacity:1}.audio-bars span{background:var(--gold);transform-origin:bottom;border-radius:2px;width:3px;display:block}.audio-bars span:first-child{height:10px;animation:.8s ease-in-out infinite bar-bounce}.audio-bars span:nth-child(2){height:16px;animation:.8s ease-in-out .2s infinite bar-bounce}.audio-bars span:nth-child(3){height:12px;animation:.8s ease-in-out .1s infinite bar-bounce}.audio-bars span:nth-child(4){height:8px;animation:.8s ease-in-out .3s infinite bar-bounce}.audio-btn.paused .audio-bars span{animation-play-state:paused}.theme-switcher{z-index:60;font-family:var(--font-body);position:fixed;top:22px;right:22px}.theme-toggle{border:1px solid var(--gold-light);background:var(--white-glass);-webkit-backdrop-filter:blur(8px);width:44px;height:44px;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);border-radius:50%;place-items:center;display:grid}.theme-toggle:hover,.theme-switcher.is-open .theme-toggle{border-color:var(--gold);box-shadow:var(--shadow-hover);transform:scale(1.05)}.theme-toggle:active{transform:scale(.97)}.theme-toggle-pie{background:conic-gradient(var(--gold) 0deg 120deg, var(--rose) 120deg 240deg, var(--cream-dark) 240deg 360deg);border-radius:50%;width:22px;height:22px;box-shadow:inset 0 0 0 1px #fff9}.theme-pop{background:var(--white-glass);-webkit-backdrop-filter:blur(14px);border:1px solid var(--gold-light);opacity:0;transform-origin:100% 0;pointer-events:none;border-radius:14px;min-width:200px;padding:14px 12px 12px;transition:opacity .22s,transform .22s;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-6px)scale(.98);box-shadow:0 18px 44px #2c2c2c24}.theme-switcher.is-open .theme-pop{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.theme-pop-title{letter-spacing:.28em;text-transform:uppercase;color:var(--gold);text-align:center;margin:2px 0 10px;font-size:.66rem;font-weight:600}.theme-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.theme-option{width:100%;color:var(--text);font-family:var(--font-body);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;padding:9px 10px;font-size:.92rem;transition:background .2s,border-color .2s,color .2s;display:flex}.theme-option:hover{background:var(--gold-faint)}.theme-option.is-active{background:var(--gold-faint);border-color:var(--gold-light);color:var(--charcoal)}.theme-option-swatch{border-radius:50%;flex-shrink:0;width:22px;height:22px;box-shadow:inset 0 0 0 1px #ffffff8c,0 1px 3px #2c2c2c1f}.theme-option-name{font-family:var(--font-heading);flex:1;font-size:.98rem;font-style:italic}.theme-option-check{color:var(--gold);font-size:.85rem;font-weight:700}@media (width<=480px){.theme-switcher{top:14px;right:14px}.theme-toggle{width:40px;height:40px}.theme-toggle-pie{width:20px;height:20px}.theme-pop{min-width:180px}}@media (prefers-reduced-motion:reduce){.theme-toggle,.theme-pop{transition:none}}.wishes-overlay{z-index:55;background:var(--white-glass);-webkit-backdrop-filter:blur(16px)saturate(140%);border:1px solid rgba(var(--gold-rgb), .28);width:320px;max-height:350px;box-shadow:0 24px 60px #2c2c2c2e, 0 4px 12px rgba(var(--gold-rgb), .08);font-family:var(--font-body);border-radius:18px;flex-direction:column;animation:.5s cubic-bezier(.22,1,.36,1) wishes-overlay-in;display:flex;position:fixed;bottom:22px;right:22px;overflow:hidden}@keyframes wishes-overlay-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.wishes-overlay-head{background:linear-gradient(135deg, rgba(var(--gold-rgb), .14), rgba(var(--rose-rgb), .1));border-bottom:1px solid rgba(var(--gold-rgb), .18);padding:14px 14px 12px;position:relative}.wishes-overlay-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.wishes-overlay-title{font-family:var(--font-heading);color:var(--charcoal);letter-spacing:.01em;align-items:center;gap:8px;font-size:1.02rem;font-style:italic;display:inline-flex}.wishes-live-dot{background:var(--rose);width:8px;height:8px;box-shadow:0 0 0 0 rgba(var(--rose-rgb), .55);border-radius:50%;flex-shrink:0;animation:2.2s cubic-bezier(.66,0,0,1) infinite wishes-live-pulse;display:inline-block}@keyframes wishes-live-pulse{0%{box-shadow:0 0 0 0 rgba(var(--rose-rgb), .55)}70%{box-shadow:0 0 0 9px rgba(var(--rose-rgb), 0)}to{box-shadow:0 0 0 0 rgba(var(--rose-rgb), 0)}}.wishes-overlay-count{background:rgba(var(--gold-rgb), .18);min-width:22px;height:22px;color:var(--gold);font-family:var(--font-body);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;margin-left:2px;padding:0 6px;font-size:.72rem;font-style:normal;font-weight:600;display:inline-grid}.wishes-overlay-actions{align-items:center;gap:4px;display:inline-flex}.wishes-overlay-action{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;font-size:1.2rem;line-height:1;transition:background .2s,color .2s,border-color .2s;display:grid}.wishes-overlay-action:hover{background:rgba(var(--gold-rgb), .14);color:var(--charcoal);border-color:rgba(var(--gold-rgb), .3)}.wishes-overlay-action:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.wishes-filter-row{background:rgba(var(--gold-rgb), .1);border-radius:999px;gap:2px;margin-top:10px;padding:3px;display:flex}.wishes-filter-pill{font-family:var(--font-body);letter-spacing:.02em;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:5px 10px;font-size:.74rem;transition:background .25s,color .25s,box-shadow .25s}.wishes-filter-pill.is-active{background:var(--white);color:var(--charcoal);font-weight:500;box-shadow:0 1px 3px #2c2c2c14}.wishes-filter-pill:hover:not(.is-active){color:var(--charcoal)}.wishes-filter-pill:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.wishes-viewport{flex:1;padding:8px 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 18px calc(100% - 18px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 18px calc(100% - 18px),#0000 100%)}.wishes-track{flex-direction:column;display:flex}.wishes-track.is-scrolling{animation-name:wishes-scroll;animation-timing-function:linear;animation-iteration-count:infinite}.wishes-overlay:hover .wishes-track.is-scrolling,.wishes-track.is-scrolling:focus-within{animation-play-state:paused}@keyframes wishes-scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.wishes-list{flex-direction:column;flex-shrink:0;gap:8px;margin:0;padding:6px 12px;list-style:none;display:flex}.wish-card{background:var(--white);border:1px solid rgba(var(--gold-rgb), .16);border-left:3px solid var(--gold);border-radius:10px;transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;box-shadow:0 2px 8px #2c2c2c0a}.wish-card:hover{box-shadow:0 8px 18px rgba(var(--gold-rgb), .16);border-color:rgba(var(--gold-rgb), .4);transform:translateY(-1px)}.wish-card--bride{border-left-color:var(--rose)}.wish-card--bride:hover{box-shadow:0 8px 18px rgba(var(--rose-rgb), .2);border-color:rgba(var(--rose-rgb), .4)}.wish-card-button{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;padding:10px 12px;display:block}.wish-card-button:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;border-radius:8px}.wish-meta{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.wish-name{font-family:var(--font-heading);color:var(--charcoal);letter-spacing:.01em;font-size:.95rem;font-style:italic;font-weight:500}.wish-time{font-family:var(--font-body);color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.7rem}.wish-note{font-family:var(--font-body);color:var(--text);-webkit-line-clamp:3;line-clamp:3;white-space:pre-wrap;-webkit-box-orient:vertical;font-size:.84rem;line-height:1.55;display:-webkit-box;overflow:hidden}.wishes-empty{text-align:center;color:var(--text-muted);font-size:.85rem;font-style:italic;font-family:var(--font-heading);padding:30px 20px}.wishes-chip{z-index:55;border:1px solid rgba(var(--gold-rgb), .3);background:var(--white-glass);-webkit-backdrop-filter:blur(12px)saturate(140%);font-family:var(--font-body);color:var(--charcoal);cursor:pointer;transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:.85rem;display:inline-flex;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 24px #2c2c2c1f}.wishes-chip:hover{border-color:var(--gold);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.wishes-chip:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.wishes-chip-icon{font-size:1rem;line-height:1}.wishes-chip-label{font-family:var(--font-heading);color:var(--charcoal);letter-spacing:.01em;font-size:.95rem;font-style:italic}.wishes-chip-count{background:rgba(var(--gold-rgb), .18);min-width:22px;height:22px;color:var(--gold);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 6px;font-size:.72rem;font-weight:600;display:inline-grid}.wishes-chip--pulse{animation:.7s ease-in-out 3 wishes-chip-pulse}@keyframes wishes-chip-pulse{0%,to{transform:translateY(0)scale(1);box-shadow:0 8px 24px #2c2c2c1f}50%{box-shadow:0 14px 32px rgba(var(--rose-rgb), .32);transform:translateY(-3px)scale(1.05)}}.wishes-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);background:#2c2c2c73;place-items:center;padding:24px;animation:.3s wishes-modal-fade;display:grid;position:fixed;inset:0}@keyframes wishes-modal-fade{0%{opacity:0}to{opacity:1}}.wishes-modal{background:var(--cream);border:1px solid rgba(var(--gold-rgb), .3);border-radius:18px;flex-direction:column;width:min(560px,100%);max-height:min(82vh,720px);animation:.4s cubic-bezier(.22,1,.36,1) wishes-modal-slide;display:flex;overflow:hidden;box-shadow:0 32px 80px #2c2c2c4d}@keyframes wishes-modal-slide{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.wishes-modal-head{background:linear-gradient(135deg, rgba(var(--gold-rgb), .13), rgba(var(--rose-rgb), .1));border-bottom:1px solid rgba(var(--gold-rgb), .18);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 18px;display:flex}.wishes-modal-eyebrow{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin:0 0 6px;font-size:.68rem;font-weight:600}.wishes-modal-title{font-family:var(--font-heading);color:var(--charcoal);letter-spacing:.01em;margin:0;font-size:1.5rem;font-style:italic}.wishes-modal-subtitle{font-family:var(--font-body);color:var(--text-muted);margin:4px 0 0;font-size:.82rem}.wishes-modal-close{border:1px solid rgba(var(--gold-rgb), .25);background:var(--white);width:34px;height:34px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.5rem;line-height:1;transition:background .2s,color .2s,border-color .2s,transform .2s;display:grid}.wishes-modal-close:hover{background:rgba(var(--gold-rgb), .12);color:var(--charcoal);border-color:var(--gold);transform:rotate(90deg)}.wishes-modal-close:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.wishes-filter-row--md{flex-shrink:0;align-self:flex-start;gap:4px;margin:16px 24px 0;padding:4px}.wishes-filter-row--md .wishes-filter-pill{flex:none;padding:6px 18px;font-size:.78rem}.wishes-modal-list{flex-direction:column;flex:1;gap:12px;max-height:50vh;margin:0;padding:18px 24px 24px;list-style:none;display:flex;overflow-y:auto}.wishes-modal-list li{height:100px}.wish-card--modal{cursor:default}.wish-card--modal:hover{box-shadow:0 4px 14px rgba(var(--gold-rgb), .12);transform:none}.wish-card--modal.wish-card--bride:hover{box-shadow:0 4px 14px rgba(var(--rose-rgb), .16)}.wish-card-modal-inner{padding:14px 16px}.wish-note--full{-webkit-line-clamp:unset;line-clamp:unset;-webkit-box-orient:unset;font-size:.9rem;line-height:1.65;display:block;overflow:visible}.wishes-empty--modal{flex:1;place-items:center;padding:60px 20px;font-size:.95rem;display:grid}@media (width<=540px){.wishes-overlay{width:calc(100vw - 28px);max-width:340px;max-height:60vh;bottom:14px;right:14px}.wishes-chip{padding:9px 14px;bottom:14px;right:14px}.wish-note{-webkit-line-clamp:3;line-clamp:3}.wishes-modal-backdrop{align-items:flex-end;padding:12px}.wishes-modal{width:100%;max-height:88vh}.wishes-modal-head{padding:18px 18px 14px}.wishes-modal-list{padding:14px 18px 20px}.wishes-filter-row--md{width:calc(100% - 36px);margin:12px 18px 0}.wishes-filter-row--md .wishes-filter-pill{flex:1}.wishes-modal-title{font-size:1.3rem}}@media (prefers-reduced-motion:reduce){.wishes-track.is-scrolling,.wishes-overlay,.wishes-modal,.wishes-modal-backdrop,.wishes-chip--pulse{animation:none}.wishes-live-dot{box-shadow:0 0 0 3px rgba(var(--rose-rgb), .2);animation:none}.wishes-modal-close:hover{transform:none}}.scroll-progress{background:linear-gradient(90deg, var(--gold), var(--rose), var(--gold));z-index:1000;pointer-events:none;background-size:200% 100%;border-radius:0 2px 2px 0;height:3px;transition:width 80ms linear;animation:2s linear infinite progress-shimmer;position:fixed;top:0;left:0}@keyframes progress-shimmer{0%{background-position:0 0}to{background-position:200% 0}}.nav-dots{z-index:500;flex-direction:column;gap:14px;display:flex;position:fixed;top:50%;right:22px;transform:translateY(-50%)}.nav-dot{justify-content:flex-end;align-items:center;gap:10px;text-decoration:none;display:flex}.nav-dot-label{font-family:var(--font-body);letter-spacing:.06em;color:var(--text-muted);background:var(--white-glass);-webkit-backdrop-filter:blur(8px);border:1px solid var(--gold-light);opacity:0;transition:opacity var(--transition), transform var(--transition);white-space:nowrap;pointer-events:none;border-radius:4px;padding:3px 8px;font-size:.7rem;transform:translate(6px)}.nav-dot:hover .nav-dot-label{opacity:1;transform:translate(0)}.nav-dot-pip{border:1.5px solid var(--gold);background:0 0;border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:all .35s cubic-bezier(.4,0,.2,1)}.nav-dot.active .nav-dot-pip{background:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb), .22);transform:scale(1.5)}.nav-dot:hover .nav-dot-pip{background:var(--rose);border-color:var(--rose);transform:scale(1.25)}@media (width<=900px){.nav-dots{display:none}}@keyframes gradient-flow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes fall-petal{0%{opacity:0;transform:translateY(-20px)rotate(0)}5%{opacity:.85}30%{transform:translate(22px,30vh)rotate(240deg)}65%{transform:translate(-14px,65vh)rotate(480deg)}92%{opacity:.5}to{opacity:0;transform:translate(10px,110vh)rotate(720deg)}}@keyframes text-shimmer{0%{background-position-x:200%}to{background-position-x:-200%}}@keyframes name-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translate(0,0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scroll-pulse{0%,to{opacity:.8;transform:scaleY(1)}50%{opacity:.3;transform:scaleY(.6)}}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100svh;min-height:520px;display:flex;position:relative;overflow:hidden}.hero-bg{background:linear-gradient(-45deg, var(--cream), var(--cream-dark), var(--rose-light), var(--gold-light), var(--cream-dark), var(--rose-light), var(--cream));will-change:background-position, transform;background-size:400% 400%;animation:16s infinite gradient-flow;position:absolute;inset:-20%}.petals{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.petal{background:linear-gradient(135deg, rgba(var(--rose-rgb), .75), rgba(var(--gold-rgb), .5));will-change:transform, opacity;border-radius:70% 30%/30% 70%;animation:linear infinite fall-petal;position:absolute;top:-20px}.hero-content{z-index:2;flex-direction:column;align-items:center;gap:20px;max-width:860px;padding:0 24px;display:flex;position:relative}.hero-pre{font-family:var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);font-size:.82rem;font-weight:400;animation:1s .2s both fade-up}.hero-names{letter-spacing:0;font-size:clamp(4rem,12vw,8.5rem);font-weight:400;line-height:1;font-family:var(--font-display);color:var(--charcoal);flex-flow:column wrap;justify-content:center;align-items:center;gap:12px 20px;font-style:normal;line-height:1.25;display:flex}.hero-name-left,.hero-name-right{background:linear-gradient(90deg, var(--charcoal) 0%, var(--charcoal) 20%, var(--gold-light) 38%, var(--cream) 50%, var(--gold-light) 62%, var(--charcoal) 80%, var(--charcoal) 100%);-webkit-text-fill-color:transparent;will-change:transform, background-position;backface-visibility:hidden;-webkit-font-smoothing:antialiased;background-position-x:200%;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block}.hero-name-left{animation:1.8s cubic-bezier(.22,1,.36,1) .5s both name-enter,9s ease-in-out .5s infinite alternate text-shimmer}.hero-name-right{animation:1.8s cubic-bezier(.22,1,.36,1) .9s both name-enter,9s ease-in-out .8s infinite alternate text-shimmer}.hero-ampersand{color:var(--gold);font-size:.72em;font-style:italic;animation:1s .5s both fade-up}.hero-date-row{align-items:center;gap:16px;animation:1s .8s both fade-up;display:flex}.hero-rule{background:linear-gradient(90deg, transparent, var(--gold), transparent);opacity:.7;flex:1;min-width:36px;height:1px}.hero-date{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);white-space:nowrap;font-size:.9rem}.hero-tagline{font-family:var(--font-heading);color:var(--text-muted);min-height:1.5em;font-size:clamp(1rem,2.5vw,1.2rem);font-style:italic}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.hero-cursor{color:var(--gold);margin-left:1px;font-style:normal;display:inline-block}.hero-cursor.blink{animation:1.1s step-end infinite blink-cursor}.countdown{gap:clamp(8px,2vw,20px);margin-top:8px;animation:1s 1.2s both fade-up;display:flex}.countdown-item{background:var(--white-glass);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(var(--gold-rgb), .35);cursor:default;border-radius:12px;flex-direction:column;align-items:center;min-width:clamp(60px,11vw,88px);padding:clamp(12px,2vw,20px) clamp(14px,3vw,26px);transition:box-shadow .4s,border-color .4s;display:flex}@media (hover:hover){.countdown-item:hover{box-shadow:0 8px 28px rgba(var(--gold-rgb), .3);border-color:rgba(var(--gold-rgb), .6)}}.countdown-value{font-family:var(--font-heading);color:var(--charcoal);font-variant-numeric:tabular-nums;font-size:clamp(1.7rem,5vw,2.6rem);line-height:1}.countdown-label{font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin-top:4px;font-size:.62rem}.hero-scroll{z-index:2;flex-direction:column;align-items:center;gap:8px;animation:1s 1.6s both fade-up;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.hero-scroll-text{letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);font-size:.68rem}.hero-scroll-line{background:linear-gradient(to bottom, var(--gold), transparent);transform-origin:top;width:1px;height:44px;animation:2s ease-in-out infinite scroll-pulse}@media (width<=640px){.hero-names{flex-direction:column;gap:4px}.hero-ampersand{font-size:.55em}}@media (width<=480px){.hero-content{gap:16px;padding:0 18px}.hero-pre{letter-spacing:.18em;font-size:.72rem}.hero-tagline{font-size:.92rem}.countdown{gap:8px}.countdown-item{border-radius:10px;min-width:54px;padding:10px 12px}.countdown-value{font-size:1.5rem}.countdown-label{letter-spacing:.14em;font-size:.55rem}.hero-scroll{bottom:22px}.hero-rule{min-width:24px}}@media (prefers-reduced-motion:reduce){.petal{display:none}.hero-bg{animation:none}.hero-name-left,.hero-name-right{background-position-x:50%;animation:1s both name-enter}.hero-pre,.hero-ampersand,.hero-date-row,.hero-tagline,.countdown,.hero-scroll{opacity:1;animation:none}.hero-scroll-line{animation:none}}.intro-bg{background:linear-gradient(180deg, var(--white) 0%, var(--cream) 100%)}.intro-header{text-align:center;margin-bottom:clamp(36px,5vw,64px)}.intro-section-title{font-style:italic;font-weight:400}.intro-spread{grid-template-columns:1fr auto 1fr;grid-template-areas:"left spine right";align-items:start;gap:clamp(20px,3vw,48px);display:grid}.intro-page{text-align:center;flex-direction:column;justify-content:space-between;align-items:center;gap:24px;width:100%;max-width:380px;height:100%;padding:16px 28px;display:flex;position:relative}.intro-page-content{flex-direction:column;align-items:center;gap:24px;display:flex}.intro-page-left{grid-area:left;justify-self:end}.intro-page-right{grid-area:right;justify-self:start}.intro-side-label{font-family:var(--font-body);letter-spacing:.6em;text-transform:uppercase;color:var(--gold);opacity:.7;writing-mode:vertical-rl;-webkit-user-select:none;user-select:none;font-size:.58rem;font-weight:600;position:absolute;top:18px;transform:rotate(180deg)}.intro-page-left .intro-side-label{left:0}.intro-page-right .intro-side-label{color:var(--rose);right:0}.intro-photo-frame{flex-direction:column;align-items:center;gap:18px;width:100%;display:flex;position:relative}.intro-photo{aspect-ratio:3/4;z-index:1;border-radius:6px;justify-content:center;align-items:center;width:100%;max-width:220px;transition:transform .5s cubic-bezier(.4,0,.2,1),box-shadow .5s;display:flex;position:relative;overflow:hidden;box-shadow:0 22px 48px #2c2c2c29,0 4px 12px #2c2c2c0f}.intro-photo:before{content:"";pointer-events:none;z-index:10000000;border-radius:3px;position:absolute;inset:10px}.intro-photo:after{content:"";border:1px solid rgba(var(--gold-rgb), .4);pointer-events:none;border-radius:9px;transition:border-color .5s;position:absolute;inset:-10px}.accent-rose .intro-photo:after{border-color:rgba(var(--rose-rgb), .48)}@media (hover:hover){.intro-page:hover .intro-photo{transform:translateY(-5px);box-shadow:0 30px 60px #2c2c2c38,0 6px 16px #2c2c2c14}.intro-page:hover .intro-photo:after{border-color:rgba(var(--gold-rgb), .7)}.accent-rose.intro-page:hover .intro-photo:after{border-color:rgba(var(--rose-rgb), .75)}}.intro-monogram{font-family:var(--font-heading);color:var(--white);text-shadow:0 6px 22px #2c2c2c40;letter-spacing:-.03em;font-size:clamp(3.6rem,7vw,5.4rem);font-style:italic;font-weight:500;line-height:1}.intro-photo-caption{font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;color:var(--text-muted);font-size:.74rem;font-style:italic}.intro-numeral{font-family:var(--font-heading);color:var(--gold);opacity:.12;pointer-events:none;letter-spacing:-.05em;z-index:0;font-size:clamp(4rem,8vw,6.5rem);font-style:italic;font-weight:400;line-height:.8;position:absolute;top:-10px}.intro-page-left .intro-numeral{right:-6px}.intro-page-right .intro-numeral{color:var(--rose);left:-6px}.intro-text{text-align:center;flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.intro-name{font-family:var(--font-display);color:var(--charcoal);letter-spacing:0;font-size:clamp(2.6rem,5.8vw,3.8rem);font-style:normal;font-weight:400;line-height:1.15}.intro-rule{background:var(--gold);width:56px;height:1px;position:relative}.intro-rule:before,.intro-rule:after{content:"";background:var(--gold);border-radius:50%;width:4px;height:4px;position:absolute;top:50%;transform:translateY(-50%)}.intro-rule:before{left:-3px}.intro-rule:after{right:-3px}.accent-rose .intro-rule,.accent-rose .intro-rule:before,.accent-rose .intro-rule:after{background:var(--rose)}.intro-bio{font-family:var(--font-body);color:var(--text);max-width:36ch;font-size:.96rem;font-style:normal;font-weight:400;line-height:1.78}.intro-facts{flex-direction:column;align-items:flex-start;gap:10px;margin-top:4px;list-style:none;display:flex}.intro-facts li{font-family:var(--font-body);color:var(--text);align-items:center;gap:12px;font-size:.92rem;display:flex}.intro-fact-emoji{text-align:center;flex-shrink:0;width:1.4em;font-size:1.05rem;line-height:1}.intro-parents{grid-template-rows:auto 1fr 1fr;grid-template-columns:1fr;justify-content:center;gap:4px;width:100%;display:grid}.intro-parents-label{width:100%;font-family:var(--font-heading);letter-spacing:.32em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;align-items:center;gap:14px;margin-bottom:10px;font-size:.74rem;font-style:italic;display:flex}.intro-parents-label:before,.intro-parents-label:after{content:"";background:linear-gradient(90deg, transparent, rgba(var(--gold-rgb), .45));flex:1;height:1px}.intro-parents-label:after{background:linear-gradient(90deg, rgba(var(--gold-rgb), .45), transparent)}.accent-rose .intro-parents-label:before{background:linear-gradient(90deg, transparent, rgba(var(--rose-rgb), .55))}.accent-rose .intro-parents-label:after{background:linear-gradient(90deg, rgba(var(--rose-rgb), .55), transparent)}.intro-parent{font-family:var(--font-heading);color:var(--text);font-size:1rem;line-height:1.6}.intro-spine{grid-area:spine;justify-content:center;align-self:stretch;align-items:center;min-width:64px;padding:24px 0;display:flex;position:relative}.intro-spine:before,.intro-spine:after{content:"";background:linear-gradient(to bottom, transparent, rgba(var(--gold-rgb), .5), transparent);width:1px;position:absolute;left:50%;transform:translate(-50%)}.intro-spine:before{height:calc(50% - 36px);top:0}.intro-spine:after{height:calc(50% - 36px);bottom:0}.intro-spine-amp{width:clamp(54px,7vw,68px);height:clamp(54px,7vw,68px);font-family:var(--font-heading);color:var(--gold);background:var(--cream);border:1px solid rgba(var(--gold-rgb), .5);box-shadow:0 0 0 4px var(--white-glass), 0 8px 22px rgba(var(--gold-rgb), .18);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:clamp(1.7rem,3.2vw,2.3rem);font-style:italic;font-weight:400;line-height:1;display:inline-flex;position:relative}@media (width<=880px){.intro-spread{grid-template-columns:1fr;grid-template-areas:"left""spine""right";justify-items:center;gap:20px}.intro-page,.intro-page-left,.intro-page-right{text-align:left;grid-template-columns:minmax(120px,38%) 1fr;grid-template-areas:"photo text""photo parents""photo parents""photo parents""photo parents";justify-self:stretch;align-items:start;gap:12px clamp(14px,3vw,22px);width:100%;max-width:520px;padding:12px 8px;display:grid}.intro-page-right{grid-template-columns:1fr minmax(120px,38%);grid-template-areas:"text photo""parents photo""parents photo""parents photo""parents photo"}.intro-page-content{display:contents}.intro-side-label{display:none}.intro-photo-frame{grid-area:photo;align-self:start;gap:10px}.intro-photo{max-width:100%}.intro-text{text-align:center;grid-area:text;align-items:center;gap:10px}.intro-page-right .intro-text{text-align:center;align-items:center}.intro-parents{text-align:center;grid-area:parents}.intro-page-right .intro-parents{text-align:center}.intro-name{font-size:clamp(2rem,7vw,2.8rem)}.intro-spine{align-self:auto;width:100%;min-width:0;min-height:36px;padding:0}.intro-spine:before,.intro-spine:after{background:linear-gradient(to right, transparent, rgba(var(--gold-rgb), .5), transparent);width:84px;height:1px;top:50%;bottom:auto;transform:translateY(-50%)}.intro-spine:before{left:calc(50% - 100px)}.intro-spine:after{left:auto;right:calc(50% - 100px)}}@media (width<=480px){.intro-page,.intro-page-left,.intro-page-right{gap:8px 14px;padding:8px 4px}.intro-bio{font-size:.92rem;line-height:1.72}.intro-numeral{opacity:.1;font-size:3rem}.intro-parent{font-size:.88rem}.intro-photo-caption{letter-spacing:.22em;font-size:.66rem}.intro-parents-label{letter-spacing:.24em;gap:8px;margin-bottom:6px;font-size:.62rem}.intro-spine-amp{width:52px;height:52px;font-size:1.6rem}}.our-story-bg{background:var(--white)}.timeline{flex-direction:column;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, transparent, var(--gold-light) 8%, var(--gold-light) 92%, transparent);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{align-items:center;padding:28px 0;display:flex;position:relative}.timeline-item.tl-left{justify-content:flex-start;padding-right:calc(50% + 48px)}.timeline-item.tl-right{justify-content:flex-end;padding-left:calc(50% + 48px)}.timeline-card{background:var(--cream);border:1px solid var(--gold-light);border-radius:var(--radius);max-width:380px;transition:box-shadow var(--transition), transform var(--transition);text-align:left;padding:28px 32px}@media (hover:hover){.timeline-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}}.tl-emoji{margin-bottom:8px;font-size:1.7rem;display:block}.tl-year{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;font-size:.72rem;font-weight:600;display:block}.tl-title{color:var(--charcoal);margin-bottom:10px;font-size:1.25rem}.tl-desc{color:var(--text);font-size:.9rem;line-height:1.75}.timeline-dot{background:var(--gold);border:3px solid var(--white);width:14px;height:14px;box-shadow:0 0 0 2px var(--gold-light);z-index:1;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=768px){.timeline:before{left:18px}.timeline-item{padding:18px 0}.timeline-item.tl-left,.timeline-item.tl-right{justify-content:flex-start;padding-left:42px;padding-right:0}.timeline-dot{width:12px;height:12px;left:18px}.timeline-card{max-width:100%;padding:22px 20px}.tl-emoji{font-size:1.5rem}.tl-title{font-size:1.12rem}.tl-desc{font-size:.88rem}}.wedding-calendar{background:var(--white);border:1px solid var(--gold-light);border-radius:var(--radius);max-width:460px;box-shadow:var(--shadow-soft);margin:0 auto;padding:36px 32px 32px;position:relative;overflow:hidden}.wedding-calendar:before{content:"";background:radial-gradient(circle at 0% 0%, var(--gold-faint) 0%, transparent 55%), radial-gradient(circle at 100% 100%, var(--rose-rgb) 0%, transparent 55%);pointer-events:none;position:absolute;inset:0}.wc-header{justify-content:center;align-items:baseline;gap:14px;margin-bottom:24px;display:flex;position:relative}.wc-month{font-family:var(--font-heading);color:var(--charcoal);letter-spacing:.02em;font-size:1.6rem;font-style:italic}.wc-dot{color:var(--gold);font-size:1.2rem;line-height:1}.wc-year{font-family:var(--font-body);letter-spacing:.36em;text-transform:uppercase;color:var(--gold);padding-top:4px;font-size:.78rem;font-weight:500}.wc-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid;position:relative}.wc-weekdays{border-bottom:1px solid var(--gold-faint);margin-bottom:10px;padding-bottom:12px}.wc-weekday{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-align:center;font-size:.7rem;font-weight:600}.wc-day{aspect-ratio:1;font-family:var(--font-body);color:var(--text);transition:color var(--transition);border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;display:flex;position:relative}.wc-day-num{z-index:2;position:relative}.wc-empty{visibility:hidden}.wc-day-wedding{color:var(--white);font-weight:600}.wc-day-wedding .wc-day-num{font-family:var(--font-heading);font-size:1.05rem;transform:translateY(-6%)}.wc-day-heart{z-index:1;filter:drop-shadow(0 6px 14px #e8a59880);transform-origin:50% 60%;width:88%;height:88%;animation:1.8s ease-in-out infinite wc-heartbeat;position:absolute;inset:6%}.wc-day-wedding~.wc-day-wedding .wc-day-heart{animation-delay:-.6s}.wc-heart-stop-start{stop-color:var(--gold)}.wc-heart-stop-end{stop-color:var(--rose)}@keyframes wc-heartbeat{0%,to{transform:scale(1)}18%{transform:scale(1.08)}32%{transform:scale(.98)}50%{transform:scale(1.05)}64%{transform:scale(1)}}.wc-schedule{text-align:center;flex-direction:column;gap:18px;margin-top:22px;display:flex}.wc-schedule-day{flex-direction:column;align-items:center;gap:8px;display:flex}.wc-schedule-date{font-family:var(--font-heading);color:var(--text-muted);letter-spacing:.04em;font-size:.95rem;font-style:italic;line-height:1.5}.wc-schedule-events{flex-direction:column;align-items:center;gap:4px;width:100%;margin:0;padding:0;list-style:none;display:flex}.wc-schedule-event{align-items:center;gap:12px;font-size:.95rem;display:inline-flex}.wc-schedule-event-name{font-family:var(--font-heading);color:var(--charcoal);font-style:italic}.wc-schedule-event-sep{background:var(--gold);opacity:.65;border-radius:50%;width:4px;height:4px}.wc-schedule-event-time{font-family:var(--font-body);color:var(--text);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-weight:500}@media (width<=480px){.wedding-calendar{padding:28px 20px 24px}.wc-month{font-size:1.35rem}.wc-year{letter-spacing:.3em;font-size:.72rem}.wc-day{font-size:.88rem}.wc-day-wedding .wc-day-num{font-size:.98rem}.wc-weekday{letter-spacing:.16em;font-size:.62rem}.wc-grid{gap:2px}}@media (prefers-reduced-motion:reduce){.wc-day-heart{animation:none}}.details-bg{background:linear-gradient(180deg, var(--cream-dark) 0%, var(--cream) 100%)}.location-bg{background:var(--cream)}.location-grid{grid-template-columns:minmax(280px,1fr) 1.3fr;align-items:stretch;gap:clamp(20px,3vw,36px);display:grid}.location-info{background:var(--white);border:1px solid var(--gold-light);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow-soft);flex-direction:column;align-items:center;gap:12px;padding:clamp(28px,4vw,40px) clamp(20px,3vw,32px);display:flex}.location-icon{margin-bottom:4px;font-size:2rem;line-height:1}.location-name{font-family:var(--font-heading);color:var(--charcoal);font-size:clamp(1.3rem,2.6vw,1.6rem);font-style:italic;font-weight:500;line-height:1.3}.location-rule{background:var(--gold);width:48px;height:1px;margin:4px 0 8px}.location-address{font-family:var(--font-body);color:var(--text);max-width:32ch;font-size:.96rem;line-height:1.7}.location-detail{font-family:var(--font-heading);color:var(--text-muted);font-size:.9rem;font-style:italic;line-height:1.6}.location-times{background:linear-gradient(135deg, var(--gold-faint), rgba(var(--rose-rgb), .12));border:1px solid var(--gold-light);border-radius:12px;flex-direction:column;gap:8px;width:100%;margin-top:8px;padding:14px 18px;display:flex}.location-time-row{justify-content:space-between;align-items:center;gap:12px;font-size:.92rem;display:flex}.location-time-day{justify-content:flex-end;align-items:baseline;gap:6px;min-width:92px;display:inline-flex}.location-time-weekday{font-family:var(--font-body);letter-spacing:.18em;color:var(--gold);font-size:.7rem;font-weight:700}.location-time-date{font-family:var(--font-heading);color:var(--charcoal);letter-spacing:.02em;font-size:1rem;font-style:italic}.location-time-sep{background:var(--gold-light);width:1px;height:14px}.location-time-list{font-family:var(--font-body);color:var(--text);letter-spacing:.02em;font-variant-numeric:tabular-nums;text-align:left;min-width:92px;font-weight:500}.location-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.location-btn{font-family:var(--font-body);letter-spacing:.04em;cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:12px 22px;font-size:.92rem;font-weight:600;text-decoration:none;transition:opacity .3s,transform .3s,box-shadow .3s,background .3s,color .3s,border-color .3s;display:inline-flex}.location-btn--primary{background:linear-gradient(135deg, var(--gold), var(--rose));color:var(--white)}.location-btn--ghost{color:var(--gold);border-color:var(--gold-light);background:0 0}.location-btn--ghost.is-copied{background:var(--gold-faint);color:var(--charcoal);border-color:var(--gold)}.location-btn span{transition:transform .3s}@media (hover:hover){.location-btn--primary:hover{opacity:.92;box-shadow:0 10px 26px rgba(var(--gold-rgb), .4);transform:translateY(-2px)}.location-btn--primary:hover span{transform:translate(4px)}.location-btn--ghost:hover{background:var(--gold-faint);color:var(--charcoal);border-color:var(--gold);transform:translateY(-2px)}}.location-btn:active{transform:translateY(0)}.location-map{border-radius:var(--radius);box-shadow:var(--shadow-soft);border:1px solid var(--gold-light);min-height:340px;position:relative;overflow:hidden}.location-map iframe{border:0;width:100%;height:100%;min-height:340px;display:block}@media (width<=880px){.location-grid{grid-template-columns:1fr;gap:18px}.location-map{order:-1;min-height:280px}.location-map iframe{min-height:280px}}@media (width<=480px){.location-info{padding:24px 16px}.location-icon{font-size:1.7rem}.location-address{font-size:.92rem}.location-times{padding:12px 14px}.location-time-row{gap:10px;font-size:.86rem}.location-time-day{min-width:78px}.location-actions{flex-direction:column;width:100%}.location-btn{justify-content:center;width:100%;padding:13px 20px}.location-map,.location-map iframe{min-height:240px}}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-zoom-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.lightbox{z-index:100000;-webkit-backdrop-filter:blur(14px);cursor:zoom-out;background:#140e0ad1;justify-content:center;align-items:center;padding:clamp(16px,4vw,48px);animation:.32s cubic-bezier(.4,0,.2,1) both lightbox-fade-in;display:flex;position:fixed;inset:0}.lightbox-figure{cursor:default;flex-direction:column;align-items:center;gap:14px;max-width:min(1100px,92vw);max-height:90svh;animation:.4s cubic-bezier(.22,1,.36,1) both lightbox-zoom-in;display:flex;position:relative}.lightbox-image{--ar:1.5;width:min(1100px, 92vw, calc(80svh * var(--ar)));aspect-ratio:var(--ar);box-shadow:0 30px 80px #00000073, 0 0 0 1px rgba(var(--gold-rgb), .25);background-position:50%;background-size:cover;border-radius:14px}.lightbox-caption{width:100%;color:var(--cream);font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:16px;font-size:.84rem;display:flex}.lightbox-label{color:var(--cream);opacity:.92}.lightbox-counter{color:var(--gold);font-variant-numeric:tabular-nums}.lightbox-close,.lightbox-nav{background:rgba(var(--cream-rgb), .08);border:1px solid rgba(var(--gold-rgb), .4);color:var(--cream);cursor:pointer;-webkit-backdrop-filter:blur(6px);border-radius:999px;justify-content:center;align-items:center;transition:background .25s,border-color .25s,transform .25s,color .25s;display:flex;position:absolute}.lightbox-close:hover,.lightbox-nav:hover{background:rgba(var(--gold-rgb), .22);border-color:var(--gold);color:var(--cream)}.lightbox-close:focus-visible,.lightbox-nav:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.lightbox-close{width:44px;height:44px;font-size:1.6rem;font-weight:300;line-height:1;top:clamp(12px,2vw,24px);right:clamp(12px,2vw,24px)}.lightbox-nav{width:52px;height:52px;font-size:2rem;line-height:1;top:50%;transform:translateY(-50%)}.lightbox-prev{left:clamp(8px,2vw,24px)}.lightbox-next{right:clamp(8px,2vw,24px)}.lightbox-nav:hover{transform:translateY(-50%)scale(1.06)}@media (width<=540px){.lightbox-image{width:min(92vw, calc(72svh * var(--ar)))}.lightbox-nav{width:42px;height:42px;font-size:1.6rem}.lightbox-close{width:38px;height:38px;font-size:1.4rem}.lightbox-caption{letter-spacing:.14em;font-size:.72rem}}@media (prefers-reduced-motion:reduce){.lightbox,.lightbox-figure{animation:none!important}}.gallery-bg{background:var(--cream-dark)}.gallery-grid{column-count:3;column-gap:14px;margin-bottom:24px}.gallery-item{cursor:zoom-in;width:100%;font:inherit;color:inherit;appearance:none;break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;background-position:50%;background-repeat:no-repeat;background-size:cover;border:0;border-radius:12px;margin:0 0 14px;padding:0;transition:transform .4s cubic-bezier(.4,0,.2,1);display:block;position:relative;overflow:hidden}.gallery-item:focus-visible{outline:2px solid var(--gold);outline-offset:4px}@media (hover:hover){.gallery-item:hover{transform:scale(1.025)}.gallery-item:hover .gallery-overlay{background:#2c2c2c52}.gallery-item:hover .gallery-heart{opacity:1;transform:scale(1)rotate(0)}}.gallery-overlay{transition:background var(--transition);background:#2c2c2c00;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gallery-heart{color:var(--white);opacity:0;font-size:2.2rem;transition:opacity .4s,transform .4s cubic-bezier(.34,1.56,.64,1);transform:scale(.5)rotate(-20deg)}.gallery-frame{pointer-events:none;opacity:0;border:1px solid #ffffff8c;border-radius:6px;transition:opacity .5s,transform .6s cubic-bezier(.4,0,.2,1);position:absolute;inset:8px;transform:scale(1.04)}.gallery-note{font-family:var(--font-heading);color:var(--text-muted);text-align:center;font-size:.92rem;font-style:italic}.gallery-pager{display:none}@media (width<=900px){.gallery-grid{column-count:2}}@media (width<=640px){.gallery-grid{column-count:initial;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:14px;margin:0 0 18px;padding:8px 4px 22px;display:flex;overflow-x:auto}.gallery-grid::-webkit-scrollbar{display:none}.gallery-grid .gallery-item{scroll-snap-align:center;flex:0 0 80%;margin:0;transition:opacity .55s,box-shadow .55s,transform .45s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 22px #0000001a}.gallery-grid .gallery-item:first-child{scroll-snap-align:start}.gallery-grid .gallery-item:last-child{scroll-snap-align:end}.gallery-grid .gallery-item.reveal:not(.is-active){opacity:.42}.gallery-grid .gallery-item.reveal.is-active{opacity:1;box-shadow:0 24px 48px -12px rgba(var(--gold-rgb), .45), 0 6px 18px #00000029}.gallery-grid .gallery-item.is-active .gallery-frame{opacity:1;transform:scale(1)}.gallery-grid .gallery-item.is-active .gallery-overlay{background:linear-gradient(#2c2c2c00 55%,#2c2c2c2e 100%)}.gallery-pager{justify-content:center;align-items:center;gap:22px;margin-bottom:8px;display:flex}.gallery-dots{align-items:center;gap:8px;display:inline-flex}.gallery-dot{background:rgba(var(--gold-rgb), .22);cursor:pointer;border:0;border-radius:50%;width:7px;height:7px;padding:0;transition:width .45s cubic-bezier(.4,0,.2,1),background .35s}.gallery-dot.is-active{background:linear-gradient(90deg, var(--gold), var(--rose));border-radius:4px;width:24px}.gallery-dot:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.gallery-counter{font-family:var(--font-heading);color:var(--text-muted);letter-spacing:.06em;align-items:baseline;font-size:.86rem;font-style:italic;display:inline-flex}.gallery-counter-num{color:var(--gold);font-variant-numeric:tabular-nums;font-size:1rem;font-style:normal;font-weight:600}.gallery-counter-sep{opacity:.4;margin:0 6px}.gallery-counter-total{font-variant-numeric:tabular-nums}}.rsvp-bg{background:var(--white)}.rsvp-sub{color:var(--text-muted);margin-top:8px;font-size:.93rem}.rsvp-sub strong{color:var(--gold);font-weight:600}.rsvp-card{background:var(--cream);border:1px solid var(--gold-light);border-radius:var(--radius);max-width:540px;box-shadow:var(--shadow-soft);text-align:left;margin:0 auto;padding:40px}.rsvp-form{flex-direction:column;gap:22px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group>label:first-child{letter-spacing:.04em;color:var(--charcoal);font-size:.83rem;font-weight:600}.form-group input[type=text],.form-group input[type=tel],.form-group input[type=number],.form-group textarea{border:1px solid var(--gold-light);font-family:var(--font-body);color:var(--charcoal);background:var(--white);transition:border-color var(--transition), box-shadow var(--transition);border-radius:8px;outline:none;padding:12px 16px;font-size:1rem}.form-group textarea{resize:vertical;min-height:88px;line-height:1.55}.form-group input:focus,.form-group textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb), .15)}.form-group input:disabled,.form-group textarea:disabled{opacity:.65;cursor:not-allowed}.form-group.has-error input,.form-group.has-error textarea{border-color:#c0392b}.form-error{color:#c0392b;font-size:.78rem}.form-optional{color:var(--text-muted);letter-spacing:0;margin-left:4px;font-size:.78rem;font-weight:400}.radio-group{flex-direction:column;gap:10px;display:flex}.radio-opt{border:1px solid var(--gold-light);cursor:pointer;color:var(--text);background:var(--white);transition:border-color var(--transition), background var(--transition);border-radius:8px;align-items:center;gap:12px;padding:13px 18px;font-size:.93rem;display:flex}.radio-opt input[type=radio]{accent-color:var(--gold);flex-shrink:0;width:16px;height:16px}.radio-opt.selected{border-color:var(--gold);background:var(--gold-faint);color:var(--charcoal);font-weight:500}.rsvp-btn{background:linear-gradient(135deg, var(--gold), var(--rose));color:var(--white);letter-spacing:.05em;min-width:200px;transition:opacity var(--transition), transform var(--transition), box-shadow var(--transition);border:none;border-radius:8px;align-self:center;padding:14px 36px;font-size:1rem;font-weight:600}@media (hover:hover){.rsvp-btn:hover{opacity:.9;box-shadow:0 8px 24px rgba(var(--gold-rgb), .4);transform:translateY(-2px)}}.rsvp-btn:active{transform:translateY(0)}.rsvp-btn:disabled{opacity:.6;cursor:progress;box-shadow:none;transform:none}@media (hover:hover){.rsvp-btn:disabled:hover{opacity:.6;box-shadow:none;transform:none}}.rsvp-banner{border-radius:10px;flex-wrap:wrap;justify-content:center;align-self:stretch;align-items:center;gap:12px;padding:12px 16px;font-size:.88rem;line-height:1.5;display:flex}.rsvp-banner--error{color:#8b2a20;background:#c0392b14;border:1px solid #c0392b4d}.rsvp-banner-retry{color:#8b2a20;font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #c0392b80;border-radius:6px;padding:6px 14px;font-size:.85rem;font-weight:600;transition:background .2s,color .2s}.rsvp-banner-retry:hover{background:#c0392b1f}.rsvp-success{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:20px 0;display:flex}@keyframes bounce-in{0%{transform:scale(.5)}60%{transform:scale(1.2)}to{transform:scale(1)}}.rsvp-success-icon{font-size:3rem;animation:.5s both bounce-in}.rsvp-success h3{color:var(--charcoal);font-size:1.15rem;line-height:1.5}.rsvp-success p{color:var(--text-muted);font-size:.93rem}@media (width<=600px){.rsvp-card{padding:28px 18px}.form-group input[type=text],.form-group input[type=number]{padding:14px;font-size:16px}.radio-opt{padding:14px 16px;font-size:.95rem}.rsvp-btn{width:100%;min-width:0;padding:15px 24px}}.gift-bg{background:linear-gradient(180deg, var(--cream) 0%, var(--cream-dark) 100%);position:relative;overflow:hidden}.gift-bg:before{content:"";background:radial-gradient(circle at 18% 22%, rgba(var(--gold-rgb), .12), transparent 55%), radial-gradient(circle at 82% 78%, rgba(var(--rose-rgb), .14), transparent 55%);pointer-events:none;position:absolute;inset:0}.gift-intro{max-width:620px;color:var(--text);margin:0 auto clamp(32px,5vw,48px);font-size:clamp(.95rem,2.4vw,1.05rem);font-style:italic;line-height:1.75}.gift-spread{z-index:1;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,40px);display:grid;position:relative}.gift-spread-single{grid-template-columns:minmax(0,460px);justify-content:center}.gift-card{background:var(--white);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow-soft);border:1px solid rgba(var(--gold-rgb), .12);transition:transform var(--transition), box-shadow var(--transition);text-align:center;flex-direction:column;align-items:center;padding:clamp(28px,4vw,40px) clamp(22px,3vw,32px);display:flex;position:relative}.gift-card:before{content:"";background:linear-gradient(90deg, var(--gold), var(--rose));border-radius:calc(var(--radius) + 6px) calc(var(--radius) + 6px) 0 0;opacity:.85;height:4px;position:absolute;top:0;left:0;right:0}.gift-card.accent-gold:before{background:linear-gradient(90deg, var(--gold-light), var(--gold))}.gift-card.accent-rose:before{background:linear-gradient(90deg, var(--rose-light), var(--rose))}@media (hover:hover){.gift-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-6px)}}.gift-side-label{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);opacity:.6;font-size:.78rem;font-style:italic;position:absolute;top:18px;right:18px}.gift-card-head{margin-bottom:clamp(20px,3vw,28px)}.gift-role{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;font-size:.78rem;display:block}.gift-card.accent-rose .gift-role{color:var(--rose)}.gift-name{font-family:var(--font-heading);color:var(--charcoal);font-size:clamp(1.4rem,3.4vw,1.75rem);font-style:italic;font-weight:500}.gift-stage{flex-direction:column;align-items:center;width:100%;display:flex}@keyframes gift-stage-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.gift-closed,.gift-opened{text-align:center;flex-direction:column;align-items:center;width:100%;animation:.55s cubic-bezier(.4,0,.2,1) both gift-stage-in;display:flex}.gift-closed{appearance:none;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius);outline-offset:4px;background:0 0;border:none;padding:0}.gift-closed:focus-visible{outline:2px solid var(--gold)}.gift-card.accent-rose .gift-closed:focus-visible{outline-color:var(--rose)}.gift-box{transform-origin:50% 90%;width:clamp(140px,22vw,180px);height:clamp(140px,22vw,180px);margin:clamp(8px,2vw,16px) auto clamp(20px,3vw,28px);animation:3.6s ease-in-out infinite gift-bob;display:block;position:relative}@keyframes gift-bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-6px)rotate(2deg)}}.gift-card.accent-gold .gift-box-body{background:linear-gradient(155deg, var(--gold) 0%, var(--gold-light) 100%)}.gift-card.accent-rose .gift-box-body{background:linear-gradient(155deg, var(--rose) 0%, var(--rose-light) 100%)}.gift-card.accent-gold .gift-box-lid{background:linear-gradient(165deg, var(--gold) 0%, var(--gold-light) 100%)}.gift-card.accent-rose .gift-box-lid{background:linear-gradient(165deg, var(--rose) 0%, var(--rose-light) 100%)}.gift-box-body{box-shadow:inset 0 -8px 16px #0000001f, 0 14px 24px rgba(var(--gold-rgb), .25);border-radius:6px;position:absolute;inset:32% 8% 4%}.gift-box-lid{z-index:2;border-radius:6px;height:18%;position:absolute;top:22%;left:4%;right:4%;box-shadow:0 6px 12px #0000002e}.gift-box-ribbon-v{z-index:3;background:linear-gradient(#ffffff8c 0%,#ffffffd9 50%,#ffffff8c 100%);border-radius:2px;width:14px;margin-left:-7px;position:absolute;top:22%;bottom:4%;left:50%}.gift-box-ribbon-h{z-index:3;background:linear-gradient(90deg,#ffffff8c 0%,#ffffffd9 50%,#ffffff8c 100%);border-radius:2px;height:10px;position:absolute;top:40%;left:8%;right:8%}.gift-box-bow{z-index:4;background:radial-gradient(ellipse at 25% 50%, var(--white) 0%, var(--white) 30%, transparent 31%), radial-gradient(ellipse at 75% 50%, var(--white) 0%, var(--white) 30%, transparent 31%);filter:drop-shadow(0 2px 4px #00000026);width:56px;height:32px;margin-left:-28px;position:absolute;top:0;left:50%}.gift-box-bow:after{content:"";background:radial-gradient(ellipse at 25% 50%, rgba(var(--gold-rgb), .35) 0%, transparent 30%), radial-gradient(ellipse at 75% 50%, rgba(var(--gold-rgb), .35) 0%, transparent 30%);position:absolute;inset:0}.gift-card.accent-rose .gift-box-bow:after{background:radial-gradient(ellipse at 25% 50%, rgba(var(--rose-rgb), .35) 0%, transparent 30%), radial-gradient(ellipse at 75% 50%, rgba(var(--rose-rgb), .35) 0%, transparent 30%)}.gift-sparkle{color:var(--gold);opacity:0;pointer-events:none;font-size:14px;animation:2.8s ease-in-out infinite gift-sparkle;position:absolute}.gift-card.accent-rose .gift-sparkle{color:var(--rose)}.gift-sparkle-1{animation-delay:0s;top:4%;right:4%}.gift-sparkle-2{font-size:18px;animation-delay:.9s;bottom:18%;left:0}.gift-sparkle-3{font-size:12px;animation-delay:1.7s;top:38%;right:0}@keyframes gift-sparkle{0%,to{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}.gift-cta{background:linear-gradient(135deg, var(--gold), var(--rose));color:var(--white);font-family:var(--font-body);letter-spacing:.04em;box-shadow:0 10px 24px rgba(var(--gold-rgb), .32);transition:transform var(--transition), box-shadow var(--transition);border-radius:999px;align-items:center;gap:10px;padding:12px 26px;font-size:.92rem;font-weight:600;display:inline-flex}.gift-card.accent-rose .gift-cta{background:linear-gradient(135deg, var(--rose), var(--gold));box-shadow:0 10px 24px rgba(var(--rose-rgb), .32)}.gift-closed:hover .gift-cta{box-shadow:0 14px 32px rgba(var(--gold-rgb), .4);transform:translateY(-2px)}.gift-cta-icon{animation:1.8s ease-in-out infinite gift-twinkle;display:inline-block}@keyframes gift-twinkle{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.2)rotate(15deg)}}.gift-close-btn{appearance:none;border:1px solid rgba(var(--gold-rgb), .4);font-family:var(--font-body);letter-spacing:.04em;color:var(--text-muted);cursor:pointer;transition:color var(--transition), border-color var(--transition), background var(--transition);background:0 0;border-radius:999px;margin-top:clamp(16px,2vw,22px);padding:8px 20px;font-size:.82rem}.gift-close-btn:hover{color:var(--charcoal);border-color:var(--gold);background:rgba(var(--gold-rgb), .06)}.gift-card.accent-rose .gift-close-btn:hover{border-color:var(--rose);background:rgba(var(--rose-rgb), .06)}.gift-qr-frame{background:var(--white);border-radius:var(--radius);border:1px solid rgba(var(--gold-rgb), .18);box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb), .6), 0 4px 16px #2c2c2c0f;width:min(260px,100%);margin-bottom:clamp(24px,3vw,32px);padding:clamp(14px,2vw,20px);position:relative}.gift-qr-frame:before,.gift-qr-frame:after{content:"";border:2px solid var(--gold);opacity:.55;width:18px;height:18px;position:absolute}.gift-card.accent-rose .gift-qr-frame:before,.gift-card.accent-rose .gift-qr-frame:after{border-color:var(--rose)}.gift-qr-frame:before{border-bottom:none;border-right:none;border-top-left-radius:6px;top:-6px;left:-6px}.gift-qr-frame:after{border-top:none;border-left:none;border-bottom-right-radius:6px;bottom:-6px;right:-6px}.gift-qr{border-radius:8px;width:100%;height:auto;display:block}.gift-info{flex-direction:column;gap:10px;width:100%;display:flex}.gift-row{border-bottom:1px dashed rgba(var(--gold-rgb), .22);text-align:left;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:8px;display:flex}.gift-row:last-child{border-bottom:none;padding-bottom:0}.gift-row dt{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-size:.78rem;font-weight:500}.gift-row dd{font-family:var(--font-body);color:var(--charcoal);text-align:right;font-size:.95rem;font-weight:500}.gift-row-account dd{letter-spacing:.08em;color:var(--charcoal);font-family:Courier New,ui-monospace,monospace;font-size:1.1rem;font-weight:600}.gift-card.accent-gold .gift-row-account dd{color:var(--gold)}.gift-card.accent-rose .gift-row-account dd{color:var(--rose)}.gift-branch{font-style:italic;color:var(--text-muted)!important;font-size:.85rem!important;font-weight:400!important}@media (width<=880px){.gift-spread{grid-template-columns:1fr;gap:clamp(20px,4vw,28px)}.gift-row{flex-direction:column;align-items:flex-start;gap:4px}.gift-row dd{text-align:left}}@media (prefers-reduced-motion:reduce){.gift-box,.gift-sparkle,.gift-cta-icon,.gift-closed,.gift-opened{animation:none!important}}.footer{background:var(--charcoal);color:var(--cream);padding:clamp(48px, 8vw, 72px) clamp(20px, 4vw, 32px) calc(clamp(48px, 8vw, 72px) + env(safe-area-inset-bottom));text-align:center}.footer-inner{flex-direction:column;align-items:center;gap:18px;max-width:560px;margin:0 auto;display:flex}.footer-monogram{font-family:var(--font-heading);color:var(--gold);letter-spacing:.18em;font-size:clamp(1.6rem,5vw,2rem);font-weight:500}.footer-quote{font-family:var(--font-heading);color:rgba(var(--cream-rgb), .65);max-width:420px;font-size:.97rem;font-style:italic;line-height:1.85}.footer-rule{background:var(--gold);opacity:.4;width:36px;height:1px}.footer-names{font-family:var(--font-display);color:var(--cream);letter-spacing:0;font-size:2rem;font-style:normal;font-weight:400}.footer-date{font-family:var(--font-body);letter-spacing:.42em;color:var(--gold);font-size:.82rem}.footer-credit{color:rgba(var(--cream-rgb), .35);margin-top:6px;font-size:.78rem}
