@font-face{font-family:ITC Anna;src:url(../../../fonts/ITC-Anna-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neue Kabel;src:url(../../../fonts/NeueKabel-Book.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neue Kabel;src:url(../../../fonts/NeueKabel-BookItalic.otf)format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Neue Kabel;src:url(../../../fonts/NeueKabel-Medium.otf)format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Neue Kabel;src:url(../../../fonts/NeueKabel-Bold.otf)format("opentype");font-weight:700;font-style:normal;font-display:swap}:root{--bg-page:#100c08;--bg-surface:#1a1614;--bg-raised:#251f1b;--text-primary:#fafafa;--text-secondary:#b8b8b8;--text-ghost:#666;--accent:#d4c4a8;--accent-hover:#c4b498;--accent-border:#d4c4a826;--accent-tint:#d4c4a80f;--janette:#4a0000;--janette-subtle:#4a00001f;--elliot:#27352a;--elliot-subtle:#27352a1f;--success:#81c784;--error:#e57373;--error-border:#e5737326;--error-tint:#e573731a;--pending:#ffb74d;--border-default:1px solid var(--accent-border);--border-subtle:1px solid #d4c4a80f;--font-display:"ITC Anna", serif;--font-ui:"Neue Kabel", sans-serif;--font-body:"Source Serif 4", Georgia, serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.125rem;--text-md:1.25rem;--tracking:.05em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:2rem;--space-8:3rem;--space-9:4rem;--space-10:6rem;--radius-sm:4px;--radius-md:8px;--radius-pill:12px;--shadow-card:0 2px 8px #0000004d;--transition-fast:.2s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable;font-size:100%}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-secondary);background-color:var(--bg-page);flex-direction:column;min-height:100dvh;line-height:1.5;display:flex}body.surface-bg{background-color:var(--bg-surface)}h1,h2,h3,h4,h5,h6{font-family:var(--font-ui);color:var(--accent);font-weight:500;line-height:1.3}a{color:var(--accent);transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}hr{border:none;border-top:var(--border-default);margin:var(--space-7) 0}img{max-width:100%;height:auto}.skip-link{z-index:1000;background:var(--accent);width:1px;height:1px;color:var(--bg-page);padding:var(--space-2) var(--space-4);font-family:var(--font-ui);border-radius:var(--radius-sm);font-weight:500;text-decoration:none;position:absolute;top:auto;left:-9999px;overflow:hidden}.skip-link:focus{left:var(--space-4);top:var(--space-4);width:auto;height:auto;position:fixed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn-primary{font-family:var(--font-ui);font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--bg-page);background:var(--accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);cursor:pointer;transition:background var(--transition-fast);border:none;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.btn-primary:hover{background:var(--accent-hover);color:var(--bg-page)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{font-family:var(--font-ui);font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--accent);border:1px solid var(--accent-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);background:0 0;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.btn-secondary:hover{background:var(--accent-tint);border-color:var(--accent)}.btn-danger{font-family:var(--font-ui);font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--error);border:1px solid var(--error-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);cursor:pointer;transition:background var(--transition-fast);background:0 0;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.btn-danger:hover{background:var(--error-tint)}.btn-small{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);gap:var(--space-1);height:2rem}.form-group{margin-bottom:var(--space-4)}.form-label{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2);font-weight:500;display:block}.form-input,.form-select,.form-textarea{width:100%;font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-surface);border:var(--border-default);border-radius:var(--radius-md);padding:var(--space-3);transition:border-color var(--transition-fast), background var(--transition-fast);line-height:1.4}.form-input,.form-select{height:2.75rem}.form-input:hover,.form-select:hover,.form-textarea:hover{background:var(--bg-raised)}.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible{border-color:var(--accent);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-ghost)}.form-textarea{resize:vertical;min-height:5rem}.form-error{color:var(--error);font-size:var(--text-sm);margin-top:var(--space-1)}.form-hint{font-size:var(--text-xs);color:var(--text-ghost);margin-top:var(--space-1);display:block}.inline-input{width:auto;min-width:7.5rem;display:inline-block}.icon-inline{vertical-align:-.125em;flex-shrink:0;width:1em;height:1em;display:inline-block}.card{background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-5)}.pill{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);white-space:nowrap;justify-content:center;align-items:center;height:1.5rem;font-weight:500;line-height:1;display:inline-flex}.pill-success{color:var(--success);background:#81c7841f}.pill-error{color:var(--error);background:#e573731f}.pill-pending{color:var(--pending);background:#ffb74d1f}.pill-janette{background:var(--janette);color:var(--text-primary)}.pill-elliot{background:var(--elliot);color:var(--text-primary)}.pill-both{background:var(--bg-raised);border:1px solid var(--accent-border);color:var(--text-secondary)}.text-center{text-align:center}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-ghost{color:var(--text-ghost)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-pending{color:var(--pending)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-7{margin-top:var(--space-7)}.mt-8{margin-top:var(--space-8)}.mt-9{margin-top:var(--space-9)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.button-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.justify-center{justify-content:center}.empty-state{text-align:center;padding:var(--space-6);color:var(--text-ghost)}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.container{width:100%;max-width:50rem;padding:var(--space-8) var(--space-4) var(--space-7);flex-direction:column;flex:1;margin:0 auto;display:flex}.container-wide{width:100%;max-width:68.75rem;padding:var(--space-8) var(--space-4) var(--space-7);flex-direction:column;flex:1;margin:0 auto;display:flex}main{flex:1}.content-grid{gap:var(--space-5);margin-top:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.content-grid>*{background:var(--bg-surface);border:var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card)}.content-grid h2{font-family:var(--font-ui);color:var(--accent);margin-bottom:var(--space-4);font-size:clamp(1.125rem,2vw,1.25rem);font-weight:500}.content-grid h2 :global(.icon-inline){vertical-align:-.35em;width:2rem;height:2rem;margin-right:var(--space-1)}.card-icon{width:3.5rem;height:3.5rem;margin:0 auto var(--space-2);border:var(--border-default);color:var(--accent);background:0 0;border-radius:50%;justify-content:center;align-items:center;display:flex}@media (width<=48rem){.content-grid{grid-template-columns:1fr}}.site-nav{padding:var(--space-3) var(--space-4);background:var(--bg-surface);position:relative}.nav-inner{justify-content:space-between;align-items:center;gap:var(--space-4);max-width:75rem;margin:0 auto;display:flex}.nav-brand{font-family:var(--font-display);color:var(--text-primary);white-space:nowrap;font-size:clamp(1.5rem,3vw,1.875rem);text-decoration:none}.nav-stamp{vertical-align:-.3em;width:1.25em;height:1.25em;margin-right:var(--space-2)}.nav-links{align-items:center;gap:var(--space-5);list-style:none;display:flex}.nav-links a{font-family:var(--font-ui);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--text-secondary);padding:var(--space-1) var(--space-2);transition:color var(--transition-fast);font-weight:500;text-decoration:none}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--accent)}.nav-links a[href=\/rsvp]{background:var(--accent);color:var(--bg-page);padding:.3rem var(--space-4) .2rem;border-radius:var(--radius-pill);letter-spacing:var(--tracking);text-transform:uppercase;transition:background var(--transition-fast), color var(--transition-fast)}.nav-links a[href=\/rsvp]:hover{background:var(--accent-hover);color:var(--bg-page)}.nav-links a[href=\/rsvp]:focus-visible{outline-color:var(--text-primary)}.nav-links a[href=\/rsvp][aria-current=page]{background:var(--text-primary);color:var(--bg-page)}.nav-toggle{color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking);cursor:pointer;padding:var(--space-1) var(--space-2);transition:color var(--transition-fast);background:0 0;border:none;font-weight:500;display:none}.nav-toggle:hover{color:var(--accent)}.nav-toggle[aria-expanded=true] .icon-menu,.nav-toggle[aria-expanded=false] .icon-close,.nav-toggle:not([aria-expanded]) .icon-close{display:none}@media (width<=48rem){.nav-toggle{display:block}.nav-links{z-index:10;background:var(--bg-surface);border-bottom:var(--border-default);padding:var(--space-3) var(--space-4) var(--space-6);flex-direction:column;display:none;position:absolute;top:100%;left:0;right:0}.nav-links a{padding:var(--space-3) 0}.nav-links a[href=\/rsvp]{padding:var(--space-2) var(--space-4)}:has(.nav-toggle[aria-expanded=true]) .nav-links{display:flex}}.display-heading{font-family:var(--font-display);color:var(--text-primary);text-align:center;font-size:clamp(3rem,8vw,5rem);line-height:1.1}.wedding-date{font-family:var(--font-ui);font-size:var(--text-base);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--text-ghost);text-align:center;margin-top:var(--space-4);font-weight:500}.hero-label{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:var(--tracking);font-size:clamp(1.25rem,3vw,1.5rem);font-weight:500}.page-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-8);text-align:center;font-size:clamp(2.25rem,5vw,3.25rem)}.section-heading{font-family:var(--font-ui);color:var(--accent);margin-top:var(--space-9);margin-bottom:var(--space-4);font-size:clamp(1.25rem,3vw,1.5rem);font-weight:500}.subsection-heading{font-family:var(--font-ui);font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--accent);margin-bottom:var(--space-3)}.card-confirmation{background:var(--accent-tint);border-radius:var(--radius-md);padding:var(--space-5)}.site-footer{text-align:center;padding:var(--space-9) var(--space-4) var(--space-7);color:var(--text-ghost);font-size:var(--text-sm)}.site-footer a{color:var(--text-ghost)}.site-footer a:hover{color:var(--accent)}.lookup-form{gap:var(--space-4);flex-direction:column;display:flex}.name-fields{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=30rem){.name-fields{grid-template-columns:1fr}}.household-list{gap:var(--space-3);flex-direction:column;display:flex}.household-card{text-align:left;width:100%;font-family:inherit;font-size:inherit;background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-4);cursor:pointer;transition:background var(--transition-fast);border:none;display:block}.household-card:hover{background:var(--bg-raised)}.household-card-name{font-family:var(--font-ui);color:var(--text-primary);margin-bottom:var(--space-1);font-weight:500;display:block}.household-card-guests{font-size:var(--text-sm);color:var(--text-ghost);display:block}.guest-cards{gap:var(--space-4);flex-direction:column;display:flex}.guest-card{background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-4)}.guest-card-name{font-family:var(--font-ui);font-weight:500;font-size:var(--text-md);color:var(--text-primary);margin-bottom:var(--space-3)}.attendance-options{gap:var(--space-4);margin:0;margin-bottom:var(--space-3);border:none;padding:0;display:flex}.attendance-option{align-items:center;gap:var(--space-2);cursor:pointer;display:flex}.attendance-option input[type=radio]{accent-color:var(--accent);width:1.1em;height:1.1em}.attendance-option span{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-secondary)}.confirmation-checkmark{background:var(--accent);width:3rem;height:3rem;color:var(--bg-page);margin:0 auto var(--space-4);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.confirmation-title{font-family:var(--font-ui);color:var(--text-primary);text-align:center;margin-bottom:var(--space-4);font-size:clamp(1.25rem,3vw,1.5rem);font-weight:500}.confirmation-household-name{font-family:var(--font-ui);font-weight:500;font-size:var(--text-md);color:var(--text-primary);margin-bottom:var(--space-4)}.confirmation-list{margin:0;padding:0;list-style:none}.confirmation-guest{padding:var(--space-2) 0;border-bottom:var(--border-subtle);justify-content:space-between;display:flex}.confirmation-guest:last-child{border-bottom:none}.rsvp-closed-message{text-align:center;padding:var(--space-7) 0;color:var(--text-secondary)}.page-content{font-family:var(--font-body);color:var(--text-secondary);font-weight:300}.page-content p{margin-bottom:var(--space-4)}.info-list{margin:0;padding:0;list-style:none}.page-content .info-list li{margin-bottom:var(--space-4)}.page-content .info-list li:last-child{margin-bottom:0}.page-content h2{margin-top:var(--space-7);margin-bottom:var(--space-3)}.page-content h2:first-child{margin-top:0}.page-content hr{margin:var(--space-5) 0}.venue-address{font-size:clamp(1.125rem,2.5vw,1.375rem)}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;display:flex}.error-code{font-family:var(--font-display);color:var(--text-primary);font-size:clamp(3rem,8vw,5rem);line-height:1}.error-message{font-family:var(--font-body);font-size:var(--text-md);color:var(--text-secondary);margin-top:var(--space-3);margin-bottom:var(--space-6)}.photo-grid{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.photo-row{gap:var(--space-3);min-width:0;display:flex}.photo-tile{flex:var(--aspect,1) 1 0;aspect-ratio:var(--aspect,1);border-radius:var(--radius-md);background:var(--bg-surface);min-width:0;box-shadow:var(--shadow-card);color:inherit;font:inherit;text-align:inherit;cursor:pointer;transition:transform var(--transition-fast);border:none;padding:0;display:block;position:relative;overflow:hidden}.photo-tile:hover{transform:translateY(-2px)}.photo-tile img{object-fit:cover;width:100%;height:100%;display:block}.gallery-empty{font-family:var(--font-body);color:var(--text-ghost);text-align:center;padding:var(--space-9) 0;font-style:italic}.gallery-section{margin-top:var(--space-8);text-align:center}.gallery-section:first-of-type{margin-top:var(--space-5)}.gallery-section>h2{font-family:var(--font-ui);color:var(--accent);margin-bottom:var(--space-3);font-size:clamp(1.125rem,2vw,1.25rem);font-weight:500}.gallery-credit{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-5);font-style:italic}.lightbox-overlay{z-index:50;animation:lightbox-fade var(--transition-fast) ease-out;background:#100c08f0;position:fixed;inset:0}.lightbox-content{z-index:51;justify-content:center;align-items:center;gap:var(--space-4);height:100dvh;padding:var(--space-6) var(--space-4);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.lightbox-stage{flex:auto;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.lightbox-image{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:100%}.lightbox-caption{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);text-align:center;max-width:50rem;margin:0 auto;font-style:italic}.lightbox-close,.lightbox-nav{border:var(--border-subtle);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:#100c0899;border-radius:50%;place-items:center;display:grid;position:absolute}.lightbox-close:hover,.lightbox-nav:hover{background:var(--accent);color:var(--bg-page)}.lightbox-close{top:var(--space-4);right:var(--space-4);width:2.5rem;height:2.5rem}.lightbox-nav{width:3rem;height:3rem;top:50%;transform:translateY(-50%)}.lightbox-nav-prev{left:var(--space-4)}.lightbox-nav-next{right:var(--space-4)}@media (width<=32rem){.lightbox-nav{width:2.25rem;height:2.25rem}}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lightbox-overlay{animation:none}.photo-tile{transition:none}.photo-tile:hover{transform:none}}@media (prefers-reduced-motion:no-preference){@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp var(--transition-fast) ease-out}}
