:root{--color-bg: #1b2e37;--color-text: #fbf1e6;--color-text-muted: rgba(251, 241, 230, .72);--color-accent: #cf6239;--color-accent-deep: #b9542f;--color-border: rgba(251, 241, 230, .4);--color-card-bg: #ffffff;--color-teal: #2f877b;--color-cream: #fbf1e6;--color-ink-soft: #3f5b64;--color-ink: #26424e;--well: rgba(16, 32, 42, .4);--outline: rgba(251, 241, 230, .6);--scrim: linear-gradient( 180deg, rgba(16, 32, 42, .52) 0%, rgba(16, 32, 42, .28) 34%, rgba(16, 32, 42, .26) 56%, rgba(16, 32, 42, .66) 100% );--font-display: "Allura", cursive;--font-utility: "Instrument Sans", system-ui, sans-serif;--font-scale-display: 1;--font-scale-utility: 1;--content-width: 26.875rem;--card-radius: 0px;--btn-radius: 2px;--gutter: max(30px, calc(50% - (var(--content-width) / 2 - 30px)))}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:calc(16px * var(--font-scale-utility, 1))}body{font-family:var(--font-display);font-size:calc(1rem * var(--font-scale-display, 1));color:var(--color-text);background:var(--color-bg);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.1}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{font:inherit;font-family:var(--font-utility);font-size:.9375rem;color:var(--color-text);background:var(--well);border:1px solid var(--outline);border-radius:var(--btn-radius);padding:12px 14px;color-scheme:dark}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-cream)}::placeholder{color:#fbf1e680}input[type=radio],input[type=checkbox]{accent-color:var(--color-cream);padding:0}button{font:inherit;cursor:pointer}.bg-photo{position:fixed;inset:0;height:100vh;height:100lvh;z-index:-1;background:var(--color-bg)}.bg-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}.bg-photo:after{content:"";position:absolute;inset:0;background:var(--scrim)}.section-label{font-family:var(--font-utility);font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;opacity:.85;margin:0 0 24px}.eyebrow{font-family:var(--font-utility);font-size:.6875rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;opacity:.9}.date-chip{display:inline-block;color:var(--color-cream);font-family:var(--font-utility);font-size:1.5rem;font-weight:600;letter-spacing:.04em;padding:5vh 13px}.btn-fill{display:inline-block;border:0;border-radius:var(--btn-radius);padding:14px 26px;font-family:var(--font-utility);font-size:.9375rem;font-weight:700;letter-spacing:.02em;text-decoration:none;cursor:pointer;background:var(--color-cream);color:var(--color-ink);transition:background .2s}.btn-fill:hover{background:#fff;text-decoration:none}.photo-frame{--photo-width: 80vw;--photo-border: .01;width:var(--photo-width);margin-inline:calc((100% - var(--photo-width)) / 2);padding:calc(var(--photo-width) * var(--photo-border));background:#d0d0d0}.photo-frame img{display:block;width:100%;height:auto}.photo-caption{--photo-width: 80vw;width:var(--photo-width);margin-inline:calc((100% - var(--photo-width)) / 2);margin-top:8px;font-family:var(--font-utility);font-size:.625rem;font-weight:600;font-style:italic;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);text-align:center}@media(min-width:768px){.photo-caption{--photo-width: min(50vw, 560px)}}.home-landing{min-height:100svh;display:flex;flex-direction:column;padding:36px 28px 34px;padding-inline:max(28px,calc(50% - (var(--content-width) / 2 - 28px)));padding-top:10vh}.landing-top .eyebrow{margin:0}.home-landing h1{font-size:calc(clamp(2.25rem,12vw,2.875rem) * .9 * var(--font-scale-display, 1));font-weight:700;line-height:.96;letter-spacing:-.02em;margin-top:16px;margin-bottom:16px}.landing-intro{line-height:1.45;margin-top:auto;max-width:26ch}.landing-photo{margin-top:5vh;margin-bottom:10px}@media(min-width:768px){.landing-photo{--photo-width: min(50vw, 560px)}}.landing-bottom{margin-top:10px;margin-bottom:auto}.scroll-cue{margin-top:22px;font-family:var(--font-utility);font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;opacity:.85}@media(prefers-reduced-motion:no-preference){.landing-top>*,.landing-photo,.landing-bottom>*{animation:rise .7s ease-out both}.landing-top>:nth-child(2){animation-delay:.08s}.landing-top>:nth-child(3){animation-delay:.16s}.landing-photo{animation-delay:.22s}.landing-bottom>*{animation-delay:.3s}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.home-detail>*{padding-inline:var(--gutter)}.home-day{padding-top:52px;padding-bottom:8px}.agenda-card h3{font-size:calc(1.75rem * var(--font-scale-display, 1));font-weight:700;line-height:1.05;letter-spacing:-.01em}.agenda-address{font-family:var(--font-utility);font-size:.8125rem;color:var(--color-text-muted);margin-top:6px}.agenda-card+.agenda-card{border-top:1px solid var(--color-border);margin-top:30px;padding-top:30px}.agenda-phase{margin-top:16px}.agenda-phase+.agenda-phase{margin-top:18px}.agenda-event{font-family:var(--font-utility);font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.8}.agenda-time{font-family:var(--font-utility);font-size:.875rem;font-weight:700;margin-left:10px}.agenda-note{line-height:1.5;opacity:.88;margin-top:8px;max-width:34ch}.home-logistics{border-top:1px solid var(--color-border);margin-inline:var(--gutter);padding-inline:0;padding-top:42px;padding-bottom:8px}.logistics-items{display:grid;gap:14px}.logistics-items p{line-height:1.5;opacity:.88;max-width:40ch}.home-rsvp{margin:46px var(--gutter) 0;padding:38px 28px 42px;padding-inline:28px;border:1px dotted var(--outline);border-radius:12px}.home-rsvp .section-label{opacity:.82;margin-bottom:16px}.home-rsvp h2{font-size:calc(2.125rem * var(--font-scale-display, 1));font-weight:700;line-height:1.02;letter-spacing:-.02em}.home-rsvp .rsvp-lede{line-height:1.5;margin-top:16px;opacity:.94;max-width:30ch}.home-rsvp .rsvp-link{display:inline-block;margin-top:24px;font-family:var(--font-utility);font-size:2rem;font-weight:700;letter-spacing:.01em;color:var(--color-cream);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}.home-rsvp .rsvp-link:hover{opacity:.85}.home-attire{padding-top:48px;padding-bottom:8px}.home-attire .section-label{margin-bottom:16px}.home-attire p{line-height:1.55;opacity:.88;max-width:38ch}.home-gifts{padding-top:48px;padding-bottom:8px}.home-gifts .section-label{margin-bottom:16px}.home-gifts p{line-height:1.55;opacity:.88;max-width:38ch}.home-footer{margin-top:40px;padding-top:46px;padding-bottom:50px;text-align:center;border-top:1px solid var(--color-border)}.footer-photo{margin-bottom:30px}.footer-names{font-family:var(--font-display);font-size:calc(1.375rem * var(--font-scale-display, 1));font-weight:700;letter-spacing:-.01em}.footer-stamp{font-family:var(--font-utility);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin-top:12px}.splash{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;padding:48px 28px;text-align:center}.splash-art{width:min(85vw,400px);aspect-ratio:12500 / 12625;background:var(--color-cream);-webkit-mask:url(/images/hand-block-initials.svg) center / contain no-repeat;mask:url(/images/hand-block-initials.svg) center / contain no-repeat}.login-form{display:grid;gap:14px;font-family:var(--font-utility)}.login-form label{display:grid;gap:6px}.login-form input{width:100%;min-width:0}.login-form label span{font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.85}.splash .login-form{width:min(100%,20rem);gap:12px}.splash .login-form label{gap:12px}.splash .login-form label span{font-size:.9375rem;font-weight:500;letter-spacing:0;text-transform:none;opacity:.92}.splash .login-form input{text-align:center}.splash .login-form button{justify-self:center;border:0;padding:8px 4px;background:none;color:var(--color-cream);font-size:.9375rem;font-weight:600;letter-spacing:.02em;text-decoration:underline;text-underline-offset:4px;opacity:.9;transition:opacity .2s}.splash .login-form button:hover{opacity:1}.form-error{padding:10px 14px;border-radius:var(--btn-radius);background:#8c201880;border:1px solid rgba(251,241,230,.35);color:var(--color-cream);font-family:var(--font-utility);font-size:.875rem}.splash .form-error{max-width:20rem}@media(prefers-reduced-motion:no-preference){.splash>*{animation:rise .7s ease-out both}.splash>:nth-child(2){animation-delay:.12s}.splash>:nth-child(3){animation-delay:.12s}}.greeting{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--color-border);font-family:var(--font-utility);font-size:.875rem}.greeting-text{font-weight:600}.greeting-actions{display:flex;gap:20px;align-items:center}.greeting-actions a{color:inherit;text-decoration:underline;text-underline-offset:3px}.logout-form{margin:0}.logout-form button{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px}.rsvp{max-width:var(--content-width);margin:0 auto;padding:52px 30px 80px}.rsvp h1{font-size:calc(2.125rem * var(--font-scale-display, 1));font-weight:700;line-height:1.02;letter-spacing:-.02em}.rsvp-intro{line-height:1.5;opacity:.88;margin-top:14px;max-width:40ch}.rsvp-saved{margin-top:18px;padding:10px 14px;border-radius:var(--btn-radius);background:#2f877b73;border:1px solid rgba(251,241,230,.35);color:var(--color-cream);font-family:var(--font-utility);font-size:.875rem}.rsvp .form-error{margin-top:18px}.rsvp form{margin-top:34px}.rsvp-row{border:0;border-top:1px solid var(--color-border);padding:24px 0 28px}.rsvp-row legend{padding:0 10px 0 0;font-size:calc(1.25rem * var(--font-scale-display, 1));font-weight:700;letter-spacing:-.01em}.rsvp-toggle{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:14px;font-family:var(--font-utility)}.rsvp-toggle label{font-size:.9375rem;opacity:.92}.rsvp-toggle input{margin-right:6px}.rsvp-entree,.rsvp-dietary{display:grid;gap:6px;margin-top:16px}.rsvp-entree select,.rsvp-dietary input{width:100%;min-width:0}.rsvp-entree span,.rsvp-dietary span{font-family:var(--font-utility);font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-muted)}.rsvp-submit{margin-top:6px;border:0;border-radius:var(--btn-radius);padding:14px 26px;font-family:var(--font-utility);font-size:.9375rem;font-weight:700;letter-spacing:.02em;background:var(--color-cream);color:var(--color-ink);transition:background .2s}.rsvp-submit:hover{background:#fff}.rsvp-help{font-family:var(--font-utility);font-size:.8125rem;color:var(--color-text-muted);margin-top:12px}.admin{max-width:56rem;margin:0 auto;padding:40px 30px 80px;font-family:var(--font-utility);font-size:1rem}.admin h1,.admin h2,.admin h3{font-family:var(--font-utility)}.admin h1{font-size:1.75rem;font-weight:700;letter-spacing:-.01em}.admin h2{font-size:1.25rem;font-weight:700}.admin-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin:18px 0 32px;padding-bottom:14px;border-bottom:1px solid var(--color-border);font-size:.875rem}.admin-nav a{color:inherit}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:12px;margin-bottom:32px}.admin-stat{padding:16px;background:var(--well);border:1px solid var(--color-border);border-radius:var(--card-radius);text-align:center}.admin-stat .label{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}.admin-stat .value{font-size:1.75rem;font-weight:700}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:32px;display:block;overflow-x:auto}.admin-table th,.admin-table td{padding:.85rem 1.1rem;border-bottom:1px solid var(--color-border);text-align:left}.admin-table th{font-weight:600;background:var(--well)}.admin-table .yes{color:#8fd8cb;font-weight:600}.admin-table .no{color:#f2b09a;font-weight:600}.admin-table .dash{opacity:.4}.admin-table .view-as{font-size:.8rem}.admin-missing-entree{font-style:italic;opacity:.85}.admin-dietary{margin-top:32px}.admin-dietary ul{padding-left:1.25rem}.guest-section{border-top:1px solid var(--color-border)}.guest-section>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:10px;padding:16px 0;font-size:1.25rem;font-weight:700;text-transform:capitalize}.guest-section>summary::-webkit-details-marker{display:none}.guest-section>summary:before{content:"▸";display:inline-block;color:var(--color-text-muted);transition:transform .15s}.guest-section[open]>summary:before{transform:rotate(90deg)}.guest-count{font-size:.9rem;font-weight:400;color:var(--color-text-muted)}.guest-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:0 0 24px}.guest-card{border:1px solid var(--color-border);border-radius:var(--card-radius);padding:16px 20px;background:var(--well)}.guest-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.guest-name{font-weight:600;font-size:1.05rem}.guest-att{font-weight:700}.guest-att.yes{color:#8fd8cb}.guest-att.no{color:#f2b09a}.guest-att.dash{color:var(--color-text-muted);opacity:.6}.guest-meta{margin-top:.2rem;font-size:.9rem;color:var(--color-text-muted);text-transform:capitalize}.guest-detail{margin-top:.3rem;font-size:.85rem;color:var(--color-text-muted);word-break:break-word}.impersonation-banner{display:flex;justify-content:space-between;align-items:center;padding:.6rem 24px;background:#f7e2a8;color:#4a3a00;font-family:var(--font-utility);font-size:.85rem}.impersonation-banner button{background:none;border:1px solid currentColor;padding:.2rem .6rem;border-radius:var(--btn-radius);cursor:pointer;font:inherit;color:inherit}.email-form{display:grid;gap:16px;max-width:40rem}.email-form label{display:grid;gap:6px}.email-form label span{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}.email-filters{display:grid;grid-template-columns:1fr 1fr;gap:16px}.email-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.rsvp-submit--secondary{background:transparent;color:var(--color-cream);box-shadow:inset 0 0 0 1px var(--color-cream)}.rsvp-submit--secondary:hover{background:#ffffff14}.email-result{font-size:.9rem;margin-top:.5rem}.site-footer{display:flex;justify-content:center;align-items:center;gap:24px;padding:26px 30px 34px;border-top:1px solid var(--color-border);font-family:var(--font-utility);font-size:.8125rem;color:var(--color-text-muted)}.site-footer a{color:inherit;text-decoration:underline;text-underline-offset:3px}.site-footer .logout-form{margin:0}.view-as-form{display:flex;align-items:center;gap:8px;margin:0}.view-as-form label{color:inherit}.view-as-form select{font:inherit;color:inherit;background:transparent;border:1px solid var(--color-border);border-radius:var(--btn-radius);padding:.2rem .5rem;cursor:pointer;width:100px}.view-as-form select option{color:#26424e}.view-as-form button{font:inherit;color:inherit;background:none;border:1px solid currentColor;border-radius:var(--btn-radius);padding:.2rem .5rem;cursor:pointer}.home-landing,.home-detail,.rsvp{text-align:center}.landing-intro,.agenda-note,.logistics-items p,.home-rsvp .rsvp-lede,.home-attire p,.home-gifts p,.rsvp-intro{margin-inline:auto}.rsvp-row legend{margin-inline:auto;padding:0}.rsvp-toggle{justify-content:center}
