*{font-family:Poppins,sans-serif;box-sizing:border-box}:root{--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--surface: #ffffff;--surface-hover: #f4f6fb;--text-primary: #0a0a0a;--text-secondary: #4b5563;--text-muted: #9ca3af;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: rgba(37, 99, 235, .1);--syntax: #047857;--syntax-soft: rgba(4, 120, 87, .1);--avatar-ring: rgba(37, 99, 235, .05);--border: #d8dde5;--border-strong: #c3cad6;--shadow: rgba(15, 23, 42, .08);--navbar-bg: rgba(255, 255, 255, .7);--navbar-border: rgba(15, 23, 42, .1);--navbar-divider: rgba(0, 0, 0, .12);--navbar-shadow: rgba(15, 23, 42, .12);--navbar-inset: rgba(255, 255, 255, .6);--navbar-hover: rgba(15, 23, 42, .06);--navbar-active: rgba(15, 23, 42, .1)}[data-theme=dark]{--bg-primary: #000000;--bg-secondary: #0d1117;--surface: #0f1115;--surface-hover: #161922;--text-primary: #ffffff;--text-secondary: #b6bcc7;--text-muted: #6b7280;--accent: #7aa2f7;--accent-strong: #a3bffa;--accent-soft: rgba(122, 162, 247, .12);--syntax: #9ece6a;--syntax-soft: rgba(158, 206, 106, .12);--avatar-ring: rgba(122, 162, 247, .14);--border: #20242e;--border-strong: #2d323e;--shadow: rgba(0, 0, 0, .6);--navbar-bg: rgba(30, 41, 59, .4);--navbar-border: rgba(148, 163, 184, .3);--navbar-divider: rgba(148, 163, 184, .4);--navbar-shadow: rgba(0, 0, 0, .8);--navbar-inset: rgba(148, 163, 184, .15);--navbar-hover: rgba(148, 163, 184, .2);--navbar-active: rgba(148, 163, 184, .3)}html{scroll-behavior:smooth}body{margin:0;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}.container{max-width:680px;margin:0 auto;padding:0 1.5rem}.site-main{padding-top:2.5rem}@media(max-width:600px){.site-main{padding-top:1.25rem}}@media(prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(16px);animation:reveal .6s cubic-bezier(.22,1,.36,1) forwards}@keyframes reveal{to{opacity:1;transform:translateY(0)}}}:root{--nav-text-color: #000000}[data-theme=dark]{--nav-text-color: #e5e7eb}.navbar{position:sticky;top:16px;z-index:100;color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:1.25rem;width:fit-content;margin:0 auto;padding:.6rem 1rem;background:var(--navbar-bg);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-radius:999px;border:1px solid var(--navbar-border);box-shadow:0 8px 32px var(--navbar-shadow),inset 0 0 0 1px var(--navbar-inset)}.navbar__group{display:flex;align-items:center;gap:.4rem;list-style:none;margin:0;padding:0}.navbar__divider{width:1px;height:24px;background:var(--navbar-divider)}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:inherit;text-decoration:none;background:transparent;border:none;cursor:pointer;transition:background .2s ease,transform .15s ease,box-shadow .15s ease}.nav-icon:hover{background:var(--navbar-hover);box-shadow:0 4px 12px var(--navbar-shadow);transform:translateY(-1px)}.nav-icon.active{background:var(--navbar-active)}.nav-icon svg{width:18px;height:18px;padding:0}.nav-icon svg,.nav-icon svg *{padding:0}.theme-toggle{padding:0}@media(max-width:600px){.navbar{max-width:calc(100vw - 1.5rem);padding:.7rem .65rem;gap:.5rem}.nav-icon{width:34px;height:34px}}@media(max-width:360px){.navbar{padding:.6rem .55rem;gap:.4rem}.navbar__group{gap:.25rem}}.home-page{max-width:640px;margin:0 auto;padding:0 1.5rem;text-align:left}.section-header{display:flex;align-items:baseline;gap:.85rem;margin-bottom:1.75rem}.section-index{font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--syntax);letter-spacing:.05em}.section-title{font-size:1.35rem;font-weight:600;letter-spacing:-.01em;margin:0;color:var(--text-primary)}.section-header:after{content:"";flex:1;height:1px;background:var(--border);align-self:center}.hero{padding-top:2.75rem}.avatar{width:104px;height:104px;border-radius:50%;object-fit:cover;border:2px solid var(--border-strong);box-shadow:0 0 0 4px var(--avatar-ring);margin-bottom:1.6rem;display:block}.hero-prompt{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);margin:0 0 .9rem;letter-spacing:.02em}.prompt-sign{color:var(--syntax);margin-right:.15rem}.hero-kicker{font-family:var(--font-mono);font-size:.85rem;color:var(--syntax);margin:.7rem 0 0;letter-spacing:.02em}.cursor{display:inline-block;width:.55ch;height:.95em;margin-left:.12em;vertical-align:-.08em;background:var(--syntax);animation:cursor-blink 1.1s steps(1) infinite}@keyframes cursor-blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.cursor{animation:none}}.hero-title{font-size:2.6rem;font-weight:700;line-height:1.08;letter-spacing:-.03em;margin:0;color:var(--text-primary)}.subheading{color:var(--text-secondary);font-weight:400;font-size:1.02rem;line-height:1.75;max-width:33rem;margin:1.4rem 0 0}.subheading .accent-text{color:var(--text-primary);font-weight:500}.contact-buttons{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem;margin-bottom:5.5rem}.contact-button{text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.3rem;font-size:.92rem;font-weight:500;border-radius:8px;cursor:pointer;transition:transform .15s ease,background .2s ease,border-color .2s ease,color .2s ease}.contact-button.primary{background:var(--text-primary);color:var(--bg-primary);border:1px solid var(--text-primary)}.contact-button.primary:hover{transform:translateY(-2px);opacity:.9}.contact-button.secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-strong)}.contact-button.secondary:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.experience-section,.projects-section,.skills-section,.certifications-section,.education-section{margin-bottom:5rem}.entry{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 0;border-top:1px solid var(--border)}.entry:last-child{border-bottom:1px solid var(--border)}.entry-logo{width:42px;height:42px;object-fit:contain;flex-shrink:0;background-color:#fff;border-radius:8px;border:1px solid var(--border)}.entry-logo--fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--syntax-soft);color:var(--syntax);font-family:var(--font-mono);font-size:.85rem;font-weight:600}.entry-body{flex:1;min-width:0}.entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.entry-title{font-size:1rem;font-weight:600;margin:0}.entry-subtitle{font-size:.9rem;color:var(--text-secondary);margin:.1rem 0 0}.entry-meta{font-family:var(--font-mono);font-size:.76rem;white-space:nowrap;color:var(--text-muted);flex-shrink:0;padding-top:.2rem}.entry-points{margin:.75rem 0 0;padding-left:1.05rem;list-style:none}.entry-points li{position:relative;font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin-top:.4rem}.entry-points li:before{content:"▹";position:absolute;left:-1.05rem;color:var(--syntax)}.project{padding:1.4rem 0;border-top:1px solid var(--border)}.project:last-child{border-bottom:1px solid var(--border)}.project-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-name{font-size:1.05rem;font-weight:600;margin:0}.project-link{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text-secondary);text-decoration:none;border:1px solid var(--border);border-radius:6px;padding:.3rem .6rem;flex-shrink:0;transition:color .18s ease,border-color .18s ease}.project-link svg{width:14px;height:14px}.project-link:hover{color:var(--accent);border-color:var(--accent)}.project-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}.stack-chip{font-family:var(--font-mono);font-size:.74rem;color:var(--text-muted);background:var(--bg-secondary);border-radius:5px;padding:.22rem .5rem}.skill-groups{display:flex;flex-direction:column;gap:1.25rem}.skill-group{display:grid;grid-template-columns:8.5rem 1fr;gap:1rem;align-items:start}.skill-group-label{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);padding-top:.3rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{font-family:var(--font-mono);font-size:.82rem;font-weight:400;color:var(--text-secondary);background:transparent;padding:.35rem .7rem;border:1px solid var(--border);border-radius:6px;white-space:nowrap}.cert-item{display:flex;align-items:flex-start;gap:1rem;padding:1.15rem 0;border-top:1px solid var(--border)}.cert-item:last-child{border-bottom:1px solid var(--border)}.cert-icon{display:inline-flex;align-items:center;color:var(--syntax);padding-top:.15rem}.cert-icon svg{width:18px;height:18px}.cert-body{flex:1;min-width:0}.cert-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.cert-name{font-size:.98rem;font-weight:600;line-height:1.35;margin:0}.cert-issuer{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);margin:.3rem 0 0}.cert-issuer:before{content:"↳ ";color:var(--syntax)}@media(max-width:600px){.hero{padding-top:1rem}.avatar{width:84px;height:84px;margin-bottom:1.25rem}.hero-title{font-size:2.1rem}.contact-buttons{margin-bottom:3.5rem}.contact-button{flex:1;justify-content:center}.section-title{font-size:1.2rem}.experience-section,.projects-section,.skills-section,.certifications-section,.education-section{margin-bottom:3.5rem}.entry-head{flex-direction:column;gap:.3rem}.entry-meta{padding-top:0}.skill-group{grid-template-columns:1fr;gap:.5rem}.skill-group-label{padding-top:0}}.footer{border-top:1px solid var(--border);padding:1.75rem 0 2.5rem}.footer-content{display:flex;align-items:center;justify-content:flex-start;color:var(--text-muted)}.footer-left{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.01em}.footer-left .prompt-sign{color:var(--syntax);margin-right:.15rem}.footer-link{color:var(--accent);text-decoration:none}.footer-link:hover{text-decoration:underline}@media(max-width:600px){.footer-content{justify-content:center;text-align:center}}.projects-page{max-width:640px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.page-head{margin-bottom:2.5rem}.page-prompt{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);margin:0 0 .6rem;letter-spacing:.02em}.page-prompt .prompt-sign{color:var(--syntax);margin-right:.15rem}.page-title{font-size:2.2rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}.page-subtitle{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin:.7rem 0 0;max-width:32rem}.project-card{padding:1.85rem 0;border-top:1px solid var(--border)}.project-card:last-child{border-bottom:1px solid var(--border)}.project-card-head{display:flex;align-items:center;gap:.85rem}.project-no{font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--syntax);flex-shrink:0}.project-card-name{flex:1;min-width:0;font-size:1.3rem;font-weight:600;letter-spacing:-.01em;margin:0}.projects-page .entry-points{margin:1rem 0 0;padding-left:1.05rem;list-style:none}.projects-page .entry-points li{position:relative;font-size:.92rem;color:var(--text-secondary);line-height:1.65;margin-top:.5rem}.projects-page .entry-points li:before{content:"▹";position:absolute;left:-1.05rem;color:var(--syntax)}.project-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:1.4rem}.projects-page .project-stack{display:flex;flex-wrap:wrap;gap:.4rem}.projects-page .stack-chip{font-family:var(--font-mono);font-size:.74rem;color:var(--text-muted);background:var(--bg-secondary);border-radius:5px;padding:.24rem .55rem}.projects-page .project-link{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.8rem;color:var(--text-secondary);text-decoration:none;border:1px solid var(--border-strong);border-radius:6px;padding:.45rem .85rem;flex-shrink:0;transition:color .18s ease,border-color .18s ease}.projects-page .project-link svg{width:15px;height:15px}.projects-page .project-link:hover{color:var(--accent);border-color:var(--accent)}@media(max-width:600px){.page-title{font-size:1.8rem}.project-card-head{flex-wrap:wrap}.project-card-name{font-size:1.15rem}.projects-page .project-link{margin-left:auto}.project-card-foot{align-items:flex-start}}.blog-page{max-width:640px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.blog-page .page-head{margin-bottom:2.5rem}.blog-page .page-prompt{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);margin:0 0 .6rem;letter-spacing:.02em}.blog-page .page-prompt .prompt-sign{color:var(--syntax);margin-right:.15rem}.blog-page .page-title{font-size:2.2rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}.blog-empty{padding:1.85rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.blog-empty-line{margin:0}.blog-comment{font-family:var(--font-mono);font-size:.95rem;color:var(--syntax)}.blog-empty-sub{font-size:.95rem;color:var(--text-secondary);line-height:1.7;margin:.85rem 0 0;max-width:32rem}.blog-back{display:inline-block;margin-top:1.75rem;font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);text-decoration:none;transition:color .18s ease}.blog-back .prompt-sign{color:var(--syntax);margin-right:.3rem}.blog-back:hover{color:var(--accent)}@media(max-width:600px){.blog-page .page-title{font-size:1.8rem}}.not-found{max-width:560px;margin:0 auto;padding:3.5rem 1.5rem 4rem}.terminal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 16px 40px var(--shadow)}.terminal__bar{display:flex;align-items:center;gap:.45rem;padding:.65rem 1rem;border-bottom:1px solid var(--border)}.terminal__dot{width:11px;height:11px;border-radius:50%}.terminal__dot.red{background:#ff5f57}.terminal__dot.yellow{background:#febc2e}.terminal__dot.green{background:#28c840}.terminal__title{margin-left:.6rem;font-family:var(--font-mono);font-size:.76rem;color:var(--text-muted)}.terminal__body{padding:1.5rem 1.6rem 1.75rem;font-family:var(--font-mono);font-size:.86rem;line-height:1.85}.term-line{margin:0;color:var(--text-primary)}.term-spaced{margin-top:1.1rem}.term-prompt{color:var(--syntax);margin-right:.5rem}.term-path{color:var(--text-primary);font-weight:500}.term-out{margin:.15rem 0 0;color:var(--text-muted)}.term-list{list-style:none;padding:0;margin:.35rem 0 0}.term-list li{display:flex;align-items:center;gap:.55rem}.term-arrow{color:var(--syntax)}.term-link{color:var(--accent);text-decoration:none;transition:opacity .18s ease}.term-link:hover{text-decoration:underline;opacity:.8}.term-hint{color:var(--text-muted);opacity:.7}.term-cursor{display:inline-block;width:.55ch;height:.95em;vertical-align:-.08em;background:var(--syntax);animation:term-blink 1.1s steps(1) infinite}@keyframes term-blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.term-cursor{animation:none}}@media(max-width:600px){.terminal__body{padding:1.25rem;font-size:.8rem}}
