@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a1e5f881e1ca6a9a-s.3pa-xep11snzp.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2efc0c479abd2474-s.3392eipp7sc2y.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../media/70963ccca14000df-s.1abvn15b18zwh.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9a146d0fd3ff96e4-s.p.0uz2jod5i5o--.woff2)format("woff2");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:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0474ff9f7224a0da-s.0_u-iv5ddry8l.woff2)format("woff2");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:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f48d461c03e0a8ec-s.p.0_9p4dezmmbbg.woff2)format("woff2");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}@font-face{font-family:Great Vibes Fallback;src:local(Arial);ascent-override:124.79%;descent-override:58.8%;line-gap-override:0.0%;size-adjust:68.19%}.great_vibes_89b350c0-module__AaxMhW__className{font-family:Great Vibes,Great Vibes Fallback;font-style:normal;font-weight:400}.great_vibes_89b350c0-module__AaxMhW__variable{--ff-script:"Great Vibes", "Great Vibes Fallback"}
@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:300 700;font-display:swap;src:url(../media/d8cddd76dbfeaef0-s.2dbc-et3k6kfe.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:300 700;font-display:swap;src:url(../media/591574edbe85c69b-s.0slbgzy4000md.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:300 700;font-display:swap;src:url(../media/acf349172f10b359-s.p.0d4lnz92g9ol4.woff2)format("woff2");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:Cormorant Garamond;font-style:italic;font-weight:300 700;font-display:swap;src:url(../media/0926c12c4384550f-s.253cfg7mpxmwg.woff2)format("woff2");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:Cormorant Garamond;font-style:italic;font-weight:300 700;font-display:swap;src:url(../media/8bd76523131fa0fc-s.p.273-hd1b-0-z9.woff2)format("woff2");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}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/9cc5c0547f229dea-s.26a4qkxezf9-r.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/b0947914c9718a1e-s.1hzlq6xrrxf6u.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/d0b60be57f16ee32-s.p.33on4mq75bz97.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/1f9e983605289f29-s.2xsoqmjk136f4.woff2)format("woff2");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:Cormorant Garamond;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/01e4147cff8141ee-s.p.0v7knm2wof07y.woff2)format("woff2");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}@font-face{font-family:Cormorant Garamond Fallback;src:local(Times New Roman);ascent-override:95.27%;descent-override:29.59%;line-gap-override:0.0%;size-adjust:96.98%}.cormorant_garamond_55f981b4-module__Ne5Yqq__className{font-family:Cormorant Garamond,Cormorant Garamond Fallback}.cormorant_garamond_55f981b4-module__Ne5Yqq__variable{--ff-serif:"Cormorant Garamond", "Cormorant Garamond Fallback"}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5f841e19a104a2f1-s.p.2ia5k3t--_4xp.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/6d62c74c8e468ef4-s.0sokxvbh80il3.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/9d978ba009f47915-s.p.1p2xad7_-sbqy.woff2)format("woff2");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}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53e45098eac42afb-s.p.0udrnr4-18tjo.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/85ea1b3aadcead52-s.18lx4otehud-r.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3c285486269019b7-s.p.1br53b7gww62p.woff2)format("woff2");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}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/625a092f804baad3-s.p.3bgaltqld2gq2.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6afabefbb32d7517-s.0mlt1uo-cplt-.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a4f4f75ad654963f-s.p.22m3f6pvfu2zf.woff2)format("woff2");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}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a3bcb02a0e9e5d11-s.p.35qbt1_6db49h.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b35fd19aef91b293-s.1-vmsm_v03uvy.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8f46d218c8f79e34-s.p.092z1_2w2m55_.woff2)format("woff2");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}@font-face{font-family:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}.be_vietnam_pro_e700c1af-module__MdOK8q__className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.be_vietnam_pro_e700c1af-module__MdOK8q__variable{--ff-sans:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
:root{--son:#8c1c22;--son-dark:#5e0f15;--son-light:#b23a3f;--kim:#c9a45c;--kim-light:#ebd6a4;--giay:#fbf5ee;--giay-2:#fffbf6;--muc:#3a1f1c;--muc-nhat:#7d6259;--vien:#e6d3c4;--petal:#c4545b;--font-script:var(--ff-script,"Great Vibes"), "Dancing Script", cursive;--font-serif:var(--ff-serif,"Cormorant Garamond"), "Times New Roman", Georgia, serif;--font-sans:var(--ff-sans,"Be Vietnam Pro"), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-hy:"Noto Serif TC", "PingFang TC", "Microsoft JhengHei", "Noto Serif CJK TC", serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-io:cubic-bezier(.65, 0, .35, 1);--col:480px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-serif);color:var(--muc);background-color:var(--son-dark);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23C9A45C' stroke-opacity='.16'%3E%3Cpath d='M28 8 48 28 28 48 8 28Z'/%3E%3Ccircle cx='28' cy='28' r='4'/%3E%3Ccircle cx='0' cy='0' r='4'/%3E%3Ccircle cx='56' cy='0' r='4'/%3E%3Ccircle cx='0' cy='56' r='4'/%3E%3Ccircle cx='56' cy='56' r='4'/%3E%3C/g%3E%3C/svg%3E");margin:0}body.is-locked{height:100svh;overflow:hidden}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--kim);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}.cover{z-index:100;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(ellipse 70% 55% at 50% 42%, #b23a3f8c, transparent 70%), var(--son-dark);transition:opacity .9s var(--ease-out), visibility 0s linear .9s;background-image:radial-gradient(70% 55% at 50% 42%,#b23a3f8c,#0000 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23C9A45C' stroke-opacity='.14'%3E%3Cpath d='M28 8 48 28 28 48 8 28Z'/%3E%3Ccircle cx='28' cy='28' r='4'/%3E%3C/g%3E%3C/svg%3E");place-items:center;display:grid;position:fixed;inset:0}.cover.is-leaving{opacity:0;visibility:hidden}.cover-inner{text-align:center;justify-items:center;gap:26px;display:grid}.cover-kicker{font:500 12px/1 var(--font-sans);letter-spacing:.34em;text-transform:uppercase;color:var(--kim);margin:0}.cover-names{font:400 clamp(36px, 10vw, 50px)/1.15 var(--font-script);color:var(--kim-light);text-wrap:balance;margin:-10px 0 0}.cover-kicker,.cover-names{transition:opacity .45s var(--ease-out), transform .45s var(--ease-out)}.cover.is-open .cover-kicker,.cover.is-open .cover-names{opacity:0;transform:translateY(-10px)}.cover-names .amp{font-family:var(--font-serif);color:var(--kim);padding:0 .15em;font-size:.55em;font-style:italic}.cover-hint{font:400 13px/1.4 var(--font-sans);letter-spacing:.08em;color:var(--kim-light);opacity:.85;margin:0;animation:2.4s ease-in-out infinite hint}@keyframes hint{0%,to{opacity:.45}50%{opacity:1}}.cover.is-open .cover-hint{opacity:0;transition:opacity .3s;animation:none}.env{aspect-ratio:7/5;cursor:pointer;perspective:1400px;filter:drop-shadow(0 22px 34px #1402048c);-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:min(84vw,360px);padding:0;display:block;position:relative}.env>span{display:block;position:absolute}.env-back{background:linear-gradient(#6e1118,#4f0b10);border-radius:6px;inset:0}.env-card{z-index:2;background:var(--giay);transition:transform 1s var(--ease-out) .55s;border-radius:4px;flex-direction:column;align-items:center;gap:0;padding-top:6%;inset:7% 6% 5%;box-shadow:0 -2px 12px #0000002e;display:flex!important}.env-card-hy{font:700 22px/1 var(--font-hy);color:var(--son)}.env-card-names{font:400 clamp(22px, 6.4vw, 28px)/1.3 var(--font-script);color:var(--son);white-space:nowrap}.env-card-date{font:500 11px/1 var(--font-sans);letter-spacing:.28em;color:var(--muc-nhat)}.env-front{z-index:3;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:linear-gradient(165deg,#a8272f,#7a151c);border-radius:6px;inset:0}.env-front svg,.env-flap svg{width:100%;height:100%;position:absolute;inset:0}.env-flap{z-index:4;transform-origin:50% 0;clip-path:polygon(0 0,100% 0,50% 100%);height:56%;transition:transform .85s var(--ease-io), z-index 0s linear .42s;background:linear-gradient(#b8363f,#8c1c22);top:0;left:0;right:0}.env-guest{z-index:4;color:var(--kim-light);flex-direction:column;align-items:center;gap:0;transition:opacity .35s;bottom:7%;left:10%;right:10%;display:flex!important}.env-guest small{font:500 10px/1 var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--kim)}.env-guest strong{font:400 clamp(22px, 6.6vw, 28px)/1.35 var(--font-script);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:400;overflow:hidden}.env-seal{aspect-ratio:1;z-index:5;width:clamp(54px,15vw,64px);font:700 clamp(24px, 7vw, 30px)/1 var(--font-hy);color:var(--son-dark);transition:transform .5s var(--ease-out), opacity .45s;background:radial-gradient(circle at 34% 30%,#f6e4b4,#d2ae66 48%,#9d7a35 100%);border-radius:50%;place-items:center;top:56%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 10px #00000059,inset 0 0 0 3px #ffffff38,inset 0 0 0 5px #8c1c222e;display:grid!important}@media (hover:hover){.env:hover .env-seal{transform:translate(-50%,-50%)scale(1.06)}}.cover.is-open .env-seal{opacity:0;transform:translate(-50%,-50%)scale(1.3)}.cover.is-open .env-flap{z-index:1;transform:rotateX(180deg)}.cover.is-open .env-card{transform:translateY(-70%)}.cover.is-open .env-guest{opacity:0}.page{max-width:var(--col);background-color:var(--giay);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .3 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");margin:0 auto;position:relative;overflow:hidden}@media (min-width:560px){.page{box-shadow:0 0 0 1px #c9a45c59,0 30px 90px #1402048c}}[data-reveal]{opacity:0;transition:opacity .9s var(--ease-out) var(--d,0s), transform 1.05s var(--ease-out) var(--d,0s)}[data-reveal=up]{transform:translateY(22px)}[data-reveal=left]{transform:translate(-26px)}[data-reveal=right]{transform:translate(26px)}[data-reveal=zoom]{transform:scale(.92)}[data-reveal=arch]{transition:opacity 1.2s var(--ease-out) var(--d,0s)}[data-reveal=arch]>*{clip-path:inset(100% 0 0);transition:clip-path 1.5s var(--ease-io) var(--d,0s)}[data-reveal].in{opacity:1;transform:none}[data-reveal=arch].in>*{clip-path:inset(0)}.sec{padding:80px 24px 0}.sec-head{text-align:center;margin:0 0 34px}.sec-title{font:400 clamp(40px, 11.5vw, 52px)/1.1 var(--font-script);color:var(--son);margin:0}.sec-sub{text-wrap:balance;max-width:30ch;font:italic 400 18px/1.5 var(--font-serif);color:var(--muc-nhat);margin:4px auto 0}.divider{max-width:210px;color:var(--kim);justify-content:center;align-items:center;gap:10px;margin:14px auto 0;display:flex}.divider span{background:linear-gradient(90deg, transparent, var(--kim));flex:1;height:1px}.divider span:last-child{background:linear-gradient(90deg, var(--kim), transparent)}.divider svg{flex:none;width:38px;height:19px}.btn{border:1px solid var(--son);min-height:44px;color:var(--son);font:500 14px/1.2 var(--font-sans);letter-spacing:.02em;cursor:pointer;transition:background-color .3s, color .3s, transform .3s var(--ease-out), box-shadow .3s;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 22px;text-decoration:none;display:inline-flex}.btn svg{width:16px;height:16px}.btn-solid{background:var(--son);color:var(--giay)}.btn-block{width:100%}@media (hover:hover){.btn:hover{background:var(--son);color:var(--giay);transform:translateY(-2px);box-shadow:0 8px 18px #8c1c2238}.btn-solid:hover{background:var(--son-light)}}.btn:disabled{opacity:.6;cursor:wait;transform:none}.hero{text-align:center;padding:52px 24px 8px}.hero-kicker{font:500 12px/1 var(--font-sans);letter-spacing:.34em;text-transform:uppercase;color:var(--son);margin:0}.hero-frame{border:1px solid var(--kim);border-radius:999px 999px 22px 22px;width:min(100%,330px);margin:26px auto 0;padding:8px}.hero-photo{aspect-ratio:3/4.1;background:var(--vien);border-radius:999px 999px 15px 15px;position:relative;overflow:hidden}.parallax-layer{will-change:transform;width:100%;height:118%;position:absolute;top:-9%;left:0}.img-cover{object-fit:cover}.hero-names{margin:26px 0 0;font-weight:400}.hn{font:400 clamp(54px, 16vw, 70px)/1.05 var(--font-script);color:var(--son);display:block}.hn-amp{font:italic 400 30px/1 var(--font-serif);color:var(--kim);margin:-4px 0 -2px;display:block}.datelock{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;max-width:320px;margin:26px auto 0;display:grid}.dl-side{border-top:1px solid var(--kim);border-bottom:1px solid var(--kim);font:500 11.5px/1.55 var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muc-nhat);place-content:center;align-self:stretch;padding:9px 0;display:grid}.dl-day{font:500 66px/1 var(--font-serif);color:var(--son);font-variant-numeric:lining-nums}.hero-lunar{font:italic 400 17px/1.5 var(--font-serif);color:var(--muc-nhat);margin:14px 0 0}.scroll-cue{width:40px;height:40px;color:var(--kim);place-items:center;margin-top:22px;text-decoration:none;display:inline-grid}.scroll-cue svg{width:18px;height:18px;animation:cue 2.2s var(--ease-io) infinite}@keyframes cue{0%,to{opacity:.5;transform:translateY(-3px)}50%{opacity:1;transform:translateY(4px)}}.letter{text-align:center;padding-top:64px}.families{grid-template-columns:1fr 1fr;gap:18px;display:grid}.family-label{font:600 12px/1 var(--font-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--son);margin:0 0 10px}.family p{font:500 17px/1.5 var(--font-serif);margin:0}.family .family-addr{text-wrap:balance;font:italic 400 15px/1.45 var(--font-serif);color:var(--muc-nhat);margin-top:8px}.hy{font:700 46px/1 var(--font-hy);color:var(--son);margin:34px auto 22px}.announce{text-wrap:balance;max-width:28ch;font:italic 400 19px/1.55 var(--font-serif);color:var(--muc-nhat);margin:0 auto}.pair{justify-items:center;gap:2px;margin:22px 0 0;display:grid}.pair-role{font:500 11px/1 var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--muc-nhat);display:block}.pair-name{font:400 clamp(38px, 10.5vw, 46px)/1.2 var(--font-script);color:var(--son);margin-top:4px;display:block}.pair-amp{font:italic 400 26px/1 var(--font-serif);color:var(--kim);margin:6px 0}.invite-lead{font:500 12px/1 var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--son);margin:34px 0 0}.guest-name{font:400 clamp(34px, 9.5vw, 42px)/1.25 var(--font-script);color:var(--muc);margin:8px 0 0}.invite-text{text-wrap:pretty;max-width:32ch;font:400 19px/1.65 var(--font-serif);margin:12px auto 0}.couple-grid{grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}.portrait{text-align:center;margin:0}.portrait--low{margin-top:44px}.portrait-arch{border:1px solid var(--kim);border-radius:999px 999px 14px 14px;padding:5px}.portrait-arch div{aspect-ratio:3/4.3;background:var(--vien);border-radius:999px 999px 10px 10px;position:relative;overflow:hidden}.portrait-arch img{object-fit:cover;transition:transform 1.2s var(--ease-out)}@media (hover:hover){.portrait:hover .portrait-arch img{transform:scale(1.05)}}.portrait figcaption{margin-top:14px}.portrait-role{font:500 11px/1 var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--muc-nhat);display:block}.portrait-name{font:400 clamp(32px, 9vw, 40px)/1.15 var(--font-script);color:var(--son);margin-top:4px;display:block}.portrait-bio{text-wrap:balance;font:italic 400 15.5px/1.45 var(--font-serif);color:var(--muc-nhat);margin-top:6px;display:block}.event-list{gap:20px;display:grid}.event{text-align:center;background:var(--giay-2);border:1px solid var(--vien);outline:1px solid var(--kim);outline-offset:-9px;padding:36px 24px 30px;position:relative}.corner{width:30px;height:30px;color:var(--kim);position:absolute}.corner.tl{top:4px;left:4px}.corner.tr{top:4px;right:4px;transform:scaleX(-1)}.corner.bl{bottom:4px;left:4px;transform:scaleY(-1)}.corner.br{bottom:4px;right:4px;transform:scale(-1)}.event-title{font:600 13px/1 var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--son);margin:0}.event-time{font:500 50px/1 var(--font-serif);color:var(--muc);font-variant-numeric:lining-nums;margin:14px 0 0}.event-date{font:500 18px/1.4 var(--font-serif);margin:10px 0 0}.event-lunar{font:italic 400 16px/1.4 var(--font-serif);color:var(--muc-nhat);margin:2px 0 0}.event-rule{background:var(--kim);width:48px;height:1px;margin:18px auto}.event-place{font:600 20px/1.3 var(--font-serif);color:var(--son);margin:0}.event-hall{font:500 16px/1.4 var(--font-serif);margin:4px 0 0}.event-addr{text-wrap:balance;max-width:30ch;font:400 13.5px/1.55 var(--font-sans);color:var(--muc-nhat);margin:6px auto 0}.event .btn{margin-top:18px}.cal{background:var(--giay-2);border:1px solid var(--vien);border-radius:20px;padding:22px 16px 18px}.cal-head{text-align:center;font:500 22px/1.2 var(--font-serif);color:var(--son);margin:0 0 14px}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);row-gap:4px;display:grid}.cal-dow{font:500 11px/1 var(--font-sans);letter-spacing:.06em;color:var(--muc-nhat);padding-bottom:8px}.cal-dow:last-child,.cal-day.sun{color:var(--son)}.cal-day{height:40px;font:500 17px/1 var(--font-serif);font-variant-numeric:lining-nums;place-items:center;display:grid;position:relative}.cal-day.is-wedding{color:var(--giay);font-weight:600}.cal-day.is-wedding:before{content:"";z-index:0;background:var(--son);animation:beat 1.8s var(--ease-io) infinite;position:absolute;inset:3px 2px 1px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29'%3E%3Cpath d='M16 29 2.7 15.6A8.3 8.3 0 0 1 14.4 3.9L16 5.5l1.6-1.6a8.3 8.3 0 0 1 11.7 11.7Z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29'%3E%3Cpath d='M16 29 2.7 15.6A8.3 8.3 0 0 1 14.4 3.9L16 5.5l1.6-1.6a8.3 8.3 0 0 1 11.7 11.7Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.cal-day.is-wedding span{z-index:1;margin-top:-2px;position:relative}@keyframes beat{0%,to{transform:scale(1)}14%{transform:scale(1.14)}28%{transform:scale(1)}42%{transform:scale(1.09)}}.countdown{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px;display:grid}.cd-cell{text-align:center;border-top:1px solid var(--kim);border-bottom:1px solid var(--kim);padding:12px 0 10px}.cd-num{font:500 36px/1 var(--font-serif);color:var(--son);font-variant-numeric:lining-nums tabular-nums;display:block}.cd-lbl{font:400 11.5px/1 var(--font-sans);letter-spacing:.08em;color:var(--muc-nhat);margin-top:6px;display:block}.cd-done{text-align:center;font:italic 400 19px/1.5 var(--font-serif);color:var(--son);margin:22px 0 0}.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(110px,33vw,150px);grid-auto-flow:dense;gap:8px;display:grid}.g-item{cursor:zoom-in;background:var(--vien);border:0;border-radius:10px;padding:0;position:relative;overflow:hidden}.g-item.t{grid-row:span 2}.g-item.w{grid-area:span 2/span 2}.g-item{width:100%;height:100%;display:block}.g-item img{object-fit:cover;transition:transform .9s var(--ease-out)}@media (hover:hover){.g-item:hover img{transform:scale(1.05)}}.lightbox{z-index:90;opacity:0;transition:opacity .3s var(--ease-out);touch-action:pan-y;background:#220609f0;place-items:center;display:grid;position:fixed;inset:0}.lightbox.is-open{opacity:1}.lb-img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:6px;width:auto;max-width:92vw;height:auto;max-height:80svh;box-shadow:0 20px 60px #00000080}.lb-img.swap{animation:lbin .45s var(--ease-out)}@keyframes lbin{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.lb-btn{width:46px;height:46px;color:var(--kim-light);cursor:pointer;background:#5e0f158c;border:1px solid #ebd6a480;border-radius:50%;place-items:center;display:grid;position:absolute}.lb-btn svg{width:20px;height:20px}.lb-close{top:calc(14px + env(safe-area-inset-top));right:14px}.lb-prev{top:50%;left:12px;transform:translateY(-50%)}.lb-next{top:50%;right:12px;transform:translateY(-50%)}.lb-count{bottom:calc(18px + env(safe-area-inset-bottom));text-align:center;font:400 13px/1 var(--font-sans);letter-spacing:.14em;color:var(--kim-light);position:absolute;left:0;right:0}.map{aspect-ratio:4/3.4;border:1px solid var(--vien);background:var(--giay-2);border-radius:18px;position:relative;overflow:hidden}.map iframe{filter:sepia(.12)saturate(.9);border:0;width:100%;height:100%;position:absolute;inset:0}.map-actions{text-align:center;margin-top:16px}.form{gap:18px;display:grid}.field{border:0;gap:7px;min-width:0;margin:0;padding:0;display:grid}.field label,.field legend{font:500 13px/1.3 var(--font-sans);color:var(--muc-nhat);padding:0}.field legend{margin-bottom:7px}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.input{border:1px solid var(--vien);background:var(--giay-2);width:100%;min-height:48px;font:400 16px/1.4 var(--font-sans);color:var(--muc);appearance:none;border-radius:12px;padding:12px 14px;transition:border-color .25s,box-shadow .25s}select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 8 5 5 5-5' fill='none' stroke='%237D6259' stroke-width='1.6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}textarea.input{resize:vertical;min-height:96px}.input:focus{border-color:var(--kim);outline:none;box-shadow:0 0 0 3px #c9a45c47}.input[aria-invalid=true]{border-color:var(--son)}.choices{flex-wrap:wrap;gap:8px;display:flex}.choice{position:relative}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice span{border:1px solid var(--vien);background:var(--giay-2);min-height:42px;font:400 14px/1.2 var(--font-sans);border-radius:999px;align-items:center;padding:9px 16px;transition:background-color .25s,color .25s,border-color .25s;display:inline-flex}.choice input:checked+span{background:var(--son);border-color:var(--son);color:var(--giay)}.choice input:focus-visible+span{outline:2px solid var(--kim);outline-offset:2px}.form-error{min-height:1em;font:400 13.5px/1.4 var(--font-sans);color:var(--son);margin:0}.form-error:empty{display:none}.form-done{text-align:center;background:var(--giay-2);border:1px solid var(--vien);border-radius:18px;padding:28px 20px}.form-done:focus{outline:none}.form-done-title{font:400 38px/1.2 var(--font-script);color:var(--son);margin:0}.form-done p{max-width:30ch;font:400 18px/1.55 var(--font-serif);margin:8px auto 18px}.wishes{margin-top:44px}.wishes-title{text-align:center;font:400 36px/1.2 var(--font-script);color:var(--son);margin:0 0 16px}.wish-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--kim) transparent;gap:16px;max-height:380px;margin:0;padding:0 4px 0 0;list-style:none;display:grid;overflow:auto}.wish{border-left:2px solid var(--kim);padding:2px 0 2px 16px}.wish.is-new{animation:wishin .8s var(--ease-out)}@keyframes wishin{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.wish-name{font:600 17px/1.3 var(--font-serif);color:var(--son);margin:0}.wish-msg{font:400 17px/1.55 var(--font-serif);margin:3px 0 0}.gift-grid{gap:16px;display:grid}.gift-card{background:var(--giay-2);border:1px solid var(--vien);border-radius:18px;grid-template-columns:118px 1fr;align-items:center;gap:16px;padding:16px;display:grid}.qr{border:1px solid var(--vien);object-fit:contain;background:#fff;border-radius:12px;width:118px;height:118px;padding:6px}.gift-who{font:600 11px/1 var(--font-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--son);margin:0}.gift-bank{font:600 18px/1.25 var(--font-serif);margin:8px 0 0}.gift-acc{font:600 16px/1.3 var(--font-sans);letter-spacing:.04em;font-variant-numeric:tabular-nums;word-break:break-all;margin:4px 0 0}.gift-acc.is-empty{font:italic 400 15px/1.4 var(--font-serif);letter-spacing:0;color:var(--muc-nhat);word-break:normal}.gift-holder{font:400 12.5px/1.4 var(--font-sans);color:var(--muc-nhat);margin:2px 0 0}.gift-card .btn{min-height:36px;margin-top:10px;padding:7px 14px;font-size:12.5px}.thanks{text-align:center;margin-top:88px}.thanks-photo{background:var(--vien);height:clamp(380px,112vw,520px);position:relative;overflow:hidden}.thanks-photo:after{content:"";background:linear-gradient(transparent, var(--giay));height:45%;position:absolute;inset:auto 0 0}.thanks-title{font:400 clamp(66px, 19vw, 84px)/1 var(--font-script);color:var(--son);margin:-58px 0 0;position:relative}.thanks-text{text-wrap:pretty;max-width:32ch;font:400 19px/1.65 var(--font-serif);margin:14px auto 0;padding:0 24px}.thanks-sign{font:400 32px/1.2 var(--font-script);color:var(--muc);margin:22px 0 0}.foot{padding:48px 24px calc(88px + env(safe-area-inset-bottom));text-align:center;font:400 12px/1.6 var(--font-sans);letter-spacing:.2em;color:var(--muc-nhat)}.music{z-index:60;bottom:calc(16px + env(safe-area-inset-bottom));right:max(16px, calc((100vw - var(--col)) / 2 + 16px));cursor:pointer;border:1px solid var(--kim);background:var(--son);width:48px;height:48px;color:var(--kim-light);opacity:0;pointer-events:none;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);border-radius:50%;place-items:center;display:grid;position:fixed;transform:scale(.8);box-shadow:0 10px 24px #3c080c59}.music.is-visible{opacity:1;pointer-events:auto;transform:none}.music svg{width:22px;height:22px}.music .ico-off,.music:not(.is-playing) .ico-on{display:none}.music:not(.is-playing) .ico-off{display:block}.music.is-playing:before{content:"";border:1px solid var(--kim);animation:ring 2.4s var(--ease-out) infinite;border-radius:50%;position:absolute;inset:-1px}@keyframes ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.toast{z-index:95;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));background:var(--muc);color:var(--giay);font:400 14px/1.3 var(--font-sans);opacity:0;pointer-events:none;transition:opacity .3s, transform .3s var(--ease-out);border-radius:999px;padding:11px 18px;position:fixed;transform:translate(-50%,10px);box-shadow:0 10px 30px #00000040}.toast.is-show{opacity:1;transform:translate(-50%)}.petals{z-index:50;pointer-events:none;opacity:0;transition:opacity 2s;position:fixed;inset:0;overflow:hidden}.petals.is-on{opacity:1}.petal{top:-5vh;left:var(--x);animation:fall var(--dur) linear var(--delay) infinite;position:absolute}.petal i{width:var(--s);height:calc(var(--s) * 1.25);background:var(--c);opacity:var(--o);animation:sway var(--sw) ease-in-out infinite alternate;border-radius:100% 0;display:block}@keyframes fall{0%{transform:translate(0,0)}to{transform:translateY(112vh)}}@keyframes sway{0%{transform:translate(-16px)rotate(-30deg)}to{transform:translate(20px)rotate(40deg)}}body.is-hidden .petal,body.is-hidden .petal i{animation-play-state:paused}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal],[data-reveal=arch]>*{opacity:1!important;clip-path:none!important;transform:none!important}.petals,.music:before{display:none}}
