@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-vietnamese-wdth-normal.rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-wdth-normal.DY7AcnAa.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-cyrillic-ext-opsz-normal.C5tfwALZ.woff2)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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-cyrillic-opsz-normal.DgmypKXX.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-greek-ext-opsz-normal.DGm64vGR.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-greek-opsz-normal.DFglUmAd.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-vietnamese-opsz-normal.Gqw5JQlq.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-latin-ext-opsz-normal.STiTPs0F.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(./literata-latin-opsz-normal.BHZsWIlc.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{--hue:108;--bg:oklch(.985 .003 var(--hue));--surface:oklch(100% 0 0);--tint:oklch(.955 .012 var(--hue));--ink:oklch(.23 .018 var(--hue));--ink-2:oklch(.42 .02 var(--hue));--line:oklch(.87 .012 var(--hue));--rule:oklch(80% .05 235);--hl:oklch(93% .19 108);--hl-soft:oklch(96% .1 108);--hl-deep:oklch(80% .19 112);--action:oklch(.24 .02 var(--hue));--action-ink:oklch(96% .1 108);--warn-bg:oklch(95% .05 70);--warn:oklch(42% .11 60);--err:oklch(50% .19 27);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--text-sm:clamp(.86rem, .83rem + .15vw, .93rem);--text-base:clamp(1rem, .97rem + .2vw, 1.09rem);--text-lg:clamp(1.18rem, 1.08rem + .45vw, 1.4rem);--text-xl:clamp(1.5rem, 1.25rem + 1.1vw, 2.1rem);--text-2xl:clamp(2.05rem, 1.5rem + 2.6vw, 3.6rem);--measure:66ch;--radius:10px;--ease:cubic-bezier(.22, 1, .36, 1);--sans:"Archivo Variable", "Arial Narrow", system-ui, sans-serif;--serif:"Literata Variable", Georgia, serif}*,:after,:before{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.6}h1,h2,h3{letter-spacing:-.015em;text-wrap:balance;font-weight:800;font-stretch:118%;line-height:1.08}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg);font-weight:750;font-stretch:105%}li,p{text-wrap:pretty}p{max-width:var(--measure)}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{-webkit-text-decoration-color:var(--hl-deep);text-decoration-color:var(--hl-deep);text-decoration-thickness:3px}img,svg{max-width:100%;display:block}:focus-visible{outline-offset:2px;border-radius:4px;outline:3px solid oklch(55% .2 260)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.num{font-variant-numeric:tabular-nums}.skip{background:var(--ink);color:var(--bg);padding:var(--space-3) var(--space-4);z-index:50;position:absolute;top:0;left:-999px}.skip:focus{left:var(--space-2)}.hl,mark{background:linear-gradient(100deg,transparent 0 .2em,var(--hl) .25em calc(100% - .2em),transparent calc(100% - .15em));color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 70%;background-repeat:no-repeat;background-size:100% 72%;padding:0 .12em}.wrap{width:min(100% - 2rem,72rem);margin-inline:auto}.prose{max-width:44rem}.prose>*+*{margin-top:var(--space-4)}.prose h2{margin-top:var(--space-12)}.prose h3{margin-top:var(--space-8)}.prose ol,.prose ul{gap:var(--space-2);padding-left:1.3rem;display:grid}.reading{font-family:var(--serif);font-size:calc(var(--text-base)*1.02);line-height:1.7}.reading h2,.reading h3{font-family:var(--sans)}.site-head{border-bottom:1px solid var(--line);background:var(--bg);z-index:20;position:sticky;top:0}.site-head .wrap{justify-content:space-between;gap:var(--space-4);min-height:60px}.brand,.site-head .wrap{align-items:center;display:flex}.brand{gap:var(--space-2);letter-spacing:-.01em;min-height:44px;font-size:1.12rem;font-weight:800;font-stretch:125%;text-decoration:none}.brand b{background:var(--hl);border-radius:2px;padding:0 .25em;font-weight:800;font-stretch:62%}.nav{gap:var(--space-1);display:flex}.nav,.nav a{align-items:center}.nav a{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:6px;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.nav a.router-link-exact-active,.nav a:hover{background:var(--tint)}.site-head .menu-btn{display:none}@media (width<=860px){.nav{background:var(--bg);border-bottom:1px solid var(--line);padding:var(--space-2) var(--space-4) var(--space-4);flex-direction:column;align-items:stretch;display:none;position:absolute;top:60px;left:0;right:0}.nav.open{display:flex}.site-head .menu-btn{display:inline-flex}}.btn{font:inherit;border:1.5px solid var(--action);min-height:44px;padding:0 var(--space-6);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);transition:background var(--ease) .15s,transform var(--ease) .12s,color .15s;border-radius:999px;font-weight:700;text-decoration:none;display:inline-flex}.btn.primary{background:var(--action);color:var(--action-ink)}.btn.primary:hover:not(:disabled){background:oklch(.32 .03 var(--hue))}.btn.primary:active:not(:disabled){transform:translateY(1px)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover:not(:disabled){background:var(--hl-soft)}.btn.sm{min-height:40px;padding:0 var(--space-4);font-size:var(--text-sm)}.btn:disabled{opacity:.45;cursor:not-allowed}.link-btn{font:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-1);cursor:pointer;text-underline-offset:3px;min-height:44px;color:var(--ink);background:0 0;border:0;font-weight:650;text-decoration:underline}.link-btn:hover{-webkit-text-decoration-color:var(--hl-deep);text-decoration-color:var(--hl-deep);text-decoration-thickness:3px}.tool{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=980px){.tool{grid-template-columns:1.08fr 1fr;align-items:start}}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-4);gap:var(--space-3);display:grid}@media (width>=600px){.sheet{padding:var(--space-6)}}.sheet label,.sheet legend{font-weight:700;font-size:var(--text-sm)}.label-row,.meta,.out-head{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.meta{font-size:var(--text-sm);color:var(--ink-2)}.meta .over{color:var(--err);font-weight:700}input[type=text],input[type=url],textarea{font:inherit;border:1px solid var(--line);width:100%;padding:var(--space-3);background:var(--surface);color:var(--ink);border-radius:8px}textarea{font-family:var(--serif);resize:vertical;background-image:repeating-linear-gradient(#0000 0 calc(1.6em - 1px),oklch(93% .02 235) calc(1.6em - 1px) 1.6em);background-attachment:local;background-position:0 var(--space-3);min-height:14rem;font-size:1rem;line-height:1.6}input::-moz-placeholder{color:oklch(.52 .02 var(--hue))}textarea::-moz-placeholder{color:oklch(.52 .02 var(--hue))}input::placeholder,textarea::placeholder{color:oklch(.52 .02 var(--hue))}input:focus,textarea:focus{border-color:var(--ink-2)}.url-row{gap:var(--space-2);display:grid}.url-field{gap:var(--space-2);display:flex}.url-field input{min-height:44px}.drop{gap:var(--space-3);padding:var(--space-3);border:1.5px dashed var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;display:flex}.file input{opacity:0;width:1px;height:1px;position:absolute}.file:focus-within{outline-offset:2px;outline:3px solid oklch(55% .2 260)}.hint,.note{color:var(--ink-2)}.busy,.hint,.note{font-size:var(--text-sm)}.busy{font-weight:650}.controls{gap:var(--space-4);display:grid}@media (width>=520px){.controls{grid-template-columns:auto 1fr;align-items:end}}.seg{gap:var(--space-1);border:0;flex-wrap:wrap;padding:0;display:flex}.seg legend{margin-bottom:var(--space-2)}.seg label{font-weight:600;font-size:var(--text-sm);border:1px solid var(--line);min-height:40px;padding:0 var(--space-3);cursor:pointer;border-radius:999px;align-items:center;display:inline-flex;position:relative}.seg label.on{background:var(--hl);border-color:var(--hl-deep)}.seg label:focus-within{outline-offset:2px;outline:3px solid oklch(55% .2 260)}.seg input{opacity:0;cursor:pointer;position:absolute;inset:0}.len{gap:var(--space-2);display:grid}.len.dim{opacity:.5}.len label b{margin-left:var(--space-1);font-weight:800}input[type=range]{width:100%;accent-color:oklch(.3 .03 var(--hue));min-height:44px}.go{width:100%;min-height:52px;font-size:1.05rem}.out{align-content:start;min-height:10rem}@media (width>=980px){.out{min-height:18rem}}.out h3{font-size:1.05rem;font-stretch:120%}.actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.strip{gap:var(--space-1);font-size:var(--text-sm);color:var(--ink-2);display:grid}.bar{background:repeating-linear-gradient(90deg,var(--tint) 0 6px,oklch(.92 .012 var(--hue)) 6px 7px);border-radius:2px;height:10px;overflow:hidden}.fill{background:var(--hl-deep);height:100%;transition:width .4s var(--ease);display:block}.summary{font-family:var(--serif);gap:var(--space-3);line-height:1.7;display:grid}.summary h3{font-family:var(--sans);margin-top:var(--space-2);font-size:1rem;font-stretch:110%}.summary h3:before{content:"";background:var(--hl);vertical-align:-.05em;border-radius:2px;width:.7em;height:.7em;margin-right:.4em;display:inline-block}.summary ul{gap:var(--space-2);padding-left:1.2rem;display:grid}.summary li::marker{color:var(--hl-deep)}.empty{color:var(--ink-2)}.warn{background:var(--warn-bg);color:var(--warn);padding:var(--space-3);border-radius:8px}.err,.warn{font-size:var(--text-sm)}.err{color:var(--err);font-weight:650}.skeleton{gap:var(--space-3);display:grid}.skeleton i{background:linear-gradient(90deg,var(--tint),var(--hl-soft),var(--tint));background-size:200% 100%;border-radius:3px;height:1rem;animation:1.2s linear infinite shimmer;display:block}.skeleton i:nth-child(2){width:92%}.skeleton i:nth-child(3){width:80%}.skeleton i:nth-child(4){width:55%}@keyframes shimmer{to{background-position:-200% 0}}.hero{padding:var(--space-8) 0 var(--space-6);gap:var(--space-4);display:grid}@media (width>=700px){.hero{padding-top:var(--space-12)}}.lede{font-size:var(--text-lg);color:var(--ink-2);max-width:46rem;line-height:1.45}.chips{gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;font-weight:600;display:flex}.chips span{border:1px solid var(--line);padding:var(--space-1) var(--space-3);background:var(--surface);border-radius:999px}section.band{padding:var(--space-16) 0}section.band.tinted{background:var(--tint)}section.band.drench{background:var(--hl)}.split{gap:var(--space-8);display:grid}@media (width>=900px){.split{grid-template-columns:1fr 1fr;align-items:start}}.tool-list{border-top:1.5px solid var(--ink);gap:0;padding:0;list-style:none;display:grid}.tool-list li{border-bottom:1px solid oklch(.23 .018 var(--hue)/.25)}.tool-list a{gap:var(--space-1) var(--space-4);padding:var(--space-4) var(--space-1);grid-template-columns:1fr auto;min-height:44px;text-decoration:none;display:grid}.tool-list a strong{font-size:1.08rem;font-stretch:115%}.tool-list a span{font-size:var(--text-sm);color:var(--ink);opacity:.85;grid-column:1}.tool-list a:after{content:"→";transition:transform .2s var(--ease);grid-area:1/2/span 2;align-self:center;font-weight:700}.tool-list a:hover:after{transform:translate(4px)}@media (width>=760px){.tool-list{-moz-column-gap:var(--space-8);column-gap:var(--space-8);grid-template-columns:1fr 1fr}}.steps{counter-reset:s;list-style:none;display:grid;gap:var(--space-4)!important;padding:0!important}.steps li{counter-increment:s;min-height:2.2rem;padding-top:.2rem;padding-left:3.1rem;position:relative}.steps li:before{content:counter(s);background:var(--hl);border-radius:4px;place-items:center;width:2.2rem;height:2.2rem;font-size:1.6rem;font-weight:800;font-stretch:62%;line-height:1;display:grid;position:absolute;top:0;left:0}.faq{border-top:1px solid var(--line);gap:0;display:grid}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;padding:var(--space-4) 0;justify-content:space-between;gap:var(--space-4);min-height:44px;font-weight:700;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";transition:transform .2s var(--ease);font-size:1.3rem;font-weight:800;line-height:1}.faq details[open] summary:after{transform:rotate(45deg)}.faq details p{padding-bottom:var(--space-4);color:var(--ink-2)}table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}td,th{text-align:left;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--line);vertical-align:top}th{border-bottom:1.5px solid var(--ink);font-weight:750}.table-wrap{overflow-x:auto}.site-foot{border-top:1.5px solid var(--ink);padding:var(--space-12) 0 var(--space-8);margin-top:var(--space-16);font-size:var(--text-sm)}.site-foot .cols{gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid}.site-foot ul{gap:0;padding:0;list-style:none;display:grid}.site-foot a{align-items:center;min-height:36px;text-decoration:none;display:inline-flex}.site-foot a:hover{text-decoration:underline}.site-foot h2{margin-bottom:var(--space-2);font-size:.95rem;font-stretch:110%}.site-foot .fine{margin-top:var(--space-8);color:var(--ink-2)}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.opts{border:1px solid var(--line);padding:0 var(--space-3);border-radius:8px}.opts summary{cursor:pointer;font-weight:700;font-size:var(--text-sm);align-items:center;min-height:44px;display:flex}.opts-grid{gap:var(--space-3);padding-bottom:var(--space-3);display:grid}@media (width>=520px){.opts-grid{grid-template-columns:1.4fr 1fr}}.opts-grid>div{gap:var(--space-1);display:grid}select{font:inherit;border:1px solid var(--line);width:100%;padding:0 var(--space-3);background:var(--surface);color:var(--ink);border-radius:8px}.opts input[type=text],select{min-height:44px}
