pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.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:#f7f7f5;--surface:#fff;--surface-muted:#f0f1ed;--text:#1f2933;--text-muted:#52606d;--line:#d9dfd4;--accent:#1b5e4b;--accent-soft:#e5f0ec;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--shadow:0 12px 28px #1f29330f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top, #fff 0%, var(--bg) 60%);color:var(--text);margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}p{color:var(--text-muted);margin:0}h1,h2,h3{color:var(--text);margin:0}ul{margin:0;padding:0;list-style:none}#root{min-height:100vh}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1;position:relative}.container{width:min(1180px,100% - 48px);margin:0 auto}.site-header{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f7f7f5e6;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:20px;min-height:72px;display:flex}.brand{letter-spacing:.01em;font-weight:700}.menu-list{color:var(--text-muted);gap:20px;font-size:.95rem;display:flex}.menu-list a{border-bottom:2px solid #0000;padding:6px 2px;transition:border-color .2s}.menu-list a:hover,.menu-list a.active{border-color:var(--accent);color:var(--text)}.menu-toggle{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 14px;display:none}.mobile-menu{border-top:1px solid var(--line);background:var(--surface)}.mobile-menu-list{gap:6px;padding:14px 0 16px;display:grid}.mobile-menu-list a{color:var(--text-muted);border-bottom:1px solid #0000;padding:10px 4px;display:block}.mobile-menu-list a.active,.mobile-menu-list a.active{color:var(--text);border-color:var(--accent)}.home-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:18px;padding:44px 0 72px;display:grid}.main-content{gap:28px;display:grid}.side-column{align-self:start;gap:16px;display:grid;position:sticky;top:88px}.page-content{padding:44px 0 72px}.loading-overlay{z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;display:grid;position:absolute;inset:0}.loading-spinner{border:3px solid #1b5e4b38;border-top-color:var(--accent);border-radius:999px;width:28px;height:28px;animation:.95s linear infinite spin-soft}@keyframes spin-soft{to{transform:rotate(360deg)}}.detail-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:18px;display:grid}.hero-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:42px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:.78rem;font-weight:700}.hero-section h1{margin-top:10px;font-size:clamp(2rem,6vw,3rem);line-height:1.1}.hero-intro{max-width:68ch;margin-top:16px;font-size:1.08rem}.hero-meta{color:var(--text-muted);flex-wrap:wrap;gap:16px;margin-top:24px;display:flex}.content-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:34px}.section-title{gap:8px;margin-bottom:22px;display:grid}.section-title h2{font-size:1.5rem}.about-grid{grid-template-columns:1fr;gap:16px;display:grid}.about-text{line-height:1.8}.skill-box{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-muted);width:100%;padding:18px}.skill-box h3{margin-bottom:14px;font-size:1.02rem}.github-activity-grid{gap:12px;display:grid}.github-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:16px}.github-card h3{margin-bottom:10px;font-size:1rem}.github-card-stack{gap:10px;display:grid}.github-image-link{display:block}.github-image-link img{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;height:auto}.resume-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.resume-card{border:1px solid var(--line);border-radius:var(--radius-sm);gap:6px;padding:16px;display:grid}.resume-card p{font-size:.88rem}.resume-card strong{font-size:1.1rem}.resume-link{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:8px;margin-top:16px;padding:10px 14px;font-weight:600;display:inline-flex}.resume-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.detail-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:16px}.detail-card h3{margin-bottom:10px;font-size:1rem}.detail-card-wide{grid-column:1/-1}.detail-list{gap:10px;display:grid}.detail-list strong{margin-bottom:4px;display:block}.experience-list{gap:12px;display:grid}.experience-card{border:1px solid var(--line);border-radius:var(--radius-sm);gap:12px;padding:18px;display:grid}.experience-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.experience-header h3{font-size:1.1rem}.experience-header span{color:var(--text-muted);font-size:.9rem}.bullet-list{color:var(--text-muted);gap:8px;padding-left:18px;list-style:outside;display:grid}.bullet-list li{padding-left:2px}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.tag-list li{background:var(--surface-muted);border:1px solid var(--line);color:var(--text-muted);border-radius:999px;padding:6px 10px;font-size:.82rem}.latest-posts{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);gap:12px;padding:16px;display:grid}.latest-posts h3{font-size:1.05rem}.latest-post-list{gap:10px;display:grid}.latest-post-list a{border:1px solid var(--line);border-radius:var(--radius-sm);gap:2px;padding:10px;display:grid}.latest-post-list span{color:var(--text-muted);font-size:.85rem}.blog-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.blog-toolbar input{border:1px solid var(--line);width:min(460px,100%);font:inherit;border-radius:10px;padding:10px 12px}.blog-toolbar span{color:var(--text-muted);font-size:.9rem}.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.blog-grid-single{grid-template-columns:1fr}.blog-card{border:1px solid var(--line);border-radius:var(--radius-sm);gap:12px;padding:18px;display:grid}.blog-card-meta{color:var(--text-muted);justify-content:space-between;font-size:.86rem;display:flex}.blog-card h3{font-size:1.1rem}.post-author{color:var(--text-muted);justify-self:end;font-size:.85rem}.read-more-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;justify-self:start;padding:8px 12px}.pagination{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.pagination button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:8px 14px}.pagination button:disabled{opacity:.5;cursor:not-allowed}.blog-detail{gap:12px;display:grid}.blog-reader-content{gap:10px;display:grid}.blog-reader-content h1,.blog-reader-content h2,.blog-reader-content h3,.blog-reader-content h4{margin-top:8px}.blog-reader-content ul,.blog-reader-content ol{color:var(--text-muted);padding-left:22px}.blog-reader-content ul{list-style:outside}.blog-reader-content ol{list-style:decimal}.blog-reader-content li{margin:6px 0}.blog-reader-content blockquote{border-left:4px solid var(--accent);background:var(--surface-muted);color:var(--text-muted);border-radius:8px;margin:6px 0;padding:10px 14px}.blog-reader-content pre{border-radius:var(--radius-sm);border:1px solid var(--line);margin:6px 0;padding:14px;overflow-x:auto}.blog-reader-content code{font-family:JetBrains Mono,Consolas,monospace;font-size:.9rem}.blog-reader-content p code,.blog-reader-content li code{background:var(--surface-muted);border:1px solid var(--line);border-radius:6px;padding:2px 6px}.blog-reader-content table{border-collapse:collapse;border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;overflow:hidden}.blog-reader-content th,.blog-reader-content td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;padding:10px}.blog-reader-content th:last-child,.blog-reader-content td:last-child{border-right:none}.blog-reader-content tr:last-child td{border-bottom:none}.blog-image{gap:8px;margin:8px 0;display:grid}.blog-image img{border-radius:var(--radius-sm);border:1px solid var(--line);width:auto;max-width:100%;height:auto;max-height:min(68vh,640px);margin:0 auto;display:block}.blog-image figcaption{color:var(--text-muted);font-size:.84rem}.back-link{width:fit-content;color:var(--accent);align-items:center;font-weight:600;display:inline-flex}.blog-not-found{justify-items:start;gap:12px;display:grid}.empty-state{border-radius:var(--radius-sm);border:1px dashed var(--line);padding:14px}.site-footer{border-top:1px solid var(--line);background:#ffffffa6;margin-top:30px}.footer-inner{min-height:72px;color:var(--text-muted);justify-content:space-between;align-items:center;gap:16px;font-size:.92rem;display:flex}.footer-links{flex-wrap:wrap;gap:12px;display:flex}@media (width<=1024px){.home-layout,.detail-layout{grid-template-columns:1fr}.side-column,.latest-posts{position:static}}@media (width<=920px){.desktop-nav{display:none}.menu-toggle{display:inline-flex}.about-grid,.resume-grid,.resume-details-grid,.blog-grid,.blog-toolbar{grid-template-columns:1fr}.blog-toolbar{display:grid}.footer-inner{flex-direction:column;justify-content:center;align-items:flex-start;min-height:88px;padding:12px 0}}@media (width<=640px){.container{width:min(1180px,100% - 28px)}.hero-section,.content-section{padding:24px}}
