@layer reset,base,components,utilities;@layer reset{html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;margin-block-end:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:inherit}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}fieldset{margin-inline-start:0;margin-inline-end:0;min-inline-size:0}legend{float:none}*,*:before,*:after{box-sizing:border-box}:target{scroll-margin-block:var(--space-line-2)}}@layer base{@layer base{:root{--ansi-black: #585858;--ansi-red: #ff5f5f;--ansi-green: #00af5f;--ansi-yellow: #ffff87;--ansi-blue: #5f5fff;--ansi-magenta: #ff5fff;--ansi-cyan: #008787;--ansi-white: #d0d0d0;--ansi-bright-black: #808080;--ansi-bright-red: #ff8787;--ansi-bright-green: #5fff87;--ansi-bright-yellow: #ffffaf;--ansi-bright-blue: #8787ff;--ansi-bright-magenta: #ff87ff;--ansi-bright-cyan: #00afff;--ansi-bright-white: #ffffff;--ansi-bg: #0e0e0e;--ansi-fg: #d0d0d0;--color-bg-primary: var(--ansi-bg);--color-bg-secondary: #303030;--color-fg-primary: var(--ansi-fg);--color-fg-secondary: var(--ansi-bright-black);--color-fg-dim: var(--ansi-black);--color-accent: var(--ansi-bright-cyan);--color-success: var(--ansi-green);--color-warning: var(--ansi-yellow);--color-error: var(--ansi-red);--color-info: var(--ansi-blue);--color-link: var(--ansi-cyan);--color-link-hover: var(--ansi-bright-cyan);--color-focus: var(--ansi-bright-cyan)}html{background-color:var(--color-bg-primary);color:var(--color-fg-primary)}::selection{background-color:#00afff4d}}}@layer base{@layer base{@font-face{font-family:Maple Mono;src:url(/fonts/MapleMono-Regular-4cff7b914f13663d9ce65971b5202169.ttf?vsn=d) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMono-Italic-a01ebb52b551eb2c90c67967199ee0de.ttf?vsn=d) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMono-Bold-9b48a1f460ca9f1c353b33cca0de0c12.ttf?vsn=d) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMono-BoldItalic-29f8c56d78ddaea76a2512a6221dae1f.ttf?vsn=d) format("truetype");font-weight:700;font-style:italic;font-display:swap}:root{--grid-base: 16px;--line-height: 1.4;--font-size-base: var(--grid-base);--font-mono: "Maple Mono", ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-weight-normal: 400;--font-weight-bold: 700;--space-1: 1ch;--space-2: 2ch;--space-4: 4ch;--space-8: 8ch;--space-line: 1lh;--space-line-2: 2lh;--space-line-4: 4lh}@media (max-width: 50ch){:root{--grid-base: 14px}}html{font-family:var(--font-mono);font-size:var(--font-size-base);line-height:var(--line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--ansi-bright-cyan);font-size:inherit;font-weight:var(--font-weight-bold);line-height:inherit;margin-block-end:var(--space-line)}b,strong{font-weight:var(--font-weight-bold)}i,em{font-style:italic}h1:before{content:"# "}h2:before{content:"## "}h3:before{content:"### "}h4:before{content:"#### "}h5:before{content:"##### "}h6:before{content:"###### "}p{margin-block-end:var(--space-line)}a{color:var(--color-link);text-decoration:underline;&:hover{color:var(--color-link-hover)}}img{max-width:100%;height:auto;display:block;margin-block-end:var(--space-line);color:transparent;overflow:hidden}hr{border:none;border-block-start:1px solid var(--ansi-black);margin-block:var(--space-line-2)}code{background-color:var(--color-bg-secondary);color:var(--ansi-red);padding-inline:var(--space-1)}pre{overflow-x:auto;margin-block-end:var(--space-line);tab-size:2;background-color:transparent!important;& code{padding:0;background:none;white-space:pre;display:block;.line:before{padding-inline-end:var(--space-2);content:attr(data-line);color:var(--color-fg-dim);text-align:right;display:inline-block;width:4ch;user-select:none;opacity:.5}}}blockquote{border-inline-start:1px solid var(--color-bg-secondary);margin-inline-start:-1px;padding-inline-start:var(--space-2);color:var(--color-fg-secondary)}ul,ol{margin-block-end:var(--space-line)}ul{list-style-type:disc;padding-inline-start:var(--space-2)}ol{list-style-type:decimal;padding-inline-start:var(--space-4)}li{margin-block-end:0;& ul,ol{margin-block-end:0}}table{max-width:100%;border-collapse:collapse;margin-block-end:var(--space-line);border:1px solid var(--color-bg-secondary)}th{font-weight:var(--font-weight-bold);text-align:left;border-block-start:1px solid var(--color-bg-secondary);border-block-end:1px solid var(--color-bg-secondary);padding-inline:var(--space-2);padding-block:calc(var(--space-line) / 2);+th{border-inline-start:1px solid var(--color-bg-secondary)}}tbody tr:first-of-type td{padding-block-start:calc(var(--space-line) / 2)}tbody tr:last-of-type td{padding-block-end:calc(var(--space-line) / 2)}td{padding:0 var(--space-2);+td{border-inline-start:1px solid var(--color-bg-secondary)}}th[align=right],td[align=right]{text-align:right}th[align=center],td[align=center]{text-align:center}}}@layer base{@layer base{html{min-height:100dvh}body{--content-max: 80ch;--aside-width: 32ch;display:grid;grid-template-columns:minmax(0,var(--content-max)) var(--aside-width);grid-template-rows:auto 1fr auto;grid-template-areas:"header ." "content aside" "footer .";gap:0 var(--space-4);max-inline-size:calc(var(--content-max) + var(--aside-width) + var(--space-4));margin-inline:auto;padding-inline:var(--space-4);min-height:100dvh}.page-header{grid-area:header}.page-content{grid-area:content}.page-aside{grid-area:aside;position:sticky;top:var(--space-line);align-self:start;display:flex;flex-direction:column;gap:var(--space-line);overflow-y:hidden}.page-footer{grid-area:footer}@media (max-width: 100ch){body{grid-template-columns:minmax(0,1fr);grid-template-areas:"header" "content" "footer";max-inline-size:var(--content-max)}.page-aside{display:none}}@media (max-width: 50ch){body{padding-inline:var(--space-1)}.page-header,.page-footer{margin-inline:calc(var(--space-1) * -1);padding-inline:var(--space-1)}}section{margin-block-end:var(--space-line-4);&:last-child{margin-block-end:0}}}}@layer base{@layer base{@keyframes flicker{0%{opacity:.27861}5%{opacity:.34769}10%{opacity:.23604}15%{opacity:.90626}20%{opacity:.18128}25%{opacity:.83891}30%{opacity:.65583}35%{opacity:.67807}40%{opacity:.26559}45%{opacity:.84693}50%{opacity:.96019}55%{opacity:.08594}60%{opacity:.20313}65%{opacity:.71988}70%{opacity:.53455}75%{opacity:.37288}80%{opacity:.71428}85%{opacity:.70419}90%{opacity:.7003}95%{opacity:.36108}to{opacity:.24387}}@keyframes phosphor{0%{text-shadow:.4389924193300864px 0 1px rgba(0,30,255,.5),-.4389924193300864px 0 1px rgba(255,0,80,.3),0 0 3px}5%{text-shadow:2.7928974010788217px 0 1px rgba(0,30,255,.5),-2.7928974010788217px 0 1px rgba(255,0,80,.3),0 0 3px}10%{text-shadow:.02956275843481219px 0 1px rgba(0,30,255,.5),-.02956275843481219px 0 1px rgba(255,0,80,.3),0 0 3px}15%{text-shadow:.40218538552878136px 0 1px rgba(0,30,255,.5),-.40218538552878136px 0 1px rgba(255,0,80,.3),0 0 3px}20%{text-shadow:3.4794037899852017px 0 1px rgba(0,30,255,.5),-3.4794037899852017px 0 1px rgba(255,0,80,.3),0 0 3px}25%{text-shadow:1.6125630401149584px 0 1px rgba(0,30,255,.5),-1.6125630401149584px 0 1px rgba(255,0,80,.3),0 0 3px}30%{text-shadow:.7015590085143956px 0 1px rgba(0,30,255,.5),-.7015590085143956px 0 1px rgba(255,0,80,.3),0 0 3px}35%{text-shadow:3.896914047650351px 0 1px rgba(0,30,255,.5),-3.896914047650351px 0 1px rgba(255,0,80,.3),0 0 3px}40%{text-shadow:3.870905614848819px 0 1px rgba(0,30,255,.5),-3.870905614848819px 0 1px rgba(255,0,80,.3),0 0 3px}45%{text-shadow:2.231056963361899px 0 1px rgba(0,30,255,.5),-2.231056963361899px 0 1px rgba(255,0,80,.3),0 0 3px}50%{text-shadow:.08084290417898504px 0 1px rgba(0,30,255,.5),-.08084290417898504px 0 1px rgba(255,0,80,.3),0 0 3px}55%{text-shadow:2.3758461067427543px 0 1px rgba(0,30,255,.5),-2.3758461067427543px 0 1px rgba(255,0,80,.3),0 0 3px}60%{text-shadow:2.202193051050636px 0 1px rgba(0,30,255,.5),-2.202193051050636px 0 1px rgba(255,0,80,.3),0 0 3px}65%{text-shadow:2.8638780614874975px 0 1px rgba(0,30,255,.5),-2.8638780614874975px 0 1px rgba(255,0,80,.3),0 0 3px}70%{text-shadow:.48874025155497314px 0 1px rgba(0,30,255,.5),-.48874025155497314px 0 1px rgba(255,0,80,.3),0 0 3px}75%{text-shadow:1.8948491305757957px 0 1px rgba(0,30,255,.5),-1.8948491305757957px 0 1px rgba(255,0,80,.3),0 0 3px}80%{text-shadow:.0833037308038857px 0 1px rgba(0,30,255,.5),-.0833037308038857px 0 1px rgba(255,0,80,.3),0 0 3px}85%{text-shadow:.09769827255241735px 0 1px rgba(0,30,255,.5),-.09769827255241735px 0 1px rgba(255,0,80,.3),0 0 3px}90%{text-shadow:3.443339761481782px 0 1px rgba(0,30,255,.5),-3.443339761481782px 0 1px rgba(255,0,80,.3),0 0 3px}95%{text-shadow:2.1841838852799786px 0 1px rgba(0,30,255,.5),-2.1841838852799786px 0 1px rgba(255,0,80,.3),0 0 3px}to{text-shadow:2.6208764473832513px 0 1px rgba(0,30,255,.5),-2.6208764473832513px 0 1px rgba(255,0,80,.3),0 0 3px}}}}@layer components{@layer components{.page-aside h1:before,.page-aside h2:before,.page-aside h3:before,.page-aside h4:before,.page-aside h5:before,.page-aside h6:before{content:""}.aside-section-header{cursor:pointer;list-style:none;color:var(--color-fg-secondary);font-size:inherit;font-weight:var(--font-weight-normal);margin:0;overflow:hidden;white-space:nowrap;user-select:none}.aside-section-header::-webkit-details-marker{display:none}.aside-section-header:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.aside-section-header:before{content:"\25bc";margin-inline-end:1ch}details:not([open])>.aside-section-header:before{content:"\25b6";margin-inline-end:1ch}.aside-section-header:after{content:" \2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500";color:var(--color-bg-secondary)}.aside-section-content{margin-block-start:var(--space-line)}}}@layer components{@layer components{.badge{background-color:var(--ansi-blue);color:var(--ansi-yellow);padding-inline:var(--space-1);font-weight:var(--font-weight-bold);display:inline-block}}}@layer components{@layer components{.bluescreen{background-color:#00a;color:var(--ansi-bright-white);font-family:var(--font-mono);padding-block:var(--space-line);padding-inline:var(--space-4)}.bluescreen a,.bluescreen a:hover{color:var(--ansi-bright-white)}.bluescreen-header{text-align:center;margin-block-end:var(--space-line)}.bluescreen .bluescreen-badge{background-color:var(--ansi-yellow);color:var(--ansi-blue)}.bluescreen-content p{margin-block-end:var(--space-line)}.bluescreen-prompt{text-align:center;margin-block-start:var(--space-line)}.bluescreen-cursor{display:inline-block;background-color:var(--ansi-bright-white);width:1ch;animation:blink 1s step-end infinite}@media (prefers-reduced-motion: reduce){.bluescreen-cursor{animation:none;opacity:1}}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}}@layer components{@layer components{.checkbox-button{display:inline-flex;align-items:center;gap:var(--space-1);cursor:pointer;user-select:none}.checkbox-button input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0}.checkbox-box{background-color:var(--color-bg-secondary);padding-left:var(--space-1);padding-right:var(--space-1);display:inline-block}.checkbox-box:before{content:"\a0";color:var(--color-fg-secondary)}.checkbox-button:has(input[type=checkbox]:checked) .checkbox-box:before{content:"\2713";color:var(--color-accent)}.checkbox-button:has(input[type=checkbox]:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}}}@layer components{@layer components{.discord-status{margin:0}.discord-bullet{color:var(--color-fg-primary)}.discord-bullet.bullet-online{color:var(--color-success)}.discord-bullet.bullet-idle{color:var(--color-warning)}.discord-bullet.bullet-dnd{color:var(--color-error)}.discord-bullet.bullet-offline{color:var(--color-fg-dim)}.discord-username{color:var(--color-fg-primary)}.discord-status-text{color:var(--color-fg-secondary)}.discord-activity,.discord-spotify{margin:0;padding-inline-start:var(--space-2);color:var(--color-fg-secondary)}}}@layer components{@layer components{.empty-state{position:relative;min-block-size:20lh;display:flex;align-items:center;justify-content:center;padding-block:var(--space-line);background-color:var(--color-bg-primary);background-image:repeating-linear-gradient(-60deg,var(--color-bg-secondary) 0px,var(--color-bg-secondary) 1px,transparent 1px,transparent 12px);background-clip:content-box;background-origin:content-box}.empty-state-message{position:relative;padding:var(--space-line) var(--space-2);background-color:var(--color-bg-primary);outline:1px solid var(--color-bg-secondary);outline-offset:-1px;color:var(--color-fg-secondary);font-style:italic;text-align:center;z-index:0;&:before{content:"";position:absolute;inline-size:calc(100% + 2 * var(--space-1));block-size:calc(100% + 1lh);inset-inline-start:calc(-1 * var(--space-1));inset-block-start:-.5lh;background-color:var(--color-bg-primary);z-index:-1}}.empty-state-inline{color:var(--color-fg-secondary);font-style:italic}}}@layer components{@layer components{#flash-group{position:fixed;bottom:2lh;left:4ch}.flash-group{z-index:9999;display:flex;flex-direction:column;gap:1lh 0;pointer-events:none}.flash{padding:1lh 2ch;background-color:var(--color-bg-primary);pointer-events:auto;max-width:50ch;box-shadow:1ch 1lh #000000bf;& p{margin:0}}.flash-info{border-left:1px solid var(--ansi-bright-cyan);border-right:1px solid var(--ansi-bright-cyan)}.flash-error{border-left:1px solid var(--color-error);border-right:1px solid var(--color-error)}.flash-content{display:flex;flex-direction:column;gap:0}.flash-header{display:flex;align-items:baseline;gap:1ch}.flash-title{flex:1;font-weight:700}.flash-message{font-style:italic;color:var(--color-fg-secondary)}.flash-close{background:none;border:none;color:var(--color-fg-secondary);cursor:pointer;padding:0;display:inline-block;vertical-align:baseline}.flash-close .icon{display:inline-block;vertical-align:baseline}.flash-close:hover{color:var(--color-fg-primary)}@media (max-width: 50ch){#flash-group{top:2lh;bottom:auto;left:auto;right:var(--space-1)}}}}@layer components{@layer components{.page-footer{position:sticky;bottom:0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:100;padding-block-end:1lh;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:0;margin:0;height:1lh}.footer-left{display:flex;align-items:center;gap:0;flex-shrink:0}.footer-block{background-color:var(--ansi-blue);color:var(--ansi-white);padding-inline:var(--space-1);height:1lh;display:flex;align-items:center;text-decoration:none;font-weight:var(--font-weight-bold);flex-shrink:0}.footer-block:hover{background-color:var(--ansi-bright-blue)}.footer-copyright{color:var(--color-fg-secondary);padding-inline:var(--space-1);height:1lh;display:flex;align-items:center;flex-shrink:0}.footer-spacer{flex:1;height:1lh;background-color:#80808026}@media (max-width: 50ch){.page-footer{padding-block-start:0;padding-block-end:0;padding-inline:0;margin-inline:calc(var(--space-1) * -1)}}}}@layer components{@layer components{.component-preview{margin-block-start:var(--space-line);border:1px solid var(--color-fg-dim);width:fit-content;min-width:100%}.component-preview-content{padding-block:var(--space-line);padding-inline:var(--space-2);width:fit-content;min-width:100%;max-height:30lh;overflow-y:auto;overflow-x:auto}.icon-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(12ch,1fr));gap:var(--space-line) var(--space-4)}.icon-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-line)}}}@layer components{@layer components{.page-header{position:sticky;top:0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:100;padding-block-start:1lh;padding-block-end:calc(var(--space-line) / 2);margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.page-header+.page-content,.page-header~.page-aside{padding-block-start:calc(var(--space-line) / 2)}.page-header~.page-aside{top:calc(var(--space-line) / 2)}.site-header{margin:0}.site-header-row{display:contents}.site-header-crt{display:none}@media (max-width: 100ch){.site-header-row{display:flex;justify-content:space-between;align-items:center}.site-header-crt{display:block}}.site-title{color:var(--color-accent);font-weight:var(--font-weight-bold);text-decoration:none;display:block}.site-title:hover{text-decoration:underline}.site-tagline{color:var(--color-fg-secondary);margin-block-end:0;font-style:italic}.tagline-caret{color:var(--color-bg-secondary);animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.tagline-caret{animation:none}}.header-separator{height:1lh;margin:0;border:none;background-color:transparent;display:flex;align-items:center;overflow:hidden;color:var(--color-bg-secondary);min-width:0}.header-separator:before{content:"\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500";white-space:nowrap}.site-nav{display:flex;gap:var(--space-1);margin:0;align-items:center}.nav-link{color:var(--color-fg-primary);text-decoration:none}.nav-link:hover{color:var(--color-link-hover)}.nav-link-active{color:var(--color-link);text-decoration:underline}.nav-separator{color:var(--color-fg-dim);user-select:none}@media (max-width: 50ch){.page-header{padding-block-start:.5lh;padding-block-end:.5lh;padding-inline:var(--space-1);margin-inline:calc(var(--space-1) * -1)}}}}@layer components{@layer components{.post-list-section{display:flex;flex-direction:column;gap:var(--space-line) 0;>.badge{align-self:flex-start}}.post-list-content{>p{margin:0;color:var(--color-fg-secondary)}}.post{margin-block-end:var(--space-line)}.post-title{display:flex;align-items:baseline;gap:0 var(--space-2);flex-wrap:wrap;margin-block-end:var(--space-line)}.post-published,.post-read-time{color:var(--color-fg-secondary)}.posts-list{list-style:none;padding:0;margin:0}.post-item{padding-block:var(--space-line);border-block-end:1px solid var(--color-bg-secondary);margin-block-end:-1px;&:last-child{border-block-end:none;margin-block-end:0}.post-header{display:flex;align-items:flex-start;gap:0 var(--space-1)}.post-index{color:var(--color-fg-secondary);flex-shrink:0}.post-content{display:flex;flex-direction:column;gap:0;flex:1}& h2{margin:0;font-size:inherit;font-weight:var(--font-weight-normal);&:before{content:none}}.post-excerpt{margin:0;margin-block-start:var(--space-line)}.tags{margin:0}.post-meta{display:flex;align-items:center;color:var(--color-fg-secondary);flex-wrap:wrap;& time{white-space:nowrap}>*{margin-inline-end:var(--space-1)}>*:not(:last-child):after{content:"|";color:var(--color-fg-dim);margin-inline-start:var(--space-1)}}}}}@layer components{@layer components{.project-list-section{display:flex;flex-direction:column;gap:var(--space-line) 0;>.badge{align-self:flex-start}}.project-list-content{>p{margin:0;color:var(--color-fg-secondary)}}.projects-list{list-style:none;padding:0;margin:0}.project-item{padding-block:var(--space-line);border-block-end:1px solid var(--color-bg-secondary);margin-block-end:-1px;&:last-child{border-block-end:none;margin-block-end:0}.project-header{display:flex;align-items:flex-start;gap:0 var(--space-1)}.project-index{color:var(--color-fg-secondary);flex-shrink:0}.project-content{display:flex;flex-direction:column;gap:0;flex:1}& h2{margin:0;font-size:inherit;font-weight:var(--font-weight-normal);&:before{content:none}}.project-description{margin:0;margin-block-start:var(--space-line)}.tags{margin:0}.project-meta{display:flex;align-items:center;color:var(--color-fg-secondary);flex-wrap:wrap;& time{white-space:nowrap}margin-block-start:var(--space-line);>*{margin-inline-end:var(--space-1)}>*:not(:last-child):after{content:"|";color:var(--color-fg-dim);margin-inline-start:var(--space-1)}}}}}@layer components{@layer components{.search-filter{display:flex;flex-direction:column;gap:var(--space-line) 0}.search-filter-label{color:var(--color-fg-secondary)}.search-filter-clear{color:var(--color-link);text-decoration:none}.search-filter-clear:hover{text-decoration:underline}.search-input-wrapper{display:flex;align-items:center;gap:0 var(--space-1)}.search-input{flex:1;min-width:0;border:none;background:transparent;color:var(--color-fg-primary);font-family:inherit;font-size:inherit;line-height:inherit;outline:none;padding:0}.search-input::placeholder{color:var(--color-bg-secondary);opacity:1}}}@layer components{@layer components{.tags{display:flex;flex-wrap:wrap;gap:0 var(--space-1)}.tag{color:var(--color-accent);text-decoration:none;&:before{content:"#";margin-inline-end:-1ch}&.tag-active{background-color:var(--color-accent);color:var(--color-bg-primary)}&:hover{text-decoration:underline}}.tag-filter{display:flex;flex-direction:column;gap:var(--space-line) 0}.tag-filter-label{color:var(--color-fg-secondary)}.tag-filter-clear{color:var(--color-link);text-decoration:none;&:hover{text-decoration:underline}}.tags-empty{color:var(--color-fg-secondary);font-style:italic;margin:0}}}@layer components{@layer components{.toc-list{list-style:none;padding:0;margin:0;overflow-y:auto;max-height:26lh}.toc-item{&[data-level="2"]{padding-inline-start:var(--space-2)}&[data-level="3"]{padding-inline-start:calc(var(--space-4) + var(--space-1))}&[data-level="4"]{padding-inline-start:calc(var(--space-8) + var(--space-1))}&[data-level="5"]{padding-inline-start:calc(var(--space-8) + var(--space-4) + var(--space-2) + var(--space-1))}&[data-level="6"]{padding-inline-start:calc(var(--space-8) + var(--space-8) + var(--space-4) + var(--space-1))}&[data-active=true]{.toc-link,.toc-marker{color:var(--color-accent)}}}.toc-link{color:var(--ansi-cyan);text-decoration:none;display:block;&:hover{text-decoration:underline}}.toc-marker{color:var(--ansi-cyan)}.toc-empty{color:var(--color-bg-secondary)}}}@layer components{@layer components{.viewer-counts{margin-block-end:var(--space-2line)}.viewer-stat{color:var(--color-fg-secondary);margin:0;margin-block-end:var(--space-half-line)}.viewer-stat:last-child{margin-block-end:0}.viewer-bullet{color:var(--color-bg-secondary);margin-inline-end:var(--space-half)}.viewer-label{margin-inline-end:var(--space-half)}.viewer-count{color:var(--color-fg-primary);font-weight:var(--font-weight-bold)}}}@layer utilities{.phx-click-loading,.phx-submit-loading{opacity:.5;cursor:wait}.phx-change-loading:not(input):not(form){opacity:.5;cursor:wait}[data-phx-session],[data-phx-teleported-src]{display:contents}}@layer utilities{[style*="--lqip:"]{--lqip-ca: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 18))), 4);--lqip-cb: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 16))), 4);--lqip-cc: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 14))), 4);--lqip-cd: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 12))), 4);--lqip-ce: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 10))), 4);--lqip-cf: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 8))), 4);--lqip-ll: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 6))), 4);--lqip-aaa: mod(round(down, calc((var(--lqip) + pow(2, 19)) / pow(2, 3))), 8);--lqip-bbb: mod(calc(var(--lqip) + pow(2, 19)), 8);--lqip-ca-clr: hsl(0 0% calc(var(--lqip-ca) / 3 * 60% + 20%));--lqip-cb-clr: hsl(0 0% calc(var(--lqip-cb) / 3 * 60% + 20%));--lqip-cc-clr: hsl(0 0% calc(var(--lqip-cc) / 3 * 60% + 20%));--lqip-cd-clr: hsl(0 0% calc(var(--lqip-cd) / 3 * 60% + 20%));--lqip-ce-clr: hsl(0 0% calc(var(--lqip-ce) / 3 * 60% + 20%));--lqip-cf-clr: hsl(0 0% calc(var(--lqip-cf) / 3 * 60% + 20%));--lqip-base-clr: oklab( calc(var(--lqip-ll) / 3 * .6 + .2) calc(var(--lqip-aaa) / 8 * .7 - .35) calc((var(--lqip-bbb) + 1) / 8 * .7 - .35) );--lqip-stop10: 2%;--lqip-stop20: 8%;--lqip-stop30: 18%;--lqip-stop40: 32%;background-blend-mode:hard-light,hard-light,hard-light,hard-light,hard-light,hard-light,normal;background-image:radial-gradient(50% 75% at 16.67% 25%,var(--lqip-ca-clr),rgb(from var(--lqip-ca-clr) r g b / calc(100% - var(--lqip-stop10))) 10%,rgb(from var(--lqip-ca-clr) r g b / calc(100% - var(--lqip-stop20))) 20%,rgb(from var(--lqip-ca-clr) r g b / calc(100% - var(--lqip-stop30))) 30%,rgb(from var(--lqip-ca-clr) r g b / calc(100% - var(--lqip-stop40))) 40%,rgb(from var(--lqip-ca-clr) r g b / calc(var(--lqip-stop40))) 60%,rgb(from var(--lqip-ca-clr) r g b / calc(var(--lqip-stop30))) 70%,rgb(from var(--lqip-ca-clr) r g b / calc(var(--lqip-stop20))) 80%,rgb(from var(--lqip-ca-clr) r g b / calc(var(--lqip-stop10))) 90%,transparent),radial-gradient(50% 75% at 50% 25%,var(--lqip-cb-clr),rgb(from var(--lqip-cb-clr) r g b / calc(100% - var(--lqip-stop10))) 10%,rgb(from var(--lqip-cb-clr) r g b / calc(100% - var(--lqip-stop20))) 20%,rgb(from var(--lqip-cb-clr) r g b / calc(100% - var(--lqip-stop30))) 30%,rgb(from var(--lqip-cb-clr) r g b / calc(100% - var(--lqip-stop40))) 40%,rgb(from var(--lqip-cb-clr) r g b / calc(var(--lqip-stop40))) 60%,rgb(from var(--lqip-cb-clr) r g b / calc(var(--lqip-stop30))) 70%,rgb(from var(--lqip-cb-clr) r g b / calc(var(--lqip-stop20))) 80%,rgb(from var(--lqip-cb-clr) r g b / calc(var(--lqip-stop10))) 90%,transparent),radial-gradient(50% 75% at 83.33% 25%,var(--lqip-cc-clr),rgb(from var(--lqip-cc-clr) r g b / calc(100% - var(--lqip-stop10))) 10%,rgb(from var(--lqip-cc-clr) r g b / calc(100% - var(--lqip-stop20))) 20%,rgb(from var(--lqip-cc-clr) r g b / calc(100% - var(--lqip-stop30))) 30%,rgb(from var(--lqip-cc-clr) r g b / calc(100% - var(--lqip-stop40))) 40%,rgb(from var(--lqip-cc-clr) r g b / calc(var(--lqip-stop40))) 60%,rgb(from var(--lqip-cc-clr) r g b / calc(var(--lqip-stop30))) 70%,rgb(from var(--lqip-cc-clr) r g b / calc(var(--lqip-stop20))) 80%,rgb(from var(--lqip-cc-clr) r g b / calc(var(--lqip-stop10))) 90%,transparent),radial-gradient(50% 75% at 16.67% 75%,var(--lqip-cd-clr),rgb(from var(--lqip-cd-clr) r g b / calc(100% - var(--lqip-stop10))) 10%,rgb(from var(--lqip-cd-clr) r g b / calc(100% - var(--lqip-stop20))) 20%,rgb(from var(--lqip-cd-clr) r g b / calc(100% - var(--lqip-stop30))) 30%,rgb(from var(--lqip-cd-clr) r g b / calc(100% - var(--lqip-stop40))) 40%,rgb(from var(--lqip-cd-clr) r g b / calc(var(--lqip-stop40))) 60%,rgb(from var(--lqip-cd-clr) r g b / calc(var(--lqip-stop30))) 70%,rgb(from var(--lqip-cd-clr) r g b / calc(var(--lqip-stop20))) 80%,rgb(from var(--lqip-cd-clr) r g b / calc(var(--lqip-stop10))) 90%,transparent),radial-gradient(50% 75% at 50% 75%,var(--lqip-ce-clr),rgb(from var(--lqip-ce-clr) r g b / calc(100% - var(--lqip-stop10))) 10%,rgb(from var(--lqip-ce-clr) r g b / calc(100% - var(--lqip-stop20))) 20%,rgb(from var(--lqip-ce-clr) r g b / calc(100% - var(--lqip-stop30))) 30%,rgb(from var(--lqip-ce-clr) r g b / calc(100% - var(--lqip-stop40))) 40%,rgb(from var(--lqip-ce-clr) r g b / calc(var(--lqip-stop40))) 60%,rgb(from var(--lqip-ce-clr) r g b / calc(var(--lqip-stop30))) 70%,rgb(from var(--lqip-ce-clr) r g b / calc(var(--lqip-stop20))) 80%,rgb(from var(--lqip-ce-clr) r g b / calc(var(--lqip-stop10))) 90%,transparent),radial-gradient(50% 75% at 83.33% 75%,var(--lqip-cf-clr),rgb(from var(--lqip-cf-clr) r g b / calc(100% - var(--lqip-stop10))) 10%,rgb(from var(--lqip-cf-clr) r g b / calc(100% - var(--lqip-stop20))) 20%,rgb(from var(--lqip-cf-clr) r g b / calc(100% - var(--lqip-stop30))) 30%,rgb(from var(--lqip-cf-clr) r g b / calc(100% - var(--lqip-stop40))) 40%,rgb(from var(--lqip-cf-clr) r g b / calc(var(--lqip-stop40))) 60%,rgb(from var(--lqip-cf-clr) r g b / calc(var(--lqip-stop30))) 70%,rgb(from var(--lqip-cf-clr) r g b / calc(var(--lqip-stop20))) 80%,rgb(from var(--lqip-cf-clr) r g b / calc(var(--lqip-stop10))) 90%,transparent),linear-gradient(0deg,var(--lqip-base-clr),var(--lqip-base-clr))}.crt-filter:after{content:"";position:fixed;inset:0;background:#1210101a;opacity:0;pointer-events:none;animation:flicker .15s infinite;z-index:9999}.crt-filter:before{content:"";position:fixed;inset:0;background:linear-gradient(#12101000 50%,#00000040 50%),linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f);background-size:100% 2px,3px 100%;pointer-events:none;z-index:9999}.crt-filter{animation:phosphor 1.6s infinite}@media (prefers-reduced-motion: reduce){.crt-filter:after,.crt-filter:before{display:none}.crt-filter{animation:none}}}
