@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff) format("woff")}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/playfair-display-vietnamese-700-normal-CaKJSIny.woff2) format("woff2"),url(/assets/playfair-display-vietnamese-700-normal-Cr1rw0mr.woff) format("woff")}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/playfair-display-latin-700-normal-CuDiGg7c.woff2) format("woff2"),url(/assets/playfair-display-latin-700-normal-Bc_1Q1cG.woff) format("woff")}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dancing-script-vietnamese-700-normal-DHSNEjs8.woff2) format("woff2"),url(/assets/dancing-script-vietnamese-700-normal-BxaLPXNn.woff) format("woff")}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dancing-script-latin-700-normal-CX8AaSVl.woff2) format("woff2"),url(/assets/dancing-script-latin-700-normal-LI5MgW9m.woff) format("woff")}:root{--bg: #fff5f8;--surface: #ffffff;--blush: #ffe3ec;--rose-200: #ffc2d4;--rose-300: #ffa3bf;--primary: #d42a6a;--on-primary: #ffffff;--wine: #6b1535;--on-wine: #ffffff;--peach: #ffb38a;--ink-fixed: #3d1526;--ink: #3d1526;--ink-muted: #8a5068;--border: #c9728f;--focus: #6b1535;--danger: #b3261e;--shadow-soft: 0 4px 16px rgba(212, 42, 106, .12);--shadow-float: 0 16px 40px rgba(107, 21, 53, .18);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 28px;--radius-pill: 999px;--dur-fast: .16s;--dur-base: .42s;--dur-slow: 2.4s;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-soft: cubic-bezier(.22, 1, .36, 1);--font-display: "Playfair Display", Georgia, serif;--font-sans: "Be Vietnam Pro", system-ui, sans-serif;--font-script: "Dancing Script", cursive;--nav-h: 64px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #1f1217;--surface: #2b1a21;--blush: #3a222c;--rose-200: #5a3344;--rose-300: #b85a7a;--primary: #ff8fb3;--on-primary: #3a0d1f;--wine: #8f2a52;--peach: #e89a6e;--ink: #fde8ef;--ink-muted: #d4a3b5;--border: #a8627c;--focus: #ffd1e0;--danger: #ffb4ab;--shadow-soft: 0 4px 16px rgba(0, 0, 0, .3);--shadow-float: 0 16px 40px rgba(0, 0, 0, .45)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/26px var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}h1,h2,p{margin:0}a{color:var(--primary)}img{max-width:100%}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.h-hero{font:700 clamp(38px,9vw,56px)/1.05 var(--font-display)}.h-title{font:700 clamp(26px,6vw,32px)/1.15 var(--font-display)}.script{font:700 32px/1.1 var(--font-script);color:var(--primary)}.muted{color:var(--ink-muted);font-size:14px;line-height:22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:0;cursor:pointer;text-decoration:none;min-height:48px;font:600 15px/20px var(--font-sans);padding:14px 26px;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-soft);transition:transform var(--dur-fast) var(--ease-spring),box-shadow var(--dur-fast) var(--ease-soft),opacity var(--dur-fast)}.btn svg{width:18px;height:18px;fill:currentColor}@media(hover:hover){.btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:var(--shadow-float)}.btn:hover svg{animation:beat .7s var(--ease-soft) infinite}}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.55;cursor:progress;transform:none}.btn--ghost{background:transparent;color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--border)}.btn--soft{background:var(--blush);color:var(--ink);box-shadow:none}.btn--sm{min-height:36px;padding:8px 16px;font-size:13px}.btn--block{width:100%}.field{display:grid;gap:var(--space-2)}.field label{font:600 13px/18px var(--font-sans);letter-spacing:.02em}.input{width:100%;min-height:50px;font:400 16px/26px var(--font-sans);color:var(--ink);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:11px var(--space-4);transition:border-color var(--dur-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:var(--ink-muted)}.input:focus{border-color:var(--primary)}textarea.input{min-height:120px;resize:vertical}.panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:clamp(24px,6vw,40px);display:grid;gap:20px;align-content:start}.error{color:var(--danger);font-size:14px;line-height:22px}.avatar{width:88px;height:88px;flex:none;border-radius:var(--radius-pill);display:grid;place-items:center;font:700 34px/1 var(--font-display);background:var(--wine);color:var(--on-wine)}.avatar--b{background:var(--peach);color:var(--ink-fixed)}.rise{animation:rise var(--dur-base) var(--ease-spring) both;animation-delay:calc(var(--i, 0) * .12s)}.reveal{opacity:0;translate:0 28px;transition:opacity var(--dur-base) var(--ease-soft),translate var(--dur-base) var(--ease-spring)}.reveal.in{opacity:1;translate:0 0}.page-enter-active,.page-leave-active{transition:opacity .2s var(--ease-soft),transform .2s var(--ease-soft)}.page-enter-from{opacity:0;transform:translateY(12px)}.page-leave-to{opacity:0;transform:translateY(-8px)}@keyframes rise{0%{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}@keyframes beat{0%,to{scale:1}15%{scale:1.25}30%{scale:1}45%{scale:1.15}}@keyframes pulse{0%{transform:scale(1);opacity:.7}to{transform:scale(2.8);opacity:0}}@keyframes float-up{0%{transform:translateY(0) rotate(-8deg);opacity:0}15%{opacity:.9}to{transform:translateY(-220px) rotate(12deg);opacity:0}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;translate:0 0}}.guide[data-v-a334cdeb]{border:0;width:min(92vw,420px);color:var(--ink)}.guide[data-v-a334cdeb]::backdrop{background:#0006}.guide ol[data-v-a334cdeb]{padding-left:20px;margin:12px 0;display:grid;gap:6px}.top[data-v-d09a62c2]{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.logo[data-v-d09a62c2]{font:700 28px/1 var(--font-script);color:var(--primary);text-decoration:none}.links[data-v-d09a62c2]{display:none;gap:32px}.links a[data-v-d09a62c2]{font:600 14px/20px var(--font-sans);color:var(--ink-muted);text-decoration:none;padding-bottom:4px;border-bottom:2px solid transparent;transition:color var(--dur-fast),border-color var(--dur-fast)}.links a[data-v-d09a62c2]:hover,.links a.router-link-exact-active[data-v-d09a62c2]{color:var(--primary);border-color:var(--primary)}.tabs[data-v-d09a62c2]{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1fr auto 1fr;align-items:center;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);box-shadow:0 -4px 20px #6b15351a;border-radius:24px 24px 0 0}.tab[data-v-d09a62c2]{display:grid;justify-items:center;gap:2px;text-decoration:none;color:var(--ink-muted);font:600 11px/14px var(--font-sans);padding:8px 0;transition:color var(--dur-fast)}.tab svg[data-v-d09a62c2]{width:24px;height:24px;fill:currentColor;transition:transform var(--dur-fast) var(--ease-spring)}.tab.router-link-exact-active[data-v-d09a62c2]{color:var(--primary)}.tab.router-link-exact-active svg[data-v-d09a62c2]{transform:translateY(-2px) scale(1.12)}.tab--add[data-v-d09a62c2]{padding:0 12px}.plus[data-v-d09a62c2]{width:60px;height:60px;margin-top:-26px;border-radius:var(--radius-pill);display:grid;place-items:center;background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-float);border:4px solid var(--bg);transition:transform var(--dur-fast) var(--ease-spring)}.plus svg[data-v-d09a62c2]{width:26px;height:26px}.tab--add:active .plus[data-v-d09a62c2]{transform:scale(.9)}.tab--add.router-link-exact-active .plus svg[data-v-d09a62c2]{animation:beat var(--dur-slow) var(--ease-soft) infinite;transform:none}@media(min-width:760px){.top[data-v-d09a62c2]{padding:20px 48px}.logo[data-v-d09a62c2]{font-size:30px}.links[data-v-d09a62c2]{display:flex}.tabs[data-v-d09a62c2]{display:none}}.shell{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.shell--app{min-height:auto;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}@media(min-width:760px){.shell--app{padding-bottom:48px}}
