body{-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--color-primary:#cbb5f0;--color-secondary:#aba1de;--color-bg:#fff;--color-bg-alt:#f9f9f9;--color-text:#181818;--color-text-muted:#555;--color-border:#e5e7eb;--color-text-on-dark:#fff;--color-navbar-bg:#181818;--color-navbar-muted:#555;--color-footer-bg:#181818;--color-warning:#faad14;--color-error:#ff4d4f;--color-success:#52c41a;--font-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-serif:"Merriweather",Georgia,serif;--font-mono:"Fira Code",Menlo,monospace;--font-size-base:1rem;--font-size-sm:0.875rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:4rem;--line-height-base:1.5;--line-height-tight:1.25;--line-height-loose:1.75;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--text-shadow-sm:0 1px 3px #0003;--text-shadow-md:0 2px 8px #0000004d;--text-shadow-lg:0 4px 16px #0006;--text-shadow-xl:0 8px 32px #00000080;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--navbar-height:4.5rem;--footer-height:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #00000026;--transition-fast:150ms ease-in-out;--transition-base:300ms ease-in-out;--transition-slow:500ms ease-in-out;--z-negative:-10;--z-base:0;--z-content:10;--z-header:100;--z-dropdown:1000;--z-overlay:1300;--z-modal:1500;--z-toast:2000;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px}*{box-sizing:border-box;margin:0;padding:0}body,html{max-width:100vw;overflow-x:hidden;width:100vw}body{-webkit-font-smoothing:antialiased;background-color:#fff;background-color:var(--color-bg);color:#181818;color:var(--color-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-sans);font-size:1rem;font-size:var(--font-size-base);font-weight:400;font-weight:var(--font-weight-normal);line-height:1.5;line-height:var(--line-height-base)}.content-container{margin:0 auto;max-width:1400px;min-height:calc(100vh - 8.5rem);min-height:calc(100vh - var(--navbar-height) - var(--footer-height));padding:1.5rem 3rem;padding:var(--space-lg) var(--space-2xl)}section{display:flex;margin:0;padding:3rem 0;padding:var(--space-2xl) 0}.section-featured{align-items:center;background:#f9f9f9;background:var(--color-bg-alt);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 10px 15px #00000026;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;justify-content:center;margin:2rem 0;margin:var(--space-xl) 0;min-height:25vh;padding:2rem 3rem;padding:var(--space-xl) var(--space-2xl);text-align:center}h1,h2,h3,h4,h5,h6{color:#181818;color:var(--color-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-sans);line-height:1.25;line-height:var(--line-height-tight);margin-bottom:1rem;margin-bottom:var(--space-md)}h1{font-size:1.875rem;font-size:var(--font-size-3xl);font-weight:700;font-weight:var(--font-weight-bold)}h1,h2{text-align:center}h2{font-size:1.5rem;font-size:var(--font-size-2xl);font-weight:600;font-weight:var(--font-weight-semibold)}p{color:#181818;color:var(--color-text);font-size:1rem;font-size:var(--font-size-base);line-height:1.5;line-height:var(--line-height-base)}ol,p,ul{margin-bottom:1rem;margin-bottom:var(--space-md);text-align:left}ol,ul{padding-left:1.5rem;padding-left:var(--space-lg)}a{transition:color .15s ease-in-out;transition:color var(--transition-fast)}.btn,a{text-decoration:none}.btn{background:#cbb5f0;background:var(--color-primary);border:none;border-radius:9999px;border-radius:var(--radius-full);color:#fff;color:var(--color-text-on-dark);cursor:pointer;display:inline-block;font-size:1rem;font-size:var(--font-size-base);font-weight:700;font-weight:var(--font-weight-bold);margin:.25rem;margin:var(--space-xs) var(--space-xs);padding:.5rem 2rem;padding:var(--space-sm) var(--space-xl);text-align:center;transition:background .15s ease-in-out,color .15s ease-in-out;transition:background var(--transition-fast),color var(--transition-fast)}.btn:hover{background:#aba1de;background:var(--color-secondary)}button{background-color:#cbb5f0;background-color:var(--color-primary);border:none;border-radius:8px;border-radius:var(--radius-md);color:#fff;color:var(--color-text-on-dark);cursor:pointer;font-family:inherit;font-size:inherit;padding:.5rem 1rem;padding:var(--space-sm) var(--space-md);transition:background-color .15s ease-in-out,transform .15s ease-in-out;transition:background-color var(--transition-fast),transform var(--transition-fast)}button:hover{background-color:#aba1de;background-color:var(--color-secondary)}button:active{transform:scale(.98)}button:disabled{background-color:#e5e7eb;background-color:var(--color-border);color:#555;color:var(--color-text-muted);cursor:not-allowed}img{display:block;height:auto;max-width:100%}.container{margin:0 auto;max-width:1200px;padding:0 1rem;padding:0 var(--space-md);width:100%}@media (max-width:600px){.content-container{padding:1rem 2rem;padding:var(--space-md) var(--space-xl)}.section-featured,section{padding:1.5rem;padding:var(--space-lg) var(--space-lg)}.section-featured{border-radius:8px;border-radius:var(--radius-md);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);margin:1.5rem 0;margin:var(--space-lg) 0}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;margin-bottom:var(--space-sm)}p{margin-bottom:1rem;margin-bottom:var(--space-md)}.container{padding:0 1.5rem;padding:0 var(--space-lg)}}.navbar{background:var(--color-navbar-bg);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-overlay)}.navbar,.navbar-container{align-items:center;display:flex;min-height:var(--navbar-height)}.navbar-container{max-width:100vw;padding:0 var(--space-xl);width:100%}.navbar-logo{align-items:center;color:var(--color-text-on-dark);cursor:pointer;display:flex;text-decoration:none}.navbar-logo-stack{align-items:flex-start;display:flex;flex-direction:column;line-height:var(--line-height-tight)}.navbar-logo-name{color:var(--color-text-on-dark);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:.1rem}.nav-menu{display:grid;grid-template-columns:repeat(4,auto);justify-content:end;list-style:none;margin-bottom:0;text-align:center;width:100%}.nav-item{min-height:4.5rem}.nav-item,.nav-link{align-items:center;display:flex}.nav-link{border-bottom:4px solid #0000;box-sizing:border-box;color:var(--color-text-on-dark);cursor:pointer;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);height:100%;padding:var(--space-xs) var(--space-md);text-decoration:none;transition:color var(--transition-fast),border-bottom var(--transition-fast);width:100%}.nav-link:hover{border-bottom:4px solid var(--color-primary);color:var(--color-primary)}.navbar-logo-stack:hover .navbar-logo-name{color:var(--color-primary);transition:color var(--transition-fast)}.menu-icon{color:var(--color-text-on-dark);display:none;font-size:var(--font-size-xl)}.menu-icon:active,.menu-icon:focus{background:none}@media screen and (max-width:960px){.navbar-container{position:relative}.menu-icon{background:none;border:none;cursor:pointer;display:block;font-size:var(--font-size-xl);position:absolute;right:1.5rem;top:1rem}.nav-menu{background:var(--color-navbar-bg);box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;justify-content:flex-start;left:-100vw;max-width:100vw;opacity:0;overflow-y:auto;padding:0 var(--space-sm);position:absolute;top:100%;transition:left .3s,opacity .3s}.nav-menu.active{left:0;opacity:1}.nav-link{border-bottom:none;display:block;padding:var(--space-lg);text-align:left;transition:color var(--transition-fast),background-color var(--transition-fast);width:100%}.nav-link:hover{background-color:var(--color-navbar-muted);border-bottom:none;border-radius:0;color:var(--color-bg)}}.hero-container{align-items:center;display:flex;flex-direction:column;height:70vh;justify-content:center;overflow:hidden;padding-bottom:var(--space-xl);padding-top:var(--space-xl);position:relative;width:100%}.hero-video{object-fit:cover;z-index:var(--z-negative)}.hero-container:before,.hero-video{height:100%;inset:0;position:absolute;width:100%}.hero-container:before{background:#00000073;content:"";pointer-events:none;z-index:calc(var(--z-negative) + 1)}.hero-content-wrapper{flex-direction:row;gap:var(--space-lg);margin:0 auto;max-width:1200px;padding:0 var(--space-lg);position:relative;width:100%;z-index:var(--z-content)}.hero-content-wrapper,.hero-text{align-items:center;display:flex;justify-content:center}.hero-text{flex:2 1;flex-direction:column;text-align:center}.hero-container h1{color:var(--color-bg);font-size:var(--font-size-5xl);letter-spacing:2px;text-shadow:var(--text-shadow-xl)}.hero-container p{color:var(--color-text-on-dark);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);text-align:center;text-shadow:var(--text-shadow-xl)}.hero-image{align-items:center;display:flex;flex:1 1;justify-content:center}.hero-image img{aspect-ratio:1/1;background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:100%;width:320px}@media (max-width:800px){.hero-container{height:90vh;min-height:450px}.hero-content-wrapper{box-sizing:border-box;flex-direction:column;gap:var(--space-xl);margin:0;padding:0 var(--space-xl);width:100%}.hero-text{margin:0;padding:0;width:100%}.hero-container h1{font-size:var(--font-size-4xl);margin-bottom:var(--space-md)}.hero-container p{font-size:var(--font-size-lg);margin-bottom:var(--space-md)}.hero-image img{margin:0;max-width:280px;width:70vw}}@media (max-width:600px){.hero-container{height:90vh;min-height:350px}.hero-content-wrapper{gap:var(--space-md);margin:0;padding:0 var(--space-lg);width:100%}.hero-text{box-sizing:border-box;margin:0;padding:0;width:100%}.hero-container h1{font-size:var(--font-size-3xl);margin-bottom:var(--space-sm)}.hero-container p{font-size:var(--font-size-base);margin-bottom:var(--space-sm)}.hero-image img{margin:0;max-width:220px;min-width:0;width:90vw}}.skills-lists{gap:var(--space-md)}.about-profile{align-items:flex-start}.profile-image-container{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-left:auto;margin-right:auto;min-height:180px;min-width:180px}.about-profile p{flex:1 1;margin:0}.about-profile{align-items:center;display:flex;flex-direction:row;gap:var(--space-2xl);text-align:left}.profile-image{border:4px solid var(--color-primary);border-radius:var(--radius-full);box-shadow:var(--shadow-md);height:180px;margin-bottom:var(--space-sm);object-fit:cover;width:180px}.name-text{font-weight:var(--font-weight-semibold);text-align:center}.pronouns-text{color:var(--color-text-muted);font-style:italic;text-align:center}.skills-lists{display:flex;flex-direction:row;gap:var(--space-2xl)}.skills-list{list-style:none;margin:0;margin-bottom:var(--space-sm);padding:0;text-align:left}.interests-list{align-items:stretch;display:flex;flex-wrap:wrap;gap:var(--space-2xl);justify-content:center}.interest-item{align-items:center;background:var(--color-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-md);max-width:200px;padding:var(--space-md);text-align:center}.interest-item img{aspect-ratio:2/3;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);height:auto;max-width:180px;object-fit:cover;width:100%}.interest-item-details{display:flex;flex-direction:column;flex-grow:1;justify-content:center;text-align:center}.interest-item-details p,h4{margin:0;text-align:center}.links-row{display:flex;gap:var(--space-lg);justify-content:center}@media (max-width:768px){.about-profile{align-items:center;flex-direction:column;gap:var(--space-lg);padding:var(--space-md);text-align:center}.profile-image{height:120px;width:120px}.skills-lists{align-items:flex-start;flex-direction:column;gap:var(--space-sm)}.links-row{align-items:center;flex-direction:column;gap:var(--space-xs)}}@media (max-width:480px){.about-profile{gap:var(--space-md);padding:0 var(--space-xs)}.profile-image-container{margin-bottom:var(--space-sm);min-height:80px;min-width:80px}.profile-image{height:80px;width:80px}}.cards__items{grid-column-gap:var(--space-lg);grid-row-gap:var(--space-lg);column-gap:var(--space-lg);display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(3,1fr);margin-bottom:0;row-gap:var(--space-lg)}.cards--horizontal .cards__container,.cards--horizontal .cards__wrapper,.cards__items--horizontal{-webkit-overflow-scrolling:touch;display:flex;flex-direction:row;gap:var(--space-xl);margin-bottom:0;overflow-x:auto;scroll-snap-type:x mandatory}.cards__items--horizontal{padding-bottom:var(--space-md)}.cards--horizontal .cards__item{flex:0 0 auto;max-width:350px;min-width:320px;scroll-snap-align:start}@media (max-width:400px){.cards--horizontal .cards__item{max-width:95vw;min-width:90vw}}.cards__item{border-radius:var(--radius-lg);min-height:320px;transition:box-shadow .2s,transform .2s}.cards__item,.cards__item__link{display:flex;flex-direction:column;height:100%}.cards__item__link{border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden;text-decoration:none;width:100%}.cards__item__pic-wrap{flex-basis:140px;flex-grow:1;flex-shrink:1;min-height:100px;overflow:hidden;position:relative;width:100%}.cards__item__img{height:100%;left:0;object-fit:cover;position:absolute;top:0;transition:transform var(--transition-fast);width:100%}.cards__item__img:hover{transform:scale(1.1)}.cards__item__info{align-items:flex-start;display:flex;flex-basis:120px;flex-direction:column;flex-grow:0;flex-shrink:1;padding:var(--space-lg) var(--space-xl) var(--space-xl)}.cards__item__text{font-size:var(--font-size-lg);margin-bottom:var(--space-xs)}.cards__item__desc{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-xs)}.cards__item__tag--more{background:var(--color-secondary)}.cards__item__tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-xs)}.cards__item__tag{background:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text-on-dark);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);padding:var(--space-xs) var(--space-sm);white-space:nowrap}.cards__pagination{align-items:center;display:flex;flex-direction:column;gap:var(--space-md);justify-content:center;margin-top:var(--space-lg)}.cards__pagination-info{color:var(--color-text-muted);font-size:var(--font-size-base)}.cards__pagination button:disabled{transition:none}.cards__pagination button:disabled,.cards__pagination button:disabled:hover{background-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.cards__pagination button:disabled:active{transform:none}.cards:not(.cards--horizontal) .cards__container,.cards__container{display:flex;flex-direction:column;justify-content:flex-start}.cards:not(.cards--horizontal) .cards__container{height:auto;padding:var(--space-md) var(--space-md) var(--space-lg) var(--space-md)}.cards:not(.cards--horizontal) .cards__items{align-items:start;grid-auto-rows:320px;scrollbar-color:var(--color-primary) var(--color-bg-alt);scrollbar-width:thin}.cards__empty{color:var(--color-text-muted);padding:var(--space-xl);text-align:center}.cards__item__placeholder-bg{align-items:center;background:var(--color-primary);border-radius:var(--radius-md);display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:absolute;top:0;width:100%}.cards__item__placeholder-icon{color:var(--color-text-on-dark);font-size:4rem;font-size:var(--font-size-6xl,4rem)}.cards__item__img,.cards__item__placeholder-bg{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.cards__item__placeholder{height:140px;margin:0;min-height:140px;overflow:hidden;position:relative;width:100%}@media only screen and (max-width:1024px){.cards__items{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width:600px){.cards__items{grid-template-columns:1fr}.cards:not(.cards--horizontal) .cards__items{grid-auto-rows:420px}.cards__item{min-height:420px}}.cv-btn-container{align-items:center;display:flex;flex-direction:column}.portfolio-row{display:flex;gap:var(--space-2xl);justify-content:center;max-width:1400px;width:100%}.education-container,.work-experience-container{align-items:stretch;display:flex;flex:1 1;flex-direction:column;height:-webkit-fit-content;height:fit-content;width:100%}.portfolio-section{align-items:stretch;display:flex;flex-direction:column;margin:0 auto var(--space-2xl) auto;width:100%}.item-block{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-xl);padding-bottom:var(--space-xs)}.item-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.item-title,.item-years{margin:var(--space-xs) 0;text-align:center}.item-details{margin:var(--space-lg) 0}.projects-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:var(--space-lg);width:100%}.view-more-arrow-container{gap:var(--space-md);margin:0 var(--space-lg)}.view-more-arrow-container,.view-more-arrow-link{align-items:center;display:flex;flex-direction:column;justify-content:center}.view-more-arrow-link{color:var(--color-primary);gap:var(--space-xs);text-decoration:none}.view-more-arrow-icon{align-items:center;background:var(--color-primary);border-radius:50%;box-shadow:var(--shadow-md);color:var(--color-text-on-dark);display:flex;font-size:2rem;height:3.5rem;justify-content:center;width:3.5rem}.view-more-arrow-text{color:var(--color-text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.portfolio-projects-scroll{overflow-x:auto;width:100%}@media (max-width:900px){.portfolio-row{flex-direction:column;gap:0}.education-container,.work-experience-container{max-width:100%}}.contact-form-container{align-items:center;background:none;border-radius:0;box-shadow:none;display:flex;justify-content:center;min-height:60vh;width:100%}.contact-form{background:var(--color-bg-alt);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;font-family:var(--font-sans);gap:var(--space-lg);margin:0 auto;max-width:700px;padding:var(--space-xl) var(--space-lg);width:100%}.contact-form label{color:var(--color-text);display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-xs)}.contact-form input,.contact-form textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--font-size-base);margin-bottom:var(--space-md);min-height:44px;padding:var(--space-md) var(--space-lg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.contact-form textarea{min-height:120px;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--color-primary);box-shadow:0 0 6px var(--color-primary);outline:none}.contact-form button{background:var(--color-primary);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:#fff;display:block;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);padding:var(--space-md);transition:background var(--transition-fast),transform var(--transition-fast);width:100%}.contact-form button:hover{background:var(--color-secondary);color:var(--color-primary);transform:translateY(-2px) scale(1.03)}.error-message{color:var(--color-error);display:block;font-size:var(--font-size-base);margin-bottom:var(--space-sm);margin-top:-8px}.success-message{color:var(--color-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-top:var(--space-sm);text-align:center}.project-tags-list{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-xs)}.project-tag{background:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text-on-dark);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-xs);padding:var(--space-xs) var(--space-sm)}.project-image-container{align-items:center;aspect-ratio:4/3;display:flex;justify-content:center;max-width:400px;width:100%}.project-image{aspect-ratio:4/3;background:var(--color-bg-alt);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:block;height:auto;margin:var(--space-lg);object-fit:cover;position:static;width:100%}.notfound-page .content-container{align-items:center;display:flex;justify-content:center;text-align:center}.error-container h1{color:var(--color-primary);font-size:var(--font-size-6xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-sm)}.footer{background:var(--color-footer-bg);color:var(--color-text-on-dark);font-family:var(--font-sans);font-size:var(--font-size-base);padding:calc(var(--footer-height)/2) 0;position:relative;text-align:center;width:100%;z-index:var(--z-base)}.footer .social-icons{align-items:center;display:flex;gap:var(--space-xl);justify-content:center;margin-bottom:var(--space-lg)}.footer .social-icons a{align-items:center;color:var(--color-text-on-dark);display:flex;font-size:var(--font-size-xl);transition:color var(--transition-fast),transform var(--transition-fast)}.footer .social-icons a:focus,.footer .social-icons a:hover{color:var(--color-primary);outline:none;transform:scale(1.15)}.footer p{color:var(--color-text-on-dark);font-size:var(--font-size-base);letter-spacing:.5px;margin:0;opacity:.8;text-align:center}@media (max-width:800px){.footer{font-size:var(--font-size-base);padding:calc(var(--footer-height)/2) 0}.footer .social-icons{gap:var(--space-md);margin-bottom:var(--space-md)}.footer .social-icons a{font-size:var(--font-size-lg)}}@media (max-width:500px){.footer{padding:var(--space-md) 0}.footer .social-icons{flex-wrap:wrap;gap:var(--space-md)}.footer .social-icons a{font-size:var(--font-size-base)}.footer p{font-size:var(--font-size-sm)}}
/*# sourceMappingURL=main.b46d411d.css.map*/