:root{--font-symbols: "Symbols Nerd Font Mono";--font-serif: var(--font-symbols), serif;--font-sans-serif: "Helvetica Neue", Helvetica, Arial, system-ui, var(--font-symbols), sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", var(--font-symbols), monospace;--font-handwritten: "Bradley Hand", XingKai SC, var(--font-symbols), cursive;--article-font-size: .9375rem;--article-font-family: var(--font-sans-serif);--font-weight-regular: 400;--font-weight-semibold: 550;--font-weight-bold: 700;--type-display-size: clamp(calc(var(--article-font-size) * 2.5), calc(var(--article-font-size) * 2 + 2vw), calc(var(--article-font-size) * 4));--type-display-leading: 1.2;--type-title-size: calc(var(--article-font-size) * 1.5);--type-title-leading: 1.35;--type-subtitle-size: calc(var(--article-font-size) * 1.25);--type-subtitle-leading: 1.4;--type-body-size: var(--article-font-size);--type-body-leading: 1.6;--type-caption-size: calc(var(--article-font-size) * 12 / 13);--type-caption-leading: calc(var(--article-font-size) * 16 / 13);--article-font-weight: var(--font-weight-regular);--article-bold-font-weight: var(--font-weight-semibold);--article-max-width: 42em;--spacing: .25rem;--prose-gap: calc(16em / 14);--prose-heading-gap: calc(32em / 14);--prose-subheading-gap: calc(24em / 14);--prose-heading-after: calc(12em / 14);--prose-caption-gap: calc(12em / 14);--prose-list-gap: calc(8em / 14);--prose-divider-gap: calc(32em / 14);--radius: 12px;--radius-sm: 8px;--rule: color-mix(in oklab, var(--title-text-color) 10%, transparent);--rule-strong: var(--title-text-color);--edge-color: color-mix(in oklab, var(--title-text-color) 14%, transparent);--shadow-soft: 0 1px 2px rgb(0 0 0 / .04), 0 16px 40px -20px rgb(0 0 0 / .24);--hover-fill: color-mix(in oklab, var(--title-text-color) 6%, transparent);--focus-ring: 1px solid var(--title-text-color);--navbar-height: 3.5rem;--page-margin: clamp(1.25rem, 2.5vw, 2.5rem);--font-label: var(--font-sans-serif);--label-size: .6875rem;--label-tracking: .08em;--label-weight: 500;--ease-out: cubic-bezier(.22, 1, .36, 1);--scroll-reveal-duration: .5s;--scroll-reveal-distance: 8px;&[data-article-font-size=small]{--article-font-size: .8125rem}&[data-article-font-size=medium-small]{--article-font-size: .875rem}&[data-article-font-size=medium-large]{--article-font-size: 1rem}&[data-article-font-size=large]{--article-font-size: 1.0625rem}&[data-article-font-family=sans-serif]{--article-font-family: var(--font-sans-serif)}&[data-article-font-family=serif]{--article-font-family: var(--font-serif)}&[data-article-font-family=mono]{--article-font-family: var(--font-mono)}&[data-article-font-family=handwriting]{--article-font-family: var(--font-handwritten)}&[data-article-font-weight=light]{--article-font-weight: 300}&[data-article-font-weight=medium]{--article-font-weight: 500}&[data-article-width=narrow]{--article-max-width: 42em}&[data-article-width=medium-narrow]{--article-max-width: 46em}&[data-article-width=medium]{--article-max-width: 50em}&[data-article-width=medium-wide]{--article-max-width: 56em}&[data-article-width=wide]{--article-max-width: 64em}&[data-article-spacing=compact]{--spacing: .1875rem;--prose-gap: calc(12em / 14);--prose-heading-gap: calc(24em / 14);--prose-subheading-gap: calc(20em / 14);--prose-heading-after: calc(8em / 14);--prose-caption-gap: calc(8em / 14);--prose-list-gap: calc(4em / 14);--prose-divider-gap: calc(24em / 14)}&[data-article-spacing=relaxed]{--spacing: .3125rem;--prose-gap: calc(20em / 14);--prose-heading-gap: calc(40em / 14);--prose-subheading-gap: 2em ;--prose-heading-after: calc(16em / 14);--prose-caption-gap: calc(16em / 14);--prose-list-gap: calc(12em / 14);--prose-divider-gap: calc(40em / 14)}}:where([data-theme]){&:where([data-theme=latte]){color-scheme:light;--rosewater: #dc8a78;--mauve: #8839ef;--red: #d20f39;--peach: #fe640b;--yellow: #df8e1d;--green: #40a02b;--teal: #179299;--blue: #1e66f5;--lavender: #7287fd;--title-text-color: #35384b;--sub-text-color: #50546b;--surface0: #dce0e8;--surface1: #ccd0da;--overlay0: #acb0be;--overlay1: #9ca0b0;--base: #eff1f5;--mantle: #e6e9ef}&:where([data-theme=rose_pine]){color-scheme:dark;--rosewater: #f6c177;--mauve: #c4a7e7;--red: #eb6f92;--peach: #f2cdcd;--yellow: #f6c177;--green: #9ccfd8;--teal: #31748f;--blue: #9ccfd8;--lavender: #c4a7e7;--title-text-color: #e8e3f3;--sub-text-color: #c6c1d4;--surface0: #302c40;--surface1: #3e394f;--overlay0: #645d78;--overlay1: #78718b;--base: #191726;--mantle: #161422}&:where([data-theme=nord]){color-scheme:light;--rosewater: #bf616a;--mauve: #b48ead;--red: #bf616a;--peach: #d08770;--yellow: #ebcb8b;--green: #a3be8c;--teal: #8fbcbb;--blue: #81a1c1;--lavender: #5e81ac;--title-text-color: #2e3440;--sub-text-color: #4c566a;--surface0: #d8dee9;--surface1: #c9d1dd;--overlay0: #a2afc1;--overlay1: #8e9baf;--base: #eceff4;--mantle: #e5e9f0}&:where([data-theme=song_ci]){color-scheme:light;--rosewater: #d8a48f;--mauve: #7f5a83;--red: #b13a2e;--peach: #d68a3a;--yellow: #c99a2e;--green: #5f8f6f;--teal: #2f7d73;--blue: #2f5597;--lavender: #6f6a9f;--title-text-color: #263f32;--sub-text-color: #46594a;--surface0: #dedfd1;--surface1: #cdd2c1;--overlay0: #a4b296;--overlay1: #8e9e80;--base: #f4efe3;--mantle: #f1efea}&:where([data-theme=mocha]){color-scheme:dark;--rosewater: #f5e0dc;--mauve: #cba6f7;--red: #f38ba8;--peach: #fab387;--yellow: #f9e2af;--green: #a6e3a1;--teal: #94e2d5;--blue: #89b4fa;--lavender: #b4befe;--title-text-color: #e1e7f6;--sub-text-color: #bac4de;--surface0: #313244;--surface1: #45475a;--overlay0: #6c7086;--overlay1: #7f849c;--base: #1e1e2e;--mantle: #181825}&:where([data-theme=tokyo_night]){color-scheme:dark;--rosewater: #f7768e;--mauve: #bb9af7;--red: #f7768e;--peach: #ff9e64;--yellow: #e0af68;--green: #9ece6a;--teal: #1abc9c;--blue: #7aa2f7;--lavender: #82aaff;--title-text-color: #d5defa;--sub-text-color: #b0bddf;--surface0: #292d41;--surface1: #363c54;--overlay0: #59637f;--overlay1: #6b7694;--base: #1a1b26;--mantle: #16161e}&:where([data-theme=nord_night]){color-scheme:dark;--rosewater: #b48ead;--mauve: #b48ead;--red: #bf616a;--peach: #d08770;--yellow: #ebcb8b;--green: #a3be8c;--teal: #8fbcbb;--blue: #5e81ac;--lavender: #81a1c1;--title-text-color: #eceff4;--sub-text-color: #c0c8d4;--surface0: #3b4252;--surface1: #434c5e;--overlay0: #606d82;--overlay1: #738198;--base: #2e3440;--mantle: #292e39}&:where([data-theme=mono_light]){color-scheme:light;--rosewater: #8c5a4d;--mauve: #674689;--red: #9a3936;--peach: #E88AA0;--yellow: #8c6c1f;--green: #397247;--teal: #1f7265;--blue: #2e598f;--lavender: #4e508e;--title-text-color: lab(2.75381% 0 0);--sub-text-color: lab(48.496% 0 0);--surface0: #e5e5e5;--surface1: #d4d4d4;--overlay0: #a6a6a6;--overlay1: #929292;--base: #fff;--mantle: #fff}&:where([data-theme=mono_dark]){color-scheme:dark;--rosewater: #e2b9af;--mauve: #c5a9e6;--red: #ef958e;--peach: #e9b082;--yellow: #e6c686;--green: #99cda3;--teal: #8bcdbf;--blue: #95baea;--lavender: #adb2ea;--title-text-color: #e8e8e8;--sub-text-color: #999;--surface0: #242424;--surface1: #333333;--overlay0: #575757;--overlay1: #686868;--base: #000;--mantle: #000}}body{background:var(--mantle);color:var(--sub-text-color);min-height:100%;line-height:1.7;display:flex;flex-direction:column;font-synthesis:none;font-family:var(--font-sans-serif);-moz-font-feature-settings:"kern";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(h1,h2,h3,h4,h5,h6){color:var(--title-text-color)}a{color:var(--title-text-color);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em;&:hover{color:var(--sub-text-color)}}mark{background-color:var(--yellow)}hr{border:none;display:block;margin:1.5rem 0;background:transparent;border-top:1px solid var(--rule-strong)}.surface{position:relative;border-radius:var(--radius);background-color:var(--base);box-shadow:0 0 0 .5px var(--edge-color),var(--shadow-soft)}.surface-button{cursor:pointer;transition:background-color .12s ease,color .12s ease;@media(hover:hover){&:hover{background-color:var(--hover-fill)}}&:active{background-color:var(--title-text-color);color:var(--base)}}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/bold-italic.woff2) format("woff2");font-style:italic;font-weight:700;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book.woff2) format("woff2");font-style:normal;font-weight:450;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book-bold.woff2) format("woff2");font-style:normal;font-weight:450;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book-bold-italic.woff2) format("woff2");font-style:italic;font-weight:450;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book-italic.woff2) format("woff2");font-style:italic;font-weight:450;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book-medium.woff2) format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book-medium-italic.woff2) format("woff2");font-style:italic;font-weight:500;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book-semi-bold.woff2) format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/book-semi-bold-italic.woff2) format("woff2");font-style:italic;font-weight:600;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/extra-bold.woff2) format("woff2");font-style:normal;font-weight:800;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/extra-bold-italic.woff2) format("woff2");font-style:italic;font-weight:800;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/medium.woff2) format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/medium-italic.woff2) format("woff2");font-style:italic;font-weight:500;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/main.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Gentium;src:url(https://fontsapi.zeoseven.com/2105/semi-bold-italic.woff2) format("woff2");font-style:italic;font-weight:600;font-display:swap}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-common.62e14a96.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+26A1,U+E5FF,U+E60B,U+E626,U+E628,U+E62A,U+E697,U+E69F-E6A0,U+E71E,U+E73C,U+E749,U+E74E,U+E758,U+E781,U+E7A8,U+E7BA,U+F013,U+F016,U+F023,U+F02D,U+F03D,U+F07B,U+F0B3,U+F109,U+F120,U+F13B-F13C,U+F15B,U+F1C1,U+F1C5,U+F1D3,U+F2DB,U+F308,U+F410,U+F469,U+F481,U+F489-F48A,U+F4BC,U+F4D2,U+F0150,U+F02CA,U+F035B,U+F03D6,U+F04E1,U+F09E8,U+F0A5F}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-u2300.005c42ca.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+23FB-23FE}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-u2600.5594bea0.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+2630,U+2665}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-u2700.f83dfd7e.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+276C-2771}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-u2b00.591288c9.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+2B58}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue000.3b5e5b2f.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E000-E00A,U+E0A0-E0A3,U+E0B0-E0C8,U+E0CA,U+E0CC-E0D2,U+E0D4,U+E0D6-E0D7}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue200.947321e6.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E200-E2A9}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue300.982537ef.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E300-E3E3}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue500.2e9483e3.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E5FA-E5FE}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue600.f5a41bcd.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E600-E60A,U+E60C-E625,U+E627,U+E629,U+E62B-E696,U+E698-E69E,U+E6A1-E6B8}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue700-a.f0ab451a.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E700-E71D,U+E71F-E73B,U+E73D-E748,U+E74A-E74D,U+E74F-E757,U+E759-E780}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue700-b.bca8ac93.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E782-E7A7,U+E7A9-E7B9,U+E7BB-E7FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue800-a.78834523.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E800-E877}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ue800-b.33a41369.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+E878-E8EF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uea00.a1967f21.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+EA60-EA88,U+EA8A-EA8C,U+EA8F-EAC7,U+EAC9,U+EACC-EAFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ueb00.c3c2d723.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+EB00-EB09,U+EB0B-EB4E,U+EB50-EBFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uec00.7b5c823c.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+EC00-EC1E}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-ued00.6cda0ff3.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+ED00-EDFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uee00.b500fbc6.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+EE00-EEFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uef00.8a49217d.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+EF00-EFCE}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf000.77b42d16.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F000-F012,U+F014-F015,U+F017-F022,U+F024-F02C,U+F02E-F03C,U+F03E-F07A,U+F07C-F0B2,U+F0B4-F0FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf100.3c48e803.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F100-F108,U+F10A-F11F,U+F121-F13A,U+F13D-F15A,U+F15C-F1C0,U+F1C2-F1C4,U+F1C6-F1D2,U+F1D4-F1FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf200.b91a9254.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F200-F2DA,U+F2DC-F2FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf300.136d982f.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F300-F307,U+F309-F381}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf400.1c8cc766.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F400-F40F,U+F411-F468,U+F46A-F480,U+F482-F488,U+F48B-F4BB,U+F4BD-F4D1,U+F4D3-F4FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf500.9adf17ef.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F500-F533}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0000.912bfa97.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0001-F00FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0100.f06b3fca.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0100-F014F,U+F0151-F01FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0200.70ddb2b4.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0200-F02C9,U+F02CB-F02FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0300.cddf6b3b.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0300-F035A,U+F035C-F03D5,U+F03D7-F03FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0400.8bcc67d2.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0400-F04E0,U+F04E2-F04FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0500.96cb0de8.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0500-F05FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0600.11b92079.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0600-F06FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0700.0bebb4e7.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0700-F07FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0800.0ca95458.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0800-F08FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0900.09d8613d.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0900-F09E7,U+F09E9-F09FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0a00.c0eb79dd.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0A00-F0A5E,U+F0A60-F0AFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0b00.c2f1407b.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0B00-F0BFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0c00.1f4bc865.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0C00-F0CFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0d00.b16f41d9.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0D00-F0DFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0e00.c8e8db59.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0E00-F0EFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf0f00.ea6cca37.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F0F00-F0FFF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1000.404d8837.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1000-F10FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1100.f45e4f6f.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1100-F11FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1200.8f10b2df.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1200-F12FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1300.0c373f78.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1300-F13FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1400.c1e566c0.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1400-F14FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1500.7a653fe0.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1500-F15FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1600.18b3cc19.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1600-F16FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1700.af9c80ec.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1700-F17FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1800.6282a94d.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1800-F18FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1900.1d378e4b.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1900-F19FF}@font-face{font-family:Symbols Nerd Font Mono;src:url(font/woff2/SymbolsNerdFontMono-uf1a00.ac999edb.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block;unicode-range:U+F1A00-F1AF0}body,dd,dl,dt,figure,h1,h2,h3,h4,h5,h6,html,iframe,legend,li,ol,p,pre,textarea{margin:0;padding:0}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box;height:100%;min-width:300px;overflow-x:hidden;overflow-y:scroll}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}:where([id],a[name]){scroll-margin-top:calc(env(safe-area-inset-top) + 1rem)}html{-webkit-tap-highlight-color:transparent}:where(button,[role=button],[role=switch],.surface-button,summary,select){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.navbar{position:sticky;top:0;box-sizing:border-box;min-height:var(--navbar-height);display:flex;align-items:center;gap:1rem;padding:env(safe-area-inset-top) var(--page-margin) 0;z-index:100;user-select:none;background:var(--mantle);transition:translate .24s var(--ease-out)}:root[data-navbar=hidden] .navbar{translate:0 -100%}@media(prefers-reduced-motion:reduce){.navbar{transition:none}}:where(.navbar) button{background:none;border:none;cursor:pointer}.navbar-brand{flex:0 0 auto;color:var(--title-text-color);font-family:var(--font-label);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;text-decoration:none;white-space:nowrap;&:hover{color:var(--sub-text-color)}}.navbar-actions{display:flex;align-items:center;gap:.25rem;margin-left:auto}.navbar-item{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:0;border-radius:var(--radius-sm);color:var(--sub-text-color);font:inherit;background:transparent;transition:color .12s ease,background-color .12s ease;&:hover{color:var(--title-text-color);background-color:var(--hover-fill)}&:focus-visible{outline:var(--focus-ring);outline-offset:-2px}&:disabled{cursor:not-allowed;opacity:.45}svg{width:18px;height:18px}}.navbar-toc{display:none}.navbar-menu{position:fixed;inset:calc(var(--navbar-height) + env(safe-area-inset-top) + .25rem) var(--page-margin) auto auto;width:14rem;height:auto;margin:0;padding:.5rem;border:0;color:inherit;translate:0 -6px;opacity:0;transition:translate .2s var(--ease-out),opacity .16s ease,display .2s allow-discrete,overlay .2s allow-discrete;&:before{content:none}}.navbar-menu:popover-open{display:grid;gap:2px;inset:calc(var(--navbar-height) + env(safe-area-inset-top) + .25rem) var(--page-margin) auto auto;width:14rem;height:auto;translate:0 0;opacity:1}@starting-style{.navbar-menu:popover-open{translate:0 -6px;opacity:0}}.navbar-menu__item{display:grid;grid-template-columns:1.5rem minmax(0,1fr);align-items:center;gap:.75rem;height:2.75rem;padding:0 .875rem;border-radius:var(--radius-sm);color:var(--sub-text-color);font-family:var(--font-label);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;text-decoration:none;transition:color .12s ease;&:hover,&.is-active{color:var(--title-text-color)}&.is-active .navbar-menu__name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}&:focus-visible{outline:var(--focus-ring);outline-offset:-2px}}.navbar-menu__index{color:inherit;opacity:.55;font-family:var(--font-mono);font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:0}.navbar-menu__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-content{flex-grow:1;box-sizing:border-box;width:100%;max-width:calc(50em + 3rem);margin:0 auto;padding:3rem 1.5rem;position:relative;counter-reset:h2-counter}.footer{user-select:none;position:relative;margin-top:5rem;padding:1.25rem var(--page-margin) calc(2rem + env(safe-area-inset-bottom));color:var(--sub-text-color);font-family:var(--font-label);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;text-align:start}.footer-brand{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem}.footer-credit,.footer-credit>a{font-size:inherit;margin:0;color:inherit}.footer a{text-decoration:none;transition:color .2s ease;&:hover{color:var(--title-text-color)}}.footer-author{color:var(--title-text-color)}.footer-meta{font-size:inherit;font-weight:400;margin:0;line-height:1.8}.footer-icp{color:inherit}::-webkit-scrollbar{display:none}article,figure,footer,header,hgroup,section{display:block}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}.gate{--gate-accent: var(--archive-accent, var(--title-text-color));display:flex;flex-direction:column;gap:.75rem;width:100%;margin:0}.gate__message{margin:0;color:var(--sub-text-color);font-family:var(--article-font-family);font-size:var(--article-font-size);line-height:var(--type-body-leading);text-align:center}.gate__field{display:flex;align-items:center;gap:.6rem;min-width:0;padding-block:.25rem;color:var(--sub-text-color);transition:color .16s var(--ease-out);&:focus-within{color:var(--gate-accent)}&:has(input:focus-visible){outline:auto;outline-offset:3px;border-radius:2px}}.gate__mark{flex:none;color:var(--gate-accent);font-family:var(--font-mono);font-size:.8125rem;line-height:1}input.gate__input{flex:1 1 auto;min-width:0;padding:.35rem 0;border:none;background:transparent;color:var(--title-text-color);font-family:var(--font-mono);font-size:.9375rem;letter-spacing:.02em;outline:none;&::placeholder{color:color-mix(in oklch,var(--sub-text-color) 75%,transparent)}@media(pointer:coarse),(max-width:768px){font-size:16px}}.gate__submit{flex:none;padding:.35rem 0;border:none;background:transparent;color:var(--sub-text-color);cursor:pointer;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.08em;transition:color .14s var(--ease-out);&:hover,&:focus-visible{color:var(--gate-accent)}}.gate__error{margin:0;color:var(--red);font-family:var(--font-mono);font-size:.8125rem;line-height:1.5}input.command-palette-input{color:inherit;background-color:transparent;font-family:inherit;font-size:14px;border:none;outline:0;flex-grow:1;min-width:0;box-sizing:border-box;padding:1em 0;&::placeholder{color:var(--sub-text-color)}}@media(pointer:coarse),(max-width:768px){input.command-palette-input{font-size:16px}}.command-palette,.command-palette-container{align-items:center;flex-direction:column;line-height:1.25em}.command-palette-container{font-size:14px;color:var(--sub-text-color);position:fixed;z-index:101;display:flex;overflow:hidden;border:.5px solid var(--edge-color);border-radius:var(--radius);width:min(640px,92vw);top:10vh;background:var(--base);box-shadow:var(--shadow-soft)}.command-palette-input-container{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;gap:.75em;padding-inline:1.25em;line-height:1.5em;min-height:3.25rem}.command-palette-input-icon{flex:0 0 auto;display:inline-flex;justify-content:center;width:1.5em;color:var(--sub-text-color)}.command-palette-input-container:has(.command-palette-scope)>.command-palette-input-icon{display:none}.command-palette-scope{flex:0 0 auto;display:inline-flex;align-items:center;gap:.3em;padding:.25em .7em .25em .5em;border:.5px solid var(--edge-color);border-radius:999px;background-color:transparent;color:var(--sub-text-color);font:inherit;font-size:.78rem;line-height:1.4;white-space:nowrap;cursor:pointer;&:hover{color:var(--title-text-color)}&:focus-visible{outline:var(--focus-ring);outline-offset:-2px}}.command-palette-body{flex-grow:1;width:100%;max-height:min(60dvh,30rem);overflow-y:auto;overscroll-behavior:contain}.command-palette-body:not(:empty){border-top:1px solid var(--rule)}.command-palette-section{&:not(:last-child){border-bottom:1px solid var(--rule)}>header{padding:.75em 1.25em .35em;font-family:var(--font-label);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--sub-text-color)}}.command-palette-item{display:flex;flex-direction:row;align-items:center;gap:.75em;width:100%;box-sizing:border-box;padding:.7em 1.25em;position:relative;border:0;background:transparent;color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer;&.active{background-color:var(--hover-fill)}&.active>.command-palette-item-icon{color:var(--title-text-color)}&:focus-visible{outline:var(--focus-ring);outline-offset:-2px}}.command-palette-item-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;color:var(--sub-text-color)}.command-palette-item--document{align-items:flex-start;>.command-palette-item-icon{height:1.25em;color:var(--sub-text-color)}}.command-palette-swatch{position:relative;width:1.05em;height:1.05em;border-radius:50%;background-color:var(--base);box-shadow:inset 0 0 0 1px var(--surface1);&:after{content:"";position:absolute;inset:30%;border-radius:50%;background-color:var(--mauve)}}.command-palette-glyph{font-size:.95em;font-weight:var(--font-weight-semibold);line-height:1;&[data-typeface=sans-serif]{font-family:var(--font-sans-serif)}&[data-typeface=serif]{font-family:var(--font-serif)}&[data-typeface=mono]{font-family:var(--font-mono)}&[data-typeface=handwriting]{font-family:var(--font-handwritten)}}.command-palette-item-content{overflow:hidden;flex-grow:1;min-width:0}.command-palette-item-title{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-semibold);color:var(--title-text-color)}.command-palette-item-preview{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--sub-text-color);font-size:.85em;margin-top:.25em}.command-palette-mark{background:transparent;color:var(--title-text-color);text-decoration:underline;text-underline-offset:.15em}.command-palette-item-hint{flex:0 0 auto;font-family:var(--font-label);font-size:var(--label-size);letter-spacing:.04em;color:var(--sub-text-color);white-space:nowrap}.command-palette-item-check,.command-palette-item-chevron{flex:0 0 auto;display:inline-flex}.command-palette-item-check{color:var(--title-text-color)}.command-palette-item-chevron{color:var(--sub-text-color)}.command-palette-section--tags{display:flex;flex-wrap:wrap;align-content:flex-start;gap:.4em .5em;padding:0 1.25em .9em;>header{flex-basis:100%}>.command-palette-item{width:auto;padding:.25em .85em;border:.5px solid var(--edge-color);border-radius:999px;background-color:transparent;&:before{content:none}.command-palette-item-title{white-space:nowrap;overflow:visible;text-overflow:clip;font-weight:400;font-size:.88em}&:hover,&.active{background-color:var(--hover-fill);border-color:var(--rule-strong)}}}.command-palette-empty{padding:1.4em 1.25em;font-size:.85rem;color:var(--sub-text-color);text-align:center}.command-palette-footer{display:flex;flex-wrap:wrap;gap:.3em 1.1em;width:100%;box-sizing:border-box;padding:.55em 1.25em;border-top:1px solid var(--rule);font-size:.68rem;color:var(--sub-text-color);white-space:nowrap;>span{display:inline-flex;align-items:center;gap:.35em}}.command-palette-key{display:inline-flex;align-items:center;justify-content:center;gap:.1em;box-sizing:border-box;min-width:1.7em;height:1.7em;padding:0 .35em;border:.5px solid var(--edge-color);border-radius:4px;background-color:transparent;color:var(--sub-text-color);font:inherit;font-family:var(--font-mono);line-height:1}:popover-open{position:fixed;width:100%;height:100%;inset:0;margin:0;border:none;background:transparent;&:before{content:"";position:fixed;inset:0;z-index:-1;background:color-mix(in oklab,var(--base) 94%,transparent)}&.command-palette{font-family:var(--font-sans-serif);line-height:0;display:flex}}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;min-inline-size:0;margin:0;padding:2px;border:0;border-radius:var(--radius-sm);box-shadow:0 0 0 .5px var(--edge-color)}.segmented__cell{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-width:2rem;min-height:2rem;padding:0 .5rem;border:0;border-radius:calc(var(--radius-sm) - 2px);color:var(--sub-text-color);background:transparent;font:var(--font-weight-semibold) .8125rem / 1.2 var(--font-sans-serif);cursor:pointer;transition:color .12s ease;&:after{content:"";position:absolute;inset:auto .4rem .2rem;height:1px;background:currentColor;opacity:0;transition:opacity .12s ease}&:hover:not(:disabled),&.is-active,&[aria-pressed=true]{color:var(--title-text-color)}&.is-active:after,&[aria-pressed=true]:after{opacity:1}&:disabled{opacity:.3;cursor:default}&:focus-visible{outline:var(--focus-ring);outline-offset:-2px}}.segmented__cell--text{font-size:.75rem;text-transform:none}.font-type-preview{font-family:var(--font-type-preview-family, var(--font-sans-serif));font-size:.875rem;line-height:1}.font-type-btn[data-font=serif]{--font-type-preview-family: var(--font-serif)}.font-type-btn[data-font=mono]{--font-type-preview-family: var(--font-mono)}.font-type-btn[data-font=handwriting]{--font-type-preview-family: var(--font-handwritten)}.preference-popup{--quick-motion-duration: .2s;--quick-closed-offset: 0 -6px;position:fixed;inset:auto;top:calc(var(--navbar-height) + env(safe-area-inset-top) + .25rem);right:var(--page-margin);z-index:1000;box-sizing:border-box;width:min(19rem,calc(100vw - 2rem));height:auto;max-height:calc(100dvh - var(--navbar-height) - env(safe-area-inset-top) - 2rem);margin:0;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none;color:var(--sub-text-color);translate:var(--quick-closed-offset);opacity:0;pointer-events:none;transition:translate var(--quick-motion-duration) var(--ease-out),opacity .16s ease,display var(--quick-motion-duration) allow-discrete,overlay var(--quick-motion-duration) allow-discrete;&:before{content:none}}.preference-popup:popover-open{translate:0 0;opacity:1;pointer-events:auto}@starting-style{.preference-popup:popover-open{translate:var(--quick-closed-offset);opacity:0}}.preference-popup::backdrop{background:transparent}.preference-quick{box-sizing:border-box;display:grid;gap:.125rem;padding:.5rem .75rem;font-family:var(--font-sans-serif)}.preference-quick__row{display:grid;grid-template-columns:3.5rem minmax(0,1fr);align-items:center;gap:.75rem;min-height:2.75rem}.preference-quick__label,.preference-quick__link{color:var(--sub-text-color);font-family:var(--font-label);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase}.preference-quick__row>.segmented{justify-self:end}.preference-quick__link{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:2.5rem;margin:.375rem -.75rem -.5rem;padding:0 .75rem;border-top:1px solid var(--rule);border-radius:0 0 var(--radius) var(--radius);text-decoration:none;transition:color .12s ease;&:hover{color:var(--title-text-color)}&:focus-visible{outline:var(--focus-ring);outline-offset:-2px}}@media(prefers-reduced-motion:reduce){.preference-popup,.preference-popup:popover-open{translate:none;transition:none}}
