*{box-sizing:border-box}html{min-width:320px;background:#e7e7e7}body,#root{min-height:100vh}body{margin:0;font-family:Helvetica Neue,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;text-rendering:geometricPrecision}a{color:inherit}:root{--resume-blue: #0b4f8d;--ink: #2d2f33;--muted: #5e626a;--rule: #ebedf0;--paper: #ffffff}.app-shell{min-height:100vh;padding:32px 18px 24px;background:#e7e7e7;color:var(--ink)}.resume-page{width:min(100%,1120px);min-height:1584px;margin:0 auto 28px;overflow:hidden;background:var(--paper);box-shadow:0 24px 70px #121f2f24}.resume-hero{min-height:194px;padding:24px 50px;display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:40px;align-items:start;background:var(--resume-blue);color:#fff}.hero-copy{min-height:158px;display:flex;flex-direction:column;justify-content:space-between}.hero-copy h1{margin:0;display:flex;align-items:center;gap:22px;font-size:31px;font-weight:800;line-height:1.1;letter-spacing:0;transform:translateY(20px)}.hero-copy h1 i{width:2px;height:27px;display:block;background:#ffffffeb}.contact-grid{display:flex;flex-wrap:wrap;gap:10px 34px;transform:translateY(-10px)}.contact-item{display:flex;align-items:center;gap:9px;border:0;padding:0;background:transparent;color:#fff;font-size:20px;font-weight:400;font-family:inherit;line-height:1.1;white-space:nowrap}.contact-item-button,.contact-item-link{cursor:pointer;text-decoration:none}.contact-item-button:hover,.contact-item-link:hover{opacity:.86}.contact-item-button:focus-visible,.contact-item-link:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:4px}.contact-mark{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;line-height:1}.contact-icon{width:20px;height:20px;display:block;overflow:visible}.contact-break{flex-basis:100%;height:0}.profile-photo{width:118px;height:158px;display:block;object-fit:cover;background:#fff}.resume-content{padding:56px 56px 72px}.resume-content-continued{padding-top:56px}.resume-section{margin:0 0 40px}.resume-section:last-child{margin-bottom:0}.section-heading{display:grid;grid-template-columns:108px 1fr;gap:26px;align-items:center}.section-heading h2{margin:0;color:#26282c;font-size:24px;font-weight:800;line-height:1.12;letter-spacing:0}.section-heading span{height:2px;background:var(--rule)}.section-body{margin-top:18px;font-size:18px;line-height:1.55}.intent-line{margin:0;font-size:18px;line-height:1.55}.education-row,.item-header{display:flex;align-items:baseline;justify-content:space-between;gap:28px}.education-row strong,.item-header h3{margin:0;color:#2b2d31;font-size:18px;font-weight:800;line-height:1.45}.education-row p,.detail-lines p{margin:0}.education-row>span,.item-header>span{flex:0 0 auto;color:#323438;font-size:18px;line-height:1.45;white-space:nowrap}.item-title-separator{margin:0 10px;color:#323438;font-weight:400}.detail-lines{color:#303236}.detail-lines p+p{margin-top:2px}.timeline-list{display:grid;gap:18px}.timeline-item .detail-lines{margin-top:10px}.project-list{gap:18px}.site-footer{width:min(100%,1120px);margin:0 auto;padding:2px 0 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.site-footer p{margin:0;color:#959595;font-size:10px;line-height:1.5;text-align:center}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{text-decoration:underline}.download-pdf-button{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:20;min-height:44px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--resume-blue);box-shadow:0 14px 34px #0b4f8d4d;color:#fff;font:inherit;font-size:15px;font-weight:700;line-height:1;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.download-pdf-button:hover:not(:disabled){background:#083f72;box-shadow:0 16px 38px #0b4f8d5c;transform:translateY(-1px)}.download-pdf-button:focus-visible{outline:3px solid rgba(11,79,141,.28);outline-offset:3px}.download-pdf-button:disabled{cursor:wait;opacity:.72}.download-pdf-icon{width:18px;height:18px;flex:0 0 18px}.pdf-export-source{position:fixed;top:0;left:-100000px;width:1120px;height:1584px;overflow:hidden;background:#fff;pointer-events:none}.pdf-export-source .resume-page{width:1120px;min-height:1584px;margin:0;overflow:hidden;box-shadow:none}.wechat-qr-dialog-layer{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:#1110;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);opacity:0;pointer-events:none;transition:opacity .22s ease,background-color .22s ease,backdrop-filter .22s ease,-webkit-backdrop-filter .22s ease}.wechat-qr-dialog-layer.is-active{opacity:1;background:#11111124;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:auto}.wechat-qr-dialog{position:relative;width:min(360px,calc(100vw - 24px));background:#fff;opacity:0;transform:translateY(12px) scale(.96);transform-origin:center center;transition:opacity .22s ease,transform .22s cubic-bezier(.2,.8,.2,1);will-change:opacity,transform}.wechat-qr-dialog.is-active{opacity:1;transform:translateY(0) scale(1)}.wechat-qr-dialog-close{position:absolute;right:16px;top:16px;z-index:5;width:16px;height:16px;border:0;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#111;cursor:pointer}.wechat-qr-dialog-close:focus-visible{outline:2px solid #2d7fff;outline-offset:4px}.wechat-qr-dialog-close-icon{width:20px;height:20px;flex:0 0 auto}.wechat-qr-dialog-content{display:flex;flex-direction:column;align-items:center;padding:48px 32px}.wechat-qr-dialog-qr-shell{width:260px;height:350px;background:#fff;overflow:hidden}.wechat-qr-dialog-qr{width:100%;height:100%;display:block;object-fit:cover}@media(max-width:900px){.app-shell{padding:0;background:#e7e7e7}.resume-page{width:100%;min-height:auto;margin:0 0 12px;box-shadow:none}.resume-hero{padding:calc(20px + env(safe-area-inset-top)) 22px 24px;grid-template-columns:112px minmax(0,1fr);grid-template-areas:"photo name" "contacts contacts";gap:22px 18px;align-items:center}.hero-copy{display:contents}.hero-copy h1{grid-area:name;margin:0;gap:12px;align-self:center;flex-wrap:wrap;font-size:29px}.contact-grid{grid-area:contacts;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.contact-item{min-width:0;gap:10px;font-size:16px}.contact-item--wide{grid-column:1 / -1}.contact-item span:last-child{min-width:0;overflow-wrap:anywhere}.contact-mark{width:22px;height:22px;flex:0 0 22px}.contact-icon{width:22px;height:22px}.profile-photo{grid-area:photo;width:112px;height:150px}.resume-content,.resume-content-continued{padding:30px 22px 44px}.section-heading{grid-template-columns:108px 1fr;gap:18px}.section-heading h2{font-size:25px}.section-body,.intent-line,.education-row strong,.item-header h3,.education-row span,.item-header span{font-size:18px}.education-row,.item-header{display:grid;gap:6px}}@media(max-width:520px){.hero-copy h1{font-size:27px}.hero-copy h1 i{height:24px}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-break{display:none}.contact-item{font-size:15px;white-space:normal}.section-heading{grid-template-columns:1fr;gap:10px}.section-body,.intent-line,.education-row strong,.item-header h3,.education-row span,.item-header span{font-size:16px}.site-footer{padding:16px 20px calc(18px + env(safe-area-inset-bottom));background:#e7e7e7}.site-footer p{font-size:10px}.download-pdf-button{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));min-height:42px;padding:0 16px;font-size:14px}}@media(max-width:390px){.resume-hero{grid-template-columns:96px minmax(0,1fr);gap:18px 16px}.profile-photo{width:96px;height:128px}.hero-copy h1{font-size:24px}.contact-grid{gap:12px 14px}}@media print{.app-shell{padding:0;background:#fff}.resume-page{width:100%;min-height:100vh;margin:0;box-shadow:none;page-break-after:always}.site-footer,.download-pdf-button,.pdf-export-source,.wechat-qr-dialog-layer{display:none}}.core-ui-anchored-dialog{--core-ui-anchored-dialog-anchor-gap: 8px;--core-ui-anchored-dialog-cross-shift: 0px;--core-ui-anchored-dialog-transform-origin-x: 50%;position:absolute;z-index:var(--core-ui-anchored-dialog-z-index, 20);width:var(--core-ui-anchored-dialog-width, 184px);pointer-events:none;visibility:hidden;transform:translate3d(0,var(--core-ui-anchored-dialog-enter-y),0) scale(.98);transform-origin:var(--core-ui-anchored-dialog-transform-origin-x) var(--core-ui-anchored-dialog-transform-origin-y);transition:visibility 0s linear .16s,transform .16s cubic-bezier(.23,1,.32,1)}.core-ui-anchored-dialog[data-open=true]{pointer-events:auto;visibility:visible;transform:translateZ(0) scale(1);transition-delay:0s}.core-ui-anchored-dialog[data-show-arrow=true]{--core-ui-anchored-dialog-anchor-gap: 14px}.core-ui-anchored-dialog[data-placement=top-start],.core-ui-anchored-dialog[data-placement=top-end]{--core-ui-anchored-dialog-enter-y: 4px;bottom:calc(100% + var(--core-ui-anchored-dialog-anchor-gap))}.core-ui-anchored-dialog[data-placement=bottom-start],.core-ui-anchored-dialog[data-placement=bottom-end]{--core-ui-anchored-dialog-enter-y: -4px;top:calc(100% + var(--core-ui-anchored-dialog-anchor-gap))}.core-ui-anchored-dialog[data-placement=top-start],.core-ui-anchored-dialog[data-placement=bottom-start]{left:var(--core-ui-anchored-dialog-cross-shift)}.core-ui-anchored-dialog[data-placement=top-end],.core-ui-anchored-dialog[data-placement=bottom-end]{right:calc(0px - var(--core-ui-anchored-dialog-cross-shift))}.core-ui-anchored-dialog[data-placement^=top]{--core-ui-anchored-dialog-transform-origin-y: 100%}.core-ui-anchored-dialog[data-placement^=bottom]{--core-ui-anchored-dialog-transform-origin-y: 0%}.core-ui-anchored-dialog__material{position:relative;width:100%;box-sizing:border-box;background:var(--core-ui-anchored-dialog-material, rgb(248 248 248 / 72%));-webkit-clip-path:inset(0 round 14px);clip-path:inset(0 round 14px);filter:drop-shadow(0 0 .5px var(--core-ui-anchored-dialog-outline, rgb(17 17 17 / 10%))) drop-shadow(0 2px 4px var(--core-ui-anchored-dialog-shadow-near, rgb(17 17 17 / 8%))) drop-shadow(0 10px 20px var(--core-ui-anchored-dialog-shadow-far, rgb(17 17 17 / 12%)));opacity:.001;-webkit-backdrop-filter:var(--core-ui-anchored-dialog-backdrop-filter, blur(24px) saturate(160%));backdrop-filter:var(--core-ui-anchored-dialog-backdrop-filter, blur(24px) saturate(160%));transition:opacity .12s cubic-bezier(.23,1,.32,1);will-change:opacity,backdrop-filter,clip-path}.core-ui-anchored-dialog[data-show-arrow=true][data-placement^=top] .core-ui-anchored-dialog__material{padding-bottom:10px}.core-ui-anchored-dialog[data-show-arrow=true][data-placement^=bottom] .core-ui-anchored-dialog__material{padding-top:10px}.core-ui-anchored-dialog__surface{position:relative;z-index:1;width:100%;box-sizing:border-box;max-height:var(--core-ui-anchored-dialog-max-height, 274px);padding:var(--core-ui-anchored-dialog-padding, 6px);overflow:auto;color:var(--core-ui-anchored-dialog-text, #111111)}.core-ui-anchored-dialog__contour{position:absolute;z-index:2;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.core-ui-anchored-dialog__contour path{fill:none;stroke:var(--core-ui-anchored-dialog-outline, rgb(17 17 17 / 10%));stroke-width:1.5px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.core-ui-anchored-dialog[data-open=true] .core-ui-anchored-dialog__material{opacity:1}.core-ui-anchored-dialog__item{width:100%;min-height:34px;padding:0 8px 0 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:8px;background:transparent;color:var(--core-ui-anchored-dialog-muted, #6f6f6f);cursor:pointer;font:inherit;font-size:12px;line-height:1.35;font-weight:500;text-align:left;transition:background-color .12s ease,color .12s ease}.core-ui-anchored-dialog__item.is-selected{color:var(--core-ui-anchored-dialog-text, #111111)}.core-ui-anchored-dialog__item:focus{outline:none}.core-ui-anchored-dialog__item:focus-visible{background:var(--core-ui-anchored-dialog-focus-background, rgb(17 17 17 / 9%));color:var(--core-ui-anchored-dialog-text, #111111)}.core-ui-anchored-dialog__item:active{background:var(--core-ui-anchored-dialog-active-background, rgb(17 17 17 / 12%))}.core-ui-anchored-dialog__item-icon{width:14px;height:14px;display:inline-flex;flex:0 0 auto}.core-ui-anchored-dialog__item-icon svg{width:100%;height:100%;display:block;fill:currentColor}@media(hover:hover)and (pointer:fine){.core-ui-anchored-dialog__item:hover{background:var(--core-ui-anchored-dialog-hover-background, rgb(17 17 17 / 6%));color:var(--core-ui-anchored-dialog-text, #111111)}}@media(prefers-reduced-motion:reduce){.core-ui-anchored-dialog{transform:none;transition:none}.core-ui-anchored-dialog__material,.core-ui-anchored-dialog__item{transition:none}}@media(prefers-reduced-transparency:reduce){.core-ui-anchored-dialog__material{background:var( --core-ui-anchored-dialog-reduced-transparency-material, rgb(248 248 248 / 98%) );-webkit-backdrop-filter:none;backdrop-filter:none}}:where([data-press-size]){--press-motion-scale: .98;--press-motion-press-duration: .24s;--press-motion-release-duration: .3s;--press-motion-press-easing: cubic-bezier(.4, 0, .2, 1);--press-motion-release-easing: cubic-bezier(.25, .1, .25, 1);--press-motion-duration: var(--press-motion-release-duration);--press-motion-easing: var(--press-motion-release-easing);transform-origin:center}:where([data-press-size=compact]){--press-motion-scale: .97;--press-motion-press-duration: .16s;--press-motion-release-duration: .2s}:where([data-press-size=large]){--press-motion-scale: .98;--press-motion-press-duration: .4s;--press-motion-release-duration: .46s;will-change:transform}[data-press-size]:not(:disabled):active{--press-motion-duration: var(--press-motion-press-duration);--press-motion-easing: var(--press-motion-press-easing);transform:scale(var(--press-motion-scale))}@media(prefers-reduced-motion:reduce){:where([data-press-size]){--press-motion-duration: 0ms;--press-motion-easing: linear;will-change:auto}[data-press-size]:not(:disabled):active{transform:none}}._container_1noya_1{box-sizing:border-box;position:relative;isolation:isolate;display:inline-flex;min-width:0;margin:0;padding:0;align-items:center;justify-content:center;border:0;border-radius:var(--core-ui-custom-container-radius, 0);appearance:none;background-color:var(--core-ui-custom-container-background, transparent);color:inherit;font:inherit;text-align:inherit;vertical-align:top;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transform:scale(1);transform-origin:center;transition-property:transform;transition-duration:var(--press-motion-duration, 0ms);transition-timing-function:var(--press-motion-easing, linear)}._container_1noya_1:before,._container_1noya_1:after{position:absolute;inset:0;border-radius:inherit;content:"";opacity:0;pointer-events:none}._container_1noya_1:before{z-index:2;background:var(--core-ui-custom-container-overlay, currentColor);transition-property:opacity;transition-duration:var(--press-motion-duration, 0ms);transition-timing-function:var(--press-motion-easing, linear)}._container_1noya_1:after{z-index:3;background:var( --core-ui-custom-container-focus-overlay, currentColor )}._content_1noya_55{position:relative;z-index:1;min-width:0}._clipContent_1noya_61{overflow:hidden}button._container_1noya_1[data-pressed=true]{background-color:var( --core-ui-custom-container-pressed-background, var(--core-ui-custom-container-background, transparent) )}button._container_1noya_1[data-press-size][data-pressed=true]{transform:scale(var(--press-motion-scale))}button._container_1noya_1[data-press-size][data-pressed=false]:active{transform:scale(1)}button._container_1noya_1[data-pressed=true]:before{opacity:var(--core-ui-custom-container-overlay-opacity, .12)}._container_1noya_1:focus{outline:none}._container_1noya_1:focus-visible:after{opacity:var(--core-ui-custom-container-focus-opacity, .08)}button._container_1noya_1[data-pressed=true]:focus-visible:after{opacity:0}._container_1noya_1:disabled{background-color:var( --core-ui-custom-container-disabled-background, var(--core-ui-custom-container-background, transparent) );color:var(--core-ui-custom-container-disabled-foreground, currentColor);cursor:not-allowed;opacity:var(--core-ui-custom-container-disabled-opacity, .48)}._container_1noya_1:disabled:before,._container_1noya_1:disabled:after{opacity:0}@media(prefers-reduced-motion:reduce){._container_1noya_1{transition:none}button._container_1noya_1[data-press-size][data-pressed=true],button._container_1noya_1[data-press-size][data-pressed=false]:active{transform:none}._container_1noya_1:before{transition-duration:.1s}}.core-ui-faq-disclosure__content{--core-ui-faq-disclosure-duration: .22s;--core-ui-faq-disclosure-easing: cubic-bezier(.32, .72, 0, 1);display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows var(--core-ui-faq-disclosure-duration) var(--core-ui-faq-disclosure-easing),opacity .16s cubic-bezier(.23,1,.32,1),visibility 0s linear var(--core-ui-faq-disclosure-duration)}.core-ui-faq-disclosure__content[data-open=true]{grid-template-rows:1fr;opacity:1;visibility:visible;transition-delay:0s}.core-ui-faq-disclosure__inner{min-height:0;overflow:hidden}@media(prefers-reduced-motion:reduce){.core-ui-faq-disclosure__content{transition:grid-template-rows 0s linear .16s,opacity .16s cubic-bezier(.23,1,.32,1),visibility 0s linear .16s}.core-ui-faq-disclosure__content[data-open=true]{transition-delay:0s}}.core-ui-faq-disclosure__content[data-skip-motion=true]{transition:none}
