@font-face{font-family:Cormorant;src:url(cormorant-garamond.ttf) format('truetype');font-style:normal;font-weight:300 700;font-display:swap}
.wedding{--purple:#45255b;--muted:#716876;--lavender:#775488;--wash:#faf8fb;background:#fff;color:#352e38}
.wedding h1,.wedding h2,.wedding .wordmark,.wedding .schedule dt,.wedding .toast-signature{font-family:Cormorant,Georgia,serif}
.wedding .container,.wedding .masthead-inner{width:min(1120px,calc(100% - 80px))}
.wedding .masthead{background:#fff;color:var(--purple);border-bottom:1px solid #d7c69f}
.wedding .masthead-inner{min-height:78px;gap:24px}
.wedding .wordmark{color:var(--purple);font-size:31px;font-style:normal;line-height:1;text-decoration:none;min-width:100px}
.wedding .wordmark span{color:#947128;font-style:italic;margin-inline:5px;font-size:26px}
.wedding-nav{display:flex;gap:36px;align-items:center}
.wedding-nav a{display:inline-flex;align-items:center;min-height:48px;text-decoration:none;color:#544657;font-size:13px}
.wedding-nav a:hover{color:var(--purple);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:7px}
.wedding .wedding-date{font-family:Arial,Helvetica,sans-serif;font-size:12px;min-width:100px;text-align:right;color:#746374}
.wedding-hero{position:relative;isolation:isolate;display:grid;place-items:center;min-height:470px;height:min(560px,calc(100svh - 205px));overflow:hidden;text-align:center;scroll-margin-top:0}
.hero-art{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:center 54%}
.hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:inherit}
.hero-copy{width:min(760px,calc(100% - 64px));padding:36px 0 46px}
.hero-copy .eyebrow{color:#64496d;font-size:11px;margin-bottom:18px;line-height:1.6}
.wedding h1{font-size:98px;line-height:1.08;font-weight:400;color:var(--purple);margin-bottom:18px}
.wedding h1 em{font-family:Georgia,serif;font-size:62px;color:#92702e;font-weight:400;margin-inline:12px}
.hero-date{font-family:Georgia,serif;font-size:18px;color:#584660;margin-bottom:12px}
.hero-invitation{font-size:14px;color:#67596c;margin-bottom:25px}
.wedding .button{border-radius:3px;min-height:48px;padding:13px 20px}
.hero-action{font-size:13px;box-shadow:0 4px 14px #45255b12}
.hero-action svg:last-child{width:16px;margin-left:7px}
.wedding .day-section{padding-block:44px 52px;scroll-margin-top:28px}
.celebration-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:26px}
.celebration-heading .eyebrow{margin:0}
.wedding .celebration-heading h2{font-size:35px;margin:0;line-height:1.2}
.wedding .eyebrow{font-size:11px;line-height:1.5;font-weight:600;color:var(--lavender)}
.wedding .day-grid{grid-template-columns:1fr 1.7fr;gap:42px;border-top:1px solid #d9ccdf;padding-top:28px}
.wedding .venue{display:flex;gap:15px;align-items:flex-start}
.venue-icon{color:#876931;width:21px;height:21px;margin-top:4px}
.wedding .venue h3{font-size:18px;font-weight:500;margin-bottom:9px;color:var(--purple)}
.wedding .venue p{font-size:13px;line-height:1.7;margin-bottom:11px}
.wedding .text-link{font-size:12px;text-decoration:none;border-bottom:1px solid #b6a285;padding-bottom:4px}
.wedding .text-link svg{width:15px;height:15px}
.wedding .schedule{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:0;gap:25px}
.wedding .schedule>div{display:block;border:0;padding:0 0 0 20px;border-left:1px solid #ddd2e2;min-width:0}
.wedding .schedule dt{font-size:36px;font-weight:500;white-space:nowrap;line-height:1.1;margin-bottom:12px}
.wedding .schedule dt span{font-family:Arial,sans-serif;font-size:11px;font-weight:400;color:var(--muted)}
.wedding .schedule dd{font-size:14px;line-height:1.6;color:#54425c}
.wedding .schedule dd span{display:block;color:var(--muted);font-size:12px}
.wedding .photos-section{padding-block:56px 60px;background:#f6f2f8;border-color:#e5dbea;scroll-margin-top:24px}
.wedding .section-title{align-items:flex-start;gap:16px;margin-bottom:26px}
.wedding .section-title h2{font-size:48px;line-height:1.1;margin-bottom:12px;color:var(--purple)}
.section-intro{font-size:14px;color:var(--muted);margin:0}
.wedding .guest-welcome{padding-top:8px;font-size:13px}
.wedding .guest-gate{border-top:1px solid #dacee1;padding:24px 0 6px;gap:18px}
.wedding .guest-gate p{font-size:14px}
.wedding .guest-gate svg{width:28px;height:28px}
.wedding .upload-fields{margin-block:22px 0}
.wedding label{font-size:13px}
.wedding .upload-form{border-color:#dacee1;padding-bottom:28px}
.wedding .gallery-heading{margin-top:32px}
.wedding .gallery-heading h3{font-size:16px;font-weight:500}
.wedding .empty-state{padding:36px 0;justify-content:center;font-family:Cormorant,Georgia,serif;font-size:25px}
.wedding .empty-state svg{width:26px;height:26px}
.upload-actions:has(#photo-files:focus-visible) .file-picker{outline:3px solid var(--gold);outline-offset:4px}
.queue-row>.error:last-child{grid-column:1 / -1;white-space:normal;overflow-wrap:anywhere}
.toast-band{background:#fff;border-bottom:1px solid #e4dce8}
.wedding .toast-section{grid-template-columns:1fr 360px;gap:64px;padding-block:64px;max-width:980px}
.wedding .toast-section h2{font-size:61px;line-height:1.05;color:var(--purple);margin-bottom:20px}
.wedding .toast-section h2 em{font-weight:400;color:#8a6a2a}
.wedding .toast-section p{font-size:14px}
.wedding .toast-section img{max-height:420px;filter:none;object-fit:contain}
.wedding .cocktail-photo{display:block;aspect-ratio:1;width:100%;height:auto}
.wedding .toast-section .cocktail-type{font-family:Cormorant,Georgia,serif;font-size:27px;color:var(--purple);margin-bottom:0}
.wedding .toast-section .cocktail-ingredients{font-size:15px;line-height:1.9;color:#625269;margin-bottom:24px}
.toast-rule{width:64px;height:1px;background:#b08a3e;margin-block:30px}
.wedding .toast-signature{font-size:26px!important;font-style:italic;line-height:1.3;color:var(--purple);margin-bottom:0}
.wedding footer{border:0;padding-block:26px}
.wedding footer .container{align-items:center;font-family:Cormorant,Georgia,serif;font-size:22px;color:var(--purple)}
.footer-date{font-family:Arial,Helvetica,sans-serif;font-size:11px;color:var(--muted);margin-left:25px;display:inline-block}
.wedding footer a{display:grid;place-items:center;min-width:44px;min-height:44px;color:var(--muted)}
.wedding footer a svg{width:16px;height:16px}
@media(min-width:1600px){.hero-art{object-position:center 58%}.wedding-hero{height:590px}}
@media(max-width:900px){.wedding .day-grid{grid-template-columns:1fr 1.9fr;gap:24px}.wedding .schedule{gap:16px}.wedding .schedule>div{padding-left:14px}.wedding .schedule dt{font-size:31px}.wedding h1{font-size:78px}}
@media(max-width:720px){.wedding .container,.wedding .masthead-inner{width:calc(100% - 40px)}.wedding .masthead-inner{min-height:70px;padding-block:0;flex-wrap:nowrap;gap:16px}.wedding .wordmark{font-size:27px;min-width:68px}.wedding .wordmark span{font-size:22px;margin-inline:2px}.wedding-nav{gap:20px}.wedding-nav a{font-size:12px}.wedding .wedding-date{display:none}.wedding-hero{height:530px;min-height:460px;max-height:none}.hero-art{object-position:center;object-fit:cover}.hero-copy{width:calc(100% - 76px);padding:40px 0}.hero-copy .eyebrow{font-size:10px;max-width:235px;margin:0 auto 18px}.wedding h1{font-size:65px;line-height:1;display:flex;flex-direction:column;gap:0;margin-bottom:22px}.wedding h1 em{font-size:35px;margin:7px 0 3px}.hero-date{font-size:15px;margin-bottom:9px;line-height:1.6}.hero-invitation{font-size:12px;max-width:220px;margin:0 auto 22px}.hero-action{padding:12px 14px!important;font-size:12px;max-width:100%}.hero-action svg{width:16px;height:16px}.hero-action svg:last-child{display:none}.wedding .day-section{padding-block:32px 40px}.celebration-heading{display:block;margin-bottom:22px}.celebration-heading .eyebrow{margin-bottom:7px}.wedding .celebration-heading h2{font-size:33px}.wedding .day-grid{grid-template-columns:1fr;gap:28px;padding-top:23px}.wedding .venue{gap:12px}.wedding .venue p{margin-bottom:9px}.wedding .schedule{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wedding .schedule>div{padding-left:12px}.wedding .schedule>div:first-child{padding-left:0;border-left:0}.wedding .schedule dt{font-size:31px;margin-bottom:10px}.wedding .schedule dd{font-size:12px}.wedding .schedule dd span{font-size:11px}.wedding .photos-section{padding-block:38px 42px}.wedding .section-title h2{font-size:39px}.section-intro{font-size:13px;max-width:280px}.wedding .section-title{margin-bottom:23px}.wedding .guest-welcome{padding:0;margin:0}.wedding .guest-gate p{font-size:13px}.wedding .guest-gate svg{flex-shrink:0}.wedding .upload-actions{gap:12px}.wedding .upload-actions .button{padding-inline:10px;font-size:13px}.wedding .empty-state{font-size:23px;gap:12px}.wedding .toast-section{grid-template-columns:1fr;gap:30px;padding-block:42px;max-width:100%;text-align:center}.wedding .toast-section h2{font-size:49px}.wedding .toast-copy .eyebrow{max-width:250px;margin-inline:auto}.toast-rule{margin-inline:auto;margin-block:22px}.wedding .toast-section img{width:min(300px,100%);max-height:none;justify-self:center}.wedding .toast-signature{font-size:24px!important}.wedding footer .container{font-size:20px}.footer-date{display:block;font-size:10px;margin:5px 0 0}}
@media(max-width:370px){.wedding-nav{gap:16px}.wedding-nav a{font-size:11px}.wedding .masthead-inner{gap:10px}.hero-copy{width:calc(100% - 60px)}.wedding h1{font-size:60px}.wedding .schedule dt{font-size:28px}.wedding .schedule>div{padding-left:9px}.wedding .section-title h2{font-size:35px}.wedding .photo-grid{grid-template-columns:1fr}.wedding .button{font-size:12px}.wedding .schedule dd{font-size:11px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.hero-copy{animation:arrival .65s ease-out both}@keyframes arrival{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
