@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-bg:#060a11;--color-surface:#111827;--color-surface-hover:#1f2937;--color-border:#ffffff14;--color-text:#e2e8f0;--color-text-muted:#94a3b8;--color-heading:#f8fafc;--color-accent-robotics:#f59e0b;--color-accent-data:#10b981;--color-accent-cloud:#3b82f6;--color-link:#60a5fa;--color-link-hover:#93c5fd;--font-body:"Space Grotesk",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--header-height:56px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px}body{background-color:#060a11;background-color:var(--color-bg);background-image:radial-gradient(at 50% 0,#0f172a66 0,#0000 60%);background-repeat:no-repeat;background-size:100% 100vh;min-height:100vh;margin:0}main{box-sizing:border-box;color:var(--color-text);font-family:Space Grotesk,system-ui,-apple-system,sans-serif;font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-top:56px;margin-top:var(--header-height);min-height:calc(100vh - 56px);min-height:calc(100vh - var(--header-height));flex-direction:column;font-weight:400;line-height:1.6;display:flex}main a{color:var(--color-link);font-weight:500;text-decoration:none;transition:color .2s}:is(main a):hover{color:var(--color-link-hover)}main header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--color-border);box-sizing:border-box;height:56px;height:var(--header-height);padding:0 24px;padding:0 var(--space-lg);z-index:1000;background-color:#060a11cc;justify-content:space-between;align-items:center;width:100%;display:flex;position:fixed;top:0;left:0}:is(main header):after{content:"";background:linear-gradient(90deg,#0000,#3b82f64d,#10b98133,#0000);height:1px;position:absolute;bottom:-1px;left:10%;right:10%}:is(main header) nav{gap:8px;gap:var(--space-xs);margin:0 auto;display:flex}:is(:is(main header) nav) a{border-radius:8px;border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-family:var(--font-mono);letter-spacing:.03em;padding:12px 24px;padding:var(--space-sm)var(--space-lg);text-transform:lowercase;font-size:.85rem;font-weight:500;transition:color .2s,background-color .2s}:is(:is(:is(main header) nav) a):hover{color:var(--color-heading);background-color:#ffffff0d}:is(:is(main header) nav) a.active{color:var(--color-accent-data);background-color:#10b98114}main .container{--container-max:1100px;box-sizing:border-box;inline-size:100%;max-width:1100px;max-width:var(--container-max);padding:48px 24px;padding:var(--space-2xl)var(--space-lg);flex-direction:column;margin:0 auto;display:flex;position:relative}main h1,main h2,main h3,main h4{color:var(--color-heading);font-weight:600}main h1,main h2,main h3,main h4,main li,main p{overflow-wrap:anywhere;word-break:normal;margin:0}main article{margin:0}@media (max-width:768px){main header{padding:0 12px;padding:0 var(--space-sm)}:is(main header) nav{gap:0}:is(:is(main header) nav) a{padding:12px 16px;padding:var(--space-sm)var(--space-md);font-size:.8rem}main .container{padding:24px 16px;padding:var(--space-lg)var(--space-md)}}@keyframes glitch{0%,to{text-shadow:none;transform:translate(0)}20%{text-shadow:2px 0 var(--color-accent-robotics),-2px 0 var(--color-accent-cloud);transform:translate(-2px,1px)}40%{text-shadow:-1px 0 var(--color-accent-data),1px 0 var(--color-accent-robotics);transform:translate(1px,-1px)}60%{text-shadow:1px 0 var(--color-accent-cloud),-1px 0 var(--color-accent-data);transform:translate(-1px,2px)}80%{text-shadow:-2px 0 var(--color-accent-robotics),2px 0 var(--color-accent-cloud);transform:translate(2px,-1px)}}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes pulse-border{0%,to{border-color:var(--color-border)}50%{border-color:#3b82f64d}}@keyframes flicker{0%,97%,to{opacity:1}98%{opacity:.85}99%{opacity:.92}}@keyframes data-stream{0%{background-position:0 0}to{background-position:0 100%}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}body.home main .container{align-items:center;gap:var(--space-3xl);padding-top:var(--space-3xl);position:relative;overflow:hidden}:is(body.home main .container)>*{z-index:3;position:relative}:is(body.home main .container) .terminal-intro{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.02em;background-color:#ffffff05;border-radius:4px;align-self:flex-start;align-items:center;gap:6px;min-height:1.6em;padding:6px 12px;font-size:.8rem;animation:.6s both fade-up;display:flex}:is(:is(body.home main .container) .terminal-intro) .prompt{color:var(--color-accent-data)}:is(:is(body.home main .container) .terminal-intro) .terminal-text{color:var(--color-text);white-space:pre}:is(:is(body.home main .container) .terminal-intro) .cursor{background-color:var(--color-accent-data);width:7px;height:1em;animation:1s step-end infinite cursor-blink;display:inline-block}:is(body.home main .container) .hero{align-items:center;gap:var(--space-lg);text-align:center;flex-direction:column;max-width:720px;animation:.8s .1s both fade-up;display:flex}:is(:is(body.home main .container) .hero) h1{background:linear-gradient(135deg,var(--color-accent-cloud),var(--color-accent-data),var(--color-accent-robotics));letter-spacing:-.02em;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.2rem,5.5vw,3.5rem);font-weight:700;line-height:1.1;animation:4s ease-in-out infinite flicker}:is(:is(:is(body.home main .container) .hero) h1):hover{animation:.3s both glitch}:is(:is(body.home main .container) .hero) .tagline{color:var(--color-text-muted);max-width:560px;font-size:1.1rem;line-height:1.7}:is(:is(body.home main .container) .hero) .status-line{color:var(--color-text-muted);font-family:var(--font-mono);align-items:center;gap:8px;font-size:.8rem;display:flex}:is(:is(:is(body.home main .container) .hero) .status-line) .status-dot{background-color:var(--color-accent-data);box-shadow:0 0 6px var(--color-accent-data);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse-border}:is(:is(body.home main .container) .hero) .view-counter{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);background-color:#ffffff08;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.8rem;display:flex}:is(body.home main .container) .focus-areas{grid-gap:var(--space-lg);gap:var(--space-lg);grid-template-columns:repeat(3,1fr);width:100%;max-width:900px;animation:.8s .3s both fade-up;display:grid}:is(:is(body.home main .container) .focus-areas) .focus-card{animation:4s infinite pulse-border;animation-delay:var(--delay,0s);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-md);padding:var(--space-xl);background-color:#111827cc;flex-direction:column;transition:border-color .3s,transform .2s,box-shadow .3s;display:flex}:is(:is(:is(body.home main .container) .focus-areas) .focus-card):first-child{--pulse-color:#f59e0b4d;--delay:0s}:is(:is(:is(body.home main .container) .focus-areas) .focus-card):nth-child(2){--pulse-color:#10b9814d;--delay:1.3s}:is(:is(:is(body.home main .container) .focus-areas) .focus-card):nth-child(3){--pulse-color:#3b82f64d;--delay:2.6s}:is(:is(:is(body.home main .container) .focus-areas) .focus-card):hover{border-color:var(--pulse-color);box-shadow:0 8px 32px #0006,0 0 16px var(--pulse-color);transform:translateY(-4px)}:is(:is(:is(body.home main .container) .focus-areas) .focus-card) .focus-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:44px;height:44px;font-size:1.25rem;display:flex}:is(:is(:is(body.home main .container) .focus-areas) .focus-card) .focus-icon.robotics{color:var(--color-accent-robotics);background-color:#f59e0b1f;box-shadow:0 0 12px #f59e0b26}:is(:is(:is(body.home main .container) .focus-areas) .focus-card) .focus-icon.data{color:var(--color-accent-data);background-color:#10b9811f;box-shadow:0 0 12px #10b98126}:is(:is(:is(body.home main .container) .focus-areas) .focus-card) .focus-icon.cloud{color:var(--color-accent-cloud);background-color:#3b82f61f;box-shadow:0 0 12px #3b82f626}:is(:is(:is(body.home main .container) .focus-areas) .focus-card) h3{font-family:var(--font-mono);letter-spacing:.02em;font-size:1.1rem;font-weight:600}:is(:is(:is(body.home main .container) .focus-areas) .focus-card) p{color:var(--color-text-muted);font-size:.9rem;line-height:1.6}:is(:is(:is(body.home main .container) .focus-areas) .focus-card) .focus-tags{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}:is(:is(:is(:is(body.home main .container) .focus-areas) .focus-card) .focus-tags) span{color:var(--color-text-muted);font-family:var(--font-mono);background-color:#ffffff0d;border:1px solid #ffffff0d;border-radius:4px;padding:3px 8px;font-size:.7rem}:is(body.home main .container) .recent-posts{gap:var(--space-md);flex-direction:column;width:100%;max-width:700px;animation:.8s .5s both fade-up;display:flex}:is(:is(body.home main .container) .recent-posts) h2{font-family:var(--font-mono);letter-spacing:.02em;margin-bottom:var(--space-xs);font-size:1.2rem;font-weight:600}:is(:is(:is(body.home main .container) .recent-posts) h2):before{color:var(--color-accent-data);content:"> "}:is(:is(body.home main .container) .recent-posts) nav{gap:var(--space-sm);flex-direction:column;display:flex}:is(:is(:is(body.home main .container) .recent-posts) nav) a{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:var(--space-sm)var(--space-md);background-color:#11182799;justify-content:space-between;align-items:center;font-weight:400;transition:border-color .2s,background-color .2s,transform .15s;display:flex}:is(:is(:is(:is(body.home main .container) .recent-posts) nav) a):hover{background-color:var(--color-surface-hover);border-color:#ffffff26;transform:translate(4px)}:is(:is(:is(:is(body.home main .container) .recent-posts) nav) a) .date{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.75rem}:is(body.home main .container) .socials{gap:var(--space-md);animation:.8s .7s both fade-up;display:flex}:is(:is(body.home main .container) .socials) a{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:#11182799;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:color .2s,border-color .2s,box-shadow .2s,transform .15s;display:flex}:is(:is(:is(body.home main .container) .socials) a):hover{border-color:var(--color-accent-cloud);color:var(--color-heading);transform:scale(1.1);box-shadow:0 0 12px #3b82f640}@media (prefers-reduced-motion:reduce){:is(body.home main .container):after,:is(body.home main .container) .hero h1,:is(body.home main .container) .focus-areas .focus-card{animation:none}}@media (max-width:768px){body.home main .container{gap:var(--space-2xl);padding-top:var(--space-2xl)}:is(body.home main .container) .terminal-intro{align-self:center}:is(body.home main .container) .focus-areas{grid-template-columns:1fr}:is(body.home main .container) .recent-posts nav a{flex-direction:column;align-items:flex-start;gap:4px}}:is(body.projects main [class^=container\ ]) h2{margin:1rem}:is(body.projects main .container) article{grid-gap:1rem;grid-template-columns:2fr 1fr;gap:1rem;margin:2rem;display:grid}:is(:is(body.projects main .container) article) img{grid-column:2;place-self:start end;width:auto;min-width:0;max-width:100%}:is(:is(body.projects main .container) article)>:not(img){grid-column:1;min-width:0}@media (max-width:768px){body.projects main .container{padding:0}:is(body.projects main .container) article{flex-direction:column;gap:0;margin:0 0 2rem;display:flex}:is(:is(body.projects main .container) article) h2{order:0}:is(:is(body.projects main .container) article) img{order:1}:is(:is(body.projects main .container) article) p{order:2}:is(:is(body.projects main .container) article) a{order:3}}body.resume main .container{--space-sm:12px;--space-md:16px;--space-2xl:40px;--space-4xl:80px;--sidebar-min:160px;--sidebar-ideal:28%;--sidebar-max:320px;--logo-font-weight:900;--sidebar-divider:#0096c8cc;--accent:#0096c826}:is(body.resume main .container) .main>aside.content,:is(body.resume main .container) .main>aside.sidebar{min-width:0;max-width:100%}:is(body.resume main .container) .header .title-row h1{font-size:2.8em;line-height:1.1}:is(body.resume main .container) .header .title-row .tagline,:is(body.resume main .container) .main aside.content section article .duration\/location,:is(body.resume main .container) .main aside.content section article .functional-area,:is(body.resume main .container) .main aside.sidebar section article p.dates-location{font-style:italic}:is(body.resume main .container) .header{flex-direction:row;align-items:center;display:flex}:is(:is(body.resume main .container) .header) button.open-sidebar{border-radius:var(--space-sm);margin-top:var(--space-2xl);padding:var(--space-sm)var(--space-md);background-color:#3a095b;align-self:flex-start;font-size:larger;display:none}:is(:is(body.resume main .container) .header) .title-row{margin:var(--space-lg)var(--space-2xl);text-align:center;flex-direction:column;flex:1;display:flex}:is(body.resume main .container) .intro{text-align:justify}:is(body.resume main .container) .main{gap:var(--space-lg);margin-top:var(--space-lg);flex-flow:wrap;max-width:100%;display:flex;position:relative}:is(:is(body.resume main .container) .main) aside.sidebar{background:linear-gradient(to left,var(--accent),var(--text-bg));flex:0 1 clamp(var(--sidebar-min),var(--sidebar-ideal),var(--sidebar-max));-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--space-xl),#000 calc(100% - var(--space-xl)),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--space-xl),#000 calc(100% - var(--space-xl)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 var(--space-xl),#000 calc(100% - var(--space-xl)),transparent 100%);padding:var(--space-xl)var(--space-md);position:relative}:is(:is(:is(body.resume main .container) .main) aside.sidebar):after{background:var(--sidebar-divider);content:"";block-size:100%;inline-size:4px;position:absolute;inset:0 0 0 auto}:is(:is(:is(body.resume main .container) .main) aside.sidebar) section{text-align:right;flex-direction:column;align-items:flex-end;margin-bottom:50px;display:flex}:is(:is(body.resume main .container) .main) aside.content{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;white-space:normal;word-break:normal;flex-direction:column;flex:480px;margin-left:0;display:flex}:is(:is(:is(body.resume main .container) .main) aside.content) section{border-bottom:1px solid #00000026;flex-direction:column;margin-bottom:30px;padding-bottom:30px;display:flex}:is(:is(:is(body.resume main .container) .main) aside.content) section:last-child{border-bottom:none}:is(:is(body.resume main .container) .main) section.contact{--icon-position:after}:is(:is(:is(body.resume main .container) .main) section.contact) .email,:is(:is(:is(body.resume main .container) .main) section.contact) .github,:is(:is(:is(body.resume main .container) .main) section.contact) .linked-in,:is(:is(:is(body.resume main .container) .main) section.contact) .location,:is(:is(:is(body.resume main .container) .main) section.contact) .telephone{align-items:center;gap:var(--space-xs);flex-direction:row;display:inline-flex}:is(:is(:is(:is(body.resume main .container) .main) section.contact) .email,:is(:is(:is(body.resume main .container) .main) section.contact) .github,:is(:is(:is(body.resume main .container) .main) section.contact) .linked-in,:is(:is(:is(body.resume main .container) .main) section.contact) .telephone,:is(:is(:is(body.resume main .container) .main) section.contact) .location):after{font-family:"Font Awesome 6 Free",sans-serif;font-weight:var(--logo-font-weight);order:1}:is(:is(:is(body.resume main .container) .main) section.contact) .email:after{content:""}:is(:is(:is(body.resume main .container) .main) section.contact) .github:after,:is(:is(:is(body.resume main .container) .main) section.contact) .linked-in:after{font-family:"Font Awesome 6 Brands",sans-serif}:is(:is(:is(body.resume main .container) .main) section.contact) .github:after{content:""}:is(:is(:is(body.resume main .container) .main) section.contact) .linked-in:after{content:""}:is(:is(:is(body.resume main .container) .main) section.contact) .telephone:after{content:""}:is(:is(:is(body.resume main .container) .main) section.contact) .location:after{content:""}@media (max-width:768px){body.resume main .container{padding:0}body.resume main .container .intro{padding:var(--space-sm);text-align:center}body.resume main .container .main{padding:var(--space-sm);flex-direction:column}:is(body.resume main .container .main) aside.sidebar{display:none}body.resume main .container .header button.open-sidebar{display:inline-flex}body.resume main .container .main.sidebar-open{min-block-size:100vh;margin:0}body.resume main .container .main.sidebar-open aside.sidebar{background:var(--text-bg);block-size:100%;min-block-size:unset;padding:var(--space-xl)var(--space-md);z-index:1000;display:block;position:absolute;inset:0;overflow-y:auto;-webkit-mask-image:none;mask-image:none}:is(body.resume main .container .main.sidebar-open aside.sidebar):after{display:none}:is(body.resume main .container .main.sidebar-open aside.sidebar) button.close-sidebar{right:var(--space-md);background:#6e0808;position:absolute}:is(body.resume main .container .main.sidebar-open aside.sidebar) section{text-align:left;align-items:flex-start}:is(:is(body.resume main .container .main.sidebar-open aside.sidebar) section) h2{text-align:left}:is(body.resume main .container .main aside.sidebar section.contact) .email:after,:is(body.resume main .container .main aside.sidebar section.contact) .github:after,:is(body.resume main .container .main aside.sidebar section.contact) .linked-in:after,:is(body.resume main .container .main aside.sidebar section.contact) .location:after,:is(body.resume main .container .main aside.sidebar section.contact) .telephone:after{order:-1}}body.resume main .container:hover{box-shadow:0 12px 28px #0000001f,0 4px 14px #0000000f}@media (prefers-reduced-motion:reduce){body.resume main .container:hover{transform:translateY(-2px)}}body.resume main .container .main aside.sidebar section ul{margin:0;padding:0;list-style:none}:is(body.resume main .container .main aside.sidebar section ul) li{white-space:normal}body.resume main .container .main aside.sidebar section h2{text-align:right;white-space:normal;min-width:0;max-width:100%;margin:0;display:block}@page{margin:.1in;size:a4 portrait}@media print{header{display:none!important}body{background:#fff!important}body,main{margin:0!important;padding:0!important}body.resume main .container{font-size:9pt;line-height:1.3;box-shadow:none!important;background:#fff!important;border:none!important;max-width:100%!important;margin:0!important;padding:.02in .25in .25in!important;display:block!important}body.resume main .container .header{border-bottom:1px solid #000;margin:0!important;padding:0!important}body.resume main .container .header .title-row{margin:0!important;padding:0 0 .1in!important}body.resume main .container .header h1{margin:0!important;padding:0!important;font-size:1.3em!important}body.resume main .container .header .specialization{margin:0!important;font-size:.9em!important}body.resume main .container .header .tagline{margin:0!important;padding:0!important;font-size:.8em!important}body.resume main .container .header button{display:none!important}body.resume main .container h2{padding:0!important;font-size:1.3em!important}body.resume main .container h3{padding:0!important;font-size:1.2em!important}body.resume main .container h4{padding:0!important;font-size:1.1em!important}body.resume main .container .intro{text-align:justify;line-height:1.3;border-bottom:1px solid #ccc!important;margin:0!important;padding:.1in 0!important;font-size:1em!important}body.resume main .container .main aside.sidebar{flex:0 0 25%;max-width:25%;margin-top:.06em;padding:0 1em 0 0;display:block!important}body.resume main .container .main{flex-flow:wrap;gap:.1em;max-width:100%;margin-top:.1em;display:flex;position:relative;margin:0!important;padding:0!important}:is(body.resume main .container .main aside.sidebar section.contact) .email:after,:is(body.resume main .container .main aside.sidebar section.contact) .github:after,:is(body.resume main .container .main aside.sidebar section.contact) .linked-in:after,:is(body.resume main .container .main aside.sidebar section.contact) .location:after,:is(body.resume main .container .main aside.sidebar section.contact) .telephone:after{order:0}body.resume main .container .main aside.content{margin:0!important;padding:0!important;display:block!important}body.resume main .container .main aside.content section{border-bottom:1px solid #ccc!important;margin-bottom:.03in!important;padding-bottom:.02in!important}body.resume main .container .main aside.content section:last-child{border-bottom:none!important}body.resume main .container .main aside.content h3{font-weight:700;margin:.02in 0 .01in!important;padding:0!important;font-size:1em!important}body.resume main .container .main aside.content article{margin:0!important;padding:0!important}body.resume main .container .main aside.content p{margin:0;padding:0;font-size:1em;line-height:1.15}body.resume main .container .main aside.content li{word-spacing:.1em;margin:0;padding:0;font-size:1em;line-height:1.3}}body.posts main [class^=container\ ] .markdown{flex-direction:column;gap:1em;display:flex}:is(body.posts main [class^=container\ ] .markdown) p code{background-color:#8889872d;border-radius:3px;padding:.2em .4em;font-size:1em}:is(body.posts main [class^=container\ ] .markdown) .codehilite pre{color:#d4d4d4;background-color:#1e1e1e;border-radius:4px;padding:1em;font-family:Courier New,monospace;font-size:.9em;line-height:1.5;overflow-x:auto}:is(body.posts main [class^=container\ ] .markdown) .codehilite .s1,:is(body.posts main [class^=container\ ] .markdown) .codehilite .s2{color:#ce9178}:is(body.posts main [class^=container\ ] .markdown) .codehilite .na{color:#9cdcfe}:is(body.posts main [class^=container\ ] .markdown) .codehilite .mf,:is(body.posts main [class^=container\ ] .markdown) .codehilite .mi{color:#b5cea8}:is(body.posts main [class^=container\ ] .markdown) .codehilite .kc{color:#569cd6}@media (max-width:768px){body.posts main [class^=container\ ] .markdown{padding:0}:is(body.posts main [class^=container\ ] .markdown) h1{font-size:1.3rem}:is(body.posts main [class^=container\ ] .markdown) h2{font-size:1.2rem}:is(body.posts main [class^=container\ ] .markdown) h3{font-size:1.1rem}}
