:root{--bg:#0b1424;--bg-elevated:#0f1a2e;--bg-card:#122036;--bg-card-hover:#16274183;--border:rgba(140,170,220,0.10);--border-strong:rgba(140,170,220,0.20);--border-accent:rgba(110,168,254,0.35);--fg:#eaf0fa;--fg-muted:#a6b3c8;--fg-dim:#6c7d96;--fg-faint:#475569;--accent:#6ea8fe;--accent-strong:#4a90ff;--accent-soft:rgba(110,168,254,0.12);--font-sans:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-mono:var(--font-mono),"SF Mono",ui-monospace,Menlo,monospace;--font-display:var(--font-inter),sans-serif;--container:1080px;--container-narrow:720px;--radius:10px;--radius-sm:6px;--radius-lg:14px;--shadow-card:0 1px 0 rgba(255,255,255,0.04) inset,0 0 0 1px rgba(255,255,255,0.04)}*{box-sizing:border-box}body,html{margin:0;padding:0}body,html{background:var(--bg)}body{color:var(--fg);font-family:var(--font-sans);font-feature-settings:"cv02","cv03","cv04","cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.55;letter-spacing:-.005em;min-height:100vh}a{color:inherit;text-decoration:none}.nav{position:sticky;top:0;z-index:50;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:rgba(11,20,36,.78);border-bottom:1px solid var(--border)}.nav-inner{max-width:var(--container);margin:0 auto;padding:0 32px;height:60px;justify-content:space-between}.nav-brand,.nav-inner{display:flex;align-items:center}.nav-brand{gap:10px;font-weight:600;font-size:15px;letter-spacing:-.01em}.nav-links{display:flex;gap:4px;align-items:center}.nav-link{position:relative;padding:8px 14px;font-size:14px;font-weight:500;color:var(--fg-muted);border-radius:6px;cursor:pointer;transition:color .12s ease,background .12s ease}.nav-link:hover{color:var(--fg);background:rgba(255,255,255,.04)}.nav-link.active{color:var(--fg)}.nav-link.active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:1px;background:var(--accent)}.page{max-width:var(--container);margin:0 auto;padding:96px 32px 120px}.page-narrow{max-width:var(--container-narrow)}.section-eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.page-title{font-family:var(--font-display);font-size:56px;font-weight:700;letter-spacing:-.035em;line-height:1.05;margin:0 0 18px;color:var(--fg)}.page-subtitle{font-size:19px;line-height:1.55;color:var(--fg-muted);margin:0 0 56px;max-width:640px;font-weight:400}.home-hero{display:grid;grid-template-columns:200px 1fr;gap:56px;align-items:start}.home-portrait{width:200px;height:200px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#1a2030,#0f131c);position:relative;flex-shrink:0;border:3px solid rgba(110,168,254,.6)}.home-name{font-size:56px;font-weight:700;letter-spacing:-.035em;line-height:1.05;margin:4px 0 8px}.home-role{font-size:16px;color:var(--accent);font-weight:500;margin-bottom:28px}.home-intro p{font-size:17px;line-height:1.7;color:var(--fg-muted);margin:0 0 18px;max-width:620px}.home-intro p:last-child{margin-bottom:0}.home-intro strong{color:var(--fg);font-weight:600}.home-meta{display:flex;gap:28px;margin-top:36px;padding-top:28px;border-top:1px solid var(--border);flex-wrap:wrap}.home-meta-item{display:flex;flex-direction:column;gap:4px}.home-meta-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.home-meta-value{font-size:14px;color:var(--fg);font-weight:500}.home-recent{margin-top:96px;padding-top:56px;border-top:1px solid var(--border)}.home-recent-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:32px}.home-recent-title{font-size:22px;font-weight:600;letter-spacing:-.02em}.home-recent-link{font-size:14px;color:var(--fg-muted);font-weight:500}.home-recent-link:hover{color:var(--accent)}.blog-toolbar{align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border)}.blog-toolbar,.cat-pills{display:flex;flex-wrap:wrap}.cat-pills{gap:6px}.cat-pill{padding:6px 12px;font-size:13px;font-weight:500;color:var(--fg-muted);border-radius:100px;cursor:pointer;border:1px solid transparent;transition:all .14s ease;background:transparent;font-family:inherit}.cat-pill:hover{color:var(--fg);background:rgba(255,255,255,.04)}.cat-pill.active{color:var(--fg);background:var(--accent-soft);border-color:var(--border-accent)}.post-count{font-size:13px;color:var(--fg-dim);font-variant-numeric:tabular-nums}.posts-list{display:flex;flex-direction:column;gap:14px}.post-card{display:block;padding:28px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .18s ease;position:relative}.post-card:hover{background:var(--bg-card-hover);border-color:var(--border-strong);transform:translateY(-1px)}.post-card:hover .post-card-arrow{transform:translateX(4px);color:var(--accent)}.post-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:12px;font-weight:500;color:var(--fg-dim)}.post-card-cat{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);padding:4px 9px;border-radius:4px;background:var(--accent-soft)}.post-card-dot{width:3px;height:3px;border-radius:50%;background:var(--fg-faint)}.post-card-title{font-size:22px;font-weight:600;letter-spacing:-.022em;line-height:1.3;margin:0 0 10px;color:var(--fg)}.post-card-excerpt{font-size:15px;color:var(--fg-muted);line-height:1.6;margin:0 0 18px}.post-card-foot{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--fg-dim)}.post-card-meta{display:flex;align-items:center;gap:14px}.post-card-arrow{color:var(--fg-muted);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:all .18s ease}[data-card-style=minimal] .posts-list{gap:0}[data-card-style=minimal] .post-card{background:transparent;border:none;border-top:1px solid var(--border);border-radius:0;padding:28px 4px}[data-card-style=minimal] .post-card:last-child{border-bottom:1px solid var(--border)}[data-card-style=minimal] .post-card:hover{background:transparent;transform:none;padding-left:12px;padding-right:12px}[data-card-style=minimal] .post-card:hover .post-card-title{color:var(--accent)}.post-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--fg-muted);margin-bottom:40px;transition:color .14s ease;cursor:pointer}.post-back:hover{color:var(--accent)}.post-figure{margin:2em 0;border-radius:var(--radius);overflow:hidden;background:var(--bg-card);border:1px solid var(--border)}.post-figure-img{display:block;width:100%;height:auto;max-height:480px;object-fit:cover}.post-header{margin-bottom:48px;padding-bottom:36px;border-bottom:1px solid var(--border)}.post-header-meta{display:flex;align-items:center;gap:10px;margin-bottom:22px;font-size:13px;color:var(--fg-dim);flex-wrap:wrap}.post-title{font-family:var(--font-display);font-size:48px;font-weight:700;letter-spacing:-.035em;line-height:1.1;margin:0 0 22px;color:var(--fg)}.post-lede{font-size:20px;line-height:1.55;color:var(--fg-muted);margin:0 0 28px;font-weight:400}.post-author-row{display:flex;align-items:center;gap:14px}.post-author-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid rgba(110,168,254,.4)}.post-author-info{display:flex;flex-direction:column;line-height:1.3}.post-author-name{font-size:14px;font-weight:500;color:var(--fg)}.post-author-date{font-size:13px;color:var(--fg-dim)}.post-body{font-size:17px;line-height:1.75;color:#cdd4e0;font-weight:400}.post-body>*+*{margin-top:1.4em}.post-body strong{color:var(--fg);font-weight:600}.post-body a{color:var(--accent);border-bottom:1px solid rgba(110,168,254,.3)}.post-body a:hover{border-bottom-color:var(--accent)}.post-h2{font-size:28px;font-weight:700;letter-spacing:-.028em;line-height:1.25;margin:2.4em 0 .7em!important}.post-h2,.post-h3{font-family:var(--font-display);color:var(--fg)}.post-h3{font-size:20px;font-weight:600;letter-spacing:-.02em;margin:2em 0 .5em!important}.post-p{margin:0 0 1.3em}.post-ol,.post-ul{padding-left:1.4em;margin:1.2em 0}.post-ul{list-style:none;padding-left:0}.post-ul .post-li{position:relative;padding-left:22px;margin-bottom:8px}.post-ul .post-li:before{content:"";position:absolute;left:4px;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.7}.post-ol .post-li{margin-bottom:8px;padding-left:6px}.post-ol .post-li::marker{color:var(--accent);font-weight:600}.post-code{font-size:.88em;background:rgba(110,168,254,.1);color:var(--accent);padding:2px 6px;border-radius:4px;border:1px solid rgba(110,168,254,.15)}.post-code,.post-pre{font-family:var(--font-mono)}.post-pre{background:#08111f;border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;overflow-x:auto;font-size:14px;line-height:1.65;color:#cdd4e0;margin:0}.post-quote{margin:1.8em 0;padding:22px 26px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;font-size:19px;line-height:1.55;color:var(--fg);font-style:italic}.post-quote p{margin:0}.post-quote p,.post-quote strong{color:var(--fg)}.post-footer{margin-top:80px;padding-top:40px;border-top:1px solid var(--border)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px}.post-nav-card{display:flex;flex-direction:column;gap:8px;padding:20px 22px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .16s ease;text-align:left}.post-nav-card.next{text-align:right;align-items:flex-end}.post-nav-card:hover{background:var(--bg-card-hover);border-color:var(--border-strong)}.post-nav-card:hover .post-nav-title{color:var(--accent)}.post-nav-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);display:inline-flex;align-items:center;gap:5px}.post-nav-title{font-size:15px;font-weight:600;letter-spacing:-.015em;color:var(--fg);line-height:1.35;transition:color .14s ease}.post-nav-empty{background:transparent;border:1px dashed var(--border);cursor:default}.post-nav-empty:hover{background:transparent;border-color:var(--border)}.post-nav-empty:hover .post-nav-title,.post-nav-title-dim{color:var(--fg-dim)}.resume-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:64px;padding-bottom:40px;border-bottom:1px solid var(--border)}.resume-name{font-family:var(--font-display);font-size:48px;font-weight:700;letter-spacing:-.035em;margin:0 0 6px}.resume-tagline{font-size:16px;color:var(--accent);font-weight:500;margin-bottom:22px}.resume-contact-row{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;font-size:13px;color:var(--fg-muted)}.resume-contact-item{display:inline-flex;align-items:center;gap:6px}.resume-contact-item a:hover{color:var(--accent)}.resume-section{margin-bottom:56px}.resume-section-head{display:flex;align-items:center;gap:12px;margin-bottom:24px}.resume-section-num{font-family:var(--font-mono);font-size:12px;color:var(--accent);font-weight:500}.resume-section-title{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.024em;margin:0}.resume-section-line{flex:1;height:1px;background:var(--border)}.resume-summary{font-size:16px;line-height:1.7;color:var(--fg-muted);max-width:760px}.resume-summary strong{color:var(--fg);font-weight:500}.skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 32px}.skill-item{display:flex;gap:12px;font-size:14px;color:var(--fg-muted);line-height:1.5;padding:6px 0}.skill-bullet{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:9px}.cert-list{display:flex;flex-direction:column;gap:10px}.cert-item{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--fg-muted);padding:4px 0}.cert-check{width:16px;height:16px;border-radius:50%;background:rgba(120,190,32,.12);display:grid;place-items:center;color:#78be20;flex-shrink:0;font-size:10px}.exp-item{display:grid;grid-template-columns:160px 1fr;gap:36px;padding:28px 0;border-top:1px solid var(--border)}.exp-item:first-child{border-top:none;padding-top:0}.exp-period{font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);font-weight:500;padding-top:4px;letter-spacing:.02em}.exp-role{font-size:17px;font-weight:600;letter-spacing:-.015em;margin:0 0 4px;color:var(--fg)}.exp-company{font-size:14px;color:var(--accent);font-weight:500;margin-bottom:14px}.exp-bullets{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.exp-bullets li{font-size:14px;line-height:1.65;color:var(--fg-muted);padding-left:18px;position:relative}.exp-bullets li:before{content:"";position:absolute;left:0;top:.65em;width:8px;height:1px;background:var(--fg-faint)}.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.edu-item{padding:20px 22px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.edu-degree{font-size:15px;font-weight:600;margin-bottom:4px}.edu-school{font-size:13px;color:var(--fg-muted)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:40px}.contact-card{display:flex;align-items:center;gap:16px;padding:20px 22px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:all .16s ease}.contact-card:hover{background:var(--bg-card-hover);border-color:var(--border-strong)}.contact-icon{width:40px;height:40px;border-radius:8px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent);flex-shrink:0}.contact-info{display:flex;flex-direction:column;line-height:1.35;min-width:0}.contact-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:2px}.contact-value{font-size:15px;font-weight:500;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-footer{border-top:1px solid var(--border);padding:40px 32px;margin-top:64px}.site-footer-inner{max-width:var(--container);margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--fg-dim);flex-wrap:wrap;gap:16px}.read-progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:60;transition:width 60ms linear}.post-card-meta-row{display:inline-flex;align-items:center;gap:5px}@media (max-width:760px){.page{padding:56px 20px 80px}.home-name,.page-title,.resume-name{font-size:38px}.post-title{font-size:32px}.home-hero{grid-template-columns:1fr;gap:28px}.home-portrait{width:120px;height:120px}.contact-grid,.edu-grid,.exp-item,.skill-grid{grid-template-columns:1fr}.exp-item{gap:12px}.post-nav{grid-template-columns:1fr}.post-nav-card.next{text-align:left;align-items:flex-start}.nav-inner{padding:0 20px}}