@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.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}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.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{color-scheme:light dark;--bg:#f3f1ea;--surface:#fbfaf6;--sunk:#e9e6dc;--line:#d6d2c4;--ink:#16150f;--muted:#5d5a4f;--accent:#d93a1c;--accent-text:#b02a10;--on-accent:#fff;--good:#1d7a3e;--warn:#9a5b00;--bad:#c0281a;--sans:"Space Grotesk Variable", system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, monospace;--step-small:.875rem;--step-body:1.0625rem;--step-lead:clamp(1.1875rem, 1.05rem + .5vw, 1.4375rem);--step-head:clamp(1.625rem, 1.2rem + 1.6vw, 2.375rem);--step-display:clamp(2.5rem, 1.4rem + 4.6vw, 5.25rem);--wrap:1180px;--gutter:clamp(16px, 3vw, 32px);--radius:10px}@media (prefers-color-scheme:dark){:root{--bg:#0f0f0d;--surface:#181815;--sunk:#0a0a09;--line:#2e2d28;--ink:#edebe3;--muted:#a09d91;--accent:#ff5a36;--accent-text:#ff7a5c;--on-accent:#120a07;--good:#52c47c;--warn:#e6a640;--bad:#ff6b57}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100svh;color:var(--ink);font-family:var(--sans);font-size:var(--step-body);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;line-height:1.55;display:flex}main{flex:1}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;font-weight:600;line-height:1.08}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--accent-text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img,svg,canvas{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}code,kbd,.mono{font-family:var(--mono);font-size:.92em}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.wrap{width:100%;max-width:calc(var(--wrap) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.small{font-size:var(--step-small)}.muted{color:var(--muted)}.lead{font-size:var(--step-lead);text-wrap:pretty;max-width:44ch;line-height:1.4}.prose>*{max-width:68ch}.prose p+p,.prose p+ul,.prose ul+p{margin-top:.9em}.prose ul{padding-left:1.2em;list-style:outside}.prose li+li{margin-top:.35em}.kicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.page-head{padding-block:clamp(48px,7vw,96px) clamp(28px,4vw,48px)}.page-head h1{font-size:var(--step-display);margin-block:12px 18px}.section{border-top:1px solid var(--line);padding-block:clamp(32px,4vw,56px)}.section>h2{font-size:var(--step-head);margin-bottom:8px}.section>h2+p{margin-bottom:24px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(16px,2.4vw,28px)}.field{gap:6px;display:grid}.field label,.label{font-size:var(--step-small);color:var(--muted)}.input{border:1px solid var(--line);background:var(--bg);border-radius:8px;width:100%;min-height:48px;padding:10px 14px}.input:focus-visible{outline-offset:0}.button{border:1px solid var(--accent);background:var(--accent);min-height:48px;color:var(--on-accent);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{color:var(--on-accent);filter:brightness(1.08)}.button.ghost{color:var(--ink);border-color:var(--line);background:0 0}.button.ghost:hover{border-color:var(--ink)}.button:disabled{opacity:.55;cursor:progress}.stats{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;display:grid;overflow:hidden}.stat{background:var(--surface);align-content:start;gap:6px;padding:18px 20px;display:grid}.stat .value{font-family:var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,1.2rem + 1.2vw,2.125rem);font-weight:600;line-height:1.1}.stat .note{font-size:var(--step-small);color:var(--muted)}.tag{border:1px solid var(--line);font-family:var(--mono);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.75rem;display:inline-block}.tag.good{color:var(--good);border-color:currentColor}.tag.warn{color:var(--warn);border-color:currentColor}.tag.bad{color:var(--bad);border-color:currentColor}.table-scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px;font-size:var(--step-small)}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 14px}tr:last-child td{border-bottom:0}th{color:var(--muted);white-space:nowrap;font-weight:600}td.n,th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.status{min-height:1.5em}.tabs{background:var(--bg);border:1px solid var(--line);border-radius:8px;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex}[role=tab]{cursor:pointer;font-size:var(--step-small);background:0 0;border:0;border-radius:6px;padding:8px 14px;font-weight:500}[role=tab][aria-selected=true]{background:var(--ink);color:var(--bg)}.check{min-height:48px;font-size:var(--step-small);align-items:center;gap:8px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);flex:none}.findings{gap:8px;display:grid}.finding{border-left:4px solid var(--line);background:var(--bg);border-radius:0 8px 8px 0;padding:12px 16px}.finding.good{border-left-color:var(--good)}.finding.warn{border-left-color:var(--warn)}.finding.bad{border-left-color:var(--bad)}.finding .title{font-weight:600}.finding.bad .title{color:var(--bad)}.finding p+p{margin-top:2px}.drop{border:2px dashed var(--line);border-radius:var(--radius);background:var(--bg);text-align:center;place-items:center;gap:10px;min-height:180px;padding:24px;display:grid}.drop.over{border-color:var(--accent)}.source{color:var(--muted);margin-top:14px;font-size:.8125rem}.skip{z-index:10;background:var(--ink);color:var(--bg);padding:8px 12px;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.nav[data-astro-cid-wpvy4v7s]{border-bottom:1px solid var(--line)}.bar[data-astro-cid-wpvy4v7s]{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.mark[data-astro-cid-wpvy4v7s]{font-family:var(--mono);letter-spacing:-.02em;align-items:center;gap:9px;font-weight:600;text-decoration:none;display:inline-flex}.tld[data-astro-cid-wpvy4v7s]{color:var(--muted);font-weight:400}.dot[data-astro-cid-wpvy4v7s]{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:50%}ul[data-astro-cid-wpvy4v7s]{gap:clamp(4px,1.4vw,20px);display:flex}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{font-size:var(--step-small);padding:10px 6px;font-weight:500;text-decoration:none;display:inline-block}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.45em;text-decoration-thickness:2px}@media (width<=520px){.bar[data-astro-cid-wpvy4v7s]{flex-wrap:wrap;gap:0;padding-top:10px}nav[data-astro-cid-wpvy4v7s]{width:100%}ul[data-astro-cid-wpvy4v7s]{justify-content:space-between}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{padding-inline:0}}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);background:var(--surface);margin-top:clamp(56px,8vw,112px);padding-block:40px 28px}.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1.6fr repeat(5,1fr);gap:28px;display:grid}.mark[data-astro-cid-jo6i4kqk]{font-family:var(--mono);margin-bottom:10px;font-weight:600}.about[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk].small{max-width:36ch}.about[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]+p[data-astro-cid-jo6i4kqk]{margin-top:10px}ul[data-astro-cid-jo6i4kqk]{font-size:var(--step-small);gap:6px;margin-top:10px;display:grid}ul[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{text-decoration:none}ul[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{text-decoration:underline}.meta[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);margin-top:36px;padding-top:18px}@media (width<=900px){.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}.about[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}
