:root{--moss:#66735f;--moss-deep:#4a5445;--sage:#b0b8ac;--sage-soft:#c9cfc6;--leaf:#66735f;--mauve:#a18e9c;--rust:#9f4d3a;--coral:#e56b51;--sand:#c7a88b;--cream:#f4eee7;--paper:#eee6db;--parchment:#e0d0bc;--ink:#2c302a;--ink-soft:#5d6158;--brass:#c7a88b;--brass-soft:#dcc9b3;--blush:#a18e9c;--dusk:#a18e9c;--error:#9f4d3a;--ok:#66735f;--serif:"Cormorant Garamond", "Palatino Linotype", Palatino, serif;--script:"Great Vibes", "Snell Roundhand", cursive;--sans:"Outfit", "Avenir Next", system-ui, sans-serif;--shadow-soft:0 18px 50px #4a544524;--rule:1px solid color-mix(in srgb, var(--sage) 45%, transparent);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ink);background:var(--cream)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{min-height:100svh;font-family:var(--sans);letter-spacing:.01em;background-color:var(--cream);color:var(--ink);background-image:radial-gradient(at 12% -10%,#b0b8ac8c,#0000 44%),radial-gradient(at 92% 12%,#a18e9c47,#0000 40%),radial-gradient(at 80% 100%,#c7a88b47,#0000 42%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");margin:0;font-weight:400}#root{min-height:100svh}img{max-width:100%;display:block}a{color:inherit}button,input,textarea,select{font:inherit}h1,h2,h3,p{margin:0}.kicker{font-family:var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--rust);font-size:.72rem;font-weight:500}.script{font-family:var(--script);letter-spacing:.02em;font-weight:400;line-height:1}.serif{font-family:var(--serif)}.botanical{color:var(--moss);display:block}.site-header{z-index:20;background:color-mix(in srgb, var(--sage) 42%, var(--cream) 58%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb, var(--moss) 22%, transparent);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.4rem;display:flex;position:sticky;top:0}.wordmark{font-family:var(--script);color:var(--moss-deep);opacity:.82;font-size:1.7rem;line-height:1;text-decoration:none;transition:opacity .22s,transform .22s,color .22s;transform:translateY(0)}.wordmark:hover{opacity:1;transform:translateY(-2px)}.wordmark:active{opacity:.48;color:var(--moss-deep);transform:translateY(1px)}.site-nav{align-items:center;gap:1.15rem;display:flex}.site-nav a{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);opacity:.72;font-size:.78rem;text-decoration:none;transition:opacity .22s,transform .22s,color .22s;display:inline-block;transform:translateY(0)}.site-nav a:hover,.site-nav a.active{color:var(--moss);opacity:1;transform:translateY(-2px)}.site-nav a:active{color:var(--moss-deep);opacity:.42;transform:translateY(1px)}.header-actions{align-items:center;gap:.85rem;display:flex}.header-actions>.btn{transition:background .22s,color .22s,transform .22s,opacity .22s}.header-actions>.btn:hover{transform:translateY(-2px)}.header-actions>.btn:active{opacity:.72;transform:translateY(1px)}.nav-toggle{color:var(--moss);cursor:pointer;opacity:.78;background:0 0;border:0;padding:.35rem;transition:opacity .22s,transform .22s;display:none}.nav-toggle:hover{opacity:1;transform:translateY(-2px)}.nav-toggle:active{opacity:.42;transform:translateY(1px)}.btn{border:1px solid var(--moss);background:var(--moss);color:var(--cream);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;justify-content:center;align-items:center;gap:.45rem;padding:.62rem 1.15rem;font-size:.72rem;font-weight:500;text-decoration:none;transition:background .2s,color .2s,transform .2s;display:inline-flex}.btn:hover{background:var(--moss-deep);border-color:var(--moss-deep)}.btn-cta,.header-actions>.btn{background:var(--coral);border-color:var(--coral);color:var(--cream)}.btn-cta:hover,.header-actions>.btn:hover{background:var(--rust);border-color:var(--rust)}.btn-ghost{color:var(--moss);background:0 0}.btn-ghost:hover{background:var(--moss);color:var(--cream)}.btn-danger{color:var(--error);border-color:var(--error);background:0 0}.btn-danger:hover{background:var(--error);color:var(--cream)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled:has(.spinner){opacity:1;cursor:wait}.spinner{border:2px solid color-mix(in srgb, currentColor 28%, transparent);border-top-color:currentColor;border-radius:50%;flex-shrink:0;width:.95rem;height:.95rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.locked,.unlocking{place-items:center;min-height:100svh;padding:2rem 1.25rem 3rem;display:grid}.locked-card,.unlock-card{text-align:center;background:color-mix(in srgb, var(--cream) 88%, white);border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));width:min(440px,100%);box-shadow:var(--shadow-soft);padding:2.6rem 1.8rem 2.3rem}.locked-card .botanical,.unlock-card .botanical{width:92px;margin:0 auto 1.3rem}.locked-card h1,.unlock-card h1{font-family:var(--serif);margin:.35rem 0 .8rem;font-size:2.1rem;font-weight:500}.locked-card p,.unlock-card p{font-family:var(--serif);color:var(--ink-soft);font-size:1.15rem;line-height:1.55}.hero{isolation:isolate;min-height:100svh;color:var(--cream);background:radial-gradient(at 18% 12%,#c7a88b47,#0000 42%),radial-gradient(at 88% 8%,#a18e9c38,#0000 44%),linear-gradient(#66735f 0%,#5a6654 48%,#4a5445 100%);place-items:center;padding:5.5rem 1.25rem 4rem;display:grid;position:relative;overflow:hidden}.hero-scape{z-index:-1;color:#32382e;width:100%;height:min(42vh,360px);position:absolute;inset:auto 0 0}.invite-panel{text-align:center;border:1px solid color-mix(in srgb, var(--sand) 70%, transparent);background:color-mix(in srgb, var(--sand) 18%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(560px,100%);padding:2.8rem 1.6rem 2.2rem;box-shadow:0 0 0 10px #32382e59}.invite-panel .kicker{color:var(--sand)}.invite-panel .script{margin:1.35rem 0 1.15rem;font-size:clamp(3.4rem,10vw,5.4rem);display:block}.invite-panel .request{font-family:var(--serif);opacity:.88;margin:.2rem 0 1.1rem;font-size:1.2rem;font-style:italic}.invite-meta{font-family:var(--serif);letter-spacing:.04em;gap:.2rem;font-size:1.35rem;display:grid}.invite-rsvp{font-family:var(--serif);margin-top:1.15rem;font-size:1.15rem;font-style:italic}.invite-rsvp a{color:var(--coral);border-bottom:1px solid color-mix(in srgb, var(--coral) 55%, transparent);text-decoration:none}.invite-rsvp a:hover{opacity:.78}.wreath{width:min(220px,62%);color:var(--sand);margin:0 auto .6rem}.scroll-cue{letter-spacing:.28em;text-transform:uppercase;color:var(--sand);font-size:.68rem;position:absolute;bottom:1.4rem;left:50%;transform:translate(-50%)}.section{padding:5.2rem 1.4rem}.section-sage{background:color-mix(in srgb, var(--sage) 42%, var(--cream))}.section-sand{background:color-mix(in srgb, var(--sand) 34%, var(--cream))}.section-mauve{background:color-mix(in srgb, var(--mauve) 28%, var(--cream))}.section-photo{background-color:var(--moss-deep);color:var(--cream);background-position:50%;background-size:cover;position:relative}.section-photo .section-inner{background:color-mix(in srgb, var(--moss-deep) 62%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid color-mix(in srgb, var(--sand) 28%, transparent);padding:2.2rem 1.5rem 2.4rem}.section-photo .section-head h2,.section-photo .story-letter h3{color:var(--cream);text-shadow:0 1px 2px color-mix(in srgb, var(--moss-deep) 80%, transparent), 0 8px 24px color-mix(in srgb, var(--moss-deep) 55%, transparent)}.section-photo .kicker,.section-photo .section-ornament{color:var(--sand);filter:drop-shadow(0 1px 8px color-mix(in srgb, var(--moss-deep) 70%, transparent))}.section-photo .story-letter{margin-top:0}.section-photo .story-letter p{color:var(--cream);text-shadow:0 1px 2px color-mix(in srgb, var(--moss-deep) 85%, transparent), 0 6px 18px color-mix(in srgb, var(--moss-deep) 50%, transparent)}.section-inner{width:min(920px,100%);margin:0 auto}.section-head{text-align:center;margin-bottom:2.4rem}.section-head h2{font-family:var(--serif);margin-top:.45rem;font-size:clamp(2.3rem,5vw,3.3rem);font-weight:500}.section-ornament{width:120px;color:var(--rust);margin:.9rem auto 0}.story-board{gap:2rem;display:grid}.story-portraits,.story-chapters{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;display:grid}.story-chapter h3{font-family:var(--serif);color:var(--rust);margin-bottom:.7rem;font-size:1.65rem;font-weight:500}.story-chapter p{font-family:var(--serif);color:var(--ink-soft);font-size:1.12rem;line-height:1.65}.story-letter{text-align:center;max-width:42rem;margin:3rem auto 0}.story-letter h3{font-family:var(--serif);color:var(--rust);margin-bottom:1.2rem;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:500}.story-letter p{font-family:var(--serif);color:var(--ink-soft);font-size:1.2rem;line-height:1.7}.story-letter p+p{margin-top:1.05rem}.photo-frame,.venue-card,.map-placeholder{background:color-mix(in srgb, var(--cream) 70%, white);border:1px dashed color-mix(in srgb, var(--moss) 28%, var(--sage));position:relative;overflow:hidden}.photo-frame{min-height:220px}.frame-label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-size:.68rem;position:absolute;inset:auto .7rem .65rem}.venue-place{text-align:center;max-width:42rem;margin:0 auto 2.4rem}.venue-place .label,.venue-card .label{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);font-size:.7rem}.venue-place .label{margin-bottom:.55rem}.venue-place p.venue-detail{color:var(--ink);margin:.15rem 0 .85rem;font-size:1.15rem}.venue-place h3,.venue-subhead{font-family:var(--serif);color:var(--rust);text-align:center;margin-bottom:.8rem;font-size:clamp(1.7rem,3vw,2.15rem);font-weight:500}.venue-place p{font-family:var(--serif);color:var(--ink-soft);font-size:1.2rem;line-height:1.7}.venue-subhead{margin:2.2rem 0 1.1rem}.venue-onward{text-align:center;max-width:42rem;font-family:var(--serif);color:var(--ink);margin:2.2rem auto 0;font-size:1.2rem;line-height:1.65}.venue-reception{border-top:var(--rule);margin-top:2.8rem;padding-top:2.2rem}.venue-maps{margin-top:.85rem}.venue-map-block{margin:1.1rem 0 1.4rem}.venue-map-block iframe{border:1px solid color-mix(in srgb, var(--sand) 70%, var(--parchment));background:color-mix(in srgb, var(--cream) 70%, white);width:100%;height:220px;display:block}.venue-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.venue-card{background:color-mix(in srgb, var(--sand) 22%, var(--cream));border:1px solid color-mix(in srgb, var(--sand) 55%, var(--moss));padding:1.4rem 1.2rem 1.3rem}.venue-card h3{font-family:var(--serif);margin:.45rem 0 .6rem;font-size:1.7rem;font-weight:500}.venue-card p{font-family:var(--serif);color:var(--ink-soft);font-size:1.08rem;line-height:1.5}.venue-card .label+p{margin-top:.7rem}.venue-directions{max-width:42rem;margin:0 auto}.venue-directions>p{font-family:var(--serif);color:var(--ink-soft);text-align:center;font-size:1.15rem;line-height:1.65}.venue-from{color:var(--ink);margin:1.2rem 0 .7rem;font-weight:500}.venue-directions>p.venue-from{color:var(--ink)}.venue-steps{font-family:var(--serif);color:var(--ink-soft);gap:.7rem;margin:0;padding-left:1.2rem;font-size:1.1rem;line-height:1.55;display:grid}.venue-note{color:var(--rust);background:color-mix(in srgb, var(--cream) 70%, white);border:1px solid color-mix(in srgb, var(--sand) 55%, var(--moss));margin-top:.4rem;padding:.55rem .7rem;font-size:1rem}.timeline{text-align:left;max-width:32rem;margin:0 auto 2rem}.timeline .venue-subhead{margin-top:.4rem}.venue-place .timeline{margin:1.6rem auto .4rem}.timeline-intro{font-family:var(--serif);color:var(--ink-soft);text-align:center;margin-bottom:1rem;font-size:1.12rem;line-height:1.55}.timeline-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.timeline-list li{border-top:var(--rule);grid-template-columns:6.4rem 1fr;align-items:start;gap:.85rem;padding:.7rem 0;display:grid}.timeline-list li:last-child{border-bottom:var(--rule)}.timeline-time{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--rust);padding-top:.18rem;font-size:.72rem;font-weight:500}.timeline-copy{gap:.2rem;min-width:0;display:grid}.timeline-label{font-family:var(--serif);color:var(--ink);font-size:1.15rem;line-height:1.4}.timeline-note{font-family:var(--serif);color:var(--ink-soft);font-size:.98rem;line-height:1.4}.rsvp-schedule{border-bottom:var(--rule);gap:1.15rem;margin:0 0 1.5rem;padding:0 0 1.2rem;display:grid}.rsvp-schedule .timeline{max-width:none;margin:0}.timeline-title{font-family:var(--serif);margin-bottom:.45rem;font-size:1.45rem;font-weight:500}.timeline-compact .timeline-intro{text-align:left;margin-bottom:.7rem;font-size:1.02rem}.timeline-compact .timeline-list li{grid-template-columns:5.4rem 1fr;padding:.5rem 0}.timeline-compact .timeline-label{font-size:1.05rem}.map-placeholder{letter-spacing:.18em;text-transform:uppercase;height:92px;color:var(--ink-soft);background:color-mix(in srgb, var(--cream) 78%, white);place-items:center;margin-top:1rem;font-size:.72rem;display:grid}.gallery-intro,.registry-note,.faq-list{font-family:var(--serif);color:var(--ink-soft);text-align:center;font-size:1.22rem;line-height:1.6}.registry-note+.registry-note{margin-top:1rem}.gallery-scroller{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;width:100vw;max-width:100vw;margin:1.8rem 0 0 calc(50% - 50vw);overflow:auto hidden}.gallery-track{gap:.75rem;width:max-content;padding:0 1.4rem;display:flex}.gallery-scroller-single{scroll-snap-type:none;width:auto;max-width:100%;margin-left:0;overflow:visible}.gallery-scroller-single .gallery-track{justify-content:center;width:100%;padding:0}.gallery-shot{cursor:pointer;scroll-snap-align:start;background:0 0;border:0;flex:none;margin:0;padding:0}.gallery-shot img{object-fit:cover;width:100%;height:100%}.gallery-lightbox{z-index:40;place-items:center;padding:1.2rem;display:grid;position:fixed;inset:0}.gallery-lightbox-backdrop{background:color-mix(in srgb, var(--moss-deep) 82%, black);cursor:pointer;border:0;padding:0;position:absolute;inset:0}.gallery-lightbox-frame{z-index:1;gap:.75rem;width:min(1100px,100%);display:grid;position:relative}.gallery-lightbox-toolbar,.gallery-lightbox-nav{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.gallery-lightbox-count{font-family:var(--serif);color:var(--cream);font-size:1.05rem}.gallery-lightbox-close,.gallery-lightbox-nav .btn{background:color-mix(in srgb, var(--cream) 12%, transparent);border-color:color-mix(in srgb, var(--sand) 55%, transparent);color:var(--cream)}.gallery-lightbox-close:hover,.gallery-lightbox-nav .btn:hover{background:color-mix(in srgb, var(--coral) 88%, white);border-color:var(--coral);color:var(--cream)}.gallery-lightbox-scroller{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;gap:1rem;display:flex;overflow-x:auto}.gallery-lightbox-slide{scroll-snap-align:center;flex:0 0 100%;place-items:center;min-height:min(72vh,720px);margin:0;display:grid}.gallery-lightbox-slide img{object-fit:contain;border:1px solid color-mix(in srgb, var(--sand) 40%, transparent);width:auto;max-width:100%;height:auto;max-height:min(72vh,720px)}.registry-block{text-align:center;width:min(860px,100%);margin:0 auto}.registry-options{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:1.8rem;display:grid}.registry-option{border:1px solid color-mix(in srgb, var(--mauve) 45%, var(--sand));background:color-mix(in srgb, var(--mauve) 16%, var(--cream));padding:1.25rem 1.15rem 1.2rem}.registry-option:last-child:nth-child(odd){grid-column:1/-1}.registry-option h3{font-family:var(--serif);color:var(--rust);margin-bottom:.45rem;font-size:1.45rem;font-weight:500}.registry-option p{font-family:var(--serif);color:var(--ink-soft);font-size:1.08rem;line-height:1.5}.registry-option-link{margin-top:.95rem}.faq-list{text-align:left;gap:.65rem;width:min(680px,100%);margin:0 auto;display:grid}.faq-item{border-bottom:var(--rule)}.faq-item button{text-align:left;cursor:pointer;width:100%;font-family:var(--serif);color:var(--ink);background:0 0;border:0;justify-content:space-between;gap:1rem;padding:.95rem 0;font-size:1.35rem;display:flex}.faq-item p{padding:0 0 1rem;font-size:1.12rem}.faq-answer{padding:0 0 1.25rem}.faq-answer p{padding:0}.faq-attire{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.faq-intro{font-family:var(--serif);color:var(--ink-soft);margin-bottom:1.1rem;font-size:1.12rem;line-height:1.55}.faq-attire-block,.faq-palette,.faq-hotel{background:color-mix(in srgb, var(--sand) 22%, var(--cream));border:1px solid color-mix(in srgb, var(--sand) 55%, var(--moss));padding:1.15rem 1.1rem 1.1rem}.faq-attire-block .label,.faq-palette .label{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:.4rem;font-size:.7rem}.faq-attire-block h3{font-family:var(--serif);color:var(--rust);margin:0 0 .55rem;font-size:1.45rem;font-weight:500}.faq-attire-block p,.faq-palette p{font-family:var(--serif);color:var(--ink-soft);font-size:1.08rem;line-height:1.55}.faq-palette{margin-top:1rem}.faq-swatches{flex-wrap:wrap;gap:.65rem 1.1rem;margin:.7rem 0 .85rem;padding:0;list-style:none;display:flex}.faq-swatches li{font-family:var(--serif);color:var(--ink);align-items:center;gap:.45rem;font-size:1.02rem;display:flex}.faq-swatch{width:.85rem;height:.85rem;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 18%, transparent);border-radius:50%;flex-shrink:0}.faq-hotels{gap:1rem;display:grid}.faq-hotel .label{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:.4rem;font-size:.7rem}.faq-hotel h3{font-family:var(--serif);color:var(--rust);margin:0 0 .55rem;font-size:1.45rem;font-weight:500}.faq-hotel h3 a{color:inherit;border-bottom:1px solid color-mix(in srgb, var(--rust) 45%, transparent);text-decoration:none}.faq-hotel h3 a:hover{opacity:.78}.faq-hotel>p{font-family:var(--serif);color:var(--ink-soft);font-size:1.08rem;line-height:1.55}.faq-drives{margin:.85rem 0 0;padding:0;list-style:none}.faq-drives li{border-top:var(--rule);font-family:var(--serif);color:var(--ink);grid-template-columns:1fr auto;gap:.2rem 1rem;padding:.5rem 0 .45rem;font-size:1.02rem;display:grid}.faq-drives li span:last-of-type{color:var(--rust);text-align:right}.faq-drive-note{color:var(--ink-soft);grid-column:1/-1;font-size:.95rem;line-height:1.4}.site-footer{text-align:center;color:var(--cream);font-family:var(--serif);background:var(--moss);padding:3rem 1.4rem 2.4rem}.site-footer .script{color:var(--sand);margin-bottom:.4rem;font-size:2.2rem;display:block}.rsvp-page,.admin-page{padding:2.4rem 1.2rem 4rem}.rsvp-card,.admin-card{background:color-mix(in srgb, var(--cream) 84%, white);border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));width:min(720px,100%);box-shadow:var(--shadow-soft);margin:0 auto;padding:2.2rem 1.5rem 1.8rem}.rsvp-card header,.admin-card header{text-align:center;margin-bottom:1.6rem}.rsvp-card h1,.admin-card h1{font-family:var(--script);margin:.2rem 0 .5rem;font-size:clamp(3rem,8vw,4.2rem)}.rsvp-intro,.household-chip,.field-hint{font-family:var(--serif);text-align:center;color:var(--ink-soft);font-size:1.15rem;line-height:1.5}.household-chip{border:1px dashed color-mix(in srgb, var(--sage) 50%, transparent);letter-spacing:.04em;margin:1rem auto 1.4rem;padding:.35rem .8rem;display:table}.guest-names{flex-wrap:wrap;justify-content:center;gap:.4rem;margin:.7rem 0 1.4rem;display:flex}.guest-names span{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--sage);color:var(--moss);padding:.28rem .55rem;font-size:.78rem}.event-block{border:0;border-bottom:var(--rule);min-width:0;margin:0 0 1.3rem;padding:0 0 1.1rem}.event-block h2{font-family:var(--serif);margin-bottom:.7rem;font-size:1.55rem;font-weight:500}.choice-row{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.choice{border:1px solid var(--sage);cursor:pointer;letter-spacing:.14em;text-transform:uppercase;color:var(--moss);background:0 0;padding:.85rem .6rem;font-size:.78rem}.choice[aria-pressed=true]{background:var(--moss);color:var(--cream);border-color:var(--moss)}.guest-rsvp{border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));background:color-mix(in srgb, var(--cream) 70%, white);min-width:0;margin:0 0 1.4rem;padding:1rem .9rem .35rem}.guest-rsvp legend{font-family:var(--serif);padding:0 .4rem;font-size:1.45rem;font-weight:500}.guest-rsvp .event-block:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:.4rem}.guest-rsvp .event-block:has(+.menu-block){border-bottom:0;margin-bottom:0;padding-bottom:.4rem}.menu-block{border-top:var(--rule);margin-top:.4rem;padding-top:.85rem}.menu-block h2{font-family:var(--serif);margin-bottom:.45rem;font-size:1.35rem;font-weight:500}.menu-intro,.menu-note,.menu-count{font-family:var(--serif);color:var(--ink-soft);margin-bottom:.75rem;font-size:1.05rem;line-height:1.5}.menu-note{color:var(--rust)}.vegan-choice{width:100%;margin-bottom:.75rem}.taco-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.taco-list li{font-family:var(--serif);justify-content:space-between;align-items:center;gap:.75rem;font-size:1.12rem;display:flex}.taco-stepper{align-items:center;gap:.45rem;display:flex}.taco-stepper button{border:1px solid var(--sage);width:2.1rem;height:2.1rem;color:var(--moss);cursor:pointer;background:0 0;font-size:1.2rem;line-height:1}.taco-stepper button:disabled{opacity:.35;cursor:default}.taco-stepper strong{text-align:center;min-width:1.2rem}.menu-count.ok{color:var(--ok)}.song-requests{border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));background:color-mix(in srgb, var(--cream) 70%, white);margin:0 0 1.4rem;padding:1rem .9rem .85rem}.song-requests legend{font-family:var(--serif);padding:0 .4rem;font-size:1.45rem;font-weight:500}.song-requests .menu-intro{text-align:left}.song-row{grid-template-columns:1fr 1fr auto;align-items:end;gap:.6rem;margin-bottom:.45rem;display:grid}.song-row .field{margin:.35rem 0}.song-remove{margin-bottom:.35rem;padding:.7rem .85rem}.song-add{width:100%;margin-top:.35rem}.field{gap:.35rem;margin:1rem 0;display:grid}.field label{letter-spacing:.18em;text-transform:uppercase;color:var(--leaf);font-size:.72rem}.field input,.field textarea,.field select{border:1px solid color-mix(in srgb, var(--sage) 50%, var(--parchment));background:color-mix(in srgb, var(--cream) 88%, white);color:var(--ink);padding:.7rem .75rem}.notice{font-family:var(--serif);text-align:center;margin-bottom:1rem;padding:.7rem}.notice.ok{color:var(--ok)}.notice.err{color:var(--error)}.notice.busy{color:var(--ink-soft);justify-content:center;align-items:center;gap:.55rem;display:flex}.admin-page{width:min(980px,100%);margin:0 auto}.counts{grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:1.4rem;display:grid}.countdown-card{background:color-mix(in srgb, var(--cream) 84%, white);border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));margin-bottom:1.4rem;padding:1.1rem 1rem 1.2rem}.countdown-card h2{font-family:var(--serif);font-size:1.5rem;font-weight:500}.countdown-when{font-family:var(--serif);color:var(--ink-soft);margin-top:.2rem;font-size:.98rem;line-height:1.4}.countdown-units{text-align:center;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin-top:.9rem;display:grid}.countdown-units strong{font-family:var(--serif);color:var(--rust);font-size:clamp(1.35rem,3.5vw,2rem);font-weight:500;line-height:1;display:block}.countdown-units span{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:.28rem;font-size:.62rem;display:block}.countdown-here{font-family:var(--serif);color:var(--moss);margin-top:.85rem;font-size:1.35rem}.countdown-invite{border-top:1px solid color-mix(in srgb, var(--sand) 45%, transparent);margin:1.15rem 0 0;padding-top:1.05rem}.countdown-invite .kicker{margin-bottom:.55rem}.countdown-invite .countdown-units{margin-top:.15rem}.countdown-invite .countdown-units strong{color:var(--sand);font-size:clamp(1.55rem,4.5vw,2.15rem)}.countdown-invite .countdown-units span{color:color-mix(in srgb, var(--cream) 70%, var(--sand))}.countdown-invite .countdown-here{color:var(--sand);margin-top:.35rem}.count-card{background:color-mix(in srgb, var(--cream) 84%, white);border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));padding:1.1rem 1rem}.count-card-menu{grid-column:1/-1}.song-board{margin-bottom:1.4rem}.admin-fold{background:color-mix(in srgb, var(--cream) 84%, white);border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));margin-bottom:1.4rem;padding:.15rem 0 .85rem}.admin-fold-toggle,.party-pick-row{appearance:none}.admin-fold-toggle{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:.85rem;padding:.95rem 1rem .7rem;font-family:inherit;display:flex}.admin-fold-toggle:hover{color:var(--moss)}.admin-fold-toggle:focus-visible,.party-pick-row:focus-visible{outline:2px solid var(--moss);outline-offset:2px}.admin-fold-copy{flex-direction:column;gap:.15rem;min-width:0;display:flex}.admin-fold-title{font-family:var(--serif);font-size:1.5rem;font-weight:500}.admin-fold-summary{font-family:var(--serif);color:var(--ink-soft);font-size:.95rem}.admin-fold-chevron{border-bottom:1.5px solid;border-right:1.5px solid;flex-shrink:0;width:.52rem;height:.52rem;margin-right:.2rem;transition:transform .2s;transform:rotate(-45deg)}.admin-fold-chevron.is-open{margin-top:-.15rem;transform:rotate(45deg)}.admin-fold-body{padding:0 1rem .25rem}.song-board .family-count{margin-top:0}.song-board-list{border-top:var(--rule);max-height:22rem;margin:0;padding:0;list-style:none;overflow:auto}.song-board-list li{font-family:var(--serif);grid-template-columns:1.2fr 1fr minmax(8rem,auto);align-items:baseline;gap:.35rem 1rem;padding:.55rem 0;font-size:1.08rem;display:grid}.song-board-list li+li{border-top:var(--rule)}.song-board-title{color:var(--ink);font-weight:500}.song-board-artist{color:var(--ink-soft)}.song-board-household{font-family:var(--sans);letter-spacing:.04em;color:var(--leaf);text-align:right;font-size:.78rem}.party-songs-block{border-top:var(--rule);margin:.55rem 0 .7rem;padding-top:.55rem}.party-songs-block .invite-url-label{margin-bottom:.25rem}.party-songs{color:var(--ink-soft);margin:.35rem 0 .7rem;padding:0;font-size:.92rem;list-style:none}.party-songs li+li{margin-top:.25rem}.party-guests{color:var(--ink-soft);margin:.35rem 0 .7rem;padding:0;font-size:.92rem;list-style:none}.party-guests li+li{margin-top:.25rem}.count-card h2{font-family:var(--serif);font-size:1.5rem;font-weight:500}.count-row{color:var(--ink-soft);justify-content:space-between;margin-top:.4rem;font-size:.9rem;display:flex}.party-list{gap:.75rem;display:grid}.family-toolbar{gap:.85rem;margin:0;padding:0 0 .85rem;display:grid}.family-toolbar .field{margin:0}.party-pick-select-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem 1rem;display:flex}.party-pick-select-all{cursor:pointer;align-items:center;gap:.45rem;font-size:.9rem;display:flex}.party-pick-select-all input,.party-pick-check input{width:1.05rem;height:1.05rem;accent-color:var(--moss);cursor:pointer}.party-pick-select-all:has(input:disabled){opacity:.55;cursor:not-allowed}.party-pick-select-all input:disabled,.party-pick-check input:disabled{opacity:.4;cursor:not-allowed}.party-pick-selected-count{font-family:var(--serif);color:var(--ink-soft);font-size:.95rem}.family-bulk-actions{flex-wrap:wrap;gap:.5rem;display:flex}.family-bulk p{font-family:var(--serif);color:var(--ink-soft);margin:0 0 .55rem}.party-email-status{color:var(--ink-soft);margin:0 0 .65rem;font-size:.82rem}.family-count,.empty-parties{font-family:var(--serif);color:var(--ink-soft);margin:.15rem 0 0;font-size:.98rem}.empty-parties{text-align:center;padding:1rem .4rem .6rem}.party-pick{border:1px solid color-mix(in srgb, var(--sage) 32%, var(--parchment));background:color-mix(in srgb, var(--parchment) 55%, white);max-height:22rem;margin:0;padding:0;list-style:none;overflow:auto}.party-pick-item{border-bottom:var(--rule);align-items:stretch;display:flex}.party-pick li:last-child .party-pick-item{border-bottom:0}.party-pick-check{flex-shrink:0;align-items:center;padding:0 .1rem 0 .7rem;display:flex}.party-pick-row{width:100%;color:inherit;text-align:left;letter-spacing:normal;text-transform:none;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:.12rem;margin:0;padding:.7rem .85rem .7rem .55rem;font-size:1rem;display:flex}.party-pick-item:hover,.party-pick-item:hover .party-pick-row{background:color-mix(in srgb, var(--sage) 12%, var(--cream))}.party-pick-item.is-checked:not(.is-selected){background:color-mix(in srgb, var(--sage) 10%, var(--cream))}.party-pick-item.is-disabled .party-pick-name,.party-pick-item.is-disabled .party-pick-glance{opacity:.62}.party-pick-item.is-selected,.party-pick-item.is-selected .party-pick-row{background:color-mix(in srgb, var(--sage) 20%, var(--cream))}.party-pick-name{font-family:var(--serif);font-size:1.15rem;font-weight:500}.party-pick-glance{font-family:var(--sans);letter-spacing:.03em;color:var(--ink-soft);font-size:.78rem}.party-pick-hint{font-family:var(--serif);color:var(--ink-soft);text-align:center;margin:.75rem 0 0;font-size:.98rem}.party-card{background:color-mix(in srgb, var(--cream) 70%, white);border:1px solid color-mix(in srgb, var(--sage) 40%, var(--parchment));margin-top:.75rem;padding:1.1rem 1rem}.party-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.party-card-head .btn{flex-shrink:0}.party-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.party-edit{margin-top:.35rem}.party-edit .notice{margin-bottom:.75rem}.party-guest-fields{margin:.35rem 0 .5rem}.party-guest-edit{grid-template-columns:1fr auto;align-items:end;gap:.6rem;display:grid}.party-guest-edit .field{margin:.35rem 0}.party-card h3{font-family:var(--serif);font-size:1.45rem;font-weight:500}.party-confirm{border-top:var(--rule);margin-top:.85rem;padding-top:.85rem}.party-confirm p{font-family:var(--serif);color:var(--error);margin-bottom:.7rem}.party-resend{margin-top:.35rem}.party-resend p{font-family:var(--serif);color:var(--ink-soft);margin-bottom:.7rem}.party-meta{color:var(--ink-soft);margin:.25rem 0 .7rem;font-size:.92rem}.party-email{border-top:var(--rule);margin-top:.85rem;padding-top:.85rem}.party-email .field{margin:0 0 .65rem}.check-row{flex-wrap:wrap;gap:1rem;margin:.4rem 0 1rem;display:flex}.check-row label{align-items:center;gap:.4rem;font-size:.92rem;display:flex}.invite-url{margin:.85rem 0 0}.invite-url-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.35rem;font-size:.78rem;display:block}.link-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.link-row code{background:var(--parchment);overflow-wrap:anywhere;word-break:break-all;flex:16rem;padding:.45rem .6rem;font-size:.82rem;line-height:1.45;display:block}.demo-banner{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:var(--dusk);margin-bottom:1rem;font-size:.78rem}@media (width<=860px){.story-portraits,.story-chapters,.venue-grid,.registry-options,.counts,.song-row,.song-board-list li,.party-guest-edit{grid-template-columns:1fr}.song-board-household,.song-board-list li span:last-of-type{text-align:left}.song-remove{width:100%;margin-bottom:.6rem}.site-nav{background:color-mix(in srgb, var(--sage) 42%, var(--cream) 58%);border-bottom:var(--rule);flex-direction:column;align-items:stretch;gap:0;padding:.5rem 0 .8rem;display:none;position:absolute;top:100%;left:0;right:0}.site-nav.open{display:flex}.site-nav a,.site-nav .btn{margin:.2rem 1rem}.nav-toggle{display:block}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wordmark,.site-nav a,.nav-toggle,.header-actions>.btn,.admin-fold-chevron{transition:none;transform:none}.admin-fold-chevron.is-open{transform:rotate(45deg)}.spinner{opacity:.55;border-color:currentColor;animation:none}}.lazy-gallery{content-visibility:auto;contain-intrinsic-size:auto 280px}.lazy-gallery-item{border:1px solid color-mix(in srgb, var(--mauve) 35%, var(--parchment));max-width:min(78vw,420px);height:240px;overflow:hidden}.lazy-gallery-item:focus-visible{outline:2px solid var(--coral);outline-offset:3px}.gallery-placeholder{background:linear-gradient(180deg, color-mix(in srgb, var(--cream) 88%, white), color-mix(in srgb, var(--parchment) 55%, var(--cream)));width:100%;height:100%;display:block}.lazy-gallery-item img{object-fit:cover;border:0;width:100%;max-width:none;height:100%;animation:.45s fadeIn;display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lazy-gallery-item img{animation:none}}
