@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../media/d8cddd76dbfeaef0-s.1mblz1wog092a.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:400;font-display:swap;src:url(../media/591574edbe85c69b-s.2cu8l7zf4s4ec.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:400;font-display:swap;src:url(../media/acf349172f10b359-s.p.0gv8q2vqi14yg.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:400;font-display:swap;src:url(../media/0926c12c4384550f-s.1-qpv3jvnkkyl.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../media/8bd76523131fa0fc-s.p.1pvupmngxrt5z.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;font-display:swap;src:url(../media/d8cddd76dbfeaef0-s.1mblz1wog092a.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:500;font-display:swap;src:url(../media/591574edbe85c69b-s.2cu8l7zf4s4ec.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:500;font-display:swap;src:url(../media/acf349172f10b359-s.p.0gv8q2vqi14yg.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;font-display:swap;src:url(../media/0926c12c4384550f-s.1-qpv3jvnkkyl.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/8bd76523131fa0fc-s.p.1pvupmngxrt5z.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:600;font-display:swap;src:url(../media/d8cddd76dbfeaef0-s.1mblz1wog092a.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:600;font-display:swap;src:url(../media/591574edbe85c69b-s.2cu8l7zf4s4ec.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:600;font-display:swap;src:url(../media/acf349172f10b359-s.p.0gv8q2vqi14yg.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:600;font-display:swap;src:url(../media/0926c12c4384550f-s.1-qpv3jvnkkyl.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/8bd76523131fa0fc-s.p.1pvupmngxrt5z.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:400;font-display:swap;src:url(../media/9cc5c0547f229dea-s.00y8kskkn0hyx.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:400;font-display:swap;src:url(../media/b0947914c9718a1e-s.1xjn85gt7t6qs.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:400;font-display:swap;src:url(../media/d0b60be57f16ee32-s.p.1xtu7gopqv2u0.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:400;font-display:swap;src:url(../media/1f9e983605289f29-s.3aak_kra40y8r.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(../media/01e4147cff8141ee-s.p.3huc2loe0ie8a.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;font-display:swap;src:url(../media/9cc5c0547f229dea-s.00y8kskkn0hyx.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:500;font-display:swap;src:url(../media/b0947914c9718a1e-s.1xjn85gt7t6qs.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:500;font-display:swap;src:url(../media/d0b60be57f16ee32-s.p.1xtu7gopqv2u0.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;font-display:swap;src:url(../media/1f9e983605289f29-s.3aak_kra40y8r.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/01e4147cff8141ee-s.p.3huc2loe0ie8a.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:600;font-display:swap;src:url(../media/9cc5c0547f229dea-s.00y8kskkn0hyx.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:600;font-display:swap;src:url(../media/b0947914c9718a1e-s.1xjn85gt7t6qs.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:600;font-display:swap;src:url(../media/d0b60be57f16ee32-s.p.1xtu7gopqv2u0.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:600;font-display:swap;src:url(../media/1f9e983605289f29-s.3aak_kra40y8r.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/01e4147cff8141ee-s.p.3huc2loe0ie8a.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_169a3f8e-module__EytGIW__className{font-family:Cormorant Garamond,Cormorant Garamond Fallback}.cormorant_garamond_169a3f8e-module__EytGIW__variable{--font-display:"Cormorant Garamond", "Cormorant Garamond Fallback"}
@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a1e5f881e1ca6a9a-s.3r71i8beaaw7i.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.02-h3o5cqnryq.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.3dxjtj6-bs-2c.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.3pzgmnk57caz1.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_mk8de7o781e.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-20C4,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.3rqg0w444aekk.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_4a4cf0b-module__G2GkQG__className{font-family:Great Vibes,Great Vibes Fallback;font-style:normal;font-weight:400}.great_vibes_4a4cf0b-module__G2GkQG__variable{--font-script:"Great Vibes", "Great Vibes Fallback"}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5f841e19a104a2f1-s.p.1two88yljb5sr.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.0eam1vlzr7y9e.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-20C4,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.1x4h7xumh6h0q.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.1uklb5el4zgvl.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.05i4gb4p0piv4.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-20C4,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.2g-0we2o5_ngd.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.1zvg0ggiaivzo.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.0jaqhc1tb-5xm.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-20C4,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.1hvvd1t-trplq.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_849c5617-module__ZJbdhG__className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.be_vietnam_pro_849c5617-module__ZJbdhG__variable{--font-body:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
:root{--paper:#f7f4ea;--paper-deep:#dfe8d4;--card:#fffdf6;--ink:#26352b;--muted:#5a6b5c;--forest:#2e4a36;--forest-deep:#1f3326;--moss:#3f6349;--gold:#8c7236;--gold-light:#e6d5a3;--line:#cfd9c1;--sage:#8fa98a;--radius:14px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}h1,h2,h3,.heading p,.announce,.invitation,.section-note,.event-date,.event-lunar,.closing,.form-done{text-wrap:balance}.wishes p{text-wrap:pretty}body{background:var(--paper);color:var(--ink);font-family:var(--font-body), system-ui, sans-serif;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:300;line-height:1.7}body:has(.envelope-screen){overflow:hidden}img{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.num{font-variant-numeric:lining-nums tabular-nums}.draft{background:var(--ink);color:var(--paper);text-align:center;padding:8px 16px;font-size:13px}main{background:var(--paper);max-width:520px;margin-inline:auto}.scene-photo{object-fit:cover}.hero{text-align:center;height:100svh;min-height:560px;max-height:960px;color:var(--paper);justify-content:center;align-items:flex-end;transition:opacity .9s .3s,transform 1.1s cubic-bezier(.2,.7,.2,1) .3s;display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:linear-gradient(#0000 42%,#101a138c 62%,#101a13e0);position:absolute;inset:0}body:has(.envelope-screen:not(.is-leaving)) .hero{opacity:0;transform:translateY(20px)}.hero-body{z-index:1;padding:0 16px 40px;position:relative}.hero-kicker{letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light);font-size:13px;font-weight:400}.hero h1{font-family:var(--font-script), cursive;flex-direction:column;margin-top:12px;font-size:clamp(48px,14vw,64px);font-weight:400;line-height:1.1;display:flex}.hero h1 em{font-family:var(--font-display), serif;color:var(--gold-light);font-size:.5em}.hero-date{font-family:var(--font-display), serif;margin-top:16px;font-size:22px;font-weight:500;line-height:1.3}.hero-lunar{opacity:.85;margin-top:2px;font-size:13px}.envelope-screen{z-index:50;text-align:center;color:var(--paper);background:radial-gradient(circle at 50% 35%, var(--moss), var(--forest) 45%, var(--forest-deep));will-change:opacity;flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;transition:opacity .9s;display:flex;position:fixed;inset:0}.envelope-screen.is-leaving{opacity:0;pointer-events:none}.envelope{aspect-ratio:3/2;perspective:900px;background:#e6ecd9;border:0;width:min(82vw,340px);margin-top:64px;padding:0;transition:transform .9s cubic-bezier(.4,0,.2,1),opacity .4s;position:relative;box-shadow:0 24px 48px #00000059}.is-leaving .envelope{opacity:0;transform:translateY(16px)scale(.96)}.envelope-names,.envelope-date{transition:opacity .5s .7s}.is-opening .envelope-names,.is-opening .envelope-date{opacity:0}.envelope span{display:block}.envelope-card{z-index:1;background:var(--paper);border:1px solid var(--gold);will-change:transform;place-items:start center;padding-top:7%;transition:transform .85s cubic-bezier(.22,.7,.2,1) .45s;position:absolute;inset:8% 6% 6%;display:grid!important}.envelope-card-names{font-family:var(--font-script), cursive;color:var(--forest);font-size:clamp(24px,7vw,30px)}.envelope-pocket{z-index:2;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:linear-gradient(160deg,#f3f5e8,#dbe4cf);position:absolute;inset:0}.envelope-flap{z-index:3;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;will-change:transform;background:linear-gradient(#c9d6b9,#e3ead6);height:58%;transition:transform .7s cubic-bezier(.45,0,.2,1),z-index 0s linear .35s;position:absolute;inset:0 0 auto}.envelope-seal{z-index:4;background:radial-gradient(circle at 35% 30%, var(--moss), var(--forest));width:62px;height:62px;color:var(--gold-light);font-family:var(--font-script), cursive;border-radius:50%;place-items:center;margin:-31px 0 0 -31px;font-size:20px;line-height:1;transition:opacity .35s,transform .35s;position:absolute;top:58%;left:50%;box-shadow:0 3px 10px #00000059,inset 0 0 0 3px #e6d5a38c;display:grid!important}.is-opening .envelope-seal{opacity:0;transform:scale(.6)}.is-opening .envelope-flap{z-index:0;transform:rotateX(180deg)}.is-opening .envelope-card{transform:translateY(-62%)}.envelope-names{font-family:var(--font-script), cursive;color:var(--gold-light);text-wrap:balance;margin-top:40px;font-size:clamp(40px,12vw,52px);line-height:1.2}.envelope-date{font-family:var(--font-display), serif;margin-top:8px;font-size:20px}.envelope-hint{letter-spacing:.04em;opacity:.8;margin-top:28px;font-size:13px;transition:opacity .3s;animation:2.2s ease-in-out infinite pulse}.is-opening .envelope-hint{opacity:0;animation:none}.leaves{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.leaf{will-change:transform;animation:linear both leaf-fall;position:absolute;top:-40px}.leaf svg{opacity:.85;animation:ease-in-out infinite alternate leaf-sway;display:block}.music-toggle{z-index:40;border:1px solid var(--gold-light);width:40px;height:40px;color:var(--gold-light);background:#1f3326b8;border-radius:50%;font-size:18px;position:fixed;top:12px;right:12px}.music-toggle span{display:block}.is-playing{animation:2.2s ease-in-out infinite pulse}.countdown{grid-template-columns:repeat(4,68px);gap:8px;margin-top:32px;display:grid}.countdown div{border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:10px 0 8px}.countdown strong{font-family:var(--font-display), serif;color:var(--forest);font-size:30px;font-weight:500;line-height:1.1;display:block}.countdown span{color:var(--muted);font-size:12px}.countdown-done{font-family:var(--font-script), cursive;color:var(--forest);margin-top:32px;font-size:34px}.section{padding:64px 16px}.section>*{max-width:640px;margin-inline:auto}.paper{background:var(--paper-deep);text-align:center}.dark{background:var(--forest);color:var(--paper);position:relative;overflow:hidden}.dark:after{content:"";background:#1f3326e0;position:absolute;inset:0}.dark>*{z-index:1;position:relative}.dark>.scene-photo{z-index:0;max-width:none;position:absolute}.dark:after{z-index:0}.heading{text-align:center;margin-bottom:36px}.heading p{letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-size:12px;font-weight:400}.dark .heading p{color:var(--gold-light)}.section-note{text-align:center;opacity:.9;margin-bottom:28px;font-size:15px;line-height:1.55}.heading h2{font-family:var(--font-display), serif;margin-top:8px;font-size:clamp(34px,9vw,42px);font-weight:500;line-height:1.2}.seal{font-family:var(--font-script), cursive;color:var(--forest);font-size:44px;line-height:1}.families{grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;display:grid}.family h3{font-family:var(--font-display), serif;color:var(--forest);margin-bottom:8px;font-size:22px;font-weight:600}.family p{font-size:15px}.family small{color:var(--muted);margin-top:6px;font-size:13px;display:block}.announce{font-family:var(--font-display), serif;margin-top:40px;font-size:21px;font-style:italic;line-height:1.35}.invitation{color:var(--muted);margin-top:28px}.portraits{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px;display:grid}.portrait{margin:0}.portrait img{aspect-ratio:3/4;object-fit:cover;border-radius:999px 999px var(--radius) var(--radius);width:100%}.portrait small{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:12px;font-size:12px;display:block}.portrait strong{font-family:var(--font-display), serif;white-space:nowrap;color:var(--forest);font-size:clamp(17px,5.3vw,23px);font-weight:500;line-height:1.25;display:block}.band{text-align:center;min-height:420px;color:var(--paper);justify-content:center;align-items:flex-end;padding:32px 16px;display:flex;position:relative;overflow:hidden}.band:before{content:"";z-index:1;background:linear-gradient(#0000 30%,#101a13c7);position:absolute;inset:0}.band-body{z-index:2;position:relative}.band-title{font-family:var(--font-script), cursive;color:var(--gold-light);font-size:36px;line-height:1.2}.band .countdown{margin-top:16px}.band .countdown div{border-color:var(--gold-light)}.band .countdown strong,.band .countdown span,.band .countdown-done{color:var(--paper)}.event-photo{aspect-ratio:3/2;object-fit:cover;width:calc(100% + 40px);max-width:none;margin:-28px -20px 24px}.events{gap:24px;display:grid}.event{border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);background:var(--card);text-align:center;padding:28px 20px 20px;overflow:hidden}.event h3{font-family:var(--font-display), serif;color:var(--forest);font-size:28px;font-weight:500;line-height:1.2}.event-date{color:var(--muted);margin-top:6px;font-size:clamp(14px,4.1vw,16px)}.event-lunar{color:var(--muted);font-size:14px}.timeline{text-align:left;gap:0;margin:24px 0 4px;padding:0;list-style:none;display:grid}.timeline li{grid-template-columns:76px 1fr;gap:28px;padding-bottom:24px;display:grid;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";background:var(--gold);width:1px;position:absolute;top:12px;bottom:-12px;left:90px}.timeline li:last-child:before{display:none}.timeline li:after{content:"";background:var(--forest);width:9px;height:9px;box-shadow:0 0 0 3px var(--card), 0 0 0 4px var(--gold);border-radius:50%;position:absolute;top:12px;left:86px}.timeline time{font-family:var(--font-display), serif;text-align:right;color:var(--forest);font-size:30px;font-weight:500;line-height:1.1}.timeline strong{font-family:var(--font-display), serif;color:var(--forest);font-size:22px;font-weight:600;line-height:1.3;display:block}.timeline span{color:var(--muted);font-size:14px;line-height:1.4;display:block}.event h3 span,.event-address span{display:block}.event-address{color:var(--muted);margin-top:8px;font-size:15px;line-height:1.5}.event iframe{border-radius:var(--radius);background:var(--paper-deep);border:0;width:100%;height:220px;margin-top:20px;display:block}.event-link{border:1px solid var(--gold);border-radius:var(--radius);color:var(--forest);margin-top:16px;padding:11px 8px;font-size:14px;font-weight:400;text-decoration:none;display:block}.gallery{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.gallery button{background:0 0;border:0;padding:0}.gallery img{aspect-ratio:4/5;object-fit:cover;width:100%}.gallery .wide{grid-column:span 2}.gallery .wide img{aspect-ratio:3/2}.lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--paper);background:#101a13f0;border:0;margin:0;padding:0}.lightbox[open]{flex-direction:column;display:flex}.lightbox img{object-fit:contain;flex:1;width:100%;min-height:0}.lightbox-bar{justify-content:center;align-items:center;gap:16px;padding:8px 16px 16px;display:flex}.lightbox-bar button{width:44px;height:44px;color:inherit;background:0 0;border:0;font-size:26px}.form{gap:18px;font-size:15px;font-weight:400;display:grid}.form label{display:block}.form small{opacity:.75;font-weight:300}.form input:not([type=radio]),.form textarea{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);width:100%;color:var(--ink);font:inherit;margin-top:6px;padding:11px 12px;font-size:16px;display:block}.honeypot{left:-9999px;width:1px!important;position:absolute!important}.choice{border:0;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;display:grid}.choice-stack{grid-template-columns:1fr}.choice legend{margin-bottom:6px;padding:0}.choice label{position:relative}.choice input{opacity:0;position:absolute}.choice span{border:1px solid var(--line);border-radius:var(--radius);text-align:center;flex-direction:column;justify-content:center;height:100%;min-height:48px;padding:10px 12px;line-height:1.35;display:flex}.choice small{margin-top:2px;font-size:13px}.choice input:checked+span{border-color:var(--gold-light);background:var(--gold-light);color:var(--forest-deep)}.choice input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}.section:not(.dark) .choice span{border-color:var(--gold)}.button{border-radius:var(--radius);background:var(--forest);min-height:48px;color:var(--paper);border:0;padding:12px 20px;font-weight:500}.dark .button{background:var(--gold-light);color:var(--forest-deep)}.button:disabled{opacity:.6}.form-error{border-radius:var(--radius);color:#8f1d14;background:#fff1ee;padding:8px 12px;font-size:14px}.form-note{color:var(--muted);font-size:14px}.form-done{border:1px solid var(--gold-light);border-radius:var(--radius);font-family:var(--font-display), serif;text-align:center;padding:24px 16px;font-size:23px;line-height:1.35}.wishes{gap:12px;margin-top:32px;padding:0;list-style:none;display:grid}.wishes li{border-radius:var(--radius);background:var(--paper-deep);padding:16px}.wish-stream{height:400px;margin-top:32px;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 12% 88%,#0000);mask-image:linear-gradient(#0000,#000 12% 88%,#0000)}.wish-stream .wishes{will-change:transform;margin-top:0;animation:linear infinite wish-drift}.wish-stream:hover .wishes,.wish-stream:active .wishes{animation-play-state:paused}.wishes p{overflow-wrap:anywhere;white-space:pre-line}.wishes cite{color:var(--forest);margin-top:6px;font-size:14px;font-style:normal;font-weight:500;display:block}.closing{text-align:center;min-height:560px;color:var(--paper);justify-content:center;align-items:flex-end;padding:40px 16px 28px;display:flex;position:relative;overflow:hidden}.closing:before{content:"";z-index:1;background:linear-gradient(#0000 40%,#101a13d9);position:absolute;inset:0}.closing-body{z-index:2;position:relative}.closing-thanks{font-family:var(--font-script), cursive;color:var(--gold-light);font-size:44px;line-height:1.2}.closing small a{color:inherit}.closing small{opacity:.7;max-width:250px;margin:14px auto 0;font-size:11px;line-height:1.4;display:block}.gifts{gap:24px;display:grid}.gift{background:var(--card);flex-direction:column;align-items:center;padding:24px 16px;font-size:15px;display:flex}.gift h3{font-family:var(--font-display), serif;color:var(--forest);margin-bottom:16px;font-size:26px;font-weight:500}.gift img{margin-bottom:16px}.gift-account{letter-spacing:.04em;font-size:20px;font-weight:500}.copy{border:1px solid var(--gold);border-radius:var(--radius);min-height:44px;color:var(--forest);background:0 0;margin-top:12px;padding:8px 16px;font-size:14px}.admin{max-width:1000px;margin:0 auto;padding:32px 16px 64px;font-weight:400}.admin h1,.admin h2{font-family:var(--font-display), serif;font-weight:600}.admin h2{margin:36px 0 12px;font-size:26px}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.admin-head a{color:var(--forest)}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:20px;display:grid}.admin-stats div{background:var(--paper-deep);padding:14px}.admin-stats strong{color:var(--forest);font-size:28px;line-height:1.2;display:block}.admin-stats span{font-size:13px}.admin-scroll{overflow-x:auto}.admin table{border-collapse:collapse;width:100%;font-size:14px}.admin th,.admin td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}.admin-delete{color:#8f1d14;background:0 0;border:0;text-decoration:underline}.admin-wishes{margin:0;padding:0;list-style:none}.admin-wishes li{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:12px 0;display:flex}.admin-wishes p{overflow-wrap:anywhere}@media (min-width:700px){body{background:var(--forest-deep)}main{box-shadow:0 0 60px #00000059}.gifts{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.reveal{animation:linear both rise;animation-timeline:view();animation-range:entry entry 30%}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.wish-stream{height:auto;max-height:420px;overflow-y:auto;-webkit-mask-image:none;mask-image:none}.wish-stream li[aria-hidden]{display:none}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes pulse{50%{opacity:.45}}@keyframes leaf-fall{to{transform:translateY(112vh)}}@keyframes leaf-sway{0%{transform:translate(-40px)rotate(0)}to{transform:translate(40px)rotate(420deg)}}@keyframes wish-drift{to{transform:translateY(calc(-50% - 6px))}}
