@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");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}:root{--bg:#fff;--surface:#f4f8f6;--surface-strong:#e9f1ed;--card:#fff;--ink:#0f1f17;--ink-2:#55655c;--ink-3:#7d8b83;--line:#dce6e0;--line-strong:#c3d3ca;--accent:#12805c;--accent-hover:#0e6b4c;--accent-ink:#fff;--accent-soft:#e2f3eb;--accent-text:#0b6447;--danger:#b42318;--danger-soft:#fdecea;--warning:#8a5a00;--warning-soft:#fff4dc;--radius-sm:8px;--radius:12px;--radius-lg:18px;--radius-pill:999px;--font:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--shadow-card:0 1px 2px #0f1f170a, 0 8px 24px #0f1f170f;--focus-ring:0 0 0 3px #12805c47;--maxw:1120px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700;line-height:1.2}p{margin:0}a{color:var(--accent-text)}button,input{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}.btn{border-radius:var(--radius-pill);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn-ghost:hover{border-color:var(--ink-2)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:0 14px;font-size:14px}.btn[aria-busy=true]{opacity:.7;cursor:progress}.link-btn{color:var(--accent-text);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.link-btn:disabled{color:var(--ink-3);cursor:default;text-decoration:none}.field{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.input{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--card);min-height:46px;padding:0 14px;font-size:16px;font-weight:400;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.alert{border-radius:var(--radius-sm);padding:10px 14px;font-size:14px}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-info{background:var(--accent-soft);color:var(--accent-text)}.wordmark{letter-spacing:-.03em;color:var(--ink);font-size:20px;font-weight:800;text-decoration:none}.wordmark span{color:var(--accent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.site-header{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#ffffffeb;position:sticky;top:0}.site-header-inner{justify-content:space-between;align-items:center;min-height:64px;display:flex}.site-nav{align-items:center;gap:16px;display:flex}.site-nav-link{color:var(--ink-2);font-size:15px;font-weight:600;text-decoration:none}.site-nav-link:hover{color:var(--ink)}.hero{padding-top:96px;padding-bottom:72px}.hero h1{max-width:15ch;font-size:clamp(2.3rem,5.5vw,4rem)}.hero mark{background:var(--accent-soft);color:inherit;border-radius:6px;padding:0 .15em}.hero-lead{max-width:52ch;color:var(--ink-2);margin-top:20px;font-size:1.12rem}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.features{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding-bottom:96px;display:grid}.feature-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}.feature-card h2{margin-bottom:8px;font-size:1.1rem}.feature-card p{color:var(--ink-2);font-size:.97rem}.site-footer{border-top:1px solid var(--line);color:var(--ink-2);font-size:14px}.site-footer-inner{justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:24px;display:flex}.auth-page{background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:32px 16px;display:flex}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-card);padding:32px 28px}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-form h1,.auth-done h1{margin-bottom:6px;font-size:1.5rem}.auth-sub{color:var(--ink-2);font-size:.95rem}.auth-sub strong{color:var(--ink);word-break:break-all}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:14px;display:flex}.auth-foot{color:var(--ink-2);text-align:center;font-size:13px}.auth-done{text-align:center;padding:12px 0}.check-circle{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:50%;place-items:center;margin:0 auto 16px;animation:.35s ease-out pop;display:grid}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.code-input{justify-content:space-between;gap:8px;display:flex}.code-box{aspect-ratio:5/6;text-align:center;width:100%;max-width:52px;font-size:1.6rem;font-weight:700;font-family:var(--font-mono);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);transition:border-color .15s,box-shadow .15s}.code-box:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.code-input.is-invalid .code-box{border-color:var(--danger)}.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.turnstile:empty{display:none}.app{flex-direction:column;min-height:100vh;display:flex}.app-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:60px;padding:0 20px;display:flex}.app-topbar-right{align-items:center;gap:12px;min-width:0;display:flex}.app-user{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.plan-badge{border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--ink-2);padding:3px 10px;font-size:12px;font-weight:700}.plan-badge.plan-pro{background:var(--accent-soft);color:var(--accent-text)}.app-empty{text-align:center;background:var(--surface);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px 20px;display:flex}.app-empty p{color:var(--ink-2);max-width:46ch}.app-loading{background:var(--surface);min-height:100vh}@media (width<=560px){.hero{padding-top:56px}.app-user{display:none}.auth-card{padding:24px 18px}}
