:root{--font-sans:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;--font-mono:"Courier Prime",source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace;--text-xs:0.78rem;--text-sm:0.875rem;--text-base:clamp(1rem,0.97rem + 0.15vw,1.0625rem);--text-lg:clamp(1.05rem,1rem + 0.25vw,1.2rem);--text-h3:clamp(1.15rem,1.05rem + 0.4vw,1.35rem);--text-h2:clamp(1.35rem,1.15rem + 0.8vw,1.75rem);--text-h1:clamp(1.9rem,1.45rem + 1.9vw,2.75rem);--text-hero:clamp(2.6rem,1.5rem + 4.6vw,5rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--content-max:1180px;--gutter:clamp(1.25rem,5vw,4rem);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:999px;--ease:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--dur-fast:140ms;--dur:220ms;--dur-slow:400ms}:root,:root[data-theme=dark]{--bg:#0a0c10;--bg-alt:#0d1016;--surface-1:#11141a;--surface-2:#171b23;--surface-3:#1e232d;--border:#222833;--border-strong:#2f3743;--text-hi:#e9edf3;--text-mid:#9ba6b5;--text-low:#7f8a9b;--accent:#8b5cf6;--accent-hover:#a78bfa;--accent-contrast:#fff;--accent-soft:#8b5cf624;--accent-ring:#8b5cf673;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 4px 16px #00000073;--shadow-lg:0 16px 48px #0000008c;--scrim:#06080cb8;--nav-bg:#0a0c10b8;color-scheme:dark}:root[data-theme=light]{--bg:#fff;--bg-alt:#f7f8fa;--surface-1:#fff;--surface-2:#f5f7fa;--surface-3:#eef1f6;--border:#e4e8ee;--border-strong:#cfd6e0;--text-hi:#0d1116;--text-mid:#4b5563;--text-low:#6b7280;--accent:#6d28d9;--accent-hover:#5b21b6;--accent-contrast:#fff;--accent-soft:#6d28d917;--accent-ring:#6d28d966;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 16px #10182814;--shadow-lg:0 16px 48px #1018281f;--scrim:#ffffffb3;--nav-bg:#ffffffbf;color-scheme:light}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;margin:0;text-rendering:optimizeLegibility}code{font-family:Courier Prime,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-family:var(--font-mono);font-size:.95em}.main-container{background-color:#0a0c10;background-color:var(--bg);color:#9ba6b5;color:var(--text-mid);font-size:clamp(1rem,.97rem + .15vw,1.0625rem);font-size:var(--text-base);line-height:1.65;overflow-x:hidden;position:relative;transition:background-color .22s cubic-bezier(.4,0,.2,1),color .22s cubic-bezier(.4,0,.2,1);transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.main-container,h1,h2,h3,h4,h5{font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-family:var(--font-sans)}h1,h2,h3,h4,h5{color:#e9edf3;color:var(--text-hi);letter-spacing:-.02em;line-height:1.2;margin-block-start:0}label,p{color:#9ba6b5;color:var(--text-mid);font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-family:var(--font-sans)}a{color:#e9edf3;color:var(--text-hi);text-decoration:none;transition:color .14s cubic-bezier(.4,0,.2,1);transition:color var(--dur-fast) var(--ease)}a:hover{color:#a78bfa;color:var(--accent-hover)}::selection{background:#8b5cf624;background:var(--accent-soft);color:#e9edf3;color:var(--text-hi)}:where(a,button,input,textarea,[tabindex]):focus-visible{border-radius:6px;border-radius:var(--radius-sm);outline:2px solid #8b5cf6;outline:2px solid var(--accent);outline-offset:3px}.icon-link{align-items:center;background:color-mix(in srgb,#11141a 70%,#0000);background:color-mix(in srgb,var(--surface-1) 70%,#0000);border:1px solid #222833;border:1px solid var(--border);border-radius:999px;border-radius:var(--radius-full);color:#9ba6b5;color:var(--text-mid);display:inline-flex;height:44px;justify-content:center;transition:color .22s cubic-bezier(.4,0,.2,1),border-color .22s cubic-bezier(.4,0,.2,1),background-color .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.16,1,.3,1);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),transform var(--dur) var(--ease-out);width:44px}.icon-link svg{font-size:1.3rem;height:1.3rem;width:1.3rem}.icon-link:hover{background:#8b5cf624;background:var(--accent-soft);border-color:#8b5cf6;border-color:var(--accent);color:#a78bfa;color:var(--accent-hover);transform:translateY(-2px)}.icon-link--sm{height:38px;width:38px}.icon-link--sm svg{font-size:1.05rem;height:1.05rem;width:1.05rem}.dark-mode ::-webkit-scrollbar{height:12px;width:12px}.dark-mode ::-webkit-scrollbar-track{background:#0a0c10;background:var(--bg)}.dark-mode ::-webkit-scrollbar-thumb{background:#2f3743;background:var(--border-strong);border:3px solid #0a0c10;border:3px solid var(--bg);border-radius:999px;border-radius:var(--radius-full)}.dark-mode ::-webkit-scrollbar-thumb:hover{background:#7f8a9b;background:var(--text-low)}.container{align-items:center}.container,.items-container,.projects-container,.skills-container{display:flex;flex-direction:column;justify-content:center;width:100%}.items-container,.projects-container,.skills-container{margin-inline:auto;max-width:1180px;max-width:var(--content-max);padding:6rem clamp(1.25rem,5vw,4rem);padding:var(--space-9) var(--gutter);text-align:left}.contact_wrapper>h1,.items-container>h1,.projects-container>h1,.skills-container>h1{font-size:clamp(1.9rem,1.45rem + 1.9vw,2.75rem);font-size:var(--text-h1);margin-bottom:2rem;margin-bottom:var(--space-6);padding-bottom:.75rem;padding-bottom:var(--space-3);position:relative}.contact_wrapper>h1:after,.items-container>h1:after,.projects-container>h1:after,.skills-container>h1:after{background:#8b5cf6;background:var(--accent);border-radius:999px;border-radius:var(--radius-full);bottom:0;content:"";height:3px;left:0;position:absolute;width:52px}.section-divider{background:linear-gradient(90deg,#0000,#222833 15%,#222833 85%,#0000);background:linear-gradient(90deg,#0000,var(--border) 15%,var(--border) 85%,#0000);height:1px;margin-inline:auto;max-width:1180px;max-width:var(--content-max);width:100%}.navigation-bar{background-color:#0000;gap:.5rem;gap:var(--space-2);justify-content:space-between}.navigation-bar button{border-radius:6px;border-radius:var(--radius-sm);color:#9ba6b5!important;color:var(--text-mid)!important;font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-family:var(--font-sans);font-size:.875rem;font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;padding:.5rem .75rem;padding:var(--space-2) var(--space-3);text-transform:none;transition:color .14s cubic-bezier(.4,0,.2,1),background-color .14s cubic-bezier(.4,0,.2,1);transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.navigation-bar button:hover{background-color:#171b23;background-color:var(--surface-2);color:#e9edf3!important;color:var(--text-hi)!important}#navigation.navbar-fixed-top{background-color:#0000;background-image:none;border-bottom:1px solid #0000;box-shadow:none;transition:background-color .22s cubic-bezier(.4,0,.2,1),border-color .22s cubic-bezier(.4,0,.2,1),-webkit-backdrop-filter .22s cubic-bezier(.4,0,.2,1);transition:background-color .22s cubic-bezier(.4,0,.2,1),border-color .22s cubic-bezier(.4,0,.2,1),backdrop-filter .22s cubic-bezier(.4,0,.2,1);transition:background-color .22s cubic-bezier(.4,0,.2,1),border-color .22s cubic-bezier(.4,0,.2,1),backdrop-filter .22s cubic-bezier(.4,0,.2,1),-webkit-backdrop-filter .22s cubic-bezier(.4,0,.2,1);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),-webkit-backdrop-filter var(--dur) var(--ease);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),backdrop-filter var(--dur) var(--ease);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),backdrop-filter var(--dur) var(--ease),-webkit-backdrop-filter var(--dur) var(--ease)}#navigation.navbar-fixed-top.scrolled{backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);background-color:#0a0c10b8;background-color:var(--nav-bg);border-bottom-color:#222833;border-bottom-color:var(--border)}.theme-toggle{border:1px solid #222833!important;border:1px solid var(--border)!important;border-radius:999px!important;border-radius:var(--radius-full)!important;color:#9ba6b5!important;color:var(--text-mid)!important;padding:.5rem!important;padding:var(--space-2)!important;transition:color .14s cubic-bezier(.4,0,.2,1),border-color .14s cubic-bezier(.4,0,.2,1),background-color .14s cubic-bezier(.4,0,.2,1);transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.theme-toggle svg{font-size:1.15rem}.theme-toggle:hover{background-color:#8b5cf624!important;background-color:var(--accent-soft)!important;border-color:#8b5cf6!important;border-color:var(--accent)!important;color:#a78bfa!important;color:var(--accent-hover)!important}.MuiDrawer-paper,.nav-menu-button{color:#9ba6b5!important;color:var(--text-mid)!important}.MuiDrawer-paper{background-color:#11141a!important;background-color:var(--surface-1)!important;background-image:none!important;border-right:1px solid #222833!important;border-right:1px solid var(--border)!important}.navigation-bar-responsive{background-color:#11141a;background-color:var(--surface-1);height:100%}.navigation-bar-responsive p,.navigation-bar-responsive span{color:#e9edf3;color:var(--text-hi);font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-family:var(--font-sans)}.navigation-bar-responsive .MuiListItemButton-root{border-radius:6px;border-radius:var(--radius-sm);margin:2px .5rem;margin:2px var(--space-2)}.navigation-bar-responsive .MuiListItemButton-root:hover{background-color:#171b23;background-color:var(--surface-2)}.navigation-bar-responsive .MuiDivider-root{border-color:#222833;border-color:var(--border)}.mobile-menu-top{align-items:center;color:#e9edf3;color:var(--text-hi);display:flex;font-weight:700;gap:.5rem;gap:var(--space-2);justify-content:center;margin:0;padding:1rem 0;padding:var(--space-4) 0}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media screen and (max-width:768px){.items-container,.projects-container,.skills-container{padding-block:4rem;padding-block:var(--space-8)}}footer{align-items:center;background:var(--bg);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8) var(--gutter);text-align:center}footer .footer-socials{display:flex;gap:var(--space-3)}footer p{color:var(--text-low);font-size:var(--text-sm);margin:0}footer a{color:inherit}footer .footer-credit a{border-bottom:1px solid var(--border-strong);color:var(--text-mid);transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}footer .footer-credit a:hover{border-color:var(--accent);color:var(--accent-hover)}.about-section{align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;display:flex;gap:clamp(1.5rem,4vw,3.5rem);isolation:isolate;justify-content:flex-start;min-height:min(760px,100svh);overflow:hidden;padding:var(--space-9) var(--gutter);position:relative;width:100%}.dark-mode .about-section{background-image:url(/static/media/bg-dark.bf4079fb1284b9c2aaca.webp)}.light-mode .about-section{background-image:url(/static/media/bg-light.e6a573a466eba7dfacd5.webp)}.about-section:before{background:linear-gradient(100deg,var(--bg) 0,color-mix(in srgb,var(--bg) 88%,#0000) 42%,color-mix(in srgb,var(--bg) 45%,#0000) 100%);content:"";inset:0;position:absolute;z-index:1}.about-section:after{aspect-ratio:1;background:radial-gradient(circle,var(--accent-soft) 0,#0000 68%);border-radius:50%;content:"";inset:auto -10% -40% auto;pointer-events:none;position:absolute;width:min(680px,80vw);z-index:1}.about-section .inner{align-items:center;display:flex;gap:clamp(1.5rem,4vw,3.5rem);margin-inline:auto;max-width:var(--content-max);position:relative;width:100%;z-index:2}.about-section .content{text-align:left;z-index:2}.about-section .content .hero-eyebrow{align-items:center;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,#0000);border-radius:var(--radius-full);color:var(--accent-hover);display:inline-flex;font-size:var(--text-sm);font-weight:700;gap:var(--space-2);letter-spacing:.08em;margin-bottom:var(--space-4);padding:var(--space-1) var(--space-3);text-transform:uppercase}.about-section .content h1{color:var(--text-hi);font-size:var(--text-hero);font-weight:800;letter-spacing:-.035em;line-height:1.02;margin-block:0 var(--space-3)}.about-section .content .hero-role{color:var(--text-mid);font-size:var(--text-lg);font-weight:500;margin-block:0 var(--space-4);max-width:46ch}.about-section .content .hero-bio{color:var(--text-low);font-size:var(--text-sm);line-height:1.75;margin-block:0 var(--space-6);max-width:58ch}.about-section .content .hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3)}.about-section .content .social_icons{display:flex;flex-direction:row;gap:var(--space-3)}.about-section .content .mobile_social_icons{display:none}.cv-button{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-full);color:var(--accent-contrast);display:inline-flex;font-size:var(--text-sm);font-weight:700;gap:var(--space-2);height:44px;letter-spacing:.01em;padding-inline:var(--space-5);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease);white-space:nowrap}.cv-button svg{font-size:1.15rem}.cv-button:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-md);color:var(--accent-contrast);transform:translateY(-2px)}.about-section .image-wrapper{flex-shrink:0;position:relative;z-index:2}.about-section .image-wrapper img{aspect-ratio:1;border:3px solid var(--border-strong);border-radius:50%;box-shadow:var(--shadow-lg);object-fit:cover;width:clamp(140px,17vw,210px)}.about-section .image-wrapper:before{background:radial-gradient(circle,var(--accent-soft),#0000 70%);border-radius:50%;content:"";inset:-14px;position:absolute;z-index:-1}@media screen and (max-width:768px){.about-section{min-height:auto;padding-top:calc(var(--space-9) + 56px)}.about-section .inner{align-items:flex-start;flex-direction:column;gap:var(--space-6)}.about-section .content{width:100%}.about-section h1{text-align:left}.about-section .social_icons{display:none!important}.about-section .mobile_social_icons{display:flex!important;flex-direction:row;gap:var(--space-3);padding-top:var(--space-2)}}#expertise{scroll-margin-top:72px}.skills-container svg{color:var(--accent-hover)}.skills-container .skills-grid{display:flex;flex-wrap:wrap;gap:var(--space-5)}.skills-container .skills-grid .skill{align-items:flex-start;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex:1 1 288px;flex-direction:column;min-width:0;padding:var(--space-6);text-align:left;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease)}.skills-container .skills-grid .skill h3{font-size:var(--text-h3);font-weight:700;margin-block:var(--space-4) var(--space-2)}.skills-container .skills-grid .skill p{color:var(--text-mid);flex-grow:1;font-size:var(--text-sm);line-height:1.7;margin-block:0 var(--space-5)}.skills-container .skills-grid .skill>.svg-inline--fa,.skills-container .skills-grid .skill>svg{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,#0000);border-radius:var(--radius-md);box-sizing:initial;color:var(--accent-hover);font-size:26px;height:26px;padding:var(--space-3);transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease);width:26px}.skills-container .skills-grid .skill:hover{background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-3px)}.flex-chips{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);line-height:1.6}.flex-chips .chip-title{color:var(--text-low);display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:.09em;margin-bottom:var(--space-1);text-transform:uppercase;width:100%}.chip.MuiChip-root{background-color:var(--surface-3)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;color:var(--text-mid)!important;font-family:var(--font-mono);font-size:var(--text-xs)!important;height:27px!important;margin:0!important;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.chip.MuiChip-root .MuiChip-label{color:inherit;font-family:inherit;padding-inline:var(--space-3)}.chip.MuiChip-root:hover{background-color:var(--accent-soft)!important;border-color:var(--accent)!important;color:var(--accent-hover)!important}@media screen and (max-width:768px){.skills-container .skills-grid .skill{flex-basis:100%;padding:var(--space-5)}}.vertical-timeline *{-webkit-box-sizing:border-box;box-sizing:border-box}.vertical-timeline{margin:0 auto;max-width:1170px;padding:2em 0;position:relative;width:95%}.vertical-timeline:after{clear:both;content:"";display:table}.vertical-timeline:before{background:var(--line-color);content:"";height:100%;left:18px;position:absolute;top:0;width:4px}.vertical-timeline.vertical-timeline--one-column-right:before{left:auto;right:18px}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{margin:2em 0;position:relative}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{clear:both;content:"";display:table}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{border-radius:50%;-webkit-box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;height:40px;left:0;position:absolute;top:0;width:40px}.vertical-timeline--one-column-right .vertical-timeline-element-icon{left:auto;right:0}.vertical-timeline-element-icon svg{display:block;height:24px;left:50%;margin-left:-12px;margin-top:-12px;position:relative;top:50%;width:24px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{height:60px;left:50%;margin-left:-30px;width:60px}}.vertical-timeline-element-icon{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0)}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{-webkit-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s;visibility:visible}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{background:#fff;border-radius:.25em;-webkit-box-shadow:0 3px 0 #ddd;box-shadow:0 3px 0 #ddd;margin-left:60px;padding:1em;position:relative}.vertical-timeline--one-column-right .vertical-timeline-element-content{margin-left:0;margin-right:60px}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;-webkit-box-shadow:none;box-shadow:none}.vertical-timeline-element-content:after{clear:both;content:"";display:table}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{line-height:1.6;margin:1em 0 0}.vertical-timeline-element-subtitle,.vertical-timeline-element-title{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;opacity:.7;padding:.8em 0}.vertical-timeline-element-content-arrow{border:7px solid #0000;border-right-color:#fff;content:"";height:0;position:absolute;right:100%;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content-arrow{border:7px solid #0000;border-left-color:#fff;content:"";height:0;left:100%;position:absolute;right:auto;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content:before{border-left:7px solid #fff;border-right:initial;left:100%}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow,.vertical-timeline-element--no-children .vertical-timeline-element-content:before{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{left:100%;top:24px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{font-size:16px;font-size:1rem;left:124%;position:absolute;top:6px;width:100%}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:auto;right:100%;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--one-column-right .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--one-column-right .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:100%;right:auto;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s;visibility:visible}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s;visibility:visible}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}#history{background:var(--bg-alt);border-block:1px solid var(--border);scroll-margin-top:72px}.vertical-timeline{margin:0;max-width:100%;padding:var(--space-5) 0;width:100%}.vertical-timeline:before{background:var(--border);width:2px}.vertical-timeline-element{margin:var(--space-5) 0}.vertical-timeline-element-content{background:var(--surface-1)!important;border:1px solid var(--border);border-radius:var(--radius-lg)!important;box-shadow:none!important;padding:var(--space-5) var(--space-6)!important;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease-out)}.vertical-timeline-element:hover .vertical-timeline-element-content{background:var(--surface-2)!important;border-color:var(--border-strong);box-shadow:var(--shadow-md)!important;transform:translateY(-2px)}.vertical-timeline-element-content-arrow{border-right-color:var(--border)!important}.vertical-timeline-element-title{color:var(--text-hi);display:block;font-size:var(--text-h3);font-weight:700;margin-block:0 var(--space-1)}.vertical-timeline-element-subtitle{color:var(--accent-hover);display:block;font-size:var(--text-base);font-weight:600;margin-block:0 var(--space-3)}.timeline-meta{color:var(--text-low);font-size:var(--text-sm);margin:0}.timeline-meta span{opacity:.55;padding-inline:2px}.vertical-timeline-element-date{color:var(--text-low)!important;font-family:var(--font-mono);font-size:var(--text-sm)!important;font-weight:700!important;letter-spacing:.01em;opacity:1!important;padding-block:var(--space-3)!important}.vertical-timeline-element-icon.timeline-icon{background:var(--surface-3);border:2px solid var(--border-strong);box-shadow:none;height:44px;margin-left:-22px;top:14px;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease);width:44px}.vertical-timeline-element-icon.timeline-icon svg{color:var(--text-low);height:16px;margin-left:-8px;margin-top:-8px;transition:color var(--dur) var(--ease);width:16px}.vertical-timeline-element-icon.timeline-icon.current{background:var(--accent-soft);border-color:var(--accent)}.vertical-timeline-element-icon.timeline-icon.current svg{color:var(--accent-hover)}.vertical-timeline-element-icon.timeline-icon.education{background:var(--surface-1);border-color:var(--text-low);border-style:dashed}.vertical-timeline-element-icon.timeline-icon.education svg{color:var(--text-mid)}.vertical-timeline-element:hover .vertical-timeline-element-icon.timeline-icon{border-color:var(--accent)}.vertical-timeline-element:hover .vertical-timeline-element-icon.timeline-icon svg{color:var(--accent-hover)}.vertical-timeline-element-date:empty{display:none}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon.timeline-icon{margin-left:-22px}}@media screen and (max-width:1169px){.vertical-timeline-element-date{padding-block:0 var(--space-2)!important}.vertical-timeline-element-icon.timeline-icon{height:36px;margin-left:-14px;width:36px}}#projects{scroll-margin-top:72px}.projects-container .projects-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.projects-container .projects-grid .project{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;position:relative;text-align:left;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease)}.projects-container .projects-grid .project .project-thumb{background:var(--surface-2);border-bottom:1px solid var(--border);display:block;line-height:0;overflow:hidden}.projects-container .projects-grid .project h2{color:var(--text-hi);font-size:var(--text-h3);font-weight:700;margin-block:0 var(--space-2);padding-inline:var(--space-5);transition:color var(--dur-fast) var(--ease)}.projects-container .projects-grid .project .project-title-link{display:block;padding-top:var(--space-5)}.projects-container .projects-grid .project p{color:var(--text-mid);flex-grow:1;font-size:var(--text-sm);line-height:1.7;margin-block:0;padding:0 var(--space-5) var(--space-4)}.project-title-link:after{content:"";inset:0;position:absolute;z-index:0}.project-links{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding:0 var(--space-5) var(--space-5)}.project-links a{position:relative;z-index:1}.projects-container .projects-grid .project:hover{background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.projects-container .projects-grid .project:hover h2{color:var(--accent-hover)}.zoom{aspect-ratio:16/10;border-radius:0;display:block;margin:0;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out);width:100%}.project-thumb-fallback{align-items:center;aspect-ratio:16/10;background:radial-gradient(circle at 50% 42%,var(--accent-soft),#0000 68%),var(--surface-2);display:flex;justify-content:center;width:100%}.project-thumb-fallback span{color:var(--text-low);font-family:var(--font-mono);font-size:clamp(2.25rem,1.5rem + 3vw,3.25rem);font-weight:700;letter-spacing:.08em;line-height:1}.zoom--contain{background:var(--surface-2);object-fit:contain;padding:var(--space-4)}.project:hover .zoom{transform:scale(1.04)}.project h2:hover{text-decoration:none}@media screen and (max-width:700px){.projects-container .projects-grid{grid-template-columns:1fr}}#contact{background:var(--bg-alt);border-top:1px solid var(--border);scroll-margin-top:72px}.contact_wrapper{width:100%}.contact_wrapper>p{color:var(--text-mid);font-size:var(--text-lg);margin-block:0 var(--space-6);max-width:56ch}.contact-email{align-items:center;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-hi);display:inline-flex;font-size:var(--text-lg);font-weight:600;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-3) var(--space-5);transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.contact-email svg{color:var(--accent-hover);font-size:1.2rem}.contact-email:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.contact_wrapper svg{font-size:1em;vertical-align:middle}.contact-form{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:720px;padding:var(--space-6);width:100%}.form-flex{display:flex;gap:var(--space-4);padding-bottom:var(--space-4)}.form-flex .MuiFormControl-root{width:100%}.body-form,form{width:100%!important}.body-form{margin-bottom:var(--space-4)!important}.contact-form .MuiOutlinedInput-root{background-color:var(--surface-2);border-radius:var(--radius-md);color:var(--text-hi);transition:background-color var(--dur-fast) var(--ease)}.contact-form .MuiOutlinedInput-root .MuiOutlinedInput-notchedOutline,.contact-form .MuiOutlinedInput-root fieldset{background-color:#0000;border-color:var(--border);transition:border-color var(--dur-fast) var(--ease)}.contact-form .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:var(--border-strong)}.contact-form .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:var(--accent);border-width:2px}.contact-form .MuiOutlinedInput-root.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#f87171}.contact-form .MuiInputBase-input{color:var(--text-hi);font-family:var(--font-sans)}.contact-form .MuiInputBase-input::placeholder{color:var(--text-low);opacity:1}.contact-form .MuiInputLabel-root{color:var(--text-mid);font-family:var(--font-sans);font-size:var(--text-base)}.contact-form .MuiInputLabel-root.Mui-focused{color:var(--accent-hover)}.contact-form .MuiFormHelperText-root.Mui-error,.contact-form .MuiInputLabel-root.Mui-error{color:#f87171}.contact-form .MuiFormHelperText-root{font-family:var(--font-sans);margin-left:2px}.contact-form .MuiButton-root{background-color:var(--accent);border-radius:var(--radius-md);box-shadow:none;color:var(--accent-contrast);display:inline-flex;float:none;font-family:var(--font-sans);font-size:var(--text-base);font-weight:700;letter-spacing:.01em;padding:var(--space-3) var(--space-6);text-transform:none;transition:background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease)}.contact-form .MuiButton-root:hover{background-color:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.contact-form .MuiButton-root:active{transform:translateY(0)}.form-actions{display:flex;justify-content:flex-end}label{font-family:var(--font-sans);font-size:var(--text-base)}@media screen and (max-width:600px){.form-flex{flex-direction:column}.contact-form{padding:var(--space-5)}.form-actions{justify-content:stretch}.form-actions .MuiButton-root{width:100%}}
/*# sourceMappingURL=main.e491750a.css.map*/