:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#172026;background:#f6f7f8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(180deg,#eef3f3 0,#f7f8f8 260px),#f7f8f8}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:18px 0 56px}.toolbar{position:sticky;top:12px;z-index:10;display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(260px,1fr);align-items:center;gap:14px;margin-bottom:16px;border:1px solid rgb(15 23 42 / 9%);border-radius:8px;padding:10px;background:#ffffffdb;box-shadow:0 12px 34px #0f172a14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.toolbar-brand{display:inline-flex;align-items:center;min-width:0;gap:10px}.brand-mark{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border:1px solid #cfd9d8;border-radius:8px;color:#27545d;background:#edf4f2}.toolbar-brand div:last-child{display:grid;min-width:0;gap:1px}.toolbar-brand strong,.toolbar-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-brand strong{color:#111827;font-size:14px}.toolbar-brand span{color:#6b7280;font-size:12px}.toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.segmented{display:inline-grid;grid-template-columns:repeat(2,minmax(86px,1fr));align-items:center;padding:3px;border:1px solid #d8dfdf;border-radius:8px;background:#f3f5f5}.segmented button,.export-btn,.ghost-button,.primary-button,.select-shell{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:7px;border:1px solid transparent;padding:0 13px;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.segmented button{background:transparent;color:#667085}.segmented button.active{background:#fff;color:#172026;box-shadow:0 1px 6px #0f172a1a}.export-btn,.primary-button{background:#172026;color:#fff;border-color:#172026}.export-btn:hover,.primary-button:hover:not(:disabled){background:#263238;box-shadow:0 8px 18px #17202629;transform:translateY(-1px)}.ghost-button,.select-shell{background:#fff;color:#334155;border-color:#d8dfdf}.ghost-button:hover,.select-shell:hover{border-color:#b9c6c5;background:#f9fbfb}.icon-button{width:38px;padding:0}.lang-switch{height:36px;border:0;color:#334155;background:transparent;outline:0;cursor:pointer}.status-line{display:inline-flex;align-items:center;min-height:28px;margin:0 0 12px;border:1px solid #d8dfdf;border-radius:999px;padding:0 11px;color:#667085;background:#fff;font-size:13px}.resume-frame{border:1px solid rgb(15 23 42 / 10%);border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f172a0a,0 24px 80px #0f172a1a;overflow:hidden}.resume-document{padding:50px}.resume-header{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:38px;align-items:start;padding:0 0 32px;border-bottom:1px solid #e5e9e9}.eyebrow{margin:0 0 10px;color:#6b7280;font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.identity h1{margin:0;color:#101820;font-size:48px;line-height:1.04;letter-spacing:0}.identity h2{margin:12px 0 18px;color:#27545d;font-size:21px;line-height:1.28}.summary,.muted,.result,.simple-projects p{color:#4b5563;line-height:1.72}.summary{max-width:740px;margin:0;font-size:16px}.contact-block{display:grid;align-content:start;gap:8px;border:1px solid #e0e6e6;border-radius:8px;padding:12px;background:#f9fbfb;word-break:break-word}.contact-block a{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:34px;border-radius:6px;padding:6px 8px;color:#334155;font-size:14px}.contact-block a:hover{color:#111827;background:#eef4f4}.contact-block svg{color:#67807f}.section-grid{display:grid;grid-template-columns:168px minmax(0,1fr);gap:30px;padding:30px 0;border-bottom:1px solid #eef1f1}.section-grid:last-child{border-bottom:0;padding-bottom:0}.section-grid>h2{position:sticky;top:90px;align-self:start;margin:0;color:#101820;font-size:16px;line-height:1.3}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.skill-group,.experience-item,.project-item,.simple-projects article{border:1px solid #e0e6e6;border-radius:8px;background:#fff}.skill-group{padding:16px}.skill-group h3,.experience-item h3,.project-item h4,.simple-projects h4{margin:0;color:#172026}.skill-group h3{margin-bottom:12px;font-size:14px}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list span{display:inline-flex;align-items:center;min-height:28px;border:1px solid #d5dddd;border-radius:999px;padding:3px 10px;color:#31565c;background:#f5f8f8;font-size:12px;font-weight:600}.wide-tags span{min-height:30px}.timeline{display:grid;gap:16px}.experience-item{min-width:0;padding:20px}.item-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start}.item-head p{margin:6px 0 0;color:#31565c;font-weight:700}time{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:0 9px;color:#64748b;background:#f1f5f5;font-size:12px;white-space:nowrap}.compact-list{display:grid;gap:8px;margin:14px 0 0;padding-left:18px;color:#374151;line-height:1.65}.project-list{display:grid;gap:12px;margin-top:18px}.project-item{padding:16px;background:#fbfcfc}.project-item h5{margin:16px 0 8px;color:#172026;font-size:13px}.result{margin:12px 0 0;font-weight:700}.simple-projects{display:grid;gap:10px;margin-top:16px}.simple-projects article{padding:14px;background:#fbfcfc}.simple-projects p{margin:8px 0 0}.password-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:linear-gradient(#0f172a94,#0f172a94),#f6f7f8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lock-panel{width:min(430px,100%);border:1px solid rgb(15 23 42 / 10%);border-radius:8px;padding:28px;background:#fff;box-shadow:0 24px 90px #0f172a3d}.lock-panel h1{margin:0 0 10px;color:#101820;font-size:28px}.lock-panel p{margin:0;color:#667085;line-height:1.6}.token-field{display:grid;gap:8px;margin:24px 0 14px;color:#334155;font-size:14px;font-weight:700}.token-field input{width:100%;height:46px;border:1px solid #d8dfdf;border-radius:7px;padding:0 14px;background:#fbfcfc;text-transform:uppercase}.token-field input:focus{outline:3px solid rgb(49 86 92 / 16%);border-color:#31565c;background:#fff}.error-message{min-height:22px;margin:4px 0 14px!important;color:#b42318!important;font-size:14px}.primary-button{width:100%;height:46px}.primary-button:disabled{cursor:not-allowed;opacity:.55;transform:none}body.is-exporting .password-dialog,body.is-exporting .version-toggle,body.is-exporting .lang-switch,body.is-exporting .export-btn,body.is-exporting .ghost-button,body.is-exporting .toolbar,body.is-exporting .status-line{display:none!important}body.is-exporting .app-shell{width:794px;max-width:794px;padding:0}body.is-exporting .resume-frame{width:794px;max-width:794px;border:0;border-radius:0;box-shadow:none}@media(max-width:940px){.toolbar{grid-template-columns:1fr}.segmented{width:100%}.toolbar-actions{justify-content:stretch}.toolbar-actions>*:not(.icon-button){flex:1 1 150px}.skill-grid,.resume-header,.section-grid{grid-template-columns:1fr}.section-grid>h2{position:static}}@media(max-width:760px){.app-shell{width:min(100% - 20px,1180px);padding-top:10px}.toolbar{position:static;margin-bottom:12px}.resume-document{padding:28px 18px}.resume-header{gap:20px;padding-bottom:24px}.identity h1{font-size:36px}.section-grid{gap:18px;padding:24px 0}.item-head{grid-template-columns:1fr;gap:10px}time{justify-self:start;white-space:normal}}@media print{body{background:#fff}.toolbar,.password-dialog,.status-line{display:none!important}.app-shell{width:100%;padding:0}.resume-frame{border:0;box-shadow:none}.section-grid>h2{position:static}}
