@font-face{font-family:Playfair Display;font-style:italic;font-weight:500;font-display:swap;src:url(../media/35161b7740c25d33-s.0izitdbyxo4j2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:italic;font-weight:500;font-display:swap;src:url(../media/391e53907fa6d8ec-s.p.0vmd737txk1h4.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:Playfair Display;font-style:italic;font-weight:500;font-display:swap;src:url(../media/ae8872c8a32e309c-s.0iqen1t80zg64.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:Playfair Display;font-style:italic;font-weight:500;font-display:swap;src:url(../media/70e3db2de7f94926-s.p.39pl-v7c3qrze.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:Playfair Display;font-style:italic;font-weight:600;font-display:swap;src:url(../media/35161b7740c25d33-s.0izitdbyxo4j2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:italic;font-weight:600;font-display:swap;src:url(../media/391e53907fa6d8ec-s.p.0vmd737txk1h4.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:Playfair Display;font-style:italic;font-weight:600;font-display:swap;src:url(../media/ae8872c8a32e309c-s.0iqen1t80zg64.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:Playfair Display;font-style:italic;font-weight:600;font-display:swap;src:url(../media/70e3db2de7f94926-s.p.39pl-v7c3qrze.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:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/14e23f9b59180572-s.p.0t8ljjjn9wtsx.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:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.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:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.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:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/65c558afe41e89d6-s.3jppgd0xzx-0d.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/14e23f9b59180572-s.p.0t8ljjjn9wtsx.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:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b49b0d9b851e4899-s.2zyohmvb-ks7f.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:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2a65768255d6b625-s.p.3u4lli0-axodc.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:Playfair Display Fallback;src:local(Times New Roman);ascent-override:97.25%;descent-override:22.56%;line-gap-override:0.0%;size-adjust:111.26%}.playfair_display_5d8b41ef-module__2du7vG__className{font-family:Playfair Display,Playfair Display Fallback}.playfair_display_5d8b41ef-module__2du7vG__variable{--font-playfair:"Playfair Display", "Playfair Display Fallback"}
@font-face{font-family:Dancing Script;font-style:normal;font-weight:500;font-display:swap;src:url(../media/32fe63294b6cd18c-s.p.0tc1fqk3fgfsz.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:Dancing Script;font-style:normal;font-weight:500;font-display:swap;src:url(../media/73091b67359a1d13-s.22yt1aol_-g3w.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:Dancing Script;font-style:normal;font-weight:500;font-display:swap;src:url(../media/406d3fc8d5ec9f59-s.p.0mnr43et3sf34.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:Dancing Script;font-style:normal;font-weight:600;font-display:swap;src:url(../media/32fe63294b6cd18c-s.p.0tc1fqk3fgfsz.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:Dancing Script;font-style:normal;font-weight:600;font-display:swap;src:url(../media/73091b67359a1d13-s.22yt1aol_-g3w.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:Dancing Script;font-style:normal;font-weight:600;font-display:swap;src:url(../media/406d3fc8d5ec9f59-s.p.0mnr43et3sf34.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:Dancing Script;font-style:normal;font-weight:700;font-display:swap;src:url(../media/32fe63294b6cd18c-s.p.0tc1fqk3fgfsz.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:Dancing Script;font-style:normal;font-weight:700;font-display:swap;src:url(../media/73091b67359a1d13-s.22yt1aol_-g3w.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:Dancing Script;font-style:normal;font-weight:700;font-display:swap;src:url(../media/406d3fc8d5ec9f59-s.p.0mnr43et3sf34.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:Dancing Script Fallback;src:local(Arial);ascent-override:112.99%;descent-override:34.39%;line-gap-override:0.0%;size-adjust:81.43%}.dancing_script_7758bfe-module__yrIKJW__className{font-family:Dancing Script,Dancing Script Fallback;font-style:normal}.dancing_script_7758bfe-module__yrIKJW__variable{--font-calli:"Dancing Script", "Dancing Script 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-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.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-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.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-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.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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a3bcb02a0e9e5d11-s.p.25pbmqxk8u2s7.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.0n_ln9vqskgts.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.2wu4yy186g04j.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_af40a3a3-module__Cx0ImG__className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.be_vietnam_pro_af40a3a3-module__Cx0ImG__variable{--font-bvp:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
:root{--ink:#3a2f2a;--paper:#fbf4ea;--red:#d6243a;--gold:#caa45a;--shadow:0 18px 50px -20px #3c281e8c}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%;font-family:var(--font-bvp), "Be Vietnam Pro", sans-serif;color:var(--ink);background:#bcd6ef;overflow:hidden}#sky{z-index:0;transition:background 1.6s;position:fixed;inset:0}#grain{z-index:2;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:fixed;inset:0}canvas{touch-action:none;display:block}.ui{z-index:5;pointer-events:none;position:fixed}.ui *{pointer-events:auto}.brand{top:max(18px, env(safe-area-inset-top));left:22px}.brand h1{font-family:var(--font-calli), "Dancing Script", cursive;letter-spacing:.5px;color:#fff;text-shadow:0 3px 18px #46281e66;font-size:clamp(34px,8vw,52px);font-weight:700;line-height:1}.brand p{color:#fff;opacity:.85;letter-spacing:2.5px;text-transform:uppercase;margin-top:3px;font-size:12px;font-weight:300}.wx{top:max(18px, env(safe-area-inset-top));flex-direction:column;align-items:flex-end;gap:8px;display:flex;right:18px}.wx-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);background:#ffffffc7;border:1px solid #fff9;border-radius:40px;align-items:center;gap:9px;padding:8px 14px;font-size:13px;font-weight:500;display:flex}.wx-badge .dot{font-size:18px;line-height:1}.wx-switch{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff8c;border:1px solid #ffffff80;border-radius:30px;gap:4px;padding:4px;display:flex}.wx-switch button{font:inherit;color:#6b5a4f;cursor:pointer;background:0 0;border:none;border-radius:20px;padding:6px 10px;font-size:11px;font-weight:500;transition:all .25s}.wx-switch button.on{color:var(--red);background:#fff;box-shadow:0 2px 8px #3c281e2e}.hint{bottom:max(20px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;letter-spacing:.3px;white-space:nowrap;background:#3a2f2a80;border-radius:30px;align-items:center;gap:8px;padding:9px 18px;font-size:12.5px;font-weight:300;animation:3.5s ease-in-out infinite floaty;display:flex;left:50%;transform:translate(-50%)}.hint b{color:#ffd9a8;font-weight:600}@keyframes floaty{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-4px)}}@media (max-width:760px){.hint{white-space:normal;text-align:center;letter-spacing:.2px;max-width:min(86vw,340px);bottom:max(14px, env(safe-area-inset-bottom));padding:8px 14px;font-size:11px;line-height:1.5;display:block}}.write{bottom:max(76px, calc(env(safe-area-inset-bottom) + 56px));left:50%;transform:translate(-50%)}.write button{font:inherit;color:#fff;cursor:pointer;background:linear-gradient(135deg,#e63a4d,#c01730);border:none;border-radius:40px;align-items:center;gap:9px;padding:13px 26px;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 14px 34px -12px #c01730e6,inset 0 1px #ffffff4d}.write button:active{transform:scale(.96)}.scrim{z-index:9;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;background:#281c1673;justify-content:center;align-items:center;padding:24px;transition:all .4s;display:flex;position:fixed;inset:0}.scrim.show{opacity:1;visibility:visible}.card{background:radial-gradient(120% 120% at 50% 0%, #fff7eb 0%, var(--paper) 55%);width:min(380px,92vw);box-shadow:var(--shadow);background-clip:padding-box;border:1px solid #caa45a59;border-radius:20px;padding:30px 28px 26px;transition:all .45s cubic-bezier(.2,.9,.3,1.2);position:relative;transform:translateY(24px)scale(.96)}.scrim.show .card{transform:translateY(0)scale(1)}.card:before{content:"";pointer-events:none;border:1px solid #caa45a4d;border-radius:14px;position:absolute;inset:7px}.card .tag{letter-spacing:1px;text-transform:uppercase;color:#fff;background:var(--red);border-radius:20px;margin-bottom:16px;padding:5px 12px;font-size:11px;font-weight:600;display:inline-block}.card .seal{border:1.5px solid var(--red);width:42px;height:42px;color:var(--red);font-family:var(--font-calli), "Dancing Script", cursive;opacity:.6;border-radius:50%;place-items:center;font-size:17px;font-weight:700;display:grid;position:absolute;top:18px;right:18px;transform:rotate(-12deg)}.card .text{font-family:var(--font-calli), "Dancing Script", cursive;color:#43352d;margin:10px 0 18px;font-size:26px;line-height:1.5}.card .meta{color:#9a8472;border-top:1px dashed #9a847266;justify-content:space-between;align-items:center;padding-top:14px;font-size:11.5px;font-weight:300;display:flex}.card .close{width:38px;height:38px;box-shadow:var(--shadow);color:#6b5a4f;cursor:pointer;background:#fff;border:none;border-radius:50%;font-size:18px;display:block;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.composer{z-index:10;background:var(--paper);width:min(420px,100%);padding:24px 24px max(26px, env(safe-area-inset-bottom));border-radius:22px 22px 0 0;transition:transform .5s cubic-bezier(.2,.9,.3,1.1);position:fixed;bottom:0;left:50%;transform:translate(-50%,110%);box-shadow:0 -20px 60px -20px #3c281e80}.composer.show{transform:translate(-50%)}.composer-head{justify-content:center;align-items:center;gap:12px;margin-bottom:4px;display:flex}.composer-head h3{margin-bottom:0}.composer-head .lac{opacity:.9;mix-blend-mode:multiply;flex:none;width:64px;height:auto}.composer h3{font-family:var(--font-calli), "Dancing Script", cursive;margin-bottom:4px;font-size:30px;font-weight:700}.wish-field{background:#fffdf9;border:1px solid #9a847259;border-radius:14px;transition:border-color .2s;position:relative;overflow:hidden}.wish-field:focus-within{border-color:var(--gold)}.wish-field .lac-watermark{opacity:.12;pointer-events:none;mix-blend-mode:multiply;width:230px;height:auto;margin:auto;position:absolute;inset:0}.composer .sub{color:#9a8472;margin-bottom:16px;font-size:12.5px;font-weight:300}.themes{flex-wrap:wrap;gap:7px;margin-bottom:14px;display:flex}.themes button{font:inherit;color:#7a6557;cursor:pointer;background:#fff;border:1px solid #9a847266;border-radius:20px;padding:7px 12px;font-size:12px;font-weight:500;transition:all .2s}.themes button.on{color:#fff;border-color:#0000}.composer textarea{resize:none;width:100%;height:90px;font:inherit;color:#43352d;background:#fffdf9;border:1px solid #9a847259;border-radius:14px;outline:none;padding:12px 14px;font-size:14px}.composer textarea:focus{border-color:var(--gold)}.wish-field textarea{background:0 0;border:none;border-radius:14px;position:relative}.wish-field textarea:focus{border:none}.composer .row{gap:10px;margin-top:14px;display:flex}.composer .row button{font:inherit;cursor:pointer;border:none;border-radius:14px;flex:1;padding:13px;font-size:14px;font-weight:600}.composer .row button:disabled{opacity:.6;cursor:default}.btn-cancel{color:#7a6557;background:#efe7da}.btn-send{color:#fff;background:linear-gradient(135deg,#e63a4d,#c01730);box-shadow:0 10px 24px -10px #c01730cc}.toast{z-index:20;opacity:0;color:#fff;pointer-events:none;box-shadow:var(--shadow);background:#3a2f2a;border-radius:30px;padding:12px 22px;font-size:13px;font-weight:500;transition:all .4s;position:fixed;bottom:36px;left:50%;transform:translate(-50%,30px)}.toast.show{opacity:1;transform:translate(-50%)}#loader{z-index:50;color:#fff;background:#bcd6ef;place-items:center;transition:opacity .8s;display:grid;position:fixed;inset:0}#loader .l-inner{text-align:center}#loader .lamp{transform-origin:top;font-size:46px;animation:2.4s ease-in-out infinite sway;display:inline-block}@keyframes sway{0%,to{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}#loader p{font-family:var(--font-calli), "Dancing Script", cursive;text-shadow:0 2px 10px #3c281e4d;margin-top:14px;font-size:24px}#loader.hide{opacity:0;pointer-events:none}.focus-hud{z-index:12;color:#eef3e6;width:min(420px,100%);padding:18px 20px max(22px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1c261aeb;border-radius:22px 22px 0 0;transition:transform .5s cubic-bezier(.2,.9,.3,1.1);position:fixed;bottom:0;left:50%;transform:translate(-50%,115%);box-shadow:0 -20px 60px -20px #0009}.focus-hud.show{transform:translate(-50%)}.fh-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.fh-online{color:#cfe0c2;font-size:13px;font-weight:500}.fh-leave{font:inherit;color:#eef3e6;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:18px;padding:7px 14px;font-size:12.5px;font-weight:600}.fh-leave:hover{background:#fff3}.fh-top-btns{align-items:center;gap:8px;display:flex}.fh-min{font:inherit;color:#eef3e6;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;line-height:1;display:flex}.fh-min:hover{background:#fff3}.fh-mini{z-index:12;left:50%;bottom:max(16px, env(safe-area-inset-bottom));align-items:center;gap:8px;animation:3.5s ease-in-out infinite floaty;display:flex;position:fixed;transform:translate(-50%)}.fh-mini-main,.fh-mini-leave{font:inherit;cursor:pointer;color:#eef3e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1c261aeb;border:1px solid #ffffff24;box-shadow:0 8px 24px -10px #0009}.fh-mini-main{white-space:nowrap;border-radius:24px;align-items:center;gap:10px;padding:9px 16px;display:flex}.fh-mini-online{color:#bfe0b0;font-size:13px;font-weight:600}.fh-mini-time{font-family:var(--font-playfair), "Playfair Display", serif;letter-spacing:.5px;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.fh-mini-time.focus{color:#ffd9a0}.fh-mini-time.break{color:#9fe0c8}.fh-mini-caret{opacity:.7;font-size:10px}.fh-mini-leave{border-radius:22px;padding:9px 14px;font-size:12.5px;font-weight:600}.flip-clock{justify-content:center;align-items:center;gap:4px;margin-bottom:16px;display:flex}.flip-card{width:34px;height:46px;font-family:var(--font-playfair), "Playfair Display", serif;color:#f6f0df;background:linear-gradient(#3b4a36 0 50%,#2c3829 50% 100%);border-radius:7px;justify-content:center;align-items:center;font-size:30px;font-weight:700;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #0006,0 4px 10px -4px #0009}.flip-card:after{content:"";background:#00000073;height:1px;position:absolute;top:50%;left:0;right:0}.flip-colon{color:#9fb88c;padding:0 1px;font-size:26px;font-weight:700}.pomo{text-align:center;border-top:1px solid #ffffff1a;padding-top:14px}.pomo-time{font-family:var(--font-playfair), "Playfair Display", serif;letter-spacing:1px;color:#f6f0df;font-size:52px;font-weight:700;line-height:1}.pomo-time.focus{color:#ffd9a0}.pomo-time.break{color:#a8e0c0}.pomo-label{color:#b9c9ac;margin:4px 0 12px;font-size:12.5px}.pomo-presets{justify-content:center;gap:7px;margin-bottom:12px;display:flex}.pomo-presets button{font:inherit;color:#d7e3cb;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:16px;padding:6px 14px;font-size:12px;font-weight:600}.pomo-presets button.on{color:#fff;background:#6f9a52;border-color:#0000}.pomo-row{gap:10px;display:flex}.pomo-row button{font:inherit;cursor:pointer;border:none;border-radius:14px;flex:1;padding:12px;font-size:14px;font-weight:600}.pomo-go{color:#fff;background:linear-gradient(135deg,#7cb35f,#4f8a3a)}.pomo-reset{color:#dfe9d4;background:#ffffff1a}.fh-name{margin-top:14px}.fh-name label{color:#9fb88c;margin-bottom:5px;font-size:11.5px;display:block}.fh-name input{width:100%;font:inherit;color:#eef3e6;background:#ffffff12;border:1px solid #ffffff29;border-radius:12px;outline:none;padding:10px 12px;font-size:14px}.fh-name input:focus{border-color:#7cb35f}.navdock{z-index:8;right:max(16px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed}.nav-scrim{z-index:-1;cursor:default;background:0 0;border:none;position:fixed;inset:0}.nav-items{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.nav-item{font:inherit;cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:none;align-items:center;gap:10px;padding:0;transition:opacity .28s,transform .28s cubic-bezier(.2,.9,.3,1.3);display:flex;transform:translateY(14px)scale(.9)}.navdock.open .nav-item{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.nav-label{text-align:right;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);background:#ffffffd9;border:1px solid #fff9;border-radius:14px;flex-direction:column;align-items:flex-end;padding:6px 12px;line-height:1.15;display:flex}.nav-label b{color:var(--ink);font-size:13px;font-weight:600}.nav-label i{color:#9a8472;font-size:10.5px;font-style:normal;font-weight:400}.nav-ic{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:46px;height:46px;box-shadow:var(--shadow);background:#ffffffe6;border:1px solid #fff9;border-radius:50%;flex:none;place-items:center;font-size:22px;transition:transform .2s;display:grid}.nav-item:active .nav-ic{transform:scale(.9)}.nav-item.on .nav-ic{border-color:var(--gold);box-shadow:0 0 0 2px #caa45a8c, var(--shadow);background:linear-gradient(135deg,#fff3df,#ffe2b8)}.nav-item.on .nav-label b{color:#c01730}.nav-fab{cursor:pointer;background-image:repeating-linear-gradient(0deg,#96784612 0 5px,#0000 5px 11px),linear-gradient(90deg,#e7d4a6 0%,#f6ead0 26%,#fffaee 50%,#f6ead0 74%,#e7d4a6 100%);border:none;border-radius:4px;place-items:center;width:52px;height:66px;transition:transform .3s cubic-bezier(.2,.9,.3,1.3);animation:3s ease-in-out infinite scrollglow;display:grid;position:relative}.nav-fab:before,.nav-fab:after{content:"";background:linear-gradient(#7a5230,#4a2f18 55%,#321f0f);border-radius:7px;height:13px;position:absolute;left:-6px;right:-6px;box-shadow:inset 0 1px #fff0d259,inset 0 -2px 3px #00000080,0 3px 6px -2px #0000008c}.nav-fab:before{top:-5px}.nav-fab:after{bottom:-5px}.nav-fab:active{transform:scale(.93)}.navdock.open .nav-fab{transform:translateY(-1px)scale(1.03)}.nav-fab-ic{font-family:var(--font-calli), "Dancing Script", cursive;color:#b81e33;text-shadow:0 1px #ffffff73;font-size:26px;font-weight:700;line-height:1}.navdock.open .nav-fab-ic{font-family:var(--font-bvp), "Be Vietnam Pro", sans-serif;font-size:20px}@keyframes scrollglow{0%,to{box-shadow:0 8px 18px -7px #462d1499,inset 0 0 10px #ffebaf66,0 0 #e2bc6e8c}50%{box-shadow:0 8px 18px -7px #462d1499,inset 0 0 14px #fff0be99,0 0 16px 4px #e8c47499}}@media (prefers-reduced-motion:reduce){.nav-fab{animation:none}}.skills-page{z-index:30;-webkit-overflow-scrolling:touch;color:var(--ink);background:linear-gradient(#cfe6d8 0%,#efe7d4 38%,#fbf4ea 100%);position:fixed;inset:0;overflow-y:auto}.skills-inner{max-width:680px;padding:max(20px, env(safe-area-inset-top)) 20px calc(40px + env(safe-area-inset-bottom));margin:0 auto}.skills-back{color:#5c6b50;box-shadow:var(--shadow);background:#ffffffb3;border:1px solid #ffffffb3;border-radius:30px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.skills-back:active{transform:scale(.97)}.skills-hero{margin:22px 2px 18px}.skills-hero h1{font-family:var(--font-calli), "Dancing Script", cursive;color:#3c5238;font-size:clamp(34px,9vw,50px);font-weight:700;line-height:1.05}.skills-hero p{color:#5e5346;margin-top:6px;font-size:14px;font-weight:300;line-height:1.5}.skills-hero b{color:#43352d;font-weight:600}.skills-tabs{gap:8px;margin-bottom:14px;display:flex}.skills-tab{font:inherit;color:#6b5a4f;cursor:pointer;background:#ffffffa6;border:1px solid #ffffffb3;border-radius:16px;flex:1;padding:11px 12px;font-size:14px;font-weight:600;transition:all .2s}.skills-tab.on{color:#3c5238;background:#fff;border-color:#7cb35f80;box-shadow:0 6px 18px -8px #3c503280}.skills-blurb{color:#6e6253;margin:0 2px 16px;font-size:13px;font-weight:300;line-height:1.55}.skills-list{flex-direction:column;gap:12px;display:flex}.skill-card{background:var(--paper);box-shadow:var(--shadow);border:1px solid #caa45a4d;border-radius:16px;overflow:hidden}.skill-head{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:14px 16px;display:grid}.skill-emoji{font-size:26px;line-height:1}.skill-headtext{flex-direction:column;min-width:0;display:flex}.skill-headtext b{color:#43352d;font-size:15px;font-weight:600}.skill-headtext i{color:#9a8472;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-style:normal;font-weight:300;overflow:hidden}.skill-meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.skill-time{color:#9a8472;white-space:nowrap;font-size:11px}.skill-level{border-radius:20px;padding:2px 8px;font-size:10.5px;font-weight:600}.skill-level.easy{color:#3f9d6b;background:#e3f1e2}.skill-level.mid{color:#c8852f;background:#faecd8}.skill-chev{color:#b9a78c;font-size:20px;transition:transform .3s}.skill-card.open .skill-chev{transform:rotate(180deg)}.skill-body{grid-template-rows:0fr;transition:grid-template-rows .32s;display:grid}.skill-card.open .skill-body{grid-template-rows:1fr}.skill-bodyin{padding:0 16px;overflow:hidden}.skill-card.open .skill-bodyin{padding:4px 16px 16px}.skill-body h4{letter-spacing:.6px;text-transform:uppercase;color:#a88f5f;margin:12px 0 6px;font-size:11px;font-weight:700}.skill-need ul{flex-wrap:wrap;gap:6px;list-style:none;display:flex}.skill-need li{color:#5c4c41;background:#fffdf8;border:1px solid #9a84724d;border-radius:20px;padding:5px 11px;font-size:12.5px}.skill-steps ol{padding-left:20px}.skill-steps li{color:#43352d;margin-bottom:7px;font-size:13.5px;line-height:1.55}.skill-steps li::marker{color:var(--red);font-weight:700}.skill-figure{background:#efe7d6;border:1px solid #9a847240;border-radius:12px;margin:14px 0 4px;line-height:0;overflow:hidden}.skill-figure img{object-fit:cover;width:100%;height:200px;display:block}.skill-tip{color:#6a5a3b;border-left:3px solid var(--gold);background:#fbf3df;border-radius:0 10px 10px 0;margin-top:12px;padding:10px 13px;font-size:13px;line-height:1.5}.skill-source{color:#8a7a52;border-bottom:1px dotted #b9a78c;margin-top:12px;font-size:12px;font-weight:500;text-decoration:none;display:inline-block}.skill-source:hover{color:#5c6b50}.skills-foot{text-align:center;font-family:var(--font-calli), "Dancing Script", cursive;color:#5c6b50;margin-top:28px;font-size:20px}.auth-row{background:#fff7eb99;border:1px dashed #caa45a80;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 14px;padding:10px 12px;display:flex}.auth-hint,.auth-who{color:#6e6253;flex:auto;font-size:12.5px}.auth-who b{color:var(--ink)}.auth-btns{gap:6px;display:flex}.auth-in,.auth-out{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #d8ccbd;border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:600}.auth-in.g{border-color:#d8ccbd}.auth-in.f{color:#fff;background:#1877f2;border-color:#1877f2}.auth-in:active,.auth-out:active{transform:scale(.97)}.wishes-page{z-index:30;-webkit-overflow-scrolling:touch;color:var(--ink);background:linear-gradient(#e7d7e6 0%,#f1e7d6 40%,#fbf4ea 100%);position:fixed;inset:0;overflow-y:auto}.wishes-inner{max-width:760px;padding:max(20px, env(safe-area-inset-top)) 20px calc(40px + env(safe-area-inset-bottom));margin:0 auto}.wishes-back{color:#7a5a72;box-shadow:var(--shadow);background:#ffffffb3;border:1px solid #ffffffb3;border-radius:30px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.wishes-back:active{transform:scale(.97)}.wishes-hero{margin:22px 2px 18px}.wishes-hero h1{font-family:var(--font-calli), "Dancing Script", cursive;color:#6b3a5f;font-size:clamp(34px,9vw,50px);font-weight:700;line-height:1.05}.wishes-hero p{color:#5e5346;margin-top:6px;font-size:14px;font-weight:300;line-height:1.5}.wishes-filters{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.wf-chip{font:inherit;color:#6b5a4f;cursor:pointer;background:#ffffffb3;border:1px solid #fffc;border-radius:30px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .18s}.wf-chip.on{color:#fff;background:var(--red);border-color:var(--red);box-shadow:0 6px 16px -8px #78283c99}.wishes-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.wish-tile{background:var(--paper);border:1px solid #caa45a4d;border-top:3px solid var(--gold);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;padding:14px 15px;display:flex}.wt-theme{text-transform:uppercase;letter-spacing:.03em;margin-bottom:7px;font-size:11.5px;font-weight:700}.wt-text{color:var(--ink);margin:0;font-size:14.5px;line-height:1.55}.wt-author{color:#9a8472;margin-top:10px;font-size:12.5px;font-style:italic}.wishes-pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:22px 0 6px;display:flex}.wp-btn{font:inherit;min-width:38px;height:38px;color:var(--ink);cursor:pointer;background:#ffffffb3;border:1px solid #caa45a66;border-radius:10px;padding:0 10px;font-size:14px;font-weight:600;transition:all .15s}.wp-btn.on{background:var(--red);border-color:var(--red);color:#fff}.wp-btn:disabled{opacity:.4;cursor:default}.wp-gap{color:#9a8472;padding:0 2px}.wishes-status{text-align:center;color:#6e6253;margin:28px 0;font-size:14px}.wishes-status.err{color:var(--red)}.wishes-count{text-align:center;color:#9a8472;margin-top:8px;font-size:12.5px}
