:root{--palette-accent: var(--red);--surface: white;--surface-raised: white;--surface-code: #f4f5f6;--ink: #282828;--ink-strong: #3c3836;--ink-medium: #504945;--ink-soft: #726f6d;--ink-faint: #6e6d6d;--ink-ghost: #9b9b9b;--red: #b53320;--green: #88a842;--yellow: #b57614;--blue: #3a8fc4;--purple: #8f3f71;--hover-surface: rgba(128, 128, 128, .12);--hairline: rgba(0, 0, 0, .08);--surface-card: #f9f9f8;--ink-subtle: #86868b;--red-rgb: 181, 51, 32;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-ui-fallback: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-body: "Lora", Georgia, serif;--font-code: "JetBrains Mono", "SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace;--font-brand: "Chakra Petch", sans-serif;--header-height: 56px;--prose-width: 660px;--margin-note-width: 250px;--margin-note-gap: 56px;--toc-width: 220px;--toc-gap: 40px;--astro-code-color-text: #3c3836;--astro-code-color-background: transparent;--astro-code-token-constant: #CB071D;--astro-code-token-string: #7EAC21;--astro-code-token-string-expression: #7EAC21;--astro-code-token-comment: #6F7D8D;--astro-code-token-keyword: #0277AA;--astro-code-token-parameter: #3c3836;--astro-code-token-function: #0277AA;--astro-code-token-statement: #CB071D;--astro-code-token-type: #CB071D;--astro-code-token-class: #a47d00;--astro-code-token-variable: var(--ink);--astro-code-token-property: #c44d5a;--astro-code-token-punctuation: color-mix(in srgb, #3c3836 85%, white);--astro-code-token-operator: color-mix(in srgb, #3c3836 70%, transparent);--astro-code-token-entity: #1b8ea6}html.dark{--surface: #000000;--surface-raised: #1a1a1a;--surface-code: #1a1a1a;--ink: #ffffff;--ink-strong: #f0f0f0;--ink-medium: #e0e0e0;--ink-soft: #c8c8c8;--ink-faint: #b8b8b8;--ink-ghost: #a8a8a8;--red: #e74c3c;--green: #8ec07c;--yellow: #fabd2f;--blue: #5fb6de;--purple: #d3869b;--hover-surface: rgba(255, 255, 255, .08);--hairline: rgba(255, 255, 255, .12);--surface-card: #0d0d0d;--ink-subtle: #6e6e73;--astro-code-color-text: #c8c8c8;--astro-code-color-background: transparent;--astro-code-token-constant: #ff7a86;--astro-code-token-string: #b6d968;--astro-code-token-string-expression: #b6d968;--astro-code-token-comment: #9aa9b7;--astro-code-token-keyword: #5fb6de;--astro-code-token-parameter: #c8c8c8;--astro-code-token-function: #5fb6de;--astro-code-token-statement: #ff7a86;--astro-code-token-type: #ff7a86;--astro-code-token-class: #ffd36e;--astro-code-token-variable: var(--ink);--astro-code-token-property: #ff9bb3;--astro-code-token-punctuation: color-mix(in srgb, #c8c8c8 85%, white);--astro-code-token-operator: color-mix(in srgb, #c8c8c8 70%, transparent);--astro-code-token-entity: #95e3f2}@supports (color: oklch(0% 0 0)){:root{--red: oklch(51.7% .17 31.4);--green: oklch(68.6% .134 124.6);--yellow: oklch(61.8% .128 70.7);--blue: oklch(62.2% .114 239.8);--purple: oklch(48.9% .124 344.3)}html.dark{--red: oklch(63.1% .194 29.4);--green: oklch(75.6% .108 137.7);--yellow: oklch(83.2% .159 83);--blue: oklch(73.8% .102 230.2);--purple: oklch(70.5% .098 2.2)}}[data-palette=gruvbox-brick]{--palette-accent: #AD2111;--palette-accent-dark: #fb4934;--palette-sequential: #130000 #470401 #811408 #a94738 #d27464 #faa191 #ffe0da;--palette-diverging: #0e9ee4 #77beed #badcf5 #ffffff #fed4bc #fead7c #fe8019}[data-palette=asterisk-science]{--palette-accent: #b06319;--palette-accent-dark: #f08823;--palette-sequential: #0d0400 #371a02 #683705 #935b2c #bb855b #e3b08a #fee2cd;--palette-diverging: #1565a2 #6896c1 #b0c7de #ffffff #fae6d0 #f8d2a5 #f6bd77}[data-palette=asterisk-gold]{--palette-accent: #9c6e0b;--palette-accent-dark: #fab013;--palette-sequential: #0a0500 #301f00 #5c3f00 #856429 #ad8d59 #d5b788 #fee4bb;--palette-diverging: #585c90 #8a8eb3 #c0c3d7 #ffffff #dfd7bd #c5b580 #ac933e}[data-palette=asterisk-california]{--palette-accent: #178554;--palette-accent-dark: #2cb875;--palette-sequential: #000803 #022b18 #055332 #367a56 #65a27f #94cbaa #c4f6d7;--palette-diverging: #0b86b0 #70adc9 #b6d3e2 #ffffff #f7d2b9 #f0a876 #e57d1d}[data-palette=asterisk-origins]{--palette-accent: #2e7ea8;--palette-accent-dark: #3797c8;--palette-sequential: #00070e #012639 #044b6a #3b7190 #6899b7 #96c3df #d0edfe;--palette-diverging: #2a8c5f #77b090 #b9d5c4 #ffffff #d6bdd4 #b181ae #8b4789}[data-palette=asterisk-risk]{--palette-accent: #826aaf;--palette-accent-dark: #a87fe0;--palette-sequential: #0a001a #2a1449 #4c396d #716092 #9889b9 #c2b3e1 #ebe3ff;--palette-diverging: #f7b047 #f9ca8b #fae2c4 #ffffff #b1c9e9 #6a98d6 #1b65bf}[data-palette=asterisk-food]{--palette-accent: #c44a7c;--palette-accent-dark: #e65792;--palette-sequential: #120006 #450223 #781a45 #a0486a #c87492 #f1a1bc #fedee8;--palette-diverging: #fdca09 #fcdb80 #fbebc0 #ffffff #b1c9e9 #6a98d6 #1b65bf}[data-palette=anthropic-clay]{--palette-accent: #c6613f;--palette-accent-dark: #d97757;--palette-sequential: #110200 #411000 #75290d #9c533b #c47e67 #edaa94 #fee1d7;--palette-diverging: #6a9bcc #9abadc #c9daec #ffffff #eedcd0 #e2bfa8 #d4a27f}html.dark [data-palette=gruvbox-brick]{--palette-sequential: #620a03 #8b170b #af3324 #d44c3b #fa6651 #ff9a89 #ffc9bf;--palette-diverging: #0e9ee4 #1e6893 #1a374a #000000 #522f19 #a4561f #fe8019}html.dark [data-palette=asterisk-science]{--palette-sequential: #4e2703 #713b02 #95510d #b96920 #db8439 #ff9f50 #fecca7;--palette-diverging: #2b76b4 #234f76 #192b3d #000000 #4e3f2c #9e7b50 #f6bd77}html.dark [data-palette=asterisk-gold]{--palette-sequential: #452e03 #644402 #855c0d #a77614 #cc8f13 #eeac33 #fecf87;--palette-diverging: #666aab #454870 #27283a #000000 #3b331e #71612e #ac933e}html.dark [data-palette=asterisk-california]{--palette-sequential: #053e23 #055a35 #13784a #319662 #4ab47b #63d495 #7cf4b0;--palette-diverging: #0b86b0 #1a5972 #18303a #000000 #4b2e16 #94541e #e57d1d}html.dark [data-palette=asterisk-origins]{--palette-sequential: #013850 #115170 #2b6d8f #4389af #5ba6d0 #73c4f2 #ace0ff;--palette-diverging: #2a8c5f #245d41 #1a3125 #000000 #352235 #653a63 #995496}html.dark [data-palette=asterisk-risk]{--palette-sequential: #3c245a #563c78 #715498 #8d6eb9 #ab89db #c9a5ff #e0cdff;--palette-diverging: #f7b047 #9f7336 #4f3b23 #000000 #182a44 #214c84 #2870cb}html.dark [data-palette=asterisk-food]{--palette-sequential: #5e0933 #7e244b #a03c65 #c35580 #e76e9c #fe93b9 #ffc5d7;--palette-diverging: #fdca09 #a2841f #4f431b #000000 #162b43 #204c84 #2870cb}html.dark [data-palette=anthropic-clay]{--palette-sequential: #55200d #743723 #944f39 #b56950 #d78368 #fa9e81 #fecab9;--palette-diverging: #649bd2 #456688 #283545 #000000 #493629 #90674b #df9d6e}@supports (color: oklch(0% 0 0)){[data-palette=gruvbox-brick]{--palette-accent: oklch(48.5% .178 30.6);--palette-accent-dark: oklch(66% .217 30.4)}[data-palette=anthropic-clay]{--palette-accent: oklch(60.8% .138 39);--palette-accent-dark: oklch(67.2% .131 38.7)}[data-palette=asterisk-science]{--palette-accent: oklch(57.7% .128 58);--palette-accent-dark: oklch(72.5% .163 57.9)}[data-palette=asterisk-gold]{--palette-accent: oklch(57.1% .116 78.8);--palette-accent-dark: oklch(80.7% .165 77.7)}[data-palette=asterisk-california]{--palette-accent: oklch(54.6% .121 157.8);--palette-accent-dark: oklch(69.4% .153 156.9)}[data-palette=asterisk-origins]{--palette-accent: oklch(56.3% .1 235.7);--palette-accent-dark: oklch(64.2% .114 235.1)}[data-palette=asterisk-risk]{--palette-accent: oklch(57.6% .106 299);--palette-accent-dark: oklch(67.5% .144 302.2)}[data-palette=asterisk-food]{--palette-accent: oklch(58.7% .163 357.9);--palette-accent-dark: oklch(66% .185 357.8)}}html.dark [data-palette]{--palette-accent: var(--palette-accent-dark)}*{box-sizing:border-box;margin:0;padding:0}html{overflow-y:scroll;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--ink-faint) var(--surface);scroll-padding-top:calc(var(--header-height) + 1rem);background-color:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}body{min-height:100vh;display:flex;flex-direction:column;background-color:var(--surface);color:var(--ink);margin:0;padding:0;overflow-x:clip;transition:background-color .3s ease,color .3s ease}@media (prefers-reduced-motion: reduce){body{transition:none}}#wrapper{flex:1;display:flex;flex-direction:column;padding-top:var(--header-height)}.main-container{max-width:970px;width:100%;margin:0 auto;padding:2.5rem 1rem;display:flex;justify-content:center;position:relative}.column-left{width:var(--toc-width);flex-shrink:0;position:sticky;top:calc(var(--header-height) + 2.5rem);height:fit-content;display:none}.column-center{width:100%;max-width:var(--prose-width);flex-shrink:0;min-width:0}.column-right{width:var(--margin-note-width);flex-shrink:0;margin-left:var(--margin-note-gap);display:none}@media screen and (min-width: 1024px){.column-left{display:block;margin-right:48px}}@media screen and (min-width: 1320px){.column-right{display:block}}.site-header{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;position:fixed;top:0;left:1rem;right:1rem;z-index:1002;height:var(--header-height);padding:0 1rem;background:var(--surface)}@media screen and (max-width: 768px){:root{--header-height: 52px}.site-header{left:0;right:0;padding:.75rem 1rem}.theme-toggle-btn{height:2rem;width:2rem;margin-left:1rem}#wrapper{padding-left:.33rem;padding-right:.33rem}}.brand{flex-shrink:0}.brand a,.brand a:link,.brand a:visited,.brand a:active,.brand a:hover{font-family:var(--font-brand)!important;font-style:normal!important;font-weight:500!important;font-size:17px!important;line-height:25px!important;letter-spacing:1.7px!important;color:var(--ink-faint);text-decoration:none!important;transition:opacity .3s ease-in-out}.brand a:hover{opacity:.8}.header-actions{display:flex;align-items:center;gap:0}.top-nav{display:flex;gap:1.75rem;align-items:center;font-family:var(--font-ui)}.top-nav a{font-family:var(--font-ui)!important;font-weight:400;font-style:normal;color:var(--ink-strong)!important;text-decoration:none;font-size:15px;letter-spacing:-.01em;transition:opacity .3s ease-in-out;display:flex;align-items:center;height:100%;opacity:1}.top-nav a:hover{text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:2px}body[data-palette] .top-nav a:hover{text-decoration-color:var(--palette-accent)}.theme-toggle-btn{color:var(--ink);border:none;cursor:pointer;background-color:var(--surface);padding:.5rem;border-radius:50%;transition:background-color .3s ease-in-out;display:flex;align-items:center;justify-content:center;height:2.5rem;width:2.5rem;flex-shrink:0;margin-left:1.5rem}.theme-toggle-btn:hover{background-color:var(--hover-surface)}.theme-icon{width:20px;height:20px}#sun-icon{display:none}#moon-icon,html.dark #sun-icon{display:block}html.dark #moon-icon{display:none}.hamburger{display:none;position:relative;width:40px;height:40px;border:none;background:transparent;cursor:pointer;padding:8px;margin-left:.5rem;-webkit-tap-highlight-color:transparent}.hamburger span{position:absolute;left:9px;right:9px;height:2px;background:var(--ink-soft);border-radius:2px;transition:transform .25s ease,opacity .2s ease,top .25s ease,bottom .25s ease}.hamburger span:nth-child(1){top:12px}.hamburger span:nth-child(2){top:19px}.hamburger span:nth-child(3){bottom:12px}.hamburger.is-active span:nth-child(1){top:19px;transform:rotate(45deg)}.hamburger.is-active span:nth-child(2){opacity:0}.hamburger.is-active span:nth-child(3){bottom:auto;top:19px;transform:rotate(-45deg)}.nav-drawer{position:fixed;inset:0;background:var(--surface);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease;z-index:1000;display:flex;align-items:center;justify-content:center}.nav-drawer.open{opacity:1;visibility:visible;pointer-events:auto}.nav-drawer-links{display:flex;flex-direction:column;align-items:center;gap:1.5rem;font-family:var(--font-ui);font-size:1.5rem}.nav-drawer-links a{color:var(--ink);text-decoration:none;transition:opacity .2s ease}.nav-drawer-links a:hover{opacity:.7}@media (max-width: 640px){.top-nav{display:none}.hamburger{display:inline-block}.brand a{font-size:15px!important;line-height:21px!important;letter-spacing:1px!important}}#footer{font-family:var(--font-ui);font-weight:400;font-style:normal;color:var(--ink-faint);align-items:center;display:flex;font-size:15px;letter-spacing:-.01em;flex-direction:column;margin-top:5rem;margin-bottom:1rem;padding-bottom:1rem}#footer *{font-family:inherit!important}#footer>div{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;text-align:center;gap:.5rem}#footer>div>span{padding:0}#footer>div>span>a{color:var(--ink-faint);text-decoration:none;position:relative;transition:color .3s ease-in-out,opacity .3s ease-in-out}#footer>div>span>a:after{background-color:var(--ink-faint);content:"";position:absolute;width:100%;transform:scaleX(0);height:.5px;bottom:0;left:0;transform-origin:bottom right;transition:transform .2s ease-out,opacity .3s ease-in-out;opacity:1}#footer>div>span>a:hover{color:var(--ink-soft);opacity:1}#footer>div>span>a:hover:after{transform:scaleX(1);transform-origin:bottom left;opacity:1;background-color:var(--red)}body[data-palette] #footer>div>span>a:hover:after{background-color:var(--palette-accent)}#footer>div>.footer-separator{color:var(--ink-faint)}@media (max-width: 640px){#footer{align-items:flex-start;padding-left:1rem;padding-right:1rem;padding-bottom:2rem}#footer>div{flex-direction:column;align-items:flex-start;text-align:left;width:100%;gap:1.25rem}#footer>div>span{width:100%;padding:0;font-size:15px}#footer>div>.footer-separator{display:none}}h1,h2,h3,h4,h5,h6{font-family:var(--font-body);color:var(--ink);line-height:1.4;text-wrap:balance}h1{font-size:32px;font-weight:600;margin-top:1rem;margin-bottom:.8rem}h2{font-size:1.5rem;font-weight:600;margin-top:2.8rem;margin-bottom:1rem}h3{font-size:1.3rem;font-weight:400;font-style:italic;margin-top:2.5rem;margin-bottom:.8rem}h4,h5,h6{font-weight:400;font-style:italic}h4{font-size:1rem;margin-top:1.4em;margin-bottom:.7em}p{margin-bottom:1.25rem;text-wrap:pretty}a{text-decoration:none;transition:color .3s ease-in-out,opacity .3s ease-in-out}article.content a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-faint) 30%,transparent);text-underline-offset:2px;transition:color .3s ease-in-out,text-decoration-color .3s ease-in-out}article.content a:hover{color:var(--red);text-decoration:underline;text-decoration-color:var(--red)}blockquote{border-left:2px solid color-mix(in srgb,var(--ink-faint) 50%,transparent);color:var(--ink-medium);font-style:normal;padding:.15rem 0 .15rem 1.1rem;margin:1.5rem 0 1.5rem .75rem}hr{border:none;height:0;margin:1.5rem 0;background:none}ul,ol{margin-bottom:1.2rem;padding-left:1.5rem}ul{list-style:square}ol{list-style:decimal}ol ol{list-style-type:lower-alpha}li{margin-bottom:.2rem}li::marker{color:var(--ink-soft)}strong{color:var(--ink);font-weight:700}table{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:.9rem;margin:2rem 0;border:1px solid var(--hairline);border-radius:8px;overflow:hidden}thead{background-color:var(--surface-code)}thead th{padding:.65rem 1rem;text-align:left;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:2px solid var(--hairline)}tbody td{padding:.6rem 1rem;border-bottom:1px solid var(--hairline);color:var(--ink-medium);vertical-align:top;line-height:1.5}tbody td:first-child{font-family:var(--font-code);font-size:.9rem;color:var(--red);font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background-color:var(--hover-surface)}.scientific-caption{font-family:var(--font-body);font-size:13px;line-height:1.4;text-align:center;color:var(--ink-faint);margin-top:.4rem;margin-bottom:0}#main.post article.content pre{background-color:var(--surface-code)!important;border-radius:.5rem;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;position:relative;overflow-x:auto;padding:1rem 2rem 1rem 1rem;-webkit-text-size-adjust:none;text-size-adjust:none;font-variant-ligatures:none;font-weight:400;margin:calc(1.2rem + var(--code-padding-y)) 0}#main.post article.content pre:has(code[data-lang]){padding-top:2rem}.code-block-wrapper{position:relative}button.copy-button{position:absolute;top:.5rem;right:.5rem;left:auto;background-color:transparent;color:var(--ink-faint);border:none;border-radius:.3rem;padding:.4rem;cursor:pointer;opacity:0;transition:opacity .2s ease-in-out,background-color .15s ease-in-out,color .15s ease-in-out;z-index:10;display:flex;align-items:center;gap:.25rem}.code-block-wrapper:hover .copy-button,#main.post article.content pre:hover button.copy-button{opacity:1}button.copy-button:hover{opacity:1!important;background-color:var(--hover-surface);color:var(--palette-accent)}button.copy-button svg{width:1rem;height:1rem;fill:currentColor}button.copy-button.is-copied{color:var(--palette-accent)}#main.post article.content code{color:var(--palette-accent);font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;padding:.05em .3em;font-size:.88em;text-wrap:wrap;display:inline;background-color:color-mix(in srgb,var(--palette-accent) 6%,var(--surface-code));border-radius:.2em}#main.post article.content pre code{padding:0;color:var(--ink-soft);font-family:inherit;padding:0 .8rem 0 .2rem;font-size:13px;white-space:pre;word-break:normal;overflow-wrap:normal;display:block;line-height:1.4;-webkit-text-size-adjust:none;text-size-adjust:none;letter-spacing:0;font-weight:400;background-color:transparent;border-radius:0}#main.post article.content pre code[data-lang]:before{content:attr(data-lang);position:absolute;top:.5rem;left:.75rem;z-index:5;font-family:var(--font-ui);font-weight:500;font-size:11px;letter-spacing:.02em;color:var(--palette-accent);padding:0;text-transform:lowercase;pointer-events:none}#main.post article.content pre::selection,#main.post article.content pre code::selection,#main.post article.content pre *::selection{background-color:#d0d0d0}html.dark #main.post article.content pre::selection,html.dark #main.post article.content pre code::selection,html.dark #main.post article.content pre *::selection{background-color:#ffffff80;color:var(--surface)}.katex-display{margin:2.2rem 0;overflow-x:auto;padding-block:.5rem}.katex-display .katex{font-size:100%!important;padding-bottom:.5rem}#main.post{margin-left:auto;margin-right:auto;margin-top:1.5rem;max-width:1250px;position:relative;--caption-font-size: 13px;--caption-gap: 13px;--code-padding-y: .2rem;--toc-chevron-color: color-mix(in srgb, var(--ink-faint) 65%, var(--surface) 35%);--toc-chevron-gutter: 1.3rem}#main.post .post-heading{text-align:center}#main.post .post-meta{display:flex;flex-direction:column;align-items:center;color:var(--ink-faint);font-size:14px;line-height:1.4;margin-bottom:.6rem;font-family:var(--font-ui)}#main.post .post-title{font-family:var(--font-body);font-weight:600;font-size:32px;max-width:600px;margin:0 auto 2rem;line-height:1.38}#main.post .post-subtitle{font-family:var(--font-body);font-weight:400;font-size:24px;color:var(--ink-faint);margin-top:.5rem;margin-bottom:1rem;font-style:italic}#main.post .post-heading:has(~.post-cover) .post-title{margin-bottom:0}#main.post .post-cover{text-align:center;margin:2rem 0}#main.post .post-cover .cover-image{display:block;width:100%;max-width:880px;height:auto;margin-left:auto;margin-right:auto;border-radius:8px;box-shadow:none}#main.post .post-cover.compact .cover-image{max-width:min(88%,920px)}#main.post .post-cover .cover-video{position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto}#main.post .post-cover .cover-video-poster{position:relative;width:100%;padding:0;border:none;background:none;cursor:pointer;display:block}#main.post .post-cover .cover-video-poster-image{display:block;width:100%;height:auto}#main.post .post-cover .cover-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:48px;background:#000c;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:background .2s ease;pointer-events:none}#main.post .post-cover .cover-video-play:before{content:"";display:block;width:0;height:0;border-style:solid;border-width:10px 0 10px 18px;border-color:transparent transparent transparent #fff;margin-left:4px}#main.post .post-cover .cover-video-poster:hover .cover-video-play{background:#c00}#main.post .post-cover .cover-video iframe{display:block;width:100%;aspect-ratio:16 / 9;border:none}.light-only{display:block}.dark-only,html.dark .light-only{display:none}html.dark .dark-only{display:block}html.dark #main.post article.content .blog-figure img.light-only{display:none}#main.post article.content .blog-figure img.dark-only{display:none}html.dark #main.post article.content .blog-figure img.dark-only{display:block}#main.post article.content .blog-figure{margin:2.5rem 0}#main.post article.content .blog-figure img{display:block;width:100%;height:auto;border-radius:4px}#main.post article.content a:hover{color:var(--palette-accent);text-decoration-color:var(--palette-accent)}#main.post article.content .heading-anchor:hover,#main.post article.content .heading-anchor:focus{color:var(--palette-accent)}#main.post .post-tag-chip:hover{border-color:var(--palette-accent);color:var(--palette-accent)}#main.post .paginator a:hover{text-decoration-color:var(--palette-accent)}#main.post .paginator #back-to-top:hover{text-decoration-color:var(--palette-accent)!important}#main.post .blog-figure figcaption strong{color:var(--palette-accent)}#main.post .post-layout{align-items:start;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,660px) minmax(0,1fr)}#main.post .post-layout>article.content{grid-column:2;width:100%;margin-left:auto;margin-right:auto;max-width:660px;position:relative;overflow:visible}#main.post article.content p{margin-bottom:1.25rem}#main.post article.content h1,#main.post article.content h2,#main.post article.content h3,#main.post article.content h4,#main.post article.content h5,#main.post article.content h6{position:relative}#main.post article.content h2{margin-top:2.8rem;margin-bottom:1rem}#main.post article.content h3{margin-top:2.5rem;margin-bottom:.8rem}#main.post article.content h2+h3{margin-top:1.5rem}#main.post article.content .heading-anchor{position:absolute;left:-1.3rem;top:50%;transform:translateY(-50%);color:color-mix(in srgb,var(--ink-faint) 65%,transparent);text-decoration:none;opacity:0;visibility:visible;pointer-events:auto;width:1rem;text-align:center;font-size:1em;transition:opacity .15s ease-in-out,color .15s ease-in-out;display:flex;align-items:center;justify-content:center}#main.post article.content h1:hover .heading-anchor,#main.post article.content h2:hover .heading-anchor,#main.post article.content h3:hover .heading-anchor,#main.post article.content h4:hover .heading-anchor,#main.post article.content h5:hover .heading-anchor,#main.post article.content h6:hover .heading-anchor{opacity:1;visibility:visible;pointer-events:auto}#main.post article.content .heading-anchor:hover{color:var(--palette-accent);outline:none}#main.post article.content .heading-anchor:hover,#main.post article.content .heading-anchor:focus{opacity:1;color:var(--palette-accent)}#main.post article.content .heading-anchor.is-copied{opacity:1!important;color:var(--palette-accent)}#main.post article.content .heading-anchor.was-copied{opacity:0!important;transition:opacity .15s ease}.toc-tree{--toc-chevron-color: color-mix(in srgb, var(--ink-faint) 65%, var(--surface) 35%);--toc-chevron-gutter: 1.3rem;font-family:var(--font-ui);font-size:13px;line-height:1.4;color:var(--ink-medium);padding-left:var(--toc-chevron-gutter)}.toc-tree ul{list-style:none;padding-left:0;margin:0}.toc-tree li{margin:0 0 .7rem;position:relative}.toc-tree ul ul{padding-left:.75rem;margin-top:.35rem}.toc-tree a{color:var(--ink-faint);text-decoration:none;transition:color .2s ease-in-out,opacity .2s ease-in-out;position:relative}.toc-tree a:hover{color:var(--ink-strong);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-strong) 20%,var(--surface) 20%);text-underline-offset:2px}.toc-tree a.is-active,.toc-tree a[aria-current=location]{color:var(--palette-accent)}.toc-tree a:focus-visible{outline:none;color:var(--ink-strong);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-strong) 30%,var(--surface) 30%);text-underline-offset:2px}.toc-tree .toc-item.has-active-descendant>a{color:var(--ink-medium)}.toc-tree .toc-item.is-current>a{color:var(--palette-accent)}.toc-tree .toc-expander{align-items:center;appearance:none;background:transparent;border:0;border-radius:4px;color:var(--ink-faint);cursor:pointer;display:flex;font:inherit;height:1.4em;justify-content:center;left:calc(-1 * var(--toc-chevron-gutter) + .15rem);line-height:1;opacity:0;padding:0;position:absolute;top:0;transition:box-shadow .2s ease-in-out,color .2s ease-in-out,opacity .2s ease-in-out;width:1rem;z-index:1}.toc-tree .toc-item.has-children:hover>.toc-expander,.toc-tree .toc-expander:focus-visible{color:var(--toc-chevron-color);opacity:1}.toc-tree .toc-expander:focus-visible{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-faint) 55%,transparent);outline:none}.toc-tree .toc-expander-icon{display:block;font-size:1.1em;transform:translate(-1px,-.5px);transition:transform .2s ease-in-out}.toc-tree .toc-item.is-expanded>.toc-expander .toc-expander-icon{transform:rotate(90deg) translate(-1px)}.toc-tree .toc-item.has-children>.toc-children{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .28s ease-in-out,opacity .2s ease-in-out,margin-top .28s ease-in-out;margin-top:0}.toc-tree .toc-item.has-children>.toc-children>ul{overflow:hidden;min-height:0}.toc-tree .toc-item.has-children.is-expanded>.toc-children{grid-template-rows:1fr;opacity:1;margin-top:.35rem}.toc-tree .toc-level-2{padding-left:.75rem;margin-top:0}.toc-tree .toc-level-3{padding-left:1.25rem;color:var(--ink-faint)}#main.post .toc-sidebar{box-sizing:border-box;grid-column:1;justify-self:end;position:sticky;top:calc(var(--header-height) + 2rem);width:calc(var(--toc-width) + var(--toc-chevron-gutter));max-height:calc(100vh - var(--header-height) - 3rem);margin:0 var(--toc-gap) 0 0;overflow-y:auto;scrollbar-width:none;z-index:1;opacity:0;transition:opacity .3s ease-in-out,visibility 0s linear .3s;visibility:hidden}#main.post .toc-sidebar.is-revealed{opacity:1;transition:opacity .3s ease-in-out,visibility 0s linear 0s;visibility:visible}#main.post .toc-sidebar::-webkit-scrollbar{display:none}#main.post .toc-sidebar.is-hidden{opacity:0;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s;visibility:hidden}sup.sidenote-ref{display:inline-block;max-height:2rem;cursor:pointer;font-family:var(--font-body);font-size:.75rem;vertical-align:super;color:var(--palette-accent);margin-left:.05em;pointer-events:auto}#main.post .sidenote{display:none;margin:.6rem 0 1.2rem;padding:.6rem 0 .6rem 1.25rem;border-left:2px solid var(--hairline);font-size:.88rem;line-height:1.45;color:var(--ink-soft);clear:both;position:relative}#main.post .sidenote:before{content:attr(data-number) ". ";font-family:var(--font-body);font-size:.85rem;color:var(--palette-accent);font-weight:500}#main.post .sidenote[data-collapsed=false]{display:block}@media (min-width: 1024px) and (max-width: 1319px){sup.sidenote-ref{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-faint) 30%,transparent);text-underline-offset:2px}sup.sidenote-ref:hover{color:var(--ink-strong);text-decoration-color:var(--ink-strong)}}@media (min-width: 1320px){sup.sidenote-ref{pointer-events:none}#main.post .sidenote{float:right;clear:right;display:block;width:var(--margin-note-width);margin-right:calc(-1 * var(--margin-note-width) - var(--margin-note-gap));margin-left:var(--margin-note-gap);margin-top:.3rem;margin-bottom:20px;font-size:.9rem;line-height:1.4;position:relative;border-left:none;padding:0}#main.post .sidenote:before{content:attr(data-number) ". ";font-family:var(--font-body);font-size:.8rem;top:-.1rem;padding-right:.2rem}}#main.post .paginator{max-width:660px;margin-left:auto;margin-right:auto;font-family:var(--font-ui);display:grid;grid-template-columns:repeat(3,1fr);align-items:center;font-size:15px;width:100%;margin-top:2.5rem}#main.post .paginator a{font-family:var(--font-ui)!important;color:var(--ink-faint);text-decoration:none;transition:color .2s ease-in-out,opacity .2s ease-in-out;position:relative;display:block;padding:.5rem 0;text-align:center}#main.post .paginator a:hover{color:var(--ink-strong);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:2px}#main.post .paginator a:first-child{text-align:left}#main.post .paginator a:nth-child(2){text-align:center}#main.post .paginator a:last-child{text-align:right}#main.post .paginator a:not([href]){pointer-events:none}#main.post .paginator #back-to-top:hover{color:var(--ink-strong);text-decoration:underline!important;text-decoration-color:var(--red)!important;text-underline-offset:2px!important}#main.post .paginator a[data-palette]:hover{color:var(--palette-accent);text-decoration-color:var(--palette-accent)}#main.post[data-palette] .paginator #back-to-top:hover{color:var(--palette-accent);text-decoration-color:var(--palette-accent)!important}#main.post .paginator #back-to-top{position:static;left:auto;transform:none}#main.post article.content h2#citation{margin-top:4rem}#main.post article.content h2#citation+p+pre,#main.post article.content h2#citation+p+pre+p+pre{background-color:var(--surface-code);border-radius:.5rem;padding:1rem 1.5rem;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:13px;color:var(--ink-medium);overflow-x:auto;white-space:pre;line-height:1.5;margin:1.2rem 0 1.25rem}#main.post article.content figure{margin:2.2rem 0}#main.post article.content figcaption{font-family:var(--font-ui);font-size:var(--caption-font-size);line-height:1.4;text-align:left;color:var(--ink-soft);margin-top:var(--caption-gap);margin-bottom:0}.post-tags-top{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.post-tag-chip{font-family:var(--font-ui);font-size:.72rem;font-weight:500;padding:.2rem .55rem;border-radius:100px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink-soft);text-decoration:none;transition:all .15s ease}.post-tag-chip:hover{border-color:var(--red);color:var(--red);background:none!important}.post-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem;justify-content:center}.post-tag{font-family:var(--font-ui);font-size:.72rem;font-weight:400;color:var(--ink-faint);border-bottom:none!important;transition:color .2s ease}.post-tag:hover{color:var(--ink-medium)}@media (max-width: 1279px){#main.post .toc-sidebar{display:none}#main.post .post-layout{display:block}#main.post figure figcaption{font-size:var(--caption-font-size);margin:var(--caption-gap) 0 0;color:var(--ink-soft)}#main.post article.content figure:not(.half-width){width:100%;max-width:100%;margin-left:0;margin-right:0;transform:none}#main.post article.content table{width:100%;max-width:100%;margin-left:0;margin-right:0;transform:none}#main.post{margin-left:0;margin-right:0;padding-left:1.3rem;padding-right:1.3rem;max-width:100%}#main.post article.content{margin-left:auto;margin-right:auto;max-width:min(100%,660px)}#main.post .post-cover{margin-left:auto;margin-right:auto;max-width:min(100%,820px)}#main.post .post-cover.compact .cover-image{max-width:100%}#main.post .post-cover svg{width:100%;max-width:100%;height:auto;position:static;left:auto;transform:none;padding-left:0;padding-right:0;margin-top:0}}#main.post article.content .post-inline-footnote{color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--caption-font-size);font-weight:400;line-height:1.4;margin:.15rem 0 0}#main.post article.content .post-inline-video{aspect-ratio:16 / 9;background:#000;border-radius:6px;margin:.9rem 0 1.15rem;overflow:hidden;position:relative}#main.post article.content .post-inline-video .youtube-video-poster{appearance:none;background:transparent;border:0;border-radius:inherit;color:inherit;cursor:pointer;display:block;height:100%;margin:0;overflow:hidden;padding:0;position:relative;width:100%}#main.post article.content .post-inline-video.is-youtube-video-playing .youtube-video-poster{pointer-events:none;visibility:hidden}#main.post article.content .post-inline-video .youtube-video-poster-image{display:block;height:100%;object-fit:cover;width:100%}#main.post article.content .post-inline-video .youtube-video-play{align-items:center;background:#000000d1;border-radius:999px;color:#fff;display:flex;height:clamp(46px,6vw,64px);justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:clamp(46px,6vw,64px)}#main.post article.content .post-inline-video .youtube-video-play:before{background:#ffffffd6;content:"";display:block;height:38%;margin-left:5%;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12.959 13.0371'%3E%3Cpath d='M1.30859 11.8262C1.30859 12.6367 1.76758 13.0273 2.33398 13.0273C2.57812 13.0273 2.8418 12.9492 3.0957 12.8125L12.0117 7.63672C12.7246 7.2168 12.959 6.95312 12.959 6.51367C12.959 6.07422 12.7246 5.81055 12.0117 5.39062L3.0957 0.214844C2.8418 0.078125 2.57812 0 2.33398 0C1.76758 0 1.30859 0.390625 1.30859 1.20117Z' fill='black' fill-opacity='.85'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12.959 13.0371'%3E%3Cpath d='M1.30859 11.8262C1.30859 12.6367 1.76758 13.0273 2.33398 13.0273C2.57812 13.0273 2.8418 12.9492 3.0957 12.8125L12.0117 7.63672C12.7246 7.2168 12.959 6.95312 12.959 6.51367C12.959 6.07422 12.7246 5.81055 12.0117 5.39062L3.0957 0.214844C2.8418 0.078125 2.57812 0 2.33398 0C1.76758 0 1.30859 0.390625 1.30859 1.20117Z' fill='black' fill-opacity='.85'/%3E%3C/svg%3E") center / contain no-repeat;width:38%}#main.post article.content .post-inline-video .youtube-video-poster:hover .youtube-video-play,#main.post article.content .post-inline-video .youtube-video-poster:focus-visible .youtube-video-play{background:#000000d1}#main.post article.content .post-inline-video .youtube-video-poster:focus-visible{outline:3px solid color-mix(in srgb,var(--ink) 42%,transparent);outline-offset:4px}#main.post article.content .post-inline-video iframe{border:0;display:block;height:100%;width:100%}#main.post article.content .post-inline-video[data-youtube-video] iframe{inset:0;position:absolute}#main.post .tweet-embed{margin:2rem auto;display:flex;justify-content:center;max-width:420px!important}#main.post .tweet-embed .twitter-tweet{margin:0!important;max-width:420px!important;width:420px!important}#main.post twitter-widget{margin:2rem auto!important;max-width:420px!important;width:420px!important;display:block!important}#main.post .tweet-embed iframe,#main.post .twitter-tweet-rendered,#main.post .twitter-tweet iframe,#main.post twitter-widget iframe{max-width:420px!important;width:420px!important;min-width:auto!important;margin:0 auto!important}#main.post .twitter-tweet{max-width:420px!important;width:420px!important;margin:0 auto 1.8rem!important}#main.post>twitter-widget,#main.post article.content twitter-widget{margin-left:auto!important;margin-right:auto!important;display:block!important}.toc-floating-btn{position:fixed;bottom:1.25rem;left:1.25rem;z-index:999;display:none;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:100px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink-strong);font-family:var(--font-ui);font-size:15px;line-height:1.4;font-weight:400;letter-spacing:-.01em;cursor:pointer;box-shadow:0 2px 12px #00000014;transition:all .2s ease}.toc-floating-btn:hover{border-color:var(--ink-faint);box-shadow:0 2px 16px #0000001f}.toc-floating-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-faint) 55%,transparent)}.toc-floating-btn.is-open{border-color:var(--ink-faint)}.toc-floating-card{position:fixed;bottom:3.5rem;left:1.25rem;z-index:1001;display:none;flex-direction:column;width:320px;max-height:min(70vh,600px);background:var(--surface);border:1px solid var(--hairline);border-radius:10px;box-shadow:0 8px 32px #00000024;opacity:0;transform:translateY(.5rem) scale(.98);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;visibility:hidden;overflow:hidden}.toc-floating-card.is-open{opacity:1;transform:translateY(0) scale(1);transition:opacity .18s ease,transform .18s ease,visibility 0s linear 0s;visibility:visible}.toc-floating-nav{overflow-y:auto;padding:.75rem 1rem 1rem;padding-left:calc(var(--toc-chevron-gutter) + .5rem);scrollbar-width:thin}.mobile-toc-toggle{position:fixed;bottom:1.25rem;left:1.25rem;z-index:999;display:none;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:100px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink-strong);font-family:var(--font-ui);font-size:15px;line-height:1.4;font-weight:400;letter-spacing:-.01em;cursor:pointer;box-shadow:0 2px 12px #00000014;transition:all .2s ease}.mobile-toc-toggle:hover{border-color:var(--ink-faint)}.mobile-toc-toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-faint) 55%,transparent)}.mobile-toc-panel{position:fixed;top:0;left:0;bottom:0;width:min(320px,85vw);z-index:1001;background:var(--surface);border-right:1px solid var(--hairline);transform:translate(-100%);transition:transform .25s ease;display:flex;flex-direction:column;padding:1.25rem}.mobile-toc-panel.is-open{transform:translate(0)}.mobile-toc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;font-family:var(--font-ui);font-size:15px;font-weight:400;letter-spacing:-.01em;color:var(--ink-strong)}.mobile-toc-close{background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:color .2s ease}.mobile-toc-close:hover{color:var(--ink-strong)}.mobile-toc-close:focus-visible{outline:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-faint) 55%,transparent)}.toc-drawer-nav{overflow-y:auto;scrollbar-width:thin}.mobile-toc-backdrop{position:fixed;inset:0;z-index:1000;background:#00000040;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none}.mobile-toc-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}@media (min-width: 768px) and (max-width: 1279px){.toc-floating-btn{display:inline-flex}.toc-floating-card{display:flex}}@media (max-width: 767px){.mobile-toc-toggle{display:inline-flex}}
