:root{--text:#6b6375;--text-h:#08060d;--bg:#e7e6db;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;box-sizing:border-box;border-inline:0;flex-direction:column;width:100%;max-width:none;min-height:100svh;margin:0;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--color-base:#e7e6db;--color-page-background:#e7e6db;--color-header-footer:#98a293;--color-header-background:#98a293;--color-footer-background:#98a293;--color-nav-background:#98a293;--color-base-rgb:231, 230, 219;--color-header-footer-rgb:152, 162, 147;--color-accent-dark:#6b90af;--color-accent-mid:#b3c4d2;--color-accent-light:#bfd1d6;--color-text:#2d2522;--color-text-soft:#5f514c;--color-white:#fff;--font-heading:"Cormorant Garamond", Georgia, serif;--font-body:"Libre Baskerville", Georgia, serif;--sticky-nav-offset:4.75rem;--content-card-width:560px;--content-card-height:38rem;--content-card-padding:clamp(1.35rem, 3vw, 2.35rem)}*{box-sizing:border-box}html{width:100%;scroll-padding-top:var(--sticky-nav-offset);background:var(--color-page-background);overflow-x:clip}body{background:var(--color-page-background);width:100%;color:var(--color-text);font-family:var(--font-body);margin:0;overflow-x:clip}h1,h2,h3{font-family:var(--font-heading);font-weight:500;line-height:1.08}a{color:inherit}.site-header{z-index:30;background:var(--color-header-background);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100%;position:sticky;top:0;box-shadow:0 8px 28px #2d25221f}.nav{background:var(--color-nav-background);color:var(--color-text);flex-wrap:wrap;justify-content:center;gap:1rem 1.5rem;padding:1rem;display:flex}.nav-links{flex-wrap:wrap;justify-content:center;gap:1rem 1.5rem;display:flex}.nav a{letter-spacing:.02em;font-size:.95rem;text-decoration:none}.nav a.active{text-underline-offset:.35rem;text-decoration:underline}.nav a:hover{text-decoration:underline}.nav-session{color:#2d2522c7;align-items:center;gap:.65rem;font-size:.88rem;display:flex}.nav-session button{color:var(--color-text);cursor:pointer;font:inherit;text-underline-offset:.2rem;background:0 0;border:0;padding:0;text-decoration:underline}.site-footer{text-align:center;background:var(--color-footer-background);color:var(--color-text);padding:2rem 1rem}.footer-status{justify-items:center;gap:.35rem;margin-top:.75rem;font-size:.85rem;display:grid}.session-status{color:#2d2522c7}.session-logout-button{color:var(--color-text);cursor:pointer;font:inherit;text-underline-offset:.2rem;background:0 0;border:0;margin-left:.65rem;padding:0;text-decoration:underline}.button{background:var(--color-accent-dark);color:var(--color-white);cursor:pointer;font:inherit;border:none;border-radius:999px;padding:.85rem 1.25rem;text-decoration:none;display:inline-block}.button:hover{opacity:.9}.gate-page{background:linear-gradient(135deg, rgba(var(--color-base-rgb), .96), #bfd1d6ad);place-items:center;min-height:calc(100vh - 56px);padding:clamp(2rem,6vw,6rem);display:grid}.gate-panel{text-align:center;background:#ffffffb8;border:1px solid #ffffff8c;border-radius:1.25rem;width:min(100%,520px);padding:clamp(1.5rem,4vw,3rem);box-shadow:0 18px 48px #2d252224}.gate-panel h1{margin:0 0 1rem;font-size:clamp(2.15rem,5vw,3.4rem);line-height:1.1}.gate-panel p{color:var(--color-text-soft);margin:0 0 1.5rem;line-height:1.7}.schedule-page{background-image:linear-gradient(270deg, rgba(var(--color-base-rgb), .96) 0%, rgba(var(--color-base-rgb), .88) 38%, rgba(var(--color-base-rgb), .18) 72%), url(/images/beach-photo.jpg);background-position:0;background-size:cover;justify-content:flex-end;align-items:center;min-height:calc(100vh - 56px);padding:clamp(2rem,6vw,6rem);display:flex}.schedule-panel{width:min(100%, var(--content-card-width));height:min(var(--content-card-height), calc(100svh - var(--sticky-nav-offset) - clamp(4rem, 12vw, 12rem)));max-height:100%;padding:var(--content-card-padding);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;border:1px solid #ffffff8c;border-radius:1.25rem;overflow:auto;box-shadow:0 18px 48px #2d252229}.schedule-hero{margin:0 0 clamp(2rem,5vw,3rem)}.schedule-hero h1{margin:0 0 1rem;font-size:clamp(2.7rem,6vw,4.4rem);line-height:1.08}.schedule-hero p:last-child{color:var(--color-text-soft);margin:0;font-size:1.05rem;line-height:1.8}.schedule-list{gap:clamp(2rem,5vw,3.5rem);display:grid}.schedule-rsvp-note{background:#ffffffa3;border:1px solid #6b90af3d;border-radius:1rem;justify-content:space-between;align-items:center;gap:1rem;margin:0 0 clamp(1.5rem,4vw,2.4rem);padding:1rem;display:flex;box-shadow:0 10px 28px #2d252214}.schedule-rsvp-note p{color:var(--color-text-soft);margin:0;line-height:1.6}.schedule-rsvp-note .button{flex:none}.schedule-day{gap:1rem;display:grid}.schedule-day h2{color:var(--color-text);margin:0;font-size:clamp(1.7rem,4vw,2.4rem)}.schedule-events{gap:1rem;display:grid}.schedule-card{background:#ffffffa8;border:1px solid #ffffff94;border-radius:1.25rem;grid-template-columns:7.5rem minmax(0,1fr);gap:1.25rem;padding:clamp(1.2rem,3vw,1.75rem);display:grid;box-shadow:0 14px 38px #2d25221a}.schedule-time{color:var(--color-accent-dark);margin:0;font-weight:700;line-height:1.4}.schedule-card h3{overflow-wrap:anywhere;margin:0 0 .55rem;font-size:clamp(1.28rem,2.6vw,1.62rem);line-height:1.18}.schedule-card p{color:var(--color-text-soft);margin-top:0;line-height:1.65}.schedule-card p:last-child{margin-bottom:0}.schedule-location{color:var(--color-text);margin:0 0 .4rem;font-weight:700}@media (width<=640px){.schedule-rsvp-note{flex-direction:column;align-items:stretch}.schedule-rsvp-note .button{width:100%}.schedule-card{grid-template-columns:1fr;gap:.65rem}}@media (width<=800px){.schedule-page{background-image:linear-gradient(180deg, rgba(var(--color-base-rgb), .08) 0%, rgba(var(--color-base-rgb), .92) 62%, rgba(var(--color-base-rgb), .98) 100%), url(/images/beach-photo.jpg);align-items:end;padding:2rem 1rem}.schedule-panel{width:100%;height:auto;max-height:none}}.travel-page,.things-page{background:linear-gradient(180deg, rgba(var(--color-base-rgb), .98), #bfd1d661);min-height:calc(100vh - 56px);padding:clamp(3rem,7vw,6rem) 1.5rem}.travel-hero{text-align:center;max-width:820px;margin:0 auto clamp(2.5rem,6vw,4rem)}.travel-hero h1{margin:0 0 1rem;font-size:clamp(2.8rem,6vw,4.5rem);line-height:1.08}.travel-hero p:last-child,.travel-note{color:var(--color-text-soft);line-height:1.8}.travel-hero p:last-child{max-width:700px;margin:0 auto;font-size:1.05rem}.travel-section,.travel-info-grid,.things-quick-section,.things-area-section{max-width:1120px;margin:0 auto clamp(2.5rem,6vw,4.5rem)}.travel-section-heading{margin-bottom:1.25rem}.travel-section-heading h2,.travel-info-panel h2{margin:0;font-size:clamp(1.9rem,4vw,3rem)}.airport-grid,.travel-card-grid,.travel-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.travel-card,.flight-helper,.travel-info-panel,.things-quick-card,.things-category-card,.additional-stay-panel,.additional-stay-card{background:#ffffffad;border:1px solid #ffffff94;border-radius:1.25rem;box-shadow:0 14px 38px #2d25221a}.travel-card{min-width:0;overflow:hidden}.airport-card{grid-template-columns:4.5rem minmax(0,1fr);gap:1rem;padding:clamp(1.1rem,3vw,1.5rem);display:grid}.airport-code{background:var(--color-accent-dark);width:4.5rem;height:4.5rem;color:var(--color-white);letter-spacing:.08em;border-radius:999px;place-items:center;font-weight:700;display:grid}.travel-card h3{margin:0 0 .45rem;font-size:clamp(1.3rem,3vw,1.8rem)}.travel-card p,.travel-info-panel li,.things-quick-card p,.things-category-card li,.additional-stay-card p,.additional-stay-panel p{color:var(--color-text-soft);line-height:1.65}.travel-card p:last-child{margin-bottom:0}.travel-card-kicker,.travel-address{color:var(--color-text);font-weight:700}.media-card{flex-direction:column;height:100%;display:flex}.media-card img{aspect-ratio:16/10;object-fit:cover;width:100%;display:block}.media-card-content{flex-direction:column;flex:1;gap:.65rem;padding:clamp(1.1rem,3vw,1.5rem);display:flex}.media-card-content p{margin:0}.media-card-content .button{place-self:flex-start start;margin-top:auto}.travel-section-note{margin-top:clamp(1.35rem,3vw,2rem)}.flight-helper{grid-template-columns:minmax(0,1fr) minmax(8rem,.6fr) minmax(0,1fr) auto;align-items:end;gap:1rem;margin-top:1.25rem;padding:clamp(1.1rem,3vw,1.5rem);display:grid}.flight-helper .travel-note{grid-column:1/-1;margin:0;font-size:.92rem}.travel-info-panel{padding:clamp(1.25rem,3vw,1.75rem)}.travel-info-panel ul{gap:.75rem;margin:1rem 0 0;padding-left:1.2rem;display:grid}.additional-stay-panel{gap:1.25rem;margin-top:clamp(1.5rem,4vw,2.5rem);padding:clamp(1.2rem,3vw,1.75rem);display:grid}.additional-stay-panel h3,.additional-stay-card h4,.things-quick-card p,.things-category-card h3{margin:0}.additional-stay-panel>div>p:last-child{margin-bottom:0}.additional-stay-grid,.things-quick-grid,.things-category-grid{gap:1rem;display:grid}.additional-stay-grid,.things-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.additional-stay-card,.things-quick-card,.things-category-card{padding:clamp(1rem,3vw,1.35rem)}.additional-stay-card p{margin:.3rem 0 0}.things-quick-grid{align-items:stretch}.things-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.things-category-card{align-content:start;gap:.75rem;display:grid}.things-category-card ul{gap:.45rem;margin:0;padding-left:1.15rem;display:grid}@media (width<=850px){.airport-grid,.travel-card-grid,.travel-info-grid,.flight-helper,.additional-stay-grid,.things-quick-grid,.things-category-grid{grid-template-columns:1fr}.flight-helper .button{justify-self:start}}@media (width<=520px){.airport-card{grid-template-columns:1fr}}.registry-page{background:linear-gradient(180deg, rgba(var(--color-base-rgb), .98), #bfd1d65c);min-height:calc(100vh - 56px);padding:clamp(3rem,7vw,6rem) 1.5rem}.registry-hero{text-align:center;max-width:820px;margin:0 auto clamp(2rem,5vw,3.5rem)}.registry-hero h1{margin:0 0 1rem;font-size:clamp(2.8rem,6vw,4.5rem);line-height:1.08}.registry-hero p:last-child{max-width:680px;color:var(--color-text-soft);margin:0 auto;font-size:1.05rem;line-height:1.8}.registry-card{background:#ffffffad;border:1px solid #ffffff94;border-radius:1.25rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(1.25rem,4vw,2rem);width:min(100%,760px);margin:0 auto;padding:clamp(1.35rem,4vw,2.25rem);display:grid;box-shadow:0 14px 38px #2d25221a}.registry-card-copy{gap:.55rem;display:grid}.registry-card-copy h2,.registry-card-copy p{margin:0}.registry-card-copy h2{font-size:clamp(1.8rem,4vw,2.8rem)}.registry-card-copy p:last-child{color:var(--color-text-soft);line-height:1.7}.registry-card-kicker{color:var(--color-accent-dark);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.registry-button{text-align:center;white-space:normal;justify-self:end}@media (width<=680px){.registry-card{grid-template-columns:1fr}.registry-button{justify-self:stretch}}.faq-page{background:linear-gradient(180deg, rgba(var(--color-base-rgb), .98), #bfd1d65c);min-height:calc(100vh - 56px);padding:clamp(3rem,7vw,6rem) 1.5rem}.faq-hero{text-align:center;max-width:820px;margin:0 auto clamp(2.5rem,6vw,4rem)}.faq-hero h1{margin:0 0 1rem;font-size:clamp(2.8rem,6vw,4.5rem);line-height:1.08}.faq-hero p:last-child{max-width:720px;color:var(--color-text-soft);margin:0 auto;font-size:1.05rem;line-height:1.8}.faq-sections{gap:clamp(1.5rem,4vw,2.5rem);max-width:920px;margin:0 auto;display:grid}.faq-section{gap:1rem;display:grid}.faq-section h2{margin:0;font-size:clamp(1.8rem,4vw,2.6rem)}.faq-list{gap:.75rem;display:grid}.faq-item{background:#ffffffad;border:1px solid #ffffff94;border-radius:1.25rem;overflow:hidden;box-shadow:0 12px 34px #2d252217}.faq-question{width:100%;color:var(--color-text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;gap:1rem;padding:clamp(1rem,3vw,1.35rem);font-weight:700;display:flex}.faq-question:hover,.faq-question:focus-visible{background:#ffffff6b}.faq-toggle{color:var(--color-accent-dark);flex:none;font-size:1.35rem;line-height:1}.faq-answer{padding:0 clamp(1rem,3vw,1.35rem) clamp(1rem,3vw,1.35rem)}.faq-answer p{color:var(--color-text-soft);margin:0;line-height:1.75}.photos-page{background:linear-gradient(180deg, rgba(var(--color-base-rgb), .98), #bfd1d65c);min-height:calc(100vh - 56px);padding:clamp(3rem,7vw,6rem) 1.5rem}.photos-hero{text-align:center;max-width:880px;margin:0 auto clamp(2rem,5vw,3.5rem)}.photos-hero h1{margin:0 0 1rem;font-size:clamp(2.8rem,6vw,4.5rem);line-height:1.08}.photos-hero p:last-of-type{max-width:760px;color:var(--color-text-soft);margin:0 auto 1.5rem;font-size:1.05rem;line-height:1.8}.photos-upload-button:disabled{cursor:not-allowed;opacity:.72}.photos-upload-button{min-height:3rem;font-size:1rem;font-weight:700;line-height:1.2}.photo-upload-panel{background:#ffffffad;border:1px solid #ffffff94;border-radius:1.25rem;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(1.25rem,4vw,2rem);max-width:980px;margin:0 auto 2rem;padding:clamp(1.25rem,4vw,2rem);display:grid;box-shadow:0 14px 38px #2d25221a}.photo-upload-panel h2{margin:0 0 .75rem;font-size:clamp(1.8rem,4vw,2.6rem)}.photo-upload-panel p{color:var(--color-text-soft);line-height:1.7}.photo-upload-form{gap:1rem;display:grid}.photo-file-summary{border:1px solid var(--color-accent-mid);background:#ffffff8a;border-radius:1rem;padding:1rem}.photo-file-summary p,.photo-file-summary ul{margin:0}.photo-file-summary ul{color:var(--color-text-soft);gap:.35rem;margin-top:.5rem;padding-left:1.2rem;line-height:1.5;display:grid}.photo-upload-actions{flex-wrap:wrap;gap:.75rem;display:flex}.photos-controls{scroll-margin-top:var(--sticky-nav-offset)}.photos-toolbar{flex-wrap:wrap;justify-content:center;gap:.75rem;max-width:920px;margin:0 auto 2rem;display:flex}.photos-toolbar button{border:1px solid var(--color-accent-mid);color:var(--color-text);cursor:pointer;font:inherit;background:#ffffff94;border-radius:999px;padding:.72rem 1rem}.photos-toolbar button:hover,.photos-toolbar button:focus-visible,.photos-toolbar button.is-active{background:var(--color-accent-dark);color:var(--color-white);border-color:var(--color-accent-dark)}.photos-sort-toolbar{justify-content:center;align-items:center;gap:.75rem;max-width:920px;margin:-.75rem auto 1.5rem;display:flex}.photos-sort-toolbar label{color:var(--color-text);font-weight:700}.photos-sort-toolbar select{border:1px solid var(--color-accent-mid);color:var(--color-text);font:inherit;background:#ffffffb8;border-radius:999px;padding:.7rem 1rem}.photos-selection-toolbar{top:calc(var(--sticky-nav-offset) + .75rem);z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff9e;border:1px solid #ffffff94;border-radius:1rem;gap:.75rem;max-width:1180px;margin:0 auto 1.25rem;padding:1rem;display:grid;position:sticky;box-shadow:0 12px 34px #2d25221f}.photos-selection-toggle,.photos-selection-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.photos-selection-toolbar button{border:1px solid var(--color-accent-mid);color:var(--color-text);cursor:pointer;font:inherit;background:#ffffffb3;border-radius:999px;padding:.62rem .85rem}.photos-selection-toggle{text-align:left;justify-content:space-between;width:100%;font-weight:700}.photos-selection-actions{justify-content:flex-end;display:none}.photos-selection-icon{background:var(--color-accent-dark);min-width:2rem;height:2rem;color:var(--color-white);border-radius:999px;place-items:center;padding:0 .45rem;font-weight:700;display:grid}.photos-selection-chevron{color:var(--color-accent-dark);margin-left:auto;font-weight:700}.photos-selection-toolbar.is-selection-expanded .photos-selection-actions{display:flex}.photos-selection-toolbar button:hover,.photos-selection-toolbar button:focus-visible{background:var(--color-accent-dark);color:var(--color-white);border-color:var(--color-accent-dark)}.photos-selection-toolbar button:disabled{cursor:not-allowed;opacity:.68}.photos-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:1180px;margin:0 auto;padding-bottom:1rem;display:grid}.photo-card{background:#ffffffad;border:1px solid #ffffff94;border-radius:1.25rem;position:relative;overflow:hidden;box-shadow:0 14px 38px #2d25221a}.photo-image-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.photo-image-button img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.photo-heart{width:2.6rem;height:2.6rem;color:var(--color-text-soft);cursor:pointer;background:#ffffffd1;border:1px solid #ffffffb3;border-radius:999px;place-items:center;font-size:1.25rem;line-height:1;display:grid;position:absolute;top:.75rem;right:.75rem}.photo-select-control{z-index:1;color:var(--color-text);cursor:pointer;background:#ffffffd6;border:1px solid #ffffffb3;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem .7rem;font-size:.85rem;display:flex;position:absolute;top:.75rem;left:.75rem}.photo-select-control input{margin:0}.photo-heart:hover,.photo-heart:focus-visible,.photo-heart.is-liked{background:var(--color-accent-dark);color:var(--color-white)}.photo-delete-button{color:#8a2c2c;cursor:pointer;font:inherit;background:#ffffffd6;border:1px solid #ffffffb3;border-radius:999px;padding:.48rem .7rem;font-size:.85rem;position:absolute;top:3.8rem;right:.75rem}.photo-edit-button{color:var(--color-accent-dark);cursor:pointer;font:inherit;background:#ffffffd6;border:1px solid #ffffffb3;border-radius:999px;padding:.48rem .7rem;font-size:.85rem;position:absolute;top:6.55rem;right:.75rem}.photo-edit-button:hover,.photo-edit-button:focus-visible{background:var(--color-accent-dark);color:var(--color-white)}.photo-delete-button:hover,.photo-delete-button:focus-visible{color:var(--color-white);background:#8a2c2c}.photo-card-meta{justify-content:space-between;gap:1rem;padding:1rem;display:flex}.photo-title,.photo-uploader,.photo-like-count{margin:0}.photo-title{color:var(--color-text);font-weight:700}.photo-uploader,.photo-like-count{color:var(--color-text-soft);font-size:.92rem;line-height:1.5}.photo-like-count{flex:none}.photos-empty,.photos-inline-error,.photos-success-message{text-align:center;max-width:720px;margin:0 auto}.photos-empty{background:#ffffffad;border:1px solid #ffffff94;border-radius:1.25rem;padding:clamp(1.5rem,4vw,2.5rem);box-shadow:0 14px 38px #2d25221a}.photos-empty h2{margin:0 0 .75rem}.photos-empty p,.photos-inline-error{color:var(--color-text-soft);line-height:1.7}.photos-inline-error{color:#8a2c2c;margin-bottom:1rem}.photos-success-message{color:var(--color-accent-dark);margin-bottom:1rem;line-height:1.7}.photo-lightbox{z-index:50;background:#2d252294;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.photos-back-to-top{z-index:16;background:var(--color-accent-dark);color:var(--color-white);cursor:pointer;font:inherit;border:1px solid #ffffffb3;border-radius:999px;padding:.82rem 1.05rem;font-weight:700;position:fixed;bottom:clamp(1rem,4vw,2rem);right:clamp(1rem,4vw,2rem);box-shadow:0 14px 34px #2d252233}.photos-back-to-top:hover,.photos-back-to-top:focus-visible{opacity:.92}.photo-lightbox-panel{background:var(--color-base);border-radius:1.25rem;width:min(100%,980px);max-height:min(92vh,900px);position:relative;overflow:auto;box-shadow:0 22px 70px #2d252247}.photo-lightbox-panel img{object-fit:contain;background:#2d252214;width:100%;max-height:68vh;display:block}.photo-lightbox-close{color:var(--color-text);cursor:pointer;font:inherit;background:#ffffffe0;border:0;border-radius:999px;padding:.65rem .9rem;position:absolute;top:.9rem;right:.9rem}.photo-lightbox-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:clamp(1rem,3vw,1.5rem);display:flex}.photo-lightbox-meta h2,.photo-lightbox-meta p{margin:0}.photo-lightbox-meta p{color:var(--color-text-soft)}.photo-lightbox-like.is-liked{background:#8a2c2c}.photo-caption-form,.photo-caption-editor{border-top:1px solid #ffffff94;gap:.75rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.photo-caption-form label,.photo-caption-editor h2{color:var(--color-text);font-weight:700}.photo-caption-form textarea,.photo-caption-editor textarea{border:1px solid var(--color-accent-mid);width:100%;color:var(--color-text);font:inherit;resize:vertical;background:#ffffffe6;border-radius:1rem;padding:.85rem 1rem}.photo-caption-form div,.photo-caption-editor form div{flex-wrap:wrap;gap:.75rem;display:flex}.photo-caption-editor{background:#ffffffad;border:1px solid #ffffff94;border-radius:1.25rem;max-width:720px;margin:1.25rem auto 0;box-shadow:0 14px 38px #2d25221a}.photo-caption-editor h2{margin:0}.photo-caption-editor form{gap:.75rem;display:grid}@media (width<=900px){.photos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-upload-panel{grid-template-columns:1fr}}@media (width<=640px){:root{--sticky-nav-offset:7.75rem}.nav{gap:.65rem 1rem;padding:.8rem}.nav-links{gap:.7rem 1rem}.nav-session{justify-content:center;width:100%}.photos-grid{grid-template-columns:1fr}.photo-card-meta,.photo-lightbox-meta{flex-direction:column;align-items:stretch}.photo-like-count{flex:auto}.photos-selection-toolbar{top:calc(var(--sticky-nav-offset) + .45rem);border-radius:999px;gap:.45rem;margin-bottom:.85rem;padding:.45rem}.photos-selection-toolbar.is-selection-expanded{border-radius:1rem}.photos-selection-toggle{flex-wrap:nowrap;gap:.45rem;width:100%;min-height:2.5rem;padding:.48rem .65rem}.photos-selection-toggle span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.photos-selection-icon{min-width:1.75rem;height:1.75rem;font-size:.86rem}.photos-selection-actions{width:100%;padding:.25rem .2rem .35rem}.photos-selection-actions button{flex:auto;padding:.58rem .7rem;font-size:.9rem}.photos-back-to-top{padding:.65rem .82rem;font-size:.86rem;bottom:1rem;left:auto;right:.85rem;box-shadow:0 10px 26px #2d25222e}}.home-hero{grid-template-columns:1fr 1fr;align-items:stretch;min-height:calc(100vh - 56px);display:grid}.home-hero-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:clamp(2rem,6vw,6rem);display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--color-accent-dark);margin-bottom:1rem;font-size:.78rem}.home-hero h1{white-space:nowrap;max-width:100%;margin:0;font-size:clamp(2.65rem,6vw,5.25rem);line-height:1.04}.wedding-details{color:var(--color-text-soft);margin-top:1.5rem;font-size:1.2rem;line-height:1.7}.home-hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:2rem;display:flex}.button.secondary{color:var(--color-accent-dark);border:1px solid var(--color-accent-dark);background:0 0}.home-hero-image{background-image:url(/images/engagement/home-hero.jpg);background-position:50%;background-size:cover;min-height:500px}.section{max-width:900px;margin:0 auto;padding:4rem 1.5rem}.section.center{text-align:center}.section h2{margin-top:0;font-size:clamp(2rem,4vw,3.2rem)}.section p{font-size:1.05rem;line-height:1.7}@media (width<=800px){.home-hero{grid-template-columns:1fr}.home-hero h1{font-size:clamp(2.6rem,11.5vw,4.7rem);line-height:1.08}.home-hero-image{order:-1;min-height:420px}.home-hero-content{padding:2.5rem 1.25rem}}.rsvp-page{box-sizing:border-box;height:calc(100svh - var(--sticky-nav-offset));background-image:linear-gradient(90deg, rgba(var(--color-base-rgb), .96) 0%, rgba(var(--color-base-rgb), .88) 38%, rgba(var(--color-base-rgb), .18) 72%), url(/images/engagement/rsvp-background.jpg);background-position:50%;background-size:cover;align-items:center;min-height:34rem;padding:clamp(2.5rem,7vw,7rem);display:flex;overflow:hidden}.rsvp-panel{width:min(100%, var(--content-card-width));height:min(100%, var(--content-card-height));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;border:1px solid #ffffff8c;border-radius:1.25rem;max-height:100%;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 48px #2d252229}.rsvp-panel-scroll{min-height:0;padding:var(--content-card-padding);scrollbar-gutter:stable;flex:1;overflow-y:auto}.rsvp-panel.has-rsvp-back .rsvp-panel-scroll{padding-top:clamp(3.35rem,5vw,3.9rem)}.rsvp-view{gap:1rem;display:grid}.rsvp-back-button{z-index:1;color:var(--color-text);cursor:pointer;font:inherit;background:#ffffff9e;border:1px solid #6b90af47;border-radius:999px;padding:.45rem .75rem;font-size:.86rem;position:absolute;top:1rem;left:1rem;box-shadow:0 8px 20px #2d252214}.rsvp-back-button:hover,.rsvp-back-button:focus-visible{background:#ffffffdb}.rsvp-panel h1{margin:0;font-size:clamp(2.45rem,6vw,4.2rem);line-height:1.08}.rsvp-success-view h1{white-space:nowrap}.rsvp-panel p{color:var(--color-text-soft);line-height:1.7}.rsvp-placeholder-form{gap:1rem;margin-top:.5rem;display:grid}.rsvp-guest-summary{background:#ffffff75;border:1px solid #6b90af40;border-radius:1rem;gap:.35rem;padding:.9rem 1rem;display:grid}.rsvp-guest-summary p{color:var(--color-text-soft);margin:0}.rsvp-success-view{align-content:center;min-height:100%}.form-field{gap:.35rem;display:grid}.form-field label{color:var(--color-text);font-size:.85rem}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--color-accent-mid);width:100%;color:var(--color-text);font:inherit;background:#ffffffe6;padding:.85rem 1rem}.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:#8a2c2c;box-shadow:0 0 0 3px #8a2c2c1a}.form-error{color:#8a2c2c;margin:0;font-size:.88rem;line-height:1.45}.form-field input,.form-field select{border-radius:999px}.form-field textarea{resize:vertical;border-radius:1rem}.form-field fieldset,.form-field legend{margin:0}fieldset.form-field{border:0;padding:0}fieldset.form-field legend{margin-bottom:.35rem;font-size:.85rem}.radio-group,.checkbox-field{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.radio-group label,.checkbox-field{color:var(--color-text-soft);font-size:.95rem}.radio-group input,.checkbox-field input{margin-right:.4rem}.attendance-options{border:1px solid var(--color-accent-mid);background:#ffffff94;border-radius:999px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;width:min(100%,28rem);padding:.22rem;display:grid}.attendance-option{cursor:pointer;min-width:0;position:relative}.attendance-option input{opacity:0;width:1px;height:1px;position:absolute}.attendance-pill{width:100%;min-width:0;min-height:2.85rem;color:var(--color-text-soft);text-align:center;white-space:nowrap;text-overflow:clip;border-radius:999px;justify-content:center;align-items:center;padding:.68rem 1rem;font-size:.92rem;font-weight:700;line-height:1.15;transition:background-color .16s,color .16s,box-shadow .16s;display:flex;overflow:hidden}.attendance-option input:checked+.attendance-pill{background:var(--color-accent-dark);color:var(--color-white);box-shadow:0 8px 18px #6b90af47}.attendance-option input:focus-visible+.attendance-pill{outline:2px solid var(--color-accent-dark);outline-offset:3px}.plus-one-section{border:1px solid var(--color-accent-mid);background:#ffffff75;border-radius:1rem;gap:1rem;padding:1rem;display:grid}.rsvp-guest-card,.rsvp-overview-card{background:#ffffff85;border:1px solid #6b90af47;border-radius:.75rem;gap:.85rem;padding:1rem;display:grid}.rsvp-overview-card h3,.rsvp-overview-card p{margin:0}.rsvp-overview-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1rem;display:flex}.rsvp-success-message,.rsvp-error-message{margin:0;line-height:1.6}.rsvp-success-message{color:var(--color-accent-dark)}.rsvp-error-message{color:#8a2c2c}.rsvp-note{margin-top:1rem;font-size:.9rem}@media (width<=800px){.rsvp-page{background-image:linear-gradient(180deg, rgba(var(--color-base-rgb), .08) 0%, rgba(var(--color-base-rgb), .92) 62%, rgba(var(--color-base-rgb), .98) 100%), url(/images/engagement/rsvp-background.jpg);align-items:end;padding:2rem 1rem}.rsvp-panel{width:100%;max-width:none;height:min(100%,40rem)}}@media (width<=520px){.rsvp-page{min-height:0;padding:1rem}.rsvp-panel{border-radius:1rem;height:100%}.rsvp-panel-scroll{padding:1.25rem}.rsvp-panel.has-rsvp-back .rsvp-panel-scroll{padding-top:3.6rem}.rsvp-back-button{top:.75rem;left:.75rem}.rsvp-panel h1{font-size:clamp(2.25rem,12vw,3rem)}.attendance-options{gap:.35rem;width:100%}.attendance-pill{min-height:2.65rem;padding:.58rem .35rem;font-size:.72rem}}.story-hero{text-align:center;max-width:860px;margin:0 auto;padding:clamp(4rem,8vw,7rem) 1.5rem 3rem}.story-hero h1{margin:0 0 1.25rem;font-size:clamp(2.8rem,6vw,4.5rem);line-height:1.08}.story-hero p:last-child{max-width:680px;color:var(--color-text-soft);margin:0 auto;font-size:1.08rem;line-height:1.8}.story-timeline{gap:clamp(3rem,7vw,6rem);max-width:1180px;margin:0 auto;padding:2rem 1.5rem 6rem;display:grid}.story-row{grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);align-items:center;gap:clamp(1.5rem,5vw,4rem);display:grid}.story-row-reverse{grid-template-columns:minmax(300px,.9fr) minmax(0,1fr)}.story-row-reverse .story-image{grid-area:1/2}.story-row-reverse .story-copy{grid-area:1/1}.story-image{margin:0}.story-image img{aspect-ratio:4/5;object-fit:cover;border-radius:1.5rem;width:100%;display:block;box-shadow:0 18px 50px #2d252224}.story-copy{background:#ffffff6b;border:1px solid #ffffff7a;border-radius:1.5rem;padding:clamp(1.5rem,4vw,3rem)}.story-kicker{color:var(--color-accent-dark);text-transform:uppercase;letter-spacing:.16em;margin:0 0 .75rem;font-size:.76rem}.story-copy h2{margin:0 0 1rem;font-size:clamp(2rem,4vw,3.2rem);line-height:1.08}.story-copy p{color:var(--color-text-soft);font-size:1.02rem;line-height:1.75}.story-copy p:last-child{margin-bottom:0}.story-copy .button{margin-top:1rem}@media (width<=850px){.story-timeline{gap:3.5rem;padding-bottom:4rem}.story-row,.story-row-reverse{grid-template-columns:1fr}.story-row-reverse .story-image,.story-row-reverse .story-copy{grid-area:auto}.story-image img{aspect-ratio:5/4;border-radius:1.25rem}.story-copy{border-radius:1.25rem}}@media (width<=520px){.story-hero{padding-top:3rem}.story-image img{aspect-ratio:1}.story-copy{padding:1.35rem}}.api-status{background:#ffffff4d;border-radius:999px;margin-top:.75rem;padding:.35rem .65rem;font-size:.75rem;display:inline-block}.api-status-connected{color:#1f4d2b}.api-status-offline{color:#7a1f1f}.api-status-checking{color:var(--color-text-soft)}.form-divider{text-align:center;color:var(--color-text-soft);margin:.25rem 0;font-size:.85rem}.rsvp-result{border-radius:1rem;margin-top:1.5rem;padding:1rem;line-height:1.6}.rsvp-result h2{margin-top:0;font-size:1.4rem}.rsvp-result ul{padding-left:1.25rem}.rsvp-result-success{background:#bfd1d680;border:1px solid #6b90af59}.rsvp-result-error{background:rgba(var(--color-header-footer-rgb), .22);border:1px solid rgba(var(--color-header-footer-rgb), .55)}
