body,html{height:100%;padding:0;margin:0}body{font-family:Helvetica Neue,Helvetica,PingFang SC,Microsoft YaHei,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;background:#eef2fb}#app{min-height:100%}.resume[data-v-39c6ecba]{display:flex;width:100%;max-width:1120px;min-height:calc(100vh - 16px);margin:8px auto;border-radius:18px;overflow:hidden;box-shadow:0 18px 50px rgba(40,60,110,.16);background:#fff}.sidebar[data-v-39c6ecba]{flex:0 0 320px;padding:32px 26px;color:#fff;background:linear-gradient(165deg,#3a6df0,#5b8def 55%,#6a5af9);display:flex;flex-direction:column;text-align:center}.avatar-wrap[data-v-39c6ecba]{margin:6px auto 0}.avatar[data-v-39c6ecba]{width:112px;height:112px;border-radius:50%;border:4px solid hsla(0,0%,100%,.55);-o-object-fit:cover;object-fit:cover;box-shadow:0 8px 20px rgba(0,0,0,.18)}.name[data-v-39c6ecba]{font-size:23px;font-weight:700;margin:16px 0 4px;letter-spacing:1px}.role[data-v-39c6ecba]{font-size:13px;opacity:.85;margin:0 0 22px}.contact[data-v-39c6ecba]{text-align:left;margin:0 auto;width:100%;max-width:250px}.contact-item[data-v-39c6ecba]{display:flex;align-items:center;gap:11px;margin:11px 0;font-size:14px}.ci-icon[data-v-39c6ecba]{flex:0 0 30px;height:30px;border-radius:50%;background:hsla(0,0%,100%,.18);display:flex;align-items:center;justify-content:center}.summary[data-v-39c6ecba]{text-align:left;background:hsla(0,0%,100%,.14);border-radius:12px;padding:16px 16px 18px;margin-top:22px}.block-title[data-v-39c6ecba]{font-weight:600;font-size:14px;margin-bottom:10px;padding-left:10px;border-left:3px solid #fff}.summary-text[data-v-39c6ecba]{font-size:13px;line-height:1.75;margin:0;color:hsla(0,0%,100%,.92)}.download-btn[data-v-39c6ecba]{display:block;text-align:center;margin-top:20px;background:#fff;color:#3a6df0;padding:11px;border-radius:11px;font-weight:600;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.download-btn[data-v-39c6ecba]:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.18)}.beian[data-v-39c6ecba]{margin-top:18px;font-size:11px}.beian a[data-v-39c6ecba]{color:hsla(0,0%,100%,.75);text-decoration:none}.beian a[data-v-39c6ecba]:hover{color:#fff}.content[data-v-39c6ecba]{flex:1;padding:0 38px 34px;background:#fff;overflow-y:auto;max-height:calc(100vh - 16px)}.section-nav[data-v-39c6ecba]{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;gap:8px;margin:0 -38px 18px;padding:14px 38px;background:#fff;border-bottom:1px solid #eef1f8}.nav-item[data-v-39c6ecba]{border:1px solid #dbe6ff;background:#eef3ff;color:#3a6df0;padding:7px 16px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.nav-item.active[data-v-39c6ecba],.nav-item[data-v-39c6ecba]:hover{background:#3a6df0;color:#fff;border-color:#3a6df0}.nav-item.active[data-v-39c6ecba]{box-shadow:0 4px 12px rgba(58,109,240,.25)}.empty-hint[data-v-39c6ecba]{color:#9aa6c4;text-align:center;padding:40px 0}.module-section[data-v-39c6ecba]{margin-bottom:14px;scroll-margin-top:64px}.section-head[data-v-39c6ecba]{display:flex;align-items:center;justify-content:space-between}.section-toggle[data-v-39c6ecba]{cursor:pointer;color:#9aa6c4;font-size:18px;transition:transform .25s ease,color .15s ease}.section-toggle[data-v-39c6ecba]:hover{color:#3a6df0}.section-toggle.is-collapsed[data-v-39c6ecba]{transform:rotate(180deg)}.section-title[data-v-39c6ecba]{font-size:20px;font-weight:700;color:#1f2d50;margin:0 0 24px;padding-left:13px;border-left:4px solid #3a6df0}.collapsible[data-v-39c6ecba]{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s ease;transition:grid-template-rows .3s ease,-ms-grid-rows .3s ease}.collapsible.is-collapsed[data-v-39c6ecba]{grid-template-rows:0fr}.collapsible-inner[data-v-39c6ecba]{overflow:hidden;min-height:0}.timeline[data-v-39c6ecba]{position:relative;padding-left:30px}.timeline[data-v-39c6ecba]:before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:2px;background:#e3e8f2}.timeline-item[data-v-39c6ecba]{position:relative;margin-bottom:22px}.timeline-dot[data-v-39c6ecba]{position:absolute;left:-30px;top:2px;width:22px;height:22px;border-radius:50%;background:#3a6df0;color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 4px #eaf0ff}.project-card[data-v-39c6ecba]{background:#f8faff;border:1px solid #eef1f8;border-radius:13px;padding:16px 18px;transition:box-shadow .18s ease,transform .18s ease}.project-card[data-v-39c6ecba]:hover{box-shadow:0 8px 22px rgba(58,109,240,.12);transform:translateY(-2px)}.project-head[data-v-39c6ecba]{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-title[data-v-39c6ecba]{font-size:16px;font-weight:600;color:#1f2d50;margin:0}.project-amount[data-v-39c6ecba]{flex:none;background:#eaf0ff;color:#3a6df0;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600}.company-subtitle[data-v-39c6ecba]{color:#6b7699;font-size:13px;margin:8px 0 0}.project-desc[data-v-39c6ecba]{color:#4a5578;line-height:1.75;font-size:14px;margin:12px 0 0;white-space:pre-line}.project-img[data-v-39c6ecba]{max-width:170px;border-radius:9px;margin-top:12px;cursor:pointer;border:1px solid #eef1f8;display:block}.project-website[data-v-39c6ecba]{margin-top:12px;font-size:13px;color:#4a5578}.doc-tag[data-v-39c6ecba],.project-website a[data-v-39c6ecba]{color:#3a6df0}.project-website a[data-v-39c6ecba]{text-decoration:none}.project-website a[data-v-39c6ecba]:hover{text-decoration:underline}.doc-links[data-v-39c6ecba]{display:flex;flex-wrap:wrap;margin-top:12px}.doc-tag[data-v-39c6ecba]{display:inline-flex;align-items:center;gap:4px;background:#eef3ff;border:1px solid #dbe6ff;padding:5px 12px;border-radius:9px;font-size:13px;text-decoration:none;margin:0 8px 8px 0;transition:all .15s ease}.doc-tag[data-v-39c6ecba]:hover{background:#3a6df0;border-color:#3a6df0;color:#fff}.skills[data-v-39c6ecba]{display:flex;flex-direction:column;gap:18px}.skill-group[data-v-39c6ecba]{background:#f8faff;border:1px solid #eef1f8;border-radius:13px;padding:16px 18px}.skill-cat[data-v-39c6ecba]{font-size:15px;font-weight:600;color:#1f2d50;margin-bottom:12px;padding-left:11px;border-left:3px solid #3a6df0}.skill-tags[data-v-39c6ecba]{display:flex;flex-wrap:wrap;gap:10px}.skill-tag[data-v-39c6ecba]{background:#eaf0ff;color:#3a6df0;border:1px solid #dbe6ff;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;transition:all .15s ease}.skill-tag[data-v-39c6ecba]:hover{background:#3a6df0;color:#fff}@media (max-width:860px){.resume[data-v-39c6ecba]{flex-direction:column;margin:12px;min-height:auto}.sidebar[data-v-39c6ecba]{flex:none}.content[data-v-39c6ecba]{max-height:none;padding:0 20px 26px}.section-nav[data-v-39c6ecba]{margin:0 -20px 16px;padding:14px 20px}}