/* =====================================================
  M1 — HERO / 首屏与个人信息
===================================================== */
.hero-section { position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(circle at 97% 75%,#eaf2ff 0,rgba(238,245,255,.32) 37%,transparent 59%),linear-gradient(115deg,#ffffff 11%,#f7faff 100%); }
.hero-section__inner { display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;position:relative;gap:42px;padding-top:64px;padding-bottom:0;min-height:565px; }
.hero__copy { align-self:center;padding-bottom:64px;position:relative;z-index:2;min-width:0; }
.hero__eyebrow { display:flex;gap:8px;align-items:center;color:var(--blue);font-size:11px;font-weight:850;letter-spacing:1.45px;text-transform:uppercase; }
.hero__eyebrow::before { content:'';width:18px;height:2px;background:var(--blue);border-radius:3px; }
.hero__name { font-size:clamp(44px,5vw,64px);line-height:1.08;letter-spacing:-2.1px;margin:21px 0 17px;font-weight:870; }
.hero__title { margin:0;font-size:clamp(20px,2.25vw,28px);line-height:1.49;font-weight:820;letter-spacing:-.75px;max-width:600px; }
.hero__subtitle { font-size:15px;line-height:1.75;font-weight:700;color:#33496f;margin:9px 0 0; }
.hero__intro { font-size:13px;line-height:1.95;color:var(--muted);max-width:530px;margin:19px 0 0; }
.hero__pills { display:flex;flex-wrap:wrap;gap:8px;margin-top:24px; }
.hero__pill { display:flex;align-items:center;gap:6px;border:1px solid #e2e9f6;border-radius:20px;background:rgba(255,255,255,.93);color:#536b92;box-shadow:0 3px 12px rgba(20,49,105,.022);padding:7px 10px;font-size:10px;font-weight:800;white-space:nowrap; }
.hero__pill .icon { color:var(--blue);width:13px;height:13px; }
.hero__actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:25px; }
.hero__visual { position:relative;align-self:stretch;min-height:500px;min-width:0;overflow:visible;isolation:isolate; }
.hero__arch { position:absolute;bottom:0;left:6%;width:92%;height:82%;border-radius:48% 48% 0 0;background:radial-gradient(circle at 38% 75%,#dce9ff 0,#ecf3ff 67%,#f3f7ff 100%);border:1px solid #e2ebff; }
.hero__ring { position:absolute;z-index:0;bottom:-240px;left:-120px;width:630px;height:630px;border:1px solid #e3edfc;border-radius:50%;pointer-events:none; }
.hero__dots { position:absolute;right:-9px;top:90px;width:100px;height:116px;opacity:.5;background-image:radial-gradient(#9fbdff 1px,transparent 1px);background-size:9px 9px; }
.hero__portrait { position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:calc(100% - 20px);max-width:430px;height:auto;max-height:calc(100% - 24px);object-fit:contain;object-position:center bottom;z-index:2;filter:drop-shadow(0 10px 18px rgba(50,82,140,.06));-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%); }
.hero__floating { position:absolute;z-index:3;bottom:20px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);display:flex;align-items:center;gap:10px;padding:13px 15px;border:1px solid #e0e9f7;border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 10px 24px rgba(27,67,139,.08);backdrop-filter:blur(12px); }
.hero__floating-icon { display:grid;place-items:center;width:36px;height:36px;color:var(--blue);background:#ecf3ff;border-radius:10px; }
.hero__floating strong { display:block;font-size:13px;font-weight:870;line-height:1.2; }
.hero__floating span { display:block;font-size:10px;color:var(--muted);margin-top:4px; }
.hero__floating > .hero__floating-icon { display:grid;flex:none;margin-top:0;color:var(--blue); }
.hero__contact-line { display:flex;gap:8px 15px;flex-wrap:wrap;margin-top:18px;color:#667d9e;font-size:11px;line-height:1.65; }
.hero__contact-line span { display:inline-flex;gap:5px;align-items:center; }
.hero__contact-line .icon { width:12px;height:12px; }
/* =====================================================
  M2 — PROFILE / 个人概述
===================================================== */
.profile-grid { display:grid;grid-template-columns: .7fr 1.3fr;gap:8%;align-items:start; }
.profile-title { font-size:clamp(26px,3vw,35px);line-height:1.35;letter-spacing:-.9px;font-weight:820;margin:16px 0 0; }
.profile-body { font-size:14px;line-height:2.05;color:var(--navy-light);margin:26px 0 0; }
.profile-body strong { font-weight:800;color:var(--blue); }
.profile-facts { display:grid;grid-template-columns: repeat(3,1fr);margin-top:28px;border-top:1px solid var(--line);padding-top:23px;gap:14px; }
.profile-fact { display:flex;align-items:start;gap:11px;border-right:1px solid var(--line);min-width:0; }
.profile-fact:last-child { border-right:0; }
.profile-fact .icon { color:var(--blue);margin-top:2px; }
.profile-fact__label { display:block;color:#8796b0;font-size:10px;margin-bottom:5px; }
.profile-fact strong { font-size:11.5px;font-weight:780;line-height:1.6; }
/* =====================================================
  M3 — RESULTS / 量化成果
===================================================== */
.results-section { background:var(--surface); }
.results-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px; }
.results-intro { display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px; }
.results-intro p { max-width:360px;color:var(--muted);line-height:1.75;font-size:12px;margin:0; }
/* =====================================================
  M4 — PROJECTS / 代表项目
===================================================== */
.projects-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px; }
.section-head__count { display:inline-flex;align-items:center;gap:8px;color:#6b80a1;font-weight:700;font-size:11px;margin-bottom:4px; }
.section-head__count b { color:var(--blue);font-size:13px; }
/* =====================================================
  M5 — EXPERIENCE / 工作经历
===================================================== */
.experience-section { background:var(--surface); }
.timeline { position:relative;display:flex;flex-direction:column;margin-top:12px; }
.timeline::before { content:'';position:absolute;top:18px;bottom:37px;left:13px;width:1px;background:#d4e0f8; }
.timeline-item { display:grid;grid-template-columns: 34px 163px 220px 1fr;gap:15px;align-items:start;padding:23px 0 26px;border-bottom:1px solid #e8edf6;position:relative; }
.timeline-item:last-child { border-bottom:0;padding-bottom:10px; }
.timeline-item__dot { position:relative;z-index:1;width:9px;height:9px;margin:10px 0 0 9px;background:var(--blue);border:3px solid var(--surface);border-radius:50%;box-sizing:content-box; }
.timeline-item__date { margin-top:7px;color:#5470a3;font-size:12px;font-weight:760;line-height:1.6;white-space:nowrap; }
.timeline-item h3 { margin:2px 0 7px;font-size:15px;font-weight:820;line-height:1.5; }
.timeline-item__company { color:#617797;font-size:11px;line-height:1.7; }
.timeline-item__bullets { color:#425880;font-size:12px;line-height:1.85; }
.timeline-item__bullets p { margin:0 0 4px; }
.timeline-item__achievement { color:#2652b4;font-weight:730; }
/* =====================================================
  M6 — SKILLS / 核心能力与技术栈
===================================================== */
.skills-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0; }
.skill-panel { padding:4px 24px 3px; border-right:1px solid var(--line);min-width:0; }
.skill-panel:first-child { padding-left:0; }.skill-panel:last-child { border-right:0;padding-right:0; }
.skill-panel__heading { display:flex;align-items:center;gap:12px;margin-bottom:20px; }
.skill-panel__icon { display:grid;place-items:center;flex:none;width:37px;height:37px;border-radius:11px;color:var(--blue);background:#eef4ff; }
.skill-panel h3 { font-size:13px;font-weight:820;margin:0;white-space:nowrap; }
.skill-panel .tag { margin-bottom:2px; }
/* =====================================================
  M7 — CONTACT / FOOTER / 页脚
===================================================== */
.footer-contact { position:relative;background:#1c4ee7;color:white;overflow:hidden;padding:72px 0 66px; }
.footer-contact::before { content:'';position:absolute;width:480px;height:480px;right:-90px;top:-225px;border:1px solid rgba(255,255,255,.15);border-radius:50%;box-shadow:0 0 0 86px rgba(255,255,255,.045),0 0 0 172px rgba(255,255,255,.027); }
.footer-contact::after { content:'';position:absolute;right:5%;bottom:16px;width:110px;height:100px;background-image:radial-gradient(rgba(255,255,255,.23) 1px,transparent 1px);background-size:10px 10px;opacity:.7; }
.footer-contact__content { position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center; }
.footer-contact .section-kicker { color:#cbd8ff; }.footer-contact .section-kicker::before { background:#b5c9ff; }
.footer-contact h2 { font-size:clamp(28px,3.6vw,43px);line-height:1.27;font-weight:860;letter-spacing:-1.25px;margin:16px 0 14px; }
.footer-contact__lead { color:#dce6ff;font-size:13px;line-height:1.9;max-width:490px;margin:0; }
.footer-contact__btn { margin-top:22px;color:var(--blue);background:white;box-shadow:0 10px 18px rgba(6,31,130,.14); }
.footer-contact__btn:hover { background:#f6f8ff; }
.contact-methods { display:grid;gap:12px; }
.contact-method { display:flex;gap:14px;align-items:center;border:1px solid rgba(255,255,255,.23);border-radius:14px;padding:14px 16px;background:rgba(255,255,255,.1);backdrop-filter:blur(5px); }
.contact-method__icon { display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.14); }
.contact-method__label { display:block;color:#cbd8ff;font-size:10px;margin-bottom:5px; }
.contact-method strong { display:block;color:white;font-size:13px;letter-spacing:.2px;overflow-wrap:anywhere; }
.contact-method small { display:block;font-size:9px;color:#d2dfff;margin-top:4px; }
.site-footer { background:#102653;padding:25px 0;color:#ccdaff; }
.site-footer__row { display:flex;justify-content:space-between;gap:20px;align-items:center; }
.site-footer__brand { display:flex;align-items:center;gap:16px; }
.site-footer__brand .brand { font-size:18px; }
.site-footer__description { font-size:10px;color:#a5b7de; }
.site-footer__meta { display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end;font-size:10px;color:#a9bde6; }
.site-footer__meta span + span::before { content:'·';margin-right:16px;color:#7390ca; }
