@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-text-primary: #1a1a1a;--color-text-secondary: #666666;--color-accent: #e74c3c;--color-background: #ffffff;--color-border: #e0e0e0;--color-hover: #f5f5f5;--color-card-bg: #fafafa;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-serif: Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 6rem;--space-2xl: 8rem;--text-xs: .875rem;--text-sm: 1rem;--text-md: 1.125rem;--text-lg: 1.5rem;--text-xl: 2rem;--text-2xl: 3rem;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--container-max-width: 1200px;--container-padding: var(--space-md);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px}body{font-family:var(--font-primary);font-size:var(--text-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin:0;color:var(--color-text-primary)}h1{font-size:var(--text-2xl);letter-spacing:-.02em;margin-bottom:var(--space-md)}h2{font-size:var(--text-xl);margin-bottom:var(--space-md)}h3{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}h4{font-size:var(--text-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}p{margin:0 0 var(--space-sm) 0;line-height:var(--line-height-relaxed)}p:last-child{margin-bottom:0}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-normal)}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}em,i{font-family:var(--font-serif);font-style:italic}strong,b{font-weight:var(--font-weight-semibold)}code,pre{font-family:var(--font-mono);font-size:.9em}code{background-color:var(--color-card-bg);padding:.2em .4em;border-radius:var(--radius-sm);color:var(--color-text-primary)}pre{background-color:var(--color-card-bg);padding:var(--space-sm);border-radius:var(--radius-md);overflow-x:auto;line-height:var(--line-height-normal)}pre code{background-color:transparent;padding:0}ul,ol{margin:0 0 var(--space-sm) 0;padding-left:var(--space-md)}li{margin-bottom:var(--space-xs);line-height:var(--line-height-relaxed)}small{font-size:var(--text-xs);color:var(--color-text-secondary)}blockquote{margin:var(--space-md) 0;padding-left:var(--space-md);border-left:3px solid var(--color-accent);color:var(--color-text-secondary);font-style:italic}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-accent{color:var(--color-accent)}.text-center{text-align:center}.text-serif{font-family:var(--font-serif)}.text-mono{font-family:var(--font-mono)}@media(max-width:768px){:root{--text-2xl: 2rem;--text-xl: 1.5rem;--text-lg: 1.25rem}body{font-size:var(--text-sm)}}.page{min-height:calc(100vh - 200px);padding:var(--space-xl) 0}@media(max-width:768px){.page{padding:var(--space-lg) 0}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{margin:0;padding:0;background-color:var(--color-background);color:var(--color-text-primary);overflow-x:hidden}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)}section{padding:var(--space-xl) 0}@media(max-width:768px){section{padding:var(--space-lg) 0}}.skip-to-content{position:absolute;top:-40px;left:0;background:var(--color-accent);color:#fff;padding:var(--space-xs) var(--space-sm);text-decoration:none;z-index:100}.skip-to-content:focus{top:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background-color:var(--color-accent);color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}img{max-width:100%;height:auto;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.pt-sm{padding-top:var(--space-sm)}.pt-md{padding-top:var(--space-md)}.pt-lg{padding-top:var(--space-lg)}.pt-xl{padding-top:var(--space-xl)}.pb-sm{padding-bottom:var(--space-sm)}.pb-md{padding-bottom:var(--space-md)}.pb-lg{padding-bottom:var(--space-lg)}.pb-xl{padding-bottom:var(--space-xl)}.header{position:sticky;top:0;z-index:100;background-color:var(--color-background);transition:box-shadow var(--transition-normal)}.header--scrolled{box-shadow:var(--shadow-sm)}.header__content{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) 0}.header__logo{text-decoration:none;color:var(--color-text-primary);font-weight:var(--font-weight-bold);font-size:var(--text-lg);transition:color var(--transition-normal)}.header__logo:hover{color:var(--color-accent);text-decoration:none}.header__name{letter-spacing:-.01em}.header__nav-list{display:flex;gap:var(--space-md);list-style:none;margin:0;padding:0}.header__nav-item{margin:0}.header-nav-link{color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);padding:var(--space-xs) 0;position:relative;transition:color var(--transition-normal)}.header-nav-link:hover{color:var(--color-text-primary);text-decoration:none}.header__nav-link--active{color:var(--color-accent)}.header__nav-link--active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:var(--color-accent)}.header__mobile-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--space-xs);position:relative;width:30px;height:24px}.header__mobile-toggle-icon,.header__mobile-toggle-icon:before,.header__mobile-toggle-icon:after{position:absolute;width:100%;height:2px;background-color:var(--color-text-primary);transition:all var(--transition-normal)}.header__mobile-toggle-icon{top:50%;transform:translateY(-50%)}.header__mobile-toggle-icon:before,.header__mobile-toggle-icon:after{content:"";left:0}.header__mobile-toggle-icon:before{top:-8px}.header__mobile-toggle-icon:after{top:8px}@media(max-width:768px){.header__mobile-toggle{display:block}.header__nav{position:fixed;top:73px;left:0;right:0;background-color:var(--color-background);box-shadow:var(--shadow-md);max-height:0;overflow:hidden;transition:max-height var(--transition-normal)}.header__nav--open{max-height:400px}.header__nav-list{flex-direction:column;gap:0;padding:var(--space-sm) var(--container-padding)}.header-nav-link{display:block;padding:var(--space-sm) 0;font-size:var(--text-md)}.header__nav-link--active:after{display:none}.header__nav--open+.header__mobile-toggle .header__mobile-toggle-icon{background-color:transparent}.header__nav--open+.header__mobile-toggle .header__mobile-toggle-icon:before{top:0;transform:rotate(45deg)}.header__nav--open+.header__mobile-toggle .header__mobile-toggle-icon:after{top:0;transform:rotate(-45deg)}}.footer{background-color:var(--color-card-bg);border-top:1px solid var(--color-border);padding:var(--space-xl) 0 var(--space-md);margin-top:var(--space-2xl)}.footer__content{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center}.footer__social{display:flex;gap:var(--space-md);flex-wrap:wrap;justify-content:center}.footer__social-link{color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:color var(--transition-normal)}.footer__social-link:hover{color:var(--color-accent);text-decoration:none}.footer__info{display:flex;flex-direction:column;gap:var(--space-xs)}.footer__copyright,.footer__built{margin:0;font-size:var(--text-xs);color:var(--color-text-secondary)}.footer__built{font-family:var(--font-mono)}@media(max-width:768px){.footer{padding:var(--space-lg) 0 var(--space-md)}.footer__social{gap:var(--space-sm)}}.hero{padding:var(--space-2xl) 0 var(--space-xl);min-height:80vh;display:flex;align-items:center}.hero__content{display:grid;grid-template-columns:1fr auto;gap:var(--space-xl);align-items:center}.hero__text{max-width:700px}.hero__name{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;margin-bottom:var(--space-sm);color:var(--color-text-primary)}.hero__tagline{font-family:var(--font-serif);font-style:italic;font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.hero__bio{margin-bottom:var(--space-lg)}.hero__bio p{font-size:var(--text-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);margin-bottom:var(--space-md)}.hero__bio p:last-child{margin-bottom:0}.hero__social{display:flex;gap:var(--space-md);flex-wrap:wrap}.hero__social-link{color:var(--color-accent);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:opacity var(--transition-normal)}.hero__social-link:hover{opacity:.8;text-decoration:underline}.hero__image{width:200px;height:200px;flex-shrink:0}.hero__profile-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-full);box-shadow:var(--shadow-md)}@media(max-width:768px){.hero{padding:var(--space-xl) 0 var(--space-lg);min-height:auto}.hero__content{grid-template-columns:1fr;gap:var(--space-lg)}.hero__image{width:150px;height:150px;margin:0 auto;order:-1}.hero__name{font-size:var(--text-xl)}.hero__tagline{font-size:var(--text-md)}.hero__bio p{font-size:var(--text-sm)}}.home-page{min-height:100vh}.home-content{padding:var(--space-xl) 0}.home-content__section{margin-bottom:var(--space-xl);max-width:800px}.home-content__section:last-child{margin-bottom:0}.home-content__section h2{font-size:var(--text-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-md);color:var(--color-text-primary)}.home-content__section p{font-size:var(--text-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);margin-bottom:var(--space-md)}.home-content__section p:last-child{margin-bottom:0}@media(max-width:768px){.home-content{padding:var(--space-lg) 0}.home-content__section{margin-bottom:var(--space-lg)}.home-content__section h2{font-size:var(--text-lg)}.home-content__section p{font-size:var(--text-sm)}}.experience{background-color:var(--color-background)}.experience__title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xl);color:var(--color-text-primary)}.timeline{position:relative}.timeline__item{display:grid;grid-template-columns:120px 1fr;gap:var(--space-lg);margin-bottom:var(--space-xl)}.timeline__item:last-child{margin-bottom:0}.timeline__marker{position:relative;display:flex;flex-direction:column;align-items:flex-end;padding-top:4px}.timeline__year{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-xs);white-space:nowrap}.timeline__dot{width:12px;height:12px;background-color:var(--color-accent);border-radius:var(--radius-full);border:3px solid var(--color-background);box-shadow:0 0 0 2px var(--color-accent);flex-shrink:0;margin-right:-6px}.timeline__line{width:2px;flex:1;background-color:var(--color-border);margin:var(--space-xs) 5px 0}.timeline__content{padding-bottom:var(--space-md)}.timeline__header{display:flex;gap:var(--space-md);margin-bottom:var(--space-md)}.timeline__logo{width:80px;height:80px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;background-color:transparent;border:1px solid var(--color-border)}.timeline__logo img{width:100%;height:100%;object-fit:contain;padding:var(--space-xs)}.timeline__logo-text{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:#fff}.timeline__info{flex:1}.timeline__role{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.timeline__company{font-size:var(--text-md);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.timeline__period{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.timeline__description{margin-bottom:var(--space-md)}.timeline__description p{font-size:var(--text-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.timeline__description p:last-child{margin-bottom:0}.timeline__highlights{list-style:none;padding:0;margin:0 0 var(--space-md) 0}.timeline__highlights li{font-size:var(--text-sm);color:var(--color-text-secondary);padding-left:var(--space-md);position:relative;margin-bottom:var(--space-xs)}.timeline__highlights li:before{content:"▸";position:absolute;left:0;color:var(--color-accent)}.timeline__links{display:flex;gap:var(--space-md);flex-wrap:wrap}.timeline__link{color:var(--color-accent);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:opacity var(--transition-normal)}.timeline__link:hover{opacity:.8;text-decoration:underline}@media(max-width:768px){.timeline__item{grid-template-columns:80px 1fr;gap:var(--space-md)}.timeline__marker{align-items:center}.timeline__year{font-size:var(--text-xs);text-align:center}.timeline__logo{width:60px;height:60px}.timeline__role{font-size:var(--text-md)}.timeline__company,.timeline__description p{font-size:var(--text-sm)}}.projects{background-color:var(--color-card-bg)}.projects__title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xl);color:var(--color-text-primary)}.projects__subtitle{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-md);color:var(--color-text-primary)}.projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.projects__grid--featured{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.projects__grid:last-child{margin-bottom:0}.project-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-normal);display:flex;flex-direction:column}.project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-card__image{width:100%;height:200px;overflow:hidden;background-color:var(--color-card-bg)}.project-card__image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.project-card:hover .project-card__image img{transform:scale(1.05)}.project-card__content{padding:var(--space-md);display:flex;flex-direction:column;flex:1}.project-card__title{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.project-card__description{font-size:var(--text-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-md);flex:1}.project-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md)}.project-card__tag{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-secondary);background-color:var(--color-card-bg);padding:.25rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.project-card__links{display:flex;gap:var(--space-md);flex-wrap:wrap}.project-card__link{color:var(--color-accent);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:opacity var(--transition-normal)}.project-card__link:hover{opacity:.8;text-decoration:underline}@media(max-width:768px){.projects__grid,.projects__grid--featured{grid-template-columns:1fr}.project-card__image{height:180px}}.blog{background-color:var(--color-background)}.blog__title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xl);color:var(--color-text-primary)}.blog__list{display:flex;flex-direction:column;gap:var(--space-xl)}.blog-post{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-lg)}.blog-post:last-child{border-bottom:none;padding-bottom:0}.blog-post__header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm)}.blog-post__date{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.blog-post__read-time{font-size:var(--text-xs);color:var(--color-text-secondary);padding:.25rem .5rem;background-color:var(--color-card-bg);border-radius:var(--radius-sm)}.blog-post__title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}.blog-post__link{color:var(--color-accent);text-decoration:none;transition:opacity var(--transition-normal)}.blog-post__link:hover{opacity:.8;text-decoration:underline}.blog-post__excerpt{font-size:var(--text-md);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.blog-post__tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.blog-post__tag{font-size:var(--text-xs);color:var(--color-text-secondary);background-color:var(--color-card-bg);padding:.25rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}@media(max-width:768px){.blog-post__header{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.blog-post__title{font-size:var(--text-md)}.blog-post__excerpt{font-size:var(--text-sm)}}.contact{background-color:var(--color-card-bg)}.contact__title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-lg);color:var(--color-text-primary);text-align:center}.contact__content{max-width:600px;margin:0 auto;text-align:center}.contact__description{font-size:var(--text-md);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.contact__methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-xl);margin-bottom:var(--space-xl)}.contact__method{text-align:center;display:flex;flex-direction:column;gap:var(--space-sm)}.contact__method-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm)}.contact__email{font-size:var(--text-md);color:var(--color-accent);text-decoration:none;font-weight:var(--font-weight-medium);transition:opacity var(--transition-normal);display:block;word-break:break-all}.contact__email:hover{opacity:.8;text-decoration:underline}.contact__location{font-size:var(--text-md);color:var(--color-text-primary);margin:0}.contact__social{padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.contact__social-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md)}.contact__social-links{display:flex;gap:var(--space-md);justify-content:center;flex-wrap:wrap}.contact__social-link{color:var(--color-accent);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:opacity var(--transition-normal)}.contact__social-link:hover{opacity:.8;text-decoration:underline}@media(max-width:768px){.contact__methods{grid-template-columns:1fr;gap:var(--space-lg)}.contact__email{font-size:var(--text-sm)}}.app{min-height:100vh;display:flex;flex-direction:column}
