:root{--color-cream:#fbf6f1;--color-cream-deep:#f4ebe3;--color-background:#fffcf8;--invite-accent:#c47a4a;--color-primary:#e97832;--color-primary-dark:#c85f22;--color-primary-soft:#fff2e8;--color-text:#2f2925;--color-muted:#756b65;--color-border:#f0ddd0;--font-display:"Great Vibes", "Segoe Script", cursive;--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body:Inter, system-ui, -apple-system, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--color-background);min-height:100dvh;margin:0}html{background:var(--color-background)}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.6}a:focus-visible,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}}.wedding-page{--opening-exit-ms:1100;--opening-exit-ease:cubic-bezier(.22, 1, .36, 1);background:var(--color-background,#fffcf8);color:var(--color-text);scroll-snap-type:y mandatory;scroll-behavior:smooth;overscroll-behavior-y:none;height:100dvh;min-height:100dvh;overflow:hidden auto}.wedding-page.is-intro-locked{scroll-snap-type:none;height:100dvh;overflow:hidden}.wedding-page.is-intro-locked:not(.is-revealing) .hero{opacity:0;transform:translateY(16px)}.wedding-page.is-revealing .hero{opacity:1;transition:opacity calc(var(--opening-exit-ms) * 1ms) var(--opening-exit-ease), transform calc(var(--opening-exit-ms) * 1ms) var(--opening-exit-ease);transform:translateY(0)}.snap-screen{box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100dvh;min-height:100dvh;max-height:100dvh;display:flex;overflow:hidden}.snap-screen--long{scroll-snap-stop:normal;justify-content:flex-start;height:auto;max-height:none;overflow:visible}.snap-screen-body{opacity:.55;flex-direction:column;justify-content:center;align-items:center;width:100%;transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);display:flex;transform:translateY(24px)scale(.985)}.snap-screen.is-active .snap-screen-body{opacity:1;transform:translateY(0)scale(1)}.snap-screen .wedding-section,.snap-screen .editorial-invite{margin-inline:auto;padding-block:24px}.snap-screen--long .snap-screen-body{justify-content:flex-start;padding-block:clamp(32px,6dvh,56px)}.snap-screen .calendar-actions,.snap-screen .venue-actions{margin-top:14px}.snap-screen .rsvp-wrap{width:min(42rem,100% - 40px);padding:0}.snap-screen .rsvp-card{width:100%;padding:40px 32px}.wedding-state{text-align:center;background:var(--color-cream);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100svh;padding:32px 24px;display:flex}.wedding-state p{max-width:28rem;color:var(--color-muted);margin:0}.wedding-state h1{font-family:var(--font-serif);color:var(--color-text);margin:0;font-size:clamp(2rem,6vw,3rem);font-weight:500}.band{width:100%}.band-white{background:#fff}.band-cream{background:var(--color-cream)}.band-soft{background:#fff8f3}.section-eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--color-primary);margin:0 0 10px;font-size:.68rem;font-weight:500}.ornament{background:var(--color-primary);width:42px;height:1px;margin:0 auto 18px;display:block;position:relative}.ornament:before,.ornament:after{content:"";border:1px solid var(--color-primary);background:#fff;width:5px;height:5px;position:absolute;top:-2px;transform:rotate(45deg)}.ornament:before{left:-8px}.ornament:after{right:-8px}.heart-ornament{color:var(--color-primary);letter-spacing:0;margin:4px auto 18px;font-size:.95rem;display:block}.hero{--hero-ivory:#fffcf8;--hero-ink:#292421;--hero-muted:#756d67;--hero-accent:var(--invite-accent,#c47a4a);--hero-accent-dark:#b5683c;--hero-botanical:#dcc8b0;--hero-line:#e9dccf;text-align:center;background:var(--hero-ivory);min-height:100dvh;color:var(--hero-ink);flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.hero .snap-screen-body{z-index:1;flex:1;gap:.4rem;width:min(40rem,100% - 40px);padding:7dvh 8px 10dvh;position:relative}.hero-botanical{color:#c4a584;opacity:.26;pointer-events:none;z-index:0;width:min(40vw,228px);height:auto;position:absolute}.hero-botanical--tr{top:0;right:0}.hero-botanical--bl{bottom:10px;left:0}.hero-blessing{flex-direction:column;align-items:center;gap:.28rem;margin-bottom:0;display:flex}.hero-heart-rule{color:var(--hero-accent);align-items:center;gap:10px;margin-bottom:.35rem;display:flex}.hero-rule{background:var(--hero-accent);opacity:.85;width:42px;height:1px;display:block}.hero-heart-svg{width:11px;height:10px}.hero-blessing-kicker{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--hero-muted);margin:0;font-size:.72rem;font-weight:500}.hero-blessing-accent{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--hero-accent);margin:0;font-size:.72rem;font-weight:500}.hero-blessing-script{font-family:var(--font-serif);color:var(--hero-ink);margin:2px 0 0;font-size:clamp(1.05rem,2vw,1.28rem);font-style:italic;font-weight:500}.hero-sprig{width:72px;height:18px;color:var(--hero-botanical);margin-top:6px}.hero-invite-line{font-family:var(--font-body);letter-spacing:.24em;text-transform:uppercase;color:var(--hero-muted);margin:.2rem 0 0;font-size:clamp(.78rem,1.15vw,.94rem);font-weight:500}.hero-names{font-family:var(--font-display);color:var(--hero-ink);margin:.15rem 0 0;font-size:clamp(3.25rem,7vw,5.75rem);font-weight:400;line-height:.92}.hero-name{overflow-wrap:anywhere;display:block}.hero-ampersand{font-family:var(--font-display);color:var(--hero-accent);margin:.02em 0;font-size:clamp(1.5rem,3vw,2.375rem);line-height:1;display:block}.hero-eloping{font-family:var(--font-body);letter-spacing:.38em;text-transform:uppercase;color:var(--hero-accent);margin:.45rem 0 0;font-size:.72rem}.hero-heart-mark{color:var(--hero-accent);margin-top:2px;display:block}.hero-date-block{color:var(--hero-accent);justify-content:center;align-items:center;gap:10px;margin-top:.18rem;display:flex}.hero-date-rule{background:var(--hero-line);width:48px;height:1px;position:relative}.hero-date-rule:before,.hero-date-rule:after{content:"";border:1px solid var(--hero-line);background:var(--hero-ivory);width:5px;height:5px;position:absolute;top:-2px;transform:rotate(45deg)}.hero-date-rule:first-child:before{left:-6px}.hero-date-rule:last-child:after{right:-6px}.hero-date{font-family:var(--font-serif);letter-spacing:.12em;color:var(--hero-ink);margin:0;font-size:clamp(1.35rem,2.2vw,2.05rem);font-weight:600}.hero-meta-icon{flex:none;width:16px;height:16px}.hero-meta-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;max-width:100%;margin-top:.2rem;display:flex}.hero-meta-item{min-width:0;max-width:100%;font-family:var(--font-serif);color:var(--hero-ink);overflow-wrap:anywhere;align-items:center;gap:7px;font-size:clamp(.98rem,1.5vw,1.15rem);display:inline-flex}.hero-meta-item .hero-meta-icon{color:var(--hero-accent)}.hero-meta-dot{color:var(--hero-accent);font-size:.85rem}.hero-scroll{z-index:1;color:var(--hero-accent);flex-direction:column;align-items:center;gap:4px;margin:0;display:flex;position:absolute;bottom:2.6dvh;left:0;right:0}.hero-scroll p{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.66rem}.hero-chevron{width:18px;height:12px}.wedding-section{text-align:center;width:min(42rem,100% - 40px);margin:0 auto;padding:56px 0}.wedding-section h2{font-family:var(--font-serif);margin:0 0 16px;font-size:clamp(1.7rem,4vw,2.35rem);font-weight:500}.wedding-section p{color:var(--color-muted);margin:0}.editorial-screen{background:#fffcf8;position:relative;overflow:hidden}.editorial-botanical{color:#c4a584;opacity:.22;pointer-events:none;z-index:0;width:min(34vw,180px);height:auto;position:absolute}.editorial-botanical--tr{top:0;right:0}.editorial-botanical--bl{bottom:8px;left:0}.editorial-invite{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;width:min(36rem,100% - 40px);height:100%;margin:0 auto;padding:3.5dvh 0 4dvh;display:flex;position:relative}.editorial-kicker{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:#756d67;margin:0;font-size:clamp(.68rem,1vw,.8rem);font-weight:500}.editorial-heart-rule{color:#e97832;align-items:center;gap:10px;display:flex}.editorial-rule{opacity:.7;background:currentColor;width:36px;height:1px;display:block}.editorial-heart{width:10px;height:9px}.editorial-stage{justify-content:center;align-items:center;width:min(42rem,100%);margin:.15rem 0 .1rem;display:flex;position:relative}.editorial-side{color:#c4a584;opacity:.28;pointer-events:none;width:28px;height:76%;position:absolute;top:12%}.editorial-side--left{left:-2px}.editorial-side--right{right:-2px;transform:scaleX(-1)}.editorial-side-branch{width:100%;height:100%}.editorial-frame{background:0 0;border:1px solid #c47a4a73;border-radius:6px;flex:none;justify-content:center;align-items:center;width:min(100%,590px);max-width:620px;height:min(66dvh,650px);max-height:680px;margin:0 auto;transition:transform .6s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden;transform:scale(.985);box-shadow:0 12px 40px #3c28140d}.editorial-frame img{object-fit:contain;object-position:center;width:100%;height:100%;display:block}.snap-screen.is-active .editorial-frame{transform:scale(1)}.editorial-copy{text-align:center;flex:none}.editorial-names{max-width:100%;font-family:var(--font-display);color:var(--invite-accent,#c47a4a);overflow-wrap:anywhere;margin:32px 0 0;font-size:clamp(2.625rem,5vw,4.25rem);line-height:1.05}.editorial-message{max-width:28rem;font-family:var(--font-serif);color:#c96528;margin:0;font-size:clamp(1.15rem,1.7vw,1.5rem);font-style:italic;font-weight:500;line-height:1.5}.voice-message .audio-player{margin-top:22px}.voice-screen{--voice-ivory:#fffcf8;--voice-orange:#e97832;--voice-orange-dark:#c96528;--voice-ink:#292421;--voice-muted:#756d67;--voice-leaf:#dcc8b0;--voice-border:#e9d6c5;background:var(--voice-ivory);color:var(--voice-ink);position:relative;overflow:hidden}.voice-botanical{height:auto;color:var(--voice-leaf);pointer-events:none;z-index:0;position:absolute}.voice-botanical--tr{opacity:.2;width:min(34vw,188px);top:0;right:0}.voice-botanical--bl{opacity:.24;color:#c4a584;width:min(42vw,220px);bottom:0;left:0}.voice-body{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(12px,2.2dvh,22px);width:min(36rem,100% - 40px);height:100%;margin:0 auto;padding:clamp(16px,4dvh,32px) 0;display:flex;position:relative}.voice-header{flex-direction:column;align-items:center;gap:6px;display:flex}.voice-eyebrow{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--voice-orange);margin:0;font-size:.68rem;font-weight:500}.voice-heart-rule{color:var(--voice-orange);justify-content:center;align-items:center;gap:10px;display:flex}.voice-rule{opacity:.7;background:currentColor;width:clamp(28px,6vw,42px);height:1px;display:block}.voice-heart{width:11px;height:10px}.voice-title{font-family:var(--font-serif);color:var(--voice-ink);margin:0;font-size:clamp(1.85rem,4.8dvh,2.7rem);font-weight:500;line-height:1.12}.voice-lead{max-width:26rem;font-family:var(--font-serif);color:var(--voice-muted);margin:0;font-size:clamp(1rem,2.1dvh,1.15rem);font-style:italic}.voice-aside{max-width:24rem;font-family:var(--font-serif);color:var(--voice-orange-dark);margin:2px 0 0;font-size:clamp(.95rem,1.9dvh,1.08rem);font-style:italic}.voice-player{background:#fffcf8e0;border:1px solid #e9d6c5c7;border-radius:30px;flex-direction:column;align-items:center;gap:12px;width:min(36.25rem,100%);padding:clamp(22px,3.6dvh,30px) clamp(20px,3.4vw,32px) clamp(18px,3dvh,26px);display:flex;box-shadow:0 16px 36px #5c3a200b}.voice-orb{background:var(--voice-orange);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:76px;height:76px;padding:0;display:grid;position:relative;box-shadow:0 10px 22px #c9652838}.voice-orb:hover{background:var(--voice-orange-dark)}.voice-orb:focus-visible,.voice-range:focus-visible{outline:2px solid var(--voice-orange);outline-offset:3px}.voice-orb.is-playing:after{content:"";pointer-events:none;border:1px solid #e9783247;border-radius:50%;position:absolute;inset:-9px}@keyframes voice-ring{0%{opacity:.55;transform:scale(.96)}to{opacity:0;transform:scale(1.14)}}.voice-orb-icon{width:26px;height:26px;display:block}.voice-orb-label{font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--voice-orange-dark);margin:2px 0 4px;font-size:.72rem;font-weight:600}.voice-progress{gap:8px;width:100%;display:grid}.voice-range{appearance:none;background:linear-gradient(to right, var(--voice-orange) var(--voice-progress,0%), #e4d2bf var(--voice-progress,0%));cursor:pointer;border:0;border-radius:999px;width:100%;height:2px;margin:8px 0 0}.voice-range::-webkit-slider-runnable-track{background:0 0;height:2px}.voice-range::-webkit-slider-thumb{appearance:none;background:var(--voice-orange);border:0;border-radius:50%;width:10px;height:10px;margin-top:-4px}.voice-range::-moz-range-track{background:#e4d2bf;height:2px}.voice-range::-moz-range-progress{background:var(--voice-orange);height:2px}.voice-range::-moz-range-thumb{background:var(--voice-orange);border:0;border-radius:50%;width:10px;height:10px}.voice-times{font-family:var(--font-body);letter-spacing:.08em;color:var(--voice-muted);justify-content:space-between;font-size:.7rem;display:flex}.voice-error{font-family:var(--font-serif);color:var(--voice-muted);margin:8px 0;font-style:italic}.voice-footer{color:var(--voice-orange);flex-direction:column;align-items:center;gap:4px;display:flex}.voice-signoff{font-family:var(--font-serif);color:var(--voice-muted);margin:4px 0 0;font-size:.95rem;font-style:italic}.voice-names{font-family:var(--font-display);color:var(--voice-orange);margin:0;font-size:clamp(1.55rem,3.6dvh,2.05rem)}.rsvp-screen{--rsvp-ivory:#fffcf8;--rsvp-orange:#e97832;--rsvp-orange-dark:#c96528;--rsvp-ink:#292421;--rsvp-muted:#756d67;--rsvp-leaf:#dcc8b0;--rsvp-border:#e9d6c5;background:var(--rsvp-ivory);color:var(--rsvp-ink);position:relative}.rsvp-botanical{width:min(38vw,200px);height:auto;color:var(--rsvp-leaf);opacity:.22;pointer-events:none;z-index:0;position:absolute}.rsvp-botanical--tr{top:0;right:0}.rsvp-botanical--bl{bottom:6px;left:0}.rsvp-wrap{z-index:1;justify-content:center;width:min(42rem,100% - 40px);display:flex;position:relative}.rsvp-card{text-align:center;background:#fffdfb;border:1px solid #e9d6c5b3;border-radius:28px;width:100%;max-width:42rem;padding:44px 36px 36px;box-shadow:0 22px 48px #5c3a200b}.rsvp-header h2{font-family:var(--font-serif);color:var(--rsvp-ink);margin:0 0 10px;font-size:clamp(1.9rem,4.4vw,2.55rem);font-weight:500}.rsvp-eyebrow{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--rsvp-orange);margin:0 0 12px;font-size:.68rem;font-weight:500}.rsvp-ornament{color:var(--rsvp-orange);justify-content:center;align-items:center;gap:10px;margin:2px auto 6px;display:flex}.rsvp-ornament-sprig{width:72px;height:18px}.rsvp-ornament-sprig:last-child{transform:scaleX(-1)}.rsvp-ornament-heart{width:14px;height:13px}.rsvp-greeting{font-family:var(--font-serif);color:var(--rsvp-ink);overflow-wrap:anywhere;font-size:1.15rem}.rsvp-note{margin-top:16px}.rsvp-modal-layer{z-index:48;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.rsvp-modal-backdrop{cursor:pointer;background:#29242129;border:0;margin:0;padding:0;position:absolute;inset:0}.rsvp-modal{z-index:1;background:var(--rsvp-ivory,#fffcf8);width:min(500px,100% - 32px);max-width:500px;color:var(--rsvp-ink,#292421);border:1px solid var(--rsvp-border,#e9d6c5);text-align:center;border-radius:26px;padding:40px 28px 28px;position:relative;box-shadow:0 22px 48px #5c3a201f}.rsvp-modal-x{width:44px;height:44px;color:var(--rsvp-muted,#756d67);cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:1.7rem;line-height:1;position:absolute;top:10px;right:10px}.rsvp-modal-x:focus-visible,.rsvp-modal-dismiss:focus-visible{outline:2px solid var(--rsvp-orange,#e97832);outline-offset:2px}.rsvp-modal-heart{color:var(--rsvp-orange,#e97832);justify-content:center;margin-bottom:10px;display:flex}.rsvp-modal-heart .rsvp-ornament-heart{width:18px;height:16px}.rsvp-modal h3{font-family:var(--font-serif);color:var(--rsvp-ink,#292421);margin:0 0 10px;font-size:clamp(1.7rem,4vw,2.05rem);font-weight:500}.rsvp-modal p{margin:0}.rsvp-modal #rsvp-success-copy{font-family:var(--font-serif);color:var(--rsvp-ink,#292421);font-size:1.12rem;line-height:1.45}.rsvp-modal .rsvp-modal-aside{letter-spacing:.04em;color:var(--rsvp-muted,#756d67);margin-top:10px;font-size:.82rem}.rsvp-modal-dismiss{background:var(--rsvp-orange,#e97832);color:#fffdfb;letter-spacing:.16em;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;min-height:44px;margin-top:22px;padding:10px 28px;font-size:.72rem;font-weight:600;display:inline-flex}.rsvp-modal-dismiss:hover{background:var(--rsvp-orange-dark,#c96528)}.rsvp-form{text-align:left;flex-direction:column;align-items:stretch;gap:22px;width:100%;margin-top:22px;display:flex}.rsvp-field,.rsvp-party,.rsvp-choices{flex-direction:column;gap:8px;width:100%;display:flex}.rsvp-label{font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--rsvp-muted);margin:0;font-size:.68rem;font-weight:500}.rsvp-choices{border:0;margin:0;padding:0}.rsvp-input-shell,.rsvp-phone{border:1px solid var(--rsvp-border);background:#fff;border-radius:14px;align-items:center;gap:10px;min-height:54px;padding:0 14px;display:flex}.rsvp-input-shell input,.rsvp-phone input{min-width:0;min-height:52px;color:var(--rsvp-ink);font-family:var(--font-body);box-shadow:none;appearance:none;background:0 0;border:0;outline:none;flex:1;padding:12px 0;font-size:1rem}.rsvp-input-shell input::placeholder,.rsvp-phone input::placeholder{color:#b5a89e}.rsvp-input-shell:focus-within,.rsvp-phone:focus-within{border-color:var(--rsvp-orange);box-shadow:0 0 0 3px #e9783229}.rsvp-input-shell.is-invalid,.rsvp-phone.is-invalid{border-color:#c96528}.rsvp-field-icon{color:#c4a584;flex:none;width:20px;height:20px}.rsvp-phone-cc{font-family:var(--font-body);color:var(--rsvp-ink);letter-spacing:.02em;flex:none;font-size:.95rem;font-weight:600}.rsvp-phone-divider{background:var(--rsvp-border);flex:none;width:1px;height:22px}.rsvp-help,.rsvp-privacy{color:var(--rsvp-muted);letter-spacing:0;text-transform:none;margin:0;font-size:.8rem;font-weight:400;line-height:1.45}.rsvp-error{color:#b24a1f;margin:0;font-size:.8rem;line-height:1.4}.rsvp-choice-row{gap:10px;width:100%;display:flex}.rsvp-choice{border:1.5px solid var(--rsvp-border);min-height:66px;color:var(--rsvp-ink);font-family:var(--font-body);cursor:pointer;background:#fff;border-radius:16px;flex:1 1 0;justify-content:center;align-items:center;gap:8px;padding:14px 12px;font-size:.98rem;display:inline-flex}.rsvp-choice:hover:not(:disabled):not(.selected){background:var(--rsvp-ivory);border-color:#dfc4b0}.rsvp-choice:focus-visible{outline:2px solid var(--rsvp-orange);outline-offset:2px}.rsvp-choice-mark{font-size:1.1rem;line-height:1}.rsvp-choice.selected.attending{background:var(--rsvp-orange);border-color:var(--rsvp-orange);color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px #ffffff38}.rsvp-choice.selected.declining{border-color:var(--rsvp-ink);color:var(--rsvp-ink);box-shadow:inset 0 0 0 1px var(--rsvp-ink);background:#f4ebe3;font-weight:600}.rsvp-choice:disabled{cursor:not-allowed;opacity:.65}.party-stepper{border:1px solid var(--rsvp-border);background:#fff;border-radius:16px;justify-content:space-between;align-items:center;width:100%;min-height:58px;padding:6px;display:flex}.party-stepper button{border:1px solid var(--rsvp-border);background:var(--rsvp-ivory);width:46px;height:46px;color:var(--rsvp-ink);cursor:pointer;border-radius:12px;font-size:1.4rem;line-height:1}.party-stepper button:hover:not(:disabled){border-color:var(--rsvp-orange);color:var(--rsvp-orange)}.party-stepper button:focus-visible{outline:2px solid var(--rsvp-orange);outline-offset:2px}.party-stepper button:disabled{opacity:.35;cursor:not-allowed}.party-stepper-value{min-width:2.6rem;font-family:var(--font-serif);text-align:center;color:var(--rsvp-orange);font-size:2.15rem;font-weight:600}.rsvp-companions{flex-direction:column;gap:14px;display:flex}.rsvp-submit{background:var(--rsvp-orange);color:#fff;width:100%;min-height:54px;font-family:var(--font-body);letter-spacing:.16em;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:14px 28px;font-size:.82rem;font-weight:600;display:inline-flex}.rsvp-submit:hover:not(:disabled){background:var(--rsvp-orange-dark)}.rsvp-submit:focus-visible{outline:2px solid var(--rsvp-orange);outline-offset:3px}.rsvp-submit:disabled{cursor:not-allowed;opacity:.65}.rsvp-send-icon{width:16px;height:16px}.rsvp-privacy{text-align:center;justify-content:center;align-items:center;gap:8px;display:flex}.rsvp-lock-icon{width:15px;height:15px;color:var(--rsvp-muted);flex:none}.countdown-screen{--cd-ivory:#fffcf8;--cd-orange:#e97832;--cd-orange-dark:#c96528;--cd-ink:#292421;--cd-muted:#756d67;--cd-leaf:#dcc8b0;--cd-border:#e9d6c5;background:var(--cd-ivory);color:var(--cd-ink);position:relative;overflow:hidden}.countdown-botanical{height:auto;color:var(--cd-leaf);pointer-events:none;z-index:0;position:absolute}.countdown-botanical--tl{opacity:.18;width:min(28vw,148px);top:0;left:0}.countdown-botanical--br{opacity:.22;color:#c4a584;width:min(38vw,210px);bottom:4px;right:0}.countdown-body{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(6px,1.2dvh,12px);width:min(38rem,100% - 40px);height:100%;margin:0 auto;padding:clamp(18px,4.5dvh,36px) 0 clamp(20px,4dvh,36px);display:flex;position:relative}.countdown-eyebrow{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--cd-orange);margin:0;font-size:.68rem;font-weight:500}.countdown-heart-rule{color:var(--cd-orange);justify-content:center;align-items:center;gap:10px;display:flex}.countdown-rule{opacity:.7;background:currentColor;width:clamp(28px,6vw,42px);height:1px;display:block}.countdown-heart{width:11px;height:10px}.countdown-date-hero{flex-direction:column;align-items:center;margin:clamp(2px,.6dvh,8px) 0 0;line-height:.92;display:flex}.countdown-day,.countdown-year{font-family:var(--font-serif);color:var(--cd-ink);font-weight:500}.countdown-day{font-size:clamp(2.6rem,7.2dvh,4.2rem)}.countdown-month{font-family:var(--font-serif);letter-spacing:.32em;color:var(--cd-orange);margin:.12em 0 .08em;font-size:clamp(1.05rem,2.4dvh,1.4rem);font-weight:600}.countdown-year{letter-spacing:.22em;font-size:clamp(1.25rem,3dvh,1.75rem)}.countdown-meta{font-family:var(--font-serif);color:var(--cd-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;margin:0;font-size:clamp(.98rem,2dvh,1.12rem);display:flex}.countdown-meta-item{align-items:center;gap:6px;display:inline-flex}.countdown-meta-icon{width:15px;height:15px;color:var(--cd-orange)}.countdown-meta-dot{color:var(--cd-orange)}.countdown-quote{max-width:26rem;font-family:var(--font-serif);color:var(--cd-muted);margin:clamp(2px,.8dvh,8px) 0 0;font-size:clamp(.95rem,2.1dvh,1.12rem);font-style:italic;line-height:1.45}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,1.4dvh,12px);width:min(100%,26rem);margin:clamp(4px,1dvh,10px) 0 0;display:grid}.countdown-cell{border:1px solid var(--cd-border);background:#fffdfbeb;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:clamp(92px,16dvh,124px);padding:clamp(10px,1.6dvh,16px) 8px;display:flex;box-shadow:0 12px 28px #5c3a200b}.countdown-value{min-height:1.05em;font-family:var(--font-serif);color:var(--cd-orange);font-variant-numeric:tabular-nums;font-size:clamp(1.85rem,4.8dvh,2.55rem);font-weight:600;line-height:1;display:block}.countdown-label{font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--cd-muted);margin-top:8px;font-size:.64rem;font-weight:500;display:block}.countdown-complete{font-family:var(--font-serif);color:var(--cd-ink);margin-top:8px;font-size:1.35rem;font-style:italic}.countdown-screen .calendar-actions{z-index:8;margin-top:clamp(10px,2dvh,20px)}.countdown-calendar-btn{background:var(--cd-orange);color:#fff;min-height:48px;font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 28px;font-size:.78rem;font-weight:600;display:inline-flex}.countdown-calendar-btn:hover{background:var(--cd-orange-dark)}.countdown-calendar-btn:focus-visible{outline:2px solid var(--cd-orange);outline-offset:3px}.countdown-calendar-icon{width:16px;height:16px}.countdown-chooser{border-color:var(--cd-border);background:#fffdfb;border-radius:16px;box-shadow:0 16px 36px #5c3a201a}.countdown-chooser a,.countdown-chooser button{color:var(--cd-ink);border-bottom-color:var(--cd-border);background:0 0}.countdown-chooser a:hover,.countdown-chooser button:hover{background:var(--cd-ivory)}.countdown-chooser a:focus-visible,.countdown-chooser button:focus-visible{outline:2px solid var(--cd-orange);outline-offset:-2px}.venue-screen{--venue-ivory:#fffcf8;--venue-orange:#e97832;--venue-orange-dark:#c96528;--venue-ink:#292421;--venue-muted:#756d67;--venue-leaf:#dcc8b0;--venue-border:#e9d6c5;background:var(--venue-ivory);color:var(--venue-ink);position:relative;overflow:hidden}.venue-body{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(8px,1.4dvh,14px);width:min(42rem,100% - 40px);height:100%;margin:0 auto;padding:clamp(16px,4dvh,32px) 0 clamp(20px,4dvh,36px);display:flex;position:relative}.venue-intro{flex-direction:column;align-items:center;gap:clamp(6px,1dvh,10px);display:flex}.venue-eyebrow{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--venue-orange);margin:0;font-size:.68rem;font-weight:500}.venue-heart-rule{color:var(--venue-orange);justify-content:center;align-items:center;gap:10px;display:flex}.venue-rule{opacity:.7;background:currentColor;width:clamp(28px,6vw,42px);height:1px;display:block}.venue-heart{width:11px;height:10px}.venue-name{font-family:var(--font-serif);color:var(--venue-ink);overflow-wrap:anywhere;margin:0;font-size:clamp(2rem,5.2dvh,3rem);font-weight:500;line-height:1.05}.venue-location,.venue-caption{font-family:var(--font-serif);color:var(--venue-muted);overflow-wrap:anywhere;justify-content:center;align-items:center;gap:6px;margin:0;font-size:clamp(1rem,2.1dvh,1.15rem);display:inline-flex}.venue-caption{font-size:.92rem;font-style:italic}.venue-pin-icon{width:15px;height:15px;color:var(--venue-orange);flex:none}.venue-frame{justify-content:center;align-items:center;width:min(620px,100%);margin:clamp(2px,.8dvh,8px) 0 0;display:flex;position:relative}.venue-photo-shell{z-index:1;width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;position:relative}.venue-image{object-fit:contain;object-position:center;background:0 0;border-radius:0;width:100%;height:auto;max-height:46dvh;display:block}.venue-photo-botanical{width:auto;height:min(78%,220px);color:var(--venue-leaf);opacity:.22;pointer-events:none;z-index:0;position:absolute}.venue-photo-botanical--left{top:8%;left:-18px}.venue-photo-botanical--right{color:#c4a584;bottom:6%;right:-18px}.venue-screen .venue-actions{z-index:8;flex-direction:column;align-items:center;margin-top:clamp(4px,1.2dvh,12px);display:flex;position:relative}.venue-action-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.venue-route-btn{background:var(--venue-orange);color:#fff;min-height:48px;font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 28px;font-size:.78rem;font-weight:600;display:inline-flex}.venue-route-btn:hover{background:var(--venue-orange-dark)}.venue-route-btn:focus-visible{outline:2px solid var(--venue-orange);outline-offset:3px}.venue-copy-btn{border:1px solid var(--venue-border);min-height:48px;color:var(--venue-ink);font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:.74rem;font-weight:600;display:inline-flex}.venue-copy-btn:hover{background:var(--venue-ivory)}.venue-copy-btn:focus-visible{outline:2px solid var(--venue-orange);outline-offset:3px}.venue-route-icon,.venue-chooser-icon{flex:none;width:16px;height:16px}.venue-chooser{border-color:var(--venue-border);background:#fffdfb;border-radius:16px;box-shadow:0 16px 36px #5c3a201a}.venue-chooser a,.venue-chooser button{color:var(--venue-ink);border-bottom-color:var(--venue-border);background:0 0;justify-content:flex-start;align-items:center;gap:10px;display:flex}.venue-chooser a:hover,.venue-chooser button:hover{background:var(--venue-ivory)}.venue-chooser a:focus-visible,.venue-chooser button:focus-visible{outline:2px solid var(--venue-orange);outline-offset:-2px}.venue-feedback{font-family:var(--font-serif);color:var(--venue-orange-dark);margin:8px 0 0;font-size:.95rem}.venue-screen .venue-intro,.venue-screen .venue-frame,.venue-screen .venue-actions{transition:transform .55s cubic-bezier(.22,1,.36,1)}.venue-screen .venue-frame{transition-delay:80ms}.venue-screen .venue-actions{transition-delay:.16s}.venue-screen:not(.is-active) .venue-intro{transform:translateY(6px)}.venue-screen:not(.is-active) .venue-frame{transform:translateY(10px)}.venue-screen:not(.is-active) .venue-actions{transform:translateY(12px)}.calendar-actions,.venue-actions{justify-content:center;margin-top:24px;display:flex;position:relative}.chooser-menu{z-index:8;border:1px solid var(--color-border);background:#fff;border-radius:14px;min-width:min(16rem,100vw - 48px);display:grid;position:absolute;top:auto;bottom:calc(100% + 8px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 16px 36px #2f29251f}.chooser-menu a,.chooser-menu button{border:0;border-bottom:1px solid var(--color-border);min-height:48px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:#fff;padding:12px 16px;font-size:.95rem;text-decoration:none}.chooser-menu a:last-child,.chooser-menu button:last-child{border-bottom:0}.support-screen{--support-ivory:#fffcf8;--support-orange:#e97832;--support-orange-dark:#c96528;--support-ink:#292421;--support-muted:#756d67;--support-leaf:#dcc8b0;--support-border:#e9d6c5;background:var(--support-ivory);color:var(--support-ink);position:relative;overflow:hidden}.support-botanical{height:auto;color:var(--support-leaf);pointer-events:none;z-index:0;position:absolute}.support-botanical--tr{opacity:.18;width:min(28vw,156px);top:0;right:0}.support-botanical--bl{opacity:.22;color:#c4a584;width:min(38vw,210px);bottom:4px;left:0}.support-body{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(6px,1.1dvh,12px);width:min(40rem,100% - 40px);height:100%;margin:0 auto;padding:clamp(16px,4dvh,32px) 0 clamp(20px,4dvh,36px);display:flex;position:relative}.support-eyebrow{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--support-orange);margin:0;font-size:.68rem;font-weight:500}.support-heart-rule{color:var(--support-orange);justify-content:center;align-items:center;gap:10px;display:flex}.support-rule{opacity:.7;background:currentColor;width:clamp(28px,6vw,42px);height:1px;display:block}.support-heart{width:11px;height:10px}.support-title{max-width:22ch;font-family:var(--font-serif);color:var(--support-ink);margin:0;font-size:clamp(1.7rem,4.6dvh,2.55rem);font-weight:500;line-height:1.15}.support-description,.support-note,.support-aside{max-width:28rem;color:var(--support-muted);margin:0}.support-description{font-family:var(--font-serif);font-size:clamp(1rem,2.1dvh,1.15rem);font-style:italic;line-height:1.5}.support-note{font-family:var(--font-serif);font-size:clamp(.98rem,2dvh,1.12rem);font-style:italic}.support-aside{font-family:var(--font-body);font-size:.86rem;line-height:1.5}.support-panel{border:1px solid var(--support-border);text-align:left;background:#fffdfbeb;border-radius:26px;gap:clamp(14px,2.2dvh,18px);width:min(38.75rem,100%);margin:clamp(2px,.8dvh,8px) 0 0;padding:clamp(20px,3.2dvh,28px) clamp(20px,3vw,28px);display:grid;box-shadow:0 16px 36px #5c3a200b}.support-row{gap:5px;margin:0;display:grid}.support-label{font-family:var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:#9a7560;font-size:.66rem;font-weight:500}.support-value,.support-iban{font-family:var(--font-serif);color:var(--support-ink);overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.support-value{font-size:clamp(1.12rem,2.3dvh,1.35rem)}.support-bank{font-family:var(--font-body);color:var(--support-ink);overflow-wrap:anywhere;font-size:.98rem}.support-iban{letter-spacing:.06em;font-size:clamp(1.12rem,2.4dvh,1.32rem);line-height:1.45}.support-copy-btn{background:var(--support-orange);color:#fff;min-height:48px;font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;margin-top:clamp(4px,1dvh,10px);padding:12px 28px;font-size:.78rem;font-weight:600;display:inline-flex}.support-copy-btn:hover{background:var(--support-orange-dark)}.support-copy-btn:focus-visible{outline:2px solid var(--support-orange);outline-offset:3px}.support-copy-icon{flex:none;width:16px;height:16px}.support-feedback{font-family:var(--font-serif);color:var(--support-orange-dark);font-size:.98rem;font-family:var(--font-serif);margin:0;font-size:.98rem}.gallery-screen{--gallery-ivory:#fffcf8;--gallery-orange:#e97832;--gallery-orange-dark:#c96528;--gallery-ink:#292421;--gallery-muted:#756d67;--gallery-leaf:#dcc8b0;--gallery-border:#e9d6c5;background:var(--gallery-ivory);color:var(--gallery-ink);position:relative;overflow:hidden}.gallery-botanical{height:auto;color:var(--gallery-leaf);pointer-events:none;z-index:0;position:absolute}.gallery-botanical--tr{opacity:.16;width:min(26vw,148px);top:0;right:0}.gallery-botanical--bl{opacity:.18;color:#c4a584;width:min(32vw,176px);bottom:4px;left:0}.gallery-screen:not(.is-lead) .gallery-botanical{opacity:.12}.gallery-body{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:clamp(8px,1.4dvh,16px);width:min(58rem,100% - 40px);height:100%;margin:0 auto;padding:clamp(14px,3.2dvh,28px) 0 clamp(20px,4dvh,36px);display:flex;position:relative}.gallery-header{text-align:center;flex-direction:column;flex:none;align-items:center;gap:6px;display:flex}.gallery-eyebrow,.gallery-continued{font-family:var(--font-body);text-transform:uppercase;color:var(--gallery-orange);margin:0;font-weight:500}.gallery-eyebrow{letter-spacing:4px;font-size:.68rem}.gallery-continued{letter-spacing:.28em;font-size:.64rem}.gallery-heart-rule{color:var(--gallery-orange);justify-content:center;align-items:center;gap:10px;display:flex}.gallery-rule{opacity:.7;background:currentColor;width:clamp(28px,6vw,42px);height:1px;display:block}.gallery-heart{width:11px;height:10px}.gallery-title{font-family:var(--font-serif);color:var(--gallery-ink);flex-direction:column;margin:0;font-size:clamp(1.85rem,4.8dvh,2.7rem);font-weight:500;line-height:1.08;display:flex}.gallery-quote{max-width:28rem;font-family:var(--font-serif);color:var(--gallery-muted);margin:0;font-size:clamp(.98rem,2dvh,1.12rem);font-style:italic}.gallery-page-index{font-family:var(--font-serif);letter-spacing:.16em;color:var(--gallery-muted);margin:0;font-size:.95rem}.gallery-spread{gap:10px;width:100%;min-height:0;display:grid}.gallery-spread--1{justify-content:center;width:min(26rem,100%);display:flex}.gallery-spread--2{grid-template-columns:1.05fr .95fr;width:min(46rem,100%);height:min(58dvh,34rem)}.gallery-spread--3{grid-template-rows:1fr 1fr;grid-template-columns:1.2fr .9fr;height:min(58dvh,34rem)}.gallery-spread--4{grid-template-rows:1fr 1fr;grid-template-columns:1.25fr .82fr .82fr;height:min(58dvh,36rem)}.gallery-screen.is-lead .gallery-spread--3,.gallery-screen.is-lead .gallery-spread--4{height:min(52dvh,32rem)}.gallery-spread--2 .gallery-frame--support-1{align-self:end;height:88%}.gallery-spread--3 .gallery-frame--hero,.gallery-spread--4 .gallery-frame--hero{grid-area:1/1/3}.gallery-spread--4 .gallery-frame--support-1{grid-area:1/2/auto/4}.gallery-spread--4 .gallery-frame--support-2{grid-area:2/2}.gallery-spread--4 .gallery-frame--support-3{grid-area:2/3}.gallery-spread--3 .gallery-frame--support-1{grid-area:1/2}.gallery-spread--3 .gallery-frame--support-2{grid-area:2/2}.gallery-frame{flex-direction:column;gap:6px;min-width:0;min-height:0;margin:0;display:flex}.gallery-shot{border:1px solid var(--gallery-border);cursor:pointer;background:#fffdfb;border-radius:16px;width:100%;height:100%;min-height:0;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 12px 28px #5c3a200d}.gallery-shot:focus-visible{outline:2px solid var(--gallery-orange);outline-offset:3px}.gallery-shot img{object-fit:cover;object-position:center 22%;width:100%;height:100%;display:block}.gallery-spread--1 .gallery-shot{height:auto}.gallery-spread--1 .gallery-shot img{aspect-ratio:4/5;height:auto;max-height:min(62dvh,34rem)}.gallery-spread--2 .gallery-shot,.gallery-spread--3 .gallery-shot,.gallery-spread--4 .gallery-shot{flex:auto}.gallery-caption{font-family:var(--font-serif);color:var(--gallery-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-style:italic;line-height:1.3;font-family:var(--font-serif);white-space:nowrap;margin:0 2px;font-size:.82rem;font-style:italic;line-height:1.3;overflow:hidden}.lightbox{z-index:50;color:#fffdfb;background:#1c1612eb;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.lightbox-stage{justify-content:center;align-items:center;gap:12px;width:min(72rem,100%);display:flex}.lightbox img{object-fit:contain;border-radius:8px;max-width:min(48rem,100% - 96px);max-height:72svh}.lightbox-close{color:#fffdfb;min-height:40px;font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #fffdfb8c;border-radius:999px;padding:8px 16px;font-size:.72rem;position:absolute;top:18px;right:18px}.lightbox-close:focus-visible,.lightbox-nav:focus-visible{outline-offset:3px;outline:2px solid #e97832}.lightbox-nav{color:#fffdfb;cursor:pointer;background:#29242159;border:1px solid #fffdfb66;border-radius:999px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.lightbox-nav-icon{width:20px;height:20px}.lightbox-counter{font-family:var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:#dcc8b0;margin:0;font-size:.72rem}.lightbox-caption{max-width:36rem;font-family:var(--font-serif);text-align:center;color:#fffdfb;margin:0;font-size:1.05rem;font-style:italic}.memory-lead{max-width:26rem;font-family:var(--font-serif);color:var(--memory-muted);margin:0;font-size:clamp(1rem,2.1dvh,1.12rem);line-height:1.5}.memory-screen{--memory-ivory:#fffcf8;--memory-orange:#e97832;--memory-orange-dark:#c96528;--memory-ink:#292421;--memory-muted:#756d67;--memory-leaf:#dcc8b0;--memory-border:#e9d6c5;background:var(--memory-ivory);color:var(--memory-ink);position:relative;overflow:hidden}.memory-screen.is-open{overflow:visible}.memory-botanical{height:auto;color:var(--memory-leaf);pointer-events:none;z-index:0;position:absolute}.memory-botanical--tl{opacity:.16;width:min(28vw,150px);top:0;left:0}.memory-botanical--br{opacity:.18;color:#c4a584;width:min(30vw,168px);bottom:4px;right:0}.memory-body{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(10px,1.6dvh,18px);width:min(52.5rem,100% - 40px);height:100%;margin:0 auto;padding:clamp(14px,3.2dvh,28px) 0 clamp(20px,4dvh,36px);display:flex;position:relative}.snap-screen--long .snap-screen--long .memory-body--flow{text-align:left;justify-content:flex-start;align-items:stretch;width:min(32rem,100% - 40px);height:auto;padding:clamp(28px,6dvh,48px) 0 40px}.memory-header{flex-direction:column;align-items:center;gap:6px;display:flex}.memory-eyebrow{font-family:var(--font-body);letter-spacing:4px;text-transform:uppercase;color:var(--memory-orange);margin:0;font-size:.68rem;font-weight:500}.memory-heart-rule{color:var(--memory-orange);justify-content:center;align-items:center;gap:10px;display:flex}.memory-rule{opacity:.7;background:currentColor;width:clamp(28px,6vw,42px);height:1px;display:block}.memory-heart{width:11px;height:10px}.memory-title,.memory-flow-title{font-family:var(--font-serif);color:var(--memory-ink);margin:0;font-weight:500}.memory-title{font-size:clamp(1.85rem,4.8dvh,2.7rem);line-height:1.12}.memory-flow-title{align-self:flex-start;font-size:clamp(1.45rem,3.4dvh,1.9rem)}.memory-note{max-width:26rem;font-family:var(--font-serif);color:var(--memory-orange-dark);margin:0;font-size:clamp(.98rem,2dvh,1.1rem);font-style:italic}.memory-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;display:grid}.memory-choice{border:1px solid var(--memory-border);min-height:132px;color:var(--memory-ink);text-align:left;cursor:pointer;background:#fffdfb;border-radius:24px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 18px 16px;display:flex;position:relative;box-shadow:0 10px 24px #5c3a200a}.memory-choice strong{font-family:var(--font-serif);font-size:clamp(1.08rem,2.2dvh,1.22rem);font-weight:500}.memory-choice-copy{max-width:22ch;color:var(--memory-muted);padding-right:22px;font-size:.84rem;line-height:1.4}.memory-choice-icon{width:22px;height:22px;color:var(--memory-orange)}.memory-choice-icon svg{width:22px;height:22px;display:block}.mic-icon svg{width:28px;height:28px;display:block}.memory-choice-arrow{width:18px;height:11px;color:var(--memory-orange);opacity:.72;position:absolute;bottom:16px;right:16px}.memory-choice:hover{border-color:#dfc2ab;box-shadow:0 16px 28px #5c3a2012}.memory-choice:focus-visible,.memory-back:focus-visible{outline:2px solid var(--memory-orange);outline-offset:3px}.memory-privacy{max-width:28rem;font-family:var(--font-body);color:var(--memory-muted);justify-content:center;align-items:center;gap:8px;margin:2px 0 0;font-size:.72rem;line-height:1.45;display:flex}.memory-lock{width:13px;height:13px;color:var(--memory-orange);opacity:.8;flex:none}.memory-back{min-height:44px;color:var(--memory-orange);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:8px;margin:0;padding:0;font-size:.86rem;display:inline-flex}.memory-back svg{width:18px;height:11px}.memory-flow{background:#fff;border-radius:18px;width:100%;margin:0;padding:22px 18px;box-shadow:0 16px 40px #5c3a200f}.memory-form{text-align:left;gap:14px;width:100%;margin:0 auto;display:grid}.memory-form label{color:var(--color-muted);flex-direction:column;gap:6px;font-size:.88rem;display:flex}.memory-form input,.memory-form textarea{border:1px solid var(--color-border);background:var(--color-cream);font-family:var(--font-body);color:var(--color-text);border-radius:12px;padding:12px 14px;font-size:1rem}.memory-form textarea{resize:vertical;min-height:8rem}.memory-form input:focus,.memory-form textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px;background:#fff}.memory-form button,.invite-action,.opening-actions button,.audio-player button{background:var(--color-primary);color:#fff;min-height:44px;font-family:var(--font-body);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:10px 16px;font-size:.95rem;text-decoration:none;display:inline-flex}.upload-drop{border:1.5px dashed var(--color-border);background:var(--color-cream);text-align:center;border-radius:16px;justify-items:center;gap:8px;padding:22px 14px;display:grid}.upload-drop.is-dragging{border-color:var(--color-primary);background:#fff}.upload-hint,.upload-filename{color:var(--color-muted);overflow-wrap:anywhere;font-size:.85rem}.upload-pick,.voice-secondary{color:var(--color-primary-dark);border:1px solid var(--color-border);background:#fff}.photo-previews{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.photo-previews img,.video-preview{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%;display:block}.video-preview{aspect-ratio:16/9;max-height:180px}.voice-stage{justify-items:center;gap:12px;padding:12px 0;display:grid}.mic-icon{background:var(--color-cream);width:64px;height:64px;color:var(--color-primary-dark);border-radius:50%;place-items:center;display:grid}.mic-icon.is-recording{color:var(--color-primary-dark);background:#fde8dc}.recording-indicator{color:var(--color-primary-dark);align-items:center;gap:8px;font-weight:600;display:inline-flex}.recording-dot{background:var(--color-primary);border-radius:50%;width:8px;height:8px}.voice-controls{justify-content:center;gap:8px;display:flex}.voice-stop{background:var(--color-primary-dark)}.wedding-footer{text-align:center;background:var(--color-cream);padding:48px 24px}.wedding-footer p{font-family:var(--font-serif);color:var(--color-muted);margin:0;font-size:1.2rem;font-style:italic}.wedding-footer .footer-names{font-family:var(--font-display);color:var(--color-text);margin:12px 0 22px;font-size:clamp(2.2rem,8vw,3.2rem);font-style:normal}.opening-overlay{--opening-exit-ms:1100;--opening-exit-ease:cubic-bezier(.22, 1, .36, 1);z-index:40;background:linear-gradient(180deg, #fffdfb 0%, var(--color-cream) 52%, #f3e8de 100%);width:100vw;max-width:100%;height:100dvh;transition:opacity calc(var(--opening-exit-ms) * .72ms) calc(var(--opening-exit-ms) * .28ms) var(--opening-exit-ease);flex-direction:column;justify-content:stretch;align-items:stretch;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.opening-veil{opacity:0;pointer-events:none;transition:opacity calc(var(--opening-exit-ms) * .4ms) var(--opening-exit-ease);background:linear-gradient(#fffdfb14,#fbf6f1eb);position:absolute;inset:0}.opening-stage,.opening-video,.opening-skip{transition:opacity calc(var(--opening-exit-ms) * .7ms) var(--opening-exit-ease), transform calc(var(--opening-exit-ms) * 1ms) var(--opening-exit-ease), filter calc(var(--opening-exit-ms) * .7ms) var(--opening-exit-ease)}.opening-overlay.is-leaving{opacity:0;pointer-events:none}.opening-overlay.is-leaving .opening-veil{opacity:1}.opening-overlay.is-leaving .opening-stage,.opening-overlay.is-leaving .opening-video{filter:blur(1.5px);transform:scale(1.015)}.opening-overlay.is-leaving .opening-skip{opacity:0}.opening-stage{justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;display:flex;position:absolute;inset:0}.opening-video{object-fit:cover;object-position:center center;width:100%;max-width:none;height:100%;max-height:none;box-shadow:none;background:#f4ebe3;border-radius:0}.opening-hit{cursor:pointer;color:#fff;background:linear-gradient(#fffdfb14,#2f292547);border:0;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.opening-copy{font-family:var(--font-serif);letter-spacing:.18em;text-align:center;overflow-wrap:anywhere;text-shadow:0 1px 10px #00000059;max-width:100%;padding-inline:16px;font-size:clamp(.68rem,3.2vw,.92rem)}.opening-sub{font-family:var(--font-display);text-shadow:0 1px 10px #00000059;font-size:clamp(1.8rem,7vw,2.6rem)}.opening-skip{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:2;width:max-content;min-height:40px;color:var(--color-text);letter-spacing:.22em;text-transform:uppercase;cursor:pointer;text-shadow:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffcf88c;border:1px solid #ffffff73;border-radius:999px;margin:0 auto;padding:8px 16px;font-size:.78rem;position:absolute;box-shadow:0 8px 24px #2f29251f}.music-control{top:max(24px, calc(env(safe-area-inset-top,0px) + 12px));right:max(24px, calc(env(safe-area-inset-right,0px) + 12px));z-index:35;position:fixed}.music-control.is-hidden{visibility:hidden;pointer-events:none}.music-control button{color:#e97832;cursor:pointer;background:#fffcf8f0;border:1px solid #e9d6c5;border-radius:50%;place-items:center;width:46px;height:46px;padding:0;display:grid;box-shadow:0 8px 20px #2f29251a}.music-control button:hover{color:#c96528}.music-control button:focus-visible{outline-offset:3px;outline:2px solid #e97832}.music-control button:disabled{opacity:.7;cursor:default}.music-control-icon{width:18px;height:18px}.audio-player{background:var(--color-cream);border-radius:999px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:min(28rem,100%);margin:16px auto 0;padding:10px 12px;display:grid}.audio-player button{min-width:72px}.audio-player input{width:100%;accent-color:var(--color-primary)}@media (width<=389px){.rsvp-choice-row{flex-direction:column}}@media (width<=640px){.editorial-frame{width:min(100%,100vw - 32px);height:min(70dvh,680px);max-height:70dvh}.editorial-side{opacity:.18;width:20px}.editorial-side--left{left:-10px}.editorial-side--right{right:-10px}.venue-image{height:auto;max-height:42dvh}.venue-photo-botanical--left{left:-10px}.venue-photo-botanical--right{right:-10px}.gallery-spread--3,.gallery-spread--4,.gallery-screen.is-lead .gallery-spread--3,.gallery-screen.is-lead .gallery-spread--4{height:min(46dvh,26rem)}.countdown-body{width:min(100%,100% - 32px)}}@media (width>=900px){.venue-frame{width:min(620px,42vw)}}@media (width>=601px){.countdown-grid{grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,32rem)}.countdown-cell{min-width:0}}@media (height<=760px){.countdown-quote,.countdown-body>.countdown-heart-rule:first-of-type{display:none}.countdown-body{gap:5px}.countdown-date-hero{flex-flow:wrap;justify-content:center;align-items:baseline;gap:.4rem .55rem;line-height:1}.countdown-day,.countdown-month,.countdown-year{margin:0;font-size:clamp(1.45rem,4.6dvh,2.1rem)}.countdown-cell{min-height:clamp(78px,13dvh,104px)}.venue-caption,.support-aside,.gallery-quote,.gallery-caption,.voice-aside{display:none}.gallery-title{flex-direction:row;gap:.35em;font-size:clamp(1.55rem,4.2dvh,2.15rem)}.gallery-spread--2,.gallery-spread--3,.gallery-spread--4,.gallery-screen.is-lead .gallery-spread--3,.gallery-screen.is-lead .gallery-spread--4{height:min(54dvh,28rem)}.support-body{gap:5px}.venue-image{height:auto;max-height:38dvh}.venue-name{font-size:clamp(1.7rem,4.6dvh,2.4rem)}.memory-note,.memory-header .memory-heart-rule:last-of-type{display:none}.memory-body{gap:8px}.memory-choice{min-height:118px;padding:14px 14px 12px}}@media (height<=640px){.countdown-botanical{opacity:.12}.memory-privacy{display:none}.memory-botanical,.gallery-botanical{opacity:.1}.support-botanical{opacity:.12}.venue-caption,.venue-intro .venue-heart-rule:last-of-type{display:none}.countdown-cell{min-height:72px;padding:8px 6px}.countdown-value{font-size:clamp(1.5rem,4.2dvh,1.9rem)}}@media (width>=768px){.wedding-section{padding:64px 0}.snap-screen .wedding-section{padding-block:24px}.opening-overlay{justify-content:center;align-items:center;width:100%;padding:24px 16px 32px;overflow-x:hidden}.opening-stage{flex:none;width:min(100%,22rem);height:auto;position:relative;inset:auto}.opening-video{object-fit:contain;object-position:center;border-radius:4px;width:100%;max-width:100%;height:auto;max-height:82svh;box-shadow:0 24px 60px #2f292529}.opening-copy{letter-spacing:.28em;padding-inline:0;font-size:clamp(.78rem,3vw,.92rem)}.opening-skip{width:auto;min-height:40px;box-shadow:none;color:var(--color-muted);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;margin:16px 0 0;padding:0;position:static;bottom:auto;left:auto;right:auto}}@media (prefers-reduced-motion:no-preference){.hero-chevron{animation:1.8s ease-in-out infinite hero-chevron}.recording-dot{animation:1s ease-in-out infinite pulse}.rsvp-companion-field{animation:.22s ease-out rsvp-companion-in}.countdown-calendar-btn{transition:background .2s,transform .2s}.countdown-calendar-btn:hover{transform:translateY(-1px)}.venue-route-btn{transition:background .2s,transform .2s}.venue-route-btn:hover{transform:translateY(-1px)}.support-copy-btn{transition:background .2s,transform .2s}.support-copy-btn:hover{transform:translateY(-1px)}.gallery-screen .gallery-header,.gallery-screen .gallery-frame{transition:transform .55s cubic-bezier(.22,1,.36,1)}.gallery-screen .gallery-frame:first-child{transition-delay:60ms}.gallery-screen .gallery-frame:nth-child(2){transition-delay:.12s}.gallery-screen .gallery-frame:nth-child(3),.gallery-screen .gallery-frame:nth-child(4){transition-delay:.18s}.gallery-screen:not(.is-active) .gallery-header{transform:translateY(10px)}.gallery-screen:not(.is-active) .gallery-frame:first-child{transform:translateY(14px)}.gallery-screen:not(.is-active) .gallery-frame:nth-child(n+2){transform:translateY(16px)}.memory-screen .memory-header,.memory-screen .memory-choice{transition:transform .5s cubic-bezier(.22,1,.36,1)}.memory-screen .memory-choice:first-child{transition-delay:0s}.memory-screen .memory-choice:nth-child(2){transition-delay:60ms}.memory-screen .memory-choice:nth-child(3){transition-delay:.12s}.memory-screen .memory-choice:nth-child(4){transition-delay:.18s}.memory-screen:not(.is-active) .memory-header{transform:translateY(10px)}.memory-screen:not(.is-active) .memory-choice{transform:translateY(12px)}.memory-screen.is-active .memory-choice:hover{transition-delay:0s;transform:translateY(-3px)}.memory-screen.is-active .memory-choice:hover .memory-choice-arrow{transform:translate(4px)}.memory-choice-arrow{transition:transform .2s}.voice-orb.is-playing:after{animation:2.8s ease-out infinite voice-ring}}@keyframes rsvp-companion-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{opacity:.35}}@keyframes hero-chevron{0%,to{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(5px)}}@media (prefers-reduced-motion:reduce){.wedding-page,.opening-overlay{--opening-exit-ms:180}.wedding-page{scroll-behavior:auto}.snap-screen-body{opacity:1;transition:none;transform:none}.editorial-frame{transition:none;transform:none}.wedding-page.is-intro-locked:not(.is-revealing) .hero,.wedding-page.is-revealing .hero,.opening-overlay.is-leaving .opening-stage,.opening-overlay.is-leaving .opening-video{filter:none;transform:none}.hero-chevron,.hero-scroll,.recording-dot,.voice-orb.is-playing:after{animation:none}.memory-screen .memory-header,.memory-screen .memory-choice,.memory-screen:not(.is-active) .memory-header,.memory-screen:not(.is-active) .memory-choice,.memory-screen.is-active .memory-choice:hover,.gallery-screen .gallery-header,.gallery-screen .gallery-frame,.gallery-screen:not(.is-active) .gallery-header,.gallery-screen:not(.is-active) .gallery-frame,.venue-screen .venue-intro,.venue-screen .venue-frame,.venue-screen .venue-actions,.venue-screen:not(.is-active) .venue-intro,.venue-screen:not(.is-active) .venue-frame,.venue-screen:not(.is-active) .venue-actions{transition:none;transform:none}}.admin-state,.admin-login,.admin-home{background:var(--color-cream);min-height:100svh;color:var(--color-text);font-family:var(--font-body);overflow-x:hidden}.admin-state{color:var(--color-muted);justify-content:center;align-items:center;padding:24px;display:flex}.admin-login{justify-content:center;align-items:center;padding:24px;display:flex}.admin-card{border:1px solid var(--color-border);flex-direction:column;gap:16px;width:min(24rem,100%);padding:32px 28px;display:flex}.admin-card h1{font-family:var(--font-serif);margin:0 0 8px;font-size:1.8rem;font-weight:500}.admin-card label{flex-direction:column;gap:6px;font-size:.92rem;display:flex}.admin-card input{border:1px solid var(--color-border);font-family:var(--font-body);color:var(--color-text);padding:10px 12px;font-size:1rem}.admin-card button{border:1.5px solid var(--color-primary);background:var(--color-primary);color:#fff;font-family:var(--font-body);cursor:pointer;padding:11px 16px;font-size:.95rem}.admin-card button:disabled{opacity:.7;cursor:not-allowed}.admin-error{color:var(--color-primary-dark);margin:0}.admin-bar{border-bottom:1px solid var(--color-border);background:#fffcf8}.admin-bar-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;width:100%;max-width:1360px;margin:0 auto;padding:14px 20px;display:flex}.admin-bar-user{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.admin-bar-user p{color:var(--color-muted);margin:0;font-size:.92rem}.admin-logout{border:1px solid var(--color-border);min-height:40px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.88rem;display:inline-flex}.admin-logout:hover{background:#fff7f1;border-color:#e4cbb8}.admin-logout-icon{width:16px;height:16px}.admin-placeholder{color:var(--color-muted);max-width:40rem;padding:32px 24px}.admin-message{max-width:1360px;color:var(--color-muted);margin:0 auto;padding:32px 24px}.admin-dashboard{max-width:1360px;margin:0 auto;padding:28px 24px 48px}.dashboard-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.dashboard-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--color-primary);margin:0 0 8px;font-size:.72rem;font-weight:600}.dashboard-heading h2{font-family:var(--font-serif);margin:0;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:500;line-height:1.15}.dashboard-meta{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:8px 10px;margin:10px 0 0;font-size:.98rem;display:flex}.dashboard-invite-link{border:1px solid var(--color-border);min-height:42px;color:var(--color-text);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:.9rem;text-decoration:none;display:inline-flex}.dashboard-invite-link svg{width:15px;height:15px}.dashboard-invite-link:hover{background:#fff7f1;border-color:#e4cbb8}.stat-grid{grid-template-columns:1fr;gap:12px;margin-top:28px;display:grid}.stat-card{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;padding:18px 16px 16px;box-shadow:0 10px 24px #5c3a200a}.stat-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.stat-card h2{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:.72rem;font-weight:600}.stat-icon{color:var(--color-muted);display:inline-flex}.stat-icon svg{width:18px;height:18px}.stat-value{font-family:var(--font-body);letter-spacing:-.03em;color:var(--color-text);margin:12px 0 0;font-size:2.15rem;font-weight:600;line-height:1.1}.stat-card.attending{border-color:#e9783259}.stat-card.attending .stat-value,.stat-card.attending .stat-icon{color:var(--color-primary-dark)}.stat-card.pending{background:#fff7f1}.stat-card.pending .stat-value,.stat-card.pending .stat-icon{color:var(--color-primary-dark)}.stat-card.declined .stat-value,.stat-card.declined .stat-icon{color:var(--color-muted)}.stat-card.expected{border-color:var(--color-primary)}.stat-card.expected .stat-value,.stat-card.expected .stat-icon{color:var(--color-primary-dark)}.dashboard-secondary{gap:16px;margin-top:20px;display:grid}.dashboard-panel{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;padding:20px 18px 18px;box-shadow:0 10px 24px #5c3a200a}.dashboard-panel h2{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin:0 0 16px;font-size:.72rem;font-weight:600}.participation-legend{gap:10px;margin:0;padding:0;list-style:none;display:grid}.participation-legend li{grid-template-columns:10px 1fr auto;align-items:center;gap:10px;font-size:.92rem;display:grid}.participation-legend strong{font-family:var(--font-body);font-size:1.05rem;font-weight:600}.participation-swatch,.participation-seg{background:#ddd4cc;display:block}.participation-swatch{border-radius:999px;width:10px;height:10px}.participation-swatch.attending,.participation-seg.attending{background:var(--color-primary)}.participation-swatch.declined,.participation-seg.declined{background:#8a8079}.participation-swatch.pending,.participation-seg.pending{background:#f0c9a8}.participation-bar{background:#efe6de;border-radius:999px;width:100%;height:10px;margin-top:16px;display:flex;overflow:hidden}.participation-bar.is-empty{background:#efe6de}.participation-seg{min-width:0;height:100%}.quick-actions{gap:8px;display:grid}.quick-actions a{min-height:44px;color:var(--color-text);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;font-size:.95rem;text-decoration:none;display:flex}.quick-actions a:hover{background:#fff7f1}.quick-actions svg{width:16px;height:16px;color:var(--color-primary-dark);flex:none}.dashboard-attention{border:1px solid var(--color-border);color:var(--color-text);background:#fff7f1;border-radius:16px;margin:16px 0 0;padding:14px 16px;font-size:.95rem}.dashboard-attention.is-quiet{color:var(--color-muted);background:#fffcf8}.dashboard-attention a{color:var(--color-primary-dark);font-weight:600}@media (width>=640px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-secondary{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-bar-brand{flex-direction:column;flex:16rem;gap:8px;min-width:0;display:flex}.admin-brand-mark{letter-spacing:.18em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:.68rem;font-weight:600}.admin-nav{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;gap:2px;display:flex;overflow-x:auto}.admin-nav a{min-height:40px;color:var(--color-muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;align-items:center;padding:6px 12px;font-size:.92rem;text-decoration:none;display:inline-flex}.admin-nav a:hover{color:var(--color-text);background:#fff7f1}.admin-nav a.active{color:var(--color-primary-dark);background:var(--color-primary-soft);border-bottom-color:var(--color-primary);font-weight:600}@media (width>=900px){.admin-bar-brand{flex-direction:row;align-items:center;gap:20px}}@media (prefers-reduced-motion:reduce){.admin-logout,.admin-nav a,.dashboard-invite-link,.quick-actions a,.stat-card,.guest-add,.guest-export,.guest-edit,.guest-retry,.guest-filters button,.guest-table tbody tr{transition:none;transform:none}.admin-logout:hover,.dashboard-invite-link:hover,.quick-actions a:hover,.guest-add:hover,.guest-export:hover,.guest-edit:hover{transform:none}}.guest-page{padding:28px 24px 40px}.guests-list-page{width:100%;max-width:1360px;margin:0 auto}.guest-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.guest-heading h2{font-family:var(--font-serif);margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:500}.guest-heading p{color:var(--color-muted);margin:8px 0 0}.guest-heading a:not(.guest-add){color:var(--color-primary-dark)}.guest-heading-actions{flex-wrap:wrap;gap:8px;display:flex}.guest-add,.guest-export,.guest-retry,.guest-edit{min-height:40px;font-family:var(--font-body);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.9rem;text-decoration:none;display:inline-flex}.guest-add svg,.guest-export svg{width:15px;height:15px}.guest-add{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.guest-add:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.guest-export,.guest-retry,.guest-edit{border:1px solid var(--color-border);color:var(--color-text);background:#fff}.guest-export:hover,.guest-retry:hover,.guest-edit:hover{background:#fff7f1;border-color:#e4cbb8}.guest-export:disabled{opacity:.7;cursor:not-allowed}.guest-toolbar{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-top:24px;padding:14px 16px;display:flex;box-shadow:0 10px 24px #5c3a200a}.guest-search{flex:16rem;max-width:28rem;position:relative}.guest-search-icon{color:var(--color-muted);pointer-events:none;display:inline-flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.guest-search-icon svg{width:16px;height:16px}.guest-search input{border:1px solid var(--color-border);width:100%;min-height:42px;font-family:var(--font-body);color:var(--color-text);appearance:none;background:#fff;border-radius:999px;padding:10px 14px 10px 40px;font-size:.95rem}.guest-form input,.guest-form select,.guest-form textarea{border:1px solid var(--color-border);font-family:var(--font-body);color:var(--color-text);background:#fff;padding:10px 12px;font-size:1rem}.guest-filters{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.guest-filters button{border:1px solid var(--color-border);min-height:36px;color:var(--color-muted);font-family:var(--font-body);cursor:pointer;background:#fffcf8;border-radius:999px;padding:6px 12px;font-size:.88rem}.guest-filters button:hover{color:var(--color-text);background:#fff7f1}.guest-filters button.is-active{color:var(--color-primary-dark);background:var(--color-primary-soft);border-color:#f0c9a8;font-weight:600}.guest-export-error{color:var(--color-primary-dark);margin:12px 0 0;font-size:.92rem}.guest-results{margin-top:16px}.guest-results.is-loading,.guest-results.guest-state{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;overflow:hidden;box-shadow:0 10px 24px #5c3a200a}.guest-state{justify-items:start;gap:12px;padding:28px 20px;display:grid}.guest-state p{color:var(--color-muted);margin:0}.guest-skeleton{gap:12px;padding:18px 16px;display:grid}.guest-skeleton-row{background:#f4ebe3;border-radius:12px;height:44px}.guest-table-wrap{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;display:none;overflow:hidden;box-shadow:0 10px 24px #5c3a200a}.guest-table{border-collapse:collapse;width:100%}.guest-table th,.guest-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #f3e4d8;padding:14px 16px;font-size:.95rem}.guest-table th{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;background:#fffaf6;font-size:.72rem;font-weight:600}.guest-table tbody tr:last-child td{border-bottom:0}.guest-table tbody tr:hover{background:#fff7f1}.guest-table td{overflow-wrap:anywhere}.guest-name{color:var(--color-text);font-weight:600}.guest-phone,.guest-date{color:var(--color-muted)}.guest-party{color:var(--color-text);align-items:center;gap:6px;display:inline-flex}.guest-party svg{width:15px;height:15px;color:var(--color-muted)}.guest-edit{min-height:34px;padding:4px 12px;font-size:.85rem}.guest-cards .guest-edit{justify-self:start}.guest-cards{gap:12px;margin:0;padding:0;list-style:none;display:grid}.guest-cards li{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;gap:12px;padding:16px;display:grid;box-shadow:0 8px 20px #5c3a200a}.guest-card-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.guest-card-top .guest-name,.guest-card-top strong{overflow-wrap:anywhere;font-size:1.05rem}.guest-card-meta{gap:10px;margin:0;display:grid}.guest-card-meta div{grid-template-columns:7.5rem minmax(0,1fr);align-items:center;gap:8px;display:grid}.guest-card-meta dt{color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.guest-card-meta dd{color:var(--color-text);margin:0;font-size:.95rem}.guest-badge,.guest-link-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:26px;padding:3px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.guest-badge.attending{background:var(--color-primary-soft);color:var(--color-primary-dark)}.guest-badge.pending{color:var(--color-primary-dark);background:0 0;box-shadow:inset 0 0 0 1px #e8b48a}.guest-badge.declined{color:#6f675f;background:#f3eeea}.guest-link-badge svg{width:13px;height:13px}.guest-link-badge.has-link{color:var(--color-primary-dark);background:#fff7f1}.guest-link-badge.no-link{color:var(--color-muted);background:#f3eeea}.guest-form{gap:14px;max-width:32rem;margin-top:24px;display:grid}.guest-form label{flex-direction:column;gap:6px;font-size:.92rem;display:flex}.guest-form-hint{color:var(--color-muted);margin:0;font-size:.9rem}.guest-companions{gap:8px;display:grid}.guest-companions p{margin:0;font-size:.92rem}.guest-companions ol{color:var(--color-text);gap:4px;margin:0;padding-left:1.2rem;display:grid}.guest-form button{border:1.5px solid var(--color-primary);background:var(--color-primary);color:#fff;font-family:var(--font-body);cursor:pointer;justify-self:start;padding:11px 16px;font-size:.95rem}.guest-form button:disabled{opacity:.7;cursor:not-allowed}@media (width>=1024px){.guest-table-wrap{display:block}.guest-cards{display:none}}.invite-section{border-top:1px solid var(--color-border);gap:12px;max-width:32rem;margin-top:32px;padding-top:24px;display:grid}.invite-section h3{font-family:var(--font-serif);margin:0;font-size:1.35rem;font-weight:500}.invite-section p{color:var(--color-muted);margin:0}.invite-section>button,.invite-result button{border:1.5px solid var(--color-primary);background:var(--color-primary);color:#fff;font-family:var(--font-body);cursor:pointer;justify-self:start;padding:11px 16px;font-size:.95rem}.invite-section>button:disabled{opacity:.7;cursor:not-allowed}.invite-result{gap:10px;display:grid}.invite-result label{flex-direction:column;gap:6px;font-size:.92rem;display:flex}.invite-result textarea{border:1px solid var(--color-border);font-family:var(--font-body);color:var(--color-text);resize:vertical;background:#fff;padding:10px 12px;font-size:.92rem}.content-grid,.memory-admin{gap:20px;margin-top:24px;display:grid}.content-file,.memory-admin section,.admin-gallery li{border:1px solid var(--color-border);padding:16px}.content-preview{margin:10px 0 14px}.content-preview video,.content-preview img,.admin-gallery img{object-fit:cover;background:#f6f1ec;width:100%;max-height:180px;display:block}.content-preview video{object-fit:contain;background:#1c1612;max-height:200px}.content-ready{color:var(--color-primary-dark);margin:0 0 8px;font-size:.85rem}.gallery-order{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.admin-memory-tabs{flex-wrap:wrap;gap:8px;display:flex}.admin-memory-tabs button{border:1px solid var(--color-border);min-height:40px;color:var(--color-text);cursor:pointer;background:#fff;padding:8px 12px}.admin-memory-tabs button.is-active{border-color:var(--color-primary);background:var(--color-primary-soft);font-weight:600}.content-file-url{overflow-wrap:anywhere;color:var(--color-muted);font-size:.85rem}.admin-gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.memory-admin ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.memory-admin h3{font-family:var(--font-serif);font-weight:500}.admin-note-list{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.admin-note-card{border:1px solid var(--color-border);background:#fff;gap:10px;padding:16px;display:grid}.admin-note-meta{flex-wrap:wrap;justify-content:space-between;gap:8px 16px;display:flex}.admin-note-name,.admin-note-date,.admin-note-text{margin:0}.admin-note-name{font-weight:600}.admin-note-date{color:var(--color-muted);font-size:.85rem}.admin-note-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.content-page{width:100%;max-width:1360px;margin:0 auto}.content-jump{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.content-jump a{border:1px solid var(--color-border);min-height:36px;color:var(--color-muted);background:#fffcf8;border-radius:999px;align-items:center;padding:6px 12px;font-size:.88rem;text-decoration:none;display:inline-flex}.content-jump a:hover{color:var(--color-text);background:#fff7f1}.content-notice{color:var(--color-primary-dark);background:#fff7f1;border:1px solid #f0c9a8;border-radius:16px;margin:16px 0 0;padding:12px 14px;font-size:.92rem}.content-state{border:1px solid var(--color-border);color:var(--color-muted);background:#fffcf8;border-radius:20px;margin-top:20px;padding:24px 18px}.content-state p{margin:0 0 12px}.content-section{margin-top:28px;scroll-margin-top:16px}.content-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.content-section-head h3{font-family:var(--font-serif);margin:0;font-size:1.45rem;font-weight:500}.content-section-head p{color:var(--color-muted);margin:6px 0 0;font-size:.95rem}.content-media-grid{gap:16px;display:grid}.content-media-card,.content-card{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;padding:18px;box-shadow:0 10px 24px #5c3a200a}.content-card{margin-top:16px}.content-card h4{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0 0 14px;font-size:.78rem;font-weight:600}.content-media-head{align-items:flex-start;gap:12px;display:flex}.content-media-icon{background:var(--color-primary-soft);width:36px;height:36px;color:var(--color-primary-dark);border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex}.content-media-icon svg{width:18px;height:18px}.content-media-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.content-media-head h3{font-family:var(--font-body);margin:0;font-size:1rem;font-weight:600}.content-media-head p{color:var(--color-muted);margin:6px 0 0;font-size:.9rem}.content-status{border-radius:999px;align-items:center;min-height:24px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.content-status.is-ready{background:var(--color-primary-soft);color:var(--color-primary-dark)}.content-status.is-empty{color:var(--color-muted);background:#f3eeea}.content-preview-box{margin-top:14px}.content-preview-box.is-video{aspect-ratio:9/16;background:#1c1612;border-radius:16px;max-width:min(520px,100%);max-height:360px;overflow:hidden}.content-preview-box.is-video video{object-fit:contain;width:100%;height:100%;max-height:360px;display:block}.content-preview-box.is-audio audio{width:100%;max-width:420px;display:block}.content-preview-box.is-image{aspect-ratio:16/7;background:#efe6de;border-radius:16px;max-width:720px;overflow:hidden}.content-preview-box.is-image img{object-fit:cover;width:100%;height:100%;display:block}.content-preview-box.is-image.is-contain{aspect-ratio:auto;background:repeating-conic-gradient(#f4ebe3 0% 25%,#fffdfb 0% 50%) 50%/16px 16px;min-height:112px}.content-preview-box.is-image.is-contain img{object-fit:contain;background:0 0;width:auto;max-width:100%;height:auto;max-height:160px;margin:0 auto}.content-filename{color:var(--color-muted);overflow-wrap:anywhere;margin:12px 0 0;font-size:.88rem}.content-media-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.content-btn{border:1px solid var(--color-border);min-height:38px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:8px 14px;font-size:.88rem;display:inline-flex}.content-btn:hover{background:#fff7f1;border-color:#e4cbb8}.content-btn.is-primary{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.content-btn.is-primary:hover{border-color:var(--color-primary-dark);background:var(--color-primary-dark)}.content-btn.is-danger{color:var(--color-text)}.content-btn.is-danger:hover{background:#fff4ee;border-color:#e4cbb8}.content-btn:disabled,.content-icon-btn:disabled{opacity:.45;cursor:not-allowed}.content-card-note{color:var(--color-muted);margin:10px 0 0;font-size:.88rem}.content-card-error{color:var(--color-primary-dark);margin:10px 0 0;font-size:.88rem}.content-form-grid,.content-form-row{gap:14px;display:grid}.content-form-grid label,.content-gallery-upload label{flex-direction:column;gap:6px;font-size:.92rem;display:flex}.content-form-grid label span,.content-gallery-upload label span{color:var(--color-muted);font-size:.82rem}.content-form-grid input,.content-form-grid textarea,.content-gallery-upload input{border:1px solid var(--color-border);width:100%;min-height:42px;color:var(--color-text);font-family:var(--font-body);background:#fff;border-radius:12px;padding:10px 12px;font-size:1rem}.content-form-grid textarea{resize:vertical;min-height:92px}.content-iban{letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.content-save-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.content-gallery-upload{gap:12px;display:grid}.content-empty{border:1px dashed var(--color-border);color:var(--color-muted);border-radius:16px;margin:0;padding:20px 16px}.content-gallery{grid-template-columns:1fr;gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.content-gallery li{border:1px solid var(--color-border);background:#fffcf8;border-radius:18px;gap:10px;padding:12px;display:grid;box-shadow:0 8px 20px #5c3a200a}.content-gallery-image{aspect-ratio:1;background:#efe6de;border-radius:12px;position:relative;overflow:hidden}.content-gallery-image img{object-fit:cover;width:100%;height:100%;display:block}.content-gallery-order{color:#fff;background:#2f2925b8;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:600;position:absolute;top:8px;left:8px}.content-gallery-caption input{border:1px solid var(--color-border);width:100%;min-height:38px;font-family:var(--font-body);color:var(--color-text);background:#fff;border-radius:10px;padding:8px 10px;font-size:.88rem}.content-gallery-actions{flex-wrap:wrap;gap:6px;display:flex}.content-icon-btn{border:1px solid var(--color-border);min-width:36px;min-height:34px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:4px 10px;font-size:.85rem;display:inline-flex}.content-icon-btn:hover:not(:disabled){background:#fff7f1;border-color:#e4cbb8}.content-icon-btn.is-danger:hover:not(:disabled){background:#fff4ee}@media (width>=560px){.content-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=720px){.content-form-row{grid-template-columns:1fr 1fr}}@media (width>=900px){.content-media-grid,.content-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1200px){.content-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.content-btn,.content-icon-btn,.content-jump a{transition:none;transform:none}}.memories-page{width:100%;max-width:1360px;margin:0 auto}.guest-heading .memory-privacy-note{color:var(--color-muted);margin:8px 0 0;font-size:.85rem}.memory-notice{color:var(--color-primary-dark);background:#fff7f1;border:1px solid #f0c9a8;border-radius:16px;margin:16px 0 0;padding:12px 14px;font-size:.92rem}.memory-state{border:1px solid var(--color-border);color:var(--color-muted);background:#fffcf8;border-radius:20px;margin-top:20px;padding:24px 18px}.memory-state p{margin:0 0 12px}.memory-inbox{margin-top:20px}.memory-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;gap:6px;display:flex;overflow-x:auto}.memory-tabs button{min-height:40px;color:var(--color-muted);font-family:var(--font-body);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:12px 12px 0 0;flex:none;align-items:center;gap:8px;padding:8px 14px;font-size:.9rem;display:inline-flex}.memory-tabs button:hover{color:var(--color-text);background:#fff7f1}.memory-tabs button.is-active{background:var(--color-primary-soft);color:var(--color-primary-dark);border-bottom-color:var(--color-primary);font-weight:600}.memory-tab-count{min-width:1.4rem;color:inherit;background:#fff;border-radius:999px;justify-content:center;padding:1px 6px;font-size:.78rem;font-weight:600;display:inline-flex}.memory-panel{border:1px solid var(--color-border);background:#fffcf8;border-radius:0 20px 20px;margin-top:0;padding:18px;box-shadow:0 10px 24px #5c3a200a}.memory-empty{color:var(--color-muted);margin:8px 0}.memory-note-list,.memory-media-grid,.memory-audio-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.memory-note-card{border:1px solid var(--color-border);background:#fff;border-radius:16px;gap:10px;padding:16px;display:grid}.memory-note-top{flex-wrap:wrap;justify-content:space-between;gap:6px 16px;display:flex}.memory-note-name,.memory-note-date,.memory-note-text,.memory-media-name,.memory-media-date{margin:0}.memory-note-name,.memory-media-name{color:var(--color-text);font-weight:600}.memory-note-date,.memory-media-date{color:var(--color-muted);font-size:.85rem}.memory-note-text{font-family:var(--font-serif);white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.05rem;line-height:1.55}.memory-note-delete{justify-self:end}.memory-media-grid{grid-template-columns:1fr}.memory-media-card,.memory-audio-card{border:1px solid var(--color-border);background:#fff;border-radius:16px;gap:10px;padding:12px;display:grid}.memory-photo-open{cursor:pointer;aspect-ratio:1;background:#efe6de;border:0;border-radius:12px;width:100%;padding:0;display:block;overflow:hidden}.memory-photo-open img{object-fit:cover;width:100%;height:100%;display:block}.memory-video-wrap{background:#1c1612;border-radius:12px;max-height:240px;overflow:hidden}.memory-video-wrap video{object-fit:contain;width:100%;max-height:240px;display:block}.memory-audio-card audio{width:100%}.memory-media-meta{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.memory-status{border-radius:999px;align-items:center;min-height:24px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.memory-status.pending{background:var(--color-primary-soft);color:var(--color-primary-dark)}.memory-status.approved{color:#4d6b52;background:#eef4ee}.memory-status.rejected{color:#6f675f;background:#f3eeea}.memory-actions{flex-wrap:wrap;gap:6px;display:flex}.memory-action{border:1px solid var(--color-border);min-height:34px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;display:inline-flex}.memory-action svg{width:14px;height:14px}.memory-action:hover{background:#fff7f1;border-color:#e4cbb8}.memory-action.is-danger:hover{background:#fff4ee}.memory-lightbox{z-index:40;background:#2f2925b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.memory-lightbox-dialog{max-width:min(960px,100%);max-height:86vh;position:relative}.memory-lightbox-dialog img{object-fit:contain;background:#1c1612;border-radius:12px;max-width:100%;max-height:86vh;display:block}.memory-lightbox-close{width:36px;height:36px;color:var(--color-text);cursor:pointer;background:#fff;border:0;border-radius:999px;font-size:1.4rem;line-height:1;position:absolute;top:-12px;right:-12px}@media (width>=640px){.memory-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=900px){.memory-tabs{flex-wrap:wrap;overflow:visible}.memory-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1200px){.memory-media-grid:not(.is-video){grid-template-columns:repeat(4,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.memory-tabs button,.memory-action,.memory-photo-open,.memory-lightbox-close,.pagination-nav-step,.pagination-nav-pages button{transition:none;transform:none}}.pagination-nav{border:1px solid var(--color-border);background:#fffcf8;border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding:12px 14px;display:flex;box-shadow:0 10px 24px #5c3a200a}.pagination-nav-pages{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pagination-nav-step,.pagination-nav-pages button{border:1px solid var(--color-border);min-width:36px;min-height:36px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:#fff;border-radius:999px;padding:6px 12px;font-size:.88rem}.pagination-nav-step:hover:not(:disabled),.pagination-nav-pages button:hover:not(.is-current){background:#fff7f1;border-color:#e4cbb8}.pagination-nav-pages button.is-current{border-color:var(--color-primary);background:var(--color-primary);color:#fff;font-weight:600}.pagination-nav-step:disabled{opacity:.45;cursor:not-allowed;color:var(--color-muted);background:#fffaf6}.pagination-nav-ellipsis{min-width:20px;color:var(--color-muted);text-align:center;padding:0 4px;font-size:.9rem}@media (width<=639px){.pagination-nav{gap:10px}.pagination-nav-step{flex:7.5rem}}.home{background:var(--color-background);justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.home-card{border:1px solid var(--color-border);text-align:center;flex-direction:column;align-items:center;gap:16px;width:min(28rem,100%);padding:40px 28px;display:flex}.home-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);margin:0;font-size:.78rem;font-weight:500}.home-card h1{font-family:var(--font-serif);margin:0;font-size:clamp(1.8rem,5vw,2.4rem);font-weight:500}.home-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.home-actions a{border:1.5px solid var(--color-primary);justify-content:center;align-items:center;min-height:42px;padding:10px 16px;font-size:.95rem;text-decoration:none;display:inline-flex}.home-actions a:first-child{background:var(--color-primary);color:#fff}.home-actions a:last-child{color:var(--color-primary-dark);background:#fff}
