:root{--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-size-base:1rem;--font-size-sm:.8125rem;--font-size-terminal:.875rem;--line-height-base:1.5;--line-height-terminal:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-window:.5rem;--size-terminal-max:56rem;--size-terminal-min-height:20rem;--size-terminal-body-max:min(60svh, 42rem)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;min-height:100svh}img,svg,video,canvas{max-width:100%;display:block}input,button,textarea,select{font:inherit}pre,code{font-family:inherit;font-size:1em}ul,ol{padding:0;list-style:none}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}body{background-color:var(--color-bg)}::selection{background-color:var(--color-accent);color:var(--color-bg)}a{color:var(--color-accent);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}body{font-family:var(--font-mono);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text)}.page{justify-content:center;align-items:center;gap:var(--space-4);min-height:100svh;padding:var(--space-5);flex-direction:column;display:flex}@media (width<=30rem){.page{justify-content:flex-start;height:100svh;min-height:0}}.terminal{width:100%;max-width:var(--size-terminal-max);border:1px solid var(--color-border);border-radius:var(--radius-window);background-color:var(--color-surface);box-shadow:var(--shadow-window);overflow:hidden}.terminal__body{min-height:var(--size-terminal-min-height);max-height:var(--size-terminal-body-max);padding:var(--space-4);font-size:var(--font-size-terminal);line-height:var(--line-height-terminal);font-variant-ligatures:none;font-feature-settings:"calt" 0, "liga" 0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;overflow-y:auto}.terminal__body::-webkit-scrollbar{width:var(--space-2)}.terminal__body::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-window)}.terminal__body::-webkit-scrollbar-track{background-color:#0000}.terminal__bar{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background-color:var(--color-chrome);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.terminal__dots{gap:var(--space-2);justify-self:start;display:flex}.terminal__dot{width:var(--space-3);height:var(--space-3);border-radius:50%}.terminal__dot--danger{background-color:var(--color-danger)}.terminal__dot--warning{background-color:var(--color-warning)}.terminal__dot--success{background-color:var(--color-success)}.terminal__title{max-width:100%;font-size:var(--font-size-sm);color:var(--color-subtle);white-space:nowrap;text-overflow:ellipsis;justify-self:center;font-weight:500;overflow:hidden}@media (width<=30rem){.terminal{flex-direction:column;flex:1;min-height:0;display:flex}.terminal__bar{flex-shrink:0}.terminal__body{flex:1;min-height:0;max-height:none}}.hint{justify-content:center;align-items:center;gap:var(--space-2) var(--space-3);max-width:var(--size-terminal-max);font-size:var(--font-size-sm);color:var(--color-muted);text-align:center;flex-wrap:wrap;display:flex}.hint__commands{justify-content:center;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.hint__command{padding:0 var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-window);color:var(--color-accent);font:inherit;line-height:var(--line-height-base);cursor:pointer;background-color:#0000}.hint__command:hover,.hint__command:focus-visible{border-color:var(--color-accent);background-color:var(--color-chrome);color:var(--color-text)}.line{overflow-wrap:break-word;white-space:pre-wrap}.line--command{color:var(--color-text)}.line--muted{color:var(--color-muted)}.line--success{color:var(--color-success)}.line--accent{color:var(--color-accent)}.boot{margin-block-end:var(--space-5)}.boot__banner{color:var(--color-accent);white-space:pre;margin-block-end:var(--space-4);line-height:1.1}.entry+.entry{margin-block-start:var(--space-5)}.entry__output{max-width:none}@media (width<=30rem){.boot__banner{font-size:.625rem}}.fetch{gap:var(--space-4);grid-template-columns:auto 1fr;align-items:start;display:grid}.fetch__art{color:var(--color-accent);white-space:pre;line-height:1.1}.fetch__info{row-gap:var(--space-3);align-content:start;display:grid}.fetch__rows{column-gap:var(--space-4);grid-template-columns:max-content 1fr;display:grid}.fetch__key{color:var(--color-accent)}.fetch__swatches{gap:var(--space-1);display:flex}.fetch__swatch{width:var(--space-3);height:var(--space-3);border-radius:50%}.fetch__swatch--red{background-color:var(--cp-red)}.fetch__swatch--peach{background-color:var(--cp-peach)}.fetch__swatch--yellow{background-color:var(--cp-yellow)}.fetch__swatch--green{background-color:var(--cp-green)}.fetch__swatch--teal{background-color:var(--cp-teal)}.fetch__swatch--blue{background-color:var(--cp-blue)}.fetch__swatch--mauve{background-color:var(--cp-mauve)}.fetch__swatch--pink{background-color:var(--cp-pink)}@media (width<=48rem){.fetch{grid-template-columns:1fr}}@media (width<=30rem){.fetch__art{font-size:.625rem}.fetch__rows{grid-template-columns:1fr}.fetch__key:not(:first-child){margin-block-start:var(--space-2)}}.code{white-space:pre;overflow-x:auto}.code__key{color:var(--color-accent)}.code__string{color:var(--color-success)}.code__muted{color:var(--color-muted)}.commit{column-gap:var(--space-3);display:flex}.commit__hash{width:8ch;color:var(--color-muted);flex:none}.commit__year{width:5ch;color:var(--color-accent);flex:none}.commit__msg{overflow-wrap:break-word;flex:1}.commit__tag{color:var(--color-success)}@media (width<=30rem){.commit{flex-wrap:wrap}.commit__msg{flex-basis:100%}}.brands{column-gap:var(--space-4);row-gap:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));margin-block-start:var(--space-3);display:grid}.brands__item{color:var(--color-accent)}.tags{column-gap:var(--space-4);row-gap:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));margin-block-start:var(--space-3);display:grid}.tags__item{color:var(--color-accent)}.prompt{align-items:baseline;column-gap:1ch;margin-block-start:var(--space-5);display:flex}.prompt[hidden]{display:none}.prompt__user{color:var(--color-success);font-weight:500}.prompt__path{color:var(--color-accent)}.prompt__symbol{color:var(--color-subtle)}.prompt__field{flex:1;min-width:0;position:relative;overflow:hidden}.prompt__input{width:100%;color:var(--color-text);caret-color:#0000;background-color:#0000;border:none;outline:none;padding:0}.prompt__cursor{top:50%;left:min(var(--prompt-caret,0) * 1ch - var(--prompt-scroll,0px), 100% - 1ch);background-color:var(--color-text);pointer-events:none;width:1ch;height:1.1em;position:absolute;transform:translateY(-50%)}.prompt__ghost{top:50%;left:min(var(--prompt-caret,0) * 1ch - var(--prompt-scroll,0px), 100% - 1ch);color:var(--color-muted);white-space:pre;pointer-events:none;position:absolute;transform:translateY(-50%)}.prompt__ghost[hidden]{display:none}.prompt__field--suggesting .prompt__cursor{box-shadow:inset 0 0 0 1px var(--color-text);background-color:#0000}.game{margin-block-start:var(--space-5)}.game__board{color:var(--color-success);white-space:pre;margin:0;line-height:1.15;overflow-x:auto}.game__status{margin-block-start:var(--space-3)}.constellation{margin-block-start:var(--space-4)}.constellation__frame{aspect-ratio:2;border:1px solid var(--color-border);border-radius:var(--radius-window);background-color:var(--color-surface);width:100%;max-height:22rem;overflow:hidden}.constellation__canvas{touch-action:none;width:100%;height:100%;display:block}.constellation__hint{margin-block-start:var(--space-2)}.resume{gap:var(--space-5);flex-direction:column;display:flex}.resume__head{gap:var(--space-1);flex-direction:column;display:flex}.resume__name{color:var(--color-text);font-size:1.05rem;font-weight:700}.resume__tagline{color:var(--color-subtle)}.resume__contact{gap:var(--space-1) var(--space-2);font-size:var(--font-size-sm);color:var(--color-muted);flex-wrap:wrap;display:flex}.resume__sep{color:var(--color-border)}.resume__section{gap:var(--space-3);flex-direction:column;display:flex}.resume__section-title{font-size:var(--font-size-sm);letter-spacing:.08em;color:var(--color-accent);text-transform:uppercase;font-weight:700}.resume__summary{color:var(--color-text)}.resume__role{gap:var(--space-1);flex-direction:column;display:flex}.resume__role-head{justify-content:space-between;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.resume__role-title{color:var(--color-text);font-weight:700}.resume__role-date{font-size:var(--font-size-sm);color:var(--color-muted);white-space:nowrap}.resume__role-meta{color:var(--color-accent)}.resume__role-tech{font-size:var(--font-size-sm);color:var(--color-muted)}.resume__role-highlights,.resume__highlights{gap:var(--space-1);color:var(--color-subtle);flex-direction:column;padding-inline-start:var(--space-5);list-style:outside;display:flex}.resume__skills{gap:var(--space-1);flex-direction:column;display:flex}.resume__skill{gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.resume__skill-label{min-width:11rem;color:var(--color-accent)}.resume__skill-value{min-width:0;color:var(--color-subtle);flex:1}[data-boot] .terminal__body>*{animation:.45s ease-out both boot-reveal}[data-boot] .terminal__body>:first-child{animation-delay:0s}[data-boot] .terminal__body>:nth-child(2){animation-delay:90ms}[data-boot] .terminal__body>:nth-child(3){animation-delay:.18s}[data-boot] .terminal__body>:nth-child(4){animation-delay:.27s}[data-boot] .terminal__body>:nth-child(5){animation-delay:.36s}[data-boot] .terminal__body>:nth-child(6){animation-delay:.45s}[data-boot] .terminal__body>:nth-child(7){animation-delay:.54s}[data-boot] .terminal__body>:nth-child(8){animation-delay:.63s}[data-boot] .terminal__body>:nth-child(9){animation-delay:.72s}[data-boot] .terminal__body>:nth-child(10){animation-delay:.81s}@keyframes boot-reveal{0%{opacity:0;transform:translateY(.4em)}to{opacity:1;transform:translateY(0)}}.prompt__cursor.is-blinking{animation:1.1s step-end infinite cursor-blink}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){[data-boot] .terminal__body>*,.prompt__cursor.is-blinking{animation:none}}:root{--cp-rosewater:#f5e0dc;--cp-flamingo:#f2cdcd;--cp-pink:#f5c2e7;--cp-mauve:#cba6f7;--cp-red:#f38ba8;--cp-maroon:#ee99a0;--cp-peach:#fab387;--cp-yellow:#f9e2af;--cp-green:#a6e3a1;--cp-teal:#94e2d5;--cp-sky:#89dceb;--cp-sapphire:#74c7ec;--cp-blue:#89b4fa;--cp-lavender:#b4befe;--cp-text:#cdd6f4;--cp-subtext-1:#bac2de;--cp-subtext-0:#a6adc8;--cp-overlay-2:#9399b2;--cp-overlay-1:#7f849c;--cp-overlay-0:#6c7086;--cp-surface-2:#585b70;--cp-surface-1:#45475a;--cp-surface-0:#313244;--cp-base:#1e1e2e;--cp-mantle:#181825;--cp-crust:#11111b;--color-bg:var(--cp-crust);--color-surface:var(--cp-base);--color-chrome:var(--cp-mantle);--color-border:var(--cp-surface-0);--color-text:var(--cp-text);--color-subtle:var(--cp-subtext-0);--color-muted:var(--cp-overlay-0);--color-accent:var(--cp-blue);--color-success:var(--cp-green);--color-warning:var(--cp-yellow);--color-danger:var(--cp-red);--shadow-window:0 1.5rem 3rem #11111b8c}[data-theme=latte]{--cp-rosewater:#dc8a78;--cp-flamingo:#dd7878;--cp-pink:#ea76cb;--cp-mauve:#8839ef;--cp-red:#d20f39;--cp-maroon:#e64553;--cp-peach:#fe640b;--cp-yellow:#df8e1d;--cp-green:#40a02b;--cp-teal:#179299;--cp-sky:#04a5e5;--cp-sapphire:#209fb5;--cp-blue:#1e66f5;--cp-lavender:#7287fd;--cp-text:#4c4f69;--cp-subtext-1:#5c5f77;--cp-subtext-0:#6c6f85;--cp-overlay-2:#7c7f93;--cp-overlay-1:#8c8fa1;--cp-overlay-0:#9ca0b0;--cp-surface-2:#acb0be;--cp-surface-1:#bcc0cc;--cp-surface-0:#ccd0da;--cp-base:#eff1f5;--cp-mantle:#e6e9ef;--cp-crust:#dce0e8;--color-bg:var(--cp-crust);--color-surface:var(--cp-base);--color-chrome:var(--cp-mantle);--color-border:var(--cp-surface-0);--color-text:var(--cp-text);--color-subtle:var(--cp-subtext-0);--color-muted:var(--cp-overlay-0);--color-accent:var(--cp-blue);--color-success:var(--cp-green);--color-warning:var(--cp-yellow);--color-danger:var(--cp-red);--shadow-window:0 1.5rem 3rem #dce0e833}[data-theme=frappe]{--cp-rosewater:#f2d5cf;--cp-flamingo:#eebebe;--cp-pink:#f4b8e4;--cp-mauve:#ca9ee6;--cp-red:#e78284;--cp-maroon:#ea999c;--cp-peach:#ef9f76;--cp-yellow:#e5c890;--cp-green:#a6d189;--cp-teal:#81c8be;--cp-sky:#99d1db;--cp-sapphire:#85c1dc;--cp-blue:#8caaee;--cp-lavender:#babbf1;--cp-text:#c6d0f5;--cp-subtext-1:#b5bfe2;--cp-subtext-0:#a5adce;--cp-overlay-2:#949cbb;--cp-overlay-1:#838ba7;--cp-overlay-0:#737994;--cp-surface-2:#626880;--cp-surface-1:#51576d;--cp-surface-0:#414559;--cp-base:#303446;--cp-mantle:#292c3c;--cp-crust:#232634;--color-bg:var(--cp-crust);--color-surface:var(--cp-base);--color-chrome:var(--cp-mantle);--color-border:var(--cp-surface-0);--color-text:var(--cp-text);--color-subtle:var(--cp-subtext-0);--color-muted:var(--cp-overlay-0);--color-accent:var(--cp-blue);--color-success:var(--cp-green);--color-warning:var(--cp-yellow);--color-danger:var(--cp-red);--shadow-window:0 1.5rem 3rem #2326348c}[data-theme=macchiato]{--cp-rosewater:#f4dbd6;--cp-flamingo:#ee99a0;--cp-pink:#f5bde6;--cp-mauve:#c6a0f6;--cp-red:#ed8796;--cp-maroon:#ee99a0;--cp-peach:#f5a97f;--cp-yellow:#eed49f;--cp-green:#a6da95;--cp-teal:#8bd5ca;--cp-sky:#91d7e3;--cp-sapphire:#7dc4e8;--cp-blue:#8aadf4;--cp-lavender:#b7bdf8;--cp-text:#cad3f5;--cp-subtext-1:#b8c0e0;--cp-subtext-0:#a5adcb;--cp-overlay-2:#939ab7;--cp-overlay-1:#8087a2;--cp-overlay-0:#6e738d;--cp-surface-2:#5b6078;--cp-surface-1:#494d64;--cp-surface-0:#363a4f;--cp-base:#24273a;--cp-mantle:#1e2030;--cp-crust:#181926;--color-bg:var(--cp-crust);--color-surface:var(--cp-base);--color-chrome:var(--cp-mantle);--color-border:var(--cp-surface-0);--color-text:var(--cp-text);--color-subtle:var(--cp-subtext-0);--color-muted:var(--cp-overlay-0);--color-accent:var(--cp-blue);--color-success:var(--cp-green);--color-warning:var(--cp-yellow);--color-danger:var(--cp-red);--shadow-window:0 1.5rem 3rem #1819268c}[data-theme=mocha]{--cp-rosewater:#f5e0dc;--cp-flamingo:#f2cdcd;--cp-pink:#f5c2e7;--cp-mauve:#cba6f7;--cp-red:#f38ba8;--cp-maroon:#ee99a0;--cp-peach:#fab387;--cp-yellow:#f9e2af;--cp-green:#a6e3a1;--cp-teal:#94e2d5;--cp-sky:#89dceb;--cp-sapphire:#74c7ec;--cp-blue:#89b4fa;--cp-lavender:#b4befe;--cp-text:#cdd6f4;--cp-subtext-1:#bac2de;--cp-subtext-0:#a6adc8;--cp-overlay-2:#9399b2;--cp-overlay-1:#7f849c;--cp-overlay-0:#6c7086;--cp-surface-2:#585b70;--cp-surface-1:#45475a;--cp-surface-0:#313244;--cp-base:#1e1e2e;--cp-mantle:#181825;--cp-crust:#11111b;--color-bg:var(--cp-crust);--color-surface:var(--cp-base);--color-chrome:var(--cp-mantle);--color-border:var(--cp-surface-0);--color-text:var(--cp-text);--color-subtle:var(--cp-subtext-0);--color-muted:var(--cp-overlay-0);--color-accent:var(--cp-blue);--color-success:var(--cp-green);--color-warning:var(--cp-yellow);--color-danger:var(--cp-red);--shadow-window:0 1.5rem 3rem #11111b8c}@page{margin:16mm}@media print{:root,[data-theme]{--color-bg:#fff;--color-surface:#fff;--color-chrome:#fff;--color-border:#b0b0b0;--color-text:#000;--color-subtle:#1a1a1a;--color-muted:#333;--color-accent:#000;--color-success:#000;--color-warning:#000;--color-danger:#000;--shadow-window:none}body{color:#000;background-color:#fff}.terminal__bar,.boot,.hint,.prompt,.prompt__ghost,.game,noscript{display:none!important}.page{min-height:0;padding:0;display:block}.terminal,.terminal__body{max-width:none;min-height:0;max-height:none;box-shadow:none;background-color:#fff;border:0;border-radius:0;overflow:visible}.terminal__body{font-variant-ligatures:normal;font-feature-settings:normal;padding:0;font-size:11pt;line-height:1.45}.line,.line--command,.line--muted,.line--success,.line--accent{color:#000!important}a{color:#000;text-decoration:none}body.has-resume .terminal__body>:not(.entry--resume){display:none!important}.entry--resume{margin:0}.entry--resume .entry__command{display:none!important}.entry--resume .entry__output{max-width:none}.resume,.resume *{font-family:Arial,Helvetica,sans-serif}.resume{gap:12pt}.resume__name{font-size:20pt}.resume__tagline{font-size:12pt}.resume__head,.resume__section,.resume__skill{gap:4pt}.resume__section-title{color:#000;border-bottom:1px solid #000;margin-block-start:4pt;font-size:12pt}.resume__contact,.resume__role-date,.resume__role-tech,.resume__summary,.resume__role-highlights,.resume__highlights,.resume__skill-value,.resume__role-meta,.resume__skill-label{color:#000}.resume__skill-label{min-width:9rem}.resume__role{break-inside:avoid;page-break-inside:avoid}}
