@charset "UTF-8";
:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:#173d30;background:#edf3eb}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:128px}body{margin:0;--surface:#fffaf2;--ink:#6b2935;--accent:#6b2935;--soft:#f2e9df;--border:#d3bbaa;background:var(--soft);color:var(--ink)}[hidden]{display:none!important}img{display:block;max-width:100%;height:auto}button,select{font:inherit}button{cursor:pointer}a{color:inherit;text-underline-offset:4px}p{line-height:1.8;margin:0 0 1.2rem}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.18;margin:0}h2{font-size:clamp(2rem,4.4vw,3.6rem);letter-spacing:-.035em}h3{font-size:1.35rem;line-height:1.4}a,button,select,input{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #2d79af;outline-offset:4px}.skip-link{position:fixed;left:12px;top:-100px;z-index:100;background:white;color:#123f32;padding:14px}.skip-link:focus{top:12px}
.demo-toolbar{background:#f7faf6;color:#173d30;border-bottom:1px solid #d4e0d3;position:sticky;top:0;z-index:20}.toolbar-inner{max-width:1240px;margin:auto;display:flex;gap:20px;align-items:center;justify-content:space-between;padding:14px 30px}.back-link{font-size:.875rem;font-weight:650;text-decoration:none;min-height:42px;display:flex;align-items:center}.demo-title{text-align:center;display:grid;gap:4px}.demo-title b{font-size:1rem}.demo-title span{font-size:.75rem;color:#536b5e}.toolbar-cta{background:#176449;color:white;text-decoration:none;font-size:.875rem;padding:12px 17px;border-radius:7px;font-weight:650}.demo-info{background:#eaf1e7;padding:8px 20px;text-align:center;font-size:.75rem;line-height:1.6;color:#456149}
.demo-controls{width:min(900px,calc(100% - 40px));margin:27px auto 29px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;color:#173d30;font-size:.875rem}.view-options{display:flex;gap:4px;border:1px solid #cbd8c8;padding:4px;background:#fff;border-radius:10px}.view-options button{border:0;border-radius:6px;padding:10px 14px;font-size:.875rem;background:transparent;color:#435d46;min-height:42px}.view-options button[aria-pressed=true]{background:#176449;color:white}.demo-controls>p{flex-basis:100%;text-align:center;margin:0;font-size:.8125rem;color:#536b5e;line-height:1.6}
.invitation{max-width:1180px;margin:auto;background:var(--surface);overflow:hidden}.opening{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;padding:55px}.opening-copy{text-align:center}.invite-kicker{font-size:.75rem;letter-spacing:.18em;font-weight:650;line-height:1.7;margin-bottom:24px}.opening h1{font-size:clamp(2.6rem,5vw,4.6rem);letter-spacing:-.045em;line-height:1.07;overflow-wrap:break-word}.opening h1>span{display:block;font-size:.5em;font-style:italic;margin:12px 0;letter-spacing:0}.opening-line{font-size:1.025rem;margin:24px auto 0;max-width:350px}.wedding-date{display:grid;gap:10px;border-block:1px solid var(--border);margin:30px auto;padding:20px 0;max-width:320px}.wedding-date>span{font-size:.75rem;letter-spacing:.14em;line-height:1.5}.wedding-date b{font-family:Georgia,serif;font-size:1.65rem;font-weight:400;letter-spacing:.04em}.wedding-date i{font-style:normal;margin:0 5px}.recipient{margin:25px auto 28px;max-width:400px}.recipient p{font-size:.9375rem;margin-bottom:10px;font-family:Georgia,serif}.recipient strong{font-family:Georgia,serif;font-weight:400;font-size:1.45rem;display:block;line-height:1.4}.recipient>span{display:block;margin-top:10px;font-size:.875rem;line-height:1.7}.public-announcement{margin:25px 0 28px}.public-announcement p{font-family:Georgia,serif;font-size:1.6rem;margin-bottom:12px}.public-announcement>span{font-size:.9375rem;line-height:1.7}.invite-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 20px;border:1px solid var(--accent);background:var(--accent);color:var(--surface);font-size:.9375rem;font-weight:650;line-height:1.5;text-decoration:none;border-radius:5px;transition:filter .2s}.invite-button:hover{filter:brightness(.92)}.opening-image img{width:100%;height:auto}.opening-image{border:1px solid var(--border);padding:11px;background:var(--surface)}
.invitation-nav{display:flex;align-items:center;justify-content:center;gap:28px;padding:23px 20px;border-block:1px solid var(--border);flex-wrap:wrap}.invitation-nav a{font-size:.875rem;text-decoration:none;min-height:32px;display:flex;align-items:center}.invitation-nav a:hover{text-decoration:underline}.invite-section{padding:84px 55px;text-align:center}.section-ornament{font-family:Georgia,serif;font-size:2.6rem;margin-bottom:36px;letter-spacing:.035em}.section-ornament>span{font-size:.7em;font-style:italic}.story .invite-kicker{margin-bottom:18px}.story-quote{max-width:710px;margin:29px auto 42px;font-size:1.12rem;line-height:1.85}.story-timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;text-align:left}.story-timeline li{border-top:1px solid var(--border);padding-top:24px}.story-timeline li>span{font-size:.75rem;font-weight:650;letter-spacing:.12em;display:block;margin-bottom:16px}.story-timeline p{font-size:1rem;margin:16px 0 0}
.wedding-section{background:var(--soft)}.countdown{display:flex;justify-content:center;gap:40px;margin:36px 0 24px}.countdown>div{display:grid;gap:10px;min-width:72px}.countdown b{font-family:Georgia,serif;font-weight:400;font-size:3.1rem;line-height:1.1}.countdown span{font-size:.875rem}.schedule-note{font-size:.8125rem;max-width:660px;margin:0 auto 34px}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.event-grid article{padding:35px 24px;background:var(--surface);border:1px solid var(--border)}.event-type{font-size:.75rem;letter-spacing:.16em;margin-bottom:16px;font-weight:650}.event-grid time{display:block;font-size:1.1rem;margin:19px 0 22px}.event-grid article>p:not(.event-type){font-size:1rem;line-height:1.6}.event-grid small{font-size:.75rem;display:block;margin-top:7px}.event-detail{border-top:1px solid var(--border);padding-top:18px;font-size:.875rem;line-height:1.7}.location-note{max-width:760px;margin:30px auto 0;padding:23px;border:1px dashed var(--border);text-align:left}.location-note b{font-size:1rem}.location-note p{font-size:.875rem;margin:10px 0 0}
.album-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:38px 55px;align-items:center;text-align:left}.album-heading>p:last-child{margin:26px 0 0;font-size:.9375rem}.album-photo{position:relative;border:0;padding:0;background:transparent;display:block;color:var(--ink)}.album-photo img{width:100%;max-height:620px;object-fit:contain;object-position:top;background:var(--soft)}.album-photo>span{display:block;background:var(--soft);font-size:.8125rem;padding:11px 15px;text-align:center;border:1px solid var(--border)}.album-caption{grid-column:1/-1;font-size:.8125rem;text-align:center;max-width:760px;margin:0 auto;line-height:1.7}
.rsvp-section{background:var(--soft)}.rsvp-intro{font-size:1.025rem;margin:26px auto 35px;max-width:620px}.demo-rsvp{width:min(590px,100%);margin:auto;padding:30px;background:var(--surface);border:1px solid var(--border);text-align:left}.form-disclosure{font-size:.75rem;line-height:1.7;border-bottom:1px solid var(--border);padding-bottom:18px}.demo-rsvp fieldset{border:0;padding:0;margin:0 0 25px}.demo-rsvp legend{font-size:1rem;margin-bottom:15px;line-height:1.6;font-weight:650}.reply-option{display:flex;gap:10px;align-items:center;border:1px solid var(--border);padding:13px;margin:10px 0;cursor:pointer;font-size:.9375rem;line-height:1.6}.reply-option input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.reply-option:has(input:checked){background:var(--soft)}#party-size-field>label{font-size:.9375rem;display:block;line-height:1.6;margin-bottom:10px}#party-size-field>label span{font-size:.8125rem}#party-size{width:100%;border:1px solid var(--border);padding:13px;background:var(--surface);color:var(--ink);border-radius:4px;font-size:1rem;min-height:48px}.demo-rsvp>.invite-button{width:100%;margin-top:23px}.rsvp-result{font-size:.9375rem;line-height:1.75;border:1px solid var(--border);background:var(--soft);padding:16px;margin:20px 0 0}.demo-rsvp>.invite-button:disabled{opacity:.55;cursor:not-allowed}.thank-you>p:not(.invite-kicker){max-width:650px;margin:28px auto 0;font-size:1.05rem}.thank-you p.signature{font-family:Georgia,serif;font-size:1.9rem;font-style:italic;margin-top:32px}
.invite-footer{max-width:1180px;margin:auto;padding:38px 30px;text-align:center;background:#10382c;color:#d8e8db}.invite-footer>p{font-size:.9375rem;margin-bottom:14px}.invite-footer nav{display:flex;flex-wrap:wrap;gap:15px 25px;justify-content:center;font-size:.875rem;line-height:1.7}.invite-footer .footer-demo-note{font-size:.75rem;line-height:1.8;max-width:820px;margin:23px auto 0;color:#c1d5c6}.more-templates{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:26px 30px;background:#e4ede1;color:#173d30;font-size:.9375rem}.more-templates a{padding-block:9px;text-decoration:none;font-weight:650}.more-templates a:hover{text-decoration:underline}
#photo-dialog{border:0;padding:0;border-radius:9px;width:min(820px,calc(100% - 24px));max-height:94dvh;background:#fff;color:#173d30;overflow:auto}#photo-dialog::backdrop{background:#08241bdb}.photo-dialog-bar{position:sticky;top:0;background:#fff;display:flex;gap:20px;justify-content:space-between;align-items:center;padding:13px 18px;border-bottom:1px solid #d9e3d7}.photo-dialog-bar h2{font-family:inherit;font-size:1rem;font-weight:650;letter-spacing:0}.photo-dialog-bar button{border:1px solid #bdd0bc;border-radius:5px;padding:10px 15px;font-size:.875rem;background:#f3f7f0;color:#173d30;min-height:42px}#photo-dialog>img{max-height:78dvh;width:100%;object-fit:contain}#photo-dialog>p{font-size:.75rem;text-align:center;margin:12px}
.theme-moc{--surface:#f6f7ed;--ink:#355437;--accent:#496b48;--soft:#e2e9d8;--border:#b9c8ab}.theme-moc .opening-image{grid-column:1;grid-row:1;border:0;padding:0;background:transparent;border-radius:260px 260px 8px 8px;overflow:hidden}.theme-moc .opening-copy{grid-column:2}.theme-moc .opening{gap:60px}.theme-moc .event-grid article{border-radius:80px 80px 8px 8px;padding-top:48px}
.theme-lam{--surface:#102f40;--ink:#edf1eb;--accent:#d4e2bd;--soft:#173d4d;--border:#63838b}.theme-lam .opening-image{border:0;padding:0}.theme-lam .opening h1{font-size:clamp(2.8rem,5.2vw,4.9rem)}.theme-lam .wedding-date{border-color:#6a8a92}.theme-lam .story-quote{font-family:Georgia,serif;font-size:1.45rem}.theme-lam .event-grid article{background:#0a293a}.theme-lam .section-ornament{color:#d4e2bd}
.theme-anh-lua{--surface:#f8f6ef;--ink:#282c2a;--accent:#303c31;--soft:#eae8e0;--border:#b8bcb0}.theme-anh-lua .opening{border-top:7px solid #303c31;gap:35px}.theme-anh-lua .opening-copy{text-align:left}.theme-anh-lua .opening h1{font-weight:700;font-size:clamp(2.7rem,5.5vw,5rem)}.theme-anh-lua .opening h1 span{display:inline;font-weight:400}.theme-anh-lua .opening-line,.theme-anh-lua .wedding-date,.theme-anh-lua .recipient{margin-left:0}.theme-anh-lua .opening-image{padding:0;border:0}.theme-anh-lua .story{border-top:1px solid var(--border)}.theme-anh-lua .section-ornament{display:none}.theme-anh-lua h2{font-weight:700;letter-spacing:-.055em}
.theme-nang{--surface:#fffcef;--ink:#655321;--accent:#79652b;--soft:#f3eccf;--border:#d6c594}.theme-nang .opening-image{padding:12px;box-shadow:0 15px 30px #66542012;transform:rotate(2deg)}.theme-nang .opening h1{font-style:italic}.theme-nang .opening{gap:65px}.theme-nang .event-grid article,.theme-nang .demo-rsvp{border-radius:14px}.theme-nang .story-timeline li{border-top:2px solid #d6c594}.theme-nang .album-photo{padding:12px;background:#fff;border:1px solid var(--border)}
.theme-song-hy{--surface:#852c28;--ink:#ffebcb;--accent:#ecd2a2;--soft:#762621;--border:#bf8263}.theme-song-hy .opening{padding:48px;border:1px solid #bf8263;outline:1px solid #bf8263;outline-offset:-13px}.theme-song-hy .opening-image{padding:7px;background:#a34331}.theme-song-hy .section-ornament{border-block:1px solid var(--border);width:140px;padding:13px;margin-inline:auto}.theme-song-hy .event-grid article{outline:1px solid var(--border);outline-offset:-8px}.theme-song-hy .invite-kicker{letter-spacing:.16em}
@media(max-width:1000px){.invitation{width:calc(100% - 36px)}.opening{padding:35px;gap:30px}.opening h1{font-size:3rem}.opening-line{font-size:.9375rem}.invite-section{padding:68px 35px}.theme-moc .opening,.theme-nang .opening{gap:35px}.theme-song-hy .opening{padding:35px}.story-timeline{gap:22px}.album-section{gap:30px}.theme-lam .opening h1{font-size:3.2rem}.theme-anh-lua .opening h1{font-size:3.2rem}.invite-footer,.more-templates{width:calc(100% - 36px)}}
@media(max-width:700px){html{scroll-padding-top:140px}.toolbar-inner{padding:10px 16px;gap:12px}.toolbar-cta{padding:11px 12px;font-size:.8125rem}.back-link{font-size:.8125rem}.demo-title b{font-size:.9375rem}.demo-info{font-size:.75rem}.demo-controls{margin:22px auto;gap:11px}.demo-controls>span{font-size:.8125rem}.opening,.theme-moc .opening,.theme-nang .opening,.theme-song-hy .opening{grid-template-columns:1fr;padding:35px 27px;gap:35px}.opening-copy,.theme-moc .opening-copy{grid-column:auto;grid-row:auto}.opening-image,.theme-moc .opening-image{grid-column:auto;grid-row:auto;width:min(460px,100%);margin-inline:auto}.opening h1,.theme-lam .opening h1,.theme-anh-lua .opening h1{font-size:clamp(2.8rem,9vw,4.3rem)}.opening-line{font-size:1rem}.recipient strong{font-size:1.5rem}.theme-anh-lua .opening-copy{text-align:center}.theme-anh-lua .opening-line,.theme-anh-lua .wedding-date,.theme-anh-lua .recipient{margin-inline:auto}.theme-anh-lua .opening h1 span{display:block}.invitation-nav{gap:9px 22px;padding:16px}.invitation-nav a{font-size:.8125rem;min-height:36px}.invite-section{padding:56px 27px}.story-quote{font-size:1.05rem}.story-timeline{grid-template-columns:1fr;gap:28px}.story-timeline h3{font-size:1.5rem}.story-timeline p{margin-top:12px}.event-grid{grid-template-columns:1fr;gap:20px}.event-grid article{padding:30px 22px}.countdown{gap:25px}.countdown b{font-size:2.7rem}.album-section{grid-template-columns:1fr;text-align:center;gap:30px}.album-photo{width:min(470px,100%);margin:auto}.album-caption{grid-column:auto}.demo-rsvp{padding:24px 20px}.theme-song-hy .opening{outline-offset:-9px}.invite-footer{padding:30px 22px}.invite-footer nav{gap:10px 20px}.more-templates{padding:18px 20px;font-size:.875rem}}
@media(max-width:420px){.invitation,.invite-footer,.more-templates{width:calc(100% - 20px)}.toolbar-inner{gap:8px;padding-inline:10px}.toolbar-cta{font-size:.75rem;padding:10px}.back-link{font-size:.75rem}.demo-title span{font-size:.75rem}.demo-controls{width:calc(100% - 30px)}.demo-controls>span{flex-basis:100%;text-align:center}.opening,.theme-moc .opening,.theme-nang .opening,.theme-song-hy .opening{padding:33px 22px}.invite-section{padding:48px 22px}.demo-rsvp{padding:20px 16px}.countdown{gap:17px}.countdown>div{min-width:65px}.more-templates{gap:10px;font-size:.8125rem}.more-templates>a{text-align:center}.invite-button{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
