:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{height:100%}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.terminal{--navy:#0a0e17;--navy-light:#10141f;--border:#1f2a3d;--text:#d6dce5;--text-dim:#6b7688;--text-soft:#aab3c2;--teal:#2dd9b9;--purple:#a78bfa;--gray:#5f6b7e;--edu:#e0a458;--accent:var(--teal);--ink:#fff;--mac-red:#ff5f57;--mac-yellow:#febc2e;--mac-green:#28c840;background:var(--navy);width:calc(100vw - 3rem);height:calc(100vh - 3rem);color:var(--text);border:1px solid var(--border);border-radius:10px;flex-direction:column;margin:1.5rem auto;font-family:JetBrains Mono,monospace;transition:width .5s,height .5s,margin .5s,border-radius .5s,box-shadow .5s,transform .4s,opacity .4s;display:flex;overflow:hidden;box-shadow:0 25px 60px -15px #00000080,0 0 0 1px #ffffff08}.terminal.maximized{width:100vw;height:100vh;box-shadow:none;border-color:#0000;border-radius:0;margin:0}.terminal.closed{opacity:0;pointer-events:none;transform:scale(.86)}.terminal.minimized{transform-origin:bottom;opacity:0;pointer-events:none;transform:translateY(60vh)scale(.18)}.terminal.no-motion.closed,.terminal.no-motion.minimized{transition:none}.terminal.light{--navy:#f4f5f7;--navy-light:#eaecf0;--border:#d6dae2;--text:#1c2230;--text-dim:#5f6b7e;--text-soft:#3a4252;--teal:#0f9d86;--purple:#7c5cfc;--gray:#8a93a3;--edu:#c47f2c;--ink:#0b0e14}.terminal button.dot{appearance:none;font:inherit;border:none;padding:0}.terminal .theme-toggle{appearance:none;font:inherit;color:var(--text-soft);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:19px;line-height:1;transition:color .15s}.terminal .theme-toggle:hover{color:var(--text)}.terminal.no-motion .theme-toggle{transition:none}body{background:#0a0e17;justify-content:center;align-items:center;height:100vh;display:flex;overflow:hidden}html{overflow:hidden}body.theme-light{background:#f4f5f7}html{background:#0a0e17}html.theme-light{background:#f4f5f7}.terminal *{box-sizing:border-box}.terminal .titlebar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:12px 18px;display:flex}.terminal .dot{cursor:pointer;border-radius:50%;width:12px;height:12px;position:relative}.terminal .dot:after{content:"";color:#0009;opacity:0;font-size:9px;line-height:1;transition:opacity .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.terminal .dot:hover:after{opacity:1}.terminal .dot.red{background:var(--mac-red)}.terminal .dot.red:after{content:"×";font-size:12px;font-weight:700}.terminal .dot.yellow{background:var(--mac-yellow)}.terminal .dot.yellow:after{content:"−";font-size:12px;font-weight:700}.terminal .dot.green{background:var(--mac-green)}.terminal .dot.green:after{content:"□";font-size:11px;font-weight:900;transform:translate(-50%,-58%)}.terminal .titlebar span{color:var(--text-dim);margin-left:10px;font-size:12px}.terminal .content{flex-direction:column;flex:1;padding:0 clamp(1.5rem,6vw,5rem);transition:background-color .5s;display:flex;overflow:hidden auto}.terminal.past-landing{--accent:var(--purple)}.terminal.past-landing .content{background:var(--navy-light)}.terminal.no-motion .content{transition:none}.terminal #whoami{flex-direction:column;justify-content:flex-start;min-height:100%;padding:clamp(2rem,12vh,7rem) 0 clamp(1.5rem,4vh,3rem);display:flex}@media (orientation:landscape) and (height<=820px){.terminal #whoami{min-height:auto}}.terminal .section:not(#whoami){border-top:1px solid var(--border);width:100%;max-width:760px;margin-inline:auto;padding:clamp(2rem,6vh,4rem) 0}.terminal .section h3{margin:0}.terminal .content.reveal-on .section.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(16px)}.terminal .content.reveal-on .section.reveal.is-visible{opacity:1;transform:none}.terminal .block{margin-bottom:clamp(1rem,3vh,2rem)}.terminal .block:last-child{margin-bottom:0}@keyframes terminalFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.terminal .prompt{color:var(--text-dim);margin:0 0 6px;font-size:clamp(13px,1.4vw + 2px,15px)}.terminal .prompt:before{content:"$ ";color:var(--teal)}.terminal h1{background:linear-gradient(90deg, var(--teal), var(--purple));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 12px;padding-bottom:.1em;font-size:clamp(24px,4vw + 2px,34px);font-weight:700;line-height:1.2;overflow:visible}.terminal .location{color:var(--text-dim);margin:0;font-size:clamp(14px,1.6vw + 2px,16px)}.terminal .location:before{content:"📍"}.terminal .summary{color:var(--text);max-width:620px;margin:0;font-size:clamp(14.5px,1.7vw + 2px,17px);line-height:1.65}.terminal .now{color:var(--text-soft);max-width:620px;margin:0;font-size:clamp(13.5px,1.5vw + 2px,15.5px);line-height:1.6}.terminal .path-desktop{display:block}.terminal .path-mobile{display:none}.terminal .hpath{margin:0;padding:0;list-style:none;display:flex}.terminal .hnode{text-align:center;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex;position:relative}.terminal .hline{justify-content:center;align-items:center;width:100%;height:14px;margin:6px 0;display:flex;position:relative}.terminal .hnode:not(:first-child) .hline:before{content:"";background:var(--border);width:100%;height:1px;position:absolute;top:50%;left:-50%}.terminal .hdot{z-index:1;border-radius:50%;width:14px;height:14px;position:relative}.terminal .hnode.teal .hdot{background:var(--teal)}.terminal .hnode.edu .hdot{background:var(--edu)}.terminal .hyear{color:var(--text-dim);font-size:15px}.terminal .hrole{color:var(--ink);justify-content:center;align-items:center;min-height:2.5em;font-size:16px;font-weight:700;line-height:1.25;display:flex}.terminal .hsub{color:var(--text-dim);font-size:14.5px}.terminal .cursor{background:var(--purple);vertical-align:-2px;width:7px;height:13px;margin-left:4px;animation:1s step-end infinite terminalBlink;display:inline-block}@keyframes terminalBlink{50%{opacity:0}}.terminal .path-rest{align-items:center;margin-top:14px;display:flex}.terminal .hnode.hlast .hline:after{content:"";border-top:1.5px dashed var(--border);width:34px;height:0;position:absolute;top:50%;left:calc(50% + 9px);transform:translateY(-50%)}.terminal .vpath{margin:0;padding-left:26px;list-style:none;position:relative}.terminal .vpath:before{content:"";background:var(--border);width:1px;position:absolute;top:4px;bottom:4px;left:5px}.terminal .vpath:after{content:"";border-left:1px dashed var(--border);height:20px;position:absolute;top:100%;left:5px}.terminal .vnode{margin-bottom:16px;position:relative}.terminal .vnode:not(.vfuture):before{content:"";border-radius:50%;width:10px;height:10px;position:absolute;top:2px;left:-26px}.terminal .vnode.teal:before{background:var(--teal)}.terminal .vnode.edu:before{background:var(--edu)}.terminal .vnode .vyear{color:var(--text-dim);font-size:12px}.terminal .vnode .vrole{color:var(--ink);font-size:14px;font-weight:700}.terminal .vnode .vsub{color:var(--text-dim);font-size:12.5px}.terminal.no-motion .cursor{opacity:1;animation:none}.terminal.no-motion{transition:none}.terminal .xp-list,.terminal .edu-list,.terminal .contact-list,.terminal .chips,.terminal .lang-list,.terminal .xp-bullets{margin:0;padding:0;list-style:none}.terminal .xp{margin-bottom:clamp(1.5rem,4vh,2.5rem)}.terminal .xp:last-child{margin-bottom:0}.terminal .xp-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.terminal .xp-title{color:var(--ink);font-size:16px;font-weight:700}.terminal .xp-dates{color:var(--text-dim);white-space:nowrap;font-size:13px}.terminal .xp-meta{color:var(--text-dim);margin:2px 0 10px;font-size:14px}.terminal .xp-bullets li{color:var(--text);margin-bottom:6px;padding-left:1.4em;font-size:14.5px;line-height:1.6;position:relative}.terminal .xp-bullets li:before{content:"▸";color:var(--accent);position:absolute;left:0}.terminal .edu{margin-bottom:1.5rem}.terminal .edu:last-child{margin-bottom:0}.terminal .edu-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.terminal .edu-degree{color:var(--ink);font-size:16px;font-weight:700}.terminal .edu-dates{color:var(--text-dim);white-space:nowrap;font-size:13px}.terminal .edu-meta{color:var(--text-dim);margin:2px 0 4px;font-size:14px}.terminal .edu-detail{color:var(--accent);margin:0;font-size:14px}.terminal .skill-group{margin-bottom:1.75rem}.terminal .skill-group:last-child{margin-bottom:0}.terminal .skill-label{color:var(--text-dim);text-transform:lowercase;margin-bottom:10px;font-size:14px;font-weight:700}.terminal .chips{flex-wrap:wrap;gap:8px;display:flex}.terminal .chip{color:var(--text);background:var(--navy-light);border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:13.5px;transition:transform .15s,border-color .15s,box-shadow .15s}.terminal .chip-tech{border-color:#2dd9b959}.terminal .chip-people{border-color:#a78bfa59}.terminal .chip:hover{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal), 0 4px 12px -6px #2dd9b980;transform:translateY(-2px)}.terminal .chip-people:hover{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple), 0 4px 12px -6px #a78bfa80}.terminal.no-motion .chip{transition:none}.terminal .lang{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.terminal .lang-name{color:var(--ink,#fff);min-width:9.5rem;font-size:14.5px;font-weight:700}.terminal .lang-bar{gap:3px;display:inline-flex}.terminal .lang-seg{background:var(--border);border-radius:2px;width:16px;height:8px;display:inline-block}.terminal .lang-seg.filled{background:var(--accent)}.terminal .lang-level{color:var(--text-dim);font-size:13.5px}@media (prefers-reduced-motion:no-preference){.terminal .lang-list.fill .lang-seg.filled{transform-origin:0;transition:transform .5s ease calc(var(--seg) * 80ms);transform:scaleX(0)}.terminal .lang-list.fill.revealed .lang-seg.filled{transform:scaleX(1)}}.terminal .contact-list li{margin-bottom:10px}.terminal .contact-list a{color:var(--teal);font-size:15px;text-decoration:none}.terminal .contact-list a:hover{text-decoration:none}.terminal .contact-list a:before{content:"→ ";color:var(--text-dim)}.terminal .ext-arrow{color:var(--text-dim);margin-left:5px;font-size:.9em}.terminal .menu-item,.terminal .contact-list a{position:relative}.terminal .menu-item:after,.terminal .contact-list a:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1px;transition:transform .2s;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.terminal .menu-item:hover:after,.terminal .contact-list a:hover:after{transform:scaleX(1)}.terminal.no-motion .menu-item:after,.terminal.no-motion .contact-list a:after{transition:none}.terminal .contact-copy{appearance:none;font:inherit;color:var(--teal);cursor:pointer;background:0 0;border:none;align-items:baseline;gap:10px;padding:0;font-size:15px;display:inline-flex;position:relative}.terminal .contact-copy:before{content:"→ ";color:var(--text-dim)}.terminal .copy-hint{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;text-align:left;min-width:5.5em;font-size:11px;display:inline-block}.terminal .site-footer{border-top:1px solid var(--border);color:var(--text-dim);text-align:center;margin-top:clamp(2rem,6vh,4rem);width:100%;max-width:760px;margin-inline:auto;padding:1.5rem 0;font-size:12.5px}.terminal .menu{border-bottom:1px solid var(--border);opacity:0;flex-shrink:0;max-height:0;padding:0 clamp(1.5rem,6vw,5rem);transition:max-height .4s,opacity .4s,padding .4s;overflow:hidden}.terminal.maximized .menu{opacity:1;max-height:3.5rem;padding:10px clamp(1.5rem,6vw,5rem)}.terminal .menu-list{flex-wrap:wrap;gap:clamp(12px,2vw,28px);margin:0;padding:0;list-style:none;display:flex}.terminal .menu-item{color:var(--text-dim);font-size:13.5px;text-decoration:none;transition:color .15s}.terminal .menu-item:before{content:"$ ";color:var(--teal)}.terminal .menu-item:hover{color:var(--text)}.terminal .menu-item.active{color:var(--teal)}@media (width<=640px){body{height:auto;min-height:0;display:block;overflow:visible}html{overflow:visible}.terminal{width:calc(100vw - 1.5rem);height:auto;max-height:none;margin:1.5rem auto;overflow:visible}.terminal .content{flex:none;justify-content:flex-start;padding:0 1.25rem;overflow:visible}.terminal.past-landing .content{background:var(--navy)}.terminal .path-desktop{display:none}.terminal .path-mobile{display:block}.terminal .summary{max-width:100%}.terminal .titlebar{z-index:3;background:var(--navy);position:sticky;top:0}.terminal .menu,.terminal.maximized .menu{opacity:1;z-index:2;background:var(--navy);max-height:none;padding:10px 1.25rem;position:sticky;top:46px;overflow:visible}.terminal #whoami{min-height:auto;padding:1.5rem 0 2rem}.terminal .path-rest{margin-top:32px}.terminal .section:not(#whoami){max-width:100%;padding:2rem 0}.terminal .xp-head,.terminal .edu-head{flex-direction:column;gap:2px}.terminal .lang-list{grid-template-columns:minmax(4.5rem,7rem) max-content minmax(0,1fr);align-items:center;gap:10px 12px;display:grid}.terminal .lang{display:contents}.terminal .lang-name{min-width:0}.terminal .lang-list .lang-name,.terminal .lang-list .lang-level{align-items:center;min-height:2.6em;display:flex}}.restore-pill{z-index:10;appearance:none;border:1px solid var(--border,#1f2a3d);color:#d6dce5;cursor:pointer;background:#10141f;border-radius:10px;padding:12px 22px;font-family:JetBrains Mono,monospace;font-size:15px;transition:transform .15s,border-color .15s;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px -10px #0009}.restore-pill:hover{border-color:#2dd9b9;transform:translate(-50%)translateY(-2px)}.restore-square{color:#28c840;font-size:1.1em}body.theme-light .restore-pill{color:#1c2230;background:#eaecf0;border-color:#d6dae2}.desktop-file{z-index:10;appearance:none;cursor:pointer;color:#2dd9b9;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:6px;width:96px;padding:8px 6px;font-family:JetBrains Mono,monospace;transition:background-color .15s,border-color .15s;display:flex;position:fixed;top:18px;right:18px}.desktop-file-icon{flex-shrink:0;width:44px;height:44px}.desktop-file-label{text-align:center;color:#d6dce5;font-size:11.5px;line-height:1.3}.desktop-file:hover{background:#ffffff0d}.desktop-file.selected{background:#2dd9b924;border-color:#2dd9b980}.desktop-file:focus-visible{outline-offset:2px;outline:2px solid #2dd9b9}.terminal.no-motion~.desktop-file{transition:none}body.theme-light .desktop-file{color:#0f9d86}body.theme-light .desktop-file-label{color:#1c2230}body.theme-light .desktop-file.selected{background:#0f9d8624;border-color:#0f9d8680}body.theme-light .desktop-file:focus-visible{outline-color:#0f9d86}
