@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"}
@font-face{font-family:Allison;font-style:normal;font-weight:400;font-display:swap;src:url(../media/68e2818f69593941-s.3606k9ceadtou.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:Allison;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b00ee99e837796b2-s.0epr63b_1g2fo.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:Allison;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2f93d777ada90cf2-s.p.0kdgazuw-jnkg.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:Allison Fallback;src:local(Arial);ascent-override:161.29%;descent-override:68.86%;line-gap-override:0.0%;size-adjust:55.18%}.allison_def0787c-module__VL2jpa__className{font-family:Allison,Allison Fallback;font-style:normal;font-weight:400}.allison_def0787c-module__VL2jpa__variable{--ff-allison:"Allison", "Allison 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}.font-allison{font-size:1.45em;display:inline-block;transform:translateY(.05em);font-family:var(--ff-allison,"Allison"), cursive!important}*,: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;width:min(84vw,360px);transform-style:preserve-3d;filter:drop-shadow(0 22px 34px #1402048c);-webkit-tap-highlight-color:transparent;background:0 0;border:0;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);transform-style:preserve-3d;will-change:transform;transition:transform 1s var(--ease-out) .55s, box-shadow 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;height:56%;transform-style:preserve-3d;will-change:transform;clip-path:polygon(0 0,100% 0,50% 100%);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(-72%)translateZ(48px)scale(1.02);box-shadow:0 25px 50px #00000073}.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{perspective:1200px;grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}.portrait{text-align:center;perspective:1000px;margin:0}.portrait--low{margin-top:44px}.flip-card{cursor:pointer;-webkit-tap-highlight-color:transparent;perspective:1000px;width:100%;position:relative}.flip-card-inner{width:100%;transform-style:preserve-3d;will-change:transform;transition:transform .75s cubic-bezier(.34,1.56,.64,1);position:relative}.flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}@media (hover:hover){.flip-card:hover .flip-card-inner{transform:rotateY(180deg)}}.flip-card-front,.flip-card-back{backface-visibility:hidden;border-radius:999px 999px 14px 14px;width:100%}.flip-card-front{z-index:2;position:relative;transform:rotateY(0)}.flip-card-back{z-index:1;border:1px solid var(--kim);box-sizing:border-box;text-align:center;background:radial-gradient(circle at 50% 28%,#fffdfa,#f7ede5);flex-direction:column;justify-content:space-between;align-items:center;padding:8px;display:flex;position:absolute;inset:0;transform:rotateY(180deg);box-shadow:0 12px 28px #5e0f151f}.flip-card-back-content{box-sizing:border-box;border:1px dashed #c9a45c8c;border-radius:999px 999px 10px 10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;padding:24px 12px 14px;display:flex;position:relative}.flip-card-hy{font:700 20px/1 var(--font-hy);color:var(--kim);margin-bottom:2px}.flip-card-role{font:600 11px/1 var(--font-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--muc-nhat)}.flip-card-name{font:400 clamp(26px, 7vw, 34px)/1.2 var(--font-script);color:var(--son);margin:0}.flip-card-bio{font:italic 400 13.5px/1.45 var(--font-serif);color:var(--muc);text-wrap:balance;max-width:90%;margin:2px 0 0}.flip-card-tip{font:400 10px/1 var(--font-sans);letter-spacing:.12em;color:var(--kim);opacity:.85;margin-top:8px}.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)}.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}.hero-tilt-wrap{width:min(100%,330px);transform-style:preserve-3d;border-radius:999px 999px 22px 22px;margin:26px auto 0}.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}.album-swiper-wrapper{perspective:1200px;width:100%;margin:4px auto 24px;position:relative}.album-swiper{width:100%;padding-top:16px!important;padding-bottom:24px!important;overflow:hidden!important}.album-swiper .swiper-wrapper{align-items:center;transition-timing-function:cubic-bezier(.22,1,.36,1)!important}.album-swiper .swiper-slide{aspect-ratio:3/4;background:var(--vien);will-change:transform;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:1px solid #c9a45c59;border-radius:16px;width:clamp(220px,60vw,275px);transition:opacity .6s,box-shadow .6s,transform .6s cubic-bezier(.22,1,.36,1);overflow:hidden;box-shadow:0 10px 24px #14020433}.album-swiper .swiper-slide-active{cursor:zoom-in;z-index:10;border-radius:16px;box-shadow:0 20px 40px #5e0f1540,0 0 0 1px #c9a45cb3;opacity:1!important}.album-swiper .swiper-slide-prev,.album-swiper .swiper-slide-next{z-index:5;opacity:.7!important}.album-swiper .swiper-slide:not(.swiper-slide-active):not(.swiper-slide-prev):not(.swiper-slide-next){z-index:1;opacity:.45!important}.album-swiper .swiper-slide img{object-fit:cover;pointer-events:none;border-radius:16px}.album-swiper-nav-btn{border:1px solid var(--kim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:42px;height:42px;color:var(--kim-light);z-index:20;cursor:pointer;opacity:0;background:#5e0f15bf;border-radius:50%;place-items:center;padding:0;transition:opacity .3s,transform .2s,background .2s;display:none;position:absolute;top:calc(50% - 10px);transform:translateY(-50%)}@media (hover:hover) and (min-width:640px){.album-swiper-nav-btn{display:grid}.album-swiper-wrapper:hover .album-swiper-nav-btn{opacity:.65}.album-swiper-nav-btn:hover{background:var(--son);transform:translateY(-50%)scale(1.08);opacity:1!important}}.album-swiper-prev{left:10px}.album-swiper-next{right:10px}.album-swiper-pagination{justify-content:center;align-items:center;gap:6px;margin-top:12px;display:flex!important;position:relative!important}.album-swiper-pagination .swiper-pagination-bullet{opacity:1;cursor:pointer;background:#c9a45c66;border-radius:50%;width:7px;height:7px;transition:all .35s;margin:0!important}.album-swiper-pagination .swiper-pagination-bullet-active{background:var(--son);border-radius:999px;width:20px}.gallery-grid-title{text-align:center;font:500 12px/1 var(--font-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--son);margin:36px 0 16px}.gallery{column-count:2;column-gap:10px}.g-item{cursor:zoom-in;background:var(--vien);transform-style:preserve-3d;will-change:transform, box-shadow;break-inside:avoid;border:1px solid #c9a45c4d;border-radius:12px;width:100%;margin-bottom:10px;padding:0;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .3s;display:block;position:relative;overflow:hidden}.g-item img{width:100%;height:auto;transition:transform .7s var(--ease-out);display:block}@media (hover:hover){.g-item:hover{z-index:5;border-color:#c9a45cb3;transform:perspective(1000px)translateZ(20px)rotateX(6deg)rotateY(-6deg)scale(1.02);box-shadow:0 18px 36px #5e0f1538}.g-item:hover img{transform:scale(1.06)}}.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-section{max-width:880px;margin:54px auto 0;padding:0 16px;position:relative}.wishes-inner{width:100%;position:relative}.wishes-header{text-align:center;margin-bottom:26px}.wishes-subtitle{font:400 36px/1.2 var(--font-script);color:var(--son);margin:0 0 4px}.wishes-title{font:600 24px/1.3 var(--font-serif);color:#1f2937;justify-content:center;align-items:center;gap:8px;margin:0;display:inline-flex}.wishes-count{color:var(--son);font-size:18px;font-weight:500;font-family:var(--font-sans)}.wishes-dec-line{justify-content:center;align-items:center;width:160px;margin:12px auto 0;display:flex;position:relative}.wishes-dec-line:before,.wishes-dec-line:after{content:"";background:linear-gradient(to right, transparent, var(--kim), transparent);flex:1;height:1px}.wishes-dec-star{color:var(--kim);margin:0 12px;font-size:15px}.wishes-cta-wrap{justify-content:center;margin-bottom:24px;display:flex}.wishes-btn-open-form{color:var(--son);font:500 14.5px/1.4 var(--font-sans);cursor:pointer;background:#5e0f150d;border:1px solid #5e0f1538;border-radius:999px;align-items:center;gap:8px;padding:10px 24px;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #5e0f150a}.wishes-btn-open-form:hover{border-color:var(--son);background:#5e0f151a;transform:translateY(-1px)}.wishes-direct-form{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff0;border:1px solid #c9a45c59;border-radius:16px;margin-bottom:28px;padding:22px 20px;box-shadow:0 10px 28px -6px #5e0f1514}.wishes-form-heading{font:600 18px/1.3 var(--font-serif);color:var(--son);text-align:center;margin:0 0 16px}.wishes-form-row{grid-template-columns:1fr;gap:14px;margin-bottom:14px;display:grid}@media (min-width:600px){.wishes-form-row{grid-template-columns:1.5fr 1fr}}.wishes-form-group{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.wishes-label{font:500 13.5px/1.3 var(--font-sans);color:#374151}.wishes-input,.wishes-select,.wishes-textarea{width:100%;font:400 14.5px/1.5 var(--font-sans);color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:10px;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.wishes-input:focus,.wishes-select:focus,.wishes-textarea:focus{border-color:var(--son);box-shadow:0 0 0 3px #5e0f151f}.wishes-textarea{resize:vertical;min-height:80px}.wishes-hint{color:#6b7280;font-size:12px}.wishes-submit-btn{background:var(--son);color:#fff;width:100%;font:600 15px/1.4 var(--font-sans);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;padding:11px 20px;transition:opacity .2s,transform .15s;display:flex;box-shadow:0 4px 12px #5e0f1540}.wishes-submit-btn:hover:not(:disabled){opacity:.93;transform:translateY(-1px)}.wishes-submit-btn:disabled{opacity:.65;cursor:not-allowed}.wishes-spinner-wrap{align-items:center;gap:8px;display:inline-flex}.wishes-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite wishSpin}@keyframes wishSpin{to{transform:rotate(360deg)}}.wishes-grid{grid-template-columns:1fr;gap:16px;width:100%;display:grid}@media (min-width:768px){.wishes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}.wish-card{box-sizing:border-box;background:#ffffffeb;border:1px solid #c9a45c52;border-radius:16px;flex-direction:column;justify-content:space-between;min-width:0;padding:18px 20px;transition:transform .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px -4px #5e0f1514}.wish-card:hover{border-color:#c9a45c80;box-shadow:0 12px 30px -4px #5e0f151f}.wish-card-enter{animation:.3s cubic-bezier(.16,1,.3,1) forwards wishSlideIn}@keyframes wishSlideIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.wish-card-header{align-items:center;gap:12px;min-width:0;margin-bottom:12px;display:flex}.wish-avatar{width:40px;height:40px;font-size:16px;font-weight:700;font-family:var(--font-sans);text-transform:uppercase;border:1px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.wish-meta-box{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wish-author-row{align-items:center;gap:8px;min-width:0;display:flex}.wish-author-name{font:600 17px/1.35 var(--font-serif);color:#1f2937;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;overflow:hidden}.wish-side-badge{color:var(--son);white-space:nowrap;font-size:11px;font-weight:500;font-family:var(--font-sans);background:#5e0f1514;border-radius:999px;flex-shrink:0;padding:2px 7px}.wish-side-badge[data-side=bride]{color:#be123c;background:#e11d4814}.wish-side-badge[data-side=both]{color:#855c1b;background:#c9a45c29}.wish-timestamp{color:#888;font-size:12px;font-family:var(--font-sans)}.wish-body{width:100%;min-width:0}.wish-content{font:400 15px/1.7 var(--font-sans);color:#374151;white-space:pre-line;overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;margin:0}.wish-body-clamped .wish-content{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.wish-expand-btn{color:var(--son);cursor:pointer;text-align:left;background:0 0;border:none;align-self:flex-start;margin-top:4px;padding:6px 0 0;font-size:12.5px;font-weight:600}.wish-expand-btn:hover{text-decoration:underline}.wishes-loadmore-wrap{justify-content:center;margin-top:24px;display:flex}.wishes-loadmore-btn{color:var(--son);font:500 14px/1.4 var(--font-sans);cursor:pointer;background:#fff;border:1px solid #c9a45c66;border-radius:999px;padding:10px 24px;transition:all .2s;box-shadow:0 4px 12px #5e0f150a}.wishes-loadmore-btn:hover:not(:disabled){border-color:var(--son);background:#5e0f150a}.wishes-loadmore-btn:disabled{opacity:.6;cursor:not-allowed}.wish-skeleton{pointer-events:none}.wish-skel-avatar{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:50%;width:40px;height:40px;animation:1.5s infinite wishSkelShimmer}.wish-skel-meta{flex-direction:column;flex:1;gap:6px;display:flex}.wish-skel-line{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:6px;height:12px;animation:1.5s infinite wishSkelShimmer}.wish-skel-name{width:50%;height:14px}.wish-skel-time{width:30%;height:10px}.wish-skel-msg-1{width:90%;margin-top:10px}.wish-skel-msg-2{width:70%;margin-top:6px}@keyframes wishSkelShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.wishes-empty-state{text-align:center;background:#fffc;border:1px dashed #c9a45c66;border-radius:16px;margin:12px 0;padding:36px 16px}.wishes-empty-icon{margin-bottom:8px;font-size:36px}.wishes-empty-text{font:500 15.5px/1.5 var(--font-serif);color:#6b7280;margin:0}.wishes-toast{z-index:9999;border:1px solid var(--kim);font:500 14px/1.4 var(--font-sans);color:#1f2937;background:#fff;border-radius:999px;align-items:center;gap:10px;max-width:90vw;padding:10px 20px;animation:.3s ease-out wishToastIn;display:inline-flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #5e0f1533}.wishes-toast-success .wishes-toast-icon{color:#166534;background:#dcfce7;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:inline-flex}.wishes-toast-error .wishes-toast-icon{color:#991b1b;background:#fee2e2;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:inline-flex}@keyframes wishToastIn{0%{opacity:0;transform:translate(-50%,15px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.wish-card,.wish-card-enter,.wishes-toast,.wish-skel-avatar,.wish-skel-line{transition:none!important;animation:none!important}}.gift-boxes-container{flex-direction:column;gap:20px;max-width:440px;margin:0 auto;display:flex}.gift-trigger-box{transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out);background:linear-gradient(135deg,#c9a45c99 0%,#c9a45c26 50%,#c9a45ccc 100%);border-radius:24px;padding:2px;position:relative;box-shadow:0 12px 32px -8px #5e0f1538}.gift-trigger-box:hover{transform:translateY(-3px);box-shadow:0 18px 40px -10px #5e0f1552}.gift-box-btn{background:var(--giay-2);cursor:pointer;text-align:left;border:none;border-radius:22px;align-items:center;gap:20px;width:100%;padding:22px 24px;transition:background-color .2s;display:flex;position:relative;overflow:hidden}.gift-box-btn:hover{background:#fffdf9}.gift-box-btn:active{transform:scale(.99)}.gift-glow{pointer-events:none;filter:blur(10px);background:radial-gradient(circle,#c9a45c59 0%,#0000 70%);width:80px;height:80px;position:absolute;top:15%;left:20px}.gift-box-icon-wrap{flex-shrink:0;justify-content:center;align-items:center;width:76px;height:76px;animation:3.6s ease-in-out infinite giftBoxFloat;display:flex}@keyframes giftBoxFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-5px)rotate(1.5deg)}}.gift-box-svg{filter:drop-shadow(0 6px 12px #5e0f152e);width:100%;height:100%;display:block}.gift-box-info{flex:1;min-width:0}.gift-box-badge{font:600 10.5px/1 var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:#fff;background:var(--son);border-radius:999px;padding:3px 9px;display:inline-block}.gift-box-title{font:600 21px/1.3 var(--font-serif);color:var(--muc);letter-spacing:.02em;margin:0}.gift-box-sub{font:400 13px/1.4 var(--font-sans);color:var(--muc-nhat);margin:5px 0 0}.gift-open-cta{font:600 12.5px/1 var(--font-sans);color:var(--son);letter-spacing:.04em;align-items:center;gap:6px;margin-top:10px;transition:transform .2s;display:inline-flex}.gift-box-btn:hover .gift-open-cta{color:var(--son-dark);transform:translate(3px)}.gift-modal-backdrop{z-index:99999;-webkit-backdrop-filter:blur(8px);background:#160609c7;justify-content:center;align-items:center;padding:16px;animation:.25s ease-out forwards giftBackdropFade;display:flex;position:fixed;inset:0}@keyframes giftBackdropFade{0%{opacity:0}to{opacity:1}}.gift-modal-dialog{background:var(--giay-2);border:1.5px solid var(--kim);text-align:center;border-radius:28px;width:100%;max-width:380px;max-height:90vh;padding:28px 24px 24px;animation:.3s cubic-bezier(.16,1,.3,1) forwards giftModalSlide;position:relative;overflow-y:auto;box-shadow:0 24px 60px -10px #0000008c,0 0 0 1px #ffffff1a}@keyframes giftModalSlide{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.gift-modal-close{width:36px;height:36px;color:var(--muc);cursor:pointer;background:#0000000d;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,transform .15s;display:flex;position:absolute;top:14px;right:14px}.gift-modal-close:hover{color:var(--son);background:#8c1c221f;transform:rotate(90deg)}.gift-modal-head{padding-bottom:12px}.gift-modal-tag{font:600 11px/1 var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--son);margin-bottom:6px;display:inline-block}.gift-modal-title{font:700 22px/1.3 var(--font-serif);color:var(--muc);margin:0}.gift-modal-desc{font:400 12.5px/1.4 var(--font-sans);color:var(--muc-nhat);max-width:280px;margin:6px auto 0}.gift-modal-qr-wrap{flex-direction:column;align-items:center;margin:16px auto 0;display:flex}.gift-modal-qr-frame{border:1.5px solid var(--vien);background:#fff;border-radius:18px;padding:12px;box-shadow:0 8px 24px -4px #5e0f151f}.gift-modal-qr-img{object-fit:contain;border-radius:8px;width:200px;height:200px;display:block}.gift-modal-qr-hint{font:italic 400 12px/1.3 var(--font-serif);color:var(--muc-nhat);margin:8px 0 0}.gift-modal-details{text-align:left;background:#c9a45c14;border:1px solid #c9a45c38;border-radius:16px;flex-direction:column;gap:8px;margin-top:18px;padding:14px 16px;display:flex}.gift-detail-row{justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;display:flex}.gift-detail-label{font:500 12px/1 var(--font-sans);color:var(--muc-nhat);flex-shrink:0}.gift-detail-value{font:600 14px/1.2 var(--font-sans);color:var(--muc);text-align:right;word-break:break-all}.gift-detail-value.font-serif{font-family:var(--font-serif);font-size:15px}.gift-detail-value.is-bold{color:var(--son);letter-spacing:.02em}.gift-detail-row.is-acc{border-top:1px dashed #c9a45c59;margin-top:2px;padding-top:6px}.gift-detail-value.is-number{font:700 17px/1 var(--font-sans);letter-spacing:.06em;color:var(--son-dark)}.gift-copy-btn{width:100%;min-height:44px;font:600 14px/1 var(--font-sans);letter-spacing:.02em;color:#fff;background:linear-gradient(135deg, var(--son-light) 0%, var(--son) 50%, var(--son-dark) 100%);cursor:pointer;border:1px solid #c9a45c80;border-radius:14px;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding:10px 18px;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex;box-shadow:0 6px 18px -4px #8c1c2266}.gift-copy-btn:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 8px 22px -4px #8c1c2280}.gift-copy-btn:active{transform:translateY(1px)}.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)}html.is-auto-scrolling{scroll-behavior:auto!important}.floating-controls{z-index:60;bottom:calc(16px + env(safe-area-inset-bottom));right:max(16px, calc((100vw - var(--col)) / 2 + 16px));flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed}.autoscroll-wrapper{align-items:center;gap:10px;display:flex;position:relative}.autoscroll-tooltip{background:var(--son);color:var(--nude);white-space:nowrap;border:1px solid var(--kim);animation:tooltip-fade .4s var(--ease-out);border-radius:8px;margin-right:12px;padding:6px 12px;font-size:13px;position:absolute;right:100%;box-shadow:0 4px 12px #3c080c33}@keyframes tooltip-fade{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.autoscroll-btn{cursor:pointer;border:1px solid var(--kim);background:var(--son);width:48px;height:48px;color:var(--kim-light);border-radius:50%;place-items:center;transition:all .3s;display:grid;position:relative;box-shadow:0 10px 24px #3c080c59}.autoscroll-btn:hover{transform:scale(1.05)}.autoscroll-ring{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.autoscroll-ring circle{stroke-width:1.5px}.autoscroll-ring .bg-ring{stroke:#eab67633}.autoscroll-ring .fg-ring{stroke:var(--kim);stroke-linecap:round;transition:stroke-dashoffset .1s linear}.autoscroll-icon{z-index:1;width:22px;height:22px}.autoscroll-speed{background:var(--son);color:var(--kim);border:1px solid var(--kim);cursor:pointer;border-radius:20px;padding:4px 10px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;box-shadow:0 4px 12px #3c080c33}.autoscroll-speed:hover{background:var(--kim);color:var(--son)}.music{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;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}.cover.is-open .env-card{box-shadow:none!important;transform:translateY(-70%)!important}.cover.is-open .env-flap{opacity:0!important;transform:none!important}.album-swiper .swiper-slide,.album-swiper-wrapper .swiper-wrapper,.coverflow-slide,.g-item,.flip-card-inner{transition:opacity .2s!important;transform:none!important}.g-item:hover,.portrait:hover .portrait-arch img{box-shadow:none!important;transform:none!important}}.wish-spotlight-container{-webkit-user-select:none;user-select:none;width:100%;max-width:520px;margin:30px auto;position:relative}.wish-spotlight-card{-webkit-backdrop-filter:blur(8px);text-align:center;background:#fffdf9d9;border:1px solid #5e0f154d;border-radius:20px;padding:40px 30px;position:relative;overflow:hidden;box-shadow:0 10px 30px -5px #5e0f1514}.wish-spotlight-quote-icon{font-family:var(--font-serif);color:#5e0f1514;pointer-events:none;font-size:80px;line-height:1;position:absolute;top:10px;left:20px}.wish-spotlight-content-wrapper{justify-content:center;align-items:center;min-height:140px;display:flex;position:relative}.wish-spotlight-inner{width:100%;position:absolute}.wish-spotlight-avatar{width:50px;height:50px;font-family:var(--font-serif);border:2px solid;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:24px;font-weight:700;display:flex}.wish-spotlight-message{font-family:var(--font-sans);color:var(--muc);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0 0 16px;font-size:16px;font-style:italic;line-height:1.6;display:-webkit-box;overflow:hidden}.wish-spotlight-name{font-family:var(--font-serif);color:var(--son-dark);letter-spacing:.05em;margin:0;font-size:15px;font-weight:600}.wish-spotlight-progress-bg{background:#5e0f151a;width:100%;height:2px;position:absolute;bottom:0;left:0}.wish-spotlight-progress-bar{background:var(--son);height:100%}.wish-spotlight-controls{pointer-events:none;justify-content:space-between;display:flex;position:absolute;top:50%;left:-20px;right:-20px;transform:translateY(-50%)}.wish-spotlight-nav-btn{pointer-events:auto;width:36px;height:36px;color:var(--son);cursor:pointer;background:#fff;border:1px solid #5e0f1533;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:flex;box-shadow:0 2px 8px #5e0f151a}.wish-spotlight-nav-btn:hover{background:var(--son);color:#fff;border-color:var(--son)}@media (max-width:600px){.wish-spotlight-controls{left:-10px;right:-10px}}.floating-wish-bubble{z-index:9999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #c9a45c66;border-radius:16px;align-items:flex-start;gap:12px;max-width:300px;padding:14px 18px 14px 14px;display:flex;position:fixed;bottom:24px;left:24px;box-shadow:0 8px 24px #5e0f1526}@media (max-width:768px){.floating-wish-bubble{max-width:none;padding:12px 16px;inset:24px 16px auto}}.floating-wish-close{color:#999;cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;line-height:1;position:absolute;top:4px;right:6px}.floating-wish-close:hover{color:var(--son)}.floating-wish-content{align-items:center;gap:12px;display:flex}.floating-wish-avatar{background:var(--son-light);color:#fff;width:36px;height:36px;font-family:var(--font-serif);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.floating-wish-text{font-family:var(--font-sans);color:var(--muc);font-size:13px;line-height:1.4}.floating-wish-text strong{font-family:var(--font-serif);color:var(--son);margin-bottom:2px;font-size:14px;display:block}.floating-wish-text p{-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}
