:root{--pink:#fd567e;--navy:#183972;--paper:#f4fbff;--ink:#586270;--shadow:0 22px 40px -26px #18397266}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.8 BeVietnamPro,Arial,sans-serif}h1,h2,h3,p{margin:0}h1,h2,h3,.save-date{font-family:Pacifico,cursive;font-weight:400}h2{font-size:42px;line-height:1.5;color:var(--navy);margin-bottom:24px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--pink);outline-offset:4px}img{display:block;max-width:100%}button{border:0}button:disabled{opacity:.55;cursor:wait}.wrap{width:min(1120px,calc(100% - 48px));margin:auto}.narrow{max-width:650px}.center{text-align:center}.section{position:relative;padding:100px 0;overflow:hidden}.deco{width:115px;height:95px;object-fit:contain;margin:0 auto 14px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:13px;color:#65738a}.site-header{height:64px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:24px;position:sticky;top:0;z-index:30;border-bottom:1px solid #18397208}.brand{font-size:11px;white-space:nowrap;color:#354259}.brand span{display:inline-grid;place-items:center;background:#183972;color:white;width:24px;height:24px;border-radius:50%;margin-right:6px}.site-header nav{display:flex;gap:22px;align-items:center;font-size:11px}.site-header nav a:hover{color:var(--pink)}.nav-gift{border:1px solid #f7ccda;border-radius:20px;padding:6px 14px;color:#d9416a}.menu-toggle{display:none;background:none;font-size:24px}.hero{min-height:760px;min-height:calc(100svh - 64px);background:url('assets/bannerBg1.jpg') center/cover;display:grid;place-items:center;padding:70px 24px 100px}.hero-content{width:560px;max-width:100%;text-align:center;animation:enter 1.1s both}.hero .eyebrow{font-size:16px;margin-bottom:18px}.hero h1{font-size:70px;line-height:1.4;color:var(--pink)}.hero h1>span{display:block;text-align:left}.hero h1 .amp{text-align:center;font-size:30px;line-height:.8;opacity:.8}.hero h1 .bride-name{text-align:right;position:relative}.bride-name:before{content:'';display:inline-block;width:88px;height:56px;background:url('assets/bannerDeco1-tilt.png') center/contain no-repeat;margin-right:14px}.date-paper{background:white;display:table;margin:36px auto 0;padding:14px 68px 22px;border-radius:10px;box-shadow:var(--shadow);font-size:30px;color:#6f829f;letter-spacing:.08em}.save-date{display:inline-block;background:#d9416a;color:white;padding:16px 30px;border-radius:8px;font-size:22px;transform:rotate(-4deg) translateY(-10px);box-shadow:0 8px 20px #18397226}.invitation-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:80px;align-items:center}.invitation-photo{max-width:370px;margin:auto}.photo-paper{background:white;padding:10px;border-radius:15px;box-shadow:var(--shadow);position:relative}.invitation-photo .photo-paper:before{content:'';position:absolute;inset:0;background:#f2d9c6;transform:rotate(-4deg);border-radius:15px;z-index:-1}.invitation-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:9px}.invitation-date{background:white;box-shadow:var(--shadow);padding:22px 20px;border-radius:10px;position:relative;margin:-12px -12px 0;text-align:center}.invitation-date .invitation-date-title{font-size:30px;color:var(--pink)}.invitation-date p{font-size:11px;margin-top:7px}.invitation-copy{text-align:center}.invitation-copy>p{max-width:500px;margin:0 auto}.invitation-note{margin-top:12px!important;font-size:12px}.button-row{display:flex;justify-content:center;gap:16px;margin-top:34px}.button{border-radius:30px;min-height:42px;padding:10px 24px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;line-height:1.5;transition:transform .2s,box-shadow .2s;white-space:normal}.button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #18397226}.navy{background:var(--navy);color:white;box-shadow:0 3px 8px #18397235}.pink{background:#d9416a;color:white;box-shadow:0 3px 8px #d9416a35}.outline{border:1px solid #b8c8da;background:#fff;color:var(--navy)}.couple{background:url('assets/introductionBg1.png') center/100% 100% no-repeat;padding:110px 0}.couple-wrap{max-width:1030px;display:grid;gap:85px}.person{display:flex;align-items:center;position:relative}.person-copy{background:var(--paper);padding:32px 55px 32px 35px;border-radius:14px;box-shadow:var(--shadow);flex:1}.person-copy h2{font-family:Birthstone,cursive;font-size:54px;margin:0 0 6px}.person-copy p:last-child{font-size:12px;line-height:1.8}.portrait{width:265px;flex-shrink:0;padding:8px;background:white;border-radius:12px;box-shadow:var(--shadow);transform:rotate(2deg);margin-left:-20px}.portrait img{width:100%;aspect-ratio:326/403;object-fit:cover;border-radius:7px}.bride .portrait{transform:rotate(-3deg);margin:0 -20px 0 0;z-index:1}.bride .person-copy{padding:32px 35px 32px 55px}.story .narrow>p{font-size:13px}.story-photo{width:min(900px,calc(100% - 48px));margin:48px auto 0}.story-photo img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 40%;border-radius:9px}.timeline{padding:80px 0 110px}.timeline h2{margin-bottom:65px}.milestone{position:relative;display:flex;align-items:center;min-height:330px;max-width:940px;margin:0 auto 100px}.milestone:last-child{margin-bottom:0}.milestone-photo{width:52%;position:relative;z-index:2;transform:rotate(-4deg);border-radius:10px;box-shadow:var(--shadow)}.milestone-photo img{width:100%;aspect-ratio:1.5;object-fit:cover;border-radius:10px}.milestone-copy{background:#fff;border-radius:14px;padding:28px 32px 28px 65px;flex:1;margin-left:-40px;box-shadow:var(--shadow)}.milestone-copy>img{width:68px;height:60px;object-fit:contain;margin-bottom:14px}.milestone-copy time{font-size:11px;color:#65738a}.milestone-copy h3{font-size:26px;color:var(--pink);margin:6px 0 12px;line-height:1.5}.milestone-copy p{font-size:11px;line-height:1.9}.milestone:nth-child(even){flex-direction:row-reverse}.milestone:nth-child(even) .milestone-photo{transform:rotate(4deg)}.milestone:nth-child(even) .milestone-copy{margin:0 -40px 0 0;padding:28px 65px 28px 32px}.album{padding:90px 0}.album-stage{position:relative;max-width:840px;margin:45px auto 28px}.album-photo{padding:10px;background:white;width:100%;border-radius:15px;box-shadow:var(--shadow);display:block;position:relative;overflow:hidden;aspect-ratio:1.6}.album-photo>img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);object-fit:contain;border-radius:9px}.album-photo .album-blur{object-fit:cover;filter:blur(18px);opacity:.35;transform:scale(1.05)}.album-photo span{position:absolute;right:20px;bottom:20px;background:#ffffffe6;border-radius:20px;padding:3px 10px;font-size:11px}.album-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:42px;height:42px;background:white;border-radius:50%;box-shadow:0 4px 12px #18397225;color:var(--navy);font-size:30px;line-height:1}.prev{left:-65px}.next{right:-65px}.album-thumbs{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.album-thumbs button{padding:0;width:62px;height:72px;overflow:hidden;border-radius:8px;background:white;opacity:.65}.album-thumbs button[aria-current=true]{outline:2px solid var(--pink);outline-offset:3px;opacity:1}.album-thumbs img{width:100%;height:100%;object-fit:cover}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;max-width:940px;margin:105px auto 30px}.event-card{background:white;border-radius:12px;padding:0 20px 24px;box-shadow:var(--shadow);position:relative}.event-card .event-art{width:140px;height:100px;object-fit:contain;margin:-65px auto 10px;transform:rotate(-5deg)}.event-card h3{color:var(--pink);font-size:28px}.event-time{font-size:30px;color:#617b9c;line-height:1.4;margin:12px 0 0}.event-date{font-size:12px;color:#65738a;margin-bottom:20px}.event-card>p:last-of-type{font-size:11px;min-height:50px}.event-card .button-row{gap:8px;margin-top:15px}.event-card .button{font-size:11px;padding:8px 12px;min-height:34px}.guestbook{background:url('assets/messageBg1.png') center/cover;padding:100px 24px}.guestbook-wrap{max-width:630px;margin:auto}.message-form{background:white;border-radius:12px;box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:12px}.message-form input,.message-form textarea{border:1px solid #e6ebef;border-radius:6px;padding:12px;font-size:12px;width:100%;color:var(--ink);background:white}.message-form small{font-size:11px;color:#65738a}.message-form .button{align-self:center}.messages{margin-top:28px;max-height:360px;overflow-y:auto}.message{border-bottom:1px solid #e1eaf1;padding:16px 4px}.message b{color:#607b9e;font-size:12px}.message time{font-size:11px;float:right;color:#65738a}.message p{font-size:12px;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}.gifts{background:url('assets/bankBg1.png') center/cover;padding:100px 24px 120px}.gift-description{max-width:600px;margin:auto;font-size:12px}.bank-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;max-width:650px;margin:45px auto 0}.bank-card{background:white;border-radius:15px;padding:25px 25px 30px;box-shadow:var(--shadow)}.bank-card h3{font-size:22px;color:var(--pink);margin-bottom:15px}.bank-qr{width:170px;margin:0 auto 16px}.bank-card>p{font-size:11px;margin:4px 0}.bank-number{font-size:23px!important;color:#6483aa;letter-spacing:.05em}.bank-card small{font-size:11px;color:#8a5261}.bank-card .button{margin-top:16px;font-size:11px}.bank-image-button{background:none;padding:0}footer{text-align:center;background:white;padding:38px 24px;font-size:11px}footer .footer-names{font-family:Pacifico;font-size:24px;color:var(--pink);margin-bottom:8px}footer a{display:inline-block;margin-top:15px;color:#8195b0}.countdown{display:flex;justify-content:center;gap:12px;margin-top:24px}.countdown[hidden]{display:none}.countdown div{background:white;border-radius:10px;box-shadow:var(--shadow);padding:10px 16px}.countdown b{display:block;font-size:23px;color:var(--pink)}.countdown small{font-size:11px}dialog{border:0;border-radius:20px;padding:30px;width:min(520px,calc(100% - 28px));max-height:90svh;overflow-y:auto;color:var(--ink);background:var(--paper);box-shadow:0 20px 100px #18397255}dialog::backdrop{background:#182c4e88;backdrop-filter:blur(5px)}dialog h2{font-size:30px;text-align:center;margin:4px 0 10px}dialog>p{text-align:center;font-size:12px;margin-bottom:20px}.dialog-close{position:absolute;right:12px;top:8px;font-size:28px;background:none;color:var(--navy);width:40px;height:40px;z-index:4}.dialog-deco{width:75px;height:60px;object-fit:contain;margin:auto}dialog form{display:grid;gap:15px}dialog label{display:grid;gap:6px;font-size:12px}dialog input,dialog textarea{padding:10px;border:1px solid #d8e2eb;border-radius:7px;background:white;width:100%}fieldset{border:1px solid #d8e2eb;border-radius:8px;padding:12px;min-width:0}legend{font-size:12px;padding:0 5px}.choice{display:flex;align-items:center;gap:8px;margin:7px 0}.choice input{width:auto;accent-color:var(--pink)}#attendingFields{display:grid;gap:15px}#attendingFields[hidden]{display:none}.form-status{font-size:12px;white-space:pre-wrap}.form-status.error{color:#b03950}.form-status.success{color:#237151}.lightbox{background:#10151c;padding:0;width:96vw;max-width:1400px;height:92svh;max-height:92svh;overflow:hidden}.lightbox>img{width:100%;height:100%;object-fit:contain}.lightbox .dialog-close{color:white;background:#0004;border-radius:50%}.lightbox-prev,.lightbox-next{position:absolute;top:45%;font-size:42px;background:#0005;color:white;border-radius:50%;width:50px;height:50px;z-index:3}.lightbox-prev{left:12px}.lightbox-next{right:12px}.lightbox>p{position:absolute;bottom:15px;left:0;right:0;color:white;background:#0005;width:80px;margin:auto;border-radius:20px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:12px 24px;border-radius:25px;z-index:100;font-size:12px;text-align:center;max-width:90vw}.music-button{position:fixed;bottom:20px;left:20px;width:44px;height:44px;border-radius:50%;background:#d9416a;color:white;z-index:20;font-size:22px;box-shadow:0 5px 15px #d9416a55}.music-button[hidden]{display:none}.sr-only,.honeypot{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.float{animation:float 5s ease-in-out infinite}.reveal{animation:enter .8s both}@keyframes float{50%{transform:translateY(-7px) rotate(3deg)}}@keyframes enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero{min-height:850px}.hero-content{width:600px}.hero h1{font-size:80px}}
@media(max-width:1000px){.site-header nav{gap:12px;font-size:11px}.site-header{padding:0 20px}.invitation-grid{gap:40px}.prev{left:12px}.next{right:12px}.person-copy{padding-right:40px}.event-grid{gap:20px}.story-photo{max-width:820px}}
@media(max-width:700px){body{font-size:13px}.wrap{width:calc(100% - 36px)}.site-header{height:58px;padding:0 18px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:58px;left:0;right:0;padding:22px;background:white;flex-direction:column;align-items:stretch;font-size:13px;box-shadow:0 12px 20px #18397215}.site-header nav.open{display:flex}.hero{min-height:720px;min-height:calc(100svh - 58px);background-image:url('assets/bannerBg1-portrait.webp');padding:90px 30px}.hero-content{max-width:340px}.hero h1{font-size:48px}.hero .eyebrow{font-size:12px}.bride-name:before{width:55px;height:40px;margin-right:5px}.date-paper{font-size:24px;padding:12px 42px 18px;margin-top:32px}.save-date{font-size:19px;padding:15px 25px}.section{padding:65px 0}h2{font-size:30px;margin-bottom:20px}.invitation-grid{grid-template-columns:1fr;gap:55px}.invitation-photo{width:275px}.invitation-date .invitation-date-title{font-size:25px}.invitation-copy{padding:0 8px}.invitation-copy>p{font-size:12px}.deco{width:95px;height:80px}.button-row{gap:12px;margin-top:25px}.button{padding:11px 20px}.couple{background-size:auto 100%;padding:85px 0}.couple-wrap{gap:65px}.person,.person.bride{flex-direction:column}.groom .portrait{order:-1}.portrait,.bride .portrait{width:220px;margin:0;z-index:2}.person-copy,.bride .person-copy{margin:-30px 0 0;padding:55px 25px 25px;text-align:center}.person-copy h2{font-size:46px}.person-copy .eyebrow{font-size:11px}.story .narrow{padding:0 8px}.story-photo{width:calc(100% - 36px);margin-top:32px}.story-photo img{aspect-ratio:4/3}.timeline h2{margin-bottom:40px}.milestone,.milestone:nth-child(even){flex-direction:column;margin-bottom:55px;min-height:0}.milestone-photo{width:90%}.milestone-copy,.milestone:nth-child(even) .milestone-copy{width:100%;margin:-20px 0 0;padding:45px 24px 28px;text-align:center}.milestone-copy>img{margin:0 auto 12px}.milestone-copy h3{font-size:25px}.milestone-copy p{font-size:12px}.album-stage{margin-top:30px}.album-photo{aspect-ratio:4/5}.album-arrow{width:34px;height:34px;font-size:26px}.album-thumbs{gap:9px}.album-thumbs button{width:40px;height:48px;border-radius:5px}.event-grid{grid-template-columns:1fr;gap:90px;margin:95px auto 30px;max-width:290px}.event-card{padding:0 25px 25px}.event-card .event-art{width:145px;height:105px}.event-card>p:last-of-type{min-height:0;font-size:12px}.event-card .button{font-size:11px}.event-card .button-row{margin-top:20px}.guestbook{padding:60px 18px;background-position:40% center}.message-form{padding:16px}.gifts{padding:65px 18px 80px;background-position:center;background-size:auto 100%}.gifts .wrap{width:100%}.bank-grid{gap:15px;margin-top:35px}.bank-card{padding:20px 10px}.bank-card h3{font-size:16px}.bank-qr{width:130px}.bank-number{font-size:16px!important}.bank-card .button{padding:9px 10px;font-size:11px}.gift-description{font-size:11px}.countdown{gap:7px}.countdown div{padding:8px 12px}dialog{padding:25px 20px}dialog h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}


.invitation-date .invitation-date-title{font-family:Pacifico,cursive;line-height:1.5;margin-top:0}

