@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{--page:#f6f7f9;--surface:#fff;--raised:#f1f3f7;--ink:#111827;--ink-secondary:#4b5563;--ink-muted:#6b7280;--accent:#2451e0;--accent-hover:#1d43c2;--accent-tint:#c9d5fb;--accent-wash:#eef2fe;--on-accent:#fff;--hairline:#e4e7ec;--hairline-strong:#cfd4dc;--good:#0e7a53;--good-wash:#e6f5ee;--warn:#a45a06;--warn-wash:#fdf3e1;--bad:#c0362c;--shadow:0 1px 2px #1118270a, 0 8px 24px #1118270f;--radius:16px;--sans:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--page:#0c0e13;--surface:#151821;--raised:#1c2029;--ink:#e9ebf0;--ink-secondary:#a8afbd;--ink-muted:#8a92a3;--accent:#7d9bff;--accent-hover:#98b0ff;--accent-tint:#3a4a7a;--accent-wash:#7d9bff1f;--on-accent:#0c0e13;--hairline:#262b36;--hairline-strong:#363d4b;--good:#4fd1a0;--good-wash:#4fd1a01f;--warn:#f2b545;--warn-wash:#f2b5451f;--bad:#ff8a80;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--page:#0c0e13;--surface:#151821;--raised:#1c2029;--ink:#e9ebf0;--ink-secondary:#a8afbd;--ink-muted:#8a92a3;--accent:#7d9bff;--accent-hover:#98b0ff;--accent-tint:#3a4a7a;--accent-wash:#7d9bff1f;--on-accent:#0c0e13;--hairline:#262b36;--hairline-strong:#363d4b;--good:#4fd1a0;--good-wash:#4fd1a01f;--warn:#f2b545;--warn-wash:#f2b5451f;--bad:#ff8a80;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--page);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;margin:0;font-size:16px;line-height:1.55}a{color:var(--accent)}a:focus-visible,button:focus-visible,summary:focus-visible,[role=button]:focus-visible,input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{max-width:720px;margin:0 auto;padding:20px 20px 64px}.topbar{justify-content:space-between;align-items:center;gap:16px;padding-bottom:20px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-name{letter-spacing:-.02em;font-size:18px;font-weight:700}.logo-mark{flex:none;display:block}.topbar-end{align-items:center;gap:14px;display:flex}.theme-toggle{border:1px solid var(--hairline-strong);background:var(--surface);width:38px;height:38px;color:var(--ink-secondary);cursor:pointer;border-radius:10px;place-items:center;padding:0;transition:border-color .15s,color .15s;display:inline-grid}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle svg{width:18px;height:18px}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}.topbar-note{color:var(--ink-muted);margin:0;font-size:14px;font-weight:500}.hero{text-align:center;padding:40px 0 28px}.hero h1{letter-spacing:-.03em;text-wrap:balance;max-width:18ch;margin:0 auto;font-size:44px;font-weight:800;line-height:1.1}.tagline{max-width:52ch;color:var(--ink-secondary);text-wrap:pretty;margin:16px auto 0;font-size:17px;line-height:1.6}.panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.dropzone{border:2px dashed var(--hairline-strong);text-align:center;cursor:pointer;border-radius:12px;padding:40px 20px;transition:border-color .18s,background .18s}.dropzone:hover,.dropzone:focus-visible,.dropzone.over{border-color:var(--accent);background:var(--accent-wash);outline:none}.drop-icon{background:var(--accent-wash);width:48px;height:48px;color:var(--accent);border-radius:12px;margin:0 auto 14px;padding:11px;display:block}.drop-title{letter-spacing:-.01em;margin:0;font-size:19px;font-weight:700}.drop-sub{color:var(--ink-muted);margin:6px 0 0;font-size:14px}.drop-link{color:var(--accent);font-weight:600}.error-text{color:var(--bad);margin:16px 0 0;font-size:14px;font-weight:500}.limit-chips{border:none;min-width:0;margin:22px 0 0;padding:0}.limit-chips legend,.chips-label{color:var(--ink-secondary);margin:0 0 10px;padding:0;font-size:14px;font-weight:600}.trust{color:var(--ink-secondary);flex-wrap:wrap;justify-content:center;gap:10px 24px;margin:20px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.trust li{align-items:center;gap:8px;display:inline-flex}.trust-icon{width:18px;height:18px;color:var(--good);flex:none}.file-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:22px;padding-bottom:16px;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:16px;font-weight:600;overflow:hidden}.file-meta{color:var(--ink-muted);white-space:nowrap;margin:0;font-size:14px}.target-value{text-align:center;letter-spacing:-.03em;margin:0;font-size:48px;font-weight:800;line-height:1.1}.target-hint{text-align:center;min-height:24px;color:var(--ink-secondary);margin:8px 0 24px;font-size:15px}.slider-wrap{position:relative}.track{background:var(--raised);height:8px;box-shadow:inset 0 0 0 1px var(--hairline);border-radius:4px;position:absolute;top:14px;left:0;right:0;overflow:hidden;transform:translateY(-50%)}.track-fill{background:var(--accent);position:absolute;inset:0 auto 0 0}.track-hatch{z-index:1;background:repeating-linear-gradient(135deg, var(--warn-wash) 0 5px, transparent 5px 10px);border-right:2px solid var(--warn);position:absolute;inset:0 auto 0 0}input[type=range]{appearance:none;z-index:2;background:0 0;width:100%;height:28px;margin:0;display:block;position:relative}input[type=range]::-webkit-slider-runnable-track{background:0 0;height:28px}input[type=range]::-moz-range-track{background:0 0;height:28px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--surface);border:2px solid var(--accent);cursor:pointer;border-radius:50%;width:22px;height:22px;margin-top:3px;box-shadow:0 1px 4px #11182733}input[type=range]::-moz-range-thumb{background:var(--surface);border:2px solid var(--accent);cursor:pointer;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #11182733}.track-labels{color:var(--ink-muted);justify-content:space-between;margin-top:6px;font-size:13px;display:flex}.floor-note{color:var(--ink-muted);margin:10px 0 0;font-size:13px}.chips{flex-wrap:wrap;gap:8px;margin:0;display:flex}.panel>.chips-label{margin-top:24px}.chip{border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:7px 15px;font-size:14px;font-weight:600;transition:border-color .15s,color .15s,background .15s}.chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chip.active,.chip.active:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip.below-floor:not(.active){color:var(--warn);border-style:dashed;border-color:var(--warn)}.chip:disabled{opacity:.4;cursor:default}.actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}button{font:inherit}.btn-primary,.btn-ghost{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:11px 22px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:var(--surface);border-color:var(--hairline-strong);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink-muted)}button:disabled{opacity:.5;cursor:default}.progress-headline{color:var(--ink-secondary);margin:0;font-size:15px;font-weight:600}.slow-note{color:var(--ink-secondary);margin:10px 0 0;font-size:14px;line-height:1.55}.steps{margin:16px 0 0;padding:0;font-size:14px;list-style:none}.steps li{border-bottom:1px solid var(--hairline);color:var(--ink-muted);padding:10px 0}.steps li:last-child{border-bottom:none}.steps li.done{color:var(--ink-secondary)}.ellipsis{opacity:.5}.steps li .tag{font-weight:600}.steps li .tag.under{color:var(--good)}.steps li .tag.over{color:var(--warn)}.badge{border-radius:999px;margin:0 0 14px;padding:5px 12px;font-size:13px;font-weight:700;display:inline-block}.badge-good{background:var(--good-wash);color:var(--good)}.badge-warn{background:var(--warn-wash);color:var(--warn)}.result-detail{color:var(--ink-secondary);margin:0 0 20px;font-size:16px}.sizes{grid-template-columns:1fr 1fr;gap:12px;display:grid}.sizes>div{background:var(--raised);text-align:center;border-radius:12px;padding:16px}.size-label{color:var(--ink-muted);font-size:13px;font-weight:600;display:block}.size-value{letter-spacing:-.02em;margin-top:4px;font-size:26px;font-weight:800;display:block}.warnings{color:var(--warn);margin:16px 0 0;padding-left:18px;font-size:14px}.warnings:empty{display:none}.countdown{color:var(--ink-muted);margin:18px 0 0;font-size:13px}.countdown.soon{color:var(--bad)}.tip-note{color:var(--ink-muted);margin:14px 0 0;font-size:14px}.tip-link{color:var(--accent);font-weight:600;text-decoration:none}.tip-link:hover{text-decoration:underline}.landing{margin-top:64px}.band+.band{margin-top:48px}.band-title{letter-spacing:-.02em;margin:0 0 18px;font-size:22px;font-weight:800}.guide-body{max-width:68ch;color:var(--ink-secondary);margin:0 0 14px;font-size:16px;line-height:1.7}.guide-tips-title{margin:22px 0 10px;font-size:16px;font-weight:700}.guide-tips{gap:10px;margin:0;padding:0;list-style:none;display:grid}.guide-tips li{color:var(--ink-secondary);padding-left:26px;font-size:15px;line-height:1.6;position:relative}.guide-tips li:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:.55em;left:4px}.steps-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;list-style:none;display:grid}.step{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;padding:20px}.step-num{background:var(--accent-wash);width:28px;height:28px;color:var(--accent);border-radius:50%;place-items:center;font-size:14px;font-weight:800;display:inline-grid}.step-title{margin:12px 0 4px;font-size:16px;font-weight:700}.step-body{color:var(--ink-secondary);margin:0;font-size:14px;line-height:1.6}.faq{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;overflow:hidden}.faq-item+.faq-item{border-top:1px solid var(--hairline)}.faq-item summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;font-weight:600;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:var(--ink-muted);flex:none;font-size:20px;font-weight:400;line-height:1}.faq-item[open] summary:after{content:"−"}.faq-item p{color:var(--ink-secondary);margin:0;padding:0 20px 18px;font-size:15px;line-height:1.6}.size-group+.size-group{margin-top:16px}.size-group-title{color:var(--ink-secondary);margin:0 0 10px;font-size:14px;font-weight:600}.size-links{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.size-links a{border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s;display:block}.size-links a:hover{border-color:var(--accent);color:var(--accent)}.size-links a[aria-current=page]{background:var(--accent-wash);border-color:var(--accent);color:var(--accent)}.notfound-links{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.notfound-links a{border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none;display:block}.notfound-links a:hover{border-color:var(--accent);color:var(--accent)}.site-foot{border-top:1px solid var(--hairline);color:var(--ink-muted);margin-top:64px;padding-top:24px;font-size:14px}.site-foot p{margin:12px 0 0}.brand-small .brand-name{font-size:15px}.foot-links{flex-wrap:wrap;gap:20px;margin-top:12px;display:flex}.foot-links a{color:var(--ink-secondary);font-weight:500;text-decoration:none}.foot-links a:hover{color:var(--ink);text-decoration:underline}@media (width<=640px){.steps-grid{grid-template-columns:1fr}}@media (width<=480px){.shell{padding:16px 16px 48px}.topbar-note{display:none}.hero{padding:28px 0 22px}.hero h1{font-size:32px}.tagline{font-size:16px}.panel{padding:18px}.dropzone{padding:28px 14px}.target-value{font-size:40px}.trust{flex-direction:column;align-items:flex-start;padding-left:4px}.actions>*{flex:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
