@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.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:Plus Jakarta Sans Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-vietnamese-wght-italic.CPBsCcxN.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:Plus Jakarta Sans Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-ext-wght-italic.DJWiFoht.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:Plus Jakarta Sans Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-wght-italic.DnD1KgkH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--bar:56px;--toc-width:300px;--measure:40rem;--reader-size:18px;--radius:6px;--ease:cubic-bezier(.2, .8, .2, 1);--bg:#fff;--surface:#f6f7f9;--text:#1c1d21;--muted:#646873;--line:#e4e6eb;--accent:#2557d6;--accent-soft:#e9effd;--code-bg:#f4f5f7;--callout:#f2f6ff;--shadow:0 1px 2px #1018280f, 0 8px 24px #10182814;color-scheme:light}:root[data-size="0"]{--reader-size:15px}:root[data-size="1"]{--reader-size:16.5px}:root[data-size="3"]{--reader-size:20px}:root[data-size="4"]{--reader-size:22px}:root[data-theme=sepia]{--bg:#f7f0e3;--surface:#efe6d4;--text:#3a2f22;--muted:#7a6a55;--line:#e2d5bd;--accent:#9a4f16;--accent-soft:#f0dfc6;--code-bg:#efe5d2;--callout:#f2e7d3}:root[data-theme=dark]{--bg:#15161a;--surface:#1d1f24;--text:#e7e8ec;--muted:#9a9ead;--line:#2c2f37;--accent:#8aaaff;--accent-soft:#232b40;--code-bg:#1d1f24;--callout:#1b2131;--shadow:0 1px 2px #0006, 0 8px 24px #0006;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=sepia]){--bg:#15161a;--surface:#1d1f24;--text:#e7e8ec;--muted:#9a9ead;--line:#2c2f37;--accent:#8aaaff;--accent-soft:#232b40;--code-bg:#1d1f24;--callout:#1b2131;--shadow:0 1px 2px #0006, 0 8px 24px #0006;color-scheme:dark}:root:not([data-theme=light]):not([data-theme=sepia]) .astro-code,:root:not([data-theme=light]):not([data-theme=sepia]) .astro-code span{color:var(--shiki-dark)!important}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;scroll-padding-top:calc(var(--bar) + 16px)}body{background:var(--bg);min-height:100dvh;margin:0;font-size:16px;line-height:1.5}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar{z-index:30;height:calc(var(--bar) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left));background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex;position:sticky;top:0}.topbar .title{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text);flex:1;padding:0 8px;font-size:15px;font-weight:650;text-decoration:none;overflow:hidden}.topbar .title span{color:var(--muted);font-weight:500}.icon-btn{width:44px;height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{background:var(--surface)}.icon-btn svg{width:22px;height:22px}.icon-btn .aa{letter-spacing:-.02em;font-size:17px;font-weight:650}.progress{top:calc(var(--bar) + env(safe-area-inset-top) - 2px);z-index:31;pointer-events:none;height:2px;position:fixed;left:0;right:0}.progress span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.settings{inset:auto;top:calc(var(--bar) + env(safe-area-inset-top) + 6px);right:max(8px, env(safe-area-inset-right));border:1px solid var(--line);background:var(--bg);width:min(300px,100vw - 16px);color:var(--text);box-shadow:var(--shadow);border-radius:10px;margin:0;padding:16px;position:fixed}.settings h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:650}.settings h2+.segmented{margin-bottom:16px}.segmented{background:var(--surface);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented button{min-height:40px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;font-size:14px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--bg);box-shadow:0 1px 2px #0000001f}.segmented button:disabled{opacity:.4;cursor:default}.swatch{vertical-align:-1px;border:1px solid #0003;border-radius:50%;width:12px;height:12px;margin-right:6px;display:inline-block}.shell{display:block}.toc{z-index:40;width:min(86vw,340px);padding:calc(env(safe-area-inset-top) + 12px) 12px calc(env(safe-area-inset-bottom) + 24px) max(12px, env(safe-area-inset-left));overscroll-behavior:contain;background:var(--bg);border-right:1px solid var(--line);transition:transform .26s var(--ease);visibility:hidden;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-102%)}.toc-open .toc{visibility:visible;transform:none}.backdrop{z-index:35;opacity:0;pointer-events:none;transition:opacity .26s var(--ease);background:#0a0c106b;position:fixed;inset:0}.toc-open .backdrop{opacity:1;pointer-events:auto}.toc-open body{overflow:hidden}.toc-head{justify-content:space-between;align-items:center;gap:8px;padding:4px 4px 12px 8px;display:flex}.toc-head a{color:var(--text);font-size:15px;font-weight:700;text-decoration:none}.toc ol{margin:0;padding:0;list-style:none}.toc .part{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 8px 6px;font-size:11.5px;font-weight:650}.toc a.item{color:var(--text);border-radius:8px;grid-template-columns:1.75rem 1fr;gap:4px;padding:9px 8px;font-size:14.5px;line-height:1.35;text-decoration:none;display:grid}.toc a.item:hover{background:var(--surface)}.toc a.item[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:650}.toc .n{color:var(--muted);font-variant-numeric:tabular-nums}.toc a.item[aria-current=page] .n{color:inherit}@media (width>=1100px){.shell{grid-template-columns:var(--toc-width) minmax(0, 1fr);display:grid}.toc{top:var(--bar);z-index:1;width:auto;height:calc(100dvh - var(--bar));visibility:visible;background:var(--bg);padding-top:12px;transition:none;position:sticky;transform:none}.backdrop,.toc-only-mobile,.toc-head{display:none}}.reader{min-width:0;padding:0 max(20px, env(safe-area-inset-right)) calc(64px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.chapter{max-width:var(--measure);margin:0 auto}.chapter-head{border-bottom:1px solid var(--line);margin-bottom:32px;padding:40px 0 28px}.eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0 0 12px;font-size:13px;font-weight:650}.chapter-head h1{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(28px,6.4vw,40px);font-weight:750;line-height:1.15}.dek{font-size:calc(var(--reader-size) * 1.05);color:var(--muted);margin:14px 0 0;line-height:1.55}.meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:16px 0 0;font-size:13.5px;display:flex}.prose{font-size:var(--reader-size);overflow-wrap:break-word;line-height:1.75}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose table,.prose figure,.prose pre{margin:0 0 1.15em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose h2{letter-spacing:-.015em;text-wrap:balance;margin:2.2em 0 .6em;font-size:1.4em;font-weight:750;line-height:1.25}.prose h3{margin:1.8em 0 .5em;font-size:1.12em;font-weight:700;line-height:1.3}.prose strong{font-weight:700}.prose code{font-family:var(--mono);background:var(--code-bg);overflow-wrap:anywhere;border-radius:5px;padding:.12em .36em;font-size:.84em}.prose a code{color:inherit}.prose pre{border-radius:var(--radius);-webkit-overflow-scrolling:touch;padding:14px 16px;font-size:.78em;line-height:1.6;overflow-x:auto}.prose .astro-code{background-color:var(--code-bg)!important}.prose pre code{font-size:inherit;overflow-wrap:normal;background:0 0;padding:0}.prose figure.code figcaption{font-family:var(--mono);overflow-wrap:anywhere;margin-bottom:6px;font-size:12.5px}.prose figure.code figcaption a{color:var(--muted);text-decoration:none}.prose figure.code figcaption a:hover{color:var(--accent);text-decoration:underline}.prose figure.code pre{margin:0}.code-body{position:relative}.wrap-btn{border:1px solid var(--line);background:var(--bg);min-height:30px;color:var(--muted);font:inherit;font-family:var(--font);cursor:pointer;border-radius:6px;padding:0 10px;font-size:12.5px;font-weight:650;position:absolute;top:8px;right:8px}.wrap-btn:hover{color:var(--text)}.wrap-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.code-body:not([data-overflows=true]) .wrap-btn{display:none}.code-body[data-overflows=true] pre{padding-top:46px}.code-wrap .prose pre,.code-wrap .prose pre code{white-space:pre-wrap;overflow-wrap:anywhere}.prose blockquote{border-left:3px solid var(--line);color:var(--muted);padding:.1em 0 .1em 1em}.prose table{border-collapse:collapse;width:100%;font-size:.86em;line-height:1.5;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.prose th{white-space:nowrap;font-weight:650}.prose img{max-width:100%;height:auto}details.tldr{margin:-.35em 0 1.2em}details.tldr summary{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;min-height:32px;color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:700;list-style:none;display:inline-flex}details.tldr summary:hover,details.tldr[open] summary{color:var(--accent)}details.tldr summary::-webkit-details-marker{display:none}details.tldr summary:before{content:"";width:10px;height:10px;transition:transform .16s var(--ease);background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3.5 1.5 7 5l-3.5 3.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%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 10 10'%3E%3Cpath d='M3.5 1.5 7 5l-3.5 3.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}details.tldr[open] summary:before{transform:rotate(90deg)}details.tldr>:not(summary){color:var(--muted);margin:.15em 0 .4em;font-size:.92em;line-height:1.6}.pager{max-width:var(--measure);border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;margin:56px auto 0;padding-top:20px;display:grid}.pager a{color:var(--text);padding:6px 0;font-weight:650;line-height:1.35;text-decoration:none;display:block}.pager a:hover{color:var(--accent)}.pager small{color:var(--muted);margin-bottom:4px;font-size:12.5px;font-weight:550;display:block}.pager .next{text-align:right;grid-column:2}@media (width<=520px){.pager{grid-template-columns:1fr}.pager .next{grid-column:1}}.page{max-width:64rem;padding:32px max(20px, env(safe-area-inset-right)) calc(64px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));margin:0 auto}.page-title{letter-spacing:-.02em;margin:8px 0 24px;font-size:clamp(28px,5vw,36px);font-weight:750}.shelf{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:28px 24px;margin:0;padding:0;list-style:none;display:grid}.shelf a{color:var(--text);text-decoration:none;display:block}.shelf a:hover .cover{transform:translateY(-2px)}.shelf h2{margin:14px 0 4px;font-size:17px;font-weight:700;line-height:1.3}.shelf p{color:var(--muted);margin:0;font-size:14.5px}.shelf time{color:var(--muted);margin-top:6px;font-size:13px;display:block}.cover{aspect-ratio:2/3;background:var(--cover);color:#f5f6f8;max-width:100%;transition:transform .2s var(--ease);border-radius:2px 5px 5px 2px;flex-direction:column;padding:11% 10% 10% 13%;display:flex;box-shadow:inset 7px 0 #00000038,0 1px 2px #1018281f,0 10px 24px #10182824;container-type:inline-size}.cover .kicker{letter-spacing:.12em;text-transform:uppercase;opacity:.72;font-size:6.5cqi;font-weight:650}.cover .name{letter-spacing:-.03em;text-wrap:balance;margin-top:auto;font-size:14.5cqi;font-weight:800;line-height:1.04;display:block}.cover .sub{font-family:var(--mono);opacity:.8;border-top:1px solid #ffffff4d;margin-top:9cqi;padding-top:5cqi;font-size:5.4cqi}.book-hero{grid-template-columns:minmax(0,200px) minmax(0,1fr);align-items:end;gap:28px;margin:8px 0 40px;display:grid}.book-hero h1{letter-spacing:-.02em;margin:0;font-size:clamp(30px,5.5vw,44px);font-weight:800;line-height:1.1}.book-hero .dek{max-width:34rem;font-size:17px}.actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.btn{border:1px solid var(--line);background:var(--bg);min-height:46px;color:var(--text);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 20px;font-size:15px;font-weight:650;text-decoration:none;display:inline-flex}.btn.primary{background:var(--accent);color:var(--bg);border-color:#0000}.btn.primary:hover{filter:brightness(1.08)}@media (width<=640px){.shelf a{grid-template-columns:104px minmax(0,1fr);align-items:center;gap:16px;display:grid}.shelf h2{margin-top:0}.book-hero{grid-template-columns:1fr;gap:20px}.book-hero .cover{width:44%;max-width:180px}.actions .btn{flex:1}}.contents h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:36px 0 4px;font-size:12.5px;font-weight:650}.contents ol{margin:0;padding:0;list-style:none}.contents li+li{border-top:1px solid var(--line)}.contents a{color:var(--text);grid-template-columns:2rem minmax(0,1fr) auto;gap:2px 12px;padding:14px 0;text-decoration:none;display:grid}.contents a:hover .t{color:var(--accent)}.contents .n{color:var(--muted);font-variant-numeric:tabular-nums;grid-row:span 2;font-weight:600}.contents .t{font-weight:650;line-height:1.35}.contents .m{color:var(--muted);white-space:nowrap;font-size:13px}.contents .s{color:var(--muted);grid-column:2/4;font-size:14.5px;line-height:1.5}.notfound{text-align:center;max-width:32rem;margin:18vh auto 0;padding:0 20px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}[hidden]{display:none!important}
