@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}:root{color-scheme:light;--bg:#fff;--surface:#f7f8fa;--surface-2:#eef1f5;--line:#e3e7ed;--line-strong:#cfd6e0;--ink:#10131a;--ink-2:#3d4658;--ink-3:#6b7488;--brand:#4f46e5;--brand-600:#4338ca;--brand-300:#a5b4fc;--brand-50:#eef2ff;--ok:#047857;--ok-bg:#ecfdf5;--warn:#b45309;--warn-bg:#fffbeb;--err:#be123c;--err-bg:#fff1f2;--tool:var(--brand);--tool-soft:var(--brand-50);--r-xs:8px;--r-sm:12px;--r:16px;--r-lg:22px;--r-xl:30px;--shadow-sm:0 1px 2px #10131a0d, 0 1px 3px #10131a0a;--shadow:0 2px 4px #10131a0a, 0 8px 20px -6px #10131a17;--shadow-lg:0 4px 8px #10131a0a, 0 20px 40px -12px #10131a24;--gap:clamp(1rem, .7rem + 1.4vw, 1.75rem);--section:clamp(3rem, 2rem + 5vw, 6rem);--shell:1140px;--shell-narrow:760px;--ease:cubic-bezier(.32, .72, 0, 1)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;tab-size:2;scroll-padding-top:5rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--bg);color:var(--ink);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-synthesis-weight:none;font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:clamp(1rem,.97rem + .14vw,1.0625rem);line-height:1.65;overflow-x:hidden}img,svg,canvas{max-width:100%;display:block}img{height:auto}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{letter-spacing:-.025em;text-wrap:balance;color:var(--ink);font-weight:680;line-height:1.15}h1{letter-spacing:-.035em;font-size:clamp(2rem,1.4rem + 3vw,3.25rem)}h2{letter-spacing:-.03em;font-size:clamp(1.5rem,1.2rem + 1.5vw,2.125rem)}h3{font-size:clamp(1.175rem,1.08rem + .5vw,1.375rem)}h4{font-size:1.0625rem;font-weight:640}p{text-wrap:pretty}a{color:var(--brand-600);text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);transition:color .15s var(--ease), text-decoration-color .15s var(--ease)}a:hover{text-decoration-color:currentColor}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-xs)}::selection{background:var(--brand-50);color:var(--brand-600)}.shell{width:min(100% - 2.25rem, var(--shell));margin-inline:auto}@media (width<=460px){.shell{width:min(100% - 1.75rem, var(--shell))}}.shell-narrow{width:min(100% - 2.25rem, var(--shell-narrow));margin-inline:auto}.section{padding-block:var(--section)}.stack>*+*{margin-top:var(--flow,1rem)}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:var(--r-sm);transition:transform .2s var(--ease);padding:.75rem 1.25rem;font-weight:600;position:absolute;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus-visible{transform:translateY(0)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:saturate(180%)blur(14px);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.site-header[data-scrolled=true]{border-bottom-color:var(--line);box-shadow:0 1px 20px -12px #10131a59}.site-header__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;display:flex}.brand{letter-spacing:-.03em;color:var(--ink);align-items:center;gap:.55rem;padding-block:.5rem;font-size:1.0625rem;font-weight:700;text-decoration:none;display:inline-flex}.brand__mark{border-radius:8px;flex:none;width:26px;height:26px}.brand__name b{font-weight:700}.brand__name span{color:var(--ink-3);font-weight:600}.nav-toggle{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;min-height:44px;padding:0 .9rem;font-size:.9375rem;font-weight:600;display:inline-flex}.nav-toggle__bars{gap:3px;width:15px;display:grid}.nav-toggle__bars i{background:var(--ink);height:1.5px;transition:transform .2s var(--ease), opacity .2s var(--ease);border-radius:2px}.nav-toggle[aria-expanded=true] .nav-toggle__bars i:first-child{transform:translateY(4.5px)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle__bars i:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] .nav-toggle__bars i:nth-child(3){transform:translateY(-4.5px)rotate(-45deg)}.site-nav a{color:var(--ink-2);border-radius:var(--r-sm);font-size:.9375rem;font-weight:550;text-decoration:none}.site-nav a[aria-current=page]{color:var(--ink);font-weight:650}@media (width<=899px){.site-nav{border-top:1px solid var(--line);flex-basis:100%;padding-block:.5rem 1.25rem;display:none}.site-nav[data-open=true]{display:block}.site-nav ul{gap:.125rem;padding:0;list-style:none;display:grid}.site-nav a{align-items:center;min-height:48px;padding-inline:.75rem;display:flex}.site-nav a[aria-current=page]{background:var(--surface)}}@media (width>=900px){.nav-toggle{display:none}.site-nav ul{align-items:center;gap:.25rem;padding:0;list-style:none;display:flex}.site-nav a{height:40px;transition:background .15s var(--ease), color .15s var(--ease);align-items:center;padding-inline:.75rem;display:inline-flex}.site-nav a:hover{background:var(--surface);color:var(--ink)}}.hero__grid{align-items:center;gap:2.5rem;display:grid}.hero__art{display:none}@media (width>=1000px){.hero__grid{grid-template-columns:1.15fr 1fr;gap:3rem}.hero__art{display:block}.hero__art svg{width:100%;height:auto}}.btn{--btn-bg:var(--ink);--btn-fg:#fff;background:var(--btn-bg);min-height:48px;color:var(--btn-fg);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;transition:transform .14s var(--ease), box-shadow .14s var(--ease), background .14s var(--ease), border-color .14s var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.35rem;font-size:.96875rem;font-weight:620;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.btn:active{box-shadow:none;transform:translateY(0)}.btn--primary{--btn-bg:var(--tool);--btn-fg:#fff}.btn--ghost{--btn-bg:var(--bg);--btn-fg:var(--ink);border-color:var(--line-strong)}.btn--ghost:hover{background:var(--surface)}.btn--soft{--btn-bg:var(--tool-soft);--btn-fg:var(--tool)}.btn--sm{min-height:40px;padding-inline:.95rem;font-size:.9rem}.btn[disabled]{opacity:.45;pointer-events:none}.btn-row{flex-wrap:wrap;gap:.625rem;display:flex}.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.25rem,1rem + 1vw,1.75rem)}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1rem;display:grid}.tool-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);color:inherit;transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);flex-direction:column;gap:.6rem;padding:1.375rem;text-decoration:none;display:flex;position:relative;overflow:hidden}.tool-card:after{content:"";background:var(--card-soft);opacity:0;width:220px;height:220px;transition:opacity .3s var(--ease);pointer-events:none;border-radius:50%;position:absolute;inset:auto -30% -60% auto}.tool-card:hover,.tool-card:focus-visible{border-color:color-mix(in srgb, var(--card-hue) 30%, var(--line));box-shadow:var(--shadow-lg);transform:translateY(-3px)}.tool-card:hover:after{opacity:.55}.tool-card>*{z-index:1;position:relative}.tool-card__icon{background:var(--card-soft);width:46px;height:46px;color:var(--card-hue);border-radius:14px;place-items:center;display:grid}.tool-card__title{letter-spacing:-.02em;font-size:1.125rem;font-weight:660}.tool-card__desc{color:var(--ink-2);font-size:.9375rem;line-height:1.55}.tool-card__meta{color:var(--card-hue);align-items:center;gap:.4rem;margin-top:auto;padding-top:.5rem;font-size:.8125rem;font-weight:600;display:flex}.pill{background:var(--tool-soft);color:var(--tool);letter-spacing:-.01em;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .75rem;font-size:.8125rem;font-weight:620;display:inline-flex}.pill--neutral{background:var(--surface-2);color:var(--ink-2)}.crumbs{color:var(--ink-3);padding-block:1rem 0;font-size:.8125rem}.crumbs ol{flex-wrap:wrap;align-items:center;gap:.4rem;padding:0;list-style:none;display:flex}.crumbs a{color:var(--ink-3);text-decoration:none}.crumbs a:hover{color:var(--ink)}.crumbs li+li:before{content:"/";color:var(--line-strong);margin-right:.4rem}.field{gap:.375rem;display:grid}.field>label,.label{color:var(--ink-2);letter-spacing:-.01em;font-size:.875rem;font-weight:620}.hint{color:var(--ink-3);font-size:.8125rem;line-height:1.5}.input,.textarea,.select{background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-sm);width:100%;min-height:48px;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:.7rem .875rem;font-size:1rem}.textarea{resize:vertical;min-height:9rem;line-height:1.6}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236b7488' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right .9rem center;background-repeat:no-repeat;padding-right:2.5rem}.input:focus,.textarea:focus,.select:focus{border-color:var(--tool);box-shadow:0 0 0 3px color-mix(in srgb, var(--tool) 16%, transparent);outline:none}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--err)}.error-text{color:var(--err);font-size:.8125rem;font-weight:550}.checkbox{cursor:pointer;grid-template-columns:1.25rem 1fr;align-items:start;gap:.7rem;font-size:.9375rem;line-height:1.55;display:grid}.checkbox input{width:1.25rem;height:1.25rem;accent-color:var(--tool);margin-top:.18rem}.range{width:100%;accent-color:var(--tool);height:44px}.segmented{background:var(--surface-2);border-radius:999px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{min-height:38px;color:var(--ink-2);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:999px;padding:0 .95rem;font-size:.875rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--bg);color:var(--ink);box-shadow:var(--shadow-sm)}.tool-hero{background:radial-gradient(60rem 22rem at 15% -10%, var(--tool-soft) 0%, transparent 62%), var(--bg);padding-block:clamp(1.75rem,1rem + 3vw,3rem) clamp(1.25rem,1rem + 1vw,2rem)}.tool-hero__lead{max-width:62ch;color:var(--ink-2);margin-top:.9rem;font-size:clamp(1.0625rem,1rem + .35vw,1.1875rem);line-height:1.6}.workbench{align-items:start;gap:1rem;display:grid}@media (width>=1000px){.workbench{grid-template-columns:minmax(320px,380px) 1fr;gap:1.25rem}.workbench__panel{overscroll-behavior:contain;max-height:calc(100vh - 6.5rem);position:sticky;top:5rem;overflow-y:auto}}.workbench__panel,.workbench__stage{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.1rem,.9rem + .8vw,1.5rem)}.workbench__stage{background:var(--surface);min-width:0}.panel-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.8125rem;font-weight:700;display:flex}.stage-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.paper{border-radius:var(--r-sm);box-shadow:var(--shadow);overscroll-behavior-x:contain;background:#fff;overflow:auto}.status{border-radius:var(--r-sm);align-items:center;gap:.5rem;padding:.7rem .9rem;font-size:.875rem;line-height:1.5;display:flex}.status--ok{background:var(--ok-bg);color:var(--ok)}.status--warn{background:var(--warn-bg);color:var(--warn)}.status--err{background:var(--err-bg);color:var(--err)}.empty-stage{text-align:center;min-height:16rem;color:var(--ink-3);border:1.5px dashed var(--line-strong);border-radius:var(--r);background:var(--bg);place-items:center;gap:.5rem;padding:2rem 1rem;display:grid}.prose{max-width:68ch}.prose>*+*{margin-top:1.1rem}.prose h2{margin-top:2.75rem}.prose h3{margin-top:2rem}.prose ul,.prose ol{gap:.5rem;padding-left:1.25rem;display:grid}.prose li::marker{color:var(--tool)}.prose strong{color:var(--ink);font-weight:640}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.7rem .85rem}.prose th{color:var(--ink);background:var(--surface);font-weight:640}.table-scroll{border:1px solid var(--line);border-radius:var(--r);overflow-x:auto}.callout{background:var(--tool-soft);border-radius:var(--r);padding:1.1rem 1.25rem;font-size:.9375rem;line-height:1.6}.faq{gap:.5rem;max-width:68ch;display:grid}.faq details{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);transition:border-color .2s var(--ease)}.faq details[open]{border-color:var(--line-strong)}.faq summary{cursor:pointer;min-height:56px;color:var(--ink);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;font-size:1rem;font-weight:620;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);width:11px;height:11px;transition:transform .2s var(--ease);flex:none;transform:rotate(45deg)translate(-2px,-2px)}.faq details[open] summary:after{transform:rotate(-135deg)translate(-2px,-2px)}.faq .faq__body{color:var(--ink-2);padding:0 1.1rem 1.1rem;font-size:.9375rem;line-height:1.65}.faq .faq__body>*+*{margin-top:.75rem}.site-footer{margin-top:var(--section);background:var(--surface);border-top:1px solid var(--line);padding-block:clamp(2.5rem,2rem + 2vw,3.5rem) 2rem;font-size:.9375rem}.site-footer__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:2rem;display:grid}.site-footer h2{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.75rem;font-size:.8125rem;font-weight:700}.site-footer ul{gap:.5rem;padding:0;list-style:none;display:grid}.site-footer a{color:var(--ink-2);text-decoration:none}.site-footer a:hover{color:var(--ink);text-decoration:underline}.site-footer__bottom{border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.25rem;margin-top:2.25rem;padding-top:1.5rem;font-size:.875rem;display:flex}@media print{.site-header,.site-footer,.crumbs,.no-print,.workbench__panel,.skip-link{display:none!important}body{background:#fff;font-size:11pt}.workbench,.workbench__stage{background:#fff;border:0;max-height:none;padding:0;display:block}.paper{box-shadow:none;border-radius:0;overflow:visible}a[href]:after{content:""}}
