@font-face{font-family:'Birthstone';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/Birthstone-400-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Birthstone';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/Birthstone-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Mea Culpa';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/MeaCulpa-400-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Mea Culpa';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/MeaCulpa-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/PinyonScript-400-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/PinyonScript-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/PlayfairDisplay-400-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/PlayfairDisplay-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Quicksand';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/Quicksand-500-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Quicksand';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/Quicksand-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Dancing Script';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/DancingScript-700-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Dancing Script';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/DancingScript-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/PlayfairDisplay-700-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/PlayfairDisplay-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html[data-locked="1"]{overflow:hidden;height:100%}body{margin:0;background:#f9f1ef;font-family:Quicksand,sans-serif;overflow-x:hidden}.wrap{max-width:500px;margin:0 auto;height:calc(8382px * var(--s,1));position:relative;overflow:hidden}.canvas{position:absolute;left:0;top:0;width:500px;height:8382px;transform-origin:0 0;transform:scale(var(--s,1))}.n{position:absolute}.t{white-space:pre-wrap}.t span{display:block;white-space:inherit}.p img{width:100%;height:100%;object-fit:cover;display:block}.p.round img{border-radius:50%}.p.dim img{filter:brightness(.9)}.n.m img{width:100%;height:100%;object-fit:contain}.outline span{text-shadow:2px 2px 0 #fff}.outline.w span{text-shadow:-2px -2px 0 #fff}[data-eff]{opacity:0}[data-eff="slide-up"]{transform:translateY(40px) rotate(var(--r,0deg))}[data-eff="slide-left"]{transform:translateX(60px) rotate(var(--r,0deg))}[data-eff="slide-right"]{transform:translateX(-60px) rotate(var(--r,0deg))}[data-eff].in{opacity:1;transform:rotate(var(--r,0deg));transition:opacity 1.3s ease-out var(--d,0s),transform 1.3s ease-out var(--d,0s)}.ov{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.4);display:grid;place-content:center;gap:18px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;animation:opening-envelope-fade-in .5s both}@keyframes opening-envelope-fade-in{from{opacity:0}to{opacity:1}}.aec{position:relative;width:234px;height:156px;transition:transform .12s}.ov.press .aec{transform:scale(.95)}.env-shadow{position:absolute;inset:0;border-radius:0 0 6px 6px;box-shadow:0 4px 20px rgba(0,0,0,.2)}.env-container{position:absolute;inset:0;background:#812927;border-radius:0 0 6px 6px;animation:float 3s ease-in-out infinite;perspective:800px}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-19px)}}.front{position:absolute;inset:0}.pocket{background:#A33F3D;clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);border-radius:0 0 6px 6px;z-index:3}.pocket::after{content:"";position:absolute;inset:0;background:#a84644;clip-path:polygon(0 100%,50% 58%,100% 100%)}.flap{background:#812927;clip-path:polygon(0 0,100% 0,50% 60%);transform-origin:50% 0;z-index:4;transition:transform 1.2s cubic-bezier(.25,.46,.45,.94),z-index 1.2s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.wax{position:absolute;left:50%;top:78px;width:30px;height:30px;translate:-50% -50%;z-index:5;transition:opacity .3s}.wax img{width:100%;height:100%;display:block}.letter{position:absolute;left:12px;top:8px;width:211px;height:140px;background:#fff;border-radius:6px;box-shadow:0 4px 30px rgba(0,0,0,.2);overflow:hidden;z-index:2;transition:transform 1s cubic-bezier(.25,.46,.45,.94) .5s,z-index .5s}.letter img{width:100%;height:100%;object-fit:cover;object-position:50% 34%;display:block}.hearts{position:absolute;left:0;right:0;top:66px;z-index:1}.h{position:absolute;left:50%;width:22px;height:20px;background:url("img/heart.svg") center/contain no-repeat;opacity:0}.env-container.open .flap{transform:rotateX(-150deg);z-index:1}.env-container.open .wax{opacity:0}.env-container.open .letter{transform:translateY(-118px) scale(1.12);z-index:6}.env-container.open .h{animation:heartFloat 4s cubic-bezier(.25,.46,.45,.94) forwards,heartScale .5s cubic-bezier(.68,-.55,.265,1.55) forwards}.h.a1{animation-delay:1.2s!important;margin-left:-40px}.h.a2{animation-delay:1.4s!important;margin-left:8px}.h.a3{animation-delay:1.6s!important;margin-left:-8px}@keyframes heartFloat{from{transform:translateY(0)}to{transform:translateY(-180px)}}@keyframes heartScale{from{opacity:0}to{opacity:1}}.hint{margin:0;text-align:center;font:500 14px Quicksand,sans-serif;color:#fff;animation:opening-envelope-rise-up .6s .3s both}@keyframes opening-envelope-rise-up{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:translateY(0)}}.ov.away .aec,.ov.away .hint{animation:opening-envelope-rise-away .5s forwards}@keyframes opening-envelope-rise-away{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-34px)}}.ov.away{animation:opening-envelope-bg-fade-out .5s .3s forwards;pointer-events:none}@keyframes opening-envelope-bg-fade-out{to{opacity:0;visibility:hidden}}#envSlot{width:100%;height:100%;background:#812927;border-radius:4px;position:relative;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.14)}#envSlot::before{content:"";position:absolute;inset:0;background:#A33F3D;clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}#envSlot::after{content:"";position:absolute;inset:0;background:#a84644;clip-path:polygon(0 100%,50% 55%,100% 100%)}#envSlot .slotwax{position:absolute;left:50%;top:55%;width:56px;height:56px;translate:-50% -50%;z-index:3;object-fit:contain}.slotshadow{width:100%;height:100%;background:radial-gradient(ellipse at center,rgba(0,0,0,.14),transparent 70%)}.cd{display:flex;gap:20px;height:100%}.cd div{flex:1;background:#a3403d;border-radius:8px;color:#fff;font:500 14px Arial;display:grid;place-content:center;gap:2px;text-align:center;opacity:.92}.cd b{font-size:20px;font-weight:500}.cd i{font-style:normal}.glass{width:100%;height:100%;background:rgba(255,255,255,.74);border-radius:6px}.vline{width:2px;height:100%;background:#8b2f30;margin:0 auto}.hr{width:100%;height:100%;background:#c9b7b7}.mapframe{width:100%;height:100%;border:1px solid #d9c4c4;background:#fff}.map{display:block;width:100%;height:100%;background:linear-gradient(135deg,#eef3ee,#e6eef7);position:relative;text-decoration:none;overflow:hidden}.map::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 60px,#dfe6df 60px 62px),repeating-linear-gradient(0deg,transparent 0 52px,#dfe6df 52px 54px)}.maps{position:absolute;left:14px;top:14px;background:#fff;color:#1a73e8;font:600 14px Arial;padding:8px 12px;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.2)}.pin{position:absolute;left:50%;top:44%;translate:-50% -100%;font-size:40px}.maplbl{position:absolute;left:0;right:0;bottom:0;padding:10px;background:#fff;color:#333;font:500 12px Quicksand,sans-serif;text-align:center}.pinkblock{width:100%;height:100%;background:#E8C4C4}.rectline{width:100%;height:100%;border:1px solid #8b2f30}.rectline.strong{border-width:2px}.rectline.white{border-color:#fff}.pinktab{width:100%;height:100%;background:#E8B4B8}.n.m .hearts3{position:relative;width:100%;height:100%}.n.m .hearts3 img{position:absolute;width:28px;height:26px;object-fit:contain}.n.m .hearts3 img:nth-child(1){left:10px;top:40px;transform:rotate(-16deg)}.n.m .hearts3 img:nth-child(2){left:48px;top:8px;width:36px;height:33px}.n.m .hearts3 img:nth-child(3){left:94px;top:46px;transform:rotate(14deg)}.cal{width:100%;height:100%;border:1px solid #834343;padding:14px;background:rgba(255,255,255,.72)}.calg{display:grid;grid-template-columns:repeat(7,1fr);row-gap:10px;text-align:center;font:500 15px Quicksand,sans-serif;color:#333}.calg i{font-style:normal;display:grid;place-items:center;height:26px}.calg i.mark{position:relative;isolation:isolate;color:#fff;font-weight:600}.calg i.mark::before{content:"";position:absolute;width:34px;height:32px;left:50%;top:50%;translate:-50% -50%;background:url("img/heart-red.svg") center/contain no-repeat;z-index:-1}.tline{width:2px;height:100%;background:#999;margin-left:112px}.rsvp{width:100%;min-height:100%;background:#fff;border:1px solid #e0e0e0;border-radius:5px;box-shadow:0 2px 10px rgba(0,0,0,.1);padding:16px;font:14px Arial;color:#333;display:grid;gap:8px;align-content:start}.rsvp h4{margin:0 0 4px;font:600 18px Arial;text-align:center}.rsvp label{display:grid;gap:4px;font-size:14px}.rsvp input:not([type=radio]),.rsvp select{height:40px;border:1px solid #d9d9d9;border-radius:6px;padding:0 12px;font:14px Arial;color:#333;background:#fff;width:100%}.rsvp select{-webkit-appearance:none;appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23666' fill='none' stroke-width='1.6'/></svg>") right 12px center/12px 8px no-repeat}.rsvp p{margin:4px 0 0}.rsvp .r{display:flex;align-items:center;gap:8px}.rsvp button{margin-top:6px;height:46px;border:0;border-radius:8px;background:#e49696;color:#fff;font:600 15px Arial}.rsvp .msg{font-size:12px;color:#e49696;text-align:center;font-style:normal}.graycard{width:100%;height:100%;background:#d9d9d9;border-radius:40px}.qrcard{width:100%;height:100%;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.music{position:fixed;right:20px;top:20px;z-index:40;width:50px;height:50px;border-radius:50%;border:2px solid #e49696;background:#fff;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .4s}html:not([data-locked="1"]) .music{opacity:1;pointer-events:auto}.music span{position:absolute;inset:8px;border-radius:50%;background:repeating-radial-gradient(#e49696 0 2px,#fff 2px 5px)}.music span::after{content:"";position:absolute;inset:11px;border-radius:50%;background:#e49696}.music[aria-pressed="true"] span{animation:spin 3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}[data-eff]{opacity:1;transform:rotate(var(--r,0deg))}}