.nav{z-index:20;height:var(--nav-height);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-bottom:1px solid #0000;justify-content:center;align-items:center;display:flex;position:sticky;top:0}.nav__links{justify-content:center;align-items:center;gap:clamp(1.25rem,3vw,2.5rem);margin:0;padding:0;list-style:none;display:flex}.nav__link{letter-spacing:.22em;text-transform:uppercase;color:var(--color-text);opacity:.72;transition:opacity .25s var(--ease-out);font-size:.7rem;font-weight:400}.nav__link:hover,.nav__link--active{opacity:1}.nav__toggle{background:0 0;border:0;flex-direction:column;justify-content:center;gap:5px;width:2rem;height:2rem;padding:0;display:none;position:absolute;right:1.25rem}.nav__toggle span{background:var(--color-text);width:100%;height:1px;display:block}@media (width<=720px){.nav__toggle{display:flex}.nav__links{background:var(--color-bg);border-bottom:1px solid var(--color-border);max-height:0;transition:max-height .35s var(--ease-out);flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;overflow:hidden}.nav__links--open{max-height:20rem}.nav__link{text-align:center;border-top:1px solid var(--color-border);width:100%;padding:1rem}}.admin-page{min-height:calc(100vh - var(--nav-height));padding:var(--space-section) 1.5rem;background:var(--color-bg-soft)}.admin-page__inner{width:min(100%, var(--max-content));margin:0 auto}.admin-page__inner--narrow{width:min(100%,26rem)}.admin-page__header{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;display:flex}.admin-page__title{font-family:var(--font-serif);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;font-size:clamp(2rem,5vw,3rem);font-weight:500}.admin-page__lead{color:var(--color-text-muted)}.admin-page__status{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.admin-login{flex-direction:column;gap:1.25rem;margin-top:2rem;display:flex}.admin-login__field{flex-direction:column;gap:.55rem;display:flex}.admin-login__label{letter-spacing:.18em;text-transform:uppercase;font-size:.72rem}.admin-login__input{border:1px solid var(--color-border);background:var(--color-bg);width:100%;font:inherit;padding:.85rem 1rem}.admin-login__input:focus{outline:1px solid var(--color-text)}.admin-login__error{color:#8a1f1f;font-size:.9rem}.admin-page__button{border:1px solid var(--color-text);background:var(--color-text);color:#fff;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;transition:background .25s var(--ease-out), color .25s var(--ease-out);padding:.8rem 1.15rem;font-size:.7rem}.admin-page__button:hover:not(:disabled){color:var(--color-text);background:0 0}.admin-page__button:disabled{opacity:.65;cursor:wait}.admin-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:2rem;display:grid}.admin-counts__item{background:var(--color-bg);border:1px solid var(--color-border);text-align:center;padding:1.25rem 1rem}.admin-counts__value{font-family:var(--font-serif);margin-bottom:.35rem;font-size:2rem;display:block}.admin-counts__label{letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-muted);font-size:.68rem}.admin-table-wrap{background:var(--color-bg);border:1px solid var(--color-border);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.9rem 1rem}.admin-table th{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);background:#00000005;font-size:.68rem;font-weight:500}.admin-table tr:last-child td{border-bottom:0}@media (width<=640px){.admin-page__header{flex-direction:column}.admin-counts{grid-template-columns:1fr}}.hero{width:100%;min-height:min(92vh,56rem);height:calc(100vh - var(--nav-height));background:#1a1a1a;place-items:center;display:grid;position:relative;overflow:hidden}.hero__media{position:absolute;inset:0}.hero__image{object-fit:cover;object-position:center 30%;width:100%;height:100%}.hero__overlay{background:var(--color-hero-overlay);position:absolute;inset:0}.hero__subheader{z-index:1;animation:heroFadeIn 1.1s var(--ease-out) both;flex-direction:column;align-items:center;gap:.85rem;padding:0 1.5rem;display:flex;position:relative}.hero__names{font-family:var(--font-serif);letter-spacing:.08em;text-align:center;color:#fff;text-transform:uppercase;margin:0;font-size:clamp(2.75rem,9vw,6.5rem);font-weight:500;line-height:1.05}.hero__date{font-family:var(--font-sans);letter-spacing:.28em;text-align:center;color:#fff;text-transform:uppercase;margin:0;font-size:clamp(.72rem,1.6vw,.95rem);font-weight:400;line-height:1.3}@keyframes heroFadeIn{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.hero{height:75vh;min-height:70vh}}.event-panel{border:1px solid var(--color-border);background:var(--color-bg);width:fit-content;max-width:100%;animation:panelFade .45s var(--ease-out) both;grid-template-columns:11rem minmax(0,32rem);justify-content:center;align-items:start;gap:2rem;margin-inline:auto;padding:1.75rem;display:grid}.event-panel__image-wrap{background:var(--color-bg-soft);width:11rem;height:11rem;overflow:hidden}.event-panel__image{object-fit:cover;width:100%;height:100%}.event-panel__body{padding-top:.25rem}.event-panel__title{font-family:var(--font-serif);letter-spacing:.01em;margin-bottom:1rem;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;line-height:1.2}.event-panel__description{color:var(--color-text-muted);max-width:32rem;font-size:.95rem}.event-panel__time{letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font-size:.72rem;line-height:1.55}.event-panel__map{background:var(--color-text);color:#fff;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--color-text);transition:background .25s var(--ease-out), color .25s var(--ease-out);justify-content:center;align-self:start;align-items:center;padding:.7rem 1.15rem;font-size:.68rem;display:inline-flex}.event-panel__map:hover{color:var(--color-text);background:0 0}.event-panel__attire-label{letter-spacing:.18em;text-transform:uppercase;margin-bottom:.35rem;font-size:.68rem;display:block}.event-panel__attire p{color:var(--color-text-muted);font-size:.85rem}@keyframes panelFade{0%{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.event-panel{grid-template-columns:8.5rem minmax(0,32rem)}.event-panel__image-wrap{width:8.5rem;height:8.5rem}}@media (width<=560px){.event-panel{grid-template-columns:1fr;gap:1.25rem;padding:1.25rem}.event-panel__image-wrap{width:100%;height:14rem}}.timeline{width:min(100%, calc(var(--timeline-count) * 10rem));margin:3rem auto 0;padding:0 .5rem 1rem;position:relative}.timeline__track{top:.55rem;left:calc(100% / (var(--timeline-count) * 2) - 1.25rem);right:calc(100% / (var(--timeline-count) * 2) - 1.25rem);background:var(--color-text);opacity:.85;height:1px;position:absolute}.timeline__nodes{grid-template-columns:repeat(var(--timeline-count), minmax(0, 1fr));margin:0;padding:0;list-style:none;display:grid}.timeline__node{justify-content:center;display:flex}.timeline__button{width:100%;max-width:11rem;color:inherit;text-align:center;background:0 0;border:0;flex-direction:column;align-items:center;gap:.9rem;padding:0;display:flex}.timeline__dot{z-index:1;border:1.5px solid var(--color-text);background:var(--color-bg);width:.85rem;height:.85rem;transition:background .3s var(--ease-out), transform .3s var(--ease-out), box-shadow .3s var(--ease-out);border-radius:50%;position:relative}.timeline__button--active .timeline__dot{background:var(--color-text);transform:scale(1.12);box-shadow:0 0 0 4px #11111114}.timeline__label{flex-direction:column;gap:.35rem;display:flex}.timeline__title{font-size:.78rem;font-weight:500;line-height:1.3}.timeline__when{letter-spacing:.04em;color:var(--color-text-muted);font-size:.68rem}.timeline__button:hover .timeline__dot{transform:scale(1.08)}@media (width<=800px){.timeline{-webkit-overflow-scrolling:touch;padding-bottom:1.25rem;overflow-x:auto}.timeline__track{width:calc((var(--timeline-count) - 1) * 10.5rem + 2.5rem);left:4rem;right:auto}.timeline__nodes{grid-template-columns:repeat(var(--timeline-count), 10.5rem);width:max-content;min-width:100%}}@media (width<=560px){.timeline__track{display:none}.timeline__nodes{flex-direction:column;gap:.75rem;width:100%;display:flex}.timeline__button{text-align:left;border-bottom:1px solid var(--color-border);flex-direction:row;gap:1rem;max-width:none;padding:.75rem .5rem}.timeline__label{align-items:flex-start}}.schedule{background:linear-gradient(180deg, #d5dece8c, #fffffff2), var(--color-bg);padding:var(--space-section) 1.5rem calc(var(--space-section) + 1rem)}.schedule__header{flex-direction:column;align-items:center;gap:1.25rem;margin-bottom:2.5rem;display:flex}.schedule__rule{background:var(--color-text);width:min(12rem,40%);height:1px}.schedule__title{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;font-size:clamp(1.4rem,3vw,2rem);font-weight:500}.schedule__content{width:min(100%, var(--max-content));margin:0 auto}.schedule__status{text-align:center;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);font-size:.75rem}.venue{background:var(--color-bg);padding:var(--space-section) 1.5rem}.venue__header{flex-direction:column;align-items:center;gap:1.25rem;margin-bottom:2.5rem;display:flex}.venue__rule{background:var(--color-text);width:min(12rem,40%);height:1px}.venue__title{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;font-size:clamp(1.4rem,3vw,2rem);font-weight:500}.venue__details{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.venue__date{font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);font-size:.72rem}.venue__name{font-family:var(--font-serif);letter-spacing:.04em;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:500;line-height:1.2}.venue__address{color:var(--color-text-muted);letter-spacing:.04em;font-size:.95rem}.venue__map{background:var(--color-text);color:#fff;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--color-text);transition:background .25s var(--ease-out), color .25s var(--ease-out);justify-content:center;align-self:center;align-items:center;padding:.7rem 1.15rem;font-size:.68rem;display:inline-flex}.venue__map:hover{color:var(--color-text);background:0 0}.venue__attire{flex-direction:column;align-items:center;gap:.35rem;display:flex}.venue__attire-label{letter-spacing:.18em;text-transform:uppercase;font-size:.68rem}.rsvp-page{min-height:calc(100vh - var(--nav-height));padding:var(--space-section) 1.5rem;background:linear-gradient(180deg, #d5dece8c, #fffffff2), var(--color-bg)}.rsvp-page__inner{width:min(100%,34rem);margin:0 auto}.rsvp-page__title{font-family:var(--font-serif);letter-spacing:.06em;text-transform:uppercase;text-align:center;margin-bottom:1rem;font-size:clamp(2.5rem,6vw,3.75rem);font-weight:500}.rsvp-page__lead{text-align:center;color:var(--color-text-muted);margin-bottom:2.5rem;line-height:1.6}.rsvp-form{flex-direction:column;gap:1.5rem;display:flex}.rsvp-form__field{flex-direction:column;gap:.6rem;display:flex}.rsvp-form__fieldset{border:0;margin:0;padding:0}.rsvp-form__label{letter-spacing:.18em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.72rem;display:flex}.rsvp-form__optional{letter-spacing:.12em;color:var(--color-text-muted);text-transform:none;font-size:.75rem}.rsvp-form__input,.rsvp-form__textarea{border:1px solid var(--color-border);background:var(--color-bg);width:100%;color:var(--color-text);font:inherit;border-radius:0;padding:.85rem 1rem}.rsvp-form__input:focus,.rsvp-form__textarea:focus{outline:1px solid var(--color-text);outline-offset:0}.rsvp-form__textarea{resize:vertical;min-height:7rem}.rsvp-form__choice{color:var(--color-text);align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.rsvp-form__choice input{accent-color:var(--color-text)}.rsvp-form__error{color:#8a1f1f;font-size:.9rem}.rsvp-page__button{border:1px solid var(--color-text);background:var(--color-text);color:#fff;letter-spacing:.18em;text-transform:uppercase;transition:background .25s var(--ease-out), color .25s var(--ease-out);align-self:stretch;padding:.9rem 1.25rem;font-size:.72rem}.rsvp-page__button:hover:not(:disabled){color:var(--color-text);background:0 0}.rsvp-page__button:disabled{opacity:.65;cursor:wait}:root{--color-bg:#fff;--color-bg-soft:#f7f7f7;--color-bg-baby-blue:#d3e7ff;--color-bg-pastel-green:#d5dece;--color-text:#111;--color-text-muted:#555;--color-border:#e5e5e5;--color-line:#111;--color-hero-overlay:#00000047;--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans:"DM Sans", "Helvetica Neue", Helvetica, sans-serif;--nav-height:3.5rem;--space-section:clamp(3rem, 8vw, 5.5rem);--max-content:68rem;--ease-out:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-weight:400;line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}h1,h2,h3,p{margin:0}#root{min-height:100vh}.app{flex-direction:column;min-height:100vh;display:flex}.main{flex:1}.page-loading,.page-error{letter-spacing:.18em;text-transform:uppercase;min-height:60vh;color:var(--color-text-muted);place-items:center;font-size:.75rem;display:grid}
