:root{--canvas:#f7f8f5;--paper:#fff;--ink:#111715;--muted:#5d6863;--quiet:#7f8984;--line:#d8dfda;--line-strong:#b9c4be;--accent:#176b52;--accent-dark:#0c4d3b;--link:#285c9d;--warning:#9a6421;--danger:#9a3c33;--radius:6px;--max:1120px;--display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color-scheme:light;font-family:var(--sans)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas);min-width:320px;color:var(--ink)}body{text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6}html[lang=zh-CN] body{font-family:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", var(--sans)}html[lang=zh-CN] .hero h1,html[lang=zh-CN] .section h2,html[lang=zh-CN] .page-header h1,html[lang=zh-CN] .closing-section h2,html[lang=zh-CN] .work-copy h3,html[lang=zh-CN] .approach-list h3,html[lang=zh-CN] .cadence-copy strong,html[lang=zh-CN] .cadence-value strong,html[lang=zh-CN] .form-section legend,html[lang=zh-CN] .auth-panel h2,html[lang=zh-CN] .resume-header h2,html[lang=zh-CN] .experience-entry h3{font-family:Songti SC,STSong,Noto Serif SC,Georgia,serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.58}:focus-visible{outline-offset:3px;outline:3px solid #285c9d52}.skip-link{z-index:100;border-radius:var(--radius);background:var(--ink);color:#fff;padding:9px 12px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-shell{background:var(--canvas);min-height:100vh}.site-header{z-index:20;backdrop-filter:blur(16px);background:#f7f8f5f0;border-bottom:1px solid #d8dfdae6;position:sticky;top:0}.nav,.main,.footer{width:min(calc(100% - 40px), var(--max));margin:0 auto}.nav{justify-content:space-between;align-items:center;gap:32px;min-height:72px;display:flex}.brand{letter-spacing:0;font-size:1rem;font-weight:780}.nav-links{min-height:72px;color:var(--muted);align-items:stretch;gap:26px;font-size:.92rem;font-weight:620;display:flex}.nav-actions{align-items:center;gap:22px;min-height:72px;display:flex}.nav-links a{border-bottom:2px solid #0000;align-items:center;display:inline-flex}.nav-links a:hover,.nav-links a:focus-visible,.nav-links a[aria-current=page]{border-bottom-color:var(--accent);color:var(--ink)}.language-switch{border:1px solid var(--line-strong);border-radius:var(--radius);background:#ecefeb;grid-template-columns:repeat(2,minmax(42px,auto));gap:2px;padding:3px;display:inline-grid}.language-switch a{min-height:32px;color:var(--muted);border-radius:3px;justify-content:center;align-items:center;padding:0 9px;font-size:.76rem;font-weight:760;display:inline-flex}.language-switch a:hover,.language-switch a:focus-visible,.language-switch a[aria-current=true]{background:var(--paper);color:var(--ink)}.hero{border-bottom:1px solid var(--line-strong);padding:104px 0 72px}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:780}.hero h1{font-family:var(--display);letter-spacing:0;margin:14px 0 0;font-size:7.25rem;font-weight:520;line-height:.9}html[lang=zh-CN] .hero h1{font-size:6.2rem;line-height:1}.hero-copy{max-width:780px;color:var(--muted);margin:34px 0 0;font-size:1.38rem;line-height:1.55}.hero-actions,.resume-actions{flex-wrap:wrap;align-items:center;gap:18px;margin-top:34px;display:flex}.button{border:1px solid var(--line-strong);border-radius:var(--radius);min-height:46px;color:var(--ink);background:0 0;justify-content:center;align-items:center;padding:0 17px;font-size:.93rem;font-weight:700;display:inline-flex}.button:hover,.button:focus-visible{border-color:var(--ink);background:var(--paper)}.button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.button.primary:hover,.button.primary:focus-visible{border-color:var(--accent-dark);background:var(--accent-dark)}.text-link,.text-button{color:var(--link);background:0 0;border:0;border-bottom:1px solid;border-radius:0;padding:0 0 2px;font-size:.93rem;font-weight:700}.text-link:hover,.text-link:focus-visible,.text-button:hover,.text-button:focus-visible{color:var(--ink)}.focus-rail{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:72px 0 0;padding:0;list-style:none;display:grid}.focus-rail li{color:var(--muted);text-transform:uppercase;padding:20px 28px 20px 0;font-size:.86rem;font-weight:720}.focus-rail li+li{border-left:1px solid var(--line);padding-left:28px}.section{border-bottom:1px solid var(--line-strong);padding:76px 0}.section-head{justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px;display:flex}.section h2,.page-header h1,.closing-section h2{max-width:780px;font-family:var(--display);letter-spacing:0;margin:8px 0 0;font-size:3rem;font-weight:540;line-height:1.05}.narrow-head{max-width:780px}.work-standard{max-width:580px;color:var(--muted);margin:16px 0 0;font-size:1rem}.work-list{margin:0;padding:0;list-style:none}.work-row{border-top:1px solid var(--line);grid-template-columns:52px minmax(0,1fr);align-items:start;gap:26px;min-height:224px;padding:34px 0 38px;display:grid}.work-row:last-child{border-bottom:1px solid var(--line)}.work-number{color:var(--quiet);font-size:.78rem;font-weight:740}.work-copy{min-width:0;max-width:680px}.work-proof{grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);gap:28px 64px;display:grid}.work-meta{min-height:20px;color:var(--quiet);text-transform:uppercase;font-size:.78rem;font-weight:680}.work-copy h3{font-family:var(--display);margin:6px 0 0;font-size:2rem;font-weight:560;line-height:1.2}.work-copy h3 a:hover,.work-copy h3 a:focus-visible{color:var(--accent)}.work-copy p{color:var(--muted);margin:12px 0 0}.work-facts{border-top:1px solid var(--line);margin:0}.work-facts>div{border-bottom:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);gap:18px;padding:13px 0;display:grid}.work-facts dt{color:var(--quiet);text-transform:uppercase;font-size:.72rem;font-weight:760}.work-facts dd{color:var(--ink);margin:0;font-size:.92rem;line-height:1.5}.work-link{color:var(--link);border-bottom:1px solid;grid-column:1;justify-self:start;font-size:.88rem;font-weight:700}.empty-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}.empty-row h3,.empty-row p{margin:0}.empty-row p{color:var(--muted);margin-top:6px}.project-loading{align-items:center}.loading-number,.loading-copy span{background:#e3e8e4;border-radius:3px;animation:1.35s ease-in-out infinite alternate pulse;display:block}.loading-number{width:22px;height:11px}.loading-copy{gap:13px;display:grid}.loading-copy span:first-child{width:min(440px,70%);height:18px}.loading-copy span:last-child{width:min(620px,92%);height:12px}.approach-list{margin:0;padding:0;list-style:none}.approach-list li{border-top:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);gap:24px;padding:28px 0;display:grid}.approach-list li:last-child{border-bottom:1px solid var(--line)}.approach-list>li>span{color:var(--accent);font-size:.82rem;font-weight:760}.approach-list h3{font-family:var(--display);margin:0;font-size:1.65rem;font-weight:560}.approach-list p{max-width:660px;color:var(--muted);margin:8px 0 0}.approach-list .approach-scope{color:var(--accent);text-transform:uppercase;margin-top:14px;font-size:.75rem;font-weight:740}.closing-section{padding:82px 0 92px}.closing-section h2{margin-bottom:28px}.page-header{max-width:820px;padding:80px 0 54px}.page-header h1{font-size:4.5rem}.page-header>p:last-child{max-width:680px;color:var(--muted);margin:22px 0 0;font-size:1.16rem}.projects-section{padding:0 0 90px}.owner-page,.resume-page{padding-bottom:92px}.owner-header,.resume-page-header{padding-bottom:44px}.checkin-form{max-width:920px}.cadence-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:24px;padding:22px 0;display:grid}.cadence-value{color:var(--accent);justify-items:start;line-height:1;display:grid}.cadence-value strong{font-family:var(--display);font-size:2.8rem;font-weight:540}.cadence-value span{text-transform:uppercase;margin-top:5px;font-size:.72rem;font-weight:760}.cadence-copy strong{font-family:var(--display);margin-top:4px;font-size:1.42rem;font-weight:560;display:block}.cadence-copy>p:last-child{color:var(--muted);margin:4px 0 0;font-size:.9rem}.cadence-strip .button{justify-self:end}.form-section{border:0;border-top:1px solid var(--line-strong);gap:24px;margin:0;padding:34px 0 42px;display:grid}.form-section legend{font-family:var(--display);padding:0 22px 0 0;font-size:1.55rem;font-weight:560}.compact-section{gap:20px}.field-grid{gap:20px;display:grid}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.field{gap:8px;display:grid}.field label,.field-label{color:var(--ink);font-size:.9rem;font-weight:700}.field input,.field textarea,.field select,.access-bar input{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);width:100%;color:var(--ink);padding:11px 12px}.field input,.field select,.access-bar input{min-height:46px}.field textarea{resize:vertical;min-height:128px}.field input:hover,.field textarea:hover,.field select:hover,.access-bar input:hover{border-color:var(--ink)}.checkbox-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.checkbox-grid label{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);min-height:44px;color:var(--muted);align-items:center;gap:9px;padding:9px 11px;font-size:.9rem;display:flex}.checkbox-grid input{width:17px;height:17px;accent-color:var(--accent)}.form-submit-row{border-top:1px solid var(--line-strong);justify-content:space-between;align-items:start;gap:32px;padding-top:30px;display:flex}.form-footnote{max-width:360px;color:var(--quiet);margin:8px 0 0;font-size:.88rem}.notice{min-height:24px;color:var(--muted);margin:10px 0 0;font-size:.9rem}.notice.error{color:var(--danger)}.notice.success{color:var(--accent)}.access-bar{border-top:1px solid var(--line-strong);grid-template-columns:minmax(240px,380px) auto;align-items:end;gap:12px;max-width:620px;padding-top:28px;display:grid}.admin-workspace{margin-top:46px}.admin-summary{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.admin-summary>div{min-height:118px;padding:22px 24px 22px 0}.admin-summary>div+div{border-left:1px solid var(--line);padding-left:24px}.admin-summary dt{color:var(--quiet);text-transform:uppercase;font-size:.78rem;font-weight:720}.admin-summary dd{font-family:var(--display);margin:7px 0 0;font-size:2.3rem;line-height:1}.admin-tabs{border:1px solid var(--line-strong);border-radius:var(--radius);background:#ecefeb;gap:2px;margin-top:28px;padding:3px;display:inline-flex}.admin-tabs button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:0 13px;font-size:.87rem;font-weight:700}.admin-tabs button[aria-selected=true]{background:var(--paper);color:var(--ink)}.admin-panel{margin-top:18px}.table-wrap{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:700px;font-size:.9rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:13px 12px}th:first-child,td:first-child{padding-left:0}th{color:var(--quiet);text-transform:uppercase;font-size:.74rem;font-weight:760}tr:last-child td{border-bottom:0}.auth-panel{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(220px,.7fr) minmax(320px,1fr);align-items:end;gap:42px;padding:32px 0;display:grid}.auth-panel h2{font-family:var(--display);margin:0;font-size:1.65rem;font-weight:560}.auth-panel>div>p{color:var(--muted);margin:8px 0 0}.auth-form{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:12px;display:grid}.auth-panel .notice{grid-column:2;margin:0}.resume-shell{margin-top:44px}.resume-header{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:end;gap:36px;padding-bottom:28px;display:flex}.resume-header h2{font-family:var(--display);margin:8px 0 0;font-size:3.1rem;font-weight:540;line-height:1.05}.resume-header #resume-intro{max-width:740px;color:var(--muted);margin:16px 0 0;font-size:1.05rem}.resume-actions{flex:none;margin-top:0}.experience-stack{display:grid}.experience-entry{border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:22px 48px;padding:34px 0 40px;display:grid}.experience-entry header{grid-column:1/-1;justify-content:space-between;align-items:end;gap:24px;display:flex}.experience-entry h3{font-family:var(--display);margin:6px 0 0;font-size:1.8rem;font-weight:560}.experience-entry header>span{color:var(--muted);font-size:.9rem;font-weight:650}.experience-problem{color:var(--muted);margin:0;font-size:1.02rem}.resume-detail h4{color:var(--accent);text-transform:uppercase;margin:0 0 8px;font-size:.78rem}.resume-detail ul{margin:0;padding-left:20px}.resume-detail li+li{margin-top:6px}.resume-detail a{color:var(--link);text-underline-offset:3px;text-decoration:underline}.experience-skills{color:var(--muted);grid-column:1/-1;margin:0;font-size:.9rem}.footer{border-top:1px solid var(--line-strong);min-height:116px;color:var(--muted);justify-content:space-between;align-items:center;gap:24px;font-size:.88rem;display:flex}.footer>div:first-child{gap:2px;display:grid}.footer strong{color:var(--ink)}.footer-links{gap:18px;display:flex}.footer a:hover,.footer a:focus-visible{color:var(--ink)}[hidden]{display:none!important}@keyframes pulse{0%{opacity:.45}to{opacity:1}}@media (width<=900px){.hero h1{font-size:5.4rem}html[lang=zh-CN] .hero h1{font-size:5rem}.work-proof{grid-template-columns:1fr}.work-link{grid-column:1}.checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-panel{grid-template-columns:1fr;gap:24px}.auth-panel .notice{grid-column:1}.experience-entry{grid-template-columns:1fr}.experience-skills{grid-column:1}}@media (width<=680px){.nav,.main,.footer{width:min(calc(100% - 28px), var(--max))}.nav{flex-direction:column;align-items:flex-start;gap:8px;min-height:108px;padding:13px 0}.nav-actions{justify-content:space-between;gap:12px;width:100%;min-height:42px}.nav-links{gap:16px;min-height:42px;font-size:.86rem}.hero{padding:56px 0 46px}.hero h1{font-size:3.55rem;line-height:.98}html[lang=zh-CN] .hero h1{font-size:3.7rem}.hero-copy{margin-top:22px;font-size:1.08rem}.hero-actions{flex-direction:column;align-items:flex-start;margin-top:28px}.focus-rail{grid-template-columns:1fr;margin-top:48px}.focus-rail li,.focus-rail li+li{border-left:0;padding:14px 0}.focus-rail li+li{border-top:1px solid var(--line)}.section{padding:58px 0}.section-head{flex-direction:column;align-items:start;margin-bottom:26px}.section h2,.closing-section h2{font-size:2.35rem}.page-header{padding:58px 0 42px}.page-header h1{font-size:3rem}.work-row{grid-template-columns:32px minmax(0,1fr);gap:12px;min-height:0}.work-link{grid-column:1;justify-self:start}.work-facts>div{grid-template-columns:62px minmax(0,1fr);gap:12px}.work-copy h3{font-size:1.48rem}.approach-list li{grid-template-columns:44px minmax(0,1fr);gap:14px}.two-columns,.checkbox-grid,.admin-summary{grid-template-columns:1fr}.form-section legend{font-size:1.35rem}.form-submit-row,.resume-header,.experience-entry header,.footer{flex-direction:column;align-items:start}.access-bar,.auth-form{grid-template-columns:1fr}.cadence-strip{grid-template-columns:58px minmax(0,1fr);gap:16px}.cadence-strip .button{grid-column:2;justify-self:start}.admin-summary>div,.admin-summary>div+div{border-left:0;border-top:1px solid var(--line);min-height:0;padding:16px 0}.admin-summary>div:first-child{border-top:0}.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.resume-header h2{font-size:2.35rem}.footer{min-height:0;padding:30px 0}.footer-links{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root{--canvas:#fff}.site-header,.footer,.resume-page-header,.auth-panel,.resume-actions{display:none!important}.main{width:100%}.resume-page,.resume-shell{margin:0;padding:0}.resume-header h2{font-size:2.4rem}.experience-entry{break-inside:avoid}}
