@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/great-vibes-400-vietnamese.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(/fonts/great-vibes-400-latin.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:italic;font-weight:500 700;font-display:swap;src:url(/fonts/cormorant-garamond-var-italic-vietnamese.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:500 700;font-display:swap;src:url(/fonts/cormorant-garamond-var-italic-latin.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:500 700;font-display:swap;src:url(/fonts/cormorant-garamond-var-vietnamese.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:500 700;font-display:swap;src:url(/fonts/cormorant-garamond-var-latin.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:Song Hy;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/song-hy-700-glyph.woff2)format("woff2");unicode-range:U+56CD}:root{--red-deep:#7a1616;--red-dark:#5e0f0f;--red-glow:brown;--vermilion:#a3302e;--gold:#d9b872;--gold-line:#e9c982b3;--gold-cream:#f0d9a6;--gold-light:#f6e3b4;--cream:#f7f1e6;--cream-2:#efe5d2;--ink:#3a1a12;--muted:#7f6043;--red-surface:radial-gradient(120% 80% at 50% 0%, var(--red-glow) 0%, var(--red-deep) 55%, var(--red-dark) 100%);--font-script:"Great Vibes", "Snell Roundhand", cursive;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-hy:"Song Hy", "Songti SC", "Noto Serif CJK SC", "SimSun", serif;--wrap-max:1120px;--gutter:24px;--measure:36rem;--section-pad:clamp(2.75rem, 2rem + 3vw, 5.5rem);--step--2:clamp(.8125rem, .78rem + .15vw, .9375rem);--step--1:clamp(1rem, .95rem + .2vw, 1.125rem);--step-0:clamp(1.1875rem, 1.1rem + .35vw, 1.375rem);--step-1:clamp(1.375rem, 1.2rem + .7vw, 1.75rem);--step-2:clamp(2.75rem, 2.2rem + 2.2vw, 4rem);--step-3:clamp(2.5rem, 2rem + 2vw, 3.75rem);--step-4:clamp(2.6rem, 2rem + 2.4vw, 4.5rem);--space-s:.75rem;--space-m:1.5rem;--space-l:3rem;--space-xl:4.5rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);font-weight:500;font-size:var(--step-0);font-variant-numeric:lining-nums;margin:0;line-height:1.5}img,picture{max-width:100%;height:auto;display:block}h1,h2,h3{margin:0;font-weight:400}h1,h2{font-family:var(--font-script);color:var(--vermilion);line-height:1.2}h1{font-size:var(--step-4)}h2{font-size:var(--step-2)}h3{font-family:var(--font-display);font-weight:600;font-size:var(--step-1);line-height:1.3}p{max-width:var(--measure);margin:0}button{font:inherit;color:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--vermilion);outline-offset:3px}.on-red :focus-visible,.envelope:focus-visible,.envelope :focus-visible,.lightbox :focus-visible{outline-color:var(--gold-cream)}.wrap{width:min(100% - 2 * var(--gutter), var(--wrap-max));margin-inline:auto}.section{padding-block:var(--section-pad);position:relative}.section+.section{border-top:1px solid var(--gold)}.section+.section:before{content:"囍";content:"囍" / "";background:var(--cream);font:700 22px/1 var(--font-hy);color:var(--gold);padding:0 17px;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.section.framed{border-top:0;padding-block:1.25rem}.section.framed:before{content:none}.cover+.section.framed{padding-top:var(--section-pad)}.section.framed.last-framed{padding-bottom:var(--section-pad)}.zoom{appearance:none;font:inherit;color:inherit;cursor:zoom-in;padding:0;transition:transform 80ms ease-out}.zoom:active,.reveal-on .zoom[data-reveal].in:active{transform:scale(.98)}.centered{text-align:center}.centered p{margin-inline:auto}.muted{color:var(--muted)}.lead{color:var(--muted);text-wrap:balance;font-style:italic}.label-caps{font-family:var(--font-display);font-weight:600;font-size:max(.9375rem, var(--step--2));letter-spacing:.08em;text-transform:uppercase}.btn{border:1px solid var(--vermilion);background:var(--vermilion);color:#fff;min-height:44px;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:.5rem 1.5rem;font-size:1rem;font-weight:600;line-height:1.3;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.btn:hover{background:var(--red-deep);border-color:var(--red-deep)}.btn-ghost{color:var(--vermilion);background:0 0}.btn-ghost:hover{background:var(--vermilion);color:#fff;border-color:var(--vermilion)}.on-red{background:var(--red-deep);background:var(--red-surface);color:var(--gold-cream);position:relative}.wm{font:700 min(380px, 90vw)/1 var(--font-hy);color:#ffd78c0f;pointer-events:none;user-select:none;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.reveal-on [data-reveal]{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(20px)}.reveal-on [data-reveal=left]{transform:translate(-28px)}.reveal-on [data-reveal=right]{transform:translate(28px)}.reveal-on [data-reveal].in{opacity:1;transform:none}.reveal-on [data-reveal=""].above:not(.in){transform:translateY(-20px)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
