:root{--font-mono: "Hack", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--accent: oklch(.62 .16 350);--measure: 72ch;--line: 1.65}:root[data-theme=light]{--bg: #f4f1e8;--bg-soft: #ebe7d8;--fg: #1a1814;--fg-dim: #6b665a;--fg-faint: #a8a293;--sel: #1a1814;--sel-fg: #f4f1e8;color-scheme:light}:root[data-theme=dark]{--bg: #0d0d0d;--bg-soft: #16140f;--fg: #e8e4d8;--fg-dim: #8c8675;--fg-faint: #4a463c;--sel: #e8e4d8;--sel-fg: #0d0d0d;color-scheme:dark}@font-face{font-family:Hack;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/hack-regular.woff2) format("woff2")}@font-face{font-family:Hack;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/hack-bold.woff2) format("woff2")}@font-face{font-family:Hack;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/hack-italic.woff2) format("woff2")}@font-face{font-family:Hack;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/hack-bold-italic.woff2) format("woff2")}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-mono);font-size:15px;line-height:var(--line);font-feature-settings:"calt" 1,"liga" 0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}::selection{background:var(--sel);color:var(--sel-fg)}.shell{max-width:var(--measure);margin:0 auto;padding:2.25rem 1.5rem 4rem}@media(min-width:720px){.shell{padding:3rem 2rem 5rem}}.promptbar{display:flex;flex-wrap:wrap;align-items:baseline;gap:0;margin:0 0 2.5rem;color:var(--fg-dim);font-size:14px}.promptbar .user{color:var(--accent)}.promptbar .at,.promptbar .colon,.promptbar .tilde,.promptbar .dollar{color:var(--fg-dim)}.promptbar .host{color:var(--fg)}.promptbar .cmd{color:var(--fg);margin-left:.5ch}.promptbar .cmd a{color:var(--fg);text-decoration:none;border-bottom:1px dashed var(--fg-faint);padding-bottom:1px}.promptbar .cmd a:hover,.promptbar .cmd a:focus-visible{background:var(--sel);color:var(--sel-fg);border-bottom-color:transparent;outline:none}.promptbar .cmd .seg+.seg:before{content:" "}.promptbar .cmd .static{color:var(--fg)}.intro{margin:0 0 2.75rem;max-width:64ch}.intro p{margin:0 0 .9rem}.intro p:last-child{margin-bottom:0}.cursor,.intro p:last-of-type:after{display:inline-block;width:.6ch;height:1em;background:var(--fg);margin-left:.15ch;transform:translateY(2px);animation:blink 1.1s steps(1,end) infinite}.intro p:last-of-type:after{content:"";vertical-align:baseline}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.cursor,.intro p:last-of-type:after{animation:none;opacity:1}}.md ul{list-style:none;padding:0;margin:0}.md ul li{padding-left:2.5ch;text-indent:-2.5ch}.md ul li:before{content:"- ";color:var(--fg-dim)}.md ol{list-style:none;padding:0;margin:0;counter-reset:n}.md ol li{counter-increment:n;padding-left:3.5ch;text-indent:-3.5ch}.md ol li:before{content:counter(n) ". ";color:var(--fg-dim)}.md p{margin:0 0 .9rem}.md p:last-child{margin-bottom:0}.empty{color:var(--fg-faint)}section.block{margin:0 0 2.5rem}.block-head{display:flex;align-items:baseline;gap:.6ch;margin:0 0 .85rem;color:var(--fg);font-weight:500;font-size:15px}.block-head .dollar{color:var(--fg-dim)}.block-head .path{color:var(--accent)}.block-head .ann{color:var(--fg-dim);margin-left:auto;font-size:13px}.cowsay{font-family:inherit;font-size:13px;line-height:1.25;color:var(--fg);margin:0;white-space:pre;overflow-x:auto}.sep{color:var(--fg-faint);margin:1.4rem 0;user-select:none;overflow:hidden;white-space:nowrap}.sep:before{content:"────────────────────────────────────────────────────────────────────────"}ul.dash,ol.num{list-style:none;padding:0;margin:0}ul.dash li{padding-left:2.5ch;text-indent:-2.5ch}ul.dash li:before{content:"- ";color:var(--fg-dim)}ol.num{counter-reset:n}ol.num li{counter-increment:n;padding-left:3.5ch;text-indent:-3.5ch}ol.num li:before{content:counter(n) ". ";color:var(--fg-dim)}a,.lnk{color:var(--fg);text-decoration:none;border-bottom:1px dashed var(--fg-faint);padding-bottom:1px;cursor:pointer}a:hover,.lnk:hover,a:focus-visible,.lnk:focus-visible{background:var(--sel);color:var(--sel-fg);border-bottom-color:transparent;outline:none}a.bracket{border-bottom:none;padding-bottom:0}a.bracket:before{content:"[";color:var(--fg-dim)}a.bracket:after{content:"]";color:var(--fg-dim)}a.bracket:hover,a.bracket:focus-visible{background:var(--sel);color:var(--sel-fg)}a.bracket:hover:before,a.bracket:hover:after,a.bracket:focus-visible:before,a.bracket:focus-visible:after{color:var(--sel-fg)}.projects{display:flex;flex-direction:column;gap:.35rem}.proj{display:grid;grid-template-columns:minmax(14ch,max-content) 1fr auto;gap:0 1.5ch;align-items:baseline}.proj .name{color:var(--fg)}.proj .desc{color:var(--fg-dim)}.proj .desc:before{content:"— ";color:var(--fg-faint)}.proj .lnk-wrap{color:var(--fg-dim);white-space:nowrap}.proj .lnk-wrap:before{content:"→ ";color:var(--fg-faint)}@media(max-width:620px){.proj{grid-template-columns:1fr;gap:0}.proj .desc:before{content:""}.proj .desc,.proj .lnk-wrap{padding-left:2ch}.proj .lnk-wrap:before{content:"→ "}}.elsewhere{display:grid;grid-template-columns:14ch 1fr;gap:.15rem 1ch}.elsewhere .k{color:var(--fg-dim)}.ls-head{color:var(--fg-dim);margin:0 0 .5rem;font-size:13px}.ls{display:flex;flex-direction:column;gap:.05rem}.ls .row{display:grid;grid-template-columns:11ch 6ch 10ch 1fr;gap:0 1.5ch;align-items:baseline;padding:1px 0}.ls .row .perm{color:var(--fg-faint)}.ls .row .size{color:var(--fg-faint);text-align:right}.ls .row .date{color:var(--fg-dim)}.ls .row a.title{border-bottom:none;color:var(--fg)}.ls .row a.title:hover,.ls .row a.title:focus-visible{background:var(--sel);color:var(--sel-fg)}@media(max-width:620px){.ls .row{grid-template-columns:10ch 1fr}.ls .row .perm,.ls .row .size{display:none}}article.note h1{font-size:17px;font-weight:700;margin:0 0 .25rem}article.note h1:before{content:"# ";color:var(--fg-dim);font-weight:400}article.note .meta{color:var(--fg-dim);font-size:13px;margin:0 0 1.75rem}article.note h2{font-size:15px;font-weight:700;margin:2rem 0 .6rem}article.note h2:before{content:"## ";color:var(--fg-dim);font-weight:400}article.note p{margin:0 0 1rem}article.note ul.dash,article.note ol.num{margin:0 0 1rem}article.note blockquote{margin:0 0 1rem;padding-left:2ch;border-left:1px solid var(--fg-faint);color:var(--fg-dim)}article.note code{background:var(--bg-soft);padding:.05em .35ch;border-radius:0}article.note pre{background:var(--bg-soft);border:1px solid var(--fg-faint);padding:.8rem 1ch;margin:0 0 1rem;overflow-x:auto;font-size:13.5px;line-height:1.55}article.note pre code{background:none;padding:0}article.note .prevnext{color:var(--fg-dim);font-size:13px}article.note .prevnext a{color:var(--fg-dim)}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}footer.foot{margin-top:3.5rem;padding-top:1rem;border-top:1px solid var(--fg-faint);display:flex;flex-wrap:wrap;gap:0 2ch;align-items:baseline;color:var(--fg-dim);font-size:13px}footer.foot .spacer{flex:1}footer.foot code{color:var(--fg)}footer.foot button{color:var(--fg-dim);background:none;border:0;font:inherit;cursor:pointer;padding:0;border-bottom:1px dashed var(--fg-faint)}footer.foot button:hover,footer.foot button:focus-visible{background:var(--sel);color:var(--sel-fg);border-bottom-color:transparent;outline:none}footer.foot button[aria-pressed=true]{color:var(--fg)}.nav-loader{position:fixed;top:.85rem;right:1.25rem;font-family:var(--font-mono);font-size:12px;color:var(--fg);z-index:100;pointer-events:none;user-select:none;opacity:0;transition:opacity .12s linear}.nav-loader.loading{opacity:1}.nav-loader .dollar{color:var(--accent);margin-right:.5ch}.nav-loader .verb{color:var(--fg)}.nav-loader .dots{display:inline-block;width:2ch;text-align:left;color:var(--fg-dim)}@media(prefers-reduced-motion:reduce){.nav-loader .dots:after{content:"..."!important}}::view-transition-old(root),::view-transition-new(root){animation-duration:80ms;animation-timing-function:linear}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
