@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/barlow-400-latin.qiz4-Cze.woff2)format("woff2");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:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/barlow-400-latin-ext.HxX4XjxC.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/_astro/barlow-500-latin.BPAOfeC8.woff2)format("woff2");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:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/_astro/barlow-500-latin-ext.DOaysfXq.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-weight:700;font-display:swap;src:url(/_astro/barlow-700-latin.A9pxMQ4z.woff2)format("woff2");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:Barlow;font-style:normal;font-weight:700;font-display:swap;src:url(/_astro/barlow-700-latin-ext.BLuWmldJ.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/barlow-condensed-400-latin.Dc2u_eUW.woff2)format("woff2");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:Barlow Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/barlow-condensed-400-latin-ext.DPMBkgfB.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/barlow-condensed-600-latin.DepVgxBB.woff2)format("woff2");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:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/barlow-condensed-600-latin-ext.18ESti3H.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--color-bg:#f2f2f3;--color-surface:#e9e9ea;--color-text:#1d1f20;--color-accent:#5980a6;--color-divider:#1d1f2029;--color-neutral-100:#f5f5f8;--color-neutral-200:#e7e7ea;--color-neutral-300:#d4d4d7;--color-neutral-400:#b7b7ba;--color-neutral-500:#98989b;--color-neutral-600:#7a7a7d;--color-neutral-700:#5d5d60;--color-neutral-800:#424244;--color-neutral-900:#2b2b2d;--color-accent-100:#eef6ff;--color-accent-200:#d6ebff;--color-accent-300:#b5d9fd;--color-accent-400:#94bce3;--color-accent-500:#749dc4;--color-accent-600:#597ea3;--color-accent-700:#416180;--color-accent-800:#2c455d;--color-accent-900:#1d2d3d;--color-accent-text:var(--color-accent-700);--color-accent-text-hover:var(--color-accent-800);--color-danger:#a33a32;--color-success:#3d7a4e;--color-warning:#8a6412;--color-seg-1:#416180;--color-seg-2:#8a6412;--color-seg-3:#5b4a7a;--color-seg-4:#2f6274;--color-seg-5:#8a3f5e;--color-seg-6:#3d7a4e;--font-heading:"Barlow Condensed", "Barlow", system-ui, sans-serif;--font-body:"Barlow", system-ui, -apple-system, Segoe UI, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--space-1:3.4px;--space-2:6.8px;--space-3:10.2px;--space-4:13.6px;--space-6:20.4px;--space-8:27.2px;--shadow-md:0 3px 10px #2b2b2d29;--pad:48px;--shell-max:1344px;--color-border:var(--color-divider);--color-text-muted:var(--color-neutral-700);--color-bg-elevated:var(--color-neutral-100);--color-accent-strong:var(--color-accent-600);--color-accent-contrast:var(--color-bg);--radius:0;--font-sans:var(--font-body);--max-width:1080px}:root[data-theme=dark]{--color-bg:#141617;--color-surface:#1c1f21;--color-text:#e9e9ea;--color-accent:#78a0c6;--color-divider:#e9e9ea2e;--color-neutral-100:#1b1d1f;--color-neutral-200:#232527;--color-neutral-300:#2f3134;--color-neutral-400:#44474a;--color-neutral-500:#65686c;--color-neutral-600:#85888c;--color-neutral-700:#a2a5a9;--color-neutral-800:#c2c4c7;--color-neutral-900:#dedfe1;--color-accent-100:#16222e;--color-accent-200:#1b2d3d;--color-accent-300:#24405a;--color-accent-400:#335978;--color-accent-500:#4a7296;--color-accent-600:#8fb3d1;--color-accent-700:#a8c5dc;--color-accent-800:#c6daea;--color-accent-900:#e0ecf6;--color-accent-text:var(--color-accent-700);--color-accent-text-hover:var(--color-accent-800);--color-danger:#e08b84;--color-success:#87c296;--color-warning:#d6ac55;--color-seg-1:#a8c5dc;--color-seg-2:#d6ac55;--color-seg-3:#b3a3cf;--color-seg-4:#8cc0d0;--color-seg-5:#dd9bb3;--color-seg-6:#87c296;--shadow-md:0 3px 10px #00000080}@media (width<=960px){:root{--pad:24px}}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.015em;margin:0 0 var(--space-2);font-weight:600;line-height:1.12}h1{font-size:42px}h2{font-size:32px}h3{font-size:25px}h4{font-size:20px}h5{font-size:16px}h6{letter-spacing:.08em;text-transform:uppercase;font-size:13px}p{margin:0 0 var(--space-3)}a{color:var(--color-accent-text);text-underline-offset:3px;text-decoration:none}a:hover{color:var(--color-accent-text-hover);text-decoration:underline}img{max-width:100%;display:block}code,pre,kbd,samp,textarea.mono{font-family:var(--font-mono)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}.bleed,.wrap{width:100%;max-width:var(--shell-max);padding-inline:var(--pad);margin-inline:auto}main{min-height:60vh}.site-header{border-bottom:1px solid var(--color-divider)}.site-header .bleed{align-items:center;gap:var(--space-4);padding-block:18px;display:flex}.brand{min-width:0;font-family:var(--font-heading);color:var(--color-text);align-items:center;gap:10px;margin-right:auto;font-size:18px;font-weight:600;line-height:1.2;display:flex}.brand-home{color:inherit;align-items:center;gap:10px;display:flex}.brand-home:hover{color:inherit;text-decoration:none}.brand-sep{color:var(--color-neutral-500)}.brand-current{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.signet{background:var(--color-text);width:28px;height:28px;color:var(--color-bg);font-family:var(--font-heading);flex:none;place-items:center;font-size:17px;font-weight:600;line-height:1;display:grid}.header-tools{align-items:center;gap:var(--space-4);display:flex}.nav-links{align-items:center;gap:var(--space-6);font-size:14px;display:flex}.nav-links a{color:var(--color-neutral-700)}.nav-links a:hover{color:var(--color-accent-text);text-decoration:none}.site-footer{border-top:1px solid var(--color-divider);color:var(--color-neutral-700);font-size:13px}.site-footer .bleed{align-items:center;gap:var(--space-6);flex-wrap:wrap;padding-block:20px;display:flex}.site-footer .copyright{margin-right:auto}.footer-links{gap:var(--space-6);flex-wrap:wrap;display:flex}.btn{cursor:pointer;font-family:var(--font-heading);color:var(--color-text);border:1px solid var(--color-divider);padding:var(--space-2) calc(var(--space-3) * 1.2);background:0 0;border-radius:0;justify-content:center;align-items:center;gap:6px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-text) 7%, transparent);text-decoration:none}.btn:active{background:color-mix(in srgb, var(--color-text) 14%, transparent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{display:block}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent-600);border-color:var(--color-accent-600);color:var(--color-bg)}.btn-primary:active{background:var(--color-accent-700);border-color:var(--color-accent-700);color:var(--color-bg)}.btn-secondary{border-color:var(--color-divider);color:var(--color-text);background:0 0}.btn-ghost{color:var(--color-accent-text);border-color:#0000}.btn-ghost:hover{color:var(--color-accent-text);background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.btn-icon{width:36px;height:36px;padding:0}.input,select,textarea,input[type=text],input[type=search],input[type=number],input[type=url],input[type=email],input[type=password],input[type=date],input[type=time],input[type=datetime-local]{width:100%;min-height:36px;font-family:var(--font-body);color:var(--color-text);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:0;padding:6px 10px;font-size:14px}textarea,input.mono,textarea.mono{font-family:var(--font-mono)}.input:hover,select:hover,textarea:hover,input[type=text]:hover,input[type=search]:hover,input[type=number]:hover,input[type=url]:hover,input[type=email]:hover,input[type=password]:hover{border-color:color-mix(in srgb, var(--color-text) 45%, transparent)}.input:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{border-color:var(--color-accent);outline-offset:0}textarea{resize:vertical;min-height:320px;line-height:1.7}input[type=color]{border:1px solid var(--color-divider);background:0 0;border-radius:0;padding:0}input[type=range]{accent-color:var(--color-accent)}::placeholder{color:var(--color-neutral-500);opacity:1}.seg,.segmented{border:1px solid var(--color-divider);background:0 0;border-radius:0;flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg-opt,.segmented label{color:var(--color-text);cursor:pointer;user-select:none;align-items:center;gap:6px;padding:7px 12px;font-size:13px;line-height:1.2;display:inline-flex}.seg-opt input,.segmented input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.seg-opt+.seg-opt,.segmented input:not(:first-child)+label{border-left:1px solid var(--color-divider)}.seg-opt:has(input:checked),.segmented input:checked+label{background:var(--color-accent);color:var(--color-bg)}.seg-opt:not(:has(input:checked)):hover,.segmented input:not(:checked)+label:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.seg-opt:has(input:focus-visible),.segmented input:focus-visible+label{outline:2px solid var(--color-accent);outline-offset:-2px}.lang-switch{border:1px solid var(--color-divider);border-radius:0;display:inline-flex;overflow:hidden}.lang-switch a{color:var(--color-text);padding:7px 12px;font-size:13px;line-height:1.2;text-decoration:none}.lang-switch a+a{border-left:1px solid var(--color-divider)}.lang-switch a:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-text) 7%, transparent);text-decoration:none}.lang-switch a.active,.lang-switch a.active:hover{background:var(--color-accent);color:var(--color-bg)}.theme-toggle{border:1px solid var(--color-divider);width:36px;height:36px;color:var(--color-neutral-700);cursor:pointer;background:0 0;border-radius:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-text) 7%, transparent)}.theme-toggle svg{width:16px;height:16px}.field{flex-direction:column;gap:5px;display:flex}.field>label,.field-label{color:var(--color-neutral-700);font-size:12px}.checkbox-row{cursor:pointer;align-items:center;gap:.5rem;font-size:14px;display:flex}.checkbox-row input{width:auto;min-height:0;accent-color:var(--color-accent);padding:0}.hint{color:var(--color-neutral-700);margin-top:var(--space-6);font-size:13px}.count{color:var(--color-neutral-600);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.error{color:var(--color-text);margin-top:var(--space-4);font-size:14px}.card{border:1px solid var(--color-divider);padding:var(--space-4) var(--space-6);background:0 0;border-radius:0}.tag{letter-spacing:.02em;border:1px solid var(--color-divider);color:var(--color-neutral-700);border-radius:0;align-items:center;padding:3px 10px;font-size:11px;display:inline-flex}.tag-accent{border-color:var(--color-accent);color:var(--color-accent-text)}.prose-table{border-collapse:collapse;text-align:left;width:100%;margin:var(--space-4) 0 var(--space-6);font-size:14px;display:block;overflow-x:auto}.prose-table th,.prose-table td{border-top:1px solid var(--color-divider);padding:var(--space-2) var(--space-4) var(--space-2) 0;vertical-align:top}.prose-table thead th{border-top:none;border-bottom:1px solid var(--color-divider);color:var(--color-neutral-700);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;font-size:11px;font-weight:600}.prose-table tbody td:first-child{color:var(--color-text);white-space:nowrap}.prose-table tbody td{color:var(--color-neutral-700)}.hero{gap:var(--pad);grid-template-columns:7fr 5fr;align-items:end;padding-block:72px 56px;display:grid}.hero h1{text-wrap:balance;margin:0;font-size:64px;line-height:1}.hero .intro{color:var(--color-neutral-800);text-wrap:pretty;margin:0;font-size:16px}.directory{column-gap:var(--pad);grid-template-columns:1fr 1fr;align-items:start;row-gap:40px;padding-bottom:72px;display:grid}.cat-head{border-bottom:1px solid var(--color-text);justify-content:space-between;align-items:baseline;padding-bottom:8px;display:flex}.cat-head h2{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:13px}.cat-count{color:var(--color-neutral-600);font-variant-numeric:tabular-nums;font-size:12px}.tool-row{border-bottom:1px solid var(--color-divider);color:var(--color-text);grid-template-columns:36px 1fr auto 20px;align-items:baseline;gap:12px;padding:12px 0;text-decoration:none;transition:background .12s;display:grid}.tool-row:hover,.tool-row.is-active{background:var(--color-accent-100);color:var(--color-text);text-decoration:none}.tool-row .num{color:var(--color-neutral-600);font-variant-numeric:tabular-nums;font-size:12px}.tool-row .name{font-family:var(--font-heading);font-size:19px;font-weight:600}.tool-row .tags{color:var(--color-neutral-700);font-size:12px}.tool-row .arrow{color:var(--color-accent);text-align:right}.no-results{color:var(--color-neutral-700);padding-bottom:72px;font-size:15px}.tool-search{flex:none;position:relative}.tool-search input{width:280px}.search-results{z-index:50;background:var(--color-bg);border:1px solid var(--color-divider);width:320px;max-height:60vh;box-shadow:var(--shadow-md);position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}.search-results a{color:var(--color-text);grid-template-columns:28px 1fr;align-items:baseline;gap:10px;padding:9px 12px;text-decoration:none;display:grid}.search-results a+a{border-top:1px solid var(--color-divider)}.search-results a:hover,.search-results a.is-active{background:var(--color-accent-100);color:var(--color-text);text-decoration:none}.search-results .num{color:var(--color-neutral-600);font-variant-numeric:tabular-nums;font-size:12px}.search-results .name{font-family:var(--font-heading);font-size:16px;font-weight:600}.search-results .empty{color:var(--color-neutral-700);padding:9px 12px;font-size:13px}.optionbar .bleed,.optionbar.bleed{padding-block:var(--space-6);flex-wrap:wrap;align-items:center;gap:16px;display:flex}.optionbar .spacer{flex:1}.optionbar .label,.optionbar .checkbox-row,.optionbar .field>label,.optionbar .field-label{color:var(--color-neutral-700);white-space:nowrap;font-size:13px}.optionbar select,.optionbar input[type=text],.optionbar input[type=search],.optionbar input[type=number],.optionbar input[type=url],.optionbar input[type=date],.optionbar input[type=time]{width:auto}.optionbar input[type=range]{background:0 0;border:0;width:8rem;min-height:0}.optionbar input[type=color]{cursor:pointer;width:3rem;height:36px;min-height:36px;padding:2px}.workarea{border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider)}.workarea>.bleed{grid-template-columns:1fr 1fr;min-height:340px;padding-inline:0;display:grid}.workarea.is-single>.bleed{grid-template-columns:1fr}.panel{padding:var(--space-6) var(--pad);flex-direction:column;gap:12px;min-width:0;display:flex}.panel>h6,.panel-label{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--color-neutral-700);margin:0;font-size:13px;font-weight:600}.panel.is-output{border-left:1px solid var(--color-divider);background:var(--color-neutral-100)}.workarea.is-single .panel.is-output{border-left:none;border-top:1px solid var(--color-divider)}.panel textarea{resize:none;width:100%}.panel textarea,.panel .code,.panel pre{min-height:0;font-family:var(--font-mono);color:var(--color-text);white-space:pre-wrap;word-break:break-word;background:0 0;border:0;flex:1;margin:0;padding:0;font-size:13px;line-height:1.7;overflow:auto}.panel textarea:hover,.panel textarea:focus-visible{border:0;outline:none}.panel .tok-key,.panel .key{color:var(--color-accent-text)}.statusbar{color:var(--color-neutral-700);font-size:12px}.statusbar .bleed,.statusbar.bleed{padding-block:var(--space-3);flex-wrap:wrap;align-items:center;gap:24px;display:flex}.statusbar .ok{color:var(--color-accent-text)}.statusbar .bad{color:var(--color-text)}.statusbar .bad .dot{color:var(--color-neutral-900)}.statusbar .local{margin-left:auto}.prose{max-width:720px;padding-block:56px 72px}.prose h1{margin-bottom:var(--space-4);font-size:42px}.prose .lead{color:var(--color-neutral-800);margin-bottom:var(--space-6);font-size:17px}.prose h2{margin:var(--space-8) 0 var(--space-3);font-size:32px}.prose h2:first-child{margin-top:0}.prose h3{margin:var(--space-6) 0 var(--space-2);font-size:20px}.prose p,.prose li{color:var(--color-neutral-800);font-size:15px}.prose strong{color:var(--color-text)}.legal .prose{max-width:820px}.sections{padding-bottom:72px}.sections>*+*{margin-top:var(--space-8)}.sections h2{margin:0 0 var(--space-3);font-size:32px}.sections p{max-width:72ch}.legal h1{margin-bottom:var(--space-6);font-size:42px}.legal h2{margin:var(--space-8) 0 var(--space-2);font-size:20px}.legal p,.legal li{color:var(--color-neutral-800)}.back-link{margin-bottom:var(--space-6);color:var(--color-neutral-700);font-size:13px;text-decoration:none;display:inline-block}.back-link:hover{color:var(--color-accent-text);text-decoration:none}.cookie-banner{background:var(--color-bg);border-top:1px solid var(--color-divider);z-index:100;position:fixed;bottom:0;left:0;right:0}.cookie-banner .bleed{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-4);flex-wrap:wrap;display:flex}.cookie-banner p{color:var(--color-neutral-700);margin:0;font-size:13px}.cookie-actions{gap:var(--space-2);flex-shrink:0;display:flex}@media (width<=960px){.hero{gap:var(--space-6);grid-template-columns:1fr;padding-block:48px 40px}.hero h1{font-size:48px}.directory{grid-template-columns:1fr}.workarea>.bleed{grid-template-columns:1fr;min-height:0}.panel{min-height:220px}.panel.is-output{border-left:none;border-top:1px solid var(--color-divider)}}@media (width<=640px){.site-header .bleed{flex-wrap:wrap}.brand{margin-right:auto}.header-tools{gap:var(--space-2);order:3;width:100%}.tool-search{flex:1}.tool-search input,.search-results{width:100%}.tool-row{grid-template-columns:30px 1fr 20px}.tool-row .tags{display:none}.optionbar .bleed,.optionbar.bleed{gap:var(--space-3)}.optionbar .spacer{display:none}.optionbar .btn-primary{flex:1}}
