:root{--rs-green:#b6ff1a;--rs-green-dim:rgba(182,255,26,0.4);--rs-bg:#050705;--rs-surface:#0c1010;--rs-text:#eaeae0;--rs-text-dim:rgba(234,234,224,0.62);--rs-text-mute:rgba(234,234,224,0.4);--rs-grid:rgba(182,255,26,0.06)}.resume-root{min-height:100vh;background:var(--rs-bg);background-image:linear-gradient(to right,var(--rs-grid) 1px,transparent 1px),linear-gradient(to bottom,var(--rs-grid) 1px,transparent 1px);background-size:32px 32px;color:var(--rs-text);font-family:var(--font-zh),"Noto Sans SC","PingFang SC",system-ui,sans-serif;padding:32px 16px;display:flex;justify-content:center;align-items:flex-start}.resume-scroll-hint{position:fixed;bottom:24px;right:24px;z-index:90;display:inline-flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;background:rgba(5,7,5,.85);border:1px solid var(--rs-green);color:var(--rs-green);font-family:var(--font-display),"Orbitron",monospace;font-size:9pt;letter-spacing:.3em;cursor:pointer;border-radius:2px;box-shadow:0 0 16px rgba(182,255,26,.3);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:resumeScrollHintFade .5s ease-out 1.5s both;transition:opacity .4s,transform .4s}.resume-scroll-hint:hover{background:var(--rs-green);color:#050705}.resume-scroll-hint-text{font-size:8pt;letter-spacing:.35em}.resume-scroll-hint-arrow{font-size:14pt;line-height:1;animation:resumeScrollBounce 1.4s ease-in-out infinite}@keyframes resumeScrollHintFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes resumeScrollBounce{0%,to{transform:translateY(0);opacity:.7}50%{transform:translateY(4px);opacity:1}}.resume-actions{position:fixed;top:16px;right:16px;z-index:100;display:flex;gap:10px;animation:resumeFadeUp .6s ease-out 1.2s both}.resume-back-btn,.resume-print-btn{font-family:var(--font-display),"Orbitron",monospace;font-size:11px;letter-spacing:.25em;padding:10px 16px;border-radius:2px;cursor:pointer;transition:all .2s}.resume-print-btn{background:var(--rs-green);color:#000;border:1px solid var(--rs-green);box-shadow:0 0 16px rgba(182,255,26,.45)}.resume-print-btn:hover{background:transparent;color:var(--rs-green)}.resume-back-btn{background:transparent;color:var(--rs-text-dim);border:1px solid rgba(255,255,255,.15);text-decoration:none;display:inline-flex;align-items:center}.resume-back-btn:hover{border-color:var(--rs-green);color:var(--rs-green)}.resume-page{width:210mm;min-height:297mm;position:relative;background:var(--rs-surface);border:1px solid rgba(182,255,26,.18);box-shadow:0 0 60px rgba(182,255,26,.06);padding:12mm;overflow:hidden;font-size:9pt;line-height:1.5;animation:resumePageReveal .9s cubic-bezier(.7,.05,.3,1) both}.resume-page:before{content:"";position:absolute;left:0;right:0;top:-3px;height:2px;background:linear-gradient(90deg,transparent,var(--rs-green) 50%,transparent);box-shadow:0 0 16px var(--rs-green),0 0 32px rgba(182,255,26,.4);z-index:50;pointer-events:none;animation:resumeScanlineSweep 1.4s cubic-bezier(.5,0,.2,1) .2s both}.resume-header{animation:resumeFadeUp .7s cubic-bezier(.2,.7,.2,1) .35s both}.resume-page>.resume-section{animation:resumeFadeUp .6s cubic-bezier(.2,.7,.2,1) .55s both}.resume-body{animation:resumeFadeUp .7s cubic-bezier(.2,.7,.2,1) .7s both}.resume-footer{animation:resumeFadeUp .7s ease-out 1s both}.resume-corner{animation:resumeCornerPulse .6s ease-out 1.1s both}@keyframes resumePageReveal{0%{clip-path:inset(0 0 100% 0);opacity:0}20%{opacity:1}to{clip-path:inset(0 0 0 0);opacity:1}}@keyframes resumeFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes resumeScanlineSweep{0%{top:-3px;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}@keyframes resumeCornerPulse{0%{opacity:0;transform:scale(1.5)}60%{opacity:1;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.resume-header{display:grid;grid-template-columns:1fr auto;gap:18px;padding-bottom:6mm;border-bottom:1px solid rgba(182,255,26,.18);margin-bottom:4mm}.resume-tagline{font-family:var(--font-mono),monospace;font-size:8pt;letter-spacing:.45em;color:var(--rs-text-dim);margin-bottom:4mm}.resume-name{font-family:var(--font-display),"Orbitron",sans-serif;font-weight:900;font-size:36pt;line-height:.85;letter-spacing:-.02em;margin:0;color:#fff;text-shadow:0 0 18px rgba(182,255,26,.15)}.resume-name-y{display:inline-block;background:var(--rs-green);color:#050705;padding:0 .05em;margin:0 .02em;box-shadow:0 0 24px rgba(182,255,26,.6)}.resume-name-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:5mm}.resume-name-zh{margin-top:0;margin-bottom:0;display:inline-flex;align-items:baseline;gap:1.5mm;font-family:Sarasa Mono SC,Source Han Mono,SF Mono,Cascadia Code,Consolas,Menlo,PingFang SC,Microsoft YaHei,STHeiti,monospace;font-weight:900;font-size:16pt;line-height:1.1;letter-spacing:.25em}.resume-name-zh-zhang{color:#ffffff;text-shadow:0 0 8px rgba(255,255,255,.28),0 0 16px rgba(182,255,26,.2);-webkit-text-stroke:.3px rgba(182,255,26,.4)}.resume-name-zh-yang{display:inline-block;background:var(--rs-green);color:#050705;padding:.5mm 2mm;box-shadow:0 0 18px rgba(182,255,26,.55),inset 0 -1px 0 rgba(0,0,0,.4);letter-spacing:0}.resume-quote{margin-top:2.5mm;font-family:var(--font-display),"Orbitron",sans-serif;font-size:9.5pt;font-weight:600;letter-spacing:.25em;color:var(--rs-green)}.resume-quote-sub{margin-top:1mm;font-size:7.5pt;letter-spacing:.4em;color:var(--rs-text-dim)}.resume-contact-row{margin-top:3mm;display:flex;align-items:center;flex-wrap:nowrap;gap:5mm;font-family:var(--font-mono),monospace;font-size:7.5pt;border-top:1px solid rgba(182,255,26,.18);padding-top:2mm}.resume-contact-cell{display:inline-flex;align-items:center;gap:6px;color:var(--rs-text);white-space:nowrap}.resume-contact-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;font-size:7pt;font-weight:700;flex-shrink:0;border:1px solid var(--rs-green);background:linear-gradient(180deg,transparent 0,transparent 55%,var(--rs-green) 55%,var(--rs-green) 100%);line-height:1}.resume-contact-icon-char{display:inline-block;background-image:linear-gradient(180deg,var(--rs-green) 0,var(--rs-green) 55%,#050705 55%,#050705 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-family:var(--font-display),"Orbitron",monospace;font-size:7pt;font-weight:900;line-height:1}.resume-contact-row .resume-contact-val{font-size:8pt;letter-spacing:.04em;font-size:8.5pt;color:var(--rs-text);letter-spacing:.05em}.resume-header-right{font-family:var(--font-mono),monospace;justify-content:center;align-self:center}.resume-header-right,.resume-portrait{display:flex;flex-direction:column;align-items:center;gap:2mm}.resume-portrait-tag{font-family:var(--font-mono),monospace;font-size:6.5pt;letter-spacing:.2em;color:var(--rs-green)}.resume-portrait-frame{position:relative;width:28mm;height:36mm;border:1px solid var(--rs-green-dim);background:rgba(182,255,26,.04);padding:1.2mm;box-shadow:0 0 12px rgba(182,255,26,.25),inset 0 0 8px rgba(182,255,26,.1);overflow:hidden}.resume-portrait-img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.05) brightness(.96) saturate(.92)}.resume-portrait-corner{position:absolute;width:5mm;height:5mm;pointer-events:none}.resume-portrait-corner.tl{top:-1px;left:-1px;border-top:1.5px solid var(--rs-green);border-left:1.5px solid var(--rs-green)}.resume-portrait-corner.tr{top:-1px;right:-1px;border-top:1.5px solid var(--rs-green);border-right:1.5px solid var(--rs-green)}.resume-portrait-corner.bl{bottom:-1px;left:-1px;border-bottom:1.5px solid var(--rs-green);border-left:1.5px solid var(--rs-green)}.resume-portrait-corner.br{bottom:-1px;right:-1px;border-bottom:1.5px solid var(--rs-green);border-right:1.5px solid var(--rs-green)}.resume-portrait-scan{position:absolute;left:1.2mm;right:1.2mm;top:30%;height:1.5px;background:linear-gradient(90deg,transparent,var(--rs-green) 50%,transparent);box-shadow:0 0 6px var(--rs-green);pointer-events:none;opacity:.6}.resume-portrait-id{display:inline-flex;align-items:center;gap:6px;font-size:7pt;letter-spacing:.25em;color:var(--rs-green)}.resume-id-dot{display:inline-block;width:5px;height:5px;background:var(--rs-green);border-radius:50%;box-shadow:0 0 6px var(--rs-green)}.resume-contact-list{display:flex;flex-direction:column;gap:2.5mm;align-items:flex-end}.resume-contact-item{display:flex;align-items:baseline;gap:10px;font-size:9pt}.resume-contact-label{font-size:7.5pt;letter-spacing:.3em;color:var(--rs-green);width:52px;text-align:right}.resume-contact-val{color:var(--rs-text)}.resume-section{margin-bottom:5mm}.resume-section-title{display:flex;align-items:center;gap:8px;margin-bottom:3mm}.resume-section-en{font-family:var(--font-display),"Orbitron",sans-serif;font-size:10pt;font-weight:700;letter-spacing:.3em;color:var(--rs-green);white-space:nowrap}.resume-section-cn{font-size:8.5pt;letter-spacing:.15em;color:var(--rs-text-dim);white-space:nowrap}.resume-section-line{flex:1;height:1px;background:linear-gradient(90deg,var(--rs-green-dim),transparent)}.resume-cap-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0 6mm}.resume-cap-row{display:grid;grid-template-columns:18px auto 1fr 22px;gap:5px;align-items:center}.resume-cap-icon{width:16px;height:16px;border:1px solid;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8pt}.resume-cap-meta{display:flex;flex-direction:column}.resume-cap-en{font-family:var(--font-display),"Orbitron",sans-serif;font-size:7.5pt;letter-spacing:.25em;color:var(--rs-green)}.resume-cap-cn{font-size:9pt;color:var(--rs-text);font-weight:600}.resume-cap-bar{height:3px;background:rgba(182,255,26,.12);border-radius:2px;overflow:hidden}.resume-cap-bar-fill{display:block;height:100%;background:linear-gradient(90deg,rgba(182,255,26,.4),var(--rs-green));box-shadow:0 0 6px var(--rs-green)}.resume-cap-score{font-family:var(--font-mono),monospace;font-size:9pt;font-weight:700;color:var(--rs-green);text-align:right}.resume-body{display:grid;grid-template-columns:1.3fr 1fr;gap:6mm}.resume-col-main,.resume-col-side{min-width:0}.resume-exp{margin-bottom:4mm}.resume-exp-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:2mm}.resume-exp-title{font-size:11pt;font-weight:700;margin:0;color:#fff}.resume-exp-role{font-size:8.5pt;color:var(--rs-text-dim);margin-top:1mm;letter-spacing:.05em}.resume-exp-date{font-family:var(--font-mono),monospace;font-size:8pt;letter-spacing:.2em;color:var(--rs-green);white-space:nowrap}.resume-exp-bullets{list-style:none;padding:0;margin:0}.resume-exp-bullets li{position:relative;padding-left:12px;margin-bottom:1.5mm;font-size:9pt;color:var(--rs-text);line-height:1.55}.resume-exp-bullets li:before{content:"▸";position:absolute;left:0;top:0;color:var(--rs-green);font-size:8pt}.resume-exp-bullets strong{color:var(--rs-green);font-weight:700}.resume-proj{margin-bottom:3mm;padding:2.5mm 3.5mm;background:rgba(182,255,26,.025);border-left:2px solid var(--rs-green)}.resume-proj-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:1.5mm}.resume-proj-title{font-size:10pt;font-weight:700;margin:0;color:#fff}.resume-proj-tag{font-family:var(--font-mono),monospace;font-size:8pt;letter-spacing:.2em;color:var(--rs-green);white-space:nowrap}.resume-proj-desc{font-size:8.5pt;color:var(--rs-text-dim);line-height:1.55;margin:0 0 2mm}.resume-proj-desc strong{color:var(--rs-green);font-weight:600}.resume-proj-stack{font-family:var(--font-mono),monospace;font-size:7.5pt;letter-spacing:.05em;color:rgba(182,255,26,.65)}.resume-edu-item{margin-bottom:2mm;padding-left:10px;border-left:1px solid rgba(182,255,26,.3)}.resume-edu-period{font-family:var(--font-mono),monospace;font-size:7.5pt;letter-spacing:.2em;color:var(--rs-green);margin-bottom:1mm}.resume-edu-school{font-size:9.5pt;font-weight:700;color:#fff;line-height:1.3}.resume-edu-major{font-size:8.5pt;color:var(--rs-text);margin-top:.5mm}.resume-edu-note{font-size:7.5pt;color:var(--rs-text-mute);margin-top:1mm;line-height:1.4}.resume-edu-item-row{padding-left:10px;border-left:1px solid rgba(182,255,26,.3)}.resume-edu-row-line{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:1mm}.resume-edu-school-inline{font-size:9.5pt;font-weight:700;color:#fff}.resume-edu-major-inline{font-size:8.5pt;color:var(--rs-text)}.resume-edu-period-inline{font-family:var(--font-mono),monospace;font-size:7.5pt;letter-spacing:.18em;color:var(--rs-green)}.resume-edu-sep{font-size:8pt;color:rgba(182,255,26,.5)}.resume-cert-list{list-style:none;padding:0;margin:0}.resume-cert-list li{display:flex;align-items:baseline;gap:6px;margin-bottom:1mm;font-size:8pt;line-height:1.35;flex-wrap:wrap}.resume-cert-list .resume-cert-year{flex-shrink:0;width:36px}.resume-cert-list .resume-cert-title{flex-shrink:0}.resume-cert-year{font-family:var(--font-mono),monospace;font-size:7.5pt;letter-spacing:.15em;color:var(--rs-green)}.resume-cert-title{color:var(--rs-text)}.resume-cert-issuer{color:var(--rs-text-mute);font-size:7.5pt;margin-left:4px}.resume-stack-group{margin-bottom:1.5mm}.resume-stack-cat{font-family:var(--font-display),"Orbitron",sans-serif;font-size:7.5pt;letter-spacing:.3em;color:var(--rs-green);margin-bottom:1mm}.resume-stack-tools{font-size:8pt;color:var(--rs-text);line-height:1.5}.resume-traits{display:flex;flex-wrap:wrap;gap:1.5mm 1.8mm}.resume-trait{display:inline-block;padding:.8mm 2mm;font-size:7.5pt;letter-spacing:.1em;color:var(--rs-green);border:1px solid rgba(182,255,26,.4);background:rgba(182,255,26,.05);border-radius:1px}.resume-site-card{display:flex;align-items:center;gap:3mm;padding:2.5mm 3mm;border:1px dashed rgba(182,255,26,.35);background:rgba(182,255,26,.03)}.resume-site-info{flex:1;min-width:0}.resume-site-cn{font-size:7.5pt;letter-spacing:.1em;color:var(--rs-text-dim);margin-bottom:1.5mm}.resume-site-url{font-family:var(--font-mono),monospace;font-size:8pt;letter-spacing:.05em;color:var(--rs-green);font-weight:700;word-break:break-all;display:flex;align-items:baseline;gap:4px}.resume-site-arrow{color:var(--rs-green);font-weight:900}.resume-site-qr{width:18mm;height:18mm;flex-shrink:0;background:#0c1010;padding:1mm;border:1px solid rgba(182,255,26,.45);filter:drop-shadow(0 0 6px rgba(182,255,26,.25));display:flex;align-items:center;justify-content:center}.resume-site-qr svg{width:100%;height:100%;display:block}.resume-footer{position:absolute;left:12mm;right:12mm;bottom:6mm;display:flex;justify-content:space-between;font-family:var(--font-mono),monospace;font-size:7pt;letter-spacing:.25em;color:rgba(182,255,26,.45);padding-top:3mm;border-top:1px solid rgba(182,255,26,.15)}.resume-footer-mid{color:var(--rs-text-dim)}.resume-corner{position:absolute;width:14px;height:14px}.resume-corner-tl{left:6mm;border-left:1px solid var(--rs-green)}.resume-corner-tl,.resume-corner-tr{top:6mm;border-top:1px solid var(--rs-green)}.resume-corner-tr{right:6mm;border-right:1px solid var(--rs-green)}.resume-corner-bl{left:6mm;border-left:1px solid var(--rs-green)}.resume-corner-bl,.resume-corner-br{bottom:6mm;border-bottom:1px solid var(--rs-green)}.resume-corner-br{right:6mm;border-right:1px solid var(--rs-green)}@media print{@page{size:A4;margin:0}body,html{background:var(--rs-surface)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.resume-root{background:var(--rs-surface);background-image:none;padding:0;margin:0}.resume-actions{display:none!important}.resume-page{width:210mm;height:297mm;min-height:297mm;border:none;box-shadow:none}.resume-actions,.resume-body,.resume-corner,.resume-footer,.resume-header,.resume-page,.resume-page:before,.resume-page>.resume-section{animation:none!important}}@media print{.print\:hidden,.resume-scroll-hint{display:none!important}}