@font-face{font-family:Allura;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/allura-vietnamese-400-normal-DAMfrWGX.woff2)format("woff2"),url(/assets/allura-vietnamese-400-normal-CwDpdm6f.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Allura;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/allura-latin-ext-400-normal-CtccLdDz.woff2)format("woff2"),url(/assets/allura-latin-ext-400-normal-DLMC5cc8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Allura;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/allura-latin-400-normal-4sUZKTf1.woff2)format("woff2"),url(/assets/allura-latin-400-normal-DcxZAN6k.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;background:#b9d5e5;font-family:Allura,cursive}*{box-sizing:border-box}html{background:#edf3f4}body{min-width:320px;min-height:100vh;margin:0}body.door-intro-active{overflow:hidden}.music-toggle{z-index:90;color:#759aaf;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe0;border:1px solid #759aaf47;border-radius:999px;padding:9px 15px;font-size:1.1rem;line-height:1;position:fixed;top:14px;right:max(14px,50vw - 201px);box-shadow:0 5px 18px #35556729}.music-toggle--playing{color:#fff;background:#97bed4e6}button,input,textarea,select{font:inherit}.invitation-shell{background:#b9d5e5;width:100%;max-width:430px;min-height:100svh;margin:0 auto;overflow-x:clip}.door-intro{z-index:100;perspective:1400px;background:0 0;width:min(100%,430px);animation:.45s 4.65s forwards door-intro-fade;position:fixed;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.door-intro__panel{z-index:1;backface-visibility:hidden;will-change:transform;width:50%;position:absolute;top:0;bottom:0;overflow:hidden}.door-intro__panel img{object-fit:cover;width:200%;max-width:none;height:100%;position:absolute;top:0}.door-intro__panel--left{transform-origin:0;animation:4.35s cubic-bezier(.65,0,.35,1) .3s forwards door-open-left;left:0}.door-intro__panel--left img{left:0}.door-intro__panel--right{transform-origin:100%;animation:4.35s cubic-bezier(.65,0,.35,1) .3s forwards door-open-right;right:0}.door-intro__panel--right img{right:0}@keyframes door-open-left{to{transform:rotateY(-102deg)}}@keyframes door-open-right{to{transform:rotateY(102deg)}}@keyframes door-intro-fade{to{opacity:0}}@media (prefers-reduced-motion:reduce){.door-intro{animation-duration:.2s;animation-delay:.7s}.door-intro__panel--left,.door-intro__panel--right{animation-duration:.55s;animation-delay:.15s}}.hero{isolation:isolate;background:#a7a29b;border-radius:0 0 50% 50%/0 0 30% 30%;justify-content:center;align-items:center;width:100%;min-height:94svh;display:flex;position:relative;overflow:hidden}.hero__image,.hero__shade{width:100%;height:100%;position:absolute;inset:0}.hero__image{z-index:-2;object-fit:cover;object-position:50% center}.hero__shade{z-index:-1;background:linear-gradient(#11191c59 0%,#0000 27%),linear-gradient(#0000 65%,#0c13157a 100%)}.hero__names{color:#fff;letter-spacing:-.05em;text-align:center;text-shadow:0 2px 14px #00000038;flex-direction:column;align-items:center;margin:0;font-family:Allura,cursive;font-size:clamp(3.7rem,17vw,5.3rem);font-style:italic;font-weight:400;line-height:.67;display:flex;position:absolute;top:clamp(38px,9svh,82px);left:20px;right:20px}.hero__ampersand{margin:.08em 0 .03em;font-size:.64em}.hero__date{color:#fff;text-align:center;text-shadow:0 2px 12px #00000059;font-family:Allura,cursive;font-size:clamp(2.5rem,12vw,3.7rem);font-style:italic;line-height:1;position:absolute;bottom:clamp(65px,11svh,105px);left:24px;right:24px}.invitation-message{color:#fff;text-align:center;background:#b9d5e5;min-height:100svh;padding:clamp(58px,9svh,82px) 34px 64px}.invitation-message__title{margin:0;font-family:Allura,cursive;font-size:clamp(3.1rem,14vw,4.2rem);font-weight:400;line-height:1}.invitation-message__text{max-width:330px;margin:30px auto 0;font-family:Allura,cursive;font-size:clamp(1.6rem,6.8vw,2rem);font-weight:600;line-height:1.35}.calendar{width:100%;max-width:340px;margin:38px auto 0}.calendar__heading{justify-content:space-between;align-items:baseline;margin-bottom:20px;padding:0 4px;font-family:Allura,cursive;font-size:clamp(2.6rem,12vw,3.5rem);line-height:1;display:flex}.calendar__grid{grid-template-columns:repeat(7,1fr);align-items:center;display:grid}.calendar__weekdays{margin-bottom:8px;font-family:Allura,cursive;font-size:1.25rem;font-weight:700}.calendar__days{row-gap:7px;font-family:Allura,cursive;font-size:1.45rem}.calendar__days>span{justify-self:center;place-items:center;width:36px;height:36px;display:grid}.calendar__selected{border:2px solid #fff;border-radius:50%;font-weight:700}.venue-section{isolation:isolate;background:#f4f0e9;min-height:100svh;position:relative}.venue-section__background{z-index:-1;object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.venue-section__hands{--hands-left:-66%;--hands-right:66%;z-index:1;aspect-ratio:3/2;pointer-events:none;width:118%;position:absolute;top:clamp(-205px,-23svh,-170px);left:50%;transform:translate(-50%)}.venue-section__hand{will-change:transform;position:absolute;inset:0}.venue-section__hand img{object-fit:contain;width:100%;height:100%;display:block}.venue-section__hand--left{transform:translateX(var(--hands-left));left:0}.venue-section__hand--right{transform:translateX(var(--hands-right))}.program-section{background:linear-gradient(#0000 0 280px,#fff 280px);min-height:126svh;margin-top:-280px;padding:90px 28px 38px;position:relative;overflow:clip}.program-card{z-index:1;color:#a9c8d9;text-align:center;background:#fff;min-height:105svh;padding:66px 24px 25px;position:relative}.program-card__address h2{margin:0 0 24px;font-size:clamp(3.2rem,14vw,4.2rem);font-weight:400;line-height:.8}.program-card__address p{margin:3px 0;font-size:clamp(1.75rem,7.2vw,2.15rem);font-weight:600;line-height:1.1}.location-button{color:#fff;background:#b9d5e5;border:2px solid #b9d5e5;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:52px;margin-top:24px;padding:10px 26px;font-size:clamp(1.45rem,6vw,1.8rem);line-height:1;text-decoration:none;transition:color .18s,background-color .18s,transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 8px 20px #78a6be3d}.location-button:active{transform:scale(.97);box-shadow:0 4px 12px #78a6be33}@media (hover:hover){.location-button:hover{color:#a9c8d9;background:#fff;transform:translateY(-2px)}}.program-panel{color:#fff;background:#b9d5e5;border-radius:54px 54px 34px 34px;margin-top:34px;padding:35px 22px 42px;position:relative}.program-panel:before,.program-panel:after{z-index:-1;content:"";background:radial-gradient(18px 29px,#b9d5e5 98%,#0000 100%) top/36px 59px round;width:36px;position:absolute;top:34px;bottom:24px}.program-panel:before{left:-18px}.program-panel:after{right:-18px}.program-panel h3{margin:0 0 28px;font-size:clamp(2.55rem,11vw,3.35rem);font-weight:400;line-height:.9}.program-timeline{gap:14px;min-height:540px;padding:7px 0;display:grid;position:relative}.program-timeline:before{content:"";background:#ffffffc7;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.program-timeline__heart-track{z-index:3;pointer-events:none;width:0;position:absolute;top:0;bottom:0;left:50%}.program-timeline__heart{place-items:center;width:48px;height:48px;display:grid;position:sticky;top:50svh;transform:translate(-50%,-50%)}.program-timeline__heart svg{fill:#fff;filter:drop-shadow(0 3px 4px #507f9761);width:42px;height:42px;overflow:visible}.program-event{flex-direction:column;justify-content:center;width:50%;min-height:88px;padding:0 12px;display:flex;position:relative}.program-event--left{text-align:right;justify-self:start}.program-event--right{text-align:left;justify-self:end}.program-event time{font-size:clamp(2rem,8.5vw,2.55rem);line-height:.9}.program-event p{margin:5px 0 0;font-size:clamp(1.15rem,4.9vw,1.45rem);line-height:1}.program-event__dot{z-index:1;background:#fff;border:2px solid #b9d5e5;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;transform:translateY(-50%)}.program-event--left .program-event__dot{right:-5px}.program-event--right .program-event__dot{left:-5px}.wishes-section{color:#fff;background:#fff;padding-top:58px;position:relative;overflow:hidden}.wishes-panel{z-index:1;text-align:center;background:#b9d5e5;border-radius:190px 190px 0 0;width:calc(100% - 44px);min-height:520px;margin:0 auto;padding:82px 28px 52px;position:relative}.wishes-panel h2{margin:0;font-size:clamp(3.3rem,15vw,4.5rem);font-weight:400;line-height:1}.wishes-panel__content{gap:34px;margin-top:38px;display:grid}.wishes-panel p{max-width:315px;margin:0 auto;font-size:clamp(1.4rem,5.8vw,1.75rem);font-weight:600;line-height:1.14}.wishes-section__image{z-index:2;width:108%;height:auto;margin-top:-68px;margin-left:-4%;display:block;position:relative}.closing-section{z-index:4;background:linear-gradient(#0000 0 95px,#fff 95px);margin-top:-95px;padding:0 42px 60px;position:relative}.closing-card{padding:38px;position:relative}.closing-card__frame{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.closing-card__inner{z-index:1;color:#a9c8d9;text-align:center;background:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-height:245px;padding:20px 8px;display:flex;position:relative}.closing-card p{margin:0;font-size:clamp(1.35rem,5.8vw,1.7rem);font-weight:600;line-height:1.1}.closing-card time{margin:20px 0 14px;font-size:clamp(2.8rem,12vw,3.6rem);line-height:1}.music-credit{color:#9ab9ca;text-align:center;max-width:330px;margin:10px auto 0;font-size:.9rem;line-height:1.15}.music-credit a{color:inherit}@media (width>=431px){.invitation-shell{box-shadow:0 0 36px #2d444c26}}
