@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-condensed-vietnamese-600-normal.A5AYRdjN.woff2)format("woff2"),url(/_astro/barlow-condensed-vietnamese-600-normal.CNlPk46_.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-condensed-latin-ext-600-normal.18ESti3H.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-ext-600-normal.Clv9cIcR.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-condensed-latin-600-normal.DepVgxBB.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-600-normal.BFJEwTuo.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/barlow-condensed-vietnamese-700-normal.DYeBwlKR.woff2)format("woff2"),url(/_astro/barlow-condensed-vietnamese-700-normal.DhIzd8Tb.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/barlow-condensed-latin-ext-700-normal.CwuXbfVR.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-ext-700-normal.BIHFfxf0.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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/barlow-condensed-latin-700-normal.v1xN8_Wq.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-700-normal.Dmwat-ge.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{--paper:#fff;--panel:#f3f4f5;--ink:#16181b;--ink-2:#4a5058;--rule:#dcdfe3;--link:#16181b;--iso-P:#1f5fae;--iso-M:#f2c200;--iso-K:#c8202b;--iso-N:#1f7d39;--iso-S:#9a5216;--iso-H:#686e75;--on-P:#fff;--on-M:#16181b;--on-K:#fff;--on-N:#fff;--on-S:#fff;--on-H:#fff;--band:var(--ink);--sans:system-ui, -apple-system, "Segoe UI", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;--cond:"Barlow Condensed", "Arial Narrow", var(--sans);--mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--max:1160px;--read:720px;--tabs:48px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#111316;--panel:#1a1d21;--ink:#e8eaed;--ink-2:#a8aeb6;--rule:#2c3138;--link:#e8eaed;--iso-H:#7d838a;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-variant-numeric:tabular-nums;margin:0;font-size:16px;line-height:1.7;overflow-x:clip}img{max-width:100%;height:auto;display:block}a{color:var(--link);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}::selection{background:var(--iso-M);color:#16181b}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}html{scrollbar-color:var(--ink-2) var(--panel)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{max-width:var(--max);margin:0 auto;padding:0 16px}.skip{position:absolute;left:-999px}.skip:focus{z-index:30;background:var(--paper);padding:8px 12px;top:8px;left:16px}.num,time{font-family:var(--cond);letter-spacing:.02em;font-weight:600}.mast{border-bottom:2px solid var(--ink);background:var(--paper)}.mast .container{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{grid-template-columns:repeat(6,5px);gap:2px;height:30px;display:grid}.brand-mark i{display:block}.brand-name{letter-spacing:.04em;font-size:20px;font-weight:800;line-height:1.15}.brand-name span{font:600 12px/1.1 var(--cond);letter-spacing:.16em;color:var(--ink-2);text-transform:uppercase;display:block}.nav{gap:2px;display:flex}.nav a{color:var(--ink-2);border-bottom:2px solid #0000;padding:8px 12px;font-size:15px;text-decoration:none}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}@media (width<=560px){.mast .container{flex-wrap:wrap;gap:4px 16px;padding-top:10px}.nav{justify-content:space-between;width:calc(100% + 24px);margin:0 -12px}.nav a{padding:8px 12px 10px;font-size:14px}}.thumbs{margin:0;padding:0;list-style:none}.thumbs a{align-items:center;text-decoration:none;display:flex}.thumbs .code{font:700 22px/1 var(--cond)}@media (width>=1300px){.thumbs{z-index:20;grid-template-rows:repeat(6,1fr);gap:2px;display:grid;position:fixed;top:66px;bottom:0;right:0}.thumbs a{width:196px;height:100%;transform:translateX(calc(196px - var(--tabs)));gap:14px;padding-left:15px;transition:transform .35s cubic-bezier(.16,1,.3,1)}.thumbs a:hover,.thumbs a:focus-visible{transform:translate(0)}.thumbs a[aria-current=true]{transform:translateX(calc(196px - var(--tabs) - 10px))}.thumbs a[aria-current=true]:hover{transform:translate(0)}.thumbs .label{white-space:nowrap;opacity:0;font-size:14px;font-weight:700;transition:opacity .2s}.thumbs a:hover .label,.thumbs a:focus-visible .label{opacity:1}}@media (width<=1299.98px){.thumbs{grid-template-columns:repeat(6,1fr);display:grid}.thumbs a{border-bottom:3px solid #0000;justify-content:center;gap:6px;height:40px}.thumbs a[aria-current=true]{border-bottom-color:var(--ink);box-shadow:inset 0 -3px 0 var(--paper)}.thumbs .label{font-size:13px;font-weight:700}}@media (width<=640px){.thumbs .label{display:none}.thumbs a{height:36px}}@media (prefers-reduced-motion:reduce){.thumbs a{transition:none}}.iso-P{background:var(--iso-P);color:var(--on-P)}.iso-M{background:var(--iso-M);color:var(--on-M)}.iso-K{background:var(--iso-K);color:var(--on-K)}.iso-N{background:var(--iso-N);color:var(--on-N)}.iso-S{background:var(--iso-S);color:var(--on-S)}.iso-H{background:var(--iso-H);color:var(--on-H)}.band-P{--band:var(--iso-P)}.band-M{--band:var(--iso-M)}.band-K{--band:var(--iso-K)}.band-N{--band:var(--iso-N)}.band-S{--band:var(--iso-S)}.band-H{--band:var(--iso-H)}.band-general{--band:var(--ink)}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chip{border:1px solid var(--ink);color:var(--ink);align-items:stretch;font-size:13px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.chip .code{min-width:24px;font:700 15px/1 var(--cond);place-items:center;padding:0 6px;display:grid}.chip .name{padding:5px 8px}.chip--general .name{color:var(--ink-2)}a.chip:hover .name{text-underline-offset:3px;text-decoration:underline}.foot{border-top:2px solid var(--ink);margin-top:96px}.foot .container{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:16px 32px;padding-top:24px;padding-bottom:40px;font-size:14px;display:flex}.foot nav{flex-wrap:wrap;gap:8px 20px;display:flex}.foot a{color:var(--ink-2)}.page-head{border-bottom:1px solid var(--rule);margin-bottom:8px;padding:40px 0 24px}.page-head h1{letter-spacing:.01em;text-wrap:pretty;line-break:strict;margin:0 0 8px;font-size:clamp(28px,4vw,40px);font-weight:800;line-height:1.25}.page-head p{color:var(--ink-2);max-width:60ch;margin:0}.crumbs{color:var(--ink-2);flex-wrap:wrap;gap:6px;margin:24px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.crumbs li+li:before{content:"/";color:var(--rule);margin-right:6px}.crumbs a{color:var(--ink-2)}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--rule);grid-template-columns:168px minmax(0,1fr);align-items:start;gap:20px;padding:20px 0;display:grid}.row-thumb{aspect-ratio:3/2;background:var(--panel);display:block;overflow:hidden}.row-thumb img{object-fit:cover;width:100%;height:100%}.row-title{margin:0 0 6px;font-size:19px;font-weight:700;line-height:1.45}.row-title a{text-decoration:none}.row-title a:hover{text-decoration:underline}.row p{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:15px;display:-webkit-box;overflow:hidden}.row-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;display:flex}@media (width<=600px){.row{grid-template-columns:96px minmax(0,1fr);gap:14px;padding:16px 0}.row-title{font-size:16px}.row p{display:none}}.pager{flex-wrap:wrap;justify-content:center;gap:4px;margin:40px 0 0;display:flex}.pager a,.pager span{border:1px solid var(--rule);min-width:44px;height:44px;font:600 17px var(--cond);place-items:center;padding:0 12px;text-decoration:none;display:grid}.pager span[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter{flex-wrap:wrap;gap:6px;margin:20px 0 8px;padding:0;list-style:none;display:flex}.filter a{border:1px solid var(--rule);padding:6px 12px;font-size:14px;text-decoration:none;display:inline-block}.filter a[aria-current=page]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter .count{font:600 14px var(--cond);color:var(--ink-2);margin-left:6px}.filter a[aria-current=page] .count{color:inherit}.about-cat{border-top:1px solid var(--rule);color:var(--ink-2);max-width:72ch;margin-top:48px;padding-top:16px;font-size:15px}.about-cat h2{color:var(--ink);margin:0 0 8px;font-size:16px}.home-head{border-bottom:2px solid var(--ink);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:56px;padding:48px 0 40px;display:grid}.home-head h1{text-wrap:pretty;line-break:strict;margin:0 0 12px;font-size:clamp(30px,4.4vw,48px);font-weight:800;line-height:1.2}.home-head .intro{color:var(--ink-2);max-width:34em;margin:0 0 24px;font-size:17px}.search-box{border:2px solid var(--ink);max-width:460px;display:flex}.search-box input{min-width:0;font:inherit;background:var(--paper);color:var(--ink);border:0;flex:1;padding:12px 14px;font-size:16px}.search-box input:focus{outline:none}.search-box:focus-within{outline:2px solid var(--ink);outline-offset:2px}.search-box button{background:var(--ink);color:var(--paper);font:inherit;cursor:pointer;border:0;padding:0 18px;font-weight:700}.index-table{border-collapse:collapse;width:100%}.index-table caption{text-align:left;color:var(--ink-2);padding-bottom:8px;font-size:13px;font-weight:700}.index-table td,.index-table th{border-bottom:1px solid var(--rule);padding:0}.index-table a{grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:52px;padding-right:8px;text-decoration:none;display:grid}.index-table a:hover .ix-name{text-decoration:underline}.ix-code{height:52px;font:700 26px/1 var(--cond);place-items:center;display:grid}.ix-name{font-weight:700}.ix-name small{color:var(--ink-2);font-size:13px;font-weight:400;display:block}.ix-count{font:600 18px var(--cond);color:var(--ink-2)}.ix-general .ix-code{border:1px solid var(--ink)}@media (width<=860px){.home-head{grid-template-columns:1fr;gap:32px;padding-top:32px}}.section-head{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:baseline;gap:16px;margin:40px 0 0;padding-bottom:8px;display:flex}.section-head h2{margin:0;font-size:22px}.more{margin-top:20px;font-weight:700;display:inline-block}.material-head{margin:0 calc(50% - 50vw);padding:40px calc(50vw - 50% + 16px) 32px}.material-head .inner{max-width:var(--max);grid-template-columns:auto minmax(0,1fr);align-items:end;gap:32px;margin:0 auto;display:grid}.material-head .big{font:700 clamp(96px, 16vw, 168px)/.8 var(--cond)}.material-head h1{margin:0 0 6px;font-size:clamp(28px,4vw,40px);font-weight:800}.material-head p{margin:0;font-size:16px}.post{grid-template-columns:minmax(0, var(--read)) 240px;justify-content:center;gap:0 64px;display:grid}.post-main{grid-column:1;min-width:0}.post-side{grid-area:1/2/span 2}.post-head{padding:8px 0 24px}.post-head .chips{margin:20px 0 14px}.post-head h1{letter-spacing:.01em;text-wrap:pretty;line-break:strict;margin:0 0 14px;font-size:clamp(26px,3.6vw,38px);font-weight:800;line-height:1.3}.post-meta{color:var(--ink-2);border-top:1px solid var(--rule);flex-wrap:wrap;gap:4px 16px;padding-top:12px;font-size:14px;display:flex}.post-meta a{color:var(--ink-2)}.post-cover{background:var(--panel);margin:0 0 32px}.post-cover img{width:auto;max-height:440px;margin:0 auto}.toc{max-height:calc(100vh - 48px);padding-top:16px;font-size:14px;position:sticky;top:24px;overflow-y:auto}.toc h2{color:var(--ink-2);border-bottom:2px solid var(--ink);margin:0 0 10px;padding-bottom:8px;font-size:13px;font-weight:700}.toc ol{margin:0;padding:0;list-style:none}.toc li{border-bottom:1px solid var(--rule)}.toc a{color:var(--ink-2);padding:7px 0 7px 14px;line-height:1.45;text-decoration:none;display:block;position:relative}.toc a:hover{color:var(--ink)}.toc .l3 a{padding-left:28px;font-size:13px}.toc a[aria-current=true]{color:var(--ink);font-weight:700}.toc a[aria-current=true]:before{content:"";background:var(--band);width:6px;height:14px;margin-top:-7px;position:absolute;top:50%;left:0}.toc-mobile{display:none}@media (width<=1040px){.post{grid-template-columns:minmax(0, var(--read))}.post-side{display:none}.toc-mobile{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);margin:0 0 28px;display:block}.toc-mobile summary{cursor:pointer;align-items:center;gap:12px;min-height:48px;font-weight:700;list-style:none;display:flex}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary:before{content:"";background:var(--band);flex:none;width:8px;height:20px}.toc-mobile summary:after{content:"";border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:9px;height:9px;margin-left:auto;transition:transform .2s;transform:translateY(-3px)rotate(45deg)}.toc-mobile[open] summary:after{transform:translateY(2px)rotate(-135deg)}.toc-mobile ol{margin:0;padding:0 0 12px;list-style:none}.toc-mobile a{color:var(--ink-2);border-top:1px solid var(--rule);padding:8px 0;text-decoration:none;display:block}.toc-mobile .l3 a{padding-left:16px}}.prose{overflow-wrap:anywhere;font-size:17px;line-height:1.85}.prose>*+*{margin-top:0}.prose p{margin:0 0 1.15em}.prose h2{border-top:2px solid var(--ink);margin:2.2em 0 .7em;padding-top:14px;font-size:24px;line-height:1.4}.prose>h2:first-child{margin-top:0}.prose h3{margin:1.8em 0 .5em;font-size:19px;line-height:1.45}.prose h4{margin:1.5em 0 .4em;font-size:17px}.prose ul,.prose ol{margin:0 0 1.15em;padding-left:1.4em}.prose ul{list-style:square}.prose ul ul{list-style:"– "}.prose ul ul ul{list-style:circle}.prose li{margin:.35em 0;padding-left:.2em}.prose li::marker{color:var(--ink-2)}.prose blockquote{border-left:1px solid var(--ink);color:var(--ink-2);margin:1.6em 0;padding:4px 0 4px 20px}.prose blockquote p{margin:0}.prose code{font-family:var(--mono);background:var(--panel);padding:1px 5px;font-size:.88em}.prose strong{font-weight:700}.ext{vertical-align:1px;margin-left:3px;display:inline-block}.pt-figure{margin:2em 0}.pt-figure a{cursor:zoom-in;display:block}.pt-figure img{width:auto;max-height:560px;margin:0 auto}.pt-figure figcaption{color:var(--ink-2);gap:10px;margin-top:10px;font-size:14px;display:flex}.fig-no{font:700 15px/1.6 var(--cond);color:var(--ink);white-space:nowrap}@media (prefers-color-scheme:dark){.pt-figure img,.post-cover img,.row-thumb img{background:#fff}.pt-figure img{padding:8px}}.formula{border:1px solid var(--rule);border-top:4px solid var(--band);margin:2em 0}.formula-no{font:700 15px var(--cond);letter-spacing:.04em;border-bottom:1px solid var(--rule);background:var(--panel);justify-content:space-between;padding:8px 14px;display:flex}.formula-eq{padding:18px 16px;font-size:1.12em;overflow-x:auto}.formula-eq .katex-display{margin:0}.vars{border-collapse:collapse;width:100%;font-size:15px}.vars th,.vars td{border-top:1px solid var(--rule);text-align:left;vertical-align:top;padding:8px 14px}.vars thead th{color:var(--ink-2);padding-top:6px;padding-bottom:6px;font-size:12px;font-weight:700}.vars tbody th{width:72px;font-weight:400}.vars .unit{width:96px;font:600 16px var(--cond);text-align:right;white-space:nowrap}.vars thead th:last-child{text-align:right}.example{border:1px solid var(--rule);border-top:4px solid var(--band);margin:2em 0}.example>div{grid-template-columns:56px minmax(0,1fr);align-items:baseline;gap:14px;padding:14px 16px;display:grid}.example-q{background:var(--panel)}.example-a{border-top:1px solid var(--rule)}.example-tag{font:700 17px/1.4 var(--cond);letter-spacing:.04em}.example p{margin:0}.example-math{padding:2px 0;overflow:auto hidden}.formula-eq{overflow-y:hidden}.example-math .katex-display{text-align:left;margin:4px 0}.example-math .katex-display>.katex{text-align:left}var.sym{padding:0 .08em;font-family:Times New Roman,Cambria Math,serif;font-size:1.08em;font-style:italic}var.sym sub{font-size:.7em}.pt-table{border-top:4px solid var(--band);margin:2em 0;overflow-x:auto}.pt-table table{border-collapse:collapse;width:100%;font-size:15px}.pt-table th,.pt-table td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;min-width:6em;padding:10px 14px}.pt-table th{background:var(--panel);font-weight:700}.pt-code{background:var(--panel);border-top:2px solid var(--ink);font:14px/1.6 var(--mono);padding:16px;overflow-x:auto}.pt-code code{background:0 0;padding:0}.callout{border:1px solid var(--rule);border-top:2px solid var(--ink);margin:2em 0;padding:14px 16px}.callout strong{margin-bottom:4px;font-size:14px;display:block}.callout p{margin:0}.post-end{margin-top:56px}.post-end h2{border-bottom:2px solid var(--ink);margin:0;padding-bottom:8px;font-size:20px}.post-nav{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:0;margin-top:40px;display:grid}.post-nav a{padding:16px 0;font-weight:700;line-height:1.5;text-decoration:none;display:block}.post-nav a:hover span:last-child{text-decoration:underline}.post-nav small{color:var(--ink-2);font-size:13px;font-weight:400;display:block}.post-nav .next{text-align:right;padding-left:24px}.post-nav .prev{padding-right:24px}@media (width<=600px){.post-nav{grid-template-columns:1fr}.post-nav .next{text-align:left;border-top:1px solid var(--rule);padding-left:0}}dialog.lightbox{background:0 0;border:0;max-width:96vw;max-height:94vh;padding:0}dialog.lightbox::backdrop{background:#0a0c0ee6}dialog.lightbox img{background:#fff;max-width:96vw;max-height:86vh}dialog.lightbox button{background:var(--paper);color:var(--ink);font:inherit;cursor:pointer;border:0;margin:10px 0 0 auto;padding:8px 16px;font-weight:700;display:block}#search{--pagefind-ui-primary:var(--ink);--pagefind-ui-text:var(--ink);--pagefind-ui-background:var(--paper);--pagefind-ui-border:var(--ink);--pagefind-ui-tag:var(--panel);--pagefind-ui-border-radius:0;--pagefind-ui-font:var(--sans)}#search mark{background:var(--iso-M);color:#16181b}.notfound{min-height:50vh;padding:64px 0 24px}.notfound .search-box{margin-top:24px}
