@charset "UTF-8";
:root{color-scheme:light;--bg:#f5f5f0;--surface:#fff;--surface-2:#ebeee7;--text:#222b28;--muted:#59655f;--primary:#246454;--accent:#ad623a;--border:#d9dfd7;--radius:12px;--maxw:1120px;--font-sans:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;--font-mono:Consolas,"SFMono-Regular",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.8 var(--font-sans);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:1.4}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ad623a;outline-offset:5px}img,svg{max-width:100%}button:disabled{cursor:not-allowed;opacity:.55}.container{width:min(var(--maxw),calc(100% - 64px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(245,245,240,.97);border-bottom:1px solid var(--border)}.nav-inner{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{font-weight:750;letter-spacing:.03em;white-space:nowrap}.brand span{font-weight:400;color:var(--muted);font-size:12px;letter-spacing:0;margin-left:6px}.site-header nav{display:flex;align-items:center;gap:28px;font-size:14px}.site-header nav a{padding:10px 0}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--primary)}.site-header nav .nav-resume{padding:8px 15px;border:1px solid var(--text);border-radius:5px;font-weight:650}.skip-link{position:fixed;top:-100px;left:16px;padding:10px 18px;background:var(--text);color:#fff;z-index:50}.skip-link:focus{top:12px}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:10px 21px;border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:6px;font-size:14px;font-weight:600;line-height:1.5;transition:background .15s}.button:hover{background:#1c4f42}.button-secondary{background:transparent;border-color:var(--border);color:var(--text)}.button-secondary:hover{background:var(--surface-2)}.text-link{display:inline-flex;gap:14px;align-items:center;font-weight:600;font-size:14px;color:var(--primary);padding-block:9px}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.eyebrow,.section-eyebrow{color:var(--primary);font:12px/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}.muted{color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}.section-heading h2{font-size:30px;letter-spacing:-.025em}.section-heading p{color:var(--muted)}.section-heading .eyebrow{color:var(--primary);margin-bottom:10px}.notice{font-size:13px;line-height:1.85;padding:16px 20px;border-left:3px solid var(--primary);background:#e9eee8;color:#47574e;margin:24px 0}.site-footer{border-top:1px solid var(--border);padding:28px 0 34px;color:var(--muted);font-size:12px}.site-footer .container{display:flex;justify-content:space-between;gap:24px}.site-footer a:hover{color:var(--primary)}.page-section{padding:72px 0;border-top:1px solid var(--border)}.pill{display:inline-block;padding:3px 10px;border:1px solid var(--border);border-radius:4px;color:var(--muted);font-size:12px}.section-kicker{font:12px var(--font-mono);color:var(--muted)}
@media(max-width:800px){.container{width:calc(100% - 40px)}.nav-inner{min-height:68px;gap:16px}.brand span{display:none}.site-header nav{gap:17px;font-size:13px}.section-heading{align-items:flex-start;flex-direction:column;gap:12px}.section-heading h2{font-size:27px}.page-section{padding:52px 0}.site-footer .container{flex-direction:column;gap:8px}}
@media(max-width:480px){.nav-inner{flex-wrap:wrap;padding:12px 0;gap:8px}.site-header nav{width:100%;justify-content:space-between;gap:8px}.site-header nav a{padding:4px 0}.site-header nav .nav-resume{padding:4px 10px}.brand{font-size:15px}.brand span{display:inline;font-size:11px}.button{padding-inline:16px}.notice{padding:14px 16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.lead{color:var(--muted);font-size:16px;line-height:1.9}
