@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans Fallback;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_c1e9ef{font-family:DM Sans,DM Sans Fallback;font-style:normal}.__variable_c1e9ef{--font-dm-sans:"DM Sans","DM Sans Fallback"}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64418ffc17e50301-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0e96d314a90a6138-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba43ea3467e29870-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7ea2ab4a8ad1f81-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Mono Fallback;src:local("Arial");ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9ef920{font-family:DM Mono,DM Mono Fallback;font-style:normal}.__variable_9ef920{--font-dm-mono:"DM Mono","DM Mono Fallback"}:root{--em-50:#ecfdf5;--em-100:#d1fae5;--em-200:#a7f3d0;--em-300:#6ee7b7;--em-400:#34d399;--em-500:#10b981;--em-600:#059669;--em-700:#047857;--em-800:#065f46;--em-900:#064e3b;--sand-100:#fef9ef;--sand-200:#fdefc8;--sand-300:#fad97a;--sand-400:#f7c040;--sand-500:#e8a800;--n-0:#ffffff;--n-50:#fafaf8;--n-100:#f4f4f0;--n-150:#ebebe4;--n-200:#e2e2d8;--n-300:#c8c8bc;--n-400:#9e9e90;--n-500:#737367;--n-600:#55554a;--n-700:#3a3a30;--n-800:#252520;--n-900:#161610;--n-950:#0d0d09;--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--info:#3b82f6;--bg:var(--n-0);--bg-subtle:var(--n-50);--bg-raised:var(--n-100);--bg-overlay:var(--n-150);--fg:var(--n-900);--fg-2:var(--n-600);--fg-3:var(--n-400);--border:var(--n-200);--border-2:var(--n-300);--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:18px;--r-2xl:24px;--r-pill:999px;--s-xs:0 1px 2px rgba(0,0,0,0.04);--s-sm:0 2px 8px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);--s-md:0 4px 16px rgba(0,0,0,0.08),0 1px 4px rgba(0,0,0,0.04);--s-lg:0 8px 32px rgba(0,0,0,0.10),0 2px 8px rgba(0,0,0,0.04);--transition-fast:120ms cubic-bezier(0.4,0,0.2,1);--transition:180ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1);--font-sans:"DM Sans",system-ui,-apple-system,sans-serif;--font-mono:"DM Mono",ui-monospace,monospace}.dark,[data-theme=dark]{--bg:var(--n-950);--bg-subtle:var(--n-900);--bg-raised:var(--n-800);--bg-overlay:#1e1e18;--fg:var(--n-50);--fg-2:var(--n-400);--fg-3:var(--n-600);--border:rgba(255,255,255,0.08);--border-2:rgba(255,255,255,0.14);--s-xs:0 1px 2px rgba(0,0,0,0.3);--s-sm:0 2px 8px rgba(0,0,0,0.4);--s-md:0 4px 16px rgba(0,0,0,0.5);--s-lg:0 8px 32px rgba(0,0,0,0.6)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:var(--n-950);--bg-subtle:var(--n-900);--bg-raised:var(--n-800);--bg-overlay:#1e1e18;--fg:var(--n-50);--fg-2:var(--n-400);--fg-3:var(--n-600);--border:rgba(255,255,255,0.08);--border-2:rgba(255,255,255,0.14);--s-xs:0 1px 2px rgba(0,0,0,0.3);--s-sm:0 2px 8px rgba(0,0,0,0.4);--s-md:0 4px 16px rgba(0,0,0,0.5);--s-lg:0 8px 32px rgba(0,0,0,0.6)}}*,:after,:before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-size:15px;line-height:1.6;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;transition:background var(--transition),color var(--transition)}.lang-vi,[lang=vi],body{font-family:var(--font-sans)}.vietnamese-text{font-feature-settings:"liga" 1;text-rendering:optimizeLegibility}.mono{font-family:var(--font-mono)}.text-fg{color:var(--fg)}.text-fg-2{color:var(--fg-2)}.text-fg-3{color:var(--fg-3)}.text-em{color:var(--em-500)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes typing-dot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.animate-fade-in{animation:fade-in .3s ease-out both}.animate-fade-up{animation:fade-up .5s cubic-bezier(.22,1,.36,1) both}.animate-slide-up{animation:slide-up .3s ease-out both}.animate-pulse{animation:pulse 2.2s ease-in-out infinite}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--n-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--n-400)}.dark ::-webkit-scrollbar-thumb,[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--n-700)}.dark ::-webkit-scrollbar-thumb:hover,[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--n-600)}:focus-visible{outline:2px solid var(--em-500);outline-offset:2px}.skeleton{background:linear-gradient(90deg,var(--bg-raised) 25%,var(--bg-overlay) 50%,var(--bg-raised) 75%);background-size:400% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--r-xs)}::selection{background:var(--em-200);color:var(--em-900)}.dark ::selection,[data-theme=dark] ::selection{background:var(--em-800);color:var(--em-100)}