:root{--bg-primary: #0B0F14;--bg-secondary: #111827;--bg-elevated: #1A1F2E;--accent: #00FFC6;--accent-alt: #6F42C1;--accent-soft: rgba(0, 255, 198, 0.08);--accent-glow: rgba(0, 255, 198, 0.25);--text-primary: #E5E7EB;--text-muted: #94A3B8;--text-heading: #F1F5F9;--border-subtle: rgba(148, 163, 184, 0.08);--glass: rgba(255, 255, 255, 0.04);--glass-border: rgba(255, 255, 255, 0.06);--shadow-xs: 0 2px 6px rgba(0, 0, 0, 0.30);--shadow-sm: 0 6px 18px rgba(0, 0, 0, 0.35);--shadow-lg: 0 20px 50px rgba(0, 0, 0, 0.50);--graph-node: rgba(0, 255, 198, 0.85);--graph-edge: rgba(0, 255, 198, 0.06);--graph-glow: rgba(0, 255, 198, 0.30)}[data-theme=light]{--bg-primary: #F9FAFB;--bg-secondary: #FFFFFF;--bg-elevated: #F1F5F9;--accent: #0066FF;--accent-alt: #6F42C1;--accent-soft: rgba(0, 102, 255, 0.10);--accent-glow: rgba(0, 102, 255, 0.18);--text-primary: #0F172A;--text-muted: #475569;--text-heading: #020617;--border-subtle: rgba(15, 23, 42, 0.06);--glass: rgba(255, 255, 255, 0.60);--glass-border: rgba(15, 23, 42, 0.08);--shadow-xs: 0 2px 6px rgba(2, 6, 23, 0.04);--shadow-sm: 0 6px 18px rgba(2, 6, 23, 0.06);--shadow-lg: 0 20px 50px rgba(2, 6, 23, 0.12);--graph-node: rgba(0, 102, 255, 0.60);--graph-edge: rgba(0, 102, 255, 0.06);--graph-glow: rgba(0, 102, 255, 0.20)}:root{--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--space-1: 8px;--space-2: 16px;--space-3: 24px;--space-4: 32px;--space-5: 48px;--space-6: 64px;--max-width: 1100px;--transition-fast: 150ms cubic-bezier(.4, 0, .2, 1);--transition-medium: 280ms cubic-bezier(.16, .84, .44, 1);--transition-slow: 500ms cubic-bezier(.16, .84, .44, 1)}:root{--font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', 'Cascadia Code', Menlo, Monaco, monospace;--lead-size: 1.125rem}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-3)}.grid{display:grid;gap:var(--space-3)}.grid-cols-2{grid-template-columns:repeat(2, 1fr)}.grid-cols-3{grid-template-columns:repeat(3, 1fr)}.navbar{position:sticky;top:12px;z-index:60;margin:12px;border-radius:var(--radius-md);background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background var(--transition-fast)}.navbar-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-1) var(--space-2)}.hero{padding:var(--space-6) 0 var(--space-5);text-align:center;position:relative}.hero-inner{display:flex;gap:var(--space-4);align-items:center;justify-content:center;flex-wrap:wrap}.hero-copy{max-width:560px;text-align:left}.hero h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;color:var(--text-heading);margin:0 0 var(--space-2);line-height:1.15}.hero .lead{font-size:var(--lead-size);color:var(--text-muted);margin:0 0 var(--space-3);line-height:1.6}.hero .accent-text{color:var(--accent);font-family:var(--font-mono)}.section{padding:var(--space-5) 0}.section-title{font-size:1.5rem;font-weight:700;color:var(--text-heading);margin:0 0 var(--space-3)}#main{scroll-margin-top:80px}.site-footer{padding:var(--space-4) 0;text-align:center;color:var(--text-muted);font-size:.875rem;border-top:1px solid var(--border-subtle);margin-top:var(--space-5)}.site-footer a{color:var(--accent);text-decoration:none}.about-section{max-width:720px;margin:0 auto}.timeline{position:relative;padding-left:var(--space-4)}.timeline::before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:var(--border-subtle)}.timeline-item{position:relative;margin-bottom:var(--space-4)}.timeline-item::before{content:"";position:absolute;left:calc(-1*var(--space-4) + 2px);top:6px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.timeline-date{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);margin-bottom:4px}@media(max-width: 900px){.grid-cols-3{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 600px){.grid-cols-3,.grid-cols-2{grid-template-columns:1fr}.hero-inner{flex-direction:column;text-align:center}.hero-copy{text-align:center}.navbar{margin:8px}.navbar-inner{padding:var(--space-1)}}.logo a{font-weight:800;color:var(--accent);text-decoration:none;font-size:1.125rem;font-family:var(--font-mono);letter-spacing:-0.02em;transition:text-shadow var(--transition-fast)}.logo a:hover{text-shadow:0 0 12px var(--accent-glow)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:rgba(0,0,0,0);color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all var(--transition-fast)}.btn:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent)}.btn.primary{background:linear-gradient(135deg, var(--accent), var(--accent-alt));color:#fff;border-color:rgba(0,0,0,0);box-shadow:0 4px 20px var(--accent-glow);font-weight:600}.btn.primary:hover{box-shadow:0 6px 30px var(--accent-glow);transform:translateY(-2px)}.btn.ghost{background:rgba(0,0,0,0);border-color:var(--border-subtle)}.card{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:var(--space-3);box-shadow:var(--shadow-xs);transition:transform var(--transition-medium),box-shadow var(--transition-medium),border-color var(--transition-fast)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg),0 0 30px var(--accent-glow);border-color:var(--accent-soft)}.photo-frame{width:200px;height:200px;border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--accent-soft);box-shadow:0 8px 32px var(--accent-glow);display:inline-block;flex-shrink:0}.photo-frame img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.photo-frame:hover img{transform:scale(1.05)}.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-weight:600;font-size:.75rem;letter-spacing:.02em}.nav-links{display:flex;align-items:center;gap:4px}.nav-links a{color:var(--text-primary);text-decoration:none;padding:10px 16px;min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;transition:background var(--transition-fast),color var(--transition-fast)}.nav-links a:hover,.nav-links a.active{background:var(--accent-soft);color:var(--accent)}.theme-toggle{background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:8px 10px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);font-size:1.1rem;line-height:1;transition:border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-medium)}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle:active{transform:rotate(180deg) scale(0.9)}.nav-toggle{display:none;border:1px solid var(--border-subtle);background:rgba(0,0,0,0);padding:8px 12px;min-height:44px;min-width:44px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary);font-size:.85rem;font-family:var(--font-mono)}@media(max-width: 768px){.nav-toggle{display:inline-block}.nav-links{position:absolute;right:var(--space-2);top:56px;background:var(--bg-secondary);border:1px solid var(--border-subtle);flex-direction:column;display:none;padding:var(--space-2);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px}.nav-links.open{display:flex}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:var(--space-3);margin-top:var(--space-3)}.project-card{display:flex;flex-direction:column;gap:var(--space-2)}.project-thumb{height:180px;width:100%;border-radius:var(--radius-sm);overflow:hidden}.project-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-medium)}.project-thumb:hover img{transform:scale(1.04)}.project-body h3{margin:0;font-size:1.1rem;color:var(--text-heading)}.project-body h3 a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}.project-body h3 a:hover{color:var(--accent)}.project-body p{margin:4px 0 0;color:var(--text-muted);font-size:.9rem;line-height:1.5}.features-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:var(--space-3)}.feature-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3);transition:transform var(--transition-medium),box-shadow var(--transition-medium),border-color var(--transition-fast)}.feature-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--accent-soft)}.feature-card h3{margin:0 0 8px;font-size:1rem;color:var(--text-heading)}.skills-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.post-list{list-style:none;padding:0;margin:0}.post-item{padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle)}.post-item:last-child{border-bottom:none}.post-item a{color:var(--text-heading);text-decoration:none;font-weight:600;font-size:1.1rem;transition:color var(--transition-fast)}.post-item a:hover{color:var(--accent)}.post-item .post-meta{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);margin-top:4px}.post-item .post-excerpt{color:var(--text-muted);font-size:.9rem;margin-top:6px;line-height:1.5}.writeup-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:var(--space-3);margin-top:var(--space-3)}.writeup-card{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px}.writeup-card h3{margin:8px 0 0;font-size:1.05rem;color:var(--text-heading);transition:color var(--transition-fast)}.writeup-card:hover h3{color:var(--accent)}.writeup-card-header{display:flex;gap:6px;flex-wrap:wrap}.writeup-content h2{margin-top:var(--space-4)}.writeup-content h3{margin-top:var(--space-3)}.writeup-content img{border-radius:var(--radius-sm);margin:var(--space-2) 0}.diff-easy{background:rgba(0,200,83,.12);color:#00c853}.diff-medium{background:rgba(255,152,0,.12);color:#ff9800}.diff-hard{background:rgba(244,67,54,.12);color:#f44336}.mtps-banner{background:linear-gradient(135deg, var(--bg-secondary), var(--bg-elevated));border:1px solid var(--border-subtle);overflow:hidden;position:relative}.mtps-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.mtps-banner-copy{flex:1;min-width:260px}.mtps-banner-visual{flex-shrink:0;display:flex;align-items:center;justify-content:center}.mtps-glyph{font-size:5rem;line-height:1;opacity:.12;color:var(--accent-alt);animation:subtleBreathe 4s ease-in-out infinite;user-select:none}.nav-mtps{color:var(--accent-alt) !important;font-weight:600;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em;border:1px solid rgba(111,66,193,.25);border-radius:var(--radius-sm);padding:6px 12px !important;transition:all var(--transition-fast)}.nav-mtps:hover{background:rgba(111,66,193,.12);border-color:var(--accent-alt);color:var(--accent-alt) !important;transform:translateY(-1px)}@media(max-width: 600px){.mtps-banner-inner{flex-direction:column;text-align:center}.mtps-banner-visual{display:none}.mtps-banner-copy .row{justify-content:center}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%,100%{box-shadow:0 0 8px var(--accent-glow)}50%{box-shadow:0 0 20px var(--accent-glow)}}@keyframes subtleBreathe{0%,100%{opacity:.6}50%{opacity:1}}.fade-in{animation:fadeIn .5s ease both}.fade-in-up{animation:fadeInUp .6s ease both}.glow{box-shadow:0 8px 40px var(--accent-glow)}.stagger>*{animation:fadeInUp .4s ease both}.stagger>*:nth-child(1){animation-delay:60ms}.stagger>*:nth-child(2){animation-delay:120ms}.stagger>*:nth-child(3){animation-delay:180ms}.stagger>*:nth-child(4){animation-delay:240ms}.stagger>*:nth-child(5){animation-delay:300ms}.stagger>*:nth-child(6){animation-delay:360ms}.stagger>*:nth-child(7){animation-delay:420ms}.stagger>*:nth-child(8){animation-delay:480ms}.stagger>*:nth-child(9){animation-delay:540ms}.stagger>*:nth-child(10){animation-delay:600ms}.stagger>*:nth-child(11){animation-delay:660ms}.stagger>*:nth-child(12){animation-delay:720ms}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}.muted{color:var(--text-muted)}.accent{color:var(--accent)}.mono{font-family:var(--font-mono)}.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}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;padding:10px 14px;background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-sm);font-weight:600;z-index:9999;box-shadow:var(--shadow-lg)}.stack{display:flex;flex-direction:column;gap:var(--space-2)}.row{display:flex;gap:var(--space-2);align-items:center}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent-soft);color:var(--text-heading)}:root{--on-accent: #0B0F14;--border-strong: rgba(148, 163, 184, 0.22)}[data-theme=light]{--on-accent: #FFFFFF;--border-strong: rgba(15, 23, 42, 0.16)}[hidden]{display:none !important}.btn.primary{background:var(--accent);color:var(--on-accent);box-shadow:none}.btn.primary:hover{color:var(--on-accent);box-shadow:0 4px 16px var(--accent-glow)}.btn.ghost{border-color:var(--border-strong)}.btn-sm{padding:8px 14px;font-size:.85rem;min-height:40px}.filter-bar{flex-wrap:wrap;gap:8px;margin:var(--space-3) 0 var(--space-2)}.filter-bar button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.count{color:var(--text-muted);font-size:.8em}.hero{padding:var(--space-5) 0 var(--space-4)}.hero-inner{justify-content:space-between}.hero-copy{max-width:640px}.hero-prompt{margin:0 0 8px;font-size:.85rem}.hero h1{font-size:clamp(2rem,5vw,3rem);letter-spacing:-0.02em;margin-bottom:var(--space-1)}.hero-secondary{color:var(--text-muted);font-size:.9rem;margin:0 0 var(--space-3)}.hero-actions{margin-top:var(--space-3);gap:12px;flex-wrap:wrap}.hero-photo{text-align:center}.hero-photo .photo-frame{margin:0 auto}.hero-name{margin:var(--space-2) 0 0;font-weight:700;color:var(--text-heading)}.hero-meta{margin:2px 0 0;font-size:.8rem}.photo-frame picture,.photo-frame img{display:block;width:100%;height:100%;object-fit:cover}.section-head{justify-content:space-between;align-items:baseline;flex-wrap:wrap;margin-bottom:var(--space-3)}.section-head .section-title{margin:0}.page-intro{max-width:640px}.group-intro{margin:calc(-1*var(--space-2)) 0 var(--space-3);font-size:.9rem}.small-note{font-size:.85rem;margin-top:var(--space-3)}.career-path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-2);position:relative}.career-path::before{content:"";position:absolute;left:6px;right:6px;top:6px;height:2px;background:var(--border-strong)}.career-step{position:relative;padding-top:var(--space-3)}.career-step::before{content:"";position:absolute;top:0;left:0;width:14px;height:14px;border-radius:50%;background:var(--bg-primary);border:2px solid var(--text-muted)}.career-step.is-current::before{border-color:var(--accent);background:var(--accent)}.career-years{display:block;font-size:.78rem;color:var(--text-muted)}.career-label{display:block;font-weight:600;color:var(--text-heading);margin-top:2px}.path-note{margin-top:var(--space-3);font-size:.9rem}.focus-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-4)}.focus-item{border-top:2px solid var(--border-strong);padding-top:var(--space-2)}.focus-item:first-child{border-top-color:var(--accent)}.focus-item h3{margin:4px 0 8px;font-size:1.05rem}.focus-item p{margin:0;font-size:.92rem;line-height:1.6}.focus-kind{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.project-card{display:flex;flex-direction:column;gap:var(--space-2)}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.project-kicker{margin:0 0 4px;font-size:.72rem;color:var(--text-muted)}.kicker-cat{color:var(--accent)}.tag-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.project-links{margin:10px 0 0;font-size:.85rem}.project-group{margin-top:var(--space-5);scroll-margin-top:90px}.about-intro{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:flex-start;margin-top:var(--space-3)}.about-intro>div:last-child{flex:1;min-width:260px}.about-intro .lead{margin-top:0}#experience,#contact{scroll-margin-top:90px}ol.timeline{list-style:none;margin:0}.timeline-item h3{margin:0 0 4px;font-size:1.1rem}.timeline-company{color:var(--text-muted);font-weight:600}.timeline-item.is-current::before{box-shadow:0 0 0 4px var(--accent-soft)}.timeline-highlights{margin:8px 0 0;padding-left:1.1em;font-size:.92rem;line-height:1.6}.timeline-highlights li{margin-bottom:4px}.timeline-highlights li::marker{color:var(--accent)}.skills-groups{display:flex;flex-direction:column;gap:var(--space-3)}.skills-heading{font-size:.8rem;color:var(--text-muted);margin:0 0 8px;font-weight:600}.facts-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:var(--space-3)}.facts-grid p{margin:0 0 8px}.plain-list{list-style:none;margin:0 0 8px;padding:0}.plain-list li{margin-bottom:6px}.approach-list{padding-left:1.1em;line-height:1.65}.approach-list li{margin-bottom:10px}.approach-list li::marker{color:var(--accent)}.contact-card{text-align:center;padding:var(--space-4)}.contact-card .section-title{margin-bottom:var(--space-2)}.contact-actions{justify-content:center;gap:12px;flex-wrap:wrap;margin-top:var(--space-3)}.cert-group{margin-top:var(--space-5)}.cert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.cert-item{border-left:2px solid var(--border-strong);padding-left:var(--space-2)}.cert-group:first-of-type .cert-item{border-left-color:var(--accent)}.cert-title{margin:0;font-size:1.05rem}.cert-sub{margin:2px 0 0;color:var(--text-primary)}.cert-detail{margin:4px 0 0;font-size:.85rem}.cert-meta{margin:4px 0 0;font-size:.78rem}:root{--htb: #9FF300;--thm: #FF7A7A}[data-theme=light]{--htb: #3F6B00;--thm: #B91C1C}.plat-htb{color:var(--htb);font-weight:700}.plat-thm{color:var(--thm);font-weight:700}.badge-htb{color:var(--htb);background:color-mix(in srgb, var(--htb) 12%, transparent)}.badge-thm{color:var(--thm);background:color-mix(in srgb, var(--thm) 12%, transparent)}.nav-actions{gap:4px}.footer-links{margin-top:4px;font-size:.8rem}.nav-links a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}@media(max-width: 900px){.focus-grid{grid-template-columns:1fr;gap:var(--space-3)}}@media(max-width: 640px){.hero-inner{flex-direction:column-reverse;align-items:flex-start}.hero-photo{text-align:left;display:flex;align-items:center;gap:var(--space-2)}.hero-photo .photo-frame{width:96px !important;height:96px !important;margin:0}.hero-name{margin:0}.career-path{grid-template-columns:1fr;gap:var(--space-2);padding-left:var(--space-3)}.career-path::before{left:6px;right:auto;top:6px;bottom:6px;width:2px;height:auto}.career-step{padding-top:0}.career-step::before{left:calc(-1*var(--space-3));top:4px}}*,*::before,*::after{box-sizing:border-box}html{height:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-medium),color var(--transition-medium)}a{color:var(--accent);transition:color var(--transition-fast)}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4,h5,h6{color:var(--text-heading);line-height:1.2}code,pre{font-family:var(--font-mono)}pre{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3);overflow-x:auto;font-size:.875rem}#graph-bg{position:fixed;inset:0;z-index:-1;pointer-events:none}html{scroll-padding-top:80px}.lead{font-size:var(--lead-size);line-height:1.6;color:var(--text-muted)}