@layer base{*{margin:0;padding:0}body{min-block-size:100svh;font-family:var(--font-body);font-size:var(--ch-m);background-color:var(--bg);color:var(--fg);grid-template-rows:auto 1fr auto;line-height:1;display:grid}code{font-family:var(--font-mono);-webkit-font-smoothing:antialiased;text-rendering:optimizespeed;font-kerning:none;font-variant-ligatures:none}h1{font-family:var(--font-heading);font-size:var(--ch-5);text-align:center}h2{font-family:var(--font-heading);font-size:var(--ch-4)}p{text-wrap:pretty}hr{background-color:var(--outline);height:var(--line-width);margin-block:var(--spacing);border:none}a{color:var(--blue);transition:color var(--dur);&:is(:hover,:focus-visible){color:var(--blue-h)}@supports ((-moz-appearance:none)){transition:none}}a:visited{color:var(--magenta);&:is(:hover,:focus-visible){color:var(--magenta-h)}}ul,ol{padding-inline-start:2ch}figure{width:fit-content;margin-inline:auto;& img,& svg{margin-inline:auto}& figcaption{text-align:center;color:var(--fg-s);font-size:var(--ch-s);margin-top:0}}img,svg{max-width:attr(width px);max-height:attr(height px);width:100%;height:auto}button{font-family:var(--font-body);font-size:var(--ch-m);padding:var(--spacing);border-radius:var(--rounding);border:var(--line-width) solid var(--outline);background-color:var(--bg);color:var(--fg);&.subtle{opacity:.5;cursor:pointer}&.subtle:is(:hover,:focus-visible){opacity:1}&:not(.subtle):is(:hover,:focus-visible){background-color:var(--bg-lighter)}transition:color var(--dur), background-color var(--dur), opacity var(--dur)}strong{font-weight:600}::selection{background-color:var(--bg-selected);color:var(--fg-h)}}@layer layout{body>nav{grid-template-columns:minmax(0, var(--spacing)) [logo-start] min-content [logo-end] minmax(0, var(--spacing)) 1fr [categories-start] min-content [categories-end];background-color:var(--bg-s);width:100%;height:4rem;display:grid;container-type:inline-size;& a{color:var(--fg);text-decoration:none}&>.logo{grid-column:logo;justify-content:center;align-items:center}&>.logo>img{min-width:64px;min-height:64px;margin-block:auto}&>.logo>span{font-family:var(--font-heading);text-wrap:nowrap;font-size:var(--ch-4);@container (inline-size<35rem){display:none}}&>.categories{grid-column:categories}&>.categories>a{padding:var(--spacing);border-left:var(--line-width) solid var(--outline);align-content:center;&:hover{background-color:var(--bg)}transition:color var(--dur), background-color var(--dur)}}body>footer{padding-block:var(--spacing);background-color:var(--bg-s);margin-block-start:calc(2 * var(--spacing));container-type:inline-size;&>div{justify-content:space-between}& .site-link{flex-direction:row;flex:0 0 min-content;gap:1ch;display:flex;&>*{margin-block:var(--spacing)}& :first-child{color:var(--fg);width:1lh;min-width:1lh;height:1lh}@container (inline-size<35rem){& :nth-child(2){display:none}}}}main{margin-bottom:auto;margin-block-start:var(--spacing);& p{min-width:25ch}& .prev-next{padding-inline:var(--spacing);grid-template-columns:8ch 1fr 8ch;display:grid;& :first-child{text-align:start;text-decoration:none}& :nth-child(2){text-align:center}& :last-child{text-align:end;text-decoration:none}}& cite{vertical-align:super;font-size:smaller;font-style:normal;line-height:0}& cite>a{text-decoration:none;&:first-child:before{content:"[";color:var(--fg)}&:not(:last-child):after{content:",";color:var(--fg)}&:last-child:after{content:"]";color:var(--fg)}}}}@layer module{.content-grid,.full-width{grid-template-columns:[full-width-start] minmax(var(--padding-inline), 1fr) [breakout-start] minmax(0, calc(var(--breakout-size))) [content-start] minmax(auto, var(--content-max-width)) [content-end] minmax(0, calc(var(--breakout-size))) [breakout-end] minmax(var(--padding-inline), 1fr) [full-width-end];min-width:fit-content;display:grid;&>*{grid-column:content}&>.breakout,& hr{grid-column:breakout}&>.full-width{grid-column:full-width;grid-template-columns:subgrid}}article,ol,ul,.prose{line-height:1.6;&>*+*{margin-block-start:1.6em}}.space-before,:is(article,ol,ul)>*+*{margin-block-start:1.6em}.row{gap:var(--spacing);flex-direction:row;display:flex;&.space-between{justify-content:space-between}&.wrap{flex-wrap:wrap;justify-content:center;align-items:center;&>div:has(p){flex:1 0 min-content}}&.no-gap{gap:0}}pre:has(code){border-radius:var(--rounding);padding:var(--spacing);text-align:start;background-color:var(--bg-s);color:var(--fg-s);margin-block-start:1em;&>code,&>code>*{color:var(--tok)}&>code{--tok:var(--fg-s);& .comment{--tok:var(--green-h);font-style:italic}& .keyword{--tok:var(--red-h)}& .class-name{--tok:var(--magenta)}& .function,& .builtin{--tok:var(--yellow)}& .operator{--tok:var(--yellow-h)}& .string{--tok:var(--green)}& .number{--tok:var(--blue)}& .boolean{--tok:var(--cyan)}& .bracket{--tok:var(--fg)}}}.round{border-radius:10000rem}.card{background-color:var(--bg-s);border-radius:var(--rounding);padding:var(--spacing);margin-block-start:1em;&:is(a){text-decoration:none}}.ch-3{font-size:var(--ch-3)}.ch-s{font-size:var(--ch-s);color:var(--fg-ss)}}@layer state{@media print{body>:is(nav,footer){display:none}body>main{margin-block-start:0}svg,img{max-width:calc(.5 * attr(width px));max-height:calc(.5 * attr(height px))}}@media (prefers-reduced-motion:reduce){:where(a,button){transition:none}}:focus-visible{outline:var(--green-h)}pre>code>::selection{@media (prefers-color-scheme:light){color:var(--fg-h);background-color:oklab(from color-mix(in oklab, var(--bg-selected), var(--tok) 20%) calc(.25 * l + .76 * var(--bg-selected-l)) a b)}@media (prefers-color-scheme:dark){background-color:var(--bg-selected);color:color-mix(in oklab, var(--tok) 30%, var(--fg-h))}}}@layer theme{@font-face{font-family:Diphylleia;font-style:normal;font-weight:400;src:local(Diphylleia Regular),local(Diphylleia-Regular),url(/fonts/diphylleia-ascii.woff2)format("woff2");unicode-range:0-7F}@font-face{font-family:"0xProto";font-style:italic;font-weight:400;font-stretch:100%;src:local("0xProto Italic"),local("0xProto-Italic"),url(fonts/0xproto-italic-min.woff2)format("woff2");unicode-range:20-7F, 0A0-00BF, 0C0-00D6, 2013-2026, 2200-222D, 2248-2249, 2500-257F;font-display:auto}@font-face{font-family:"0xProto";font-style:normal;font-weight:400;font-stretch:100%;src:local("0xProto Regular"),local("0xProto-Regular"),url(fonts/0xproto-min.woff2)format("woff2");unicode-range:20-7F, 0A0-00BF, 0C0-00D6, 2013-2026, 2200-222D, 2248-2249, 2500-257F;font-display:auto}@property --ch-fac{syntax:"<number>";inherits:true;initial-value:0}:root{--rounding:.8rem;--spacing:.8rem;--padding-inline:var(--spacing);--content-max-width:100rch;--breakout-max-width:120rch;--line-width:.15rem;--dur:.15s;--bg-h:light-dark(#f3ead9,#0a0c04);--bg:light-dark(#ece4d3,#101307);--bg-s:light-dark(#e8ddc8,#191d0e);--bg-selected:light-dark(#cfc3ac,#2c301d);@media (prefers-color-scheme:light){--bg-selected-l:.8209}@media (prefers-color-scheme:dark){--bg-selected-l:.2994}--fg-h:light-dark(#030400,#e8ddc8);--fg:light-dark(#222615,#cfc3ac);--fg-s:light-dark(#363a24,#a1947a);--fg-ss:#847a5e;--outline:light-dark(#b6a990,#363a24);--red-h:light-dark(#842312,#e56d43);--yellow-h:light-dark(#92640a,#e9b531);--green-h:light-dark(#5c6c02,#a5bf37);--blue-h:light-dark(#164774,#4d91bf);--magenta-h:light-dark(#84328c,#d77fe1);--yellow:light-dark(#8a7245,#bda267);--green:light-dark(#7a774d,#a29f6e);--cyan:light-dark(#6c7459,#919c7d);--blue:light-dark(#6a6e66,#8f948d);--magenta:light-dark(#856b6c,#af9195);--bg-lighter:light-dark(var(--bg-h),var(--bg-s));--bg-darker:light-dark(var(--bg-s),var(--bg-h));@media print{--bg-h:#fff;--bg:#fff;--bg-s:#e9ddc5}--font-heading:Diphylleia;--font-body:Avenir, Montserrat, Corbel, "URW Gothic", source-sans-pro, system-ui, sans-serif;--font-mono:"0xProto", "DM Mono", "Fira Code", Menlo, "DejaVu Sans Mono", "Lucida Console", ui-monospace, monospace}body{--content-width:min(100svw - (var(--padding-inline) * 2), var(--content-max-width));--breakout-width:min(100svw - (var(--padding-inline) * 2), var(--breakout-max-width));--breakout-size:((var(--breakout-width) - var(--content-width)) / 2);--ch-fac:progress(var(--breakout-width), 30rch, var(--breakout-max-width));--ch-s:calc(.9rem + var(--ch-fac) * .1rem);--ch-m:calc(1rem + var(--ch-fac) * .15rem);--ch-3:calc(1.1rem + var(--ch-fac) * .25rem);--ch-4:calc(1.2rem + var(--ch-fac) * .5rem);--ch-5:calc(2rem + var(--ch-fac) * 1rem);@media print{--ch-s:10pt;--ch-m:12pt;--ch-3:14pt;--ch-4:16pt;--ch-5:20pt}}}