:root{--bg: #ffffff;--bg-alt: #f5f6f8;--text: #1f2329;--text-2: #646a73;--accent: #3370ff;--border: #e5e6eb;--radius: 8px;--shadow: 0 1px 4px rgba(0, 0, 0, .06);--shadow-hover: 0 4px 12px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:64px}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}img{max-width:100%;display:block}.site-nav{position:sticky;top:0;z-index:100;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.nav-inner{max-width:960px;margin:0 auto;height:56px;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:600;font-size:16px;color:var(--text)}.nav-links{display:flex;gap:20px}.nav-links a{font-size:14px;color:var(--text-2)}.nav-links a:hover{color:var(--accent)}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 20px 44px}.avatar{width:88px;height:88px;border-radius:50%;overflow:hidden;margin:0 auto 14px;background:linear-gradient(135deg,#e8efff,#f5f8ff);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-letter{font-size:32px;font-weight:600;line-height:1;color:var(--accent)}.hero-name{font-size:28px;font-weight:700}.hero-title{font-size:16px;color:var(--accent);margin-top:6px;font-weight:500}.hero-bio{font-size:15px;color:var(--text-2);margin-top:12px;max-width:520px}.hero-socials{margin-top:24px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.hero-socials a{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text-2);border:1px solid var(--border);border-radius:20px;padding:6px 14px;transition:color .15s,border-color .15s}.hero-socials a:hover{color:var(--accent);border-color:var(--accent)}.hero-socials svg{width:16px;height:16px}.section{padding:64px 20px}.section-alt{background:var(--bg-alt)}.section-inner{max-width:960px;margin:0 auto}.section-title{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px;margin-bottom:28px}.section-title .bar{width:4px;height:20px;background:var(--accent);border-radius:2px}.tech-groups{display:flex;flex-direction:column;gap:20px}.tech-cat{font-size:15px;font-weight:600;margin-bottom:10px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:14px;background:var(--bg-alt);border:1px solid var(--border);border-radius:16px;padding:4px 12px;color:var(--text-2)}.chips.small .chip{font-size:12px;padding:2px 10px}.timeline{position:relative;padding-left:24px;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:24px}.timeline-item{position:relative}.timeline-dot{position:absolute;left:-31px;top:7px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #dbe5ff}.timeline-content{min-width:0}.timeline-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.exp-company{font-size:16px;font-weight:600}.exp-period{font-size:12px;color:var(--text-2);white-space:nowrap}.exp-role{font-size:14px;color:var(--text);margin-top:4px}.exp-desc{font-size:14px;color:var(--text-2);margin-top:6px;white-space:pre-line}.featured-list{display:flex;flex-direction:column;gap:20px;margin-bottom:20px}.featured-list .card{margin-bottom:0}.masonry{column-count:1;column-gap:20px}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;break-inside:avoid;overflow:hidden;transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.card-cover{height:160px;background:linear-gradient(135deg,#e8efff,#f5f8ff);display:flex;align-items:center;justify-content:center}.card-cover img{width:100%;height:100%;object-fit:cover}.cover-letter{font-size:40px;font-weight:700;color:#3370ff59}.card-body{padding:16px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.card-title{font-size:16px;font-weight:600}.card-date{font-size:12px;color:var(--text-2);white-space:nowrap}.card-summary{font-size:14px;color:var(--text-2);margin-top:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card .chips{margin-top:12px}.card-links{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}.btn-outline{font-size:13px;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:4px 12px;transition:background .15s,color .15s}.btn-outline:hover{background:var(--accent);color:#fff}@media (min-width: 640px){.masonry{column-count:2}.card.featured{display:flex}.card.featured .card-cover{width:280px;height:auto;min-height:180px;flex-shrink:0}.card.featured .card-body{flex:1}}@media (min-width: 1024px){.masonry{column-count:3}}.contact-list{display:flex;flex-direction:column;gap:14px}.contact-item{display:flex;align-items:center;gap:12px;font-size:15px}.contact-item svg{width:18px;height:18px;color:var(--accent);flex-shrink:0}.contact-item .c-label{color:var(--text-2);font-size:14px;min-width:56px}.contact-item a{color:var(--text);word-break:break-all}.contact-item a:hover{color:var(--accent)}.site-footer{background:var(--bg-alt);border-top:1px solid var(--border);padding:24px 20px}.footer-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--text-2)}.footer-inner a{color:var(--text-2)}.footer-inner a:hover{color:var(--accent)}.admin-link{margin-left:auto;opacity:.6}@media (max-width: 639px){.nav-links{gap:12px}.nav-links a{font-size:13px}.section{padding:48px 16px}}
