@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/bricolage-grotesque-vietnamese-wght-normal.03f_1bxrvnkfd.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/bricolage-grotesque-latin-ext-wght-normal.37g1whwfgt7kp.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/bricolage-grotesque-latin-wght-normal.1iqnhac4m3hwo.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-vietnamese-wght-normal.2e8ypamius-z3.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-ext-wght-normal.0u127c2ykgu-q.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-wght-normal.0rbocftmutivq.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-vietnamese-wght-italic.3i6_tg6hhi-0a.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-ext-wght-italic.1jb3oq23hons4.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-wght-italic.1pgmdi37vl33_.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-cyrillic-ext-400-normal.09jq5v9-1wf71.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-400-normal.2iaubq2jy0rx3.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(../media/ibm-plex-mono-cyrillic-400-normal.0m1ahpdxrpokj.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-400-normal.2-z93d2j9-3s0.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(../media/ibm-plex-mono-vietnamese-400-normal.3a7fs2yw914a9.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-400-normal.2kzc8ichkozg5.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(../media/ibm-plex-mono-latin-ext-400-normal.1hjaitcyq2e2r.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-400-normal.0nrwft7nlo5oa.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(../media/ibm-plex-mono-latin-400-normal.3xdfs0-p_zi4c.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-400-normal.2lhng2ntocry9.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:500;src:url(../media/ibm-plex-mono-cyrillic-ext-500-normal.28wp48yubenc3.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-500-normal.41yczc5zdkwdh.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:500;src:url(../media/ibm-plex-mono-cyrillic-500-normal.26ox_itp_alxp.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-500-normal.1eaan1mch682e.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:500;src:url(../media/ibm-plex-mono-vietnamese-500-normal.0s1z3n-ysad7w.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-500-normal.2g79xp9gzp1kn.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:500;src:url(../media/ibm-plex-mono-latin-ext-500-normal.1cuq9_67cn48n.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-500-normal.1tdw_l2v4yhc_.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:500;src:url(../media/ibm-plex-mono-latin-500-normal.11q3guvgd1r20.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-500-normal.1fgk-kmy-32_a.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{--bg:#f8f7f4;--surface:#fff;--sunk:#f0eee9;--ink:#1c1b19;--muted:#5e5b55;--rule:#ddd9d1;--accent:#1f4fa3;--fill:#1f4fa3;--on-fill:#fff;--wave:#c9801a;--soft:#e9eef8;--hl:#fbe6a6;--hl-ink:#3d2600;--ok:#1e6b45;--ok-bg:#e2f0e7;--warn:#8a4b00;--warn-bg:#faebd5;--band:#1c1b19;--on-band:#f8f7f4;--on-band-muted:#aba79f;--fig-fill:#c9d8f5;--seen:#2f6db5;--applied:#7a4bc2;--f-display:"Bricolage Grotesque Variable", "Arial Narrow", system-ui, sans-serif;--f-body:"Newsreader Variable", Georgia, "Times New Roman", serif;--f-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--ease:cubic-bezier(.23, 1, .32, 1);--head-h:64px;--maxw:1360px;--gut:clamp(0px, 2.4vw, 40px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141517;--surface:#1c1d20;--sunk:#24262a;--ink:#eceae5;--muted:#a39f98;--rule:#313337;--accent:#9dbdf5;--fill:#8fb3f2;--on-fill:#0d1a33;--wave:#e89a2c;--soft:#1e293c;--hl:#4e3b0f;--hl-ink:#ffe9c2;--ok:#6fd3a0;--ok-bg:#16352a;--warn:#f2b25c;--warn-bg:#3a2a12;--band:#0c0d0f;--on-band:#eceae5;--on-band-muted:#a39f98;--fig-fill:#2b3e63;--seen:#6fa6e8;--applied:#b08cf0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#141517;--surface:#1c1d20;--sunk:#24262a;--ink:#eceae5;--muted:#a39f98;--rule:#313337;--accent:#9dbdf5;--fill:#8fb3f2;--on-fill:#0d1a33;--wave:#e89a2c;--soft:#1e293c;--hl:#4e3b0f;--hl-ink:#ffe9c2;--ok:#6fd3a0;--ok-bg:#16352a;--warn:#f2b25c;--warn-bg:#3a2a12;--band:#0c0d0f;--on-band:#eceae5;--on-band-muted:#a39f98;--fig-fill:#2b3e63;--seen:#6fa6e8;--applied:#b08cf0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-padding-top:calc(var(--head-h) + 16px)}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0;padding-block:0;font-size:18px;line-height:1.6}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg);position:fixed;inset:0 0 auto}body.locked{overflow:hidden}.wrap{max-width:var(--maxw);padding-inline:var(--gut);margin:0 auto}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0}.label{font:500 12px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0}.label b{color:var(--accent);font-weight:500}.fine{font:400 13px/1.5 var(--f-mono);color:var(--muted);margin:0}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{font:600 16px/1 var(--f-display);border:1px solid var(--rule);cursor:pointer;white-space:nowrap;min-height:46px;transition:transform .16s var(--ease), background-color .16s var(--ease), border-color .16s var(--ease);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 20px;text-decoration:none;display:inline-flex}.btn-primary{background:var(--fill);border-color:var(--fill);color:var(--on-fill)}.btn-primary:hover{color:var(--on-fill);background:color-mix(in srgb, var(--fill) 86%, var(--ink))}.btn-ghost{background:var(--surface);color:var(--ink)}.btn-ghost:hover{color:var(--ink);border-color:var(--muted)}.btn:active{transform:translateY(1px)}.btn-sm{min-height:40px;padding:0 14px;font-size:15px}.btn[disabled]{cursor:progress;opacity:.7}.top{top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);margin-inline:calc(-1 * max(16px, env(safe-area-inset-left,0px)));padding-inline:max(16px, env(safe-area-inset-left,0px));border-bottom:1px solid var(--rule);position:sticky}.top-in{max-width:var(--maxw);padding-inline:var(--gut);height:var(--head-h);align-items:center;gap:clamp(20px,3vw,40px);margin:0 auto;display:flex}.brand{font:700 20px/1 var(--f-display);color:var(--ink);white-space:nowrap;flex:none;align-items:center;gap:10px;text-decoration:none;display:flex}.nav{font:400 16px/1 var(--f-body);gap:clamp(18px,2.2vw,30px);display:flex}.nav a{color:var(--muted);white-space:nowrap;padding:8px 0;text-decoration:none}.nav a:hover{color:var(--ink)}.nav.nav-inner{align-self:stretch}.nav.nav-inner a{border-bottom:2px solid #0000;align-items:center;padding:2px 0 0;display:flex}.nav.nav-inner a[aria-current=page]{color:var(--ink);border-bottom-color:var(--fill)}.top-end{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.icon-btn{font:500 12px/1 var(--f-mono);color:var(--ink);border:1px solid var(--rule);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-width:40px;min-height:40px;padding:0 12px;display:inline-flex}.icon-btn:hover{border-color:var(--ink)}.menu-btn{padding:0 14px 0 12px;display:none}.menu-btn .bars{flex-direction:column;gap:4px;display:inline-flex}.menu-btn .bars i{background:currentColor;border-radius:1px;width:16px;height:1.5px;display:block}.menu-btn .bars i:last-child{width:10px}@media (max-width:1080px){.nav{display:none}.menu-btn{display:inline-flex}.theme-btn .t{display:none}.theme-btn{width:40px;padding:0}}.sheet{z-index:30;position:fixed;inset:0}.scrim{background:#0c0e1173;position:absolute;inset:0}.drawer{background:var(--bg);border-left:1.5px solid var(--ink);width:min(400px,88vw);padding:env(safe-area-inset-top,0px) max(20px, env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) 24px;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}@media (prefers-reduced-motion:no-preference){.sheet.opening .scrim{animation:fade-in .22s var(--ease)}.sheet.opening .drawer{animation:drawer-in .32s var(--ease)}.sheet.opening .sheet-nav li{animation:item-in .38s var(--ease) both}.sheet.opening .sheet-nav li:nth-child(2){animation-delay:40ms}.sheet.opening .sheet-nav li:nth-child(3){animation-delay:80ms}.sheet.opening .sheet-nav li:nth-child(4){animation-delay:.12s}}@keyframes fade-in{0%{opacity:0}}@keyframes drawer-in{0%{transform:translate(100%)}}@keyframes item-in{0%{opacity:0;transform:translate(16px)}}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-head{height:var(--head-h);border-bottom:1px solid var(--rule);flex:none;justify-content:space-between;align-items:center;display:flex}.sheet-nav{flex:1;margin:0;padding:6px 0 0;list-style:none}.sheet-nav a{border-bottom:1px solid var(--rule);color:var(--ink);grid-template-columns:34px minmax(0,1fr);align-items:baseline;gap:2px 6px;padding:16px 0;text-decoration:none;display:grid}.sheet-nav a:hover .t{color:var(--accent)}.sheet-nav .n{font:500 12px/1 var(--f-mono);color:var(--accent);grid-row:span 2;padding-top:6px}.sheet-nav .t{font:700 24px/1.15 var(--f-display);letter-spacing:-.01em}.sheet-nav a[aria-current=page] .t{text-decoration:underline;-webkit-text-decoration-color:var(--fill);text-decoration-color:var(--fill);text-underline-offset:6px;text-decoration-thickness:3px}.sheet-nav .d{font:400 15px/1.4 var(--f-body);color:var(--muted)}.sheet-foot{flex-direction:column;flex:none;gap:14px;padding:20px 0 24px;display:flex}.sheet-foot .btn{width:100%}.sheet-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-credit{font:400 13px/1.5 var(--f-mono);color:var(--muted);margin:0}.seg{border:1px solid var(--ink);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{font:500 12px/1 var(--f-mono);color:var(--ink);cursor:pointer;background:0 0;border:0;min-height:36px;padding:0 12px}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.chip{font:400 13px/1 var(--f-mono);border:1px solid var(--ink);background:var(--surface);border-radius:999px;padding:7px 10px}.chip.soft{border-style:dashed;border-color:var(--muted);color:var(--muted);background:0 0}.pill{font:500 12px/1 var(--f-mono);border-radius:4px;align-items:center;gap:8px;padding:6px 8px;display:inline-flex}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.soft{background:var(--soft);color:var(--accent)}.pill.plain{background:var(--bg);color:var(--ink)}mark.ev{background:var(--hl);color:var(--hl-ink);border-radius:2px;padding:0 2px}.k-box{fill:var(--surface);stroke:var(--ink);stroke-width:1.5px}.k-soft{fill:var(--soft);stroke:var(--ink);stroke-width:1.5px}.k-fill{fill:var(--fig-fill);stroke:var(--ink);stroke-width:1.5px}.k-dot{fill:var(--wave)}.k-ink{stroke:var(--ink);stroke-width:1.5px;fill:none}.k-arrow{stroke:var(--ink);stroke-width:1.5px;fill:none;marker-end:url(#ta-ah)}.k-dash{stroke:var(--muted);stroke-width:1.5px;fill:none;stroke-dasharray:4 4}.k-head{fill:var(--ink)}.k-t,.k-tf{fill:var(--ink);font:500 11px var(--f-mono)}.k-m{fill:var(--muted);font:400 10px var(--f-mono)}[data-anim]{transform-box:fill-box;transform-origin:50%}@keyframes ta-blink{0%,to{opacity:.2}45%,60%{opacity:1}}@keyframes ta-move{0%{opacity:0;transform:translate(0)}12%{opacity:1}82%{opacity:1}to{transform:translate(var(--dx,0px), var(--dy,0px));opacity:0}}.empty{border:1.5px dashed var(--muted);border-radius:10px;flex-direction:column;align-items:flex-start;gap:12px;margin-block:32px 16px;padding:28px 24px;display:flex}.empty h2{font-size:24px;font-weight:600}.empty p{max-width:36em;margin:0}.empty .row{flex-wrap:wrap;gap:10px;display:flex}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--surface);font:400 14px/1.4 var(--f-mono);z-index:40;border-radius:6px;max-width:calc(100% - 32px);padding:12px 16px;position:fixed;transform:translate(-50%)}.foot{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:20px 32px;display:flex}.foot a{color:var(--ink)}.btn-small{min-height:36px;padding:0 12px;font-size:14px}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}code{font-family:var(--f-mono);background:var(--sunk);color:var(--ink);border-radius:6px;padding:.1em .36em;font-size:.84em}pre{font-family:var(--f-mono);background:var(--band);color:var(--on-band);border-radius:8px;margin:0;padding:14px 16px;font-size:14px;line-height:1.5;overflow-x:auto}pre code{color:inherit;font-size:inherit;background:0 0;padding:0}
