@font-face{font-family:Wedding Script;src:url(/fonts/great-vibes.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Wedding Serif;src:url(/fonts/cormorant-garamond.woff)format("woff");font-weight:300 700;font-style:normal;font-display:swap}.wedding-page{--paper:#fffcf7;--ink:#665d57;--muted:#786e63;--line:#ded7c9;--gold:#c6a334;--sage:#a5a579;color:var(--ink);background:#e9e3da;min-height:100svh;padding:0 32px;font-family:Wedding Serif,Georgia,serif;font-size:20px;line-height:1.5}.wedding-page h1,.wedding-page h2,.wedding-page h3{color:var(--ink);font-weight:400}.wedding-page h2{letter-spacing:0;font-family:Wedding Script,cursive;font-size:clamp(44px,4.5vw,66px);line-height:1.2}.wedding-page h3{font-family:Wedding Serif,Georgia,serif}.wedding-page p{color:var(--ink)}.wedding-page .eyebrow{letter-spacing:3px;color:#81715d;font-family:Wedding Serif,Georgia,serif;font-size:11px;font-weight:500;line-height:1.8}.wedding-page .wedding-header{border-bottom:0;max-width:1240px;padding:22px 6px}.wedding-page .brand{letter-spacing:-.8px;font-family:Wedding Serif,Georgia,serif;font-size:28px;line-height:1}.wedding-page .brand span{color:var(--gold);font-size:20px}.wedding-header nav{gap:32px;display:flex}.wedding-page .wedding-header nav a{border-bottom:1px solid #0000;font-size:15px;text-decoration:none}.wedding-page .wedding-header nav a:hover{border-color:var(--ink)}.wedding-page .invitation{isolation:isolate;background:var(--paper);text-align:center;border-radius:28px 28px 0 0;max-width:1240px;margin:0 auto;position:relative;overflow:hidden}.wedding-page .floral-border{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:-1;width:100%;height:auto;display:block;position:absolute;left:0}.wedding-page .floral-top{top:0}.wedding-page .floral-bottom{object-fit:cover;object-position:top;height:300px;bottom:-1px}.wedding-page .invitation-copy{max-width:850px;margin:0 auto;padding:150px 28px 330px}.wedding-page .wedding-names{letter-spacing:0;overflow-wrap:anywhere;margin:24px 0 18px;font-family:Wedding Script,cursive;font-size:clamp(76px,7.5vw,110px);line-height:1.12}.wedding-names>span{display:block}.wedding-page .wedding-names.long-names{font-size:clamp(48px,5.5vw,76px)}.wedding-page .wedding-names .ampersand{color:var(--gold);margin:3px 0 7px;font-size:38px;line-height:1.2}.wedding-page .ornament{color:var(--gold);margin:25px auto;font-family:Georgia,serif;font-size:21px;line-height:1;display:block}.wedding-page .date{text-transform:uppercase;letter-spacing:2px;margin:28px 0 0;font-size:13px}.wedding-page .invitation-message{margin:28px auto 24px;font-size:21px;line-height:1.6}.wedding-page button,.wedding-page .button{letter-spacing:.2px;background:#6c704d;background:color-mix(in srgb, var(--accent) 35%, #555a43);min-height:48px;color:var(--paper);border-radius:4px;gap:22px;padding:12px 24px;font-family:Wedding Serif,Georgia,serif;font-size:18px;font-weight:600;transition:background-color .2s,box-shadow .2s}.wedding-page .secondary{color:var(--ink);background:0 0;border-color:#a09d86}.wedding-page .invitation-cta{min-width:260px}.wedding-page .upload-panel{background:#f5f1e9;border:0;border-top:1px solid #e9e2d5;border-radius:0;grid-template-columns:1.15fr 1fr;align-items:center;gap:38px 70px;max-width:1240px;margin:0 auto;padding:104px 8%;scroll-margin-top:20px}.wedding-page .upload-intro{text-align:center}.wedding-page .upload-intro h2{margin:18px 0 0}.wedding-page .upload-intro .ornament{margin:22px auto}.wedding-page .upload-message{margin:0 0 20px;font-size:22px}.wedding-page .upload-limits{color:#756c60;margin:0;font-size:16px;line-height:1.7}.wedding-page .upload-controls{gap:12px;min-width:0}.wedding-page .picker-button{background:#fffcf780;border-style:dashed;min-height:96px;font-size:21px}.wedding-page .picker-button span{font-size:26px;font-weight:400}.wedding-page .camera-button{border-color:#d0c8b8}.wedding-page .guest-name{gap:8px;margin-top:12px;font-size:18px}.wedding-page .guest-name .muted{font-size:15px}.wedding-page input:not([type=file]),.wedding-page select{background:#fffcf7;border-color:#c9c0b1;border-radius:4px;min-height:48px;font-size:17px}.wedding-page input::placeholder{color:#877d70}.wedding-page .file-list{min-width:0;font-size:18px}.wedding-page .file-row>div{min-width:0}.wedding-page .file-row strong{font-size:18px}.wedding-page .file-row small{font-size:16px}.wedding-page .icon-button{color:var(--ink);background:0 0;min-width:48px;padding:5px;font-size:26px}.wedding-page .uploads-closed{text-align:center;border:1px solid var(--line);padding:32px}.wedding-page .gallery{background:var(--paper);max-width:1240px;padding:92px 60px 88px;scroll-margin-top:20px}.wedding-page .section-heading{align-items:flex-end;gap:24px;margin-bottom:44px}.wedding-page .section-heading h2{margin:16px 0 0}.wedding-page select{padding:8px 12px;font-size:16px}.wedding-page .media-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.wedding-page .media-card{background:#eee8dd;border:0;border-radius:3px;min-height:0;padding:0}.wedding-page .media-card:hover{filter:none;box-shadow:0 4px 18px #665d5726}.wedding-page .caption{padding:40px 14px 12px;font-size:16px}.wedding-page .placeholder{min-height:0;font-size:17px}.wedding-page .empty{background:#f8f5ee;border:1px solid #e6dfd3;border-radius:4px;padding:62px 24px 68px}.wedding-page .empty>span{color:var(--gold);font-size:30px}.wedding-page .empty h3{margin:18px 0 12px;font-size:32px}.wedding-page .empty p{margin:0;font-size:20px}.wedding-page .empty-link{align-items:center;gap:16px;min-height:48px;margin-top:20px;font-size:17px;display:inline-flex}.wedding-page .gallery>button{margin-top:32px}.wedding-page .wedding-footer{background:var(--paper);border-color:#ebe4d8;max-width:1240px;margin:0 auto;padding:40px 20px 46px}.wedding-page .wedding-footer .ornament{margin:0 auto 20px}.wedding-page .wedding-footer p{margin:0 0 12px;font-size:23px}.wedding-page .wedding-footer>span:last-child{letter-spacing:1px;font-size:14px}.wedding-page .notice{border-radius:0;max-width:1240px;margin:0 auto;font-size:18px}.wedding-page .error{color:#80382c;background:#f0ddd8}.wedding-page .lightbox{background:#302b27f5;font-family:Wedding Serif,Georgia,serif}.wedding-page .lightbox button{color:#fff;background:#5d554b;border-color:#968779;min-width:48px;padding:4px 14px;font-size:28px}.wedding-page .lightbox-caption{color:#fff;font-size:17px}.wedding-page :focus-visible{outline-offset:5px;outline:2px solid #5e6546}.wedding-page .lightbox :focus-visible{outline-color:#fff}.wedding-page .skip-link{z-index:110;background:var(--paper);padding:12px 20px;position:fixed;top:8px;left:16px;transform:translateY(-150%)}.wedding-page .skip-link:focus{transform:translateY(0)}.wedding-page.welcome-page{padding-top:24px;padding-bottom:24px}.wedding-page .welcome-invitation{border-radius:28px;max-width:850px}.wedding-page .welcome-invitation .invitation-copy{padding:180px 30px 250px}.wedding-page .welcome-heading{letter-spacing:0;margin:28px 0;font-family:Wedding Script,cursive;font-size:clamp(52px,6vw,80px);line-height:1.3}.wedding-page .welcome-note{margin-top:30px;font-size:16px;display:block}@media (max-width:1050px){.wedding-page{padding:0 24px}.wedding-page .invitation-copy{padding:130px 24px 250px}.wedding-page .floral-bottom{height:220px}.wedding-page .upload-panel{gap:38px;padding:76px 40px}.wedding-page .gallery{padding:76px 36px}.wedding-page .media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.wedding-page .section-heading{text-align:center;flex-direction:column;align-items:center}}@media (max-width:600px){.wedding-page{padding:0 12px;font-size:19px}.wedding-page .wedding-header{gap:12px;padding:18px 4px}.wedding-page .brand{font-size:24px}.wedding-page .brand span{margin-left:3px;font-size:17px}.wedding-header nav{gap:16px}.wedding-page .wedding-header nav a{align-items:center;gap:4px;min-height:44px;font-size:14px;display:flex}.wedding-page .wedding-header nav a:first-child{display:none}.wedding-page .invitation{border-radius:24px 24px 0 0}.wedding-page .floral-border{width:150%;max-width:none;left:-25%}.wedding-page .floral-bottom{height:auto}.wedding-page .invitation-copy{padding:190px 20px 180px}.wedding-page .wedding-names{margin:23px -6px 16px;font-size:clamp(64px,17.3vw,100px);line-height:1.2}.wedding-page .wedding-names.long-names{margin-inline:0;font-size:clamp(40px,11vw,60px)}.wedding-page .wedding-names .ampersand{margin:8px 0;font-size:30px}.wedding-page .date{letter-spacing:1.35px;margin-top:24px;font-size:11px;line-height:1.9}.wedding-page .invitation-message{margin:26px 0 24px;font-size:19px}.wedding-page .invitation-cta{width:100%;min-width:0;max-width:300px;padding:12px 16px;font-size:17px}.wedding-page .upload-panel{grid-template-columns:1fr;gap:32px;padding:68px 24px}.wedding-page h2{font-size:46px}.wedding-page .upload-message{font-size:21px}.wedding-page .gallery{padding:68px 18px}.wedding-page .section-heading{gap:24px;margin-bottom:32px}.wedding-page .section-heading h2{font-size:44px}.wedding-page .section-heading .eyebrow{letter-spacing:2.2px;font-size:10px}.wedding-page .media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wedding-page .caption{padding:32px 10px 10px;font-size:14px}.wedding-page .empty{padding:40px 16px}.wedding-page .empty h3{font-size:28px}.wedding-page .empty p{font-size:18px}.wedding-page .empty-link{gap:8px;font-size:16px}.wedding-page .wedding-footer p{font-size:21px}.wedding-page .wedding-footer>span:last-child{font-size:12px}.wedding-page .file-row{gap:8px}.wedding-page .file-list>button{width:100%;padding-inline:12px;font-size:16px}.wedding-page.welcome-page{padding-top:12px;padding-bottom:12px}.wedding-page .welcome-invitation .invitation-copy{padding:185px 22px}.wedding-page .welcome-heading{font-size:54px}.wedding-page .welcome-note{font-size:15px}}@media (prefers-reduced-motion:reduce){.wedding-page button,.wedding-page .button{transition:none}}.icon{vertical-align:middle;flex:none;display:inline-block}.brand .icon{width:17px;height:17px}.access-code-display{letter-spacing:.18em;font-variant-numeric:tabular-nums;white-space:nowrap;font-family:Arial,sans-serif}.wedding-page .access-form{gap:12px;max-width:320px;margin:28px auto;font:14px/1.5 Arial,sans-serif;display:grid}.wedding-page .access-form label{font-size:14px}.wedding-page .access-form input{text-align:center;letter-spacing:.35em;border-radius:12px;width:100%;min-height:64px;padding-left:22px;font:28px/1.2 Arial,sans-serif}.wedding-page .access-form input::placeholder{color:#b8b2a6}.wedding-page .access-form>span{color:var(--muted);font-size:12px}.wedding-page .access-form button{border-radius:12px;min-height:48px;font:600 14px/1.4 Arial,sans-serif}.wedding-page .access-form .error{margin:0;font:14px/1.5 Arial,sans-serif}.wedding-page .welcome-invitation .invitation-copy{padding-top:140px;padding-bottom:180px}@media (max-width:600px){.wedding-page .welcome-invitation .invitation-copy{padding:110px 20px 130px}.wedding-page .welcome-heading{margin:16px 0;font-size:44px}}
