:root{--bg: #f5f4f0;--bg-secondary: #eeecea;--surface: #ffffff;--surface-hover: #f0eeea;--border: #e0ddd8;--border-strong: #c8c4bc;--text: #1a1917;--text-muted: #6b6760;--text-subtle: #9c9890;--accent: #e8a020;--accent-hover: #d4901a;--accent-2: #7c6af5;--accent-2-hover: #6b59e0;--code-bg: #1e1e2e;--dot-color: rgba(26, 20, 10, .13);--shadow: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 16px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.04);--radius: 8px;--radius-lg: 14px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}[data-theme=dark]{--bg: #0f0f0e;--bg-secondary: #161614;--surface: #1c1c1a;--surface-hover: #242422;--border: #2a2a27;--border-strong: #3a3a36;--text: #f0ede8;--text-muted: #8a8780;--text-subtle: #5a5750;--accent: #f0a830;--accent-hover: #e09820;--accent-2: #9080ff;--accent-2-hover: #7c6af5;--dot-color: rgba(255, 245, 220, .1);--shadow: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.35), 0 2px 4px rgba(0,0,0,.25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:17px;background:var(--bg);color:var(--text);scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{min-height:100vh;background:var(--bg);color:var(--text);transition:background .2s ease,color .2s ease;position:relative}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(circle,var(--dot-color) 1.5px,transparent 1.5px);background-size:28px 28px;pointer-events:none;z-index:0}body>*{position:relative;z-index:1}.js-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity .5s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.22,1,.36,1)}.js-ready .reveal.visible{opacity:1;transform:translateY(0)}.js-ready .reveal-delay-1{transition-delay:.08s}.js-ready .reveal-delay-2{transition-delay:.16s}.js-ready .reveal-delay-3{transition-delay:.24s}.js-ready .reveal-delay-4{transition-delay:.32s}@keyframes vtEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes vtExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}::view-transition-old(root){animation:vtExit .18s ease forwards}::view-transition-new(root){animation:vtEnter .38s cubic-bezier(.22,1,.36,1) forwards}::view-transition-old(nav),::view-transition-new(nav){animation:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;letter-spacing:-.02em;color:var(--text)}h1{font-size:clamp(2.2rem,5vw,3.75rem)}h2{font-size:clamp(1.6rem,3.5vw,2.5rem)}h3{font-size:clamp(1.15rem,2.5vw,1.6rem)}p{font-size:clamp(.975rem,1.5vw,1.05rem);line-height:1.75;color:var(--text-muted)}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-hover)}code{font-family:var(--font-mono);font-size:.875em;background:var(--surface);border:1px solid var(--border);padding:.15em .4em;border-radius:4px;color:var(--accent-2)}pre{background:var(--code-bg)!important;border-radius:var(--radius);padding:1.25rem;overflow-x:auto;border:1px solid var(--border)}pre code{background:none;border:none;padding:0;color:inherit;font-size:.875rem}img{max-width:100%;height:auto}.container{max-width:1100px;margin:0 auto;padding:0 1.25rem}.container-narrow{max-width:720px;margin:0 auto;padding:0 1.25rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.25rem;border-radius:999px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .18s;border:none;text-decoration:none;white-space:nowrap}.btn-primary{background:var(--accent);color:#1a1917}.btn-primary:hover{background:var(--accent-hover);color:#1a1917;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface);color:var(--text)}.tag{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:500;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);transition:all .15s}.tag:hover{border-color:var(--accent);color:var(--accent);background:var(--surface-hover)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;transition:border-color .2s,box-shadow .2s,transform .2s;box-shadow:var(--shadow)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.geo-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}.geo-line{height:1px;background:linear-gradient(90deg,var(--accent),transparent);margin:2rem 0}.section-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:1rem}.section-label:before{content:"";width:20px;height:1px;background:var(--accent)}.prose{max-width:68ch;color:var(--text-muted);line-height:1.8}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--text);margin-top:2rem;margin-bottom:.75rem}.prose p{margin-bottom:1.25rem}.prose ul,.prose ol{padding-left:1.5rem;margin-bottom:1.25rem}.prose li{margin-bottom:.4rem}.prose blockquote{border-left:3px solid var(--accent);padding-left:1rem;margin:1.5rem 0;color:var(--text-subtle);font-style:italic}.prose a{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}.prose hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.prose img{border-radius:var(--radius);border:1px solid var(--border)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-muted{color:var(--text-muted)}.text-subtle{color:var(--text-subtle)}.text-accent{color:var(--accent)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.page-main{padding:7rem 0 4rem}.page-header{margin-bottom:3rem}.page-header h1{margin-bottom:.75rem}.page-desc{font-size:1.05rem;color:var(--text-muted);line-height:1.7;max-width:560px}.section{padding:5rem 0}.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2.5rem;gap:1rem;flex-wrap:wrap}.section-header h2{margin:0}.section-sub{font-size:1rem;color:var(--text-muted);line-height:1.7;margin:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.project-card{display:flex;flex-direction:column;gap:.75rem}.project-card.featured{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.project-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.project-badges{display:flex;gap:.4rem;align-items:center}.project-badge,.badge-category{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);padding:.2rem .6rem;border-radius:999px}.badge-featured{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent-2) 25%,transparent);padding:.2rem .6rem;border-radius:999px}.project-right{display:flex;align-items:center;gap:.5rem}.project-year{font-size:.75rem;color:var(--text-subtle);font-family:var(--font-mono)}.project-status{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.15rem .5rem;border-radius:999px;border:1px solid}.project-status.active{color:#22c55e;background:color-mix(in srgb,#22c55e 10%,transparent);border-color:color-mix(in srgb,#22c55e 30%,transparent)}.project-status.research{color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 10%,transparent);border-color:color-mix(in srgb,var(--accent-2) 30%,transparent)}.project-card h2,.project-card h3{font-size:1.05rem}.project-card p{font-size:.9rem;flex:1}.project-tech{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto}.project-link{font-size:.85rem;color:var(--accent-2);font-weight:500;margin-top:.25rem;text-decoration:none;transition:color .15s}.hire-link{font-size:.8rem;color:var(--accent-2);font-weight:500;margin-top:.25rem;text-decoration:none;transition:color .15s}.hire-link:hover{color:var(--accent-2-hover)}.blog-list{display:flex;flex-direction:column}.blog-item{display:block;padding:1.5rem 0;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;transition:all .15s}.blog-item:first-child{border-top:1px solid var(--border)}.blog-item:hover h3{color:var(--accent)}.blog-item-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.blog-item-meta time{font-size:.8rem;color:var(--text-subtle);font-family:var(--font-mono)}.blog-item h3{font-size:1.1rem;margin-bottom:.4rem;transition:color .15s}.blog-item p{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.read-more{font-size:.8rem;color:var(--accent-2);font-weight:500}.hero-stats{display:flex;gap:2.5rem;flex-wrap:wrap;padding-top:2rem;border-top:1px solid var(--border)}.stat-item{display:flex;flex-direction:column;gap:.2rem}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text);letter-spacing:-.03em;font-family:var(--font-mono)}.stat-label{font-size:.78rem;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.06em}.availability-note{display:flex;align-items:center;gap:.85rem;padding:.9rem 1.25rem;background:color-mix(in srgb,#22c55e 5%,var(--surface));border-color:color-mix(in srgb,#22c55e 20%,var(--border))}.avail-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0;animation:availPulse 2s infinite;box-shadow:0 0 color-mix(in srgb,#22c55e 40%,transparent)}@keyframes availPulse{0%{box-shadow:0 0 color-mix(in srgb,#22c55e 40%,transparent)}70%{box-shadow:0 0 0 6px color-mix(in srgb,#22c55e 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,#22c55e 0%,transparent)}}.availability-note p{font-size:.875rem;color:var(--text-muted);margin:0}.cta-card{position:relative;overflow:hidden;padding:3rem;background:var(--bg-secondary)}.cta-card h2{margin-bottom:.75rem}.cta-card>p{max-width:480px;margin-bottom:1.75rem}.cta-actions{display:flex;flex-wrap:wrap;gap:.75rem}.cta-geo{position:absolute;top:0;right:0;width:200px;height:200px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent) 8%,transparent),transparent 70%);pointer-events:none}@media(max-width:640px){.page-main{padding:5.5rem 0 3rem}.section{padding:3.5rem 0}.projects-grid{grid-template-columns:1fr}.hero-stats{gap:1.25rem}.stat-value{font-size:1.4rem}.cta-card{padding:1.75rem 1.25rem}}.icon-sun{display:none!important}.icon-moon,[data-theme=dark] .icon-sun{display:block!important}[data-theme=dark] .icon-moon{display:none!important}#nav-progress{position:fixed;top:0;left:0;height:2px;width:0%;z-index:9999;background:linear-gradient(90deg,var(--accent),var(--accent-2));opacity:0;pointer-events:none;border-radius:0 2px 2px 0}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.nav-header[data-astro-cid-dmqpwcec]{position:fixed;top:0;left:0;right:0;z-index:200;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.nav-inner[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;height:60px;gap:2rem}.nav-logo[data-astro-cid-dmqpwcec]{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--text);text-decoration:none;letter-spacing:.05em;flex-shrink:0;position:relative;z-index:201}.logo-bracket[data-astro-cid-dmqpwcec]{color:var(--accent)}.nav-links[data-astro-cid-dmqpwcec]{display:flex;list-style:none;gap:.25rem;margin:0;padding:0}.nav-link[data-astro-cid-dmqpwcec]{padding:.4rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:all .15s}.nav-link[data-astro-cid-dmqpwcec]:hover{color:var(--text);background:var(--surface)}.nav-link[data-astro-cid-dmqpwcec].active{color:var(--accent);background:var(--surface)}.nav-actions[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:.5rem;flex-shrink:0;position:relative;z-index:201}.theme-btn[data-astro-cid-dmqpwcec]{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;color:var(--text-muted)}.theme-btn[data-astro-cid-dmqpwcec]:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text)}.mobile-menu-btn[data-astro-cid-dmqpwcec]{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;padding:0;transition:border-color .15s,background .15s}.mobile-menu-btn[data-astro-cid-dmqpwcec]:hover{background:var(--surface-hover);border-color:var(--border-strong)}.bar[data-astro-cid-dmqpwcec]{display:block;width:16px;height:1.5px;background:var(--text-muted);border-radius:2px;transform-origin:center;transition:transform .25s cubic-bezier(.22,1,.36,1),opacity .2s ease,width .2s ease}.mobile-menu-btn[data-astro-cid-dmqpwcec].open .bar-1[data-astro-cid-dmqpwcec]{transform:translateY(6.5px) rotate(45deg)}.mobile-menu-btn[data-astro-cid-dmqpwcec].open .bar-2[data-astro-cid-dmqpwcec]{opacity:0;width:0}.mobile-menu-btn[data-astro-cid-dmqpwcec].open .bar-3[data-astro-cid-dmqpwcec]{transform:translateY(-6.5px) rotate(-45deg)}.mobile-overlay[data-astro-cid-dmqpwcec]{position:fixed;inset:0;z-index:150;background:color-mix(in srgb,var(--bg) 75%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-overlay[data-astro-cid-dmqpwcec].open{opacity:1;pointer-events:all}.mobile-nav[data-astro-cid-dmqpwcec] ul[data-astro-cid-dmqpwcec]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;align-items:center;gap:.25rem}.mobile-link[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.5rem;font-size:clamp(1.5rem,6vw,2.25rem);font-weight:600;letter-spacing:-.02em;color:var(--text-subtle);text-decoration:none;border-radius:12px;transition:color .15s;position:relative}.mobile-link[data-astro-cid-dmqpwcec]:hover,.mobile-link[data-astro-cid-dmqpwcec].active{color:var(--text)}.active-dot[data-astro-cid-dmqpwcec]{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-bottom:2px}.mobile-overlay[data-astro-cid-dmqpwcec].open .mobile-link[data-astro-cid-dmqpwcec]{animation:linkIn .35s cubic-bezier(.22,1,.36,1) both}.mobile-overlay[data-astro-cid-dmqpwcec].open li[data-astro-cid-dmqpwcec]:nth-child(1) .mobile-link[data-astro-cid-dmqpwcec]{animation-delay:.05s}.mobile-overlay[data-astro-cid-dmqpwcec].open li[data-astro-cid-dmqpwcec]:nth-child(2) .mobile-link[data-astro-cid-dmqpwcec]{animation-delay:.1s}.mobile-overlay[data-astro-cid-dmqpwcec].open li[data-astro-cid-dmqpwcec]:nth-child(3) .mobile-link[data-astro-cid-dmqpwcec]{animation-delay:.15s}.mobile-overlay[data-astro-cid-dmqpwcec].open li[data-astro-cid-dmqpwcec]:nth-child(4) .mobile-link[data-astro-cid-dmqpwcec]{animation-delay:.2s}.mobile-overlay[data-astro-cid-dmqpwcec].open li[data-astro-cid-dmqpwcec]:nth-child(5) .mobile-link[data-astro-cid-dmqpwcec]{animation-delay:.25s}@keyframes linkIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.nav-links[data-astro-cid-dmqpwcec]{display:none}.mobile-menu-btn[data-astro-cid-dmqpwcec]{display:flex}}.footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--border);background:var(--bg-secondary);margin-top:6rem}.footer-inner[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1fr auto;gap:3rem;padding:3rem 1.5rem 2rem}.footer-logo[data-astro-cid-sz7xmlte]{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--text);text-decoration:none;display:block;margin-bottom:.75rem}.logo-bracket[data-astro-cid-sz7xmlte]{color:var(--accent)}.footer-left[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{font-size:.875rem;color:var(--text-subtle);line-height:1.6}.footer-links[data-astro-cid-sz7xmlte]{display:flex;gap:3rem}.footer-col[data-astro-cid-sz7xmlte] h4[data-astro-cid-sz7xmlte]{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:.75rem}.footer-col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-size:.875rem;color:var(--text-muted);text-decoration:none;transition:color .15s}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.footer-bottom[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:space-between;padding-top:1.5rem;padding-bottom:1.5rem;border-top:1px solid var(--border);gap:1rem;flex-wrap:wrap}.footer-bottom[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{font-size:.8rem;color:var(--text-subtle);margin:0}.footer-bottom[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-subtle)}.footer-bottom[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.footer-bottom-links[data-astro-cid-sz7xmlte]{display:flex;gap:1rem;font-size:.8rem}@media(max-width:640px){.footer-inner[data-astro-cid-sz7xmlte]{grid-template-columns:1fr;gap:2rem}.footer-links[data-astro-cid-sz7xmlte]{gap:2rem}}
