@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-italic-cyrillic-ext.Bl6DJqma.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-italic-cyrillic.Dibx14aP.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-italic-greek.CMW9dfKg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-italic-vietnamese.C-k5pZlm.woff2)format("woff2");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:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-italic-latin-ext.BhUEwDRF.woff2)format("woff2");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:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-italic-latin.BOLXpvkj.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-normal-cyrillic-ext.DIwfbPUE.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-normal-cyrillic.C0olyEE-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-normal-greek.DrHU7SY7.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-normal-vietnamese.BOyYyU_V.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-normal-latin-ext.HoL-AExg.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_astro/source-serif-4-normal-latin.BpEBLj1O.woff2)format("woff2");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 dark;--page:var(--lightningcss-light,#f3f0e8) var(--lightningcss-dark,#161311);--page-paint:var(--lightningcss-light,#f8f5ee) var(--lightningcss-dark,#14110e);--page-2:var(--lightningcss-light,#ebe7dd) var(--lightningcss-dark,#1e1b17);--raised:var(--lightningcss-light,#fbfaf6) var(--lightningcss-dark,#221f1b);--ink:var(--lightningcss-light,#231d17) var(--lightningcss-dark,#f0ece5);--ink-2:var(--lightningcss-light,#403934) var(--lightningcss-dark,#d3cfc7);--ink-3:var(--lightningcss-light,#6a635d) var(--lightningcss-dark,#a29d95);--ink-4:var(--lightningcss-light,#a39c93) var(--lightningcss-dark,#625e58);--line:var(--lightningcss-light,#3a2c1e1c) var(--lightningcss-dark,#fff6e617);--line-2:var(--lightningcss-light,#3a2c1e2e) var(--lightningcss-dark,#fff6e626);--accent:var(--lightningcss-light,#3b6a48) var(--lightningcss-dark,#9acca6);--accent-2:var(--lightningcss-light,#2f5a3b) var(--lightningcss-dark,#b8dcc0);--accent-wash:var(--lightningcss-light,#e3ecdf) var(--lightningcss-dark,#1f2b22);--mark:var(--lightningcss-light,#f2e09a) var(--lightningcss-dark,#5e5120);--selection:var(--lightningcss-light,#d5e4d2) var(--lightningcss-dark,#2f4535);--danger:var(--lightningcss-light,#a8443b) var(--lightningcss-dark,#ec9a90);--grain:url(/_astro/film-grain.mdzNIkVr.webp) 0 0 / 128px 128px repeat;--grain-night:url(/_astro/film-grain-dark.BwpeLTUr.webp) 0 0 / 128px 128px repeat;--frost:var(--grain);--glass-tint:var(--lightningcss-light,#fcfaf5a8) var(--lightningcss-dark,#221f1b9e);--glass-tint-strong:var(--lightningcss-light,#fcfaf5cc) var(--lightningcss-dark,#221f1bc7);--glass-sheen:linear-gradient(to bottom, var(--lightningcss-light,#ffffff6b) var(--lightningcss-dark,#ffffff0d), transparent 70%);--glass-blur:blur(18px) saturate(1.7);--glass-edge:inset 0 1px 0 var(--lightningcss-light,#ffffffd9) var(--lightningcss-dark,#ffffff1a), inset 0 0 0 1px var(--lightningcss-light,#ffffff52) var(--lightningcss-dark,#ffffff0b), 0 0 0 1px var(--lightningcss-light,#3a2c1e1a) var(--lightningcss-dark,#0000008c);--shadow-xs:0 1px 2px var(--lightningcss-light,#3a2c1e12) var(--lightningcss-dark,#00000059);--shadow-card:0 0 0 1px var(--line), 0 1px 1px var(--lightningcss-light,#3a2c1e08) var(--lightningcss-dark,#0003), 0 6px 14px -8px var(--lightningcss-light,#3a2c1e1f) var(--lightningcss-dark,#00000080);--shadow-lift:0 0 0 1px var(--line-2), 0 2px 3px var(--lightningcss-light,#3a2c1e0a) var(--lightningcss-dark,#00000040), 0 18px 36px -16px var(--lightningcss-light,#3a2c1e3d) var(--lightningcss-dark,#000000a6);--shadow-float:0 1px 2px var(--lightningcss-light,#3a2c1e0f) var(--lightningcss-dark,#0000004d), 0 12px 32px -10px var(--lightningcss-light,#3a2c1e33) var(--lightningcss-dark,#0000008c), 0 36px 72px -30px var(--lightningcss-light,#3a2c1e38) var(--lightningcss-dark,#0009);--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono:ui-monospace, "SF Mono", SFMono-Regular, "JetBrains Mono", "Cascadia Code", Menlo, Consolas, "Liberation Mono", "PingFang SC", "Microsoft YaHei", monospace;--font-serif:"Times New Roman", "Songti SC", "Noto Serif CJK SC", "Noto Serif SC", SimSun, serif;--font-source:"Source Serif 4", "Songti SC", "Noto Serif CJK SC", "Noto Serif SC", SimSun, serif;--font-text:var(--font-source);--step--3:.6875rem;--step--2:.75rem;--step--1:.8125rem;--step-0:.875rem;--step-1:1rem;--step-2:1.0625rem;--step-3:1.25rem;--step-4:clamp(1.625rem, 1.2rem + 1.6vw, 2rem);--step-5:clamp(2rem, 1.3rem + 2.9vw, 2.875rem);--em-h2:1.44em;--em-h3:1.2em;--em-small:.86em;--lh-tight:1.16;--lh-snug:1.3;--lh-ui:1.45;--lh-text:1.7;--lh-text-cjk:1.8;--track-tight:-.022em;--track-snug:-.012em;--track-label:.08em;--type-label:600 var(--step--2) / 1.3 var(--font-text);--type-meta:400 var(--step--1) / 1.5 var(--font-text);--type-ui:500 var(--step-0) / var(--lh-ui) var(--font-text);--type-summary:400 var(--step-1) / 1.65 var(--font-text);--type-entry:620 var(--step-3) / var(--lh-snug) var(--font-text);--type-title:700 var(--step-4) / var(--lh-snug) var(--font-text);--type-display:720 var(--step-5) / var(--lh-tight) var(--font-text);--type-code:400 var(--step--1) / 1.7 var(--font-mono);--column-w:50rem;--column-pad:clamp(1.25rem, 6.2vw, 4.5rem);--page-pad:clamp(.75rem, 3vw, 2rem);--capsule-h:3rem;--capsule-gap:.625rem;--head-room:calc(var(--capsule-h) + var(--capsule-gap) * 2);--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-pill:999px;--spring-snappy:cubic-bezier(.3, 1.25, .5, 1);--spring-smooth:cubic-bezier(.22, 1, .36, 1);--spring-bouncy:cubic-bezier(.34, 1.56, .64, 1);--spring-gentle:cubic-bezier(.25, 1, .5, 1);--dur-snappy:.36s;--dur-smooth:.46s;--dur-bouncy:.64s;--dur-gentle:.67s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.55, 0, 1, .45);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--t-press:70ms;--t-release:.16s;--t-hover:.12s;--t-fade:.22s;--t-theme:.24s}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@supports (transition-timing-function:linear(0, 1)){:root{--spring-snappy:linear(0, .0453, .1519, .2861, .4255, .5565, .6714, .7673, .8438, .9023, .9454, .9755, .9955, 1.0078, 1.0145, 1.0173, 1.0175, 1.0161, 1.014, 1.0115, 1.0091, 1.0069, 1.005, 1.0035, 1.0023, 1);--spring-smooth:linear(0, .0248, .0855, .1661, .2554, .3461, .4336, .515, .5887, .6543, .7116, .7611, .8034, .8391, .8691, .8941, .9148, .9317, .9456, .9569, .966, .9733, .9791, .9838, .9875, .9904, .9927, .9944, .9958, .9969, .9977, .9983, 1);--spring-bouncy:linear(0, .0348, .1252, .2513, .396, .545, .6873, .8153, .9238, 1.0105, 1.075, 1.1186, 1.1435, 1.1527, 1.1495, 1.1371, 1.1187, 1.097, 1.0742, 1.0521, 1.032, 1.0147, 1.0008, .9902, .9829, .9786, .9767, .9769, .9786, .9812, .9845, .988, .9914, .9945, .9973, .9995, 1.0012, 1.0024, 1.0032, 1.0035, 1.0036, 1.0033, 1.003, 1.0025, 1.0019, 1);--spring-gentle:linear(0, .0153, .0542, .1082, .1712, .2386, .307, .3741, .4385, .4991, .5554, .607, .654, .6963, .7343, .7682, .7982, .8248, .8482, .8687, .8866, .9022, .9159, .9277, .9379, .9468, .9544, .961, .9667, .9716, .9757, .9793, .9824, .985, .9873, .9892, .9908, .9922, .9934, .9944, .9953, .996, .9966, .9971, .9976, .9979, .9983, 1)}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--grain:var(--grain-night)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--grain:var(--grain-night)}}@media (width<=40rem){:root{--capsule-gap:.5rem}}@media (prefers-reduced-transparency:reduce){:root{--glass-tint:var(--raised);--glass-tint-strong:var(--raised);--glass-blur:none}}:root{--dark:0;--hover-wash:var(--lightningcss-light,#3a2c1e0e) var(--lightningcss-dark,#fff6e60f);--press-wash:var(--lightningcss-light,#3a2c1e17) var(--lightningcss-dark,#fff6e61a)}:root[data-theme=dark]{--dark:1}:root[data-font=serif]{--font-text:var(--font-serif)}:root[data-font=sans]{--font-text:var(--font-sans);--weight-year:300}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--dark:1}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--head-room) + 1.25rem);scrollbar-color:#80796f99 transparent;scrollbar-gutter:stable;background:var(--grain), var(--page-paint);transition:background-color var(--t-theme) var(--ease-in-out)}@supports selector(::-webkit-scrollbar){html{scrollbar-color:auto}html::-webkit-scrollbar{width:12px;height:12px}html::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-corner{background:0 0}html::-webkit-scrollbar-thumb{background:#80796f99 padding-box padding-box;border:3px solid #0000;border-radius:999px;min-height:24px}html::-webkit-scrollbar-thumb:hover{background-color:#80796fcc}}body{min-height:100dvh;color:var(--ink-2);font:400 var(--step-1) / 1.6 var(--font-text);font-kerning:normal;font-optical-sizing:auto;font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;flex-direction:column;margin:0;display:flex}body,.prose,.prose :where(h2,h3,h4,h5,h6,strong,em,code),.entry-link,.entry-date,.entry-dek,.entry-meta,.year-label,.post-title,.post-meta,.post-dek,.page-title,.page-lede,.toc-title,.site-footer{transition:color var(--t-theme) var(--ease-in-out)}main{flex:1}[hidden]{display:none!important}img,svg,video{max-width:100%;display:block}img{height:auto}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:no-preference){:focus-visible{animation:ring-in .3s var(--spring-snappy)}}@keyframes ring-in{0%{outline-offset:6px;outline-color:#0000}}kbd{font:500 var(--step--2) / 1 var(--font-text);min-width:1.375rem;height:1.375rem;color:var(--ink-3);background:var(--raised);box-shadow:0 0 0 1px var(--line), 0 1px 0 var(--line-2);border-radius:6px;justify-content:center;align-items:center;padding:0 .375rem;display:inline-flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--r-sm);background:var(--ink);color:var(--raised);font:var(--type-ui);transition:translate var(--dur-smooth) var(--spring-smooth);padding:.5rem .875rem;position:fixed;top:.75rem;left:.75rem;translate:0 -200%}.skip-link:focus-visible{translate:0}.icon{flex:none}.dot{opacity:.5;background:currentColor;border-radius:50%;width:3px;height:3px}.page{padding:calc(var(--head-room) + clamp(.5rem, 2.4vw, 1.75rem)) var(--page-pad) 0;position:relative}.column{max-width:var(--column-w);padding:clamp(1.25rem, 4vw, 2.75rem) var(--column-pad) clamp(1rem, 3vw, 2rem);margin-inline:auto;position:relative}@media (width<=40rem){.page{padding-inline:0}}.glass{background:var(--frost), var(--glass-sheen), var(--glass-tint);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge), var(--shadow-float);transition:background-color var(--t-theme) var(--ease-in-out)}.tab-chip,.tab-indicator{background:var(--frost), var(--glass-sheen), var(--glass-tint);backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px 0 var(--lightningcss-light,#fffc) var(--lightningcss-dark,#ffffff24), inset 0 0 0 1px var(--line-2)}@supports (corner-shape:squircle){.capsule,.glass-btn,.chip,.button,.search,.prefs,.toc-sheet,.note-pop,.toast{corner-shape:squircle}}.glass-btn,.chip,.button,.tabs a,.nav a,.brand,.ring-btn,.now,.search-close,.segmented button{transition:color var(--t-hover), background-color var(--t-hover), box-shadow var(--t-hover), opacity var(--t-hover), scale var(--t-release) var(--spring-snappy), translate var(--t-release) var(--spring-snappy)}:is(.glass-btn,.chip,.button,.brand,.ring-btn,.now,.search-close):active{transition-duration:var(--t-press);transition-timing-function:var(--ease-out);scale:.96}:is(.tabs a,.nav a,.segmented button):active{background-color:var(--press-wash)}.glass-btn{border-radius:var(--r-pill);min-width:2.25rem;height:2.25rem;color:var(--ink-3);isolation:isolate;justify-content:center;align-items:center;gap:.5rem;display:inline-flex;position:relative}.glass-btn:after{content:"";z-index:-1;border-radius:inherit;corner-shape:inherit;pointer-events:none;opacity:0;transition:opacity var(--t-hover) var(--ease-out);background:radial-gradient(3.5rem, var(--lightningcss-light,#ffffffe6) var(--lightningcss-dark,#ffffff1a), #0000 100%);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.glass-btn:hover{color:var(--ink);background:var(--hover-wash)}.glass-btn:hover:after{opacity:1}}.chip{border-radius:var(--r-pill);min-width:2rem;height:2rem;font:500 var(--step--1) / 1 var(--font-text);color:var(--ink-2);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line);justify-content:center;align-items:center;gap:.4375rem;padding:0 .8125rem;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.chip:hover,.chip[aria-expanded=true]{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2);translate:0 -1px}}.button{border-radius:var(--r-md);height:2.625rem;font:var(--type-ui);color:var(--raised);background:var(--ink);align-items:center;gap:.5rem;padding:0 1.125rem;display:inline-flex}.button:hover{opacity:.92}.button.secondary{color:var(--ink);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-2)}.button-row{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2rem;display:flex}.draft-badge{font:var(--type-label);font-size:var(--step--3);letter-spacing:var(--track-label);text-transform:uppercase;vertical-align:middle;color:var(--accent);background:var(--accent-wash);border-radius:5px;margin-left:.5rem;padding:.1875rem .4375rem;display:inline-block}.site-header{z-index:40;height:var(--head-room);pointer-events:none;position:fixed;inset:0 0 auto}.capsule{top:var(--capsule-gap);width:min(calc(var(--column-w) + .75rem), calc(100% - var(--capsule-gap) * 2));height:var(--capsule-h);border-radius:calc(var(--capsule-h) / 2);pointer-events:auto;background:var(--frost), var(--glass-sheen), var(--glass-tint);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge), 0 1px 2px var(--lightningcss-light,#3a2c1e0d) var(--lightningcss-dark,#0000004d), 0 10px 28px -12px var(--lightningcss-light,#3a2c1e47) var(--lightningcss-dark,#000000b3);isolation:isolate;transition:translate .22s var(--ease-out), opacity .16s var(--ease-out), background-color var(--t-theme) var(--ease-in-out);margin-inline:auto;position:absolute;inset-inline:0;overflow:clip;translate:0}.capsule[data-reading-hidden]{translate:0 calc(-100% - var(--capsule-gap) - .5rem);opacity:0;pointer-events:none}.capsule-glow{z-index:0;pointer-events:none;opacity:0;width:7rem;height:7rem;transition:opacity .35s var(--ease-out);background:radial-gradient(circle closest-side, var(--lightningcss-light,#ffffffe6) var(--lightningcss-dark,#ffffff1a), #0000 100%);margin:-3.5rem 0 0 -3.5rem;position:absolute;top:0;left:50%}@media (hover:hover) and (pointer:fine){.capsule:hover .capsule-glow.is-active{opacity:.5}}.face{z-index:1;transition:opacity .2s var(--ease-out), scale var(--dur-smooth) var(--spring-smooth);align-items:center;gap:.25rem;display:flex;position:absolute;inset:0}.face-nav{padding:0 .375rem 0 .5rem}.face-read{gap:.375rem;width:max-content;padding:0 .375rem;left:50%;right:auto;translate:-50%}.capsule[data-state=read] .face-nav,.capsule[data-state=nav] .face-read{opacity:0;pointer-events:none;transition-duration:.12s, var(--dur-smooth);scale:.94}.brand{border-radius:var(--r-pill);height:2.25rem;font:650 var(--step-0) / 1 var(--font-text);letter-spacing:-.012em;color:var(--ink);white-space:nowrap;align-items:center;padding:0 .75rem;display:flex}.brand-name{translate:0 .5px}@media (hover:hover) and (pointer:fine){.brand:hover{background:var(--hover-wash)}}.nav{isolation:isolate;align-items:center;gap:.125rem;margin-left:auto;display:flex}.nav a{border-radius:var(--r-pill);height:2.25rem;font:var(--type-ui);color:var(--ink-3);align-items:center;padding:0 .8125rem;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.nav a:hover{color:var(--ink);background:var(--hover-wash)}}.nav a[aria-current]{color:var(--ink);background:0 0}.nav-chip{z-index:-1;border-radius:inherit;background:var(--raised);box-shadow:inset 0 0 0 1px var(--line);position:absolute;inset:.1875rem 0}.actions{align-items:center;gap:.25rem;margin-left:.5rem;display:flex}.search-btn{font:var(--type-ui);box-shadow:inset 0 0 0 1px var(--line);background:var(--lightningcss-light,#ffffff73) var(--lightningcss-dark,#ffffff0a);padding:0 .375rem 0 .75rem;font-weight:450}.search-label{text-align:left;min-width:4.25rem}.theme-icon{overflow:visible}.theme-core,.theme-rays,.theme-bite{transform-box:view-box;transform-origin:12px 12px}.theme-core{scale:calc(1 + .72 * var(--dark));transition:scale var(--dur-bouncy) var(--spring-bouncy)}.theme-rays{opacity:calc(1 - var(--dark));scale:calc(1 - .45 * var(--dark));rotate:calc(-100deg * var(--dark));transition:opacity .3s var(--ease-out), scale var(--dur-bouncy) var(--spring-bouncy), rotate var(--dur-bouncy) var(--spring-bouncy)}.theme-bite{translate:calc(9px - 9px * var(--dark)) calc(-9px + 9px * var(--dark));transition:translate var(--dur-smooth) var(--spring-smooth)}.ring-btn{width:2.25rem;height:2.25rem;color:var(--ink-2);border-radius:50%;place-items:center;display:grid;position:relative}.ring{width:100%;height:100%;position:absolute;inset:0;rotate:-90deg}.ring circle{fill:none;stroke-width:2.25px}.ring-track{stroke:var(--line-2)}.ring-fill{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.ring-btn .icon{transition:translate var(--dur-snappy) var(--spring-snappy)}@media (hover:hover) and (pointer:fine){.ring-btn:hover{color:var(--ink)}.ring-btn:hover .icon{translate:0 -2px}}.now{border-radius:var(--r-pill);max-width:min(22rem,56vw);height:2.25rem;font:var(--type-ui);color:var(--ink);align-items:center;gap:.375rem;padding:0 .625rem 0 .75rem;display:inline-flex}.now-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.now .icon{color:var(--ink-3)}@media (hover:hover) and (pointer:fine){.now:hover{background:var(--hover-wash)}}.prefs-btn{font:650 var(--step--1) / 1 var(--font-text);letter-spacing:-.02em;color:var(--ink-2)}@media (width<=52rem){.search-label,.search-btn kbd{display:none}.search-btn{width:2.25rem;box-shadow:none;background:0 0;padding:0}}@media (width<=40rem){.brand{display:none}.nav{margin-left:0}.nav a{padding-inline:.5rem}.actions{gap:0;margin-left:auto}}@media (width<=22.5rem){.face-nav{padding-inline:.25rem}.nav a{font-size:var(--step--1);padding-inline:.5rem}.actions .glass-btn{width:2rem;min-width:2rem}}.site-footer{padding:clamp(2rem, 5vw, 3rem) var(--page-pad) max(1.5rem, env(safe-area-inset-bottom));font:var(--type-meta);color:var(--ink-3)}.footer-inner{max-width:var(--column-w);padding-inline:var(--column-pad);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-inline:auto;display:flex}.footer-inner:before{content:"";background:var(--line);flex-basis:100%;height:1px;margin-bottom:.5rem}.footer-links{gap:.25rem;display:flex}.footer-mark{font-size:var(--step--2);margin:0}.page-index{padding-top:calc(var(--head-room) + clamp(1rem, 2vw, 1.5rem))}.index{padding-top:0}.index-head{margin-bottom:clamp(.75rem,2.5vw,1.25rem)}.write-link{font:var(--type-meta);color:var(--accent);margin-top:.75rem;display:inline-block}.tabs{margin-inline:calc(-1 * var(--column-pad));padding:.25rem var(--column-pad);scroll-padding-inline:var(--column-pad);scrollbar-width:none;-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--column-pad), #000 calc(100% - var(--column-pad)), transparent);-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--column-pad), #000 calc(100% - var(--column-pad)), transparent);mask-image:linear-gradient(to right, transparent, #000 var(--column-pad), #000 calc(100% - var(--column-pad)), transparent);gap:.125rem;display:flex;position:relative;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{z-index:1;border-radius:var(--r-pill);font:var(--type-ui);white-space:nowrap;color:var(--ink-3);transition:color var(--t-hover);flex:none;align-items:baseline;gap:.4375rem;padding:.5rem .9375rem;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.tabs a:hover{color:var(--ink);background:var(--hover-wash)}}.tabs a[aria-current]{color:var(--ink);background:0 0}.tab-count{font-size:var(--step--2);font-variant-numeric:tabular-nums;opacity:.62}.tab-chip{z-index:-1;border-radius:inherit;position:absolute;inset:0}.tab-indicator{top:.25rem;left:var(--column-pad);z-index:0;border-radius:var(--r-pill);pointer-events:none;height:calc(100% - .5rem);transition:background-color var(--t-theme) var(--ease-in-out);position:absolute}.tabs.live .tab-chip{display:none}.year:not([hidden])~.year{margin-top:clamp(.75rem,2vw,1.25rem)}.year-label{font:var(--weight-year,400) var(--step-4) / 1 var(--font-text);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink-4);align-items:center;gap:1rem;margin:0;padding:.5rem 0 .375rem;display:flex}.year-label:after{content:"";background:var(--line-2);flex:1;height:1px;translate:0 .3em}.entry-list{margin:0;padding:0;list-style:none}.entries{isolation:isolate;position:relative}.entry{grid-template-columns:4.25rem minmax(0,1fr) auto;column-gap:1.25rem;padding:1.125rem 0 1.1875rem;display:grid;position:relative}.entry:not([hidden])~.entry:before{content:"";background:var(--line);height:1px;transition:opacity var(--t-hover);position:absolute;top:0;left:5.5rem;right:0}.entry-date{font:var(--type-meta);font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap;padding-top:.25rem}.entry-main{min-width:0}.entry-link{color:var(--ink);display:block}.entry-link:after{content:"";z-index:1;border-radius:var(--r-md);position:absolute;inset:0 -.75rem}.entry-link:focus-visible{outline:none}.entry-link:focus-visible:after{outline:2px solid var(--accent);outline-offset:0}.entry-title{font:var(--type-entry);letter-spacing:var(--track-snug);text-wrap:pretty;display:inline-block}.entry-title:lang(zh-CN){letter-spacing:.01em}.entry-dek{font:400 var(--step-0) / 1.6 var(--font-text);color:var(--ink-3);text-wrap:pretty;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:.3125rem 0 0;display:-webkit-box;overflow:hidden}.entry-meta{z-index:2;pointer-events:none;font:var(--type-meta);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:.3125rem;margin:0;padding-top:.25rem;display:flex;position:relative}.entry-cat{font:var(--type-label);font-size:var(--step--3);letter-spacing:var(--track-label);text-transform:uppercase}.entry-arrow{color:var(--ink-3);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s var(--ease-out), translate var(--dur-snappy) var(--spring-snappy);margin-top:-.5rem;position:absolute;top:50%;right:0;translate:-.5rem}.entry-hover{top:0;left:calc(-1 * min(1.125rem, var(--column-pad) - .25rem));right:calc(-1 * min(1.125rem, var(--column-pad) - .25rem));z-index:-1;border-radius:var(--r-md);pointer-events:none;opacity:0;transition:opacity .16s var(--ease-out), background-color var(--t-theme) var(--ease-in-out);display:none;position:absolute}@media (width>=40.0625rem) and (hover:hover) and (pointer:fine){.entry-hover,.entries:not(.live) .entry:is(:hover,:focus-within){background:var(--frost), var(--glass-sheen), var(--glass-tint);backdrop-filter:var(--glass-blur);border-radius:var(--r-md);box-shadow:inset 0 1px 0 var(--lightningcss-light,#fffc) var(--lightningcss-dark,#ffffff24), inset 0 0 0 1px var(--line-2)}.entry-hover{display:block}.entry-hover.on{opacity:1}.entries.live .entry[data-active] .entry-arrow,.entries:not(.live) .entry:hover .entry-arrow,.entries:not(.live):not(:hover) .entry:focus-within .entry-arrow{opacity:1;visibility:visible;translate:0}.entry-meta{padding-right:1.75rem}.entries.live .entry[data-active]+.entry:before,.entries.live .entry[data-active]:before,.entries:not(.live) .entry:hover+.entry:before,.entries:not(.live) .entry:hover:before{opacity:0}}@media (width<=40rem){.entry{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main main""date meta";row-gap:.5rem}.entry-main{grid-area:main}.entry-date{grid-area:date;padding-top:0}.entry-meta{flex-direction:row;grid-area:meta;align-items:baseline;gap:.75rem;padding-top:0;padding-right:0}.entry:not([hidden])~.entry:before{left:0}.entry-arrow{display:none}}.page-article{--column-pad:clamp(1.25rem, 4vw, 4rem);--column-w:calc(48rem + var(--column-pad) * 2);grid-template-columns:minmax(0, 1fr) minmax(0, var(--column-w)) minmax(0, 1fr);display:grid}.page-article>.column{grid-area:1/2;width:100%}.post-head,.page-head{z-index:1;border-bottom:1px solid var(--line);margin-bottom:clamp(1.75rem,4.5vw,2.75rem);padding-bottom:clamp(1.5rem,4vw,2.25rem);position:relative}.post-head{margin-bottom:clamp(1.5rem,3.5vw,2rem);padding-bottom:clamp(1.25rem,3vw,1.75rem)}.post-meta{align-items:center;gap:.75rem;margin-bottom:clamp(.875rem,2.5vw,1.25rem);display:flex}.post-meta .kicker{margin:0}.kicker{font:var(--type-meta);font-variant-numeric:tabular-nums;color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:.25rem .625rem;margin:0 0 clamp(.875rem,2.5vw,1.25rem);display:flex}.kicker>*+:before{content:"";vertical-align:.2em;background:var(--ink-4);border-radius:50%;width:3px;height:3px;margin-right:.625rem;display:inline-block}.kicker-cat{font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--accent);transition:color var(--t-hover)}.kicker-cat:hover{color:var(--accent-2)}.post-title,.page-title{width:fit-content;font:var(--type-display);letter-spacing:var(--track-tight);color:var(--ink);text-wrap:balance;margin:0}.page-title{font:var(--type-title);font-size:var(--step-5);letter-spacing:var(--track-tight)}.post-title:lang(zh-CN){letter-spacing:.012em;line-height:1.3}.page-title .hash{color:var(--ink-4);margin-right:.08em;font-weight:400}.post-dek{font:400 var(--step-3) / 1.55 var(--font-text);color:var(--ink-3);text-wrap:pretty;margin:1rem 0 0}.post-dek.long{font-size:var(--step-2);line-height:1.75}.page-lede{font:var(--type-summary);color:var(--ink-3);margin:.75rem 0 0}.post-updated{font:var(--type-meta);color:var(--ink-3);margin:.875rem 0 0}.toc{display:none}@media (width>=88rem){.page-article .toc{grid-area:1/1;justify-self:end;width:min(14.5rem,100% - 2.5rem);margin-right:2.5rem;display:block}.page-article .toc-inline{display:none}}.toc-inner{top:calc(var(--head-room) + 1.75rem);max-height:calc(100dvh - var(--head-room) - 3.5rem);overscroll-behavior:contain;scrollbar-width:none;padding:.25rem .25rem .75rem .5rem;position:sticky;overflow-y:auto}.toc-inner[data-edges=top]{-webkit-mask-image:linear-gradient(#0000,#000 1.25rem);mask-image:linear-gradient(#0000,#000 1.25rem)}.toc-inner[data-edges=bottom]{-webkit-mask-image:linear-gradient(#000 calc(100% - 1.25rem),#0000);mask-image:linear-gradient(#000 calc(100% - 1.25rem),#0000)}.toc-inner[data-edges=both]{-webkit-mask-image:linear-gradient(#0000,#000 1.25rem calc(100% - 1.25rem),#0000);mask-image:linear-gradient(#0000,#000 1.25rem calc(100% - 1.25rem),#0000)}.toc-label{font:var(--type-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .625rem}.toc-list{padding-left:1rem;position:relative}.toc ol,.toc-sheet ol,.toc-inline ol{margin:0;padding:0;list-style:none}.toc-rail{background:var(--line-2);border-radius:2px;width:1.5px;position:absolute;top:.375rem;bottom:.375rem;left:0}.toc-fill{background:var(--accent);transform-origin:top;border-radius:2px;position:absolute;inset:0;scale:1 0}.toc-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 3px var(--lightningcss-light,#3b6a482e) var(--lightningcss-dark,#9acca633);border-radius:50%;margin:-3.5px 0 0 -3.5px;position:absolute;top:0;left:50%}.toc ol a{font:400 var(--step--1) / 1.4 var(--font-text);letter-spacing:0;color:var(--ink-3);text-wrap:pretty;transition:color .25s var(--ease-out), translate var(--dur-snappy) var(--spring-snappy);padding:.1875rem 0;display:block}.toc .depth-3 a{padding-left:.75rem}.toc-bottom{font:var(--type-meta);color:var(--ink-3);transition:color var(--t-hover);align-items:center;gap:.375rem;margin-top:.75rem;display:inline-flex}.toc-bottom:hover{color:var(--ink)}.toc-bottom svg{transition:rotate var(--t-release) var(--ease-out);rotate:0deg}.toc-bottom[data-scroll-top] svg{rotate:180deg}.toc ol a.read{color:var(--ink-2)}.toc ol a[aria-current]{color:var(--ink)}@media (hover:hover) and (pointer:fine){.toc ol a:hover{color:var(--ink);translate:2px}}.toc-inline{border-radius:var(--r-md);background:var(--page-2);box-shadow:inset 0 0 0 1px var(--line);font:var(--type-ui);interpolate-size:allow-keywords;margin:0 0 2.25rem}.toc-inline::details-content{height:0;transition:height var(--dur-smooth) var(--spring-smooth), content-visibility var(--dur-smooth) allow-discrete;overflow:clip}.toc-inline[open]::details-content{height:auto}.toc-inline summary{border-radius:inherit;cursor:pointer;color:var(--ink-2);-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.8125rem 1.125rem;list-style:none;display:flex}.toc-inline summary::-webkit-details-marker{display:none}.toc-inline summary:after{content:"";border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);width:.4rem;height:.4rem;transition:rotate var(--dur-bouncy) var(--spring-bouncy), translate var(--dur-bouncy) var(--spring-bouncy);margin-left:.25rem;translate:0 -.1rem;rotate:45deg}.toc-inline[open] summary:after{translate:0 .1rem;rotate:225deg}.toc-count{font:var(--type-meta);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:auto}.toc-inline ol{padding:0 1.125rem .875rem}.toc-inline li a,.toc-sheet li a{color:var(--ink-2);text-wrap:pretty;padding:.375rem 0;display:block}.toc-inline .depth-3 a,.toc-sheet .depth-3 a{color:var(--ink-3);padding-left:1rem}.post-foot{margin-top:clamp(3rem,7vw,4.5rem)}.foot-row{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.foot-label{font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);margin:0 0 .75rem}.tag-list,.tag-cloud{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.tag{border-radius:var(--r-pill);height:1.875rem;font:450 var(--step--1) / 1 var(--font-text);color:var(--ink-2);background:var(--page-2);box-shadow:inset 0 0 0 1px var(--line);transition:color var(--t-hover), background-color var(--t-hover), box-shadow var(--t-hover), translate var(--dur-snappy) var(--spring-snappy), scale var(--dur-snappy) var(--spring-snappy);align-items:center;gap:.125rem;padding:0 .75rem;display:inline-flex}.tag:before{content:"#";color:var(--ink-4)}.tag .count{font-size:var(--step--2);font-variant-numeric:tabular-nums;color:var(--ink-3);margin-left:.375rem}@media (hover:hover) and (pointer:fine){.tag:hover{color:var(--ink);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-2);translate:0 -1px}}.tag:active{transition-duration:var(--t-press);scale:.95}.share{gap:.5rem;margin-left:auto;display:flex}.related{margin-top:2.25rem}.related ol{margin:0;padding:0;list-style:none}.related a{border-top:1px solid var(--line);color:var(--ink-2);transition:color var(--t-hover);align-items:baseline;gap:1rem;padding:.625rem 0;display:flex}.related li:first-child a{border-top:0}.related a span{text-wrap:pretty;transition:translate var(--dur-snappy) var(--spring-snappy);flex:1;font-weight:500}.related time{font:var(--type-meta);font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap}@media (hover:hover) and (pointer:fine){.related a:hover{color:var(--ink)}.related a:hover span{translate:3px}}.pager{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:2.25rem;display:grid}.pager a{border-radius:var(--r-md);background:var(--raised);box-shadow:var(--shadow-card);transition:translate var(--dur-smooth) var(--spring-smooth), box-shadow var(--dur-smooth) var(--spring-smooth), scale var(--dur-snappy) var(--spring-snappy);flex-direction:column;gap:.375rem;padding:1rem 1.125rem 1.125rem;display:flex}.pager .next{text-align:right;grid-column:2;align-items:flex-end}.pager small{font:var(--type-meta);color:var(--ink-3);align-items:center;gap:.375rem;display:inline-flex}.pager small .icon{transition:translate var(--dur-snappy) var(--spring-snappy)}.pager span{font:600 var(--step-1) / 1.45 var(--font-text);color:var(--ink);text-wrap:pretty}@media (hover:hover) and (pointer:fine){.pager a:hover{box-shadow:var(--shadow-lift);translate:0 -2px}.pager .prev:hover small .icon{translate:-3px}.pager .next:hover small .icon{translate:3px}}.pager a:active{transition-duration:var(--t-press);scale:.98}@media (width<=40rem){.pager{grid-template-columns:1fr}.pager .next{grid-column:1}}.standalone .page-head{text-align:left}.standalone.about .page-head{border-bottom:0;margin-bottom:1.5rem;padding-bottom:0}.prose.about>p:first-child{color:var(--ink);font-size:clamp(1.125rem,1rem + .4vw,1.25rem);line-height:1.6}.prose.about h2{letter-spacing:.04em;color:var(--ink-3);margin-top:2rem;font-size:.8125rem;font-weight:600}.prose.about ul{color:var(--ink-3);margin-top:.75rem;padding-left:1.1em;font-size:.9375rem}.not-found{text-align:center;padding-block:clamp(3.5rem,12vw,6rem)}.not-found .kicker{font:var(--type-label);letter-spacing:.2em;color:var(--accent);justify-content:center}.not-found .page-title{margin-inline:auto}.not-found-text{max-width:28rem;color:var(--ink-3);text-wrap:pretty;margin:1rem auto 0}.lost-cup{width:6.5rem;height:6.5rem;color:var(--ink-4);margin:0 auto 1.5rem;rotate:-8deg}.lost-ribbon{fill:var(--accent)}.lost-steam{stroke-dasharray:4 7;animation:3s linear infinite drift}@keyframes drift{to{stroke-dashoffset:-22px}}.prefs,.note-pop,.toc-sheet,.toast{background:var(--frost), var(--glass-sheen), var(--glass-tint-strong);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge), var(--shadow-float);color:var(--ink-2)}.prefs,.note-pop,.toc-sheet{opacity:0;filter:blur(3px);pointer-events:none;transform-origin:var(--origin,50% 0);transition:opacity .14s var(--ease-in), scale .16s var(--ease-in), filter .16s var(--ease-in), translate .16s var(--ease-in), overlay .16s allow-discrete, display .16s allow-discrete;border:0;margin:0;position:fixed;inset:auto;scale:.9}:is(.prefs,.note-pop,.toc-sheet):popover-open{opacity:1;filter:blur();transition:opacity .2s var(--ease-out), scale var(--dur-smooth) var(--spring-snappy), filter .24s var(--ease-out), translate var(--dur-smooth) var(--spring-smooth), overlay var(--dur-smooth) allow-discrete, display var(--dur-smooth) allow-discrete;scale:1}:is(.prefs,.toc-sheet):popover-open{pointer-events:auto}@starting-style{:is(.prefs,.note-pop,.toc-sheet):popover-open{opacity:0;filter:blur(3px);scale:.9}}.prefs{border-radius:var(--r-lg);width:17rem;padding:.875rem}.prefs-label{font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);margin:0 0 .5rem .25rem}.prefs-label+.segmented{margin-bottom:1rem}.segmented:last-child{margin-bottom:0}.segmented{border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--line);isolation:isolate;background:var(--lightningcss-light,#3a2c1e0f) var(--lightningcss-dark,#00000040);grid-auto-columns:1fr;grid-auto-flow:column;padding:.1875rem;display:grid;position:relative}.segmented button{border-radius:calc(var(--r-md) - 3px);height:2.125rem;font:var(--type-ui);font-size:var(--step--1);color:var(--ink-3);place-items:center;display:grid;position:relative}.segmented button[aria-checked=true]{color:var(--ink)}.segmented button span{font-weight:600;line-height:1}.font-options{grid-template-columns:1fr;grid-auto-flow:row}.font-options button{justify-items:start;height:2.5rem;padding-inline:.75rem}.font-options button span{font-size:.875rem;font-weight:550}.font-options .seg-thumb{width:calc(100% - .375rem);bottom:auto}.seg-thumb{z-index:-1;border-radius:calc(var(--r-md) - 3px);background:var(--raised);width:0;box-shadow:inset 0 0 0 1px var(--line);transition:translate var(--dur-snappy) var(--spring-snappy);position:absolute;top:.1875rem;bottom:.1875rem;left:.1875rem}.note-pop{z-index:50;border-radius:var(--r-md);max-width:min(26rem,100vw - 2rem);font:400 var(--step-0) / 1.65 var(--font-text);pointer-events:none;padding:.875rem 1rem}.note-pop p{margin:0}.note-pop p+p{margin-top:.5em}.note-pop a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:.2em}.note-pop code{font:500 var(--em-small) var(--font-mono)}.toc-sheet{top:calc(var(--head-room) + .25rem);width:min(25rem,100vw - 1.5rem);max-height:min(34rem, calc(100dvh - var(--head-room) - 2rem));overscroll-behavior:contain;border-radius:var(--r-lg);font:var(--type-ui);padding:.75rem 1.125rem 1rem;font-weight:400;left:50%;overflow-y:auto;translate:-50%}.toc-sheet .toc-label{margin:.25rem 0 .5rem}.toc-sheet a[aria-current]{color:var(--accent);font-weight:550}.sheet-grip{display:none}@media (width<=40rem){.toc-sheet{width:100%;max-height:72dvh;padding:.5rem 1.25rem max(1.25rem, env(safe-area-inset-bottom));filter:none;touch-action:none;border-radius:22px 22px 0 0;top:auto;bottom:0;left:0;translate:0 100%;scale:1}.toc-sheet:popover-open{translate:0;scale:1}@starting-style{.toc-sheet:popover-open{filter:none;translate:0 100%;scale:1}}.toc-sheet ol{touch-action:pan-y}.sheet-grip{background:var(--ink-4);opacity:.6;border-radius:3px;width:2.25rem;height:.3125rem;margin:.125rem auto .625rem;display:block}}.toc-sheet::backdrop{background:0 0}.toast{left:50%;bottom:max(1.5rem, env(safe-area-inset-bottom));z-index:70;border-radius:var(--r-pill);font:var(--type-ui);color:var(--ink);pointer-events:none;opacity:0;filter:blur(4px);transition:opacity .18s var(--ease-in), translate .22s var(--ease-in), scale .22s var(--ease-in), filter .18s var(--ease-in);align-items:center;gap:.5rem;padding:.625rem 1.125rem .625rem .875rem;display:inline-flex;position:fixed;translate:-50% 1.25rem;scale:.92}.toast.show{opacity:1;filter:none;transition:opacity .2s var(--ease-out), translate var(--dur-snappy) var(--spring-snappy), scale var(--dur-bouncy) var(--spring-bouncy), filter .25s var(--ease-out);translate:-50%;scale:1}.toast-icon{width:1.375rem;height:1.375rem;color:var(--raised);background:var(--accent);border-radius:50%;place-items:center;display:grid}.toast-icon svg{width:.8125rem;height:.8125rem}.toast-icon path{stroke-dasharray:1;stroke-dashoffset:1px}.toast.show .toast-icon path{stroke-dashoffset:0;transition:stroke-dashoffset .4s var(--ease-out) .12s}.toast.error .toast-icon{background:var(--danger)}.search{top:var(--search-viewport-top,0px);width:min(40rem,100vw - 2rem);max-height:min(34rem, var(--search-viewport-height,100dvh) - 6rem);border-radius:var(--r-lg);color:var(--ink-2);background:var(--frost), var(--glass-sheen), var(--glass-tint-strong);backdrop-filter:blur(24px)saturate(1.8);box-shadow:var(--glass-edge), var(--shadow-float);transform-origin:var(--origin,50% 0);opacity:0;pointer-events:none;transition:opacity .12s var(--ease-out), scale .12s var(--ease-out), translate .12s var(--ease-out), overlay .12s allow-discrete, display .12s allow-discrete;border:0;margin:12vh auto auto;padding:0;overflow:hidden;translate:0 -6px;scale:.96}.search[open]{opacity:1;pointer-events:auto;transition-duration:.18s, var(--dur-snappy), var(--dur-snappy), var(--dur-snappy), var(--dur-snappy);flex-direction:column;display:flex;translate:0;scale:1}.search::backdrop{backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .12s var(--ease-out), overlay .12s allow-discrete, display .12s allow-discrete;background:var(--lightningcss-light,#3a2c1e24) var(--lightningcss-dark,#00000073)}.search[open]::backdrop{opacity:1;pointer-events:auto}.search.instant,.search.instant::backdrop{transition:none}@starting-style{.search[open]{opacity:0;translate:0 -10px;scale:.94}.search[open]::backdrop{opacity:0}}.search-field{border-bottom:1px solid var(--line);color:var(--ink-3);flex-shrink:0;align-items:center;gap:.75rem;padding:0 .375rem 0 1.125rem;display:flex}.search-close{border-radius:var(--r-sm);height:2.75rem;color:var(--ink-3);flex:0 0 2.75rem;place-items:center;display:grid}.search-close:hover{background:var(--hover-wash);color:var(--ink)}.search-close>.icon{display:none}@media (width<=40rem),(pointer:coarse){.search-close>kbd{display:none}.search-close>.icon{display:block}}.search-field input{min-width:0;height:3.5rem;color:var(--ink);font:400 var(--step-2) / 1 var(--font-text);caret-color:var(--accent);background:0 0;border:0;outline:0;flex:1}.search-field input::placeholder{color:var(--ink-3)}.search-field input::-webkit-search-cancel-button{display:none}.search-results{overscroll-behavior:contain;flex:1;min-height:0;padding:.5rem;scroll-padding-block:.5rem;position:relative;overflow-y:auto}.search-results:empty{display:none}.search-cursor{height:var(--h,0);translate:0 var(--y,0);border-radius:var(--r-md);background:var(--raised);box-shadow:0 0 0 1px var(--line), 0 2px 8px -2px var(--lightningcss-light,#3a2c1e1f) var(--lightningcss-dark,#0006);pointer-events:none;transition:translate var(--dur-snappy) var(--spring-snappy), height var(--dur-snappy) var(--spring-snappy);position:absolute;top:0;left:.5rem;right:.5rem}.search-cursor.instant{transition:none}.search-group{font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);margin:.25rem 0 0;padding:.5rem .75rem .375rem;position:relative}.search-item{border-radius:var(--r-md);color:var(--ink-2);grid-template-columns:1.25rem minmax(0,1fr);gap:.125rem .625rem;padding:.625rem .75rem;scroll-margin-block:.5rem;display:grid;position:relative}.search-item .icon{color:var(--ink-4);transition:color var(--t-hover);grid-row:span 2;margin-top:.1875rem}.search-item[aria-selected=true] .icon{color:var(--accent)}.search-title{font:500 var(--step-1) / 1.45 var(--font-text);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:.5rem;display:flex;overflow:hidden}.search-title small{max-width:45%;font:var(--type-meta);color:var(--ink-3);text-overflow:ellipsis;flex:0 2 auto;overflow:hidden}.search-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.search-snippet{font:var(--type-meta);color:var(--ink-3);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.search mark{color:var(--ink);background:var(--mark);border-radius:3px;padding:0 .1em}@keyframes result-in{0%{opacity:0;translate:0 6px}}.search-results.fresh>:not(.search-cursor){animation:result-in var(--dur-smooth) var(--spring-smooth) both;animation-delay:calc(min(var(--i,0), 8) * 24ms)}.search-empty{text-align:center;font:var(--type-ui);color:var(--ink-3);padding:2.5rem 1rem;font-weight:400}.search-foot{border-top:1px solid var(--line);font:var(--type-meta);font-size:var(--step--2);color:var(--ink-3);align-items:center;gap:1rem;padding:.625rem 1rem;display:flex}.search-foot span{align-items:center;gap:.375rem;display:inline-flex}.search-foot .count{font-variant-numeric:tabular-nums;margin-left:auto}@media (width<=40rem){.search{max-height:calc(var(--search-viewport-height,100dvh) - 1.5rem);margin-top:.75rem}.search-foot .hint{display:none}}@keyframes rise{0%{opacity:0;translate:0 10px}}@keyframes rise-title{0%{opacity:0;filter:blur(5px);translate:0 12px}}@keyframes rise-index{0%{opacity:0;translate:0 4px}}@media (prefers-reduced-motion:no-preference){.js [data-reveal]{animation:rise .7s var(--spring-gentle) both;animation-delay:calc(min(var(--i,0), 12) * 38ms + 90ms)}.js [data-reveal=title]{animation-name:rise-title}.js .page-index [data-reveal]{animation-name:rise-index;animation-duration:.2s;animation-timing-function:var(--ease-out);animation-delay:calc(min(var(--i,0), 5) * 8ms)}}@media (prefers-reduced-motion:reduce){*,:before,:after,::backdrop{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-delay:0s!important}}@media (-webkit-device-pixel-ratio>=2),(resolution>=2x){.post-head,.page-head,.foot-row,.related a,.footer-mark{border-width:.5px}}@media print{.site-header,.site-footer,.toc,.toc-inline,.pager,.related,.share,.code-copy,.code-fold,.anchor,.toast{display:none!important}html,body{color:#000;background:#fff}.page{padding:0}.column{max-width:none;padding:0}.code pre{white-space:pre-wrap;max-height:none!important}.js .prose .code.folded .code-tail{display:inline}}
