*{box-sizing:border-box}.App,body{min-height:100vh}.App{background-color:var(--terminal-bg)}.terminal-container{--gap:1em;color:var(--terminal-white);font-family:JetBrains Mono Local,SF Mono,Monaco,Menlo,Courier New,Consolas,monospace;font-size:clamp(12px,1vw,15px);letter-spacing:.01em;line-height:1.4;min-height:100vh;padding:64px;width:100%;word-spacing:.04em}.terminal-container *{font-size:inherit;line-height:inherit}.terminal-content{margin:0 auto;max-width:960px;overflow-wrap:anywhere;word-break:break-word}.ascii-header,.terminal-content{color:var(--terminal-white);overflow-x:visible;width:100%}.ascii-header{font-feature-settings:"tnum",none;-webkit-text-size-adjust:100%;display:block;font-family:JetBrains Mono Local,SF Mono,Monaco,Menlo,Courier New,Consolas,monospace;font-size:clamp(6px,.9vw,12px);font-synthesis:none;font-variant-ligatures:none;font-variant-numeric:tabular-nums;font-weight:400;letter-spacing:0;line-height:1.05;margin-left:0;overflow-y:visible;padding-left:0;text-align:left;text-rendering:optimizeSpeed;white-space:pre;word-spacing:0}@keyframes ascii-gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@supports ((-webkit-background-clip:text) or (background-clip:text)){.ascii-header,.mobile-first-name,.mobile-last-name{animation:ascii-gradient-shift 8s linear infinite;background-clip:text;-webkit-background-clip:text;background-image:linear-gradient(90deg,#00f5d4,#00bbf9,#f15bb5,#fee440,#00f5d4);background-size:300% 100%;color:#0000}}.desktop-header{display:block}.mobile-header{display:none}.mobile-first-name,.mobile-last-name{display:block;font-family:JetBrains Mono Local,SF Mono,Monaco,Menlo,Courier New,Consolas,monospace;letter-spacing:0;line-height:1.05;margin:0;max-width:100%;overflow-x:hidden;white-space:pre;width:-webkit-max-content;width:max-content;word-spacing:0}.cli-section,.completed-section,.typing-container{display:flex;flex-direction:column;gap:var(--gap)}.cli-section{color:var(--terminal-white)}.cli-command{display:block;overflow-wrap:break-word;word-break:break-word}.cli-command,.prompt{color:var(--terminal-white);opacity:.7}.prompt{margin-right:.25em;white-space:pre}.command,.prompt{display:inline;font-weight:400}.command{opacity:.7;overflow-wrap:break-word;white-space:normal;word-break:break-word}.cli-comment,.cli-output,.command{color:var(--terminal-white)}.cli-comment{font-style:italic;opacity:.7}.accent-cyan,.accent-yellow{color:var(--terminal-white);display:inline;font-weight:700;overflow-wrap:break-word;word-break:break-word}strong{font-weight:600}em{font-style:italic}.personal-info{display:flex;flex-direction:column;font-weight:300;gap:0}.personal-info .accent-cyan{font-weight:700}.info-line{display:block}.info-line,.info-line>span{overflow-wrap:break-word;word-break:break-word}.info-line>span{display:inline;white-space:normal}.info-line>span:not(.separator):not(:last-child):after{content:" "}.personal-info .info-line:not(:first-child){display:block;margin-top:var(--gap)}.separator{color:var(--terminal-white);flex-shrink:0;margin:0 .25em;opacity:.7;white-space:nowrap}.command-content,.command-item,.external-links-left{display:flex;flex-direction:column;gap:var(--gap)}.command-content{align-items:flex-start}.command-link{color:var(--terminal-white);font-weight:600;justify-self:start;text-decoration:underline;white-space:nowrap;width:-webkit-fit-content;width:fit-content}.command-link-group{align-items:center;display:inline-flex;white-space:nowrap}.about-links-grid{grid-gap:.35em .8em;display:grid;gap:.35em .8em;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.about-links-grid .command-link{text-transform:uppercase}@media (min-width:769px){.about-links-grid{gap:.2em .5em}}.link-cyan{color:#00f5d4}.link-blue{color:#00bbf9}.link-pink{color:#f15bb5}.link-yellow{color:#fee440}.command-link:focus,.command-link:hover{background-color:var(--terminal-white);color:#000;text-decoration:none}.link-cyan:focus,.link-cyan:hover{background-color:#00f5d4}.link-blue:focus,.link-blue:hover{background-color:#00bbf9}.link-pink:focus,.link-pink:hover{background-color:#f15bb5}.link-yellow:focus,.link-yellow:hover{background-color:#fee440}.email-box{cursor:pointer;text-decoration:underline}.email-box:focus,.email-box:hover{background-color:#fee440;color:#000;text-decoration:none}.experience-card{display:flex;flex-direction:column;gap:.8em;width:100%}.experience-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.75em 1.5em;justify-content:space-between;width:100%}.experience-title-group{display:flex;flex-direction:column;gap:.2em;min-width:0}.experience-title-line{align-items:baseline;display:flex;flex-wrap:wrap;gap:.35em;min-width:0}.experience-company{display:inline}.experience-company-note,.experience-dates,.experience-role{color:var(--terminal-white);opacity:.8;overflow-wrap:break-word;word-break:break-word}.experience-company-note{opacity:.55}.experience-role{font-weight:600}.experience-dates{opacity:.65;white-space:nowrap}.experience-text{color:var(--terminal-white);overflow-wrap:break-word;word-break:break-word}.project-item,.projects-section{display:flex;flex-direction:column;gap:var(--gap)}.project-separator{color:var(--terminal-white);display:block;letter-spacing:0;opacity:.7;position:relative;width:100%;word-spacing:0}.project-separator-text{display:block;overflow:hidden;white-space:pre;width:100%}.project-separator-probe{pointer-events:none;position:absolute;visibility:hidden;white-space:pre}.project-image-slider{display:flex;flex-direction:column;gap:.55em;max-width:100%;width:100%}.project-image-slider.project-image-slider-split{grid-column-gap:24px;align-items:start;column-gap:24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);justify-items:stretch}.project-info-desktop{max-width:62ch;min-width:0}.project-media-pane{display:flex;flex-direction:column;gap:.55em;min-width:0}.project-image-slider-split .project-media-pane{align-items:stretch;align-self:start;justify-self:end;margin-left:auto;width:min(100%,clamp(280px,36vw,420px))}.project-slider-ui{align-self:flex-start;display:none;font-family:inherit;font-size:1em;gap:1ch;height:1lh;justify-content:flex-start;min-height:1lh;white-space:nowrap}.project-slider-btn,.project-slider-ui{align-items:center;letter-spacing:inherit;line-height:inherit;word-spacing:inherit}.project-slider-btn{-webkit-appearance:none;appearance:none;background:#0000;border:0;color:var(--terminal-white);cursor:pointer;display:inline-flex;font:inherit;margin:0;opacity:1;padding:0;white-space:pre}.project-slider-btn:active,.project-slider-btn:focus-visible,.project-slider-btn:hover{background:var(--terminal-white);color:#000;text-decoration:none}.project-slider-btn:focus{outline:none}.project-slider-btn:focus:not(:focus-visible){background:#0000;color:var(--terminal-white)}.project-slider-btn:disabled{background:#0000;color:var(--terminal-muted);cursor:default;opacity:1;text-decoration:none}.project-slider-track{align-items:center;display:inline-flex;flex:0 0 auto;font-family:inherit;font-size:1em;gap:.65ch;justify-content:flex-start;letter-spacing:inherit;line-height:inherit;word-spacing:inherit}.project-slider-marker{color:var(--terminal-muted)}.project-slider-marker-active{color:var(--terminal-white)}.project-image-slider-split .project-slider-ui{align-self:flex-end;display:inline-flex;justify-content:flex-end;margin-left:auto;order:-1;text-align:right}.project-image-slider-split .project-slider-track{flex:0 0 auto;justify-content:flex-end}.project-image-row{grid-gap:12px;display:grid;gap:12px;grid-auto-rows:auto;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.project-image-row.media-count-3{grid-template-areas:"feature feature stack-left stack-left" "feature feature stack-right stack-right";grid-template-rows:auto auto}.project-image-row.media-count-3 .project-slide{aspect-ratio:16/9}.project-image-row.media-count-3 .project-slide:first-child{grid-area:feature}.project-image-row.media-count-3 .project-slide:nth-child(2){grid-area:stack-left}.project-image-row.media-count-3 .project-slide:nth-child(3){grid-area:stack-right}.project-image-row.media-count-4{grid-template-areas:"item-1 item-1 item-2 item-2" "item-3 item-3 item-4 item-4";grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto auto}.project-image-row.media-count-4 .project-slide{aspect-ratio:16/9}.project-image-row.media-count-4 .project-slide:first-child{grid-area:item-1}.project-image-row.media-count-4 .project-slide:nth-child(2){grid-area:item-2}.project-image-row.media-count-4 .project-slide:nth-child(3){grid-area:item-3}.project-image-row.media-count-4 .project-slide:nth-child(4){grid-area:item-4}.project-image-row.project-image-row-desktop-grid{grid-gap:10px;display:grid;gap:10px;grid-template-areas:none;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;max-width:none;overflow:visible;width:100%}.project-image-row.project-image-row-desktop-grid.media-count-3 .project-slide:first-child,.project-image-row.project-image-row-desktop-grid.media-count-3 .project-slide:nth-child(2),.project-image-row.project-image-row-desktop-grid.media-count-3 .project-slide:nth-child(3){grid-area:auto}.project-image-row.project-image-row-desktop-slider{-webkit-overflow-scrolling:touch;overflow:visible;overscroll-behavior-x:contain}.project-image-row.project-image-row-button-only,.project-image-row.project-image-row-desktop-slider{display:flex;gap:10px;grid-template-areas:none;grid-template-columns:none;grid-template-rows:none;max-width:none;scroll-snap-type:none;scrollbar-width:none;touch-action:manipulation;width:100%}.project-image-row.project-image-row-button-only{--project-slide-height:clamp(180px,52vw,300px);-webkit-overflow-scrolling:touch;overflow:hidden;overscroll-behavior:none}.project-image-row.project-image-row-button-only::-webkit-scrollbar,.project-image-row.project-image-row-desktop-slider::-webkit-scrollbar{display:none}.project-image-row.project-image-row-desktop-slider .project-slide{align-items:flex-start;aspect-ratio:auto;display:flex;flex:0 0 auto;height:auto;justify-content:flex-end;overflow:visible;scroll-snap-align:none;width:100%}.project-image-row.project-image-row-button-only .project-slide{align-items:flex-start;aspect-ratio:auto;display:flex;flex:0 0 100%;height:var(--project-slide-height);justify-content:flex-start;overflow:visible;scroll-snap-align:none;width:100%}.project-image-row.project-image-row-button-only .project-slide [data-rmiz-content=found],.project-image-row.project-image-row-desktop-slider .project-slide [data-rmiz-content=found]{display:block;height:auto;width:100%}.project-image-row.project-image-row-desktop-slider .project-image,.project-image-row.project-image-row-desktop-slider .project-video{height:auto;max-height:none;max-height:var(--desktop-project-media-max-height,none);max-width:100%;width:100%}.project-image-row.project-image-row-button-only .project-image,.project-image-row.project-image-row-button-only .project-video{height:100%;max-width:100%;width:100%}.project-image-row.project-image-row-button-only .project-image{object-fit:contain}.project-image-row.project-image-row-button-only.project-image-row-desktop-slider{--project-slide-height:max(0px,calc(var(--desktop-project-media-max-height, clamp(220px, 30vw, 420px)) - 1lh - 0.55em))}.project-image-row.project-image-row-desktop-grid .project-slide{align-items:flex-start;aspect-ratio:auto;display:flex;height:auto;justify-content:stretch;min-width:0;overflow:visible}.project-image-row.project-image-row-desktop-grid .project-slide [data-rmiz-content=found]{display:block;height:auto;width:100%}.project-image-row.project-image-row-desktop-grid .project-image,.project-image-row.project-image-row-desktop-grid .project-video{height:auto;max-height:none;max-height:var(--desktop-project-media-max-height,none);max-width:100%;width:100%}.project-slide{min-height:0;min-width:0;overflow:hidden}.project-image-slider-ai-minecraft .project-slide-image{padding:14px}.project-slide-info{background:#0000;border:0;overflow:visible}.project-info-panel{align-items:flex-start;display:flex;flex-direction:column;gap:.55em;height:auto;justify-content:flex-start;padding:0;text-align:left}.project-link-row{align-items:baseline;display:flex;flex-wrap:wrap;gap:10px}.project-info-panel .project-title-row{gap:0}.project-info-panel .project-text{overflow-wrap:anywhere}.project-info-mobile{margin-top:var(--gap);width:100%}.project-info-mobile .project-info-panel{justify-content:flex-start;padding:0}.project-slide [data-rmiz-content=found]{display:block;height:100%;width:100%}.project-image-zoom-dialog [data-rmiz-modal-overlay=hidden]{background-color:#0000!important}.project-image-zoom-dialog [data-rmiz-modal-overlay=visible]{background-color:#000!important}.project-image-zoom-dialog [data-rmiz-modal-img]{background-color:#000}.project-image{background-color:initial;border:none;display:block;height:100%;object-fit:contain;width:100%}.project-image-focusable{cursor:zoom-in}.project-video{aspect-ratio:16/9;background-color:initial;border:none;display:block;height:auto;width:100%}.project-title-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--gap);justify-content:flex-start}.project-name{color:var(--terminal-white);font-weight:700}.project-meta{color:var(--terminal-white);display:flex;flex-wrap:wrap;gap:.5em;opacity:.7}.project-type{color:inherit;text-transform:uppercase}.project-description{display:flex;flex-direction:column;gap:var(--gap);padding-left:1.25em}.project-text{color:var(--terminal-white)}.project-tech{color:var(--terminal-subtle);font-style:normal;font-weight:400}.project-tech .accent-cyan{color:inherit;font-weight:400}.project-arrow{color:var(--terminal-white);display:inline-block;margin-right:.2em;opacity:.7}@media (min-width:769px){.project-image-slider-split .project-info-desktop{display:block}.project-image-slider-split .project-info-panel{min-height:0}.project-image-slider-split .project-tech{margin-top:0}}.cli-list{display:flex;flex-direction:column;font-family:JetBrains Mono Local,SF Mono,Monaco,Menlo,Courier New,Consolas,monospace;gap:0;line-height:inherit}.tree-line-grid{align-items:start;display:grid;grid-template-columns:auto minmax(0,1fr);margin:0;padding:0}.tree-line-with-prefix{column-gap:.35ch}.tree-line-no-prefix{grid-template-columns:minmax(0,1fr)}.tree-line-no-prefix .tree-prefix{display:none}.tree-line-grid.tree-nested{margin-left:4ch}.tree-prefix{color:#ccc;display:flex;flex-direction:column;font-family:JetBrains Mono Local,SF Mono,Monaco,Menlo,Courier New,Consolas,monospace;white-space:pre}.tree-char-cont,.tree-char-main{color:inherit;display:block;white-space:pre}.tree-content-block{align-self:start;min-width:0}.tree-content-inline{display:inline-block;max-width:100%}.directory-label{font-weight:600}.directory-label,.skill-items-inline{color:var(--terminal-white);display:inline;overflow-wrap:break-word;white-space:normal;word-break:break-word}.skill-items-inline{font-weight:400;opacity:.8}@media (max-width:1024px){.terminal-container{padding:48px}}@media (min-width:1025px){.terminal-content{max-width:none;text-align:center}.typing-container{display:inline-flex;text-align:left;width:min(820px,100%)}}@media (min-width:768px) and (min-height:700px){.terminal-container{display:flex;flex-direction:column}.terminal-content{margin-bottom:auto;margin-top:auto}}@media (max-width:768px){body{overflow-x:hidden}.terminal-container{font-size:clamp(12px,3vw,15px);padding:24px 16px}.desktop-header{display:none}.mobile-header{display:block}.ascii-header{overflow-x:hidden}.personal-info .info-line:not(:first-child){display:block;margin-top:var(--gap)}.command-content{gap:var(--gap)}.about-links-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-title-row{align-items:flex-start}.projects-section{flex-direction:column;gap:var(--gap);overflow:visible}.project-item{border:0;padding:0}.project-image-row{-webkit-overflow-scrolling:touch;display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:8px;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;width:100%}.project-image-row.project-image-row-desktop-grid{display:grid;grid-template-areas:none;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;overflow:visible;overscroll-behavior:auto;padding-bottom:0;scroll-snap-type:none;touch-action:manipulation}.project-image-row.project-image-row-desktop-grid.media-count-3 .project-slide:first-child,.project-image-row.project-image-row-desktop-grid.media-count-3 .project-slide:nth-child(2),.project-image-row.project-image-row-desktop-grid.media-count-3 .project-slide:nth-child(3){grid-area:auto}.project-image-row.project-image-row-locked{overflow:hidden;overscroll-behavior:none;touch-action:none}.project-slider-ui{display:inline-flex}.project-image-row::-webkit-scrollbar{display:none}.project-slide{flex:0 0 auto;scroll-snap-align:start}.project-slide [data-rmiz-content=found]{height:auto;touch-action:manipulation;width:auto}.project-image-row.project-image-row-button-only{--project-slide-height:clamp(180px,52vw,300px)}.project-image-row.project-image-row-button-only .project-slide{height:var(--project-slide-height)}.project-image-row.project-image-row-button-only .project-slide [data-rmiz-content=found]{height:100%;width:100%}.project-image-row.project-image-row-desktop-grid .project-slide [data-rmiz-content=found]{height:auto;width:100%}.project-image-zoom-dialog [data-rmiz-btn-unzoom]{position:fixed;right:calc(env(safe-area-inset-right, 0px) + 12px);top:calc(env(safe-area-inset-top, 0px) + 16px)}.project-image-zoom-dialog [data-rmiz-modal-content],.project-image-zoom-dialog [data-rmiz-modal-img]{touch-action:none}.project-slide-info{width:min(86vw,520px)}.project-image,.project-video{height:clamp(180px,52vw,300px);max-width:none;width:auto}.project-image-row.project-image-row-button-only .project-image,.project-image-row.project-image-row-button-only .project-video{height:100%;max-width:100%;width:100%}.project-image-row.project-image-row-desktop-grid .project-image,.project-image-row.project-image-row-desktop-grid .project-video{height:auto;max-width:100%;width:100%}.project-image{min-width:0}.project-title-row>div{flex-wrap:wrap}.project-type{display:inline}.cli-list{gap:0}.cli-list>.tree-nested{margin-left:4ch}}@media (max-width:480px){.terminal-container{padding:24px 16px}.tree-line-grid.tree-nested{margin-left:2ch}.about-links-grid{grid-template-columns:1fr}}@media (max-width:360px){.terminal-container{padding:24px 16px}.about-links-grid{grid-template-columns:1fr}.projects-section{gap:12px}.project-image,.project-video{height:clamp(170px,56vw,260px)}}[data-rmiz-ghost]{pointer-events:none;position:absolute}[data-rmiz-btn-unzoom],[data-rmiz-btn-zoom]{-webkit-appearance:none;appearance:none;background-color:#000000b3;border:none;border-radius:50%;box-shadow:0 0 1px #ffffff80;color:#fff;height:40px;margin:0;outline-offset:2px;padding:9px;touch-action:manipulation;width:40px}[data-rmiz-btn-zoom]:not(:focus):not(:active){clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;pointer-events:none;position:absolute;white-space:nowrap;width:1px}[data-rmiz-btn-zoom]{cursor:zoom-in;inset:10px 10px auto auto;position:absolute}[data-rmiz-btn-unzoom]{cursor:zoom-out;inset:20px 20px auto auto;position:absolute;z-index:1}[data-rmiz-content=found] [data-zoom],[data-rmiz-content=found] [role=img],[data-rmiz-content=found] img,[data-rmiz-content=found] svg{cursor:zoom-in}[data-rmiz-modal]::backdrop{display:none}[data-rmiz-modal][open]{background:#0000;border:0;height:100vh;height:100dvh;margin:0;max-height:none;max-width:none;overflow:hidden;padding:0;pointer-events:all;position:fixed;width:100vw;width:100dvw}[data-rmiz-modal-overlay]{inset:0;position:absolute;transition:background-color .3s}[data-rmiz-modal-overlay=hidden]{background-color:#fff0}[data-rmiz-modal-overlay=visible]{background-color:#fff}[data-rmiz-modal-content]{height:100%;position:relative;width:100%}[data-rmiz-modal-img]{cursor:zoom-out;image-rendering:high-quality;position:absolute;transform-origin:top left;transition:transform .3s}@media (prefers-reduced-motion:reduce){[data-rmiz-modal-img],[data-rmiz-modal-overlay]{transition-duration:.01ms!important}}@font-face{font-display:swap;font-family:JetBrains Mono Local;font-style:normal;font-weight:400;src:url(/static/media/JetBrainsMono-Regular.9748d9678054ab7bf013.woff2) format("woff2")}:root{--terminal-white:#fff;--terminal-bg:#000;--terminal-muted:#ffffff73;--terminal-subtle:#fffc;--terminal-surface:#ffffff0a}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch;background-color:#000;background-color:var(--terminal-bg);color:#fff;color:var(--terminal-white);margin:0;overflow-x:hidden}body,code{font-family:JetBrains Mono Local,SF Mono,Monaco,Menlo,Courier New,Consolas,monospace}@media screen and (max-width:768px){input,select,textarea{font-size:16px!important}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.terminal-container{border-width:1px}}@media print{.terminal-header{display:none}.terminal-container{border:none;box-shadow:none;padding:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}@media (prefers-color-scheme:dark){body{background-color:#000;background-color:var(--terminal-bg);color:#fff;color:var(--terminal-white)}}@supports (container-type:inline-size){.terminal-container{container-type:inline-size}}
/*# sourceMappingURL=main.afbd785e.css.map*/