@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/figtree-latin-ext-wght-normal.DCwSJGxG.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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/figtree-latin-wght-normal.D_ZTVpCC.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-ext-wght-normal.DdQaqQDo.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-wght-normal.Bc-8i84L.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.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;--bh:35;--brand-50:oklch(.975 .012 var(--bh));--brand-100:oklch(.95 .026 var(--bh));--brand-200:oklch(.905 .05 var(--bh));--brand-300:oklch(.83 .09 var(--bh));--brand-400:oklch(.73 .13 var(--bh));--brand-500:oklch(.635 .152 var(--bh));--brand-600:oklch(.56 .148 var(--bh));--brand-700:oklch(.475 .135 var(--bh));--brand-800:oklch(.4 .112 var(--bh));--brand-900:oklch(.32 .085 var(--bh));--brand-950:oklch(.24 .06 var(--bh));--nh:260;--bg:oklch(.975 .003 var(--nh));--surface:oklch(.998 .001 var(--nh));--surface-soft:oklch(.987 .002 var(--nh));--surface-2:oklch(.965 .004 var(--nh));--surface-3:oklch(.935 .006 var(--nh));--line:oklch(.922 .006 var(--nh));--line-strong:oklch(.86 .01 var(--nh));--ink:oklch(.22 .02 var(--nh));--ink-2:oklch(.43 .018 var(--nh));--ink-3:oklch(.545 .016 var(--nh));--accent:var(--brand-600);--accent-ink:#fff;--accent-hover:var(--brand-700);--accent-soft:var(--brand-50);--accent-line:var(--brand-200);--warn:#b4541a;--warn-soft:#fbeee4;--ok:var(--brand-600);--focus:var(--brand-500);--font:"Figtree Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display:"Outfit Variable", "Figtree Variable", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--r-xs:8px;--r-sm:10px;--r-ctl:12px;--r:16px;--r-lg:20px;--pill:999px;--shadow-1:0 1px 2px oklch(.3 .03 var(--nh) / .07);--shadow-2:0 14px 34px -10px oklch(.3 .04 var(--nh) / .18), 0 2px 6px oklch(.3 .03 var(--nh) / .06);--shadow-3:0 36px 80px -24px oklch(.2 .03 var(--nh) / .4), 0 8px 20px -8px oklch(.2 .03 var(--nh) / .18);--shadow-brand:0 36px 80px -24px color-mix(in oklch, var(--brand-950) 60%, transparent), 0 8px 20px -8px color-mix(in oklch, var(--brand-950) 30%, transparent);--ease:cubic-bezier(.16, 1, .3, 1);--header-h:60px;--maxw:1320px;--gutter:24px}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6}img,svg,canvas,video{max-width:100%;display:block}a{color:inherit;text-decoration-color:var(--line-strong);text-underline-offset:3px}a:hover{text-decoration-color:currentColor}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.02em;margin:0;font-weight:650;line-height:1.15}p{margin:0 0 1em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}::selection{background:var(--brand-200)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:var(--r-ctl);padding:8px 14px;text-decoration:none;transition:top .15s;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.mono{font-family:var(--mono);font-size:13.5px}.muted{color:var(--ink-2)}.small{font-size:13px}kbd{font-family:var(--font);color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:600}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.ico{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.ico.ph{fill:currentColor;stroke:none}.ico-tile{border-radius:var(--r-ctl);background:var(--brand-100);width:40px;height:40px;color:var(--brand-600);flex:none;place-items:center;transition:background .18s,color .18s;display:grid}.ico-tile .ico{width:22px;height:22px}.ico-tile.sm{border-radius:var(--r-sm);width:32px;height:32px}.ico-tile.sm .ico{width:18px;height:18px}.ico-tile.lg{border-radius:var(--r);width:56px;height:56px}.ico-tile.lg .ico{width:30px;height:30px}.shell{max-width:var(--maxw);padding:28px var(--gutter) 72px;margin:0 auto}.with-rail{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:32px;display:grid}.rail{top:calc(var(--header-h) + 20px);flex-direction:column;gap:20px;display:flex;position:sticky}@media (width<=1199px){.with-rail{grid-template-columns:minmax(0,1fr)}.rail{position:static}.rail .ad-rail{display:none}}@media (width<=720px){:root{--gutter:16px}.shell{padding:20px var(--gutter) 56px}}.masthead{background:var(--surface);border-bottom:1px solid var(--line);z-index:30;position:relative}.mh-inner{max-width:var(--maxw);padding:12px var(--gutter);justify-content:space-between;align-items:center;gap:24px;min-height:68px;margin:0 auto;display:flex}.mh-left{flex:1;justify-content:space-between;align-items:center;gap:24px;min-width:0;display:flex}.masthead.has-ad .mh-inner{grid-template-columns:3fr 7fr;gap:32px;display:grid}.masthead.has-ad .mh-left{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:10px;min-height:90px}.mh-nav{align-items:center;gap:2px;display:flex}.masthead.has-ad .mh-nav{margin-left:-10px}.mh-ad{justify-content:flex-end;min-width:0;display:flex}.mh-ad .ad{width:100%;max-width:728px}.ad-header .ad-label{display:none}.ad-header .ad-box{width:100%;min-height:90px}.brand{white-space:nowrap;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{border-radius:var(--r-sm);background:var(--brand-600);color:#fff;width:34px;height:34px;box-shadow:inset 0 1px 0 #ffffff38, 0 6px 14px -6px var(--brand-600);flex:none;place-items:center;display:grid}.brand-mark .ico{width:20px;height:20px}.brand-name{font-family:var(--display);letter-spacing:-.02em;font-size:18px;font-weight:700}.brand-lg .brand-mark{border-radius:var(--r-ctl);width:44px;height:44px}.brand-lg .brand-mark .ico{width:26px;height:26px}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text b{font-family:var(--display);letter-spacing:-.025em;font-size:21px;font-weight:700}.brand-text small{color:var(--ink-3);margin-top:2px;font-size:12.5px;font-weight:500}.nav-btn{border-radius:var(--r-sm);cursor:pointer;height:36px;color:var(--ink-2);background:0 0;border:0;align-items:center;gap:7px;padding:0 10px;font-size:14.5px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.nav-btn:hover,.nav-btn[aria-expanded=true]{background:var(--surface-2);color:var(--ink)}.nav-btn .ico{width:17px;height:17px}.nav-btn .chev{width:12px;height:12px;transition:transform .2s var(--ease)}.nav-btn[aria-expanded=true] .chev{transform:rotate(180deg)}.nav-search kbd{margin-left:2px}.topbar{z-index:40;height:var(--header-h);background:color-mix(in oklch, var(--surface) 90%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid var(--line);transition:transform .28s var(--ease);position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.topbar.show{box-shadow:var(--shadow-1);transform:none}.topbar-inner{max-width:var(--maxw);height:100%;padding:0 var(--gutter);align-items:center;gap:16px;margin:0 auto;display:flex}.search-trigger{background:var(--surface-2);border-radius:var(--r-ctl);max-width:440px;height:40px;color:var(--ink-3);cursor:text;text-align:left;border:1px solid #0000;flex:1;align-items:center;gap:10px;margin-left:auto;padding:0 12px;font-size:14.5px;transition:border-color .15s,background .15s;display:flex}.search-trigger:hover{border-color:var(--line-strong);background:var(--surface)}.search-trigger span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cat-menu{z-index:55;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:min(660px,100vw - 24px);box-shadow:var(--shadow-2);grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:8px;display:none;position:absolute;top:0;left:0}.cat-menu.open{animation:pop .18s var(--ease);display:grid}.cat-menu a{border-radius:var(--r-ctl);align-items:center;gap:12px;padding:10px;text-decoration:none;transition:background .12s;display:flex}.cat-menu a:hover{background:var(--brand-50)}.cat-menu a:hover .ico-tile{background:var(--brand-600);color:#fff}.cat-menu a>span:nth-child(2){flex:1;min-width:0}.cat-menu a b{font-size:14.5px;font-weight:650;display:block}.cat-menu a small{-webkit-line-clamp:2;line-clamp:2;color:var(--ink-3);-webkit-box-orient:vertical;font-size:12.5px;line-height:1.35;display:-webkit-box;overflow:hidden}.cat-menu a .count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}@keyframes pop{0%{opacity:0;transform:translateY(-6px)scale(.98)}}@media (width<=900px){.masthead.has-ad .mh-inner{flex-direction:column;align-items:stretch;gap:10px;display:flex}.masthead.has-ad .mh-left{flex-direction:row;align-items:center;min-height:0}.masthead.has-ad .mh-nav{margin:0}.mh-nav .nav-btn span,.mh-nav kbd,.mh-nav .chev{display:none}.mh-nav .nav-btn{justify-content:center;width:40px;height:40px;padding:0}.mh-nav .nav-btn .ico{width:20px;height:20px}.brand-text small{display:none}.brand-lg .brand-mark{border-radius:var(--r-sm);width:36px;height:36px}.brand-lg .brand-mark .ico{width:21px;height:21px}.brand-text b{font-size:18px}.mh-ad{justify-content:center}.ad-header .ad-box{max-width:320px;min-height:50px;margin:0 auto}.cat-menu{grid-template-columns:minmax(0,1fr);max-height:70vh;overflow:auto}}@media (width<=720px){.topbar .brand-name,.search-trigger kbd,.topbar .nav-btn span{display:none}.topbar-inner{gap:10px}}.btn{border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--surface);height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .15s, border-color .15s, color .15s, transform .12s var(--ease), box-shadow .15s;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--line-strong);background:var(--surface-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn .ico{width:16px;height:16px}.btn-primary{background:var(--brand-600);border-color:var(--brand-600);color:#fff;box-shadow:inset 0 1px 0 #fff3, 0 8px 16px -8px var(--brand-600)}.btn-primary:hover{background:var(--brand-700);border-color:var(--brand-700)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);color:var(--ink);border-color:#0000}.btn-lg{height:46px;padding:0 20px;font-size:15px}.btn-sm{border-radius:var(--r-sm);height:30px;padding:0 10px;font-size:13px}.btn.done{background:var(--brand-50);border-color:var(--brand-200);color:var(--brand-700);box-shadow:none}.chip{border-radius:var(--pill);border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink-2);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:550;text-decoration:none;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.chip:hover{border-color:var(--brand-200);color:var(--brand-700);background:var(--brand-50)}.trust{color:var(--brand-700);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--pill);white-space:nowrap;align-items:center;gap:6px;padding:4px 12px 4px 9px;font-size:13px;font-weight:600;display:inline-flex}.trust .ico{width:14px;height:14px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field-label{color:var(--ink-2);font-size:13px;font-weight:650}.field .help{color:var(--ink-3);font-size:12.5px}.input,.select,.textarea{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);width:100%;height:38px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;height:auto;min-height:80px;padding:10px 12px}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--ink-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-600);box-shadow:0 0 0 3px color-mix(in oklch, var(--brand-500) 26%, transparent);outline:none}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 256 256' fill='%234a505c'%3E%3Cpath d='M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}input[type=color].input{cursor:pointer;width:52px;padding:3px}.check{cursor:pointer;user-select:none;align-items:center;gap:10px;min-height:38px;font-size:14px;font-weight:500;display:flex}.check input{appearance:none;border-radius:var(--pill);background:var(--line-strong);cursor:pointer;flex:none;width:38px;height:22px;margin:0;transition:background .18s;position:relative}.check input:after{content:"";width:16px;height:16px;box-shadow:0 1px 2px oklch(.2 .03 var(--nh) / .3);transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.check input:checked{background:var(--brand-600)}.check input:checked:after{transform:translate(16px)}input[type=range]{accent-color:var(--brand-600);width:100%}.crumbs{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;font-size:13.5px;display:flex}.crumbs a{color:var(--ink-2);font-weight:500;text-decoration:none}.crumbs a:hover{color:var(--brand-600)}.crumbs .ico{width:11px;height:11px;color:var(--line-strong)}.tool-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:22px;display:flex}.tool-head h1{letter-spacing:-.025em;font-size:clamp(26px,3vw,34px);font-weight:700}.tool-head p{color:var(--ink-2);margin:6px 0 0;font-size:16.5px;line-height:1.45}.tool-head .grow{flex:1;min-width:240px}.bench{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden}.bench-split{grid-template-columns:1fr 1fr;min-height:380px;display:grid}.bench-split>.pane+.pane{border-left:1px solid var(--line)}@media (width<=860px){.bench-split{grid-template-columns:1fr}.io{min-height:200px}.bench-split>.pane+.pane{border-left:0;border-top:1px solid var(--line)}}.pane{flex-direction:column;min-width:0;display:flex;position:relative}.pane-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;min-height:54px;padding:10px 12px 10px 18px;display:flex}.pane-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-right:auto;font-size:12px;font-weight:700}.pane-body{flex-direction:column;flex:1;min-height:0;display:flex}.pane-foot{border-top:1px solid var(--line);color:var(--ink-3);font-variant-numeric:tabular-nums;align-items:center;gap:10px;min-height:38px;padding:8px 18px;font-size:12.5px;display:flex}.pane-foot .spacer{flex:1}.local-note{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.local-note .ico{width:13px;height:13px}.io{resize:none;width:100%;min-height:320px;font-family:var(--mono);tab-size:2;white-space:pre;background:0 0;border:0;flex:1;padding:18px;font-size:13.5px;line-height:1.65;overflow:auto}.io.wrap{white-space:pre-wrap;word-break:break-word}.io.prose{font-family:var(--font);font-size:15.5px}.io:focus{outline:none}.io::placeholder{color:var(--ink-3)}.io[readonly],.pane-out .io{background:var(--surface-soft)}.status{align-items:center;gap:6px;display:inline-flex}.status .dot{background:var(--brand-500);border-radius:50%;width:7px;height:7px}.status.err .dot{background:var(--warn)}.error-box{white-space:pre-wrap;border-radius:var(--r-ctl);background:var(--warn-soft);color:#7a3510;border:1px solid #f0d3bf;margin:12px 16px;padding:10px 12px;font-size:14px;display:none}.error-box.show{display:block}.drop-hint{border:2px dashed var(--brand-500);border-radius:var(--r);background:color-mix(in oklch, var(--brand-50) 94%, transparent);color:var(--brand-700);z-index:5;pointer-events:none;place-items:center;font-weight:650;display:none;position:absolute;inset:8px}.dragging .drop-hint{display:grid}.bench-options{border-top:1px solid var(--line);background:var(--surface-soft);padding:16px 18px 18px}.opt-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-items:end;gap:12px 18px;display:grid}.opt-more{margin-top:12px}.opt-more summary{cursor:pointer;color:var(--brand-700);align-items:center;gap:6px;font-size:13px;font-weight:650;list-style:none;display:inline-flex}.opt-more summary::-webkit-details-marker{display:none}.opt-more summary:before{content:"";width:6px;height:6px;transition:transform .2s var(--ease);border-bottom:2px solid;border-right:2px solid;transform:rotate(-45deg)}.opt-more[open] summary:before{transform:rotate(45deg)}.opt-more .opt-grid{margin-top:12px}.examples-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 18px;display:flex}.examples-row .lbl{color:var(--ink-3);margin-right:4px;font-size:13px}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--r);text-align:center;cursor:pointer;background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:260px;margin:14px;padding:36px 20px;transition:border-color .18s,background .18s;display:flex}.dropzone:hover,.dragging .dropzone{border-color:var(--brand-500);background:var(--brand-50)}.dropzone:hover .ico-tile,.dragging .dropzone .ico-tile{background:var(--brand-600);color:#fff}.dropzone .big{font-family:var(--display);letter-spacing:-.01em;font-size:18px;font-weight:650}.dropzone .ico-tile{border-radius:var(--r);background:var(--surface);width:56px;height:56px;box-shadow:var(--shadow-1)}.dropzone .ico-tile .ico{width:26px;height:26px}.file-list{gap:8px;max-height:480px;margin:0;padding:10px;list-style:none;display:grid;overflow:auto}.file-card{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);align-items:center;gap:12px;padding:8px 10px;display:flex}.file-card .thumb{border-radius:var(--r-xs);object-fit:cover;background:var(--surface-2) center/cover;width:52px;height:52px;color:var(--ink-3);flex:none;place-items:center;font-size:11px;font-weight:700;display:grid;overflow:hidden}.file-card .meta{flex:1;min-width:0}.file-card .meta b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;display:block;overflow:hidden}.file-card .meta span{color:var(--ink-3);font-size:12.5px}.file-card .meta .good{color:var(--brand-700);font-weight:650}.progress{background:var(--surface-3);border-radius:var(--pill);height:4px;margin:0 16px 10px;display:none;overflow:hidden}.progress.show{display:block}.progress i{background:var(--brand-600);width:0;height:100%;transition:width .2s;display:block}.empty-out{text-align:center;color:var(--ink-3);flex:1;place-items:center;padding:30px;font-size:14px;display:grid}.ad{flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.ad-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);align-self:center;margin-bottom:6px;font-size:10.5px}.ad-box{justify-content:center;align-items:center;width:100%;display:flex}.ad-placeholder{border-radius:var(--r-ctl);color:var(--ink-3);letter-spacing:.02em;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);font-size:12px;font-weight:500}.ad-rail .ad-box{width:300px;min-height:600px}.ad-content{margin:40px 0}.ad-content .ad-box{max-width:728px;min-height:100px}@media (width<=760px){.ad-content .ad-box{min-height:280px}}.ad-mobile{margin:24px 0 0;display:none}.ad-mobile .ad-box{min-height:280px}@media (width<=1199px){.ad-mobile{display:flex}.ad-mobile+.ad-content{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}.card h3{margin-bottom:10px;font-size:15px}.link-list{gap:2px;margin:0 -6px;padding:0;list-style:none;display:grid}.link-list a{border-radius:var(--r-ctl);align-items:center;gap:10px;padding:7px 8px;font-size:14px;font-weight:550;text-decoration:none;transition:background .12s,color .12s;display:flex}.link-list a:hover{background:var(--brand-50);color:var(--brand-700)}.link-list a:hover .ico-tile{background:var(--brand-600);color:#fff}.guide{max-width:78ch;margin-top:8px}.guide section{border-top:1px solid var(--line);padding:32px 0}.guide section:first-child{border-top:0;padding-top:8px}.guide h2{margin-bottom:16px;font-size:23px}.guide p,.guide li{color:var(--ink-2);font-size:16.5px;line-height:1.65}.guide .note{border-radius:var(--r-ctl);background:var(--brand-50);color:var(--brand-800);align-items:flex-start;gap:10px;margin:18px 0 0;padding:12px 14px;font-size:14.5px;line-height:1.5;display:flex}.guide .note .ico{color:var(--brand-600);margin-top:2px}.steps{counter-reset:s;gap:14px;margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:s;align-items:flex-start;gap:14px;display:flex}.steps li:before{content:counter(s);background:var(--brand-600);color:#fff;width:28px;height:28px;font-family:var(--display);border-radius:50%;flex:none;place-items:center;margin-top:1px;font-size:14px;font-weight:650;display:grid}.ex-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.ex-card{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);cursor:pointer;transition:border-color .15s, box-shadow .2s, transform .2s var(--ease);padding:16px}button.ex-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow-2);transform:translateY(-2px)}.ex-card b{margin-bottom:8px;font-size:15px;display:block}.ex-card pre{font-family:var(--mono);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;max-height:72px;margin:0;font-size:12px;overflow:hidden;mask-image:linear-gradient(#000 60%,#0000)}.ex-card .try{color:var(--brand-600);align-items:center;gap:5px;margin-top:10px;font-size:13px;font-weight:650;display:inline-flex}.ex-card .try .ico{width:13px;height:13px}.faq details{border-bottom:1px solid var(--line)}.faq details:last-of-type{border-bottom:0}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;font-size:16.5px;font-weight:650;list-style:none;transition:color .15s;display:flex}.faq summary:hover{color:var(--brand-700)}.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:8px;height:8px;transition:transform .25s var(--ease);flex:none;margin:-4px 6px 0 0;transform:rotate(45deg)}.faq details[open] summary:after{margin-top:4px;transform:rotate(-135deg)}.faq details p{margin:0;padding:0 28px 18px 0}.browser{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden}.tool-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.tool-cell{background:var(--surface);box-shadow:0 0 0 1px var(--line);flex-direction:column;gap:4px;padding:22px 22px 24px;text-decoration:none;transition:background .18s;display:flex;position:relative}.tool-cell .ico-tile{width:48px;height:48px;transition:background .18s, color .18s, transform .25s var(--ease);margin-bottom:14px}.tool-cell .ico-tile .ico{width:27px;height:27px}.tool-name{font-family:var(--display);letter-spacing:-.01em;font-size:16.5px;font-weight:650;line-height:1.25}.tool-desc{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.45;display:-webkit-box;overflow:hidden}.tool-go{width:16px;height:16px;color:var(--brand-600);opacity:0;transition:opacity .18s, transform .25s var(--ease);position:absolute;top:22px;right:20px;transform:translate(-6px,6px)}.tool-cell:hover{background:var(--brand-50)}.tool-cell:hover .ico-tile{background:var(--brand-600);color:#fff}.tool-cell:hover .tool-go{opacity:1;transform:none}.tool-cell:active .ico-tile{transform:scale(.94)}.tool-cell:focus-visible{outline-offset:-3px;border-radius:var(--r-ctl)}.tool-tag{color:var(--brand-700);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--pill);align-self:flex-start;margin-top:8px;padding:1px 8px;font-size:11.5px;font-weight:700}.tool-cell:hover .tool-tag{background:var(--surface)}@media (width<=1100px){.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=800px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.tool-grid{grid-template-columns:1fr}.tool-cell{flex-flow:wrap;align-items:center;column-gap:14px;padding:14px 16px}.tool-cell .ico-tile{width:42px;height:42px;margin:0}.tool-cell .tool-name{flex:1}.tool-cell .tool-desc,.tool-cell .tool-tag{display:none}.tool-go{opacity:.5;position:static;transform:none}}.tool-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=800px){.tool-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.tool-grid.cols-3{grid-template-columns:1fr}}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);transition:border-color .15s, box-shadow .2s, transform .2s var(--ease);align-items:flex-start;gap:12px;padding:14px;text-decoration:none;display:flex;position:relative}.tile:hover{border-color:var(--brand-300);box-shadow:var(--shadow-2);transform:translateY(-2px)}.tile:hover .ico-tile{background:var(--brand-600);color:#fff}.tile b{font-size:15px;font-weight:650;line-height:1.3;display:block}.tile span{color:var(--ink-2);margin-top:3px;font-size:13.5px;line-height:1.45;display:block}.badge{color:var(--brand-700);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--pill);padding:1px 8px;font-size:11.5px;font-weight:700}.section-head{justify-content:space-between;align-items:flex-end;gap:16px;margin:64px 0 20px;display:flex}.section-head h2{letter-spacing:-.025em;font-size:clamp(24px,2.6vw,32px);font-weight:700}.section-head p{color:var(--ink-2);max-width:60ch;margin:8px 0 0}.section-head a{color:var(--brand-600);white-space:nowrap;align-items:center;gap:6px;font-size:14.5px;font-weight:650;text-decoration:none;display:inline-flex}.section-head a .ico{width:14px;height:14px;transition:transform .2s var(--ease)}.section-head a:hover .ico{transform:translate(3px)}.hero{text-align:center;max-width:760px;margin:0 auto;padding:clamp(28px,7vw,72px) 0 16px}.hero h1{letter-spacing:-.03em;font-size:clamp(30px,5vw,44px);font-weight:700}.hero p{color:var(--ink-2);max-width:560px;margin:14px auto 26px;font-size:17px}.hero-search{max-width:640px;margin:0 auto;position:relative}.hero-search .input{border-radius:var(--r);border-color:var(--line);height:60px;box-shadow:var(--shadow-2);padding:0 64px 0 54px;font-size:17px}.hero-search>.ico{color:var(--ink-3);z-index:1;pointer-events:none;width:20px;height:20px;position:absolute;top:20px;left:20px}.hero-search kbd{position:absolute;top:19px;right:18px}.hero-go{border-radius:var(--r-ctl);background:var(--brand-600);color:#fff;cursor:pointer;width:44px;height:44px;transition:background .15s, transform .12s var(--ease);border:0;place-items:center;display:grid;position:absolute;top:8px;right:8px}.hero-go:hover{background:var(--brand-700)}.hero-go:active{transform:scale(.95)}.hero-go .ico{width:19px;height:19px}.hero-results{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-3);text-align:left;z-index:20;max-height:420px;color:var(--ink);padding:6px;display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto}.hero-results.open{animation:pop .18s var(--ease);display:block}.palette{z-index:60;background:oklch(.22 .03 var(--nh) / .4);backdrop-filter:blur(4px);padding:10vh 16px 16px;display:none;position:fixed;inset:0}.palette.open{animation:.15s fade;display:block}@keyframes fade{0%{opacity:0}}.palette-box{background:var(--surface);border-radius:var(--r-lg);max-width:620px;box-shadow:var(--shadow-3);border:1px solid var(--line);animation:pop .2s var(--ease);margin:0 auto;overflow:hidden}.palette-input{border-bottom:1px solid var(--line);color:var(--ink-3);align-items:center;gap:12px;padding:0 18px;display:flex}.palette-input input{height:60px;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:17px}.palette-list{max-height:min(60vh,460px);padding:6px;overflow:auto}.result{border-radius:var(--r-ctl);cursor:pointer;align-items:center;gap:12px;padding:9px 10px;text-decoration:none;display:flex}.result b{font-size:15px;font-weight:650;display:block}.result span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.result>div{min-width:0}.result.active,.result:hover{background:var(--brand-50)}.result.active .ico-tile,.result:hover .ico-tile{background:var(--brand-600);color:#fff}.palette-foot{border-top:1px solid var(--line);color:var(--ink-3);gap:16px;padding:10px 16px;font-size:12px;display:flex}.result-group{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);padding:10px 10px 4px;font-size:11.5px;font-weight:700}.no-results{text-align:center;color:var(--ink-3);padding:26px;font-size:14.5px}.toasts{z-index:70;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--ink);color:#fff;border-radius:var(--r-ctl);box-shadow:var(--shadow-2);animation:rise .3s var(--ease);align-items:center;gap:10px;padding:10px 14px;font-size:14px;font-weight:500;display:flex}.toast button{color:#fff;border-radius:var(--r-xs);cursor:pointer;background:#ffffff24;border:0;padding:4px 10px;font-weight:650}.toast .ico{color:var(--brand-300)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.footer{border-top:1px solid var(--line);background:var(--surface);margin-top:24px}.footer-inner{max-width:var(--maxw);padding:56px var(--gutter) 36px;grid-template-columns:1.5fr repeat(3,1fr);gap:32px;margin:0 auto;display:grid}.footer h4{font-family:var(--font);letter-spacing:0;color:var(--ink);margin-bottom:14px;font-size:13px;font-weight:700}.footer ul{gap:9px;margin:0;padding:0;font-size:14.5px;list-style:none;display:grid}.footer a{color:var(--ink-2);text-decoration:none;transition:color .12s}.footer a.brand{color:var(--ink)}.footer a:hover{color:var(--brand-600)}.footer-about{max-width:34ch;color:var(--ink-2);margin:14px 0 0;font-size:14.5px}.footer-bottom{max-width:var(--maxw);padding:18px var(--gutter) 28px;border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin:0 auto;font-size:13.5px;display:flex}.footer a.powered{color:var(--ink-3);border:1px solid var(--line);border-radius:var(--pill);background:var(--surface);transition:border-color .15s, box-shadow .2s, transform .2s var(--ease);align-items:center;gap:8px;padding:5px 12px;font-size:13.5px;display:inline-flex}.footer a.powered b{color:var(--ink);font-weight:650}.footer a.powered img{width:26px;height:26px;margin:-3px 0}.footer a.powered:hover{border-color:var(--line-strong);box-shadow:var(--shadow-1);color:var(--ink-3);transform:translateY(-1px)}@media (width<=820px){.footer-inner{grid-template-columns:1fr 1fr;padding-top:40px}}.prose{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);max-width:760px;margin:0 auto;padding:clamp(22px,4vw,48px)}.prose h1{margin-bottom:18px;font-size:36px}.prose h2{margin:32px 0 10px;font-size:22px}.prose p,.prose li{color:var(--ink-2);font-size:16.5px}.prose a{color:var(--brand-600);font-weight:600}.prose h2[id],.prose h3{scroll-margin-top:24px}.prose h3{margin:22px 0 6px;font-size:17.5px}.prose ul,.prose ol{margin:8px 0 14px;padding-left:22px}.prose li{margin:5px 0}.prose li strong,.prose p strong{color:var(--ink)}.prose .toc{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-ctl);margin:18px 0 8px;padding:16px 20px}.prose .toc-title{color:var(--ink);margin:0 0 6px;font-weight:650}.prose .toc ol{columns:2 220px;column-gap:28px;margin:0}.prose .toc li{break-inside:avoid;margin:3px 0;font-size:14.5px}.prose .callout{background:var(--brand-50);border:1px solid var(--line);border-left:4px solid var(--brand-600);border-radius:var(--r-ctl);margin:12px 0;padding:14px 18px}.prose .callout ul,.prose .callout p{margin:0}.prose .table-wrap{margin:12px 0}.prose table.data td,.prose table.data th{white-space:normal;vertical-align:top}.prose .legal-caps{font-size:15px}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pad{padding:18px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.stat{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px 14px}.stat b{font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:650;line-height:1.2;display:block}.stat span{color:var(--ink-3);font-size:12.5px}.table-wrap{border:1px solid var(--line);border-radius:var(--r-ctl);overflow:auto}table.data{border-collapse:collapse;width:100%;font-size:13.5px}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:7px 10px}table.data th{background:var(--surface-2);font-weight:650;position:sticky;top:0}.badge-ok{color:var(--brand-700);background:var(--brand-50);border-radius:var(--pill);padding:2px 8px;font-size:12px;font-weight:650}.badge-warn{color:var(--warn);background:var(--warn-soft);border-radius:var(--pill);padding:2px 8px;font-size:12px;font-weight:650}.home-hero{background:var(--brand-600);color:#fff;isolation:isolate;position:relative}.home-hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60% 90% at 100% 0%, color-mix(in oklch, var(--brand-500) 70%, transparent), transparent 70%), radial-gradient(50% 80% at 0% 100%, color-mix(in oklch, var(--brand-700) 55%, transparent), transparent 70%);position:absolute;inset:0}.hero-inner{max-width:var(--maxw);padding:60px var(--gutter) 108px;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);align-items:center;gap:clamp(32px,5vw,72px);margin:0 auto;display:grid}.home-hero h1{letter-spacing:-.03em;color:#fff;text-wrap:balance;font-size:clamp(36px,4.5vw,58px);font-weight:700;line-height:1.04}.hero-lead{color:var(--brand-50);max-width:50ch;margin:18px 0 30px;font-size:clamp(16.5px,1.4vw,19px);line-height:1.55}.home-hero .hero-search{max-width:580px;margin:0}.home-hero .hero-search .input{color:var(--ink);box-shadow:var(--shadow-brand);border:0}.home-hero .hero-search .input:focus{box-shadow:0 0 0 4px color-mix(in oklch, var(--brand-200) 65%, transparent), var(--shadow-brand)}.drop-card{background:var(--surface);color:var(--ink);border-radius:var(--r-lg);box-shadow:var(--shadow-brand);padding:10px}.drop-area{text-align:center;border-radius:var(--r);border:1.5px dashed var(--brand-300);background:var(--brand-50);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:318px;padding:28px 24px;transition:border-color .2s,background .2s;display:flex;position:relative}.drop-area:hover,.drop-card.over .drop-area{border-color:var(--brand-600);background:var(--brand-100)}.drop-fan{justify-content:center;height:88px;margin-bottom:14px;display:flex}.drop-fan span{border-radius:var(--r-ctl);background:var(--surface);width:68px;height:84px;box-shadow:var(--shadow-2);color:var(--brand-600);transition:transform .45s var(--ease);place-items:center;display:grid}.drop-fan .ico{width:38px;height:38px}.drop-fan span:first-child{transform:translate(14px,6px)rotate(-12deg)}.drop-fan span:nth-child(2){z-index:1;position:relative;transform:translateY(-4px)}.drop-fan span:nth-child(3){transform:translate(-14px,6px)rotate(12deg)}.drop-area:hover .drop-fan span:first-child,.drop-card.over .drop-fan span:first-child{transform:translate(-2px,4px)rotate(-16deg)}.drop-area:hover .drop-fan span:nth-child(2),.drop-card.over .drop-fan span:nth-child(2){transform:translateY(-10px)}.drop-area:hover .drop-fan span:nth-child(3),.drop-card.over .drop-fan span:nth-child(3){transform:translate(2px,4px)rotate(16deg)}.drop-title{font-family:var(--display);letter-spacing:-.015em;font-size:21px;font-weight:650}.drop-sub{color:var(--ink-2);max-width:30ch;font-size:14.5px;line-height:1.45}.drop-area .btn{pointer-events:none;margin-top:14px}.drop-note{color:var(--ink-3);align-items:center;gap:6px;margin-top:12px;font-size:13px;font-weight:500;display:inline-flex}.drop-note .ico{width:14px;height:14px}.drop-result{flex-direction:column;min-height:318px;padding:8px 8px 6px;display:flex}.drop-file{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:4px 4px 14px;display:flex}.drop-file .meta{flex:1;min-width:0}.drop-file .meta b{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:650;display:block;overflow:hidden}.drop-file .meta span{color:var(--ink-3);font-size:13px}.drop-ask{font-family:var(--display);margin:16px 4px 10px;font-size:16px;font-weight:650}.drop-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.drop-act{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);transition:border-color .15s, background .15s, transform .15s var(--ease);animation:rise .4s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms);align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:600;line-height:1.25;text-decoration:none;display:flex}.drop-act:hover{border-color:var(--brand-300);background:var(--brand-50);transform:translateY(-1px)}.drop-act:hover .ico-tile{background:var(--brand-600);color:#fff}.drop-empty{text-align:center;color:var(--ink-2);max-width:34ch;margin:auto;font-size:14.5px}@media (width<=1023px){.hero-inner{grid-template-columns:1fr;gap:32px;padding-top:44px}.drop-area,.drop-result{min-height:0}.drop-area{padding:24px 18px}}@media (width<=600px){.hero-inner{padding:36px var(--gutter) 92px}.home-hero .hero-search .input{height:56px;padding-left:48px;font-size:16px}.home-hero .hero-search>.ico{top:18px;left:17px}.hero-go{width:40px;height:40px}.drop-actions{grid-template-columns:1fr}}.facts{z-index:2;max-width:var(--maxw);padding:0 var(--gutter);margin:-52px auto 0;position:relative}.facts ul{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.facts li{align-items:center;gap:14px;min-width:0;padding:20px 24px;display:flex}.facts li+li{border-left:1px solid var(--line)}.facts .ico{width:32px;height:32px;color:var(--brand-600)}.facts b{font-family:var(--display);letter-spacing:-.01em;font-size:16.5px;font-weight:650;line-height:1.25;display:block}.facts span{color:var(--ink-2);font-size:13.5px;line-height:1.4;display:block}@media (width<=980px){.facts ul{grid-template-columns:1fr 1fr}.facts li:nth-child(3){border-left:0}.facts li:nth-child(n+3){border-top:1px solid var(--line)}}@media (width<=520px){.facts li{gap:10px;padding:14px}.facts .ico{width:26px;height:26px}.facts b{font-size:14.5px}.facts span{display:none}}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;scroll-snap-type:x proximity;gap:4px;padding:10px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{scroll-snap-align:start;border-radius:var(--pill);height:36px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex:none;padding:0 14px;font-size:14.5px;font-weight:600;transition:background .15s,color .15s}.tab:hover{background:var(--surface-2);color:var(--ink)}.tab[aria-selected=true]{background:var(--brand-600);color:#fff}.tab sup{opacity:.7;vertical-align:top;margin-left:3px;font-size:11px;font-weight:700;position:relative;top:2px}.browser-foot{border-top:1px solid var(--line);color:var(--ink-2);justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;font-size:14px;display:flex}.browser-foot a{color:var(--brand-600);align-items:center;gap:6px;font-weight:650;text-decoration:none;display:inline-flex}.browser-foot a .ico{width:14px;height:14px;transition:transform .2s var(--ease)}.browser-foot a:hover .ico{transform:translate(3px)}.tool-grid.swap .tool-cell{animation:cell-in .4s var(--ease) both;animation-delay:calc(var(--i,0) * 22ms)}@keyframes cell-in{0%{opacity:0;transform:translateY(8px)}}.bento{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.bento-cell{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:8px;min-height:280px;padding:26px;display:flex;position:relative;overflow:hidden}.bento-cell h3{font-size:21px;font-weight:650}.bento-cell p{color:var(--ink-2);max-width:44ch;margin:0;font-size:15px;line-height:1.5}.bento-link{color:var(--brand-600);align-self:flex-start;align-items:center;gap:6px;margin-top:auto;padding-top:14px;font-size:14.5px;font-weight:650;text-decoration:none;display:inline-flex}.bento-link .ico{width:14px;height:14px;transition:transform .2s var(--ease)}.bento-link:hover .ico{transform:translate(3px)}.bento-link:after{content:"";position:absolute;inset:0}.bento-cell :is(input,button,.demo){z-index:1;position:relative}.b-hidden{grid-column:span 7}.b-keys{background:var(--brand-50);border-color:var(--brand-100);grid-column:span 5}.b-paper{grid-column:span 5}.b-photo{background:var(--brand-600);border-color:var(--brand-600);color:#fff;grid-column:span 7}.b-photo p{color:var(--brand-50)}.b-photo .bento-link{color:#fff}.b-photo>.ico{color:#fff;opacity:.14;pointer-events:none;width:250px;height:250px;position:absolute;bottom:-44px;right:-30px}.btn-white{color:var(--brand-700);background:#fff;border-color:#fff}.btn-white:hover{background:var(--brand-50);border-color:var(--brand-50)}.photo-demo{flex-direction:column;align-items:flex-start;gap:12px;margin-top:18px;display:flex}.photo-out{color:#fff;background:color-mix(in oklch, var(--brand-800) 45%, transparent);border-radius:var(--r-ctl);max-width:46ch;padding:10px 14px;font-size:14.5px;line-height:1.5}.demo{margin-top:14px}.hc-input{border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface);width:100%;height:46px;font-family:var(--mono);padding:0 14px;font-size:14px}.hc-input:focus{border-color:var(--brand-600);box-shadow:0 0 0 3px color-mix(in oklch, var(--brand-500) 26%, transparent);outline:none}.hc-out{border-radius:var(--r-ctl);background:var(--surface-2);min-height:46px;font-family:var(--mono);word-break:break-word;margin-top:10px;padding:10px 14px;font-size:14px;line-height:1.9}.hc-out mark{background:var(--brand-600);color:#fff;font-size:11px;font-weight:700;font-family:var(--font);vertical-align:1px;border-radius:5px;margin:0 2px;padding:1px 5px}.hc-count{color:var(--brand-700);margin-top:10px;font-size:13.5px;font-weight:650}.keycap-row{align-items:flex-end;gap:14px;margin-top:18px;display:flex}.keycap{border-radius:var(--r);background:var(--surface);border:1px solid var(--brand-200);min-width:84px;height:84px;box-shadow:0 6px 0 var(--brand-200);font-family:var(--display);color:var(--brand-700);place-items:center;padding:0 18px;font-size:26px;font-weight:650;transition:transform 80ms,box-shadow 80ms;display:grid}.keycap.down{box-shadow:0 1px 0 var(--brand-200);transform:translateY(5px)}.keycap-info{color:var(--ink-2);padding-bottom:6px;font-size:13.5px;line-height:1.5}.keycap-info code{font-family:var(--mono);color:var(--brand-700);font-size:12.5px}.paper-prev{border-radius:var(--r-ctl);border:1px solid var(--line);background-color:var(--surface);min-height:120px;transition:background-size .3s var(--ease);flex:1;margin-top:14px}.paper-prev[data-p=dot]{background-image:radial-gradient(var(--brand-300) 1.4px, transparent 1.6px);background-position:9px 9px;background-size:18px 18px}.paper-prev[data-p=grid]{background-image:linear-gradient(var(--brand-200) 1px, transparent 1px), linear-gradient(90deg, var(--brand-200) 1px, transparent 1px);background-size:18px 18px}.paper-prev[data-p=lined]{background-image:linear-gradient(var(--brand-200) 1px, transparent 1px);background-size:100% 22px}.seg{border-radius:var(--pill);background:var(--surface-2);align-self:flex-start;margin-top:12px;padding:3px;display:inline-flex}.seg button{border-radius:var(--pill);height:30px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:0 14px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s}.seg button[aria-pressed=true]{background:var(--surface);color:var(--brand-700);box-shadow:var(--shadow-1)}.also{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;font-size:14.5px;display:flex}@media (width<=900px){.bento{grid-template-columns:1fr}.bento-cell{grid-column:auto;min-height:0;padding:22px}}.qa{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:48px;margin-top:72px;display:grid}.qa h2{letter-spacing:-.025em;font-size:clamp(24px,2.6vw,32px);font-weight:700}.qa>div>p{color:var(--ink-2);max-width:34ch;margin:10px 0 0}.qa .faq{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:6px 24px}.qa .faq p{color:var(--ink-2)}@media (width<=900px){.qa{grid-template-columns:1fr;gap:20px;margin-top:56px}}@media (prefers-reduced-motion:no-preference){.rise{animation:rise-in .7s var(--ease) both;animation-delay:calc(var(--i,0) * 80ms)}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}}@supports (animation-timeline:view()){.reveal{animation:linear both reveal view();animation-range:entry entry 38%}@keyframes reveal{0%{opacity:0;transform:translateY(24px)}}}}
