@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}:root{--bg-primary: #ffffff;--bg-secondary: #f9f9f9;--bg-dark: #111111;--text-primary: #111111;--text-secondary: #555555;--text-muted: #888888;--text-light: #ffffff;--border-color: #e5e5e5;--border-light: #f0f0f0;--accent: #111111;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--container-width: 1200px;--container-narrow: 900px;--section-padding: 100px;--header-height: 72px;--sidebar-width: 280px;--transition: .3s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}.font-bold{font-weight:500}a:focus-visible,button:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}::selection{background:var(--text-primary);color:var(--text-light)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:300;line-height:1.2;color:var(--text-primary)}p{color:var(--text-secondary);line-height:1.6;font-size:1rem}.app-layout{min-height:100vh;display:flex;flex-direction:column}.site-main{flex:1;padding-top:var(--header-height)}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);z-index:1000}.header-container{max-width:var(--container-width);height:100%;margin:0 auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between}.site-logo{font-weight:300;font-size:.9375rem;letter-spacing:-.01em;transition:opacity var(--transition)}.site-logo:hover{opacity:.7}.site-nav{display:flex;align-items:center;gap:32px}.site-nav a{font-size:.875rem;font-weight:300;color:var(--text-primary);transition:color var(--transition);letter-spacing:0;position:relative}.site-nav a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--text-primary);transition:width var(--transition)}.site-nav a:hover:after,.site-nav a.active:after{width:100%}.site-nav a:hover{color:var(--text-primary)}.site-nav a.nav-contact{background:var(--bg-dark);color:var(--text-light);padding:10px 20px;border-radius:6px;font-weight:400;transition:background var(--transition),transform var(--transition)}.site-nav a.nav-contact:after{display:none}.site-nav a.nav-contact:hover{background:#333;color:var(--text-light);transform:translateY(-1px)}.site-nav a.nav-contact.active{background:var(--bg-dark)}.mobile-menu-toggle{display:none;background:none;border:none;padding:8px;cursor:pointer;color:var(--text-primary)}.mobile-menu{position:fixed;top:0;right:0;width:100%;max-width:320px;height:100vh;background:var(--bg-primary);z-index:2000;padding:24px;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column;box-shadow:-4px 0 20px #0000001a}.mobile-menu.open{transform:translate(0)}.mobile-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.mobile-menu-header h2{font-size:1rem;font-weight:400;margin:0}.mobile-menu-close{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-primary)}.mobile-menu nav{display:flex;flex-direction:column}.mobile-menu nav a{font-size:.9375rem;font-weight:400;padding:14px 0;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.mobile-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1999;opacity:0;visibility:hidden;transition:all .3s ease}.mobile-menu-overlay.open{opacity:1;visibility:visible}.site-footer{background:var(--bg-dark);padding:48px 0 32px}.footer-container{max-width:var(--container-width);margin:0 auto;padding:0 48px}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.footer-brand{display:flex;flex-direction:column;gap:6px}.footer-name{font-size:1.25rem;font-weight:300;color:var(--text-light);letter-spacing:-.01em}.footer-name strong{font-weight:500}.footer-title{font-size:.875rem;color:#ffffff80}.footer-social{display:flex;gap:16px}.footer-social a{display:flex;align-items:center;justify-content:center;color:#ffffff80;transition:all var(--transition)}.footer-social a:hover{color:var(--text-light)}.footer-divider{width:100%;height:1px;background:#ffffff1a;margin-bottom:24px}.footer-bottom{display:flex;justify-content:space-between;align-items:center}.footer-copyright{font-size:.8125rem;color:#ffffff80}#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:var(--header-height);padding-bottom:60px;position:relative;overflow:hidden}#hero:before{content:"";position:absolute;top:0;right:0;width:60%;height:100%;background-image:linear-gradient(135deg,transparent 48%,rgba(200,200,200,.1) 48%,rgba(200,200,200,.1) 52%,transparent 52%),linear-gradient(45deg,transparent 48%,rgba(200,200,200,.08) 48%,rgba(200,200,200,.08) 52%,transparent 52%);background-size:80px 80px;pointer-events:none;opacity:.5}.hero-content{width:100%;max-width:var(--container-width);margin:0 auto;padding:0 48px;position:relative;z-index:1}.hero-label{display:flex;align-items:center;gap:16px;font-size:.6875rem;font-weight:400;text-transform:uppercase;letter-spacing:.12em;color:var(--text-primary);margin-bottom:24px}.hero-label:before{content:"";width:40px;height:1px;background:var(--text-primary)}.hero-name{margin-bottom:48px}.hero-name .first{display:block;font-family:var(--font-sans);font-size:clamp(4.5rem,12vw,8rem);font-weight:200;letter-spacing:-.03em;line-height:1.1;color:var(--text-primary)}.hero-name .last{display:block;font-family:var(--font-sans);font-size:clamp(4.5rem,12vw,8rem);font-weight:500;letter-spacing:-.03em;line-height:1;color:var(--text-primary)}.hero-description{font-size:1.1875rem;line-height:1.65;color:var(--text-secondary);max-width:620px;margin-bottom:40px;font-weight:300}.hero-links{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px}.hero-link{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;font-size:.875rem;font-weight:400;border-radius:6px;transition:all var(--transition)}.hero-link.primary{background:var(--text-primary);color:var(--text-light)}.hero-link.primary:hover{background:#222;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.hero-link.secondary{background:transparent;border:1px solid #d0d0d0;color:var(--text-primary)}.hero-link.secondary:hover{border-color:var(--text-primary);background:var(--bg-secondary);transform:translateY(-2px)}.hero-social{display:flex;gap:24px}.hero-social a{display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--transition)}.hero-social a:hover{color:var(--text-primary);transform:translateY(-2px)}.scroll-indicator{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-muted);font-size:.6875rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase}.scroll-indicator:after{content:"";width:1px;height:40px;background:linear-gradient(to bottom,var(--text-muted),transparent)}section{padding:var(--section-padding) 0}.section-header{margin-bottom:60px}.section-label{display:flex;align-items:center;gap:12px;font-size:.6875rem;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:16px}.section-label:before{content:"";width:32px;height:1px;background:var(--text-muted)}.section-title{font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:300;letter-spacing:-.02em;line-height:1.15}.section-title em{font-family:var(--font-sans);font-style:normal;font-weight:400}#about{border-bottom:1px solid var(--border-color)}.about-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:80px;max-width:var(--container-width);margin:0 auto;padding:0 48px}.about-content p{font-size:1rem;line-height:1.7;margin-bottom:20px}.about-highlights{display:flex;flex-direction:column;gap:20px;margin-top:48px}.highlight-item{display:flex;gap:16px;padding:24px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-light)}.highlight-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-primary);border-radius:12px;border:1px solid var(--border-color)}.highlight-content h4{font-size:.9375rem;font-weight:400;margin-bottom:4px}.highlight-content p{font-size:.8125rem;color:var(--text-secondary);margin:0;line-height:1.5}#skills{border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.skills-container{max-width:var(--container-width);margin:0 auto;padding:0 48px}.skills-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:60px}.skill-badge{padding:10px 20px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:100px;font-family:var(--font-mono);font-size:.8125rem;font-weight:400;transition:all var(--transition);cursor:default}.skill-badge:hover{border-color:var(--text-primary);background:var(--text-primary);color:var(--text-light)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;padding-top:60px;border-top:1px solid var(--border-color)}.stat-item{text-align:center}.stat-number{font-family:var(--font-mono);font-size:clamp(2.5rem,5vw,3.5rem);font-weight:300;letter-spacing:-.02em;line-height:1;margin-bottom:8px}.stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}#expertise{border-bottom:1px solid var(--border-color)}.expertise-container{max-width:var(--container-width);margin:0 auto;padding:0 48px}.expertise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.expertise-item{display:flex;gap:20px;padding:32px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-light);transition:all var(--transition)}.expertise-item:hover{background:var(--bg-primary);border-color:var(--border-color);box-shadow:0 4px 20px #0000000f}.expertise-icon{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--text-primary);color:var(--text-light);border-radius:10px}.expertise-content h3{font-size:1rem;font-weight:400;margin-bottom:6px}.expertise-content p{font-size:.875rem;color:var(--text-secondary);margin:0;line-height:1.55}#work{border-bottom:1px solid var(--border-color)}.work-container{max-width:var(--container-width);margin:0 auto;padding:0 48px}.timeline-alt{position:relative;display:flex;flex-direction:column;gap:60px}.timeline-alt:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border-color);transform:translate(-50%)}.timeline-card{display:flex;align-items:flex-start;position:relative;width:100%}.timeline-card.left{justify-content:flex-start;padding-right:calc(50% + 40px)}.timeline-card.right{justify-content:flex-end;padding-left:calc(50% + 40px)}.timeline-dot{position:absolute;left:50%;top:40px;width:10px;height:10px;background:var(--text-primary);border-radius:50%;transform:translate(-50%);z-index:2}.card-content{background:var(--bg-secondary);padding:32px;border-radius:12px;border:1px solid var(--border-light);width:100%;max-width:480px}.timeline-card.left .card-content{margin-left:auto}.timeline-card.right .card-content{margin-right:auto}.card-meta{display:flex;align-items:center;gap:12px;margin-bottom:12px}.card-date{font-family:var(--font-mono);font-size:.8125rem;font-weight:400;color:var(--text-primary)}.card-location{font-size:.75rem;color:var(--text-muted)}.card-location:before{content:"·";margin-right:12px}.card-company{font-size:1.25rem;font-weight:400;margin:0 0 6px;letter-spacing:-.01em;color:var(--text-primary)}.card-role{font-size:.9375rem;color:var(--text-secondary);margin:0 0 20px}.card-details{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.card-details li{font-size:.875rem;color:var(--text-secondary);line-height:1.6;padding-left:18px;position:relative}.card-details li:before{content:"◆";position:absolute;left:0;top:0;font-size:.5rem;color:var(--text-muted)}#education{border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.education-container{max-width:var(--container-width);margin:0 auto;padding:0 48px}.education-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.education-card{padding:32px;background:var(--bg-primary);border-radius:12px;border:1px solid var(--border-color)}.education-card h3{font-size:1rem;font-weight:400;margin-bottom:10px;letter-spacing:-.01em}.education-card .school{font-size:.875rem;color:var(--text-secondary);margin-bottom:4px}.education-card .year{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);margin-bottom:14px}.education-card .honor{font-size:.8125rem;font-weight:400;color:var(--text-primary);padding:6px 14px;background:var(--bg-secondary);border-radius:100px;display:inline-block}#contact{background:var(--bg-primary);color:var(--text-primary);padding:100px 0;border-top:1px solid var(--border-color)}.contact-container{max-width:680px;margin:0 auto;padding:0 48px;text-align:center}.contact-header{margin-bottom:48px}.contact-label{display:inline-flex;align-items:center;gap:16px;font-size:.6875rem;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:24px}.contact-label .label-line{display:block;width:40px;height:1px;background:var(--border-color)}.contact-title{font-size:clamp(2rem,4vw,3rem);font-weight:300;letter-spacing:-.02em;margin-bottom:20px;color:var(--text-primary)}.contact-title em{font-family:var(--font-sans);font-style:normal;font-weight:600}.contact-description{font-size:1rem;color:var(--text-secondary);max-width:520px;margin:0 auto;line-height:1.7}.contact-form{text-align:left;margin-bottom:48px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.form-group{margin-bottom:20px}.form-row .form-group{margin-bottom:0}.form-group label{display:block;font-size:.875rem;font-weight:400;color:var(--text-primary);margin-bottom:8px}.form-group input,.form-group textarea{width:100%;padding:14px 16px;font-family:var(--font-sans);font-size:.9375rem;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;transition:all var(--transition)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--text-primary);box-shadow:0 0 0 3px #1111110d}.form-group textarea{resize:vertical;min-height:140px}.submit-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 32px;font-family:var(--font-sans);font-size:.9375rem;font-weight:400;color:var(--text-light);background:var(--text-primary);border:none;border-radius:8px;cursor:pointer;transition:all var(--transition)}.submit-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.form-success{color:#059669;margin-top:16px}.form-error{color:#dc2626;margin-top:16px}.contact-divider{width:100%;height:1px;background:var(--border-color);margin:48px 0}.contact-direct{text-align:center}.contact-direct p{font-size:.875rem;color:var(--text-muted);margin-bottom:12px}.contact-email{display:inline-block;font-size:1.125rem;font-weight:400;color:var(--text-primary);transition:all var(--transition)}.contact-email:hover{color:var(--text-secondary)}.posts-list-container{max-width:720px;margin:0 auto;padding:80px 24px}.posts-title{font-size:2.5rem;font-weight:300;margin-bottom:32px;letter-spacing:-.02em}.posts-filter-section{margin-bottom:48px}.posts-search-wrapper{position:relative;margin-bottom:16px}.posts-search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.posts-search-input{width:100%;padding:14px 44px;font-family:var(--font-sans);font-size:.9375rem;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;outline:none;transition:all var(--transition)}.posts-search-input::placeholder{color:var(--text-muted)}.posts-search-input:focus{border-color:var(--text-muted);box-shadow:0 0 0 3px #0000000d}.posts-search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;padding:4px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:color var(--transition)}.posts-search-clear:hover{color:var(--text-primary)}.posts-tags-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.posts-tag-btn{padding:6px 14px;font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary);background:transparent;border:1px solid var(--border-color);border-radius:100px;cursor:pointer;transition:all var(--transition)}.posts-tag-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.posts-tag-btn.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--text-light)}.posts-tags-more{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);padding:6px 0}.posts-filter-status{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:16px;border-top:1px dashed var(--border-light)}.posts-filter-count{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted)}.posts-clear-filters{font-family:var(--font-sans);font-size:.8125rem;color:var(--text-muted);background:transparent;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color var(--transition)}.posts-clear-filters:hover{color:var(--text-primary)}.posts-no-results{text-align:center;padding:48px 24px;color:var(--text-muted)}.posts-no-results p{margin-bottom:16px}.posts-year-group{margin-bottom:48px}.posts-year{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px;padding-bottom:8px}.posts-list{list-style:none}.posts-item{border-bottom:1px solid var(--border-light)}.posts-item:last-child{border-bottom:none}.posts-link{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:16px 0;text-decoration:none;transition:all .2s ease}.posts-link:hover{padding-left:8px}.posts-link:hover .posts-item-title{color:var(--text-secondary)}.posts-item-content{flex:1;min-width:0}.posts-item-title{font-size:1rem;font-weight:400;color:var(--text-primary);transition:color var(--transition);display:block}.posts-item-description{font-size:.875rem;color:var(--text-muted);line-height:1.5;margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.posts-item-date{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.post-view{display:grid;grid-template-columns:var(--sidebar-width) 1fr;max-width:var(--container-width);margin:0 auto;min-height:calc(100vh - var(--header-height))}.post-sidebar{position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));padding:48px 24px;border-right:1px solid var(--border-color);overflow-y:auto}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;color:var(--text-secondary);text-decoration:none;margin-bottom:32px;transition:color .2s ease}.back-link:hover{color:var(--text-primary)}.toc{margin-top:24px}.toc-list{list-style:none}.toc-item{margin-bottom:8px}.toc-item a{font-size:.8125rem;color:var(--text-muted);text-decoration:none;transition:color .2s ease;display:block;padding:4px 0;line-height:1.4}.toc-item a:hover,.toc-item.active a{color:var(--text-primary)}.toc-level-3{padding-left:16px}.toc-level-3 a{font-size:.75rem}.post-content{padding:48px;max-width:720px;min-width:0}.post-view-clean{display:block;max-width:800px;margin:0 auto;padding:48px 24px}.post-view-clean .post-content{padding:0;max-width:100%}.post-view-clean .back-link{margin-bottom:32px}.post-prerequisites{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:20px 24px;margin-bottom:32px}.prerequisites-header{display:flex;align-items:center;gap:10px;font-size:.875rem;color:var(--text-secondary);margin-bottom:12px}.prerequisites-header svg{color:var(--text-muted);flex-shrink:0}.prerequisites-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.prerequisites-list li{padding-left:26px;position:relative}.prerequisites-list li:before{content:"→";position:absolute;left:0;color:var(--text-muted)}.prerequisites-list a{font-size:.9375rem;color:var(--text-primary);text-decoration:none;transition:color var(--transition)}.prerequisites-list a:hover{color:var(--text-secondary);text-decoration:underline}.post-header{margin-bottom:48px}.post-date{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);display:block;margin-bottom:24px}.post-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;letter-spacing:-.02em;line-height:1.2;margin-bottom:24px;color:var(--text-primary)}.post-tags{display:flex;gap:8px;flex-wrap:wrap}.post-tag{font-family:var(--font-mono);font-size:.75rem;padding:6px 14px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary)}.post-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-top:16px}.post-meta-left{display:flex;align-items:center;gap:8px}.post-meta .post-date{display:inline-flex;align-items:center;gap:6px;margin-bottom:0}.post-meta-separator{color:var(--text-muted)}.post-reading-time{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted)}.post-edit-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);text-decoration:none;transition:color var(--transition)}.post-edit-link:hover{color:var(--text-primary)}.post-footer{margin-top:64px;padding-top:32px;border-top:1px solid var(--border-color)}.post-footer-tags{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:32px}.post-footer-tag{font-family:var(--font-mono);font-size:.875rem;color:var(--text-muted);text-decoration:underline;text-underline-offset:4px;text-decoration-style:dashed}.post-share{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:32px}.post-share-label{font-family:var(--font-mono);font-size:.875rem;font-style:italic;color:var(--text-muted)}.post-share-icons{display:flex;gap:16px}.post-share-icons a{display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:color var(--transition)}.post-share-icons a:hover{color:var(--text-primary)}.source-repo-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);text-decoration:none;transition:color var(--transition);margin-bottom:20px}.source-repo-link:hover{color:var(--text-primary)}.back-to-top{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:var(--text-muted);text-decoration:none;transition:color var(--transition)}.back-to-top:hover{color:var(--text-primary)}.post-footer-divider{border:none;border-top:1px dashed var(--border-color);margin:32px 0}.post-nav{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.post-nav-prev,.post-nav-next{display:flex;flex-direction:column;gap:4px;text-decoration:none;max-width:45%}.post-nav-next{text-align:right;margin-left:auto}.post-nav-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.post-nav-title{font-size:1rem;color:var(--text-primary);font-weight:400;transition:color var(--transition)}.post-nav-prev:hover .post-nav-title,.post-nav-next:hover .post-nav-title{color:var(--text-secondary);text-decoration:underline}.prose{line-height:1.75;color:var(--text-secondary)}.prose>*:first-child{margin-top:0}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-weight:500;letter-spacing:-.02em;margin-top:2em;margin-bottom:.75em;color:var(--text-primary);scroll-margin-top:calc(var(--header-height) + 24px)}.prose h1{font-size:2rem;font-weight:400}.prose h2{font-size:1.5rem;font-weight:400}.prose h3{font-size:1.25rem}.prose h4{font-size:1rem}.prose p{margin-bottom:1.25em}.prose a{color:var(--text-primary);text-decoration:underline;text-underline-offset:2px;transition:color var(--transition)}.prose a:hover{color:var(--text-secondary)}.prose strong{font-weight:500;color:var(--text-primary)}.prose em{font-style:italic}.prose ul,.prose ol{margin-bottom:1.25em;padding-left:1.5em}.prose li{margin-bottom:.5em}.prose li>ul,.prose li>ol{margin-top:.5em;margin-bottom:0}.prose blockquote{border-left:3px solid var(--border-color);padding-left:1em;margin:1.5em 0;color:var(--text-muted);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--bg-secondary);padding:.2em .4em;border-radius:4px}.prose pre{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1em;margin:1.5em 0;overflow-x:auto}.prose pre code{background:none;padding:0;font-size:.875rem;line-height:1.6}.prose img{max-width:100%;height:auto;border-radius:8px;margin:1.5em 0}.prose hr{border:none;border-top:1px solid var(--border-color);margin:2em 0}.prose table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.9375rem}.prose th,.prose td{border:1px solid var(--border-color);padding:.75em 1em;text-align:left}.prose th{background:var(--bg-secondary);font-weight:500;color:var(--text-primary)}.projects-list-container{max-width:720px;margin:0 auto;padding:80px 24px}.projects-title{font-size:2.5rem;font-weight:300;margin-bottom:60px;letter-spacing:-.02em}.projects-list{list-style:none}.projects-item{padding:24px 0;border-bottom:1px solid var(--border-light)}.projects-item:first-child{padding-top:0}.projects-item:last-child{border-bottom:none}.projects-item-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;flex-wrap:wrap}a.projects-item-title{font-size:1.125rem;font-weight:400;color:var(--text-primary);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:color var(--transition)}a.projects-item-title:hover{color:var(--text-secondary)}span.projects-item-title{font-size:1.125rem;font-weight:400;color:var(--text-primary)}.projects-item-tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-family:var(--font-mono);font-size:.6875rem;font-weight:400;padding:4px 10px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:100px;color:var(--text-muted)}.projects-item-description{font-size:.9375rem;color:var(--text-secondary);line-height:1.6;margin:0}.loading,.error,.no-posts{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height) - 200px);font-size:1rem;color:var(--text-muted)}.error{color:#dc2626}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUpSubtle{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.home-page section{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.home-page section.revealed{opacity:1;transform:translateY(0)}.home-page #hero{opacity:1;transform:translateY(0)}#hero .hero-label{animation:fadeUpSubtle .6s cubic-bezier(.16,1,.3,1) .1s both}#hero .hero-name{animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .2s both}#hero .hero-description{animation:fadeUpSubtle .7s cubic-bezier(.16,1,.3,1) .4s both}#hero .hero-links{animation:fadeUpSubtle .6s cubic-bezier(.16,1,.3,1) .5s both}#hero .hero-social{animation:fadeIn .6s cubic-bezier(.16,1,.3,1) .6s both}#hero .scroll-indicator{animation:fadeIn .6s cubic-bezier(.16,1,.3,1) .8s both}.projects-page,.contact-page,.posts-page,.post-view-page{animation:fadeUp .6s cubic-bezier(.16,1,.3,1) forwards}.posts-page .posts-title{animation:fadeUpSubtle .5s cubic-bezier(.16,1,.3,1) .1s both}.posts-page .posts-year-group{animation:fadeUpSubtle .5s cubic-bezier(.16,1,.3,1) .2s both}.projects-page .projects-title{animation:fadeUpSubtle .5s cubic-bezier(.16,1,.3,1) .1s both}.projects-page .projects-item{animation:fadeUpSubtle .5s cubic-bezier(.16,1,.3,1) both}.projects-page .projects-item:nth-child(1){animation-delay:.15s}.projects-page .projects-item:nth-child(2){animation-delay:.2s}.projects-page .projects-item:nth-child(3){animation-delay:.25s}.projects-page .projects-item:nth-child(4){animation-delay:.3s}.projects-page .projects-item:nth-child(5){animation-delay:.35s}.projects-page .projects-item:nth-child(6){animation-delay:.4s}.post-view-page .post-sidebar{animation:fadeIn .5s cubic-bezier(.16,1,.3,1) .1s both}.post-view-page .post-content{animation:fadeUp .6s cubic-bezier(.16,1,.3,1) .15s both}.contact-page .contact-header{animation:fadeUpSubtle .5s cubic-bezier(.16,1,.3,1) .1s both}.contact-page .contact-form{animation:fadeUpSubtle .5s cubic-bezier(.16,1,.3,1) .2s both}.contact-page .contact-direct{animation:fadeIn .5s cubic-bezier(.16,1,.3,1) .3s both}.home-page section.revealed .section-header{animation:fadeUpSubtle .6s cubic-bezier(.16,1,.3,1) both}.home-page section.revealed .about-content,.home-page section.revealed .skills-grid,.home-page section.revealed .stats-grid,.home-page section.revealed .expertise-grid,.home-page section.revealed .timeline-alt,.home-page section.revealed .education-grid,.home-page section.revealed .contact-form{animation:fadeUpSubtle .6s cubic-bezier(.16,1,.3,1) .15s both}@media(max-width:1024px){:root{--section-padding: 80px}.header-container,.hero-content,.about-grid,.skills-container,.expertise-container,.work-container,.education-container,.contact-container,.footer-container{padding-left:24px;padding-right:24px}.about-grid{grid-template-columns:1fr;gap:40px}.stats-grid{grid-template-columns:repeat(2,1fr)}.expertise-grid,.education-grid{grid-template-columns:1fr}}@media(max-width:900px){.post-view{grid-template-columns:1fr}.post-sidebar{position:relative;top:0;height:auto;border-right:none;border-bottom:1px solid var(--border-color);padding:24px;display:flex;align-items:center;gap:24px}.back-link{margin-bottom:0}.toc{display:none}.post-content{padding:24px}.post-meta{flex-direction:column;align-items:flex-start;gap:12px}.post-share{flex-direction:column;align-items:flex-start}.back-to-top{margin-left:0;margin-top:16px}.post-nav{flex-direction:column;gap:24px}.post-nav-prev,.post-nav-next{max-width:100%}.post-nav-next{text-align:left;margin-left:0}.timeline-alt:before{left:20px}.timeline-card.left,.timeline-card.right{padding-left:60px;padding-right:0;justify-content:flex-start}.timeline-dot{left:20px}.timeline-card.left .card-content,.timeline-card.right .card-content{margin-left:0;margin-right:0;max-width:100%}}@media(max-width:768px){:root{--section-padding: 60px;--header-height: 64px}.site-nav{display:none}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center}.hero-name .first,.hero-name .last{font-size:clamp(3rem,15vw,5rem)}.hero-description{font-size:1rem}.hero-links{flex-direction:column}.hero-link{width:100%;justify-content:center}.scroll-indicator{display:none}.stats-grid{grid-template-columns:repeat(2,1fr);gap:24px}.stat-number{font-size:2rem}.footer-top{flex-direction:column;align-items:center;text-align:center;gap:24px}.footer-bottom{flex-direction:column;gap:16px;text-align:center}.form-row{grid-template-columns:1fr}}@media(max-width:600px){.posts-list-container,.projects-list-container{padding:48px 16px}.posts-title,.projects-title{font-size:2rem;margin-bottom:40px}.posts-link{flex-direction:column;gap:4px;align-items:flex-start}.posts-item-date{font-size:.75rem}.post-title{font-size:1.75rem}.projects-item-header{flex-direction:column;align-items:flex-start;gap:8px}}@media(max-width:480px){.hero-name .first,.hero-name .last{font-size:3rem}.expertise-item{flex-direction:column;text-align:center}.expertise-icon{margin:0 auto}.site-nav a{font-size:.75rem}}@media print{.site-header,.site-footer,.mobile-menu,.mobile-menu-overlay,.scroll-indicator{display:none!important}section{opacity:1;transform:none;page-break-inside:avoid}}
