@font-face{font-family:Syne Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/syne-greek-wght-normal-5tOOQDeJ.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:Syne Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/syne-latin-ext-wght-normal-JjI8ZrW1.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:Syne Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/syne-latin-wght-normal-BVsvWWA4.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:Rubik Variable;font-style:normal;font-display:optional;font-weight:300 900;src:url(/assets/rubik-arabic-wght-normal-CGnJ-sf6.woff2)format("woff2-variations");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Rubik Variable;font-style:normal;font-display:optional;font-weight:300 900;src:url(/assets/rubik-cyrillic-ext-wght-normal-BjodpZir.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:Rubik Variable;font-style:normal;font-display:optional;font-weight:300 900;src:url(/assets/rubik-cyrillic-wght-normal-DveCct9I.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Rubik Variable;font-style:normal;font-display:optional;font-weight:300 900;src:url(/assets/rubik-hebrew-wght-normal-BIkpbuMU.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Rubik Variable;font-style:normal;font-display:optional;font-weight:300 900;src:url(/assets/rubik-latin-ext-wght-normal-OacczzuJ.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:Rubik Variable;font-style:normal;font-display:optional;font-weight:300 900;src:url(/assets/rubik-latin-wght-normal-CnQIisVs.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:Reddit Mono Variable;font-style:normal;font-display:optional;font-weight:200 900;src:url(/assets/reddit-mono-vietnamese-wght-normal-CEcALQr8.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:Reddit Mono Variable;font-style:normal;font-display:optional;font-weight:200 900;src:url(/assets/reddit-mono-latin-ext-wght-normal-DCLCrQhA.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:Reddit Mono Variable;font-style:normal;font-display:optional;font-weight:200 900;src:url(/assets/reddit-mono-latin-wght-normal-BvKtqVOO.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:Syne Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Liberation Sans Bold);font-weight:700;size-adjust:112.6%}@font-face{font-family:Syne Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Liberation Sans Bold);font-weight:750;size-adjust:137.4%}@font-face{font-family:Syne Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Liberation Sans Bold);font-weight:800;size-adjust:162.1%}@font-face{font-family:Rubik Fallback;src:local(Arial),local(ArialMT),local(Liberation Sans);font-weight:400;size-adjust:103.2%}@font-face{font-family:Rubik Fallback;src:local(Arial),local(ArialMT),local(Liberation Sans);font-weight:500;size-adjust:106.9%}@font-face{font-family:Rubik Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Liberation Sans Bold);font-weight:600;size-adjust:101.3%}@font-face{font-family:Rubik Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Liberation Sans Bold);font-weight:700;size-adjust:103.1%}@font-face{font-family:Reddit Mono Fallback;src:local(Courier New),local(CourierNewPSMT),local(Liberation Mono);size-adjust:93.7%}:root{--sky:#dcefff;--sky-2:#c8e3fb;--paper:#fff;--field:#f6fbff;--ink:#17142a;--ink-2:#3a3655;--muted:#4f4a6c;--line:#17142a;--pink:#ff2e7e;--pink-ink:#c4105a;--pink-soft:#ffe0ec;--yellow:#ffc93c;--yellow-soft:#fff2c9;--teal:#00a99d;--teal-ink:#006b63;--teal-soft:#d2f3ef;--on-accent:#17142a;--focus:#17142a;--code-bg:#17142a;--code-fg:#f4f1ff;--code-muted:#a9a3cf;--tk-p:#ff8ab8;--tk-f:#5fe0d3;--tk-n:#ffd35c;--checker:#e6eef7;--sel:#ff2e7e38;--warn-bg:#fff2c9;--bad:#b3123f;--good:#006b63;--display:"Syne Variable", "Syne Fallback", sans-serif;--font:"Rubik Variable", "Rubik Fallback", sans-serif;--mono:"Reddit Mono Variable", "Reddit Mono Fallback", monospace;--gutter:16px;--gap:16px;--max:1200px;--radius:20px;--shadow:6px 6px 0 var(--pink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--sky:#12102a;--sky-2:#1a1740;--paper:#1e1b44;--field:#16133a;--ink:#f4f1ff;--ink-2:#d8d3f2;--muted:#bab4dc;--line:#f4f1ff;--pink:#ff4f94;--pink-ink:#ff86b6;--pink-soft:#3d1838;--yellow:#ffd35c;--yellow-soft:#3a3020;--teal:#22c7b8;--teal-ink:#5ee2d5;--teal-soft:#11363a;--on-accent:#12102a;--focus:#ffd35c;--code-bg:#0b0920;--checker:#2a2656;--sel:#ff4f9459;--warn-bg:#3a3020;--bad:#ff8aa8;--good:#5ee2d5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--sky:#12102a;--sky-2:#1a1740;--paper:#1e1b44;--field:#16133a;--ink:#f4f1ff;--ink-2:#d8d3f2;--muted:#bab4dc;--line:#f4f1ff;--pink:#ff4f94;--pink-ink:#ff86b6;--pink-soft:#3d1838;--yellow:#ffd35c;--yellow-soft:#3a3020;--teal:#22c7b8;--teal-ink:#5ee2d5;--teal-soft:#11363a;--on-accent:#12102a;--focus:#ffd35c;--code-bg:#0b0920;--checker:#2a2656;--sel:#ff4f9459;--warn-bg:#3a3020;--bad:#ff8aa8;--good:#5ee2d5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (width>=760px){:root{--gutter:28px;--gap:22px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:1rem}body{background:var(--sky);color:var(--ink);font:400 1rem/1.6 var(--font);margin:0;overflow-x:hidden}::selection{background:var(--sel)}img,svg{max-width:100%;display:block}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.12}h1{font-size:clamp(2rem,1.35rem + 2.6vw,3.4rem);font-weight:800}h2{font-size:clamp(1.45rem,1.2rem + 1vw,2rem);font-weight:750}h3{font-size:1.15rem;font-weight:700}p{margin:0 0 1em}a{color:var(--ink);-webkit-text-decoration-color:var(--pink);text-decoration-color:var(--pink);text-underline-offset:3px;text-decoration-thickness:2px}a:hover{color:var(--pink-ink)}code,kbd,pre,samp{font-family:var(--mono);font-size:.92em}:not(pre)>code{background:var(--yellow-soft);overflow-wrap:anywhere;border-radius:6px;padding:.05em .35em}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.skip-link{z-index:50;background:var(--yellow);color:#17142a;border:2px solid #17142a;border-radius:999px;padding:.5rem 1rem;font-weight:600;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.icon{flex:none;width:1.15em;height:1.15em}.masthead{z-index:5;padding-top:14px;position:relative}.masthead__bar{align-items:center;gap:12px;min-height:56px;display:flex}.brand{color:var(--ink);font:800 1.45rem/1 var(--display);letter-spacing:-.02em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand__mark{width:44px;height:44px}.brand__mark .ring{stroke:var(--ink)}.masthead__tag{color:var(--muted);margin:0;font-size:.92rem;display:none}@media (width>=900px){.masthead__tag{border-left:2px solid var(--line);padding-left:14px;display:block}}.masthead__actions{gap:8px;margin-left:auto;display:flex}.tbtn{border:2px solid var(--line);background:var(--paper);min-width:44px;min-height:44px;color:var(--ink);font:600 .9rem var(--font);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tbtn:hover{background:var(--yellow-soft)}.theme-toggle .tt{align-items:center;gap:6px;display:none}:root:not([data-theme]) .tt--system,:root[data-theme=light] .tt--light,:root[data-theme=dark] .tt--dark{display:inline-flex}@media (width<=520px){.theme-toggle .tt{gap:0;font-size:0}.theme-toggle .tt .icon{font-size:1rem}}.nav-toggle .icon-close,.nav-toggle[aria-expanded=true] .icon-open{display:none}.nav-toggle[aria-expanded=true] .icon-close{display:block}.site-nav{padding:10px 0 4px;display:none}.site-nav.is-open{display:block}.site-nav ul{grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;list-style:none;display:grid}.site-nav a{border:2px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 8px;font-size:.92rem;font-weight:600;line-height:1.2;text-decoration:none;display:flex}.site-nav a:hover{background:var(--yellow-soft)}.site-nav a[aria-current=page]{background:var(--yellow);color:#17142a;box-shadow:3px 3px 0 var(--line)}.site-nav .dot{background:var(--c,var(--pink));border:2px solid;border-radius:50%;flex:none;width:22px;height:22px}.site-nav li:nth-child(3n+2) .dot{--c:var(--teal)}.site-nav li:nth-child(3n+3) .dot{--c:var(--yellow);border-radius:4px}.site-nav li:nth-child(3n+2) .dot{border-radius:50% 50% 4px 4px}@media (width>=980px){.nav-toggle{display:none}.site-nav{display:block}.site-nav ul{flex-wrap:wrap;gap:8px;display:flex}.site-nav a{min-height:40px;padding:4px 12px 4px 6px;font-size:.88rem}.site-nav .dot{width:18px;height:18px}}.hero{padding:22px 0 18px;position:relative}.hero__inner{position:relative}.hero__text{z-index:1;max-width:46rem;position:relative}.kicker{font:600 .82rem/1 var(--font);text-transform:uppercase;letter-spacing:.08em;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:inline-flex}.kicker span{border:2px solid var(--line);background:var(--paper);border-radius:999px;padding:6px 10px;display:inline-block}.kicker span:first-child{background:var(--pink);color:#17142a}.lead{color:var(--ink-2);max-width:40rem;margin:10px 0 0;font-size:1.08rem}.hero__decor{right:var(--gutter);pointer-events:none;width:300px;height:150px;display:none;position:absolute;top:-6px}@media (width>=1000px){.hero__decor{display:block}}.decor-ink{stroke:var(--ink)}.decor-fill-ink{fill:var(--ink)}.decor-pink{fill:var(--pink)}.decor-yellow{fill:var(--yellow)}.decor-teal{fill:var(--teal)}.panel{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.panel--teal{--shadow:6px 6px 0 var(--teal)}.panel--yellow{--shadow:6px 6px 0 var(--yellow)}.panel__head{border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 16px;display:flex}.panel__head h2{font-size:1.1rem}.panel__head .aside{color:var(--muted);margin-left:auto;font-size:.85rem}.panel__body{padding:16px}.shape{border:2px solid var(--line);background:var(--pink);border-radius:50%;flex:none;width:18px;height:18px}.shape--tri{background:var(--teal);clip-path:polygon(50% 0,100% 100%,0 100%);border:0;border-radius:0}.shape--sq{background:var(--yellow);border-radius:4px}.btn{border:2px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);box-shadow:3px 3px 0 var(--line);font:600 .95rem/1.1 var(--font);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:inline-flex}.btn:hover{box-shadow:4px 4px 0 var(--line);color:var(--ink);transform:translate(-1px,-1px)}.btn:active{box-shadow:1px 1px 0 var(--line);transform:translate(2px,2px)}.btn--primary{background:var(--pink);color:var(--on-accent)}.btn--primary:hover{color:var(--on-accent)}.btn--yellow{background:var(--yellow);color:var(--on-accent)}.btn--yellow:hover{color:var(--on-accent)}.btn--teal{background:var(--teal);color:var(--on-accent)}.btn--sm{min-height:40px;box-shadow:2px 2px 0 var(--line);padding:6px 12px;font-size:.88rem}.btn--icon{min-width:40px;padding:6px}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:2px 2px 0 var(--line);transform:none}.btn-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}label,.label{margin:0 0 6px;font-size:.9rem;font-weight:600;display:block}.hint{color:var(--muted);font-size:.86rem;font-weight:400}input[type=text],input[type=number],input[type=search],select,textarea{border:2px solid var(--line);background:var(--field);width:100%;min-height:44px;color:var(--ink);font:400 1rem/1.4 var(--font);border-radius:12px;padding:8px 12px}input[type=number]{font-family:var(--mono);appearance:textfield;font-size:.95rem}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.mono,textarea.mono{font-family:var(--mono);font-size:.92rem}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 12px) 52%;background-repeat:no-repeat;background-size:6px 6px;padding-right:36px}textarea{resize:vertical;font-family:var(--mono);font-size:.9rem;line-height:1.5}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--pink);outline-offset:1px}input[type=color]{border:2px solid var(--line);background:var(--field);cursor:pointer;border-radius:12px;flex:none;width:48px;height:44px;padding:3px}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:0;border-radius:8px}input[type=color]::-moz-color-swatch{border:0;border-radius:8px}.check{cursor:pointer;align-items:center;gap:8px;min-height:40px;margin:0;font-weight:500;display:inline-flex}.check input{width:20px;height:20px;accent-color:var(--pink);margin:0}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:40px;margin:0}input[type=range]::-webkit-slider-runnable-track{border:2px solid var(--line);background:var(--field);border-radius:999px;height:8px}input[type=range]::-moz-range-track{border:2px solid var(--line);background:var(--field);border-radius:999px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--line);background:var(--pink);border-radius:50%;width:22px;height:22px;margin-top:-9px}input[type=range]::-moz-range-thumb{border:2px solid var(--line);background:var(--pink);border-radius:50%;width:18px;height:18px}input[type=range]:focus-visible{outline:3px solid var(--focus);outline-offset:0;border-radius:999px}.seg{border:2px solid var(--line);background:var(--field);border-radius:999px;flex-wrap:wrap;gap:2px;min-width:0;margin:0;padding:3px;display:inline-flex}.seg legend{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.seg label{margin:0;font-size:.9rem;font-weight:600;position:relative}.seg input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.seg span{border-radius:999px;align-items:center;min-height:36px;padding:0 14px;display:flex}.seg input:checked+span{background:var(--ink);color:var(--sky)}.seg input:focus-visible+span{outline:3px solid var(--pink);outline-offset:1px}.field{min-width:0;margin:0 0 14px}.field:last-child{margin-bottom:0}.row{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;display:flex}.row>.field{flex:140px;margin:0}.slider-row{grid-template-columns:minmax(0,1fr) 108px;align-items:center;gap:10px;display:grid}.slider-row input[type=number]{text-align:right}.unit-input{position:relative}.unit-input input{padding-right:46px}.unit-input .u{color:var(--muted);font:500 .85rem var(--mono);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.group-title{font:700 .98rem var(--display);align-items:center;gap:8px;margin:18px 0 10px;display:flex}.group-title:first-child{margin-top:0}fieldset{border:0;min-width:0;margin:0;padding:0}.status{min-height:1.6em;color:var(--muted);margin:10px 0 0;font-size:.9rem}.status.is-error,.is-error{color:var(--bad);font-weight:600}input.is-invalid,textarea.is-invalid{border-color:var(--bad);box-shadow:0 0 0 2px var(--bad)}.out{border-top:2px solid var(--line)}.out:first-child{border-top:0}.tabs{flex-wrap:wrap;gap:6px;padding:10px 12px 0;display:flex}.tabs [role=tab]{border:2px solid var(--line);background:var(--field);min-height:40px;color:var(--ink);font:600 .88rem var(--font);cursor:pointer;border-bottom:0;border-radius:12px 12px 0 0;padding:6px 14px}.tabs [role=tab][aria-selected=true]{background:var(--code-bg);color:var(--code-fg);border-color:var(--code-bg)}:root[data-theme=dark] .tabs [role=tab][aria-selected=true]{border-color:var(--line)}pre.code{background:var(--code-bg);color:var(--code-fg);font:400 .88rem/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2;margin:0;padding:14px 16px;overflow:auto}.panel>pre.code:last-child,.out>pre.code:last-child{border-radius:0 0 calc(var(--radius) - 2px) calc(var(--radius) - 2px)}.tk-c{color:var(--code-muted);font-style:italic}.tk-p{color:var(--tk-p)}.tk-f{color:var(--tk-f)}.tk-n,.tk-s{color:var(--tk-n)}.out__bar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:12px 14px;display:flex}.out__bar .meta{color:var(--muted);margin-right:auto;font-size:.86rem}.copy-line{align-items:stretch;gap:8px;display:flex}.copy-line code{border:2px solid var(--line);background:var(--field);overflow-wrap:anywhere;border-radius:12px;flex:1;align-items:center;min-width:0;padding:8px 12px;font-size:.9rem;display:flex}.checker{background-color:#fff;background-image:linear-gradient(45deg, var(--checker) 25%, transparent 25%), linear-gradient(-45deg, var(--checker) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--checker) 75%), linear-gradient(-45deg, transparent 75%, var(--checker) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}:root[data-theme=dark] .checker{background-color:#1a1740}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .checker{background-color:#1a1740}}.tool{gap:var(--gap);padding:8px 0 12px;display:grid}.tool>*{min-width:0}@media (width>=980px){.tool--split{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}.tool--split .span-2{grid-column:1/-1}.gen{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);grid-template-areas:"preview controls""output controls";align-items:start}.gen__preview{grid-area:preview}.gen__controls{grid-area:controls}.gen__output{grid-area:output}}.gen__stage{padding:14px}.preview-box{aspect-ratio:16/10;border:2px solid var(--line);border-radius:14px;position:relative;overflow:hidden}.preview-box__fill{cursor:crosshair;position:absolute;inset:0}.preview-box__pin{pointer-events:none;background:#fff;border:2px solid #17142a;border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute;box-shadow:0 0 0 2px #fff}.preview-box__pin:after{content:"";background:#17142a;border-radius:50%;position:absolute;inset:6px}.presets{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.preset{aspect-ratio:1;border:2px solid var(--line);cursor:pointer;min-height:44px;box-shadow:2px 2px 0 var(--line);border-radius:12px;padding:0;position:relative}.preset:hover{box-shadow:3px 3px 0 var(--line);transform:translate(-1px,-1px)}.layers{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.layer-chip{border:2px solid var(--line);background:var(--field);min-height:40px;color:var(--ink);font:600 .88rem var(--font);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;display:inline-flex}.layer-chip i{border:2px solid var(--line);border-radius:50%;width:28px;height:28px}.layer-chip[aria-pressed=true]{background:var(--yellow);color:#17142a}.stopbar-wrap{padding:18px 13px 26px}.stopbar{border:2px solid var(--line);cursor:copy;touch-action:none;border-radius:12px;height:44px;position:relative}.stopbar__fill{border-radius:10px;position:absolute;inset:0}.stop{cursor:grab;touch-action:none;background:0 0;border:0;width:26px;height:66px;margin-left:-13px;padding:0;position:absolute;top:-14px}.stop:before{content:"";background:var(--line);width:2px;margin-left:-1px;position:absolute;top:4px;bottom:4px;left:50%}.stop i{border:2px solid var(--line);background:var(--c,#fff);width:24px;height:24px;box-shadow:0 0 0 2px var(--paper);border-radius:50% 50% 50% 4px;position:absolute;bottom:0;left:1px;transform:rotate(-45deg)}.stop[aria-pressed=true] i{box-shadow:0 0 0 2px var(--paper), 0 0 0 5px var(--pink)}.stop:focus-visible{outline:none}.stop:focus-visible i{outline:3px solid var(--focus);outline-offset:3px}.stop.is-dragging{cursor:grabbing}.stop-editor{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:10px 12px;margin-top:18px;display:grid}.stop-editor .row{grid-column:1/-1}.big-preview-note{color:var(--muted);margin:8px 0 0;font-size:.86rem}.surfaces{border:2px solid var(--line);border-radius:14px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.surface{background:#eef4fb;place-items:center;min-height:260px;padding:32px 16px;display:grid}.surface--dark{background:#17142a}.surface .sample-card{aspect-ratio:4/3;background:#fff;border-radius:16px;width:min(190px,82%)}.surface span{display:block}.surface-label{color:#3a3655;margin-top:12px;font-size:.8rem;font-weight:600}.surface--dark .surface-label{color:#d8d3f2}.layer-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.layer-list li{align-items:center;gap:6px;min-width:0;display:flex}.layer-list .pick span{text-overflow:ellipsis;min-width:0;overflow:hidden}.layer-list .pick{border:2px solid var(--line);background:var(--field);min-width:0;min-height:44px;color:var(--ink);font:500 .82rem var(--mono);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:12px;flex:1;align-items:center;gap:10px;padding:4px 12px 4px 6px;display:flex;overflow:hidden}.layer-list .pick i{border:2px solid var(--line);border-radius:8px;flex:none;width:26px;height:26px}.layer-list .pick[aria-pressed=true]{background:var(--yellow-soft);box-shadow:inset 0 0 0 2px var(--pink)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:2px solid var(--line);background:var(--field);min-height:40px;color:var(--ink);font:600 .86rem var(--font);cursor:pointer;border-radius:999px;align-items:center;padding:6px 14px;display:inline-flex}.chip:hover{background:var(--yellow-soft)}.radius-stage{place-items:center;min-height:380px;padding:40px 32px;display:grid}.radius-box{aspect-ratio:1;border:2px dashed var(--muted);width:min(300px,100%);position:relative}.radius-shape{background:linear-gradient(135deg, var(--pink), var(--yellow));border:2px solid var(--line);position:absolute;inset:0}.rhandle{border:2px solid var(--line);background:var(--paper);cursor:grab;touch-action:none;z-index:1;border-radius:50%;width:28px;height:28px;margin:-14px 0 0 -14px;padding:0;position:absolute}.rhandle[data-axis=v]{background:var(--teal);border-radius:6px}.rhandle[data-axis=h]{background:var(--yellow)}.rhandle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.corner-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.corner-grid fieldset{border:2px solid var(--line);border-radius:14px;padding:10px 12px 12px}.corner-grid legend{padding:0 6px;font-size:.85rem;font-weight:700}.corner-grid .pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}.corner-grid label{color:var(--muted);margin-bottom:2px;font-size:.78rem;font-weight:500}.result-big{border-bottom:2px solid var(--line);padding:16px}.result-big code{background:var(--code-bg);color:var(--code-fg);font:500 clamp(.95rem, .85rem + .5vw, 1.2rem) / 1.45 var(--mono);overflow-wrap:anywhere;border-radius:12px;min-height:3.4em;padding:14px 16px;display:block}.maths{font:400 .86rem/1.7 var(--mono);overflow-wrap:anywhere;margin:0;padding:0 0 0 1.4em}.graph{aspect-ratio:2;width:100%;height:auto}.graph .axis{stroke:var(--line);stroke-width:2px}.graph .grid{stroke:var(--muted);stroke-opacity:.3;stroke-width:1px}.graph .line{fill:none;stroke:var(--pink);stroke-width:4px;stroke-linejoin:round}.graph .marker{fill:var(--yellow);stroke:var(--line);stroke-width:2px}.graph .marker-line{stroke:var(--line);stroke-dasharray:4 4}.graph text{fill:var(--muted);font:500 21px var(--mono)}.resize-stage{border:2px dashed var(--muted);background:var(--field);border-radius:14px;padding:12px;overflow:hidden}.resizable{resize:horizontal;border:2px solid var(--line);background:var(--paper);border-radius:12px;width:100%;min-width:200px;max-width:100%;padding:16px;overflow:hidden;container-type:inline-size}.resizable p{line-height:1.25;font-family:var(--display);margin:0;font-weight:700}.readout{min-height:3.4em;font:500 .86rem var(--mono);color:var(--muted);flex-wrap:wrap;align-content:flex-start;gap:6px 16px;margin:10px 0 0;display:flex}.warn{border:2px solid var(--line);background:var(--warn-bg);border-radius:12px;align-items:flex-start;gap:10px;margin:12px 0 0;padding:10px 12px;font-size:.9rem;display:flex}.warn .icon{margin-top:2px}table.data{border-collapse:collapse;width:100%;font-size:.9rem}table.data th,table.data td{text-align:left;border-bottom:2px solid var(--sky-2);vertical-align:middle;padding:8px 10px}table.data thead th{border-bottom:2px solid var(--line);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}table.data td.num,table.data th.num{text-align:right;font-family:var(--mono)}table.data.compact td,table.data.compact th{padding:5px 8px}table.data code{background:0 0;padding:0}.table-scroll{overflow-x:auto}.bezier-wrap{place-items:center;padding:16px;display:grid}.bezier{aspect-ratio:2/3;touch-action:none;-webkit-user-select:none;user-select:none;width:min(100%,360px);height:auto;overflow:visible}.bezier .frame{fill:var(--field);stroke:var(--line);stroke-width:2px}.bezier .gridline{stroke:var(--muted);stroke-opacity:.25}.bezier .diag{stroke:var(--muted);stroke-opacity:.5;stroke-dasharray:4 4}.bezier .curve{fill:none;stroke:var(--pink);stroke-width:5px;stroke-linecap:round}.bezier .curve-b{fill:none;stroke:var(--teal);stroke-width:3px;stroke-dasharray:8 6}.bezier .arm{stroke:var(--line);stroke-width:2px}.bezier .cp{stroke:var(--line);stroke-width:2.5px;cursor:grab}.bezier .cp--1{fill:var(--yellow)}.bezier .cp--2{fill:var(--teal)}.bezier .cp:focus{outline:none}.bezier .cp:focus-visible{stroke:var(--focus);stroke-width:5px}.bezier text{fill:var(--muted);font:500 11px var(--mono)}.track{border:2px solid var(--line);background:var(--field);border-radius:999px;height:56px;margin:6px 0;position:relative}.track__ball{border:2px solid var(--line);background:var(--pink);will-change:transform;border-radius:50%;width:38px;height:38px;margin-top:-19px;position:absolute;top:50%;left:6px}.track--b .track__ball{background:var(--teal);border-radius:10px}.track__label{font:600 .78rem var(--mono);color:var(--muted);position:absolute;top:50%;right:14px;transform:translateY(-50%)}.strobe{background:var(--ink);opacity:.3;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.ease-btn{border:2px solid var(--line);background:var(--field);min-height:44px;color:var(--ink);font:600 .74rem/1.2 var(--font);cursor:pointer;border-radius:12px;justify-items:center;gap:4px;padding:8px 6px 6px;display:grid}.ease-btn svg{width:48px;height:48px;overflow:visible}.ease-btn path{fill:none;stroke:var(--pink);stroke-width:6px;stroke-linecap:round}.ease-btn rect{fill:none;stroke:var(--muted);stroke-opacity:.35;stroke-width:3px}.ease-btn[aria-pressed=true]{background:var(--yellow);color:#17142a}.ease-btn[aria-pressed=true] path{stroke:#17142a}.swatches{border:2px solid var(--line);border-radius:14px;grid-template-columns:1fr 1fr;min-height:180px;display:grid;overflow:hidden}.swatches>div{position:relative}.swatches .swatch-label{color:#17142a;font:600 .74rem var(--font);background:#fff;border:2px solid #17142a;border-radius:999px;padding:3px 8px;position:absolute;bottom:8px;left:8px}.badges{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.badge{border:2px solid var(--line);font:600 .8rem var(--font);background:var(--field);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.badge.is-pass{background:var(--teal-soft)}.badge.is-fail{background:var(--pink-soft)}.formats{border-collapse:collapse;width:100%}.formats th,.formats td{border-bottom:2px solid var(--sky-2);text-align:left;vertical-align:middle;padding:8px 6px}.formats th{width:6.5rem;color:var(--muted);font-size:.82rem;font-weight:600}.formats td code{overflow-wrap:anywhere;background:0 0;padding:0;font-size:.9rem}.formats td:last-child{text-align:right;width:48px}.contrast-sample{border:2px solid var(--line);border-radius:14px;min-height:120px;padding:18px}.contrast-sample p{margin:0 0 6px}.contrast-sample .big{font:700 1.5rem/1.2 var(--display)}.ratio{font:700 2.4rem/1.1 var(--font);font-variant-numeric:tabular-nums;margin:6px 0 0}.converter{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;display:grid}.converter .eq{font:700 1.2rem var(--display);padding-bottom:10px}.two-tables{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=640px){.two-tables{grid-template-columns:1fr 1fr}}.io{gap:var(--gap);display:grid}@media (width>=980px){.io{grid-template-columns:1fr 1fr}}.io textarea,.io pre.code{border-radius:12px;height:320px}.io pre.code{border:2px solid var(--line)}.drop{position:relative}.drop.is-drop textarea{background:var(--yellow-soft);border-style:dashed}.stats{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.spec-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.spec-item{border:2px solid var(--line);background:var(--field);border-radius:14px;padding:12px 14px}.spec-item.is-error{background:var(--pink-soft);color:var(--ink);font-weight:400}.spec-item__top{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.spec-item__sel{min-width:0;font:500 .95rem var(--mono);overflow-wrap:anywhere;flex:220px}.abc{font:700 .95rem var(--mono);gap:4px;display:inline-flex}.abc span{border:2px solid var(--line);color:#17142a;border-radius:10px;place-items:center;min-width:34px;height:34px;padding:0 6px;display:inline-grid}.abc .a{background:var(--pink);border-radius:50%}.abc .b{background:var(--teal)}.abc .c{background:var(--yellow)}.parts{flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.part{border:2px solid var(--line);background:var(--paper);font:500 .8rem var(--mono);border-radius:8px;align-items:center;gap:6px;padding:2px 8px;display:inline-flex}.part small{font:600 .68rem var(--font);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.part--a{box-shadow:inset 4px 0 0 var(--pink)}.part--b{box-shadow:inset 4px 0 0 var(--teal)}.part--c{box-shadow:inset 4px 0 0 var(--yellow)}.part--zero{border-style:dashed}.notes{color:var(--ink-2);margin:8px 0 0;padding-left:1.2em;font-size:.86rem}.verdict{border:2px solid var(--line);background:var(--yellow-soft);border-radius:14px;min-height:5.5em;margin:14px 0 0;padding:14px}.verdict strong{font-family:var(--display)}.vs{gap:12px;display:grid}@media (width>=720px){.vs{grid-template-columns:1fr 1fr}}.section{padding-top:clamp(36px,5vw,64px)}.section-head{gap:6px;max-width:46rem;margin:0 0 20px;display:grid}.section-head h2{align-items:center;gap:12px;display:flex}.section-head h2:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 14'%3E%3Cpath d='M2 7c4.5-6 9-6 13 0s8.5 6 13 0 8.5-6 13 0 8.5 6 13 0' fill='none' stroke='%23ff2e7e' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;flex:none;width:56px;height:14px}.section-head p{color:var(--ink-2);margin:0}.toolgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.toolgrid a{border:2px solid var(--line);border-radius:var(--radius);background:var(--paper);height:100%;color:var(--ink);box-shadow:5px 5px 0 var(--c,var(--pink));grid-template-rows:auto auto 1fr;gap:8px;padding:16px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:grid}.toolgrid li:nth-child(3n+2) a{--c:var(--teal)}.toolgrid li:nth-child(3n+3) a{--c:var(--yellow)}.toolgrid a:hover{box-shadow:7px 7px 0 var(--c,var(--pink));color:var(--ink);transform:translate(-2px,-2px)}.toolgrid svg{width:64px;height:48px}.toolgrid p{color:var(--ink-2);margin:0;font-size:.93rem}.ti-ink{stroke:var(--ink);fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.ti-pink{fill:var(--pink)}.ti-yellow{fill:var(--yellow)}.ti-teal{fill:var(--teal)}.ti-line{stroke:var(--ink);stroke-width:2.5px}.ti-paper{fill:var(--paper)}.ti-curve{fill:none;stroke:var(--pink);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.recs{gap:22px;display:grid}@media (width>=820px){.recs{grid-template-columns:1fr 1fr}}.rec{border:2px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:6px 6px 0 var(--teal);align-content:start;gap:10px;padding:20px;display:grid;position:relative;overflow:hidden}.rec:nth-child(2){box-shadow:6px 6px 0 var(--yellow)}.rec p{color:var(--ink-2);margin:0}.rec__label{border:2px solid var(--line);background:var(--teal-soft);font:600 .75rem var(--font);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;justify-self:start;padding:4px 10px}.rec:nth-child(2) .rec__label{background:var(--yellow-soft)}.rec .btn{justify-self:start;margin-top:4px}.content{padding-top:clamp(36px,5vw,56px)}.prose{max-width:46rem}.prose h2{margin:1.6em 0 .5em}.prose h2:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.3em 0}.prose li::marker{color:var(--pink-ink)}.callout{border:2px solid var(--line);background:var(--paper);box-shadow:5px 5px 0 var(--teal);border-radius:16px;margin:1.4em 0;padding:16px 18px 16px 58px;position:relative}.callout:before{content:"";border:2px solid var(--line);background:var(--yellow);width:26px;height:26px;box-shadow:6px -6px 0 -2px var(--pink);border-radius:50%;position:absolute;top:18px;left:16px}.callout p{margin:0}.callout .label{font:700 .98rem var(--display);margin-bottom:4px}.faq{gap:12px;max-width:52rem;display:grid}.faq details{border:2px solid var(--line);background:var(--paper);border-radius:16px}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:12px 16px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary .icon{transition:transform .15s}.faq details[open] summary .icon{transform:rotate(45deg)}.faq details>div{color:var(--ink-2);padding:0 16px 14px}.faq details>div p:last-child{margin:0}.linklist{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.linklist a{border:2px solid var(--line);background:var(--paper);min-height:48px;box-shadow:3px 3px 0 var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font-weight:600;text-decoration:none;display:flex}.notfound{font:800 clamp(4rem, 3rem + 6vw, 8rem) / 1 var(--display);color:var(--pink);-webkit-text-stroke:2px var(--ink);margin:0}.site-footer{color:#e9e6ff;border-top:2px solid var(--line);background:#17142a;margin-top:clamp(48px,7vw,88px);padding:40px 0 28px;position:relative;overflow:hidden}:root[data-theme=dark] .site-footer{background:#0b0920}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .site-footer{background:#0b0920}}.site-footer a{color:#fff;text-decoration-color:#ff4f94}.site-footer a:hover{color:#ffd35c}.site-footer h2{color:#ffd35c;margin:0 0 12px;font-size:1rem}.footer-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:28px;display:grid;position:relative}@media (width>=960px){.footer-grid{grid-template-columns:1.25fr 1fr 1fr 1.15fr}}.footer-about .brand span{white-space:nowrap}.footer-grid ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.footer-grid li a{padding:4px 0;display:inline-block}.footer-grid .desc{color:#bdb7e0;font-size:.86rem;line-height:1.4;display:block}.footer-about p{color:#bdb7e0;max-width:22rem;font-size:.92rem}.footer-about .brand{color:#fff;margin-bottom:12px}.footer-about .brand__mark .ring{stroke:#fff}.footer-bottom{border-top:2px dashed #4a4573;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;margin-top:32px;padding-top:18px;display:flex;position:relative}.footer-bottom p{color:#bdb7e0;margin:0}.footer-bottom ul{gap:16px;margin:0;padding:0;list-style:none;display:flex}.footer-decor{flex:none;width:132px;height:24px}.toast-region{z-index:100;pointer-events:none;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:#17142a;opacity:0;background:#ffc93c;border:2px solid #17142a;border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-weight:600;transition:opacity .2s,transform .2s;display:inline-flex;transform:translateY(8px);box-shadow:4px 4px #17142a}.toast.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn:hover,.toolgrid a:hover,.preset:hover{transform:none}}
