@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.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:#fafaf7;--surface:#fff;--ink:#14201e;--ink-2:#4d5b58;--line:#e2e4dd;--line-strong:#c6cac0;--brand:#0f766e;--brand-dark:#0b5d57;--brand-soft:#e0f2ef;--danger:#b91c1c;--danger-soft:#fdecec;--ok:#166534;--tile:var(--brand);--tile-soft:var(--brand-soft);--radius:14px;--radius-sm:9px;--font:"Inter Variable", system-ui, -apple-system, "Segoe UI", "Noto Sans", sans-serif;--display:"Bricolage Grotesque Variable", "Inter Variable", system-ui, sans-serif}[data-color=teal]{--tile:#0f766e;--tile-soft:#e0f2ef}[data-color=red]{--tile:#b4232a;--tile-soft:#fce9e8}[data-color=indigo]{--tile:#4338ca;--tile-soft:#e9e8fb}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--font);flex-direction:column;min-height:100dvh;margin:0;display:flex}main{flex:1}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;margin:0;line-height:1.15}h1{font-size:clamp(2rem,1.5rem + 2.4vw,3.1rem);font-weight:700}h2{font-size:clamp(1.4rem,1.25rem + .7vw,1.75rem);font-weight:650}h3{font-size:1.15rem;font-weight:650}p{margin:0}a{color:var(--brand-dark)}img,svg,canvas{max-width:100%}svg{flex:none;display:inline-block}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}.skip{position:absolute;left:-999px}.skip:focus{z-index:20;background:var(--surface);padding:.5rem 1rem;top:1rem;left:1rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[hidden]{display:none!important}.site-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;position:sticky;top:0}.site-header__row{justify-content:space-between;align-items:center;gap:1rem;min-height:64px;display:flex}.site-header nav{gap:.25rem;display:flex}.site-header nav a{color:var(--ink);border-radius:var(--radius-sm);padding:.55rem .75rem;font-weight:500;text-decoration:none;transition:background-color .15s}.site-header nav a:hover{background:var(--brand-soft)}.site-header nav a[aria-current=page]{color:var(--brand-dark);background:var(--brand-soft)}.logo{font:600 1.15rem var(--display);color:var(--ink);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.logo b{color:var(--brand);font-weight:700}.site-footer{background:var(--surface);border-top:1px solid var(--line);margin-top:5rem;padding-block:3rem 1.5rem}.site-footer__grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2rem;display:grid}.site-footer__brand{grid-column:span 2;max-width:22rem}.site-footer__brand p{color:var(--ink-2);margin-top:.75rem;font-size:.95rem}.site-footer h2{font:600 .95rem var(--font);letter-spacing:0;margin-bottom:.6rem}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li a{color:var(--ink-2);padding-block:.2rem;text-decoration:none;display:inline-block}.site-footer li a:hover{color:var(--brand-dark);text-decoration:underline}.site-footer__legal{border-top:1px solid var(--line);color:var(--ink-2);margin-top:2.5rem;padding-top:1.25rem;font-size:.9rem}@media (width<=560px){.site-footer__brand{grid-column:1/-1}}.hero{padding-block:clamp(2.5rem,6vw,4.5rem) 2rem}.hero h1{max-width:17ch}.hero p{color:var(--ink-2);max-width:38rem;margin-top:1rem;font-size:1.15rem}.hero__points{color:var(--ink);flex-wrap:wrap;gap:.5rem 1.5rem;margin:1.25rem 0 0;padding:0;font-weight:500;list-style:none;display:flex}.hero__points li{align-items:center;gap:.4rem;display:inline-flex}.hero__points svg{color:var(--brand)}.block{margin-top:3.5rem}.block__head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.block>h2{margin-bottom:1.25rem}.cat-title{margin:2.25rem 0 1rem}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:1rem;display:grid}.tool-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);flex-direction:column;gap:.5rem;padding:1.35rem;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.tool-card:hover{border-color:var(--tile);transform:translateY(-2px)}.tool-card__icon{background:var(--tile-soft);width:50px;height:50px;color:var(--tile);border-radius:12px;flex:none;place-items:center;display:inline-grid}.tool-card__name{font:650 1.2rem var(--display);margin-top:.4rem}.tool-card__summary{color:var(--ink-2);flex:1;font-size:.95rem}.tool-card__go{color:var(--tile);align-items:center;gap:.3rem;margin-top:.4rem;font-size:.92rem;font-weight:600;display:inline-flex}.why{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem 2.5rem;display:grid}.why h3{margin:.6rem 0 .3rem}.why p{color:var(--ink-2)}.why svg{color:var(--brand)}.post-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:1rem;display:grid}.post-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);padding:1.35rem;text-decoration:none;transition:border-color .15s;display:block}.post-card:hover{border-color:var(--brand)}.post-card time{color:var(--ink-2);font-size:.875rem}.post-card h3{margin:.35rem 0 .45rem}.post-card p{color:var(--ink-2);font-size:.95rem}.page-head{padding-block:clamp(2rem,5vw,3.5rem) 1rem}.page-head p{color:var(--ink-2);max-width:40rem;margin-top:.75rem;font-size:1.1rem}.prose{max-width:44rem;font-size:1.0625rem;line-height:1.7}.prose>*+*{margin-top:1.1rem}.prose h2{margin-top:2.25rem}.prose h3{margin-top:1.75rem}.prose ul,.prose ol{margin-bottom:0;padding-left:1.4rem}.prose li+li{margin-top:.35rem}.prose table{border-collapse:collapse;width:100%;font-size:.97rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);padding:.55rem .7rem}.post-meta{color:var(--ink-2);margin-top:.75rem}.post-cta{background:var(--brand-soft);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:44rem;margin-top:2.5rem;padding:1.35rem;display:flex}.crumbs{color:var(--ink-2);flex-wrap:wrap;gap:.4rem;padding-top:1.25rem;font-size:.9rem;display:flex}.crumbs a{color:var(--ink-2)}.tool-head{align-items:flex-start;gap:1rem;margin-top:1.1rem;display:flex}.tool-head h1{font-size:clamp(1.8rem,1.5rem + 1.4vw,2.5rem)}.tool-head p{color:var(--ink-2);max-width:42rem;margin-top:.3rem}.tool-app{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:1.5rem;padding:clamp(1rem,2.5vw,1.5rem)}.tool-info{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));align-items:start;gap:2.5rem;margin-top:3rem;display:grid}.tool-info h2{margin-bottom:1rem}.steps{counter-reset:s;margin:0;padding:0;list-style:none}.steps li{counter-increment:s;color:var(--ink);padding:0 0 .9rem 2.6rem;position:relative}.steps li:before{content:counter(s);background:var(--tile-soft);width:1.8rem;height:1.8rem;color:var(--tile);border-radius:50%;place-items:center;font-size:.9rem;font-weight:700;display:grid;position:absolute;top:-.05rem;left:0}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;padding-block:.75rem;font-weight:600}.faq details p{color:var(--ink-2);padding-bottom:.9rem}.btn{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);min-height:44px;color:var(--ink);font:600 .97rem var(--font);cursor:pointer;justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1.05rem;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:hover:not(:disabled){background:#f1f2ec}.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn--primary:hover:not(:disabled){background:var(--brand-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-row{flex-wrap:wrap;gap:.6rem;display:flex}.drop{text-align:center;border:2px dashed var(--line-strong);border-radius:var(--radius);background:var(--bg);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-height:230px;padding:1.5rem;transition:border-color .15s,background-color .15s;display:flex;position:relative}.drop:hover,.drop.is-over{border-color:var(--tile);background:var(--tile-soft)}.drop:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:2px}.drop svg{color:var(--tile)}.drop strong{font:650 1.2rem var(--display)}.drop span{color:var(--ink-2);font-size:.95rem}.drop input{opacity:0;width:1px;height:1px;position:absolute}.drop .btn{pointer-events:none;background:var(--tile);border-color:var(--tile);color:#fff;margin-top:.5rem}.field{flex-direction:column;gap:.3rem;font-size:.95rem;font-weight:600;display:flex}.field select,.field input[type=number]{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:44px;color:var(--ink);font:400 1rem var(--font);width:100%;padding:.4rem .6rem}.field input[type=range]{width:100%;min-height:44px;accent-color:var(--tile);cursor:pointer}.notice{border-radius:var(--radius-sm);background:var(--tile-soft);padding:.75rem .9rem;font-size:.95rem}.notice--error{background:var(--danger-soft);color:var(--danger)}.privacy-note{color:var(--ink-2);align-items:center;gap:.45rem;margin-top:.9rem;font-size:.9rem;display:flex}.privacy-note svg{color:var(--brand)}.progress{background:var(--line);border-radius:99px;height:10px;overflow:hidden}.progress>i{background:var(--tile);border-radius:99px;width:0;height:100%;transition:width .2s;display:block}.stack>*+*{margin-top:.75rem}.wc{grid-template-columns:minmax(0,1fr) 300px;gap:1.25rem;display:grid}.wc textarea{resize:vertical;border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;min-height:380px;font:400 1.05rem/1.6 var(--font);color:var(--ink);background:var(--surface);padding:1rem;display:block}.wc__stats{grid-template-columns:1fr 1fr;align-content:start;gap:.6rem;display:grid}.stat{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;padding:.7rem .85rem}.stat b{font:700 1.4rem/1.25 var(--display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;display:block}.stat span{color:var(--ink-2);font-size:.875rem}.stat--big{background:var(--tile-soft);border-color:#0000;grid-column:1/-1}.stat--big b{color:var(--tile);font-size:2.4rem}.wc__keywords{margin-top:1.25rem}.wc__keywords h2{margin-bottom:.6rem;font-size:1.1rem}.kw{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.kw li{background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:.25rem .65rem;font-size:.9rem}.kw li small{color:var(--ink-2);margin-left:.35rem}@media (width<=820px){.wc{grid-template-columns:1fr}.wc textarea{min-height:260px}}.ic__settings{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-top:1.25rem;padding-top:1.25rem;display:grid}.ic__summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.ic__summary p{font-weight:600}.ic__list{gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.ic__row{border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:.9rem;padding:.6rem;display:grid}.ic__row img{object-fit:cover;background:var(--bg);border-radius:6px;width:60px;height:60px}.ic__name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.ic__meta{color:var(--ink-2);font-size:.9rem}.ic__meta b{color:var(--ok)}.ic__meta b.is-neutral{color:inherit;font-weight:500}.ic__meta b.is-worse,.ic__meta.is-error{color:var(--danger)}@media (width<=520px){.ic__row{grid-template-columns:48px minmax(0,1fr)}.ic__row img{width:48px;height:48px}.ic__row .btn{grid-column:1/-1}}.pw__file{border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem 1rem;display:flex}.pw__file b{overflow-wrap:anywhere}.pw__file span{color:var(--ink-2);font-size:.92rem;display:block}.pw__modes{border:0;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:.6rem;margin:1.1rem 0;padding:0;display:grid}.pw__modes legend{margin-bottom:.5rem;padding:0;font-weight:600}.choice{border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer;gap:.6rem;padding:.8rem .9rem;display:flex}.choice:has(input:checked){border-color:var(--tile);background:var(--tile-soft)}.choice input{accent-color:var(--tile);margin-top:.3rem}.choice b{display:block}.choice small{color:var(--ink-2);font-size:.9rem}.br{grid-template-columns:minmax(0,1fr) 260px;gap:1.25rem;display:grid}.br__stage{border-radius:var(--radius-sm);border:1px solid var(--line);background-color:#fff;background-image:conic-gradient(#e7e8e3 25%, #fff 0 50%, #e7e8e3 0 75%, #fff 0);background-size:22px 22px;place-items:center;min-height:320px;display:grid;position:relative;overflow:hidden}.br__stage canvas,.br__stage img{width:auto;max-width:100%;max-height:560px;display:block}.br__busy{text-align:center;background:#ffffffdb;flex-direction:column;justify-content:center;align-items:center;gap:.8rem;padding:1.5rem;font-weight:600;display:flex;position:absolute;inset:0}.br__busy .progress{width:min(260px,80%)}.br__side{flex-direction:column;gap:1rem;display:flex}.br__label{margin-bottom:.5rem;font-weight:600}.br__swatches{flex-wrap:wrap;gap:.5rem;display:flex}.swatch{border:2px solid var(--line-strong);cursor:pointer;background:var(--c,#fff);border-radius:50%;width:44px;height:44px;padding:0}.swatch[aria-pressed=true],.swatch.is-on{outline:3px solid var(--tile);outline-offset:2px}.swatch--none{background:conic-gradient(#d8dad3 25%, #fff 0 50%, #d8dad3 0 75%, #fff 0);background-size:14px 14px}.swatch--pick{background:conic-gradient(#ef4444,#eab308,#22c55e,#3b82f6,#a855f7,#ef4444);position:relative;overflow:hidden}.swatch--pick input{opacity:0;cursor:pointer;width:60px;height:60px;position:absolute;inset:-6px}.br__side .btn{width:100%}@media (width<=820px){.br{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.tool-card:hover{transform:none}}@media (width<=480px){.site-header__row{gap:.25rem}.logo{gap:.45rem;font-size:1rem}.site-header nav{gap:0}.site-header nav a{padding:.55rem .45rem;font-size:.95rem}}@media (width<=350px){.site-header nav a[href="/about/"]{display:none}}.consent{z-index:30;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem 1.25rem;max-width:620px;margin-inline:auto;padding:1rem 1.15rem;display:flex;position:fixed;bottom:1rem;left:1rem;right:1rem;box-shadow:0 8px 28px #14201e29}.consent p{flex:280px;font-size:.95rem}.link-btn{color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;padding:.2rem 0}.link-btn:hover{color:var(--brand-dark);text-decoration:underline}@media (width<=560px){.consent{border-radius:var(--radius) var(--radius) 0 0;border-width:1px 0 0;gap:.5rem;padding:.6rem .8rem;bottom:0;left:0;right:0}.consent p{flex-basis:100%;font-size:.875rem;line-height:1.4}.consent .btn-row{flex-wrap:nowrap;width:100%}.consent .btn{flex:1;padding-block:.3rem}}.sc__box{margin-top:1.25rem}.sc__box h2{margin-bottom:.6rem;font-size:1.1rem}.sc__list{max-height:420px;margin:0;padding-left:1.6rem;overflow:auto}.sc__list li{padding:.3rem 0}.sc__list li small{color:var(--ink-2);white-space:nowrap}.sc__list li.is-long{background:#fff4e5;border-radius:6px;padding-inline:.4rem}.sc__list li.is-long small{color:#8a4b08;font-weight:600}.cc__buttons{flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem;display:flex}.cc__text{resize:vertical;border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;min-height:300px;font:400 1.05rem/1.6 var(--font);color:var(--ink);background:var(--surface);padding:1rem;display:block}.cc__status{min-height:1.5em;color:var(--ink-2);margin-top:.5rem;font-size:.95rem}.field input.cv__color{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:100%;height:44px;padding:2px}
