@layer base,utils,components;@layer base{:root{--background0: #fff;--background1: #ddd;--background2: #bbb;--background3: #999;--foreground0: #000;--foreground1: #444;--foreground2: #888;--font-size: 16px;--line-height: 1.3;--font-weight-bold: 700;--font-weight-normal: 400;--font-family: monospace;--box-border-color: var(--foreground0);--table-border-color: var(--box-border-color);--separator-color: var(--box-border-color);--separator-background: transparent}[data-webtui-theme=dark]{--background0: #000;--background1: #222;--background2: #444;--background3: #666;--foreground0: #fff;--foreground1: #ccc;--foreground2: #999}body,html{background-color:var(--background0);color:var(--foreground0);font-family:var(--font-family);font-size:var(--font-size);font-weight:var(--font-weight-normal);line-height:var(--line-height, 1.5);font-variant-ligatures:common-ligatures}*{box-sizing:border-box;margin:0;padding:0;outline:none}}@layer base{[data-webtui-theme|=gruvbox-dark]{--gb-dark-bg1: #3c3836;--gb-dark-bg2: #504945;--gb-dark-bg3: #665c54;--gb-dark-bg4: #7c6f64;--gb-dark-fg0: #fbf1c7;--gb-dark-fg1: #ebdbb2;--gb-dark-fg2: #d5c4a1;--gb-dark-fg3: #bdae93;--gb-dark-fg4: #a89984;--gb-dark-gray: #928374;--gb-red: #fb4934;--gb-green: #b8bb26;--gb-yellow: #fabd2f;--gb-blue: #83a598;--gb-purple: #d3869b;--gb-aqua: #8ec07c;--gb-orange: #fe8019;--background1: var(--gb-dark-bg1);--background2: var(--gb-dark-bg2);--background3: var(--gb-dark-bg3);--foreground0: var(--gb-dark-fg1);--foreground1: var(--gb-dark-fg2);--foreground2: var(--gb-dark-fg3)}[data-webtui-theme=gruvbox-dark-hard]{--gb-dark-bg0: #1d2021;--background0: var(--gb-dark-bg0)}[data-webtui-theme=gruvbox-dark-medium],[data-webtui-theme=gruvbox-dark],[data-webtui-theme=gruvbox]{--gb-dark-bg0: #282828;--background0: var(--gb-dark-bg0)}[data-webtui-theme=gruvbox-dark-soft]{--gb-dark-bg0: #32302f;--background0: var(--gb-dark-bg0)}[data-webtui-theme|=gruvbox-light]{--gb-light-bg1: #ebdbb2;--gb-light-bg2: #d5c4a1;--gb-light-bg3: #bdae93;--gb-light-bg4: #a89984;--gb-light-fg0: #282828;--gb-light-fg1: #3c3836;--gb-light-fg2: #504945;--gb-light-fg3: #665c54;--gb-light-fg4: #7c6f64;--gb-light-gray: #a89984;--gb-red: #cc241d;--gb-green: #98971a;--gb-yellow: #d79921;--gb-blue: #458588;--gb-purple: #b16286;--gb-aqua: #689d6a;--gb-orange: #d65d0e;--background1: var(--gb-light-bg1);--background2: var(--gb-light-bg2);--background3: var(--gb-light-bg3);--foreground0: var(--gb-light-fg1);--foreground1: var(--gb-light-fg2);--foreground2: var(--gb-light-fg3)}[data-webtui-theme=gruvbox-light-hard]{--gb-light-bg0: #f9f5d7;--background0: var(--gb-light-bg0)}[data-webtui-theme=gruvbox-light-medium],[data-webtui-theme=gruvbox-light]{--gb-light-bg0: #fbf1c7;--background0: var(--gb-light-bg0)}[data-webtui-theme=gruvbox-light-soft]{--gb-light-bg0: #f2e5bc;--background0: var(--gb-light-bg0)}}@layer components{[data-webtui-theme|=gruvbox] button[variant-=red]{--button-primary: var(--gb-red);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox] button[variant-=green]{--button-primary: var(--gb-green);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox] button[variant-=yellow]{--button-primary: var(--gb-yellow);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox] button[variant-=blue]{--button-primary: var(--gb-blue);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox] button[variant-=purple]{--button-primary: var(--gb-purple);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox] button[variant-=aqua]{--button-primary: var(--gb-aqua);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox] button[variant-=orange]{--button-primary: var(--gb-orange);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox-dark] button[variant-=gray]{--button-primary: var(--gb-dark-gray);--button-secondary: var(--background0)}[data-webtui-theme|=gruvbox-light] button[variant-=gray]{--button-primary: var(--gb-light-gray);--button-secondary: var(--background0)}}@layer components{[data-webtui-theme|=gruvbox] h1,[data-webtui-theme|=gruvbox] h2,[data-webtui-theme|=gruvbox] h3,[data-webtui-theme|=gruvbox] h4,[data-webtui-theme|=gruvbox] h5,[data-webtui-theme|=gruvbox] h6{color:var(--gb-green)}[data-webtui-theme|=gruvbox] p a,[data-webtui-theme|=gruvbox] blockquote a,[data-webtui-theme|=gruvbox] li a,[data-webtui-theme|=gruvbox] [is-~=typography-block] a{color:var(--gb-blue);text-decoration:underline}[data-webtui-theme|=gruvbox] p a:hover,[data-webtui-theme|=gruvbox] blockquote a:hover,[data-webtui-theme|=gruvbox] li a:hover,[data-webtui-theme|=gruvbox] [is-~=typography-block] a:hover{color:var(--gb-aqua)}[data-webtui-theme|=gruvbox] p code,[data-webtui-theme|=gruvbox] blockquote code,[data-webtui-theme|=gruvbox] li code,[data-webtui-theme|=gruvbox] [is-~=typography-block] code{color:var(--gb-orange)}}@layer components{[data-webtui-theme|=gruvbox] [is-~=badge][variant-=red]{--badge-color: var(--gb-red);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox] [is-~=badge][variant-=green]{--badge-color: var(--gb-green);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox] [is-~=badge][variant-=yellow]{--badge-color: var(--gb-yellow);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox] [is-~=badge][variant-=blue]{--badge-color: var(--gb-blue);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox] [is-~=badge][variant-=purple]{--badge-color: var(--gb-purple);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox] [is-~=badge][variant-=aqua]{--badge-color: var(--gb-aqua);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox] [is-~=badge][variant-=orange]{--badge-color: var(--gb-orange);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox-dark] [is-~=badge][variant-=gray]{--badge-color: var(--gb-dark-gray);--badge-text: var(--background0)}[data-webtui-theme|=gruvbox-light] [is-~=badge][variant-=gray]{--badge-color: var(--gb-light-gray);--badge-text: var(--background0)}}@layer components{@property --separator-width{syntax: "<length>"; inherits: true; initial-value: 2px;}[is-~=separator]{--separator-bg-fallback: var(--separator-background, transparent);display:inline-flex;position:relative}[is-~=separator][direction-=x],[is-~=separator][direction-=horizontal],[is-~=separator]:not([direction-]){height:1lh;background-image:linear-gradient(0deg,var(--separator-bg-fallback) 0,var(--separator-bg-fallback) calc(.5lh - var(--separator-width) / 2),var(--separator-color) calc(.5lh - (var(--separator-width) / 2)),var(--separator-color) calc(.5lh + (var(--separator-width) / 2)),var(--separator-bg-fallback) calc(.5lh + (var(--separator-width) / 2)),var(--separator-bg-fallback))}[is-~=separator][direction-=x][cap-^=bisect]:before,[is-~=separator][direction-=horizontal][cap-^=bisect]:before,[is-~=separator]:not([direction-])[cap-^=bisect]:before{left:-.5ch}[is-~=separator][direction-=x][cap-$=bisect]:after,[is-~=separator][direction-=horizontal][cap-$=bisect]:after,[is-~=separator]:not([direction-])[cap-$=bisect]:after{right:-.5ch}[is-~=separator][direction-=x][cap-^=edge]:not([cap-=edge]),[is-~=separator][direction-=horizontal][cap-^=edge]:not([cap-=edge]),[is-~=separator]:not([direction-])[cap-^=edge]:not([cap-=edge]){clip-path:inset(0 -.5ch 0 .5ch)}[is-~=separator][direction-=x][cap-$=edge]:not([cap-=edge]),[is-~=separator][direction-=horizontal][cap-$=edge]:not([cap-=edge]),[is-~=separator]:not([direction-])[cap-$=edge]:not([cap-=edge]){clip-path:inset(0 .5ch 0 -.5ch)}[is-~=separator][direction-=x][cap-=edge],[is-~=separator][direction-=horizontal][cap-=edge],[is-~=separator]:not([direction-])[cap-=edge]{clip-path:inset(0 .5ch)}[is-~=separator][direction-=y],[is-~=separator][direction-=vertical]{width:1ch;background-image:linear-gradient(to right,var(--separator-bg-fallback) 0,var(--separator-bg-fallback) calc(.5ch - (var(--separator-width) / 2)),var(--separator-color) calc(.5ch - (var(--separator-width) / 2)),var(--separator-color) calc(.5ch + (var(--separator-width) / 2)),var(--separator-bg-fallback) calc(.5ch + (var(--separator-width) / 2)),var(--separator-bg-fallback))}[is-~=separator][direction-=y][cap-^=bisect]:before,[is-~=separator][direction-=vertical][cap-^=bisect]:before{top:-.5lh}[is-~=separator][direction-=y][cap-$=bisect]:after,[is-~=separator][direction-=vertical][cap-$=bisect]:after{bottom:-.5lh}[is-~=separator][direction-=y][cap-^=edge]:not([cap-=edge]),[is-~=separator][direction-=vertical][cap-^=edge]:not([cap-=edge]){clip-path:inset(.5lh 0 -.5lh 0)}[is-~=separator][direction-=y][cap-$=edge]:not([cap-=edge]),[is-~=separator][direction-=vertical][cap-$=edge]:not([cap-=edge]){clip-path:inset(-.5lh 0 .5lh 0)}[is-~=separator][direction-=y][cap-=edge],[is-~=separator][direction-=vertical][cap-=edge]{clip-path:inset(.5lh 0)}[is-~=separator][cap-]:before,[is-~=separator][cap-]:after{content:"";position:absolute;width:1ch;height:1lh;background-image:inherit}}@layer components{h1,h2,h3,h4,h5,h6{font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);font-weight:var(--font-weight-bold)}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{color:inherit;background-color:var(--background1);padding:0 1ch}ol{list-style-position:inside}ol li>ol{margin-left:2ch}ul{list-style-type:none}ul li:before{color:inherit;content:"- "}ul[marker-=bullet] li:before{content:"• "}ul[marker-~=tree] li:before{content:"├ "}ul[marker-~=tree]:not([marker-^=open]) li:first-of-type:before{content:"┌ "}ul[marker-~=tree]:not([marker-$=open]) li:last-of-type:before{content:"└ "}ul li>ul{margin-left:2ch}p,blockquote,li,[is-~=typography-block]{font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);color:var(--foreground1)}p:is(blockquote),blockquote:is(blockquote),li:is(blockquote),[is-~=typography-block]:is(blockquote){padding-left:2ch;position:relative}p:is(blockquote):before,blockquote:is(blockquote):before,li:is(blockquote):before,[is-~=typography-block]:is(blockquote):before{content:"";position:absolute;top:0;left:.5ch;width:var(--box-border-width, 2px);height:100%;translate:-50%;background-color:var(--background2)}p strong,blockquote strong,li strong,[is-~=typography-block] strong{font-weight:var(--font-weight-bold);color:var(--foreground0)}p a,blockquote a,li a,[is-~=typography-block] a{text-decoration:underline;color:var(--foreground2)}p code,blockquote code,li code,[is-~=typography-block] code{display:inline-block;background-color:var(--background1);padding-left:1ch;padding-right:1ch}}@layer base{:root{color-scheme:dark;--text: var(--foreground0);--subtext0: var(--foreground2);--overlay0: var(--gb-dark-fg4);--overlay1: var(--gb-dark-gray);--blue: var(--gb-blue);--green: var(--gb-green)}body{box-sizing:border-box;width:100%;max-width:80ch;margin:0 auto;padding:1ch 2ch;text-rendering:optimizeLegibility}html{scroll-behavior:smooth}p,li,blockquote{text-wrap:pretty}h1,h2,h3,h4{text-wrap:balance;scroll-margin-top:2lh}:target{scroll-margin-top:2lh}::selection{background:var(--overlay0);color:var(--text)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:1px solid var(--blue);outline-offset:2px}hr[is-~=separator]{--separator-color: var(--overlay0);width:100%;border:0}.site-nav{display:flex;justify-content:space-between;align-items:center;gap:2ch;padding:1ch 0}.site-brand{color:var(--green);font-weight:700;flex-shrink:0}.site-nav-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5lh 2ch}.site-nav-group{display:flex;flex-wrap:wrap;gap:inherit}.site-nav-divider{color:var(--overlay0)}.site-nav-ext{display:inline-block;margin-left:.25ch;color:var(--overlay0);font-size:.85em}.site-main{padding:2ch 0}.site-footer{padding:1ch 0}.site-footer-copy{color:var(--subtext0);padding-top:1ch}.post-list,.talk-list{list-style:none;padding:0;margin-top:1lh}.post-list li{padding:0}.post-list li:before,.post-list li::marker,.talk-list li:before,.talk-list li::marker{content:none;display:none}.post-list-link{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:2ch;row-gap:.25lh;padding:.5lh 0;text-decoration:none}.post-list-date{flex:0 0 10ch;color:var(--overlay1);white-space:nowrap}.post-list-title{flex:1 1 30ch;color:var(--text);min-width:0;overflow-wrap:anywhere}.post-list-tags{margin-left:auto;color:var(--overlay0);text-align:right;overflow-wrap:anywhere}.talk-list-item{margin-bottom:2lh;padding:1ch 0}.talk-list-heading{display:grid;grid-template-columns:11ch minmax(0,1fr);align-items:baseline;column-gap:2ch;row-gap:.25lh}.talk-list-date{color:var(--overlay1);white-space:nowrap;flex-shrink:0}.talk-list-title{color:var(--green);font-weight:700;overflow-wrap:anywhere}.talk-list-event{color:var(--subtext0);margin:.5lh 0;padding-left:14ch}.talk-list-description{padding-left:14ch}.talk-list-links{display:flex;flex-wrap:wrap;gap:.5lh 2ch;padding-left:14ch;margin-top:.5lh}.post-header{margin-bottom:2lh}.post-meta{color:var(--overlay1);margin-top:.5lh;overflow-wrap:anywhere}.post-backlink{margin-top:1lh}[is-~=typography-block]>*+*{margin-top:1lh}[is-~=typography-block]>*+h1,[is-~=typography-block]>*+h2{margin-top:2lh}[is-~=typography-block]>*+h3,[is-~=typography-block]>*+h4{margin-top:1.5lh}[is-~=typography-block] h1+*,[is-~=typography-block] h2+*,[is-~=typography-block] h3+*,[is-~=typography-block] h4+*{margin-top:.5lh}[is-~=typography-block] :is(img,video){max-width:100%;height:auto;display:block;margin-top:1lh;margin-bottom:1lh}[is-~=typography-block] figure,[is-~=typography-block] pre{background:transparent!important}[is-~=typography-block] pre{margin-top:1lh;margin-bottom:1lh;padding:1.5em 2ch;overflow-x:auto;font-size:1.05em;line-height:1.6;border:1px solid var(--overlay0);border-radius:4px}[is-~=typography-block] pre code{font-size:inherit;line-height:inherit;background:transparent!important}[is-~=typography-block] blockquote,[is-~=typography-block] ul,[is-~=typography-block] ol{margin-top:1lh;margin-bottom:1lh}[is-~=typography-block] :is(h1,h2,h3,h4,h5,h6):target{color:var(--green)}[is-~=typography-block] .heading-anchor{margin-left:.5ch;color:var(--overlay1);text-decoration:none;opacity:0;transition:opacity .12s ease}[is-~=typography-block] :is(h1,h2,h3,h4,h5,h6):hover .heading-anchor,[is-~=typography-block] :is(h1,h2,h3,h4,h5,h6):focus-within .heading-anchor,[is-~=typography-block] :is(h1,h2,h3,h4,h5,h6):target .heading-anchor{opacity:1}[is-~=typography-block] .heading-anchor:hover{color:var(--blue)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(max-width:900px){.site-nav{flex-direction:column;align-items:flex-start}.site-nav-links{justify-content:flex-start;gap:.5lh 1.5ch}}@media(max-width:768px){body{padding-inline:1ch}.site-main{padding:1.5ch 0}.post-list-link{flex-direction:column;align-items:stretch}.talk-list-heading{grid-template-columns:1fr}.post-list-date,.post-list-title{flex:0 0 auto}.post-list-date,.post-list-tags,.talk-list-date{white-space:normal}.post-list-tags{margin-left:0;text-align:left}.talk-list-event,.talk-list-description,.talk-list-links{padding-left:0}.post-meta{overflow-wrap:anywhere}[is-~=typography-block] pre{padding:.75em .5ch;font-size:.82rem;line-height:1.4}[is-~=typography-block] pre code{font-size:inherit}}}@layer components{.post-list .post-list-link,.talk-list .talk-list-links a{text-decoration:none}.post-list .post-list-link:hover .post-list-title,.talk-list .talk-list-links a:hover{text-decoration:underline}}
