:root{--paper: #ffffff;--ink: #1c1917;--muted: #68635d;--body-ink: #383531;--muted-soft: #79736c;--rule: #dedbd6;--section-rule: #ebe9e5;--accent: #0589a9;--selection: #ccebf2;--code-surface: #f5f5f4;--hover-surface: #f7f6f4;--card-surface: #f4f3f1;--card-surface-hover: #eceae6;--scrollbar-thumb: #aaa49c;--portrait-shadow: #1c1917;--content-max: 61.5rem;--page-pad: 3rem;--rail: 12rem;--rail-gap: clamp(2rem, 5vw, 5.5rem);--body-font: "Geist Variable", Arial, Helvetica, sans-serif;--title-font: var(--body-font);--mono-font: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-meta: .75rem;--font-size-body: .9375rem;--font-size-title: 1.0625rem;--font-size-heading: 1.125rem;--font-size-section: 1.3125rem;--font-size-display: 1.75rem;--font-size-hero: clamp(1.75rem, 2.6vw, 2.25rem);--heading-weight: 600;--pixel-dots: repeating-linear-gradient(90deg, var(--rule) 0 2px, transparent 2px 4px);--section-rule-width: 10rem;--pixel-dots-vertical: repeating-linear-gradient(180deg, var(--rule) 0 2px, transparent 2px 4px);color-scheme:light}:root[data-theme=dark]{--paper: #1a1816;--ink: #f2efe9;--muted: #a8a299;--body-ink: #dcd7cf;--muted-soft: #9a948b;--rule: #403b35;--section-rule: #2e2a26;--accent: #4cc3e0;--selection: #134b5c;--code-surface: #26231f;--hover-surface: #24211e;--card-surface: #27241f;--card-surface-hover: #322e29;--scrollbar-thumb: #5a544c;--portrait-shadow: #34302b;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #1a1816;--ink: #f2efe9;--muted: #a8a299;--body-ink: #dcd7cf;--muted-soft: #9a948b;--rule: #403b35;--section-rule: #2e2a26;--accent: #4cc3e0;--selection: #134b5c;--code-surface: #26231f;--hover-surface: #24211e;--card-surface: #27241f;--card-surface-hover: #322e29;--scrollbar-thumb: #5a544c;--portrait-shadow: #34302b;color-scheme:dark}}@media(max-width:1050px){:root{--rail: 9rem;--rail-gap: 2.5rem}}@media(max-width:760px){:root{--page-pad: 1.25rem}}*,*:before,*:after{box-sizing:border-box;border:0 solid currentcolor}html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4}body{line-height:inherit}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre,fieldset{margin:0}fieldset,legend{padding:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}ol,ul,menu{margin:0;padding:0;list-style:none}hr{height:0;color:inherit;border-top-width:1px}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--mono-font);font-size:1em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{margin:0;padding:0;font:inherit;letter-spacing:inherit;color:inherit}button,select{text-transform:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button;background-color:transparent;background-image:none}button,[role=button]{cursor:pointer}:disabled{cursor:default}textarea{resize:vertical}::placeholder{opacity:1;color:var(--muted)}summary{display:list-item}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{min-width:20rem;background:var(--paper);font-feature-settings:"kern" 1,"liga" 1,"calt" 1;scroll-padding-top:2rem;scrollbar-color:var(--scrollbar-thumb) var(--paper)}body{min-width:20rem;margin:0;color:var(--ink);background:var(--paper);font-family:var(--body-font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:var(--title-font);color:var(--body-ink);font-weight:var(--heading-weight);letter-spacing:-.02em;text-wrap:balance}p,li{text-wrap:pretty}a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:.2em}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}:where(.segmented,.filters,th) button:focus-visible{position:relative;z-index:1;outline-offset:-2px}img{display:block;max-width:100%}::selection{color:var(--ink);background:var(--selection)}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;padding:.65rem .85rem;color:var(--paper);background:var(--ink);font-size:var(--font-size-meta);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-shell{display:flex;flex-direction:column;width:100%;min-height:100svh}.site-main{display:flex;flex:1;flex-direction:column;width:100%;min-width:0}.page-band{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--page-pad)}.index-list{margin:0;padding:0;list-style:none}.index-list li+li{background:var(--pixel-dots) left top / 100% 2px no-repeat}.index-list a{display:grid;grid-template-columns:13rem minmax(0,1fr) 6rem;column-gap:2rem;align-items:baseline;padding:1.1rem 0;color:inherit;text-decoration:none}.index-list .index-name{font-size:var(--font-size-title);color:var(--ink);overflow-wrap:anywhere}.index-list .index-name:has(+.index-date){grid-column:1 / 3}.index-list .index-description{max-width:40rem;font-size:var(--font-size-body);line-height:1.5;color:var(--body-ink)}.index-list .index-date{grid-column:3;justify-self:end;font-size:var(--font-size-meta);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.index-list a:focus-visible{outline-offset:2px}@media(max-width:760px){.index-list a{grid-template-columns:minmax(0,1fr) auto;row-gap:.35rem}.index-list .index-name,.index-list .index-name:has(+.index-date){grid-column:1;grid-row:1}.index-list .index-date{grid-column:2;grid-row:1}.index-list .index-description{grid-column:1 / -1;grid-row:2}}.link-preview{position:fixed;top:0;left:0;z-index:50;width:320px;border:1px solid var(--ink);background:var(--paper);pointer-events:none;opacity:0}.link-preview.is-visible{opacity:1}.link-preview.is-poster{width:150px}.link-preview img{display:block;width:100%;height:auto}.mini-rule-top,.mini-rule-bottom{position:relative}.mini-rule-top:before,.mini-rule-bottom:after{content:"";position:absolute;left:50%;width:158px;height:2px;background:var(--pixel-dots);transform:translate(-50%)}.mini-rule-top:before{top:0}.mini-rule-bottom:after{bottom:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}pre.astro-code{background-color:var(--code-surface)!important}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important}}.menu-positioner{z-index:60}.menu-popup{min-width:15rem;padding:.25rem 0;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--body-font);box-shadow:0 10px 28px #00000024}.menu-popup:focus,.menu-popup:focus-visible{outline:none}.menu-item{display:grid;padding:.35rem .75rem;color:inherit;font-size:var(--font-size-body);text-decoration:none;outline:none;cursor:default}.menu-popup .menu-item:focus-visible{outline:none}.menu-item[data-highlighted]{background:var(--hover-surface)}.rss-button{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;margin-left:.25rem;padding:0;border:0;background:none;color:var(--muted)}.rss-button[data-popup-open]{color:var(--ink)}.rss-icon svg{display:block;fill:currentColor}.rss-path{font-size:var(--font-size-meta);color:var(--muted)}@media(hover:hover){.rss-button:hover{color:var(--ink)}}.site-nav[data-astro-cid-4lunwx2e]{position:absolute;inset:0 0 auto;z-index:10;padding-top:1rem;pointer-events:none}.nav-row[data-astro-cid-4lunwx2e]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.brand-menu-trigger{display:contents}.brand[data-astro-cid-4lunwx2e]{display:inline-flex;width:44px;height:44px;align-items:center;pointer-events:auto}.brand-mark[data-astro-cid-4lunwx2e]{display:block;width:32px;height:22px;overflow:visible}.steam[data-astro-cid-4lunwx2e]{opacity:0}.brand[data-astro-cid-4lunwx2e]:focus-visible{outline-offset:2px}.links[data-astro-cid-4lunwx2e]{display:flex;align-items:center;pointer-events:auto}.theme-toggle[data-astro-cid-4lunwx2e]{display:inline-flex;width:44px;height:44px;margin-right:-14px;align-items:center;justify-content:center;padding:0;border:0;background:none;color:var(--muted)}.theme-icon[data-astro-cid-4lunwx2e] svg{display:block}.theme-light[data-astro-cid-4lunwx2e],.theme-dark[data-astro-cid-4lunwx2e],html[data-theme=light] .theme-system[data-astro-cid-4lunwx2e],html[data-theme=dark] .theme-system[data-astro-cid-4lunwx2e]{display:none}html[data-theme=light] .theme-light[data-astro-cid-4lunwx2e],html[data-theme=dark] .theme-dark[data-astro-cid-4lunwx2e]{display:block}.rss[data-astro-cid-4lunwx2e] .rss-button{width:44px;margin-left:0}@media(hover:hover){.theme-toggle[data-astro-cid-4lunwx2e]:hover{color:var(--ink)}}.rss[data-astro-cid-4lunwx2e]{display:flex;align-items:center;justify-self:end;margin-right:-13px;pointer-events:auto}.page-link[data-astro-cid-4lunwx2e]{display:inline-flex;min-height:44px;align-items:center;justify-content:center;color:var(--muted);text-decoration:none;font-size:var(--font-size-body);padding-inline:.6rem}.page-link[data-astro-cid-4lunwx2e][aria-current=page]{position:relative;color:var(--ink)}.page-link[data-astro-cid-4lunwx2e][aria-current=page]:after{content:"";position:absolute;inset-inline:.6rem;bottom:.55rem;height:2px;background:var(--pixel-dots)}.page-link[data-astro-cid-4lunwx2e]:focus-visible{outline-offset:-2px}@media(max-width:640px){.page-link[data-astro-cid-4lunwx2e]{padding-inline:.4rem;font-size:.875rem}.page-link[data-astro-cid-4lunwx2e][aria-current=page]:after{inset-inline:.4rem}.page-link[data-astro-cid-4lunwx2e][data-home]{display:none}.nav-row[data-astro-cid-4lunwx2e]{grid-template-columns:auto minmax(0,1fr) auto}.links[data-astro-cid-4lunwx2e]{justify-content:center}.brand[data-astro-cid-4lunwx2e]{margin-right:-10px}.theme-toggle[data-astro-cid-4lunwx2e]{margin-left:-10px}}@media(max-width:380px){.page-link[data-astro-cid-4lunwx2e]{padding-inline:.3rem;font-size:.8125rem}.page-link[data-astro-cid-4lunwx2e][aria-current=page]:after{inset-inline:.3rem}}@media(hover:hover){.page-link[data-astro-cid-4lunwx2e]:hover{color:var(--ink)}}.site-footer[data-astro-cid-gcn2mc3v]{margin-top:auto;padding-bottom:max(5rem,env(safe-area-inset-bottom))}.footer-content[data-astro-cid-gcn2mc3v]{display:grid;grid-template:"rule rule rule" auto "contact site elsewhere" auto / minmax(0,1fr) 10rem 10rem;column-gap:2rem}.footer-content[data-astro-cid-gcn2mc3v]:before{content:"";grid-area:rule;width:var(--section-rule-width);height:2px;margin-bottom:3rem;background:var(--pixel-dots)}.contact[data-astro-cid-gcn2mc3v]{grid-area:contact}.col[data-astro-cid-gcn2mc3v]:first-of-type{grid-area:site}.col[data-astro-cid-gcn2mc3v]:last-of-type{grid-area:elsewhere}.contact[data-astro-cid-gcn2mc3v] p[data-astro-cid-gcn2mc3v]{margin:0 0 .75rem;color:var(--muted)}.contact[data-astro-cid-gcn2mc3v] .copyright[data-astro-cid-gcn2mc3v]{margin:2rem 0 0;font-size:var(--font-size-meta)}.contact[data-astro-cid-gcn2mc3v] .email{display:block;padding:0;border:0;background:none;font-size:var(--font-size-heading);text-align:left;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}.col[data-astro-cid-gcn2mc3v] h2[data-astro-cid-gcn2mc3v]{margin:0 0 .8rem;font-size:var(--font-size-meta);font-weight:400;color:var(--muted)}.col[data-astro-cid-gcn2mc3v] a[data-astro-cid-gcn2mc3v]{display:block;padding:.3rem 0;color:var(--body-ink);text-decoration:none;font-size:var(--font-size-body)}@media(max-width:760px){.footer-content[data-astro-cid-gcn2mc3v]{grid-template:"rule rule" auto "contact contact" auto "site elsewhere" auto / max-content 1fr;column-gap:4rem}.col[data-astro-cid-gcn2mc3v]{margin-top:2.5rem}.col[data-astro-cid-gcn2mc3v] a[data-astro-cid-gcn2mc3v]{display:flex;min-height:44px;align-items:center;padding:0}}@media(hover:hover){.contact[data-astro-cid-gcn2mc3v] .email:hover,.col[data-astro-cid-gcn2mc3v] a[data-astro-cid-gcn2mc3v]:hover{text-decoration:underline;text-decoration-color:var(--rule)}}
