@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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:Geist Fallback;src:local(Arial),local(Helvetica),local(Liberation Sans);size-adjust:105.1%;ascent-override:95.6%;descent-override:28.1%;line-gap-override:0%}@font-face{font-family:Geist Mono Fallback;src:local(Courier New),local(Liberation Mono),local(Courier);size-adjust:100%;ascent-override:100.5%;descent-override:29.5%;line-gap-override:0%}:root{color-scheme:light;--bg:#f5f6f8;--surface:#fff;--surface-2:#eef0f3;--surface-3:#e5e8ed;--overlay:#0c0e1480;--border:#dce0e6;--border-strong:#c3c9d2;--control-border:#858e9c;--text:#14171c;--text-2:#454c57;--text-3:#5f6773;--accent:#2447f5;--accent-hover:#1a38d6;--accent-active:#142ead;--accent-fg:#fff;--accent-text:#1b3bd9;--accent-soft:#e9edfe;--accent-soft-2:#d5dcfc;--focus:#2447f5;--ok:#1d6b45;--ok-soft:#e8f3ec;--ok-border:#bfdccb;--warn:#86560a;--warn-soft:#faf2df;--warn-border:#e6d3a3;--err:#b3261e;--err-soft:#fbeceb;--err-border:#ecc3bf;--code-bg:#eef0f3;--grid-dot:#cdd2da;--shadow-pop:0 1px 2px #1018280f, 0 12px 32px -8px #10182833;--font-sans:"Geist Variable", "Geist Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"Geist Mono Variable", "Geist Mono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.375rem;--fs-xl:1.75rem;--fs-2xl:2.25rem;--fs-3xl:3rem;--lh-tight:1.15;--lh-snug:1.3;--lh-base:1.55;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--r-1:6px;--r-2:8px;--r-3:10px;--container:72rem;--gutter:16px;--header-h:56px;--control-h:44px;--control-h-sm:36px;--dur:.16s;--ease:cubic-bezier(.2, 0, 0, 1);--z-header:40;--z-menu:50;--z-dialog:100;--z-toast:110}@media (width>=768px){:root{--gutter:24px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0d0f13;--surface:#14171c;--surface-2:#1a1e25;--surface-3:#222730;--overlay:#0000009e;--border:#262b34;--border-strong:#363d49;--control-border:#636d7d;--text:#e8eaee;--text-2:#b0b7c2;--text-3:#8f97a4;--accent:#3d5afe;--accent-hover:#4a66ff;--accent-active:#3550e8;--accent-fg:#fff;--accent-text:#93a5ff;--accent-soft:#171e3d;--accent-soft-2:#26315f;--focus:#93a5ff;--ok:#64c28f;--ok-soft:#12251b;--ok-border:#24503a;--warn:#e2b455;--warn-soft:#2a2110;--warn-border:#55421b;--err:#f28f86;--err-soft:#2c1614;--err-border:#5d2b27;--code-bg:#1a1e25;--grid-dot:#2a303a;--shadow-pop:0 1px 2px #0006, 0 16px 40px -8px #000000a6}}:root[data-theme=dark]{color-scheme:dark;--bg:#0d0f13;--surface:#14171c;--surface-2:#1a1e25;--surface-3:#222730;--overlay:#0000009e;--border:#262b34;--border-strong:#363d49;--control-border:#636d7d;--text:#e8eaee;--text-2:#b0b7c2;--text-3:#8f97a4;--accent:#3d5afe;--accent-hover:#4a66ff;--accent-active:#3550e8;--accent-fg:#fff;--accent-text:#93a5ff;--accent-soft:#171e3d;--accent-soft-2:#26315f;--focus:#93a5ff;--ok:#64c28f;--ok-soft:#12251b;--ok-border:#24503a;--warn:#e2b455;--warn-soft:#2a2110;--warn-border:#55421b;--err:#f28f86;--err-soft:#2c1614;--err-border:#5d2b27;--code-bg:#1a1e25;--grid-dot:#2a303a;--shadow-pop:0 1px 2px #0006, 0 16px 40px -8px #000000a6}@media (prefers-reduced-motion:reduce){:root{--dur:.01ms}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;scroll-padding-top:calc(var(--header-h) + var(--s-4));background:var(--bg)}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;flex-direction:column;margin:0;display:flex}main{flex:1 0 auto}h1,h2,h3,h4{font-weight:600;line-height:var(--lh-snug);letter-spacing:-.015em;text-wrap:balance;margin:0}h1{font-size:clamp(var(--fs-xl), 5vw, var(--fs-2xl));line-height:var(--lh-tight);letter-spacing:-.03em;font-weight:650}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}h4{font-size:var(--fs-base)}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0}a{color:var(--accent-text);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}img,svg,video,canvas{max-width:100%}img{height:auto}button,input,select,textarea{font:inherit;color:inherit}hr{border:0;border-top:1px solid var(--border);margin:0}::selection{background:var(--accent-soft-2);color:var(--text)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--s-4);z-index:200;padding:var(--s-2) var(--s-4);background:var(--text);color:var(--bg);border-radius:var(--r-2);font-weight:600;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--s-2)}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.stack{gap:var(--s-4);flex-direction:column;display:flex}.stack-sm{gap:var(--s-2);flex-direction:column;display:flex}.stack-lg{gap:var(--s-5);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.row-sm{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.between{justify-content:space-between}.grow{flex:auto;min-width:0}.grid-auto{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));display:grid}.muted{color:var(--text-2)}.subtle{color:var(--text-3)}.mono{font-family:var(--font-mono)}.tabular{font-variant-numeric:tabular-nums}.small{font-size:var(--fs-sm)}.tiny{font-size:var(--fs-xs)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:500}.prose{max-width:46rem;color:var(--text)}.prose>*+*{margin-top:var(--s-4)}.prose h2{margin-top:var(--s-6);font-size:var(--fs-lg)}.prose h3{margin-top:var(--s-5)}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:var(--s-2)}.prose li::marker{color:var(--text-3)}.prose p,.prose li{color:var(--text-2)}.prose strong{color:var(--text);font-weight:600}.prose table{width:100%}noscript .alert{margin-block:var(--s-4)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.site-header,.site-footer,.ad-slot,.toast-region{display:none!important}}.coarse-only{display:none}@media (pointer:coarse){.fine-only{display:none}.coarse-only{display:inline}}.icon{vertical-align:middle;flex:none;width:1.25rem;height:1.25rem}.icon-sm{width:1rem;height:1rem}.icon-lg{width:1.5rem;height:1.5rem}.btn{--_bg:var(--surface);--_fg:var(--text);--_bd:var(--control-border);justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--control-h);padding:0 var(--s-4);border:1px solid var(--_bd);border-radius:var(--r-2);background:var(--_bg);color:var(--_fg);font-size:var(--fs-base);white-space:nowrap;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);font-weight:550;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{--_bg:var(--surface-2);text-decoration:none}.btn:active{--_bg:var(--surface-3)}.btn[disabled],.btn[aria-disabled=true]{--_fg:var(--text-3);--_bd:var(--border-strong);cursor:not-allowed;pointer-events:none}.btn-ghost[disabled],.btn-ghost[aria-disabled=true]{--_bg:transparent;--_bd:transparent}.btn-primary[disabled],.btn-primary[aria-disabled=true]{--_bg:var(--accent-soft);--_fg:var(--text-3);--_bd:var(--accent-soft-2)}.btn-danger[disabled],.btn-danger[aria-disabled=true]{--_bg:var(--err-soft);--_fg:var(--text-3);--_bd:var(--err-border)}.btn-primary{--_bg:var(--accent);--_fg:var(--accent-fg);--_bd:var(--accent)}.btn-primary:hover{--_bg:var(--accent-hover);--_bd:var(--accent-hover)}.btn-primary:active{--_bg:var(--accent-active);--_bd:var(--accent-active)}.btn-secondary{--_bg:var(--surface);--_bd:var(--control-border)}.btn-ghost{--_bg:transparent;--_bd:transparent;--_fg:var(--text-2)}.btn-ghost:hover{--_bg:var(--surface-2);--_fg:var(--text)}.btn-ghost:active{--_bg:var(--surface-3)}.btn-danger{--_bg:var(--err-soft);--_fg:var(--err);--_bd:var(--err-border)}.btn-danger:hover{--_bg:var(--err-soft);--_bd:var(--err)}.btn-sm{min-height:var(--control-h-sm);padding:0 var(--s-3);font-size:var(--fs-sm)}.btn-lg{min-height:52px;padding:0 var(--s-5);font-size:var(--fs-md)}.btn-block{width:100%;display:flex}.btn-icon{width:var(--control-h);padding:0}.btn-icon.btn-sm{width:var(--control-h-sm)}@media (pointer:coarse){.btn-sm{min-height:var(--control-h)}.btn-icon.btn-sm{width:var(--control-h)}}.btn[aria-busy=true]{color:#0000;pointer-events:none;position:relative}.btn[aria-busy=true]>*{visibility:hidden}.btn[aria-busy=true]:after{content:"";border:2px solid var(--_fg);border-right-color:#0000;border-radius:50%;width:1.125rem;height:1.125rem;margin:auto;animation:.7s linear infinite spin;position:absolute;inset:0}.btn-primary[aria-busy=true]:after{border-color:var(--accent-fg);border-right-color:#0000}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--accent);vertical-align:middle;border-right-color:#0000;border-radius:50%;width:1.125rem;height:1.125rem;animation:.7s linear infinite spin;display:inline-block}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-row{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));align-items:start;display:grid}.label{font-size:var(--fs-sm);color:var(--text);font-weight:550}.label .optional{color:var(--text-3);font-weight:400}.hint{font-size:var(--fs-sm);color:var(--text-3)}.error-text{font-size:var(--fs-sm);color:var(--err)}.input,.textarea,.select{width:100%;min-height:var(--control-h);padding:0 var(--s-3);border:1px solid var(--control-border);border-radius:var(--r-2);background:var(--surface);color:var(--text);font-size:var(--fs-base);transition:border-color var(--dur) var(--ease);line-height:1.3}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.textarea:hover,.select:hover{border-color:var(--text-3)}.input:focus-visible,.textarea:focus-visible,.select:focus-visible{outline:2px solid var(--focus);outline-offset:-1px;border-color:var(--focus)}.input[aria-invalid=true],.textarea[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--err)}.input:disabled,.textarea:disabled,.select:disabled{background:var(--surface-2);color:var(--text-3);cursor:not-allowed}.input[type=number],.input-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.textarea{padding:var(--s-3);resize:vertical;min-height:7rem}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23858e9c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.5rem}.input-group{align-items:center;display:flex;position:relative}.input-group .input{flex:auto}.input-group .affix{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.input-group .affix-start{left:var(--s-3)}.input-group .affix-end{right:var(--s-3)}.input-group.has-start .input{padding-left:2.25rem}.input-group.has-end .input{padding-right:2.5rem}.check,.radio{align-items:flex-start;gap:var(--s-3);min-height:var(--control-h);cursor:pointer;font-size:var(--fs-base);align-items:center;display:inline-flex}.check input,.radio input{appearance:none;border:1px solid var(--control-border);background:var(--surface);cursor:pointer;width:1.25rem;height:1.25rem;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);flex:none;margin:0}.check input{border-radius:5px}.radio input{border-radius:50%}.check input:hover,.radio input:hover{border-color:var(--text-3)}.check input:checked,.check input:indeterminate{background-color:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 10.5 3.2 3.2L15 6.8'/%3E%3C/svg%3E");background-size:100% 100%}.check input:indeterminate{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M5.5 10h9'/%3E%3C/svg%3E")}.radio input:checked{border-color:var(--accent);background-color:var(--accent);background-image:radial-gradient(circle, var(--accent-fg) 0 32%, transparent 36%)}.check input:disabled,.radio input:disabled{opacity:.5;cursor:not-allowed}.check:has(input:disabled),.radio:has(input:disabled){color:var(--text-3);cursor:not-allowed}.choices{flex-direction:column;display:flex}.switch{align-items:center;gap:var(--s-3);min-height:var(--control-h);cursor:pointer;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch-track{background:var(--surface-3);border:1px solid var(--control-border);width:2.5rem;height:1.5rem;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);border-radius:999px;flex:none;position:relative}.switch-track:after{content:"";background:var(--text-2);width:1.125rem;height:1.125rem;transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent);border-color:var(--accent)}.switch input:checked+.switch-track:after{background:var(--accent-fg);transform:translate(1rem)}.switch input:focus-visible+.switch-track{outline:2px solid var(--focus);outline-offset:2px}.switch input:disabled+.switch-track{opacity:.5}.range{flex-direction:column;gap:6px;display:flex}.range-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.range-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm);color:var(--text);font-weight:500}.range input[type=range]{--pct:50%;appearance:none;width:100%;height:var(--control-h);cursor:pointer;background:0 0;margin:0}.range input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--pct), var(--surface-3) var(--pct));border-radius:2px;height:4px}.range input[type=range]::-moz-range-track{background:var(--surface-3);border-radius:2px;height:4px}.range input[type=range]::-moz-range-progress{background:var(--accent);border-radius:2px;height:4px}.range input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:20px;height:20px;margin-top:-8px}.range input[type=range]::-moz-range-thumb{background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:16px;height:16px}.range input[type=range]:focus-visible{outline:none}.range input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--focus);outline-offset:2px}.range input[type=range]:focus-visible::-moz-range-thumb{outline:2px solid var(--focus);outline-offset:2px}.range-scale{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);justify-content:space-between;display:flex}.seg{border-radius:var(--r-2);background:var(--surface-2);border:1px solid var(--border);scrollbar-width:none;gap:2px;max-width:100%;padding:2px;display:inline-flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg-block{width:100%;display:flex}.seg-block .seg-item{flex:1 1 0}.seg-item{flex:none;display:inline-flex;position:relative}.seg-item input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg-item span{justify-content:center;align-items:center;gap:var(--s-2);width:100%;min-height:38px;padding:0 var(--s-3);font-size:var(--fs-sm);color:var(--text-2);white-space:nowrap;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);border:1px solid #0000;border-radius:6px;font-weight:500;display:inline-flex}.seg-item:hover span{color:var(--text)}.seg-item input:checked+span{background:var(--surface);border-color:var(--border-strong);color:var(--text);font-weight:600}.seg-item input:focus-visible+span{outline:2px solid var(--focus);outline-offset:1px}.seg-item input:disabled+span{color:var(--text-3)}.tabs{gap:var(--s-1);border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{min-height:var(--control-h);padding:0 var(--s-4);color:var(--text-2);font-size:var(--fs-base);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex:none;font-weight:500;position:relative}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);font-weight:600}.tab[aria-selected=true]:after{content:"";left:var(--s-2);right:var(--s-2);background:var(--accent);height:2px;position:absolute;bottom:-1px}.tabpanel{padding-top:var(--s-4)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);padding:var(--s-4)}@media (width>=768px){.panel{padding:var(--s-5)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);padding:var(--s-4)}a.card{color:inherit;transition:border-color var(--dur) var(--ease);text-decoration:none;display:block}a.card:hover{border-color:var(--control-border)}.divider{border:0;border-top:1px solid var(--border);margin:0}.section-label{align-items:center;gap:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:500;display:flex}.ws-section+.ws-section{margin-top:var(--s-5);padding-top:var(--s-5);border-top:1px solid var(--border)}.ws-narrow{max-width:40rem}.badge{padding:1px var(--s-2);border:1px solid var(--border-strong);border-radius:var(--r-1);background:var(--surface);color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-weight:500;line-height:1.5;display:inline-flex}.badge-accent{background:var(--accent-soft);border-color:var(--accent-soft-2);color:var(--accent-text)}.badge-ok{background:var(--ok-soft);border-color:var(--ok-border);color:var(--ok)}.badge-warn{background:var(--warn-soft);border-color:var(--warn-border);color:var(--warn)}.badge-err{background:var(--err-soft);border-color:var(--err-border);color:var(--err)}.chip{align-items:center;gap:var(--s-2);min-height:var(--control-h-sm);padding:0 var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background-color var(--dur) var(--ease);font-weight:500;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--control-border);color:var(--text);text-decoration:none}.chip .icon{width:1rem;height:1rem;color:var(--text-3)}@media (pointer:coarse){.chip{min-height:var(--control-h)}}.kbd{border:1px solid var(--border-strong);background:var(--surface);min-width:1.5rem;color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-xs);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 6px;line-height:1.4;display:inline-flex}.alert{gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);align-items:flex-start;display:flex}.alert .icon{margin-top:1px}.alert-title{font-weight:600}.alert-ok{background:var(--ok-soft);border-color:var(--ok-border)}.alert-ok .icon{color:var(--ok)}.alert-warn{background:var(--warn-soft);border-color:var(--warn-border)}.alert-warn .icon{color:var(--warn)}.alert-err{background:var(--err-soft);border-color:var(--err-border)}.alert-err .icon{color:var(--err)}.alert-info .icon{color:var(--accent-text)}.state{align-items:flex-start;gap:var(--s-2);padding:var(--s-6) var(--s-5);border:1px dashed var(--border-strong);border-radius:var(--r-3);background:var(--surface);flex-direction:column;display:flex}.state-icon{border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface-2);width:2.5rem;height:2.5rem;color:var(--text-2);margin-bottom:var(--s-1);place-items:center;display:grid}.state-title{font-size:var(--fs-md);font-weight:600}.state-text{max-width:34rem;color:var(--text-2)}.state-actions{gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.state-err{border-style:solid;border-color:var(--err-border);background:var(--err-soft)}.state-err .state-icon{border-color:var(--err-border);background:var(--surface);color:var(--err)}.progress{background:var(--surface-3);border-radius:3px;height:6px;position:relative;overflow:hidden}.progress-bar{height:100%;width:var(--value,0%);background:var(--accent);transition:width var(--dur) var(--ease);border-radius:3px}.progress-indeterminate .progress-bar{width:40%;animation:progress-slide 1.2s var(--ease) infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.progress-meta{justify-content:space-between;gap:var(--s-3);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);margin-top:6px;display:flex}.dropzone{justify-content:center;align-items:center;gap:var(--s-2);min-height:12rem;padding:var(--s-6) var(--s-4);border:1px dashed var(--control-border);border-radius:var(--r-3);background:var(--surface);text-align:center;cursor:pointer;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;display:flex;position:relative}.dropzone:before{content:"";pointer-events:none;--_c:var(--text-3);background:linear-gradient(var(--_c), var(--_c)) top left / 10px 1px no-repeat, linear-gradient(var(--_c), var(--_c)) top left / 1px 10px no-repeat, linear-gradient(var(--_c), var(--_c)) top right / 10px 1px no-repeat, linear-gradient(var(--_c), var(--_c)) top right / 1px 10px no-repeat, linear-gradient(var(--_c), var(--_c)) bottom left / 10px 1px no-repeat, linear-gradient(var(--_c), var(--_c)) bottom left / 1px 10px no-repeat, linear-gradient(var(--_c), var(--_c)) bottom right / 10px 1px no-repeat, linear-gradient(var(--_c), var(--_c)) bottom right / 1px 10px no-repeat;transition:inset var(--dur) var(--ease);position:absolute;inset:6px}.dropzone:hover{border-color:var(--text-3);background:var(--surface)}.dropzone:focus-within{outline:2px solid var(--focus);outline-offset:2px}.dropzone.is-drag{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.dropzone.is-drag:before{--_c:var(--accent);inset:3px}.dropzone.is-invalid{border-color:var(--err)}.dropzone-icon{border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface-2);width:2.75rem;height:2.75rem;color:var(--text-2);place-items:center;display:grid}.dropzone.is-drag .dropzone-icon{border-color:var(--accent);color:var(--accent-text);background:var(--surface)}.dropzone-title{font-size:var(--fs-md);font-weight:600}.dropzone-hint{font-size:var(--fs-sm);color:var(--text-3)}.dropzone-hint .mono{color:var(--text-2)}.dropzone-input{opacity:0;cursor:pointer;width:100%;height:100%;font-size:0;position:absolute;inset:0}.dropzone-compact{min-height:4.5rem;padding:var(--s-3) var(--s-4);text-align:left;justify-content:flex-start;gap:var(--s-3);flex-direction:row}.dropzone-compact:before{display:none}.dropzone-compact .dropzone-icon{width:2.25rem;height:2.25rem}.dropzone-error{margin-top:var(--s-2)}.filelist{border:1px solid var(--border);border-radius:var(--r-3);background:var(--surface);flex-direction:column;list-style:none;display:flex;overflow:hidden}.fileitem{align-items:center;gap:var(--s-3);padding:var(--s-3);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;display:grid;position:relative}.fileitem+.fileitem{border-top:1px solid var(--border)}.fileitem.is-dragging{opacity:.4}.fileitem.is-over{box-shadow:inset 0 2px 0 var(--accent)}.fileitem-handle{cursor:grab;color:var(--text-3);touch-action:none;display:none}.filelist[data-sortable] .fileitem{grid-template-columns:auto auto minmax(0,1fr) auto}.filelist[data-sortable] .fileitem-handle{place-items:center;width:1.5rem;height:2.5rem;display:grid}.fileitem-thumb{border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface-2);width:3rem;height:3rem;color:var(--text-3);flex:none;place-items:center;display:grid;overflow:hidden}.fileitem-thumb img{object-fit:cover;width:100%;height:100%}.fileitem-main{flex-direction:column;gap:2px;min-width:0;display:flex}.fileitem-name{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.fileitem-meta{align-items:center;gap:2px var(--s-2);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.fileitem-meta .arrow{color:var(--text-3)}.fileitem-meta strong{color:var(--text);font-weight:500}.fileitem-status{align-items:center;gap:6px;display:inline-flex}.fileitem-status.is-error{color:var(--err)}.fileitem-status.is-done{color:var(--ok)}.fileitem-actions{align-items:center;gap:var(--s-1);display:flex}.fileitem-progress{grid-column:1/-1}.fileitem.has-error{background:var(--err-soft)}@media (width<=479px){.fileitem{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"thumb main""thumb actions";align-items:start}.filelist[data-sortable] .fileitem{grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"handle thumb main""handle thumb actions"}.fileitem-handle{grid-area:handle}.fileitem-thumb{grid-area:thumb}.fileitem-main{grid-area:main}.fileitem-actions{grid-area:actions;justify-content:flex-start;margin-left:-6px}.fileitem-progress{grid-column:1/-1}}.result{border:1px solid var(--border);border-radius:var(--r-3);background:var(--surface);overflow:hidden}.result-head{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;display:flex}.result-title{align-items:center;gap:var(--s-2);font-weight:600;display:flex}.result-title .icon{color:var(--ok)}.result-stats{border-bottom:1px solid var(--border);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;display:grid}.result-stats>*{padding:var(--s-3) var(--s-3);min-width:0}.result-stats>*+*{border-left:1px solid var(--border)}.result-actions{gap:var(--s-2);padding:var(--s-4);flex-wrap:wrap;display:flex}.result-actions .btn{min-width:0;max-width:100%;padding-inline:var(--s-3);white-space:normal;text-align:center;flex:13rem}@media (width>=640px){.result-actions .btn{padding-inline:var(--s-4);white-space:nowrap;flex:none}.result-stats>*{padding:var(--s-4)}}.result-body{padding:var(--s-4)}.stat{flex-direction:column;gap:2px;min-width:0;display:flex}.stat-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.stat-value{font-family:var(--font-mono);font-size:clamp(1rem, 4.8vw, var(--fs-xl));letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-weight:500;line-height:1.15}.stat-lg .stat-value{font-size:var(--fs-2xl)}.stat-accent .stat-value{color:var(--accent-text)}.stat-ok .stat-value{color:var(--ok)}.stat-sub{font-size:var(--fs-sm);color:var(--text-2)}.output{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-3);background:var(--surface-2);flex-wrap:wrap;display:flex}.output>:first-child{flex:8rem;min-width:0}.output-value{font-family:var(--font-mono);font-size:var(--fs-2xl);letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-weight:500;line-height:1.1}.output-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px}.next-steps{gap:var(--s-2);padding:var(--s-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.next-steps-list{gap:var(--s-2);flex-wrap:wrap;display:flex}.table-wrap{border:1px solid var(--border);border-radius:var(--r-3);background:var(--surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table th,.table td{padding:var(--s-3) var(--s-4);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.table th{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);background:var(--surface-2);font-weight:500}.table tr:last-child td{border-bottom:0}.table .num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table tbody tr:hover td{background:var(--surface-2)}.code{border:1px solid var(--border);border-radius:var(--r-2);background:var(--code-bg);position:relative}.code pre{padding:var(--s-3) var(--s-4);font-size:var(--fs-sm);tab-size:2;margin:0;padding-right:3.5rem;line-height:1.6;overflow-x:auto}.code .copy-btn{position:absolute;top:6px;right:6px}code.inline{border:1px solid var(--border);background:var(--code-bg);border-radius:4px;padding:1px 6px;font-size:.875em}.accordion{border-top:1px solid var(--border)}.accordion details{border-bottom:1px solid var(--border)}.accordion summary{justify-content:space-between;align-items:center;gap:var(--s-4);min-height:3.25rem;padding:var(--s-3) 0;cursor:pointer;font-weight:550;list-style:none;display:flex}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"";background:var(--text-3);width:1rem;height:1rem;transition:transform var(--dur) var(--ease);flex:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.accordion details[open] summary:after{transform:rotate(180deg)}.accordion summary:hover{color:var(--accent-text)}.accordion .accordion-body{padding:0 0 var(--s-4);max-width:44rem;color:var(--text-2)}.accordion .accordion-body>*+*{margin-top:var(--s-2)}.toast-region{z-index:var(--z-toast);left:var(--s-4);right:var(--s-4);bottom:max(var(--s-4), env(safe-area-inset-bottom));align-items:center;gap:var(--s-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--s-3);max-width:28rem;padding:var(--s-3) var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface);color:var(--text);box-shadow:var(--shadow-pop);font-size:var(--fs-sm);pointer-events:auto;animation:toast-in var(--dur) var(--ease);display:flex}.toast .icon{color:var(--text-2)}.toast-ok .icon{color:var(--ok)}.toast-err .icon{color:var(--err)}.toast.is-leaving{opacity:0;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);transform:translateY(4px)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width>=768px){.toast-region{left:auto;right:var(--s-5);align-items:flex-end}}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);z-index:60;border-radius:var(--r-1);background:var(--text);color:var(--bg);font-family:var(--font-sans);font-size:var(--fs-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);padding:4px 8px;font-weight:500;line-height:1.4;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1}[data-tip-pos=bottom]:after{top:calc(100% + 6px);bottom:auto}@media (hover:none){[data-tip]:after{display:none}}.privacy-chip{align-items:center;gap:var(--s-2);padding:4px var(--s-3) 4px var(--s-2);border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);display:inline-flex}.privacy-chip .icon{color:var(--ok)}.tool-card{align-items:start;gap:var(--s-3);padding:var(--s-4);background:var(--surface);color:var(--text);transition:background-color var(--dur) var(--ease);grid-template-columns:auto minmax(0,1fr);text-decoration:none;display:grid}.tool-card:hover{background:var(--surface-2);text-decoration:none}.tool-card-icon{border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface-2);width:2.25rem;height:2.25rem;color:var(--text);place-items:center;display:grid}.tool-card:hover .tool-card-icon{background:var(--surface);border-color:var(--control-border)}.tool-card-name{align-items:center;gap:var(--s-2);font-weight:600;line-height:1.3;display:flex}.tool-card-short{font-size:var(--fs-sm);color:var(--text-2);margin-top:2px;line-height:1.4}.tool-grid{grid-template-columns:repeat(var(--cols,1), minmax(0, 1fr));border:1px solid var(--border);border-radius:var(--r-3);background:var(--border);gap:1px;display:grid;overflow:hidden}.tool-grid>.tool-card{border-radius:0}@media (width>=560px){.tool-grid{--cols:2}.tool-grid>.tool-card:last-child:nth-child(odd){grid-column:1/-1}}@media (width>=960px){.tool-grid-3{--cols:3}.tool-grid-4{--cols:4}.tool-grid>.tool-card:last-child:nth-child(odd){grid-column:auto}.tool-grid-3>.tool-card:last-child:nth-child(3n+1){grid-column:1/-1}.tool-grid-3>.tool-card:last-child:nth-child(3n+2){grid-column:span 2}.tool-grid-3:has(>:nth-child(2):last-child){--cols:2}.tool-grid-3:has(>:nth-child(2):last-child)>.tool-card:last-child{grid-column:auto}.tool-grid-4>.tool-card:last-child:nth-child(4n+1){grid-column:1/-1}.tool-grid-4>.tool-card:last-child:nth-child(4n+2){grid-column:span 3}.tool-grid-4>.tool-card:last-child:nth-child(4n+3){grid-column:span 2}}.tool-grid-1{--cols:1!important}.tool-grid-1>.tool-card:last-child:nth-child(odd){grid-column:auto}@media (width<=559px){.tool-grid-cat>.tool-card{padding:var(--s-3) var(--s-4);align-items:center}.tool-grid-cat .tool-card-icon{width:2rem;height:2rem}.tool-grid-cat .tool-card-short{white-space:nowrap;text-overflow:ellipsis;margin-top:1px;display:block;overflow:hidden}}.tool-list{flex-direction:column;list-style:none;display:flex}.tool-list a{align-items:center;gap:var(--s-3);min-height:var(--control-h);padding:var(--s-2) 0;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none;display:flex}.tool-list a:hover .tool-list-name{color:var(--accent-text);text-underline-offset:.2em;text-decoration:underline 1px}.tool-list .icon{color:var(--text-3)}.tool-list-name{font-weight:500}.tool-list-short{font-size:var(--fs-sm);color:var(--text-3)}.seg-wrap{flex-wrap:wrap;overflow:visible}.seg-wrap .seg-item{flex:auto}@media (width<=519px){.seg-wrap{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.seg-wrap .seg-item:last-child:nth-child(odd){grid-column:1/-1}}.dropzone-formats{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.02em;color:var(--text-2)}.dropzone-hint{flex-direction:column;gap:2px;display:flex}.chip{white-space:normal;overflow-wrap:anywhere;max-width:100%;padding-block:4px;line-height:1.25}@media (width<=480px){.seg-block .seg-item span{white-space:normal;text-align:center;padding:4px var(--s-2);line-height:1.2}}@media (width<=639px){.result-stats:has(>:nth-child(3)){grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.result-stats:has(>:nth-child(3))>*+*{border-left:0}.result-stats:has(>:nth-child(3))>:nth-child(2n){border-left:1px solid var(--border)}.result-stats:has(>:nth-child(3))>:nth-child(n+3){border-top:1px solid var(--border)}.result-stats:has(>:nth-child(3))>:last-child:nth-child(odd){grid-column:1/-1}}.table-wrap-text td,.table-wrap-text th{white-space:normal}.site-header{z-index:var(--z-header);height:var(--header-h);background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header-inner{align-items:center;gap:var(--s-2);height:100%;display:flex}.brand{margin-right:var(--s-2);color:var(--text);flex:none;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{flex:none;width:26px;height:26px}.brand-mark rect{fill:var(--text)}.brand-mark path{stroke:var(--bg)}.brand-text{letter-spacing:-.005em;white-space:nowrap;font-size:1.0625rem;font-weight:650}.brand-text span{color:var(--text-3);font-weight:500}@media (width<=420px){.brand{gap:8px;margin-right:0}.brand-text{font-size:1rem}.nav-toggle{padding:0 8px}.nav-toggle .chev{display:none}.site-header-inner{gap:0}}.site-nav{flex:none;position:relative}.nav-toggle{border-radius:var(--r-2);min-height:40px;color:var(--text-2);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;font-weight:500;display:inline-flex}.nav-toggle:hover,.nav-toggle[aria-expanded=true]{background:var(--surface-2);color:var(--text)}.nav-toggle .chev{transition:transform var(--dur) var(--ease)}.nav-toggle[aria-expanded=true] .chev{transform:rotate(180deg)}.nav-toggle-label{display:none}@media (width>=720px){.nav-toggle-label{display:inline}.nav-toggle .menu-icon{display:none}}.cat-menu{z-index:var(--z-menu);top:calc(var(--header-h) + 1px);max-height:calc(100dvh - var(--header-h) - 1px);padding:var(--s-2) var(--gutter) var(--s-4);background:var(--surface);border-bottom:1px solid var(--border-strong);box-shadow:var(--shadow-pop);position:fixed;left:0;right:0;overflow-y:auto}.cat-menu ul{grid-template-columns:1fr;list-style:none;display:grid}.cat-menu a{align-items:center;gap:var(--s-3);min-height:48px;padding:var(--s-2) var(--s-2);border-radius:var(--r-2);color:var(--text);grid-template-columns:auto minmax(0,1fr) auto;text-decoration:none;display:grid}.cat-menu a:hover{background:var(--surface-2)}.cat-menu .icon{color:var(--text-2)}.cat-menu-name{font-weight:550}.cat-menu-short{font-size:var(--fs-sm);color:var(--text-3);line-height:1.35;display:none}.cat-menu-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3)}.cat-menu-soon{color:var(--text-3)}@media (width>=720px){.cat-menu{width:min(46rem, calc(100vw - 2 * var(--gutter)));padding:var(--s-2);border:1px solid var(--border-strong);border-radius:var(--r-3);position:absolute;top:calc(100% + 8px);left:0;right:auto}.cat-menu ul{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-menu a{padding:var(--s-3);grid-template-columns:auto minmax(0,1fr);align-items:start}.cat-menu .icon{margin-top:2px}.cat-menu-short{display:block}.cat-menu-count{display:none}}@media (width>=960px){.cat-menu ul{grid-template-columns:repeat(3,minmax(0,1fr))}.cat-menu{width:56rem}}.site-actions{align-items:center;gap:var(--s-1);margin-left:auto;display:flex}.search-trigger{align-items:center;gap:var(--s-2);border-radius:var(--r-2);min-width:40px;min-height:40px;color:var(--text-2);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;padding:0 10px;display:inline-flex}.search-trigger:hover{background:var(--surface-2);color:var(--text)}.search-trigger-text,.search-trigger .kbd-hint{display:none}@media (width>=900px){.search-trigger{width:17rem;padding:0 6px 0 var(--s-3);border-color:var(--border-strong);background:var(--surface);color:var(--text-3);justify-content:flex-start}.search-trigger:hover{border-color:var(--control-border);background:var(--surface);color:var(--text-2)}.search-trigger-text{text-align:left;flex:auto;display:inline}.search-trigger .kbd-hint{gap:2px;display:inline-flex}}.theme-toggle{border-radius:var(--r-2);width:40px;height:40px;color:var(--text-2);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.theme-toggle:hover{background:var(--surface-2);color:var(--text)}.theme-toggle .i-sun,:root[data-theme=dark] .theme-toggle .i-moon{display:none}:root[data-theme=dark] .theme-toggle .i-sun{display:inline}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .i-moon{display:none}:root:not([data-theme=light]) .theme-toggle .i-sun{display:inline}}dialog.palette{border:1px solid var(--border-strong);border-radius:var(--r-3);background:var(--surface);width:min(40rem,100vw - 1.5rem);max-height:min(34rem,100dvh - 5rem);color:var(--text);box-shadow:var(--shadow-pop);margin:.75rem auto auto;padding:0;overflow:hidden}dialog.palette[open]{flex-direction:column;display:flex}dialog.palette::backdrop{background:var(--overlay)}@media (width>=720px){dialog.palette{margin-top:12vh}}.palette-input{align-items:center;gap:var(--s-3);padding:0 var(--s-2) 0 var(--s-4);border-bottom:1px solid var(--border);flex:none;display:flex}.palette-input .icon{color:var(--text-3)}.palette-input input{min-width:0;height:56px;color:var(--text);font-size:var(--fs-md);background:0 0;border:0;outline:0;flex:auto}.palette-input input::placeholder{color:var(--text-3)}.palette-input input::-webkit-search-cancel-button{display:none}.palette-list,.home-results{padding:var(--s-2);margin:0;list-style:none;overflow-y:auto}.palette-list:empty{display:none}.search-heading{padding:var(--s-2) var(--s-3) var(--s-1);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.search-empty{padding:var(--s-4) var(--s-3);color:var(--text-2);font-size:var(--fs-sm)}.search-empty-title{margin:0 0 var(--s-2);color:var(--text);font-weight:600}.search-empty-text{margin:0 0 var(--s-1)}.search-empty-note{font-size:var(--fs-xs);color:var(--text-3);margin:0}.search-hint-links{gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.search-hint-link{min-height:44px;padding:0 var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-2);color:var(--text);font-size:var(--fs-sm);align-items:center;text-decoration:none;display:inline-flex}.search-hint-link:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.search-item{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:52px;padding:var(--s-2) var(--s-3);border-radius:var(--r-2);color:var(--text);text-decoration:none;display:flex}.search-item:hover{text-decoration:none}.search-item[aria-selected=true]{background:var(--accent-soft)}.search-item-main{flex-direction:column;min-width:0;display:flex}.search-item-name{font-weight:600}.search-item-desc{font-size:var(--fs-sm);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-item-cat{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);flex:none}.palette-foot{align-items:center;gap:var(--s-4);padding:var(--s-2) var(--s-4);border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-3);font-size:var(--fs-xs);flex:none;display:none}.palette-foot span{align-items:center;gap:6px;display:inline-flex}@media (width>=720px) and (hover:hover){.palette-foot{display:flex}}.site-footer{margin-top:var(--s-8);border-top:1px solid var(--border);background:var(--bg);color:var(--text-2);font-size:var(--fs-sm)}.footer-grid{gap:var(--s-6) var(--s-5);padding-block:var(--s-7) var(--s-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.footer-brand{grid-column:1/-1;max-width:22rem}.footer-brand p{margin-top:var(--s-3);color:var(--text-2)}.footer-col h2{margin-bottom:var(--s-3);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:500}.footer-col ul{flex-direction:column;list-style:none;display:flex}.footer-col a{min-height:36px;color:var(--text-2);align-items:center;text-decoration:none;display:inline-flex}.footer-col a:hover{color:var(--text);text-decoration:underline}.footer-bottom{justify-content:space-between;gap:var(--s-2) var(--s-4);padding-block:var(--s-4) var(--s-6);border-top:1px solid var(--border);color:var(--text-3);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}@media (width>=768px){.footer-grid{grid-template-columns:1.4fr repeat(3,minmax(0,1fr))}.footer-brand{grid-column:auto}}.breadcrumbs ol{align-items:center;gap:2px var(--s-2);font-size:var(--fs-sm);color:var(--text-3);flex-wrap:wrap;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{content:"/";margin-left:var(--s-2);color:var(--border-strong)}.breadcrumbs a{color:var(--text-2);align-items:center;min-height:24px;padding-block:2px;text-decoration:none;display:inline-flex}.breadcrumbs a:hover{color:var(--text);text-decoration:underline}.tool-page{column-gap:var(--s-6);padding-block:var(--s-5) 0;grid-template-columns:minmax(0,1fr);grid-template-areas:"head""work""ad""content""side";display:grid}.tool-head{align-items:flex-start;gap:var(--s-3);flex-direction:column;grid-area:head;display:flex}.tool-head h1{margin-top:var(--s-1)}.tool-intro{max-width:40rem;font-size:var(--fs-md);color:var(--text-2);line-height:1.5}.workspace{margin-top:var(--s-5);grid-area:work;min-width:0}.workspace>.panel{padding:var(--s-4)}@media (width>=768px){.workspace>.panel{padding:var(--s-5)}}.tool-ad{grid-area:ad}.tool-content{gap:var(--s-7);margin-top:var(--s-7);flex-direction:column;grid-area:content;min-width:0;display:flex}.tool-section>h2{margin-bottom:var(--s-4)}.tool-section .eyebrow{margin-bottom:var(--s-1);display:block}.howto{counter-reset:step;flex-direction:column;max-width:44rem;list-style:none;display:flex}.howto li{counter-increment:step;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--border);color:var(--text);grid-template-columns:2.5rem minmax(0,1fr);display:grid}.howto li:last-child{border-bottom:1px solid var(--border)}.howto li:before{content:counter(step, decimal-leading-zero);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-text);font-weight:500;line-height:1.7}.tool-updated{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3)}.tool-side{margin-top:var(--s-7);gap:var(--s-6);flex-direction:column;grid-area:side;min-width:0;display:flex}.side-block h2{margin-bottom:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:500}.side-block .tool-list li:first-child a{border-top:1px solid var(--border)}@media (width>=1024px){.tool-page:not(.is-wide):not(.no-side){grid-template:"head side""work side""ad side""content side"1fr/minmax(0,1fr) 19rem}.tool-page:not(.is-wide):not(.no-side) .tool-side{margin-top:var(--s-5);top:calc(var(--header-h) + var(--s-5));align-self:start;position:sticky}.tool-page:not(.is-wide) .tool-side .side-block:first-child{margin-top:0}}.tool-page.is-wide .tool-side{margin-top:var(--s-7)}.tool-page.is-wide .tool-side .tool-list{column-gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));display:grid}.ad-slot{margin-top:var(--s-5);border:1px dashed var(--border-strong);border-radius:var(--r-2);background:var(--surface-2);color:var(--text-3);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ad-slot:before{content:"Publicidad";font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px;position:absolute;top:4px;left:8px}.ad-slot-below{height:250px}.ad-slot-sidebar{height:250px;margin-top:0}@media (width>=768px){.ad-slot-below{height:90px}}@media (width>=1024px){.tool-page:not(.is-wide) .ad-slot-below{display:none}}@media (width<=1023px){.tool-side .ad-slot-sidebar{display:none}}.tool-page.is-wide .tool-side .ad-slot-sidebar{display:none}.hero{padding-block:var(--s-7) var(--s-6);border-bottom:1px solid var(--border);isolation:isolate;position:relative}.hero:before{content:"";z-index:-1;background-image:radial-gradient(var(--grid-dot) 1px, transparent 1.2px);opacity:.75;background-position:10px 10px;background-size:20px 20px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 10%,#0000 92%);mask-image:linear-gradient(#000 10%,#0000 92%)}.hero-inner{gap:var(--s-5);flex-direction:column;max-width:46rem;display:flex}.hero h1{letter-spacing:-.035em;max-width:16em;font-size:clamp(2rem,6.4vw,3rem);line-height:1.06}.hero-lede{max-width:34rem;font-size:var(--fs-md);color:var(--text-2)}.search-field{position:relative}.search-field-label{margin-bottom:var(--s-2);font-size:var(--fs-sm);font-weight:550;display:block}.search-field-box{align-items:center;display:flex;position:relative}.search-field-box>.icon{left:var(--s-4);color:var(--text-3);pointer-events:none;position:absolute}.search-field-input{width:100%;height:56px;padding:0 var(--s-4) 0 3rem;border:1px solid var(--control-border);border-radius:var(--r-3);background:var(--surface);color:var(--text);font-size:var(--fs-md)}.search-field-input::placeholder{color:var(--text-3)}.search-field-input:hover{border-color:var(--text-3)}.search-field-input:focus-visible{outline:2px solid var(--focus);outline-offset:-1px;border-color:var(--focus)}.search-field-input::-webkit-search-cancel-button{display:none}.home-results{z-index:20;border:1px solid var(--border-strong);border-radius:var(--r-3);background:var(--surface);max-height:22rem;box-shadow:var(--shadow-pop);position:absolute;top:calc(100% + 6px);left:0;right:0}.home-results:empty{display:none}.suggest{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.suggest-label{font-size:var(--fs-sm);color:var(--text-3);margin-right:var(--s-1)}.trust{gap:var(--s-2) var(--s-5);font-size:var(--fs-sm);color:var(--text-2);flex-wrap:wrap;list-style:none;display:flex}.trust li{align-items:center;gap:var(--s-2);display:inline-flex}.trust .icon{color:var(--ok)}.home-section{padding-top:var(--s-7)}.section-head{justify-content:space-between;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-4);display:flex}.section-head h2{font-size:var(--fs-lg)}.recents{display:none}html.has-recents .recents{display:block}.recents-list{gap:var(--s-2);height:var(--control-h);scrollbar-width:none;display:flex;overflow-x:auto}.recents-list::-webkit-scrollbar{display:none}.recents-list .chip{min-height:var(--control-h)}.cat-blocks{gap:var(--s-6) var(--s-6);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=720px){.cat-blocks{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.cat-blocks{grid-template-columns:repeat(3,minmax(0,1fr))}}.cat-block-head{align-items:center;gap:var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid var(--text);color:var(--text);text-decoration:none;display:flex}.cat-block-head:hover{text-decoration:none}.cat-block-head:hover .cat-block-name{text-decoration:underline}.cat-block-name{font-size:var(--fs-md);letter-spacing:-.01em;font-weight:650}.cat-block-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);margin-left:auto}.cat-block .tool-list a{min-height:42px}.cat-block-more{align-items:center;gap:var(--s-1);min-height:var(--control-h);font-size:var(--fs-sm);font-weight:500;display:inline-flex}.cat-block-soon{padding-block:var(--s-3);font-size:var(--fs-sm);color:var(--text-3)}.page-head{padding-block:var(--s-6) var(--s-5);align-items:flex-start;gap:var(--s-3);flex-direction:column;display:flex}.page-head p.lede{max-width:40rem;font-size:var(--fs-md);color:var(--text-2)}.page-body{padding-bottom:var(--s-6)}.page-body .prose{max-width:44rem}.not-found{padding-block:var(--s-8) var(--s-6);max-width:40rem}.not-found .code-404{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-text);letter-spacing:.06em}.tool-page.no-side{max-width:54rem}.hero-grid{gap:var(--s-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.readout{border:1px solid var(--border-strong);border-radius:var(--r-3);background:var(--surface);display:none;overflow:hidden}.readout-head{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);background:var(--surface-2);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);display:flex}.readout-live{color:var(--ok);align-items:center;gap:6px;display:inline-flex}.readout-live:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.readout dl{margin:0}.readout-row{justify-content:space-between;align-items:baseline;gap:var(--s-4);padding:var(--s-3) var(--s-4);display:flex}.readout-row+.readout-row{border-top:1px solid var(--border)}.readout dt{font-size:var(--fs-sm);color:var(--text-2)}.readout dd{font-family:var(--font-mono);font-size:var(--fs-base);font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:500}.readout-foot{padding:var(--s-3) var(--s-4);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-3)}@media (width>=960px){.hero-grid{gap:var(--s-7);grid-template-columns:minmax(0,1fr) 19rem}.readout{margin-top:3.25rem;display:block}.hero .trust{display:none}}@media (width<=599px){.section-head .count{display:none}}
