:root{--violet:var(--tools-primary,#6532b8);--ink:var(--tools-ink,#292238);--muted:var(--tools-muted,#6c6477);--line:var(--tools-line,#e7deef);--soft:var(--tools-pale,#f5effb)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--tools-paper,#fbf9fd);color:var(--ink);font:15px/1.65 system-ui,-apple-system,sans-serif}a{color:var(--violet);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}:focus-visible{outline:3px solid #be8a20;outline-offset:3px}.wrap{width:min(1160px,calc(100% - 36px));margin:auto}.skip{position:absolute;top:-100px;left:16px;background:#fff;padding:10px;z-index:10}.skip:focus{top:10px}.site-header{border-bottom:1px solid var(--line)}.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:10px;font-weight:850;letter-spacing:.05em;color:var(--ink)}.brand b,footer em{color:var(--violet);font-style:normal}.mark{display:grid;place-items:center;width:34px;height:34px;background:var(--violet);color:#fff;border-radius:10px}.site-header nav{display:flex;gap:25px;align-items:center}.site-header nav a{font-size:12px;font-weight:700;color:var(--muted)}.nav-all{border:1px solid var(--line);padding:8px 12px;border-radius:8px}.crumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:11px;color:var(--muted);margin:24px 0 22px}.crumb a{color:var(--muted)}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;padding:27px 0 48px}.eyebrow{color:var(--violet);font-size:11px;font-weight:800;letter-spacing:1.8px}.hero h1{font-size:clamp(31px,3.5vw,45px);line-height:1.16;letter-spacing:-1.5px;margin:15px 0}.hero h1 em{font-style:normal;color:var(--violet)}.lead{font-size:16px;color:var(--muted);max-width:650px}.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:23px}.tags span{font-size:11px;border:1px solid var(--line);border-radius:100px;padding:6px 11px;background:#fff}.hero-art{height:280px;display:flex;gap:12px;align-items:center;justify-content:center;background:radial-gradient(ellipse,#e7dafa,transparent 68%)}.paper,.code{width:120px;height:160px;padding:18px;border:1px solid #e3d8ee;border-radius:12px;background:#fff;box-shadow:0 14px 35px #41256514}.paper{font-weight:900;color:#b3505d;transform:rotate(-8deg)}.paper i{display:block;height:4px;background:#ded4e8;margin-top:14px}.paper i:nth-child(3){width:70%}.code{width:175px;transform:rotate(6deg);color:var(--violet);font:700 18px/1.7 monospace}.code span{font-size:11px;color:#75608e}.arrow{font-size:30px;color:var(--violet)}.workspace{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 15px 40px #4227670b}.panel{padding:30px;min-width:0}.output{border-left:1px solid var(--line);background:linear-gradient(145deg,#fbf8ff,#fff)}.steptitle{display:flex;gap:12px;align-items:flex-start;margin-bottom:20px}.steptitle>b{font-size:12px;background:var(--soft);color:var(--violet);padding:6px 10px;border-radius:8px}.steptitle h2{font-size:20px;line-height:1.25;margin:0}.steptitle p{font-size:12px;color:var(--muted);margin:3px 0}.drop{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;border:1.5px dashed #ae8dce;background:#fcfaff;padding:26px 15px;border-radius:13px;cursor:pointer;margin-bottom:28px}.drop:hover,.drop.drag{background:var(--soft);border-color:var(--violet)}.drop:focus-within{outline:3px solid #be8a20}.drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.drop span:last-child{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.upload-icon{font-size:30px;line-height:1.2;color:var(--violet)}fieldset{border:0;padding:0;margin:0 0 22px}legend{font-size:13px;font-weight:700;margin-bottom:7px}.option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-top:8px;cursor:pointer}.option:has(input:checked){border-color:#9c77bf;background:var(--soft)}.option input,.inline input{accent-color:var(--violet)}.option b{font-size:13px}.option small{display:block;font-size:11px;color:var(--muted)}.inline{font-size:13px;margin-right:20px}.range-label{display:block;font-size:12px;font-weight:650;margin-top:12px}.range-label input,.search-label input{display:block;width:100%;padding:11px;border:1px solid var(--line);border-radius:8px;margin-top:6px;background:#fff}.range-label input:disabled{background:#f8f6fa}.range-label small{display:block;color:var(--muted);font-weight:400;margin-top:5px}.primary,button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 15px;border:1px solid var(--line);background:#fff;color:var(--violet);border-radius:9px;font-size:13px;font-weight:700}.primary{background:var(--violet);color:#fff;border-color:var(--violet)}.submit{width:100%;justify-content:space-between}.fine{font-size:11px;color:var(--muted)}.empty-art{width:120px;height:135px;display:grid;place-items:center;margin:45px auto 20px;border:1px solid var(--line);border-radius:12px;box-shadow:8px 8px 0 #ede5f7;color:var(--violet);font:700 38px monospace}.output h3,.output>p[role=status]{text-align:center}.output h3{font-size:20px}.output>p[role=status]{font-size:13px;color:var(--muted)}progress{width:100%;accent-color:var(--violet);height:10px}#counts{text-align:center}#warnings p,#warnings-panel p{background:#fff7e7;color:#75501e;padding:10px 12px;border-radius:8px;font-size:12px}.results{margin-top:20px}.result-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);overflow-x:auto}.result-tabs button{border:0;border-radius:8px 8px 0 0;white-space:nowrap}.result-tabs button.selected{background:var(--soft)}.search-label{display:block;font-size:12px;margin:15px 0}.results pre{height:340px;overflow:auto;max-width:100%;background:#1f1c2a;color:#f5f1ff;border-radius:10px;padding:16px;font:12px/1.6 ui-monospace,monospace;white-space:pre;tab-size:2}.json-key{color:#c4a8fa}.json-string{color:#9ae3c6}.json-number{color:#f3c282}.json-literal{color:#f5a9c4}.json-hit{background:#e4a321;color:#211d2c}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.toolbar button{font-size:11px;padding:9px 12px}.status-actions{justify-content:center}.privacy{border-top:1px solid var(--line);margin-top:35px;padding-top:18px;font-size:12px}.privacy p{color:var(--muted)}.limits{display:flex;flex-wrap:wrap;gap:6px 15px;background:var(--soft);border-radius:13px;padding:18px 22px;margin:22px 0 70px;font-size:12px}.limits span{color:var(--muted)}.editorial,.faq,.related{margin:70px 0}.editorial>p{max-width:820px;color:var(--muted)}.editorial h2,.faq h2,.related h2{font-size:27px;letter-spacing:-.5px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:28px 0 55px}.cards article{border:1px solid var(--line);background:#fff;padding:22px;border-radius:12px}.cards span{font-size:11px;color:var(--violet);font-weight:800}.cards h3{font-size:17px}.cards p,.editorial li{font-size:13px;color:var(--muted)}.editorial ol{padding-left:21px}.faq details{padding:16px 0;border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-size:14px;font-weight:700}.faq details p{font-size:13px;color:var(--muted)}.related a{display:inline-block;margin:5px 8px 5px 0;padding:11px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}footer{border-top:1px solid var(--line);padding:25px 0;font-size:11px;color:var(--muted)}footer .wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}footer strong{font-size:14px;color:var(--ink)}footer span{flex:1}footer nav{display:flex;gap:15px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:840px){.hero{grid-template-columns:1fr}.hero-art{display:none}.workspace{grid-template-columns:1fr}.output{border-left:0;border-top:1px solid var(--line)}.cards{grid-template-columns:1fr}.site-header nav a:not(.nav-all){display:none}}@media(max-width:520px){.panel{padding:20px}.hero{padding-top:8px}.hero h1{font-size:32px}.site-header .brand{font-size:12px}.site-header nav{gap:0}.toolbar button{flex:1}.result-tabs button{font-size:11px}footer .wrap{display:block}footer nav{margin-top:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
