:root{--primary:#0f172a;--accent:#2563eb;--bg:#ffffff;--bg-alt:#f8fafc;--bg-card:#ffffff;--text-title:#0f172a;--text-body:#334155;--text-muted:#64748b;--text-light:#94a3b8;--border:#e2e8f0;--radius:12px;--shadow:0 1px 3px 0 rgba(0,0,0,0.06)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body,html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text-body);line-height:1.7;-webkit-font-smoothing:antialiased}.container{max-width:960px;margin:0 auto;padding:0 24px}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:56px}.nav-brand{font-size:16px;font-weight:700;color:var(--text-title);text-decoration:none}.nav-links{display:flex;gap:24px}.nav-links a{font-size:14px;color:var(--text-muted);text-decoration:none;font-weight:500;transition:color .2s}.nav-links a:hover{color:var(--accent)}.hero{padding:80px 0 64px}.profile-card{display:flex;gap:40px;align-items:flex-start}.avatar{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#7c3aed);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:42px;font-weight:700;letter-spacing:-2px;box-shadow:0 4px 20px rgba(37,99,235,.25)}.profile-info h1{font-size:36px;font-weight:800;color:var(--text-title);margin-bottom:8px;letter-spacing:-.02em}.profile-title{font-size:16px;color:var(--accent);font-weight:600;margin-bottom:12px}.profile-desc{font-size:15px;color:var(--text-muted);margin-bottom:20px;line-height:1.8}.profile-contact{display:flex;flex-wrap:wrap;gap:20px}.profile-contact a,.profile-contact span{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text-muted);text-decoration:none;transition:color .2s}.profile-contact a:hover{color:var(--accent)}.section{padding:48px 0;border-top:1px solid var(--border)}.section-title{font-size:22px;font-weight:700;color:var(--text-title);margin-bottom:28px;display:flex;align-items:center;gap:10px}.section-title:before{content:"";width:4px;height:22px;background:var(--accent);border-radius:2px}.summary{background:var(--bg-alt);border-radius:var(--radius);padding:28px;font-size:15px;color:var(--text-body);line-height:1.9}.timeline,.timeline-item{position:relative}.timeline-item{padding-left:28px;padding-bottom:32px;border-left:2px solid var(--border)}.timeline-item:last-child{border-left-color:transparent;padding-bottom:0}.timeline-dot{position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 0 0 2px var(--border)}.timeline-item h3{font-size:16px;font-weight:700;color:var(--text-title);margin-bottom:4px}.timeline-item .company{font-size:14px;color:var(--accent);font-weight:500;margin-bottom:4px}.timeline-item .period{font-size:13px;color:var(--text-light);margin-bottom:8px}.timeline-item ul{list-style:none;padding:0}.timeline-item ul li{font-size:14px;color:var(--text-body);padding:3px 0 3px 16px;position:relative}.timeline-item ul li:before{content:"·";position:absolute;left:0;color:var(--accent);font-weight:700}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:24px;gap:24px}.skill-group h4{font-size:14px;font-weight:600;color:var(--text-title);margin-bottom:12px}.skill-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{padding:4px 12px;background:var(--bg-alt);border:1px solid var(--border);border-radius:999px;font-size:13px;color:var(--text-body)}.projects-grid{display:grid;grid-gap:20px;gap:20px}.project-card{border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:all .2s}.project-card:hover{border-color:var(--accent);box-shadow:0 4px 20px rgba(0,0,0,.06)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.project-card h3{font-size:16px;font-weight:700;color:var(--text-title)}.project-tag{font-size:11px;padding:2px 10px;background:var(--accent);color:#fff;border-radius:999px;font-weight:500}.project-card p{font-size:14px;color:var(--text-muted);margin-bottom:12px;line-height:1.7}.project-tech{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.project-tech span{font-size:12px;padding:2px 8px;background:var(--bg-alt);color:var(--text-muted);border-radius:4px}.project-link{font-size:13px;color:var(--accent);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:4px}.project-link:hover{text-decoration:underline}.blog-list{display:grid;grid-gap:12px;gap:12px}.blog-item{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;transition:all .2s}.blog-item:hover{border-color:var(--accent);background:var(--bg-alt);transform:translateX(4px)}.blog-title{font-size:15px;font-weight:600;color:var(--text-title)}.blog-date{flex-shrink:0;margin-left:20px}.blog-date,.footer{font-size:13px;color:var(--text-light)}.footer{margin-top:64px;padding:32px 0;border-top:1px solid var(--border);text-align:center}.footer-links{display:flex;justify-content:center;gap:24px;margin-bottom:12px}.footer-links a{color:var(--text-muted);text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--accent)}@media (max-width:640px){.profile-card{flex-direction:column;gap:20px;text-align:center}.avatar{margin:0 auto}.profile-contact{justify-content:center}.skills-grid{grid-template-columns:1fr}.blog-item{flex-direction:column;align-items:flex-start;gap:4px}.blog-date{margin-left:0}}