@font-face{font-family:DM Sans;src:url('assets/dm-sans.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:DM Serif;src:url('assets/dm-serif-display.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--paper:#fafbf8;--ink:#20382f;--green:#163b32;--red:#e16d56;--muted:#6d776f;--line:#dce1d9;--gutter:56px}
*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans','PingFang SC','Microsoft YaHei',sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{color:inherit}svg{width:20px;height:20px;stroke-width:1.5;flex-shrink:0}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:6px}button{cursor:pointer}p,h1,h2{margin:0}button:disabled{cursor:default}.skip-link{position:fixed;left:20px;top:-100px;z-index:30;padding:12px;background:white}.skip-link:focus{top:10px}.site-header{height:92px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--paper);position:relative;z-index:10}.wordmark{font-family:'DM Serif',Georgia,serif;font-size:34px;line-height:1;white-space:nowrap}.wordmark-dot{color:var(--red)}.desktop-nav{display:flex;gap:34px;align-items:center;margin-left:60px;font-size:14px}.desktop-nav a{position:relative;padding:12px 0}.desktop-nav a:after{content:'';position:absolute;bottom:4px;left:0;width:0;height:1px;background:var(--ink);transition:width .2s}.desktop-nav a:hover:after{width:100%}.header-actions{display:flex;align-items:center;gap:34px}.language-switch{display:flex;align-items:center;gap:6px;font-size:12px}.language-switch>span{color:#a5aba3}.language-switch button{border:0;background:none;padding:9px 3px;min-height:40px;color:var(--muted)}.language-switch button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:5px}.header-link{display:flex;gap:14px;align-items:center;font-size:13px;border-bottom:1px solid var(--ink);padding:9px 0}.header-link:hover{color:#8c382a}.icon-button{width:44px;height:44px;padding:0;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;background:transparent;flex-shrink:0}.menu-toggle{display:none}.mobile-nav[hidden]{display:none}.mobile-nav{position:absolute;inset:76px 0 auto;background:var(--paper);z-index:12;padding:12px 24px 28px;border-bottom:1px solid var(--line)}.mobile-nav a{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
.hero{position:relative;isolation:isolate;height:calc(100svh - 192px);min-height:540px;max-height:880px;color:#fff;overflow:hidden;background:#32626c}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 47%;z-index:-3}.hero-shade{position:absolute;inset:0;background:rgba(5,28,28,.16);z-index:-2}.hero-topline{position:absolute;top:30px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;font-size:11px}.hero-topline>span:first-child{display:flex;align-items:center;gap:12px}.small-cross{font-family:Arial,sans-serif;font-size:25px;line-height:18px;color:#f7baaa}.edition{font-size:10px}.hero-body{position:absolute;bottom:108px;left:var(--gutter);right:var(--gutter);display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:end}.intro{font-size:14px;color:#f1f1e9;margin-bottom:7px}.hero h1{font-family:'DM Serif',Georgia,serif;font-size:108px;line-height:1.08;font-weight:400;white-space:nowrap}.hero h1 span{color:#f0937b}.hero-description{padding-bottom:5px}.hero-description>p{font-size:17px;line-height:1.6;color:white}.primary-link{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--paper);color:var(--ink);padding:16px 20px;max-width:244px;min-height:54px;margin-top:24px;font-size:13px;transition:background .2s,transform .2s}.primary-link:hover{background:#e7ede1;transform:translateY(-2px)}.hero-bottom{position:absolute;bottom:25px;left:var(--gutter);right:var(--gutter);border-top:1px solid #ffffff45;padding-top:20px;display:flex;justify-content:space-between;align-items:center}.location{display:flex;align-items:center;gap:9px;font-size:10px}.location svg{width:14px;height:14px}.scroll-link{display:flex;align-items:center;gap:28px;font-size:11px}.scroll-link svg{width:16px;height:18px;transition:transform .2s}.scroll-link:hover svg{transform:translateY(4px)}
.section-shell{padding:45px var(--gutter) 64px;max-width:1800px;margin:auto}.section-heading{position:relative;padding-right:64px}.eyebrow{font-size:10px;line-height:1.5;display:flex;align-items:center;gap:9px}.red-tick{width:6px;height:6px;background:var(--red);display:inline-block}.section-heading h2{font-family:'DM Serif',Georgia,serif;font-size:34px;font-weight:400;line-height:1.2;margin-top:14px}.section-index{position:absolute;right:0;top:3px;font-size:12px;color:var(--muted)}.topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:42px;border-top:1px solid var(--line)}.topic{display:flex;text-align:left;align-items:flex-start;gap:18px;min-width:0;padding:30px 28px 8px 0;border:0;background:none;min-height:120px}.topic+.topic{border-left:1px solid var(--line);padding-left:28px}.topic-number{font-size:11px;color:var(--muted);padding-top:7px}.topic-text{min-width:0;flex:1}.topic-name{font-family:'DM Serif',Georgia,serif;font-size:26px;line-height:1.2;display:block}.topic-description{display:block;font-size:12px;line-height:1.7;color:var(--muted);max-width:225px;margin-top:13px}.topic>svg{width:18px;height:18px;margin-top:6px;transition:transform .2s}.topic:hover>svg{transform:translate(3px,-3px);color:#a14635}.topic:hover .topic-name{color:#984430}.about-band{background:var(--green);color:#f5f7ef;padding:76px var(--gutter);overflow:hidden}.about-inner{display:grid;grid-template-columns:1fr 1.65fr .35fr;gap:38px;max-width:1688px;margin:auto;position:relative}.about-inner>.eyebrow{align-self:start;margin-top:12px;color:#c6d3c9}.about-inner h2{font-family:'DM Serif',Georgia,serif;font-size:48px;font-weight:400;line-height:1.14}.about-copy{max-width:560px;font-size:14px;line-height:1.9;color:#cad6cc;margin-top:24px}.text-link{display:inline-flex;align-items:center;gap:30px;margin-top:28px;border-bottom:1px solid #aebfb1;padding-bottom:9px;font-size:12px}.about-symbol{font-family:Georgia,serif;font-size:220px;line-height:.9;color:#426255;justify-self:end}.notebook{padding-top:62px;padding-bottom:64px}.notebook-list{margin-top:34px;border-top:1px solid var(--line)}.note{width:100%;background:none;border:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:180px 1fr 24px;align-items:center;text-align:left;gap:24px;min-height:96px;padding:20px 0}.note-category{font-size:10px;color:var(--muted)}.note-title{font-family:'DM Serif',Georgia,serif;font-size:27px;line-height:1.25}.note:hover .note-title{color:#984430}.site-footer{padding:30px var(--gutter);display:flex;align-items:center;gap:36px;border-top:1px solid var(--line);font-size:11px}.site-footer>.wordmark{font-size:25px}.site-footer>span{color:var(--muted)}.photo-credit{display:flex;align-items:center;gap:7px;margin-left:auto;color:var(--muted);font-size:10px}.photo-credit svg{width:13px;height:13px}.site-footer .icon-button{border:0}dialog{position:fixed;inset:0;border:0;border-radius:4px;padding:68px 52px 50px;width:min(620px,calc(100% - 32px));max-height:calc(100svh - 40px);background:var(--paper);color:var(--ink)}dialog::backdrop{background:#10271ee0}.dialog-close{position:absolute;right:17px;top:17px;border:0}dialog h2{font:400 42px/1.15 'DM Serif',Georgia,serif;margin:22px 0}#reading-body p{font-size:16px;line-height:1.9;color:#59665d}#reading-body p+p{margin-top:20px}.reading-rule{display:block;width:42px;height:3px;background:var(--red);margin-top:34px}html[lang=zh] .hero h1{font-size:100px}html[lang=zh] .hero-description>p{line-height:1.8}html[lang=zh] .topic-name,html[lang=zh] .section-heading h2,html[lang=zh] .note-title,html[lang=zh] .about-inner h2,html[lang=zh] dialog h2{font-family:'Songti SC','Noto Serif CJK SC','SimSun',serif}html[lang=zh] .topic-name{font-size:24px}html[lang=zh] .about-inner h2{font-size:42px;line-height:1.5}
@media(min-width:1700px){:root{--gutter:80px}.hero h1{font-size:132px}.hero-body{grid-template-columns:minmax(0,1fr) 340px}.hero-description>p{font-size:19px}.primary-link{max-width:260px}.hero-body{bottom:115px}.intro{font-size:16px}.section-heading h2{font-size:38px}}
@media(max-width:1100px){:root{--gutter:36px}.desktop-nav{gap:24px;margin-left:0}.header-actions{gap:22px}.hero h1{font-size:84px}.hero-body{grid-template-columns:minmax(0,1fr) 235px;gap:20px}.hero-description>p{font-size:15px}.topic{gap:12px;padding-right:18px}.topic+.topic{padding-left:18px}.topic-name{font-size:23px}.about-inner{grid-template-columns:.8fr 1.6fr}.about-symbol{display:none}html[lang=zh] .hero h1{font-size:84px}}
@media(max-width:760px){:root{--gutter:24px}.site-header{height:76px}.wordmark{font-size:29px}.desktop-nav,.header-link{display:none}.header-actions{gap:16px}.menu-toggle{display:flex;border:0}.hero{height:calc(100svh - 166px);min-height:480px;max-height:760px}.hero-topline{top:24px;font-size:9px}.edition{display:none}.hero-image{object-position:51% 44%}.hero-body{bottom:89px;display:block}.hero h1,html[lang=zh] .hero h1{font-size:68px;white-space:normal}.intro{font-size:12px;margin-bottom:8px}.hero-description{margin-top:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:22px}.hero-description>p{font-size:13px;line-height:1.55;max-width:210px}.primary-link{font-size:11px;max-width:190px;min-width:168px;padding:13px 15px;min-height:46px;margin-top:0}.hero-bottom{bottom:21px;padding-top:18px}.location{font-size:8px}.scroll-link{gap:16px;font-size:10px}.section-shell{padding-top:30px;padding-bottom:40px}.section-heading h2{font-size:29px}.section-heading .eyebrow{font-size:9px}.topics{grid-template-columns:1fr;margin-top:28px}.topic,.topic+.topic{padding:23px 0;min-height:108px;border-left:0;border-bottom:1px solid var(--line);gap:20px}.topic-name{font-size:26px}.topic-description{max-width:none;margin-top:8px}.topic>svg{margin-left:18px}.about-band{padding-top:46px;padding-bottom:48px}.about-inner{grid-template-columns:1fr;gap:24px}.about-inner h2{font-size:42px}.about-inner>.eyebrow{margin:0}.about-copy{font-size:14px}.note{grid-template-columns:1fr 20px;gap:8px;min-height:104px}.note-category{grid-column:1}.note-title{grid-column:1;font-size:25px}.note svg{grid-column:2;grid-row:1 / span 2}.site-footer{flex-wrap:wrap;gap:18px}.site-footer>span{font-size:10px}.photo-credit{margin-left:0;flex:1;order:4}.site-footer .icon-button{margin-left:auto}.site-footer .wordmark{font-size:24px}dialog{padding:60px 28px 35px}dialog h2{font-size:34px}}
@media(max-width:460px){.hero h1,html[lang=zh] .hero h1{font-size:58px}.hero-description{display:block;margin-top:16px}.hero-description>p{max-width:270px;font-size:13px}.hero-description>p br{display:none}.primary-link{max-width:182px;margin-top:20px;min-height:45px}.hero-body{bottom:94px}.hero{min-height:480px}.hero-topline{font-size:9px}.hero-bottom{bottom:20px}.scroll-link span{display:none}.section-heading h2{font-size:27px}.section-heading{padding-right:28px}.section-index{font-size:10px}.hero-name .intro{font-size:11px}html[lang=zh] .hero-description>p{max-width:260px}html[lang=zh] .hero h1{font-size:58px}}
@media(max-width:350px){:root{--gutter:18px}.hero h1,html[lang=zh] .hero h1{font-size:49px}.site-header{gap:8px}.header-actions{gap:6px}.section-heading h2{font-size:25px}}
@media(max-height:650px){.hero{height:calc(100svh - 166px);min-height:0}.hero-body{bottom:88px}.hero-topline{top:20px}.hero h1{font-size:76px}html[lang=zh] .hero h1{font-size:76px}.hero-description>p{font-size:14px}}
@media(max-height:650px) and (max-width:460px){.hero h1,html[lang=zh] .hero h1{font-size:52px}.hero-description{margin-top:12px}.hero-description>p{font-size:12px}.primary-link{margin-top:13px;min-height:40px;padding-top:10px;padding-bottom:10px}}
@media(max-height:500px) and (min-width:761px){.hero-body{bottom:66px}.hero h1,html[lang=zh] .hero h1{font-size:60px}.hero-description>p{font-size:12px}.primary-link{margin-top:12px;min-height:40px;padding:10px 15px}.hero-bottom{bottom:14px;padding-top:12px}.intro{font-size:12px}}
.desktop-nav .portal-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.portal-link svg{width:16px;height:16px}
.linkedin-link{border:0}.linkedin-link:hover{color:#984430}
.linkedin-symbol{font-family:Arial,sans-serif;font-size:18px;font-weight:700;line-height:1;border:1px solid currentColor;padding:1px 2px;border-radius:2px}
.social-x-link{border:0;font-family:Arial,sans-serif;font-size:20px}.social-x-link:hover{color:#984430}
@media(min-width:1101px){.header-actions{gap:20px}}
@media(max-width:1100px){.social-x-link{display:none}}
.desktop-nav .skill-trigger{border:0;background:none;font:inherit;padding:12px 0}.skill-trigger:hover{color:#984430}.mobile-nav .skill-trigger{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 0;background:none;border:0;border-bottom:1px solid var(--line);text-align:left}
#skill-dialog{width:min(680px,calc(100% - 32px))}.skill-close{position:absolute;right:17px;top:17px;border:0}#skill-dialog h2{font-size:32px;line-height:1.3;margin:16px 0 10px}.skill-access{font-size:12px;color:var(--muted);line-height:1.6}.skill-label{display:block;font-size:12px;margin:24px 0 9px}#skill-command{display:block;resize:vertical;width:100%;height:220px;min-height:160px;max-height:340px;padding:16px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);font:14px/1.8 'DM Sans','PingFang SC','Microsoft YaHei',sans-serif;overflow-wrap:anywhere}#skill-command:focus-visible{outline:2px solid var(--red);outline-offset:2px}.copy-skill{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:160px;min-height:46px;margin-top:18px;padding:12px 18px;background:var(--green);color:white;border:0;border-radius:4px;font-size:13px}.copy-skill:hover{background:#285547}#skill-copy-status{font-size:12px;line-height:1.6;min-height:38px;margin-top:10px}
@media(min-width:761px) and (max-width:1100px){.desktop-nav,.header-link{display:none}.menu-toggle{display:flex;border:0}.mobile-nav{top:92px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
