:root{--screen:#0b0b0a;--body:#ffb000;--muted:#b07a1f;--dim:#7a7a6c;--active:#2be55e;--link:#45c8de;--error:#ff5c5c;--meta:#c77dff;--font-ui:"IBM Plex Mono", monospace;--font-prose:"IBM Plex Sans", system-ui, sans-serif;--size-ui:15px;--size-prose:16px;--weight-bold:500;--weight-system:400;--weight-muted:300;--row:24px;--row-1:24px;--row-2:48px;--row-3:72px;--row-4:96px;--section-pad:var(--row-2);--stack:var(--row-2);--chrome-block:calc(var(--section-pad) + var(--row-2) + 1em);--pager-h:100dvh;--container:72ch;--gutter:2ch;--measure:62ch;--indent:2ch;--reveal-dur:.16s;--reveal-ease:step-end;--reveal-step:.15s;--reveal-cap:1.6s;--reveal-step-actual:var(--reveal-step);--crt-scan-color:var(--body);--crt-scan-opacity:.12;--crt-scan-thickness:1px;--crt-scan-period:6px;--crt-vignette:.85}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/ibm-plex-mono-300.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2")}@media (width>=768px){:root{--gutter:4ch}}@media (width<=767px){:root{--crt-scan-opacity:.09;--crt-vignette:.7;--section-pad:var(--row-1);--stack:var(--row-1)}}@media (height<=900px){:root{--section-pad:var(--row-1);--stack:var(--row-1)}}*,:before,:after{box-sizing:border-box}html{background:var(--screen);-webkit-text-size-adjust:100%}body{background:var(--screen);min-height:100dvh;color:var(--body);font-family:var(--font-ui);font-size:var(--size-ui);font-weight:var(--weight-system);line-height:var(--row);margin:0}h1,h2,h3,p,ul,pre{font-size:inherit;font-family:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}ul{list-style:none}h1,h2,h3{font-size:var(--size-ui);font-weight:var(--weight-bold)}a{color:var(--link);-webkit-tap-highlight-color:transparent}button{appearance:none;color:var(--link);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0}a:active,button:active{color:var(--body)}:focus-visible{outline:2px solid var(--link);outline-offset:2px}::selection{background:var(--body);color:var(--screen)}.wrap{max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}section{box-sizing:border-box;min-height:var(--pager-h);flex-direction:column;padding-block:0;display:flex;overflow:clip}.section-pager{z-index:2;height:var(--pager-h);margin-bottom:calc(-1 * var(--pager-h));pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:sticky;top:0}.js section:not(.is-active) .section-pager{visibility:hidden;pointer-events:none}.js section.is-active .section-pager{width:auto;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);box-sizing:border-box;margin-bottom:0;position:fixed;top:0;left:0;right:0}.section-chrome-start,.section-chrome-end{background:var(--screen);flex-shrink:0}.section-chrome-start:not(:empty){padding-top:var(--section-pad);box-shadow:0 1em 1.25em .35em var(--screen)}.section-chrome-end:not(:empty){padding-bottom:calc(var(--section-pad) + env(safe-area-inset-bottom,0px));box-shadow:0 -1em 1.25em .35em var(--screen)}.section-chrome-start:empty,.section-chrome-end:empty{background:0 0}.section-pager .scroll-cue{pointer-events:auto}.section-main{min-width:0;padding-top:var(--section-pad);padding-bottom:calc(var(--section-pad) + env(safe-area-inset-bottom,0px));flex-direction:column;flex:auto;display:flex}section:has(.section-chrome-start:not(:empty)) .section-main{padding-top:var(--chrome-block)}section:has(.section-chrome-end:not(:empty)) .section-main{padding-bottom:calc(var(--chrome-block) + env(safe-area-inset-bottom,0px))}.snap-end{pointer-events:none;flex-shrink:0;height:1px;margin-top:-1px}.rule{width:100%;color:color-mix(in srgb, var(--dim) 40%, var(--screen));white-space:nowrap;flex-shrink:0;overflow:hidden}.rule:before{content:"────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────"}h2,h3{color:var(--body)}h2{margin-bottom:var(--stack)}.glyph{color:var(--active);font-weight:var(--weight-system)}.bracket{color:var(--dim)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prompt{color:var(--body);flex-shrink:0}.prompt-mute{color:var(--muted);font-weight:var(--weight-muted)}#hero h1{flex-shrink:0}.ascii-heading{margin-bottom:var(--stack);font-weight:var(--weight-muted);color:var(--body);white-space:pre;flex-shrink:0;line-height:1.15;overflow:hidden}#hero .pitch{font-weight:var(--weight-muted);color:var(--muted);flex-shrink:0;align-items:center;column-gap:.5ch;display:flex}#hero .loc-icon{flex-shrink:0;width:1em;height:1em;display:block}#hero .hero-links{min-height:var(--row-2);flex-wrap:wrap;flex-shrink:0;align-items:center;column-gap:1ch;display:flex}#hero .hero-links a{color:var(--link);text-decoration:underline}#hero .ascii{aspect-ratio:5/2;width:100%;margin-block:var(--row-1);flex:none;position:relative;overflow:hidden}#hero .ascii pre{font-weight:var(--weight-muted);color:var(--muted);align-content:center;display:grid;position:absolute;inset:0;overflow:hidden}#hero .ascii canvas{width:100%;height:100%;display:block;position:absolute;inset:0}#hero .ascii.is-enhanced pre{visibility:hidden}.scroll-cue{min-height:var(--row-2);color:var(--link);flex-shrink:0;align-items:center;text-decoration:underline;display:flex}#skills .disciplines{gap:var(--stack);flex-direction:column;flex:auto;display:flex}#skills .discipline-name{color:var(--body)}#skills .discipline-line,#skills .discipline-tools{padding-left:var(--indent)}#skills .discipline-line{color:var(--body);font-weight:var(--weight-system)}#skills .discipline-tools{flex-wrap:wrap;align-items:baseline;column-gap:2ch;display:flex}#skills .discipline-key{color:var(--dim);flex-shrink:0}.chips{flex-wrap:wrap;column-gap:1ch;display:flex}.chip{font-family:var(--font-ui);font-size:var(--size-ui);font-weight:var(--weight-muted);color:var(--muted)}#currently .store-links{margin-bottom:var(--stack);flex-wrap:wrap;flex-shrink:0;column-gap:2ch;display:flex}#currently .store-link{min-height:var(--row-2);color:var(--link);align-items:center;column-gap:.5ch;text-decoration:underline;display:inline-flex}#currently .store-icon{width:1em;height:1em;display:block}#currently .prose{max-width:var(--measure);gap:var(--row-1);font-family:var(--font-prose);font-size:var(--size-prose);font-weight:var(--weight-system);flex-direction:column;flex:auto;display:flex}#currently .prose p,#currently .prose-row{align-items:baseline;column-gap:1ch;display:flex}#currently .prose-key{color:var(--dim);font-weight:var(--weight-muted);flex:0 0 12ch}#currently .prose p>span:not(.prose-key),#currently .prose-row .chips{flex:1 1 0;min-width:0}#currently .prose .link-row{flex-shrink:0}#links .link-list{flex-direction:column;flex:auto;display:flex}.link-row{width:100%;min-height:var(--row-2);font-weight:var(--weight-system);color:var(--link);flex-wrap:wrap;align-items:center;column-gap:1ch;text-decoration:none;display:flex}.link-label{align-items:center;column-gap:.5ch;text-decoration:underline;display:inline-flex}.link-icon{flex-shrink:0;width:1em;height:1em;display:block}.link-value{font-weight:var(--weight-muted);color:var(--muted);text-decoration:none}.link-row.is-copied{color:var(--active)}.link-row.is-copied .link-label{text-decoration:none}.link-row.is-copied .link-value{color:var(--active)}#links .prompt-end{width:100%;margin-top:var(--row-1);justify-content:space-between;align-items:center;column-gap:2ch;display:flex}#links .copyright{color:var(--dim)}#links .cursor{background:var(--active);width:1ch;height:1em;animation:1.06s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){#links .cursor{animation:none}}html{scroll-snap-type:y mandatory;scroll-padding-block-start:0}html.is-booting{scroll-snap-type:none}html.is-overflow-active{scroll-snap-type:y proximity}html.is-cue-scrolling{scroll-snap-type:none}section{scroll-snap-align:start;scroll-snap-stop:always}section.is-overflow{scroll-snap-stop:normal}section.is-overflow .snap-end{scroll-snap-align:end}#hero .ascii{touch-action:pan-y}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}[data-line]{opacity:1;transform:none}.js [data-line]{opacity:0;transform:translateY(var(--row))}.js [data-line].is-in,.js [data-line].is-typed,.js #hero.is-snapped [data-line]{opacity:1;transform:none}.js [data-line]:after{content:"";opacity:0;pointer-events:none;background:currentColor;width:1ch;height:1em;margin-left:.5ch;display:inline-block}.js [data-line].is-in:not(.is-typed):after{opacity:1}.js .prompt-end[data-line]:after,.js #hero.is-snapped [data-line]:after,.js [data-line].is-typed:after{opacity:0}.js .prompt-end[data-line]:after{display:none}@media (prefers-reduced-motion:reduce){.js [data-line]{opacity:1;transform:none}.js [data-line]:after,.js [data-line].is-in:not(.is-typed):after{opacity:0}html{scroll-behavior:auto}}.crt{--crt-scan-ink:color-mix(in srgb, var(--crt-scan-color) calc(var(--crt-scan-opacity) * 100%), transparent);z-index:20;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 70% 62% at 50% 45%, #000 18%, #00000073 52%, rgb(0 0 0/calc(1 - var(--crt-vignette))) 100%);-webkit-mask-image:radial-gradient(ellipse 70% 62% at 50% 45%, #000 18%, #00000073 52%, rgb(0 0 0/calc(1 - var(--crt-vignette))) 100%);mask-image:radial-gradient(ellipse 70% 62% at 50% 45%, #000 18%, #00000073 52%, rgb(0 0 0/calc(1 - var(--crt-vignette))) 100%);position:fixed;inset:0}.crt:before,.crt:after{content:"";position:absolute;inset:0}.crt:before{background:repeating-linear-gradient(to right, var(--crt-scan-ink) 0 12px, transparent 12px 15px, var(--crt-scan-ink) 15px 35px, transparent 35px 37px, var(--crt-scan-ink) 37px 45px, transparent 45px 52px, var(--crt-scan-ink) 52px 67px, transparent 67px 71px, var(--crt-scan-ink) 71px 81px, transparent 81px 89px);-webkit-mask-image:repeating-linear-gradient(to bottom, #000 0 var(--crt-scan-thickness), transparent var(--crt-scan-thickness) calc(var(--crt-scan-period) * 2));mask-image:repeating-linear-gradient(to bottom, #000 0 var(--crt-scan-thickness), transparent var(--crt-scan-thickness) calc(var(--crt-scan-period) * 2))}.crt:after{background:repeating-linear-gradient(to right, var(--crt-scan-ink) 0 18px, transparent 18px 23px, var(--crt-scan-ink) 23px 32px, transparent 32px 34px, var(--crt-scan-ink) 34px 56px, transparent 56px 64px, var(--crt-scan-ink) 64px 75px, transparent 75px 78px, var(--crt-scan-ink) 78px 94px, transparent 94px 100px, var(--crt-scan-ink) 100px 107px);-webkit-mask-image:repeating-linear-gradient(to bottom, transparent 0 var(--crt-scan-period), #000 var(--crt-scan-period) calc(var(--crt-scan-period) + var(--crt-scan-thickness)), transparent calc(var(--crt-scan-period) + var(--crt-scan-thickness)) calc(var(--crt-scan-period) * 2));mask-image:repeating-linear-gradient(to bottom, transparent 0 var(--crt-scan-period), #000 var(--crt-scan-period) calc(var(--crt-scan-period) + var(--crt-scan-thickness)), transparent calc(var(--crt-scan-period) + var(--crt-scan-thickness)) calc(var(--crt-scan-period) * 2))}
