@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-vietnamese-400-normal-BF4g3tCF.woff2)format("woff2"),url(/assets/archivo-vietnamese-400-normal-FGOLYM1a.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-latin-ext-400-normal-B5tPZzqW.woff2)format("woff2"),url(/assets/archivo-latin-ext-400-normal-DrmqtLj6.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-latin-400-normal-C81ewxNO.woff2)format("woff2"),url(/assets/archivo-latin-400-normal-Bl602Mgc.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-vietnamese-500-normal-k0drYPZA.woff2)format("woff2"),url(/assets/archivo-vietnamese-500-normal-7W3lD2kQ.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-latin-ext-500-normal-RFhg4CpD.woff2)format("woff2"),url(/assets/archivo-latin-ext-500-normal-D7mXw3Kz.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-latin-500-normal-CGugC8dq.woff2)format("woff2"),url(/assets/archivo-latin-500-normal-pkzA7jw9.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-vietnamese-600-normal-anCjMumA.woff2)format("woff2"),url(/assets/archivo-vietnamese-600-normal-C8xBVdfP.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-latin-ext-600-normal-Dm61iqcg.woff2)format("woff2"),url(/assets/archivo-latin-ext-600-normal-D7uErJuz.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-latin-600-normal-3BBy0ZsW.woff2)format("woff2"),url(/assets/archivo-latin-600-normal-DwYieO8P.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-vietnamese-700-normal-nuAQAQa7.woff2)format("woff2"),url(/assets/archivo-vietnamese-700-normal-Bz2vkKqq.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-ext-700-normal-DD_nkw6b.woff2)format("woff2"),url(/assets/archivo-latin-ext-700-normal-CgyfnKjw.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-700-normal-D9cHMWGj.woff2)format("woff2"),url(/assets/archivo-latin-700-normal-lT5TFe7H.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fafaf8;--card:#fff;--ink:#17181c;--ink-2:#5a5c63;--ink-3:#8e9098;--rule:#e2e2dd;--ghost:#cfd0ca;--signal:#d6301f;--ok:#1e6b4a;--okbg:#e7f1ec;--warn:#8a5a12;--warnbg:#fbf1df;--sans:"Archivo", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);padding-bottom:calc(74px + env(safe-area-inset-bottom));-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}.wrap{max-width:780px;margin:0 auto;padding:0 16px}header.top{border-bottom:1px solid var(--rule);background:var(--card);z-index:20;padding-top:env(safe-area-inset-top);position:sticky;top:0}.hrow{justify-content:space-between;align-items:center;gap:8px;padding:13px 0 11px;display:flex}.mark{letter-spacing:.16em;text-transform:uppercase;font-size:13px;font-weight:700}.mark span{color:var(--ink-3);letter-spacing:.04em;text-transform:none;font-weight:500}.eyebrow{letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);margin:24px 0 10px;font-size:9.5px;font-weight:700}h2{letter-spacing:-.01em;margin:0 0 2px;font-size:19px;font-weight:600}.sub{color:var(--ink-2);margin:0 0 16px;font-size:13px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.back{color:var(--ink-2);margin-top:18px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.card{background:var(--card);border:1px solid var(--rule);color:inherit;border-radius:3px;margin-bottom:10px;padding:14px;text-decoration:none;display:block}a.card:active{background:#f4f4f1}.crow{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.title{letter-spacing:-.01em;font-size:15px;font-weight:600}.meta{color:var(--ink-2);margin-top:2px;font-size:12px}.meta b{color:var(--ink);font-weight:600}.big{font-family:var(--mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:1}.tiny{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);font-size:9px;font-weight:700}.right{text-align:right}.tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tile{background:var(--card);border:1px solid var(--rule);color:inherit;border-radius:3px;padding:12px 14px;text-decoration:none;display:block}.tile .big{font-size:22px}.tile .tiny{margin-top:6px;display:block}.tile .meta{margin-top:4px}.tile.alert .big{color:var(--signal)}.actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.action{background:var(--ink);min-height:52px;color:var(--paper);letter-spacing:.01em;border-radius:3px;justify-content:center;align-items:center;font-size:14px;font-weight:600;text-decoration:none;display:flex}.action.ghost{background:var(--card);color:var(--ink);border:1px solid var(--ink)}.action:active{opacity:.8}label{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 0 5px;font-size:9.5px;font-weight:700;display:block}input,select,textarea{width:100%;font-family:var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--rule);appearance:none;border-radius:3px;padding:11px 12px;font-size:16px}select{background-image:linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;padding-right:32px}input.code{font-family:var(--mono);letter-spacing:.04em}input:focus,select:focus,textarea:focus{outline:2px solid var(--ink);outline-offset:-1px;border-color:var(--ink)}.field{margin-bottom:12px}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.inline-link{width:auto;color:var(--ink-2);cursor:pointer;font-size:12.5px;font-weight:600;font-family:var(--sans);background:0 0;border:0;padding:0;text-decoration:underline}button{font-family:var(--sans);cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--paper);letter-spacing:.01em;border-radius:3px;width:100%;padding:12px 16px;font-size:14px;font-weight:600}button:active{opacity:.8}button:disabled{opacity:.4;cursor:default}button.ghost{color:var(--ink);background:0 0}button.quiet{color:var(--ink-2);border-color:var(--rule);background:0 0}button.sm{width:auto;padding:7px 11px;font-size:12px}button.danger{color:var(--signal);border-color:var(--signal);background:0 0;margin-top:12px}.button-link{border:1px solid var(--rule);color:var(--ink-2);border-radius:3px;align-items:center;padding:7px 11px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.btnrow{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chips{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.chip{border:1px solid var(--rule);background:var(--card);color:var(--ink-2);border-radius:2px;width:auto;padding:9px 12px;font-size:13px;font-weight:600}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.stepper{align-items:center;gap:8px;display:flex}.stepper button{flex:none;width:44px;height:44px;padding:0;font-size:20px;font-weight:500;line-height:1}.stepper input{text-align:center;font-family:var(--mono);font-weight:600}.flag{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);background:#efefeb;border-radius:2px;padding:3px 6px;font-size:9px;font-weight:700;display:inline-block}.flag.out{color:var(--signal);background:#fbeae8}.flag.ok{background:var(--okbg);color:var(--ok)}.flag.warn{background:var(--warnbg);color:var(--warn)}.note{color:var(--ink-2);border-left:2px solid var(--ghost);background:#f2f2ee;border-radius:0 3px 3px 0;margin:12px 0;padding:9px 11px;font-size:12px}.note.warn{background:var(--warnbg);color:var(--warn);border-left-color:#d9a441}.note.bad{border-left-color:var(--signal);color:#8f241a;background:#fbeae8}.empty{text-align:center;color:var(--ink-3);padding:44px 20px}.empty p{color:var(--ink-2);margin:0 0 4px;font-size:14px}.rowsplit{justify-content:space-between;gap:12px;padding:5px 0;font-size:13px;display:flex}.rowsplit b{font-family:var(--mono);white-space:nowrap;font-weight:600}.line{border-top:1px solid var(--rule);color:inherit;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 0;font-size:13px;text-decoration:none;display:flex}.line:first-child{border-top:0}.line .when{color:var(--ink-3);font-family:var(--mono);white-space:nowrap;font-size:11px}nav.tabs{z-index:30;background:var(--card);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.nrow{max-width:780px;margin:0 auto;display:flex}.nav-b{color:var(--ink-3);letter-spacing:.09em;text-transform:uppercase;flex-direction:column;flex:1;align-items:center;gap:5px;padding:10px 2px 11px;font-size:9.5px;font-weight:700;text-decoration:none;display:flex}.nav-b .bars{align-items:flex-end;gap:1.5px;height:14px;display:flex}.nav-b .bars i{background:var(--ghost);width:2px;display:block}.nav-b.active{color:var(--ink)}.nav-b.active .bars i{background:var(--ink)}.toast{left:14px;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:60;background:var(--ink);color:var(--paper);border-radius:4px;max-width:612px;margin:0 auto;padding:13px 14px;font-size:13.5px;transition:transform .26s cubic-bezier(.2,.8,.2,1);position:fixed;transform:translateY(calc(100% + 120px))}.toast.on{transform:translateY(0)}.toast.bad{background:#8f241a}.swipe{background:var(--ink);height:56px;color:var(--paper);-webkit-user-select:none;user-select:none;touch-action:pan-y;border-radius:28px;margin-top:12px;position:relative;overflow:hidden}.swipe .label{letter-spacing:.04em;pointer-events:none;justify-content:center;align-items:center;padding-left:40px;font-size:13px;font-weight:600;display:flex;position:absolute;inset:0}.swipe .fill{background:var(--ok);position:absolute;top:0;bottom:0;left:0}.swipe .knob{background:var(--paper);width:48px;height:48px;color:var(--ink);cursor:grab;border:0;border-radius:24px;justify-content:center;align-items:center;padding:0;font-size:20px;display:flex;position:absolute;top:4px;left:4px}.swipe.snap .knob,.swipe.snap .fill{transition:all .22s cubic-bezier(.2,.8,.2,1)}.swipe.disabled{opacity:.4;pointer-events:none}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
