@font-face{font-family:Reader Letters;src:url("assets/fonts/cormorant-garamond.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:Reader Letters;src:url("assets/fonts/cormorant-garamond-italic.woff2") format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:Reader TC;src:url("assets/fonts/noto-serif-tc.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:Reader JA;src:url("assets/fonts/ja-literary-mincho-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Reader JA;src:url("assets/fonts/ja-literary-mincho-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Reader TC;src:url("assets/fonts/library-tc-supplement.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+9685}
@font-face{font-family:Reader JA;src:url("assets/fonts/library-ja-400-supplement.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+518A,U+658E,U+8535,U+95B2}
@font-face{font-family:Reader JA;src:url("assets/fonts/library-ja-500-supplement.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+518A,U+658E,U+8535,U+95B2}
:root{color-scheme:dark;--night:#111b32;--gold:#e5c58f;--ivory:#f5eddd;--muted:#c5cbd7;--reader-font:"Reader Letters","Reader TC",Georgia,serif;--header-height:87px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;color:var(--ivory);background:var(--night);font:400 17px/1.7 var(--reader-font);min-width:280px}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(0deg,#111b3252,#111b3210),url("assets/resume/star-library.svg") center top/cover no-repeat;pointer-events:none}
a{color:inherit;text-decoration:none;text-underline-offset:5px}
button{font:inherit}
a:focus-visible,button:focus-visible{outline:2px solid #f3d49c;outline-offset:5px}
.resume-paper a:focus-visible{outline-color:#506078}
.reader-skip{position:fixed;left:20px;top:-100px;z-index:100;background:#f6ecd8;color:#202b43;padding:10px 18px}
.reader-skip:focus{top:12px}
.library-header{position:relative;border-bottom:1px solid #dac29629;background:linear-gradient(180deg,#0d152bd9,#14203899)}
.library-header-inner{width:min(1392px,calc(100% - 80px));min-height:86px;margin:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.return-link{display:inline-flex;align-items:center;gap:12px;justify-self:start;min-height:44px;font-size:15px;color:#e6d7bb}
.reader-return-links{display:flex;align-items:center;flex-wrap:wrap;gap:0 22px}
.return-link:hover,.reader-original:hover,.reader-footer a:hover{color:#ffedca;text-decoration:underline}
.library-brand{display:flex;align-items:center;gap:13px;font-size:27px;line-height:1.08}
.library-brand img{width:28px;height:34px}
.library-brand small{display:block;margin-top:7px;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:#c8c9d0}
.reader-languages{display:flex;align-items:center;gap:8px;justify-self:end;font-size:11px;color:#c7cbd6}
.reader-languages button{border:0;background:transparent;padding:8px 3px;min-width:27px;min-height:44px;color:inherit;cursor:pointer}
.reader-languages button[aria-pressed=true]{color:var(--gold)}
.library-introduction{position:relative;text-align:center;padding:53px 24px 29px}
.library-eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#dcc99f}
.library-introduction h1{font-weight:400;font-size:clamp(38px,4.3vw,59px);letter-spacing:.01em;line-height:1.15;margin:13px 0 12px}
.library-introduction p{font-size:18px;color:#d1d2dc;margin:0 auto;max-width:48ch;text-wrap:balance}
.library-divider{display:flex;align-items:center;justify-content:center;gap:17px;margin:25px auto 0;color:#d6b98199}
.library-divider>span{width:100px;height:1px;background:linear-gradient(90deg,transparent,#d6b98180)}
.library-divider>span:last-child{transform:rotate(180deg)}
.library-divider svg{width:48px;height:24px;fill:none;stroke:currentColor;stroke-width:.8}
.reading-room{width:min(1216px,calc(100% - 80px));margin:0 auto 60px;display:grid;grid-template-columns:184px minmax(0,1fr);gap:39px;align-items:start}
.library-index{position:sticky;top:27px;padding-top:28px;color:#d2d1d9}
.index-kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px;color:#e0c99b}
.chapter-index{display:grid;gap:5px}
.chapter-index a{display:grid;grid-template-columns:25px 1fr;gap:9px;padding:8px 0;font-size:15px;min-height:44px;align-items:center;color:#d4d5df}
.chapter-index a>span:first-child{font-size:11px;color:#bfa67b}
.chapter-index a:hover,.chapter-index a[aria-current=true]{color:#ffe8bb}
.chapter-index a[aria-current=true]>span:first-child{color:#ffe8bb}
.index-star-map{display:block;width:142px;height:160px;margin:35px auto 15px;fill:none;stroke:#d1b57e55;stroke-width:.6}
.index-star-map g{fill:#f0d299;stroke:none}
.index-coda{font-size:15px;font-style:italic;color:#c5c3d0;line-height:1.7;margin:0;text-wrap:balance}
.reading-column{min-width:0}
.reader-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 0 17px;border-bottom:1px solid #dcc29544}
.folio-label{display:flex;align-items:center;gap:13px;font-size:13px;color:#d9c5a3}
.folio-label>span:first-child{font-size:19px;font-style:italic;color:#e5d3ae}
.reader-file-actions{display:flex;align-items:center;gap:23px}
.reader-download{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#e3c791;color:#1a2840;border:1px solid #efd8aa;padding:7px 15px;min-height:44px;font-size:14px;font-weight:500;box-shadow:0 2px 14px #080f2140;border-radius:2px}
.reader-download svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1}
.reader-download:hover{background:#f0dbb1}
.reader-original{display:inline-flex;align-items:center;gap:8px;font-size:14px;min-height:44px;color:#e6d6b5}
.reader-source-note{margin:12px 0 17px;font-size:13px;color:#c9cbd4}
.resume-paper{position:relative;color:#31313b;background:linear-gradient(105deg,#fffdf9,#f8f3e9 72%,#f1eadc);padding:52px 59px 37px;box-shadow:0 18px 70px #05091466,0 0 0 1px #d6bd8b75,0 0 0 6px #e5d2ab09;isolation:isolate}
.resume-paper::before{content:"";position:absolute;inset:9px;border:1px solid #b5a17e4a;pointer-events:none;z-index:-1}
.paper-corner{position:absolute;width:27px;height:27px;border-color:#b09a734f;border-style:solid;pointer-events:none}
.paper-corner-one{top:17px;left:17px;border-width:1px 0 0 1px}
.paper-corner-two{bottom:17px;right:17px;border-width:0 1px 1px 0}
.resume-heading{text-align:center;margin:0 0 30px}
.resume-heading h2{font-size:39px;font-weight:500;letter-spacing:.01em;line-height:1.2;margin:0 0 10px;color:#222a3a}
.resume-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:3px 18px;font-size:14px;line-height:1.55}
.resume-contact a{color:#4d586b;text-decoration:underline;text-decoration-color:#a7a6a380;overflow-wrap:anywhere}
.resume-section{margin:29px 0 0;scroll-margin-top:24px}
.resume-section h3{display:flex;align-items:center;gap:16px;font-size:20px;line-height:1.4;font-weight:600;color:#675440;margin:0 0 18px;letter-spacing:.035em}
.resume-section h3::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,#b39c7475,transparent)}
.resume-entry{margin:0 0 23px;break-inside:avoid}
.resume-entry:last-child{margin-bottom:0}
.entry-topline{display:flex;justify-content:space-between;gap:18px;align-items:baseline}
.resume-entry h4{font-size:20px;line-height:1.45;font-weight:600;color:#293348;margin:0}
.entry-date{font-size:14px;white-space:nowrap;color:#6d6258}
.entry-subline{display:flex;justify-content:space-between;gap:18px;margin-top:1px}
.entry-organization{font-style:italic;font-size:17px;color:#535565;line-height:1.5}
.entry-place{font-size:14px;white-space:nowrap;color:#777066}
.entry-detail{font-size:17px;line-height:1.6;margin:3px 0 0}
.resume-paper ul{padding-left:19px;margin:9px 0 0;font-size:17px;line-height:1.6}
.resume-paper li{padding-left:3px;margin:5px 0}
.resume-paper li::marker{color:#a78b5f;font-size:.7em}
.publication-copy{font-size:17px;line-height:1.7;margin:0}
.publication-copy a{color:#3e516c;text-decoration:underline;text-decoration-color:#ac947369;text-decoration-thickness:1px;text-underline-offset:4px}
.publication-copy a:hover{color:#755d39;text-decoration-color:currentColor}
.resume-skills{margin:0;display:grid;gap:10px;font-size:17px;line-height:1.65}
.resume-skills>div{display:grid;grid-template-columns:165px 1fr;gap:13px}
.resume-skills dt{font-weight:600;color:#3b4050}
.resume-skills dd{margin:0;overflow-wrap:anywhere}
.paper-end{display:flex;align-items:center;justify-content:center;gap:12px;color:#af9975;font-size:23px;margin-top:34px}
.paper-end span{display:block;height:1px;width:40px;background:#b19d7959}
.reader-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 0 0;color:#d1c7b6;font-size:14px}
.reader-footer>span{font-style:italic}
.reader-footer a{display:inline-flex;gap:10px;align-items:center;min-height:44px}
html[lang=zh-Hant]{--reader-font:"Reader Letters","Reader TC",Georgia,serif}
html[lang=ja]{--reader-font:"Reader Letters","Reader JA",Georgia,serif}
html[lang=zh-Hant] .library-introduction h1,html[lang=ja] .library-introduction h1{font-size:clamp(31px,3.4vw,45px);line-height:1.6;letter-spacing:.08em}
html[lang=zh-Hant] .library-introduction p,html[lang=ja] .library-introduction p{font-size:15px;line-height:1.9;max-width:33em}
html[lang=zh-Hant] :is(.return-link,.chapter-index a,.index-coda),html[lang=ja] :is(.return-link,.chapter-index a,.index-coda){font-size:13px}
html[lang=zh-Hant] :is(.folio-label,.reader-source-note,.reader-footer),html[lang=ja] :is(.folio-label,.reader-source-note,.reader-footer){font-size:12px}
html[lang=zh-Hant] :is(.reader-download,.reader-original),html[lang=ja] :is(.reader-download,.reader-original){font-size:12px}
.resume-paper{font-family:"Reader Letters",Georgia,serif}
@media(max-width:1100px){
 .library-header-inner{width:calc(100% - 48px)}
 .reading-room{width:calc(100% - 48px);grid-template-columns:145px minmax(0,1fr);gap:24px}
 .resume-paper{padding:41px 35px 30px}
 .reader-tools{gap:12px}.reader-file-actions{gap:16px}.folio-label{gap:7px}
 .resume-skills>div{grid-template-columns:145px 1fr}
 .entry-topline,.entry-subline{flex-wrap:wrap;gap:2px 15px}
 .entry-date,.entry-place{white-space:normal}
}
@media(max-width:850px){
 .reading-room{display:block;max-width:730px}
 .library-index{position:static;padding:0 0 19px}
 .index-kicker,.index-star-map,.index-coda{display:none}
 .chapter-index{display:flex;flex-wrap:wrap;gap:0 20px;border-bottom:1px solid #c7ac7b2e;padding-bottom:13px}
 .chapter-index a{display:flex;gap:7px;font-size:14px;min-height:44px}
 .reader-tools{padding-top:1px}
 .library-introduction{padding-top:37px;padding-bottom:25px}
 .library-brand{font-size:24px}.library-header-inner{gap:15px}
}
@media(max-width:600px){
 .library-header-inner{width:calc(100% - 36px);grid-template-columns:1fr auto;gap:0 15px;min-height:105px;padding:13px 0 8px}
 .library-brand{grid-row:1;grid-column:1;font-size:23px;gap:9px}
 .library-brand img{width:23px;height:29px}
 .library-brand small{font-size:7px;margin-top:6px}
 .reader-languages{grid-row:1;grid-column:2;gap:3px;font-size:10px}
 .reader-languages button{min-width:25px}
 .return-link{grid-row:2;grid-column:1/-1;min-height:37px;font-size:13px;gap:8px;margin-top:5px}
 .reader-return-links{grid-row:2;grid-column:1/-1;gap:0 25px}.reader-return-links .return-link{min-height:44px;margin-top:0}
 .reading-room{width:calc(100% - 28px);margin-bottom:24px}
 .library-introduction{padding:27px 22px 18px}
 .library-eyebrow{font-size:9px;letter-spacing:.12em}
 .library-introduction h1{font-size:37px;margin:12px 0 10px}
 .library-introduction p{font-size:16px;line-height:1.6;max-width:30ch}
 .library-divider{margin-top:18px;gap:12px}.library-divider>span{width:63px}
 .library-index{padding:0 5px 14px}.chapter-index{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 12px;padding-bottom:10px}
 .chapter-index a{grid-column:span 2;min-width:0;font-size:13px}.chapter-index a:nth-last-child(-n+2){grid-column:span 3}.chapter-index a>span:first-child{font-size:10px}
 .folio-label{display:none}
 .reader-tools{justify-content:center;padding-bottom:12px}
 .reader-file-actions{width:100%;justify-content:space-between;gap:10px}
 .reader-download{font-size:14px;padding:7px 12px}
 .reader-original{font-size:14px;gap:6px}
 .reader-source-note{font-size:12px;margin:10px 4px 15px;text-wrap:balance}
 .resume-paper{padding:35px 23px 25px}
 .resume-paper::before{inset:6px}
 .paper-corner-one{top:12px;left:12px}.paper-corner-two{bottom:12px;right:12px}
 .paper-corner{width:16px;height:16px}
 .resume-heading{margin-bottom:28px}
 .resume-heading h2{font-size:32px}
 .resume-contact{display:grid;gap:6px;font-size:13px}
 .resume-section{margin-top:27px}
 .resume-section h3{font-size:19px;gap:11px;letter-spacing:.01em}
 .resume-entry h4{font-size:20px;line-height:1.35}
 .entry-date{font-size:13px}
 .entry-subline{display:block;margin-top:3px}
 .entry-organization{font-size:17px}
 .entry-place{display:block;font-size:13px;margin-top:2px}
 .entry-detail,.resume-paper ul,.publication-copy,.resume-skills{font-size:17px;line-height:1.6}
 .resume-paper ul{padding-left:17px}
 .resume-paper li{margin:8px 0}
 .resume-skills>div{display:block}.resume-skills dt{margin-bottom:1px}
 .reader-footer{padding:14px 4px 0;font-size:13px}
 html[lang=zh-Hant] .library-introduction h1,html[lang=ja] .library-introduction h1{font-size:30px;letter-spacing:.06em;line-height:1.55}
 html[lang=zh-Hant] .library-introduction p,html[lang=ja] .library-introduction p{font-size:14px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{
 :root{color-scheme:light}body{background:#fff;color:#111}
 body::before,.library-header,.library-introduction,.library-index,.reader-tools,.reader-source-note,.reader-footer,.paper-corner,.paper-end{display:none}
 .reading-room{display:block;width:auto;margin:0}.resume-paper{box-shadow:none;background:#fff;padding:0}.resume-paper::before{display:none}
 .resume-paper{font-size:12pt}.resume-contact a{color:#111}.resume-section{break-inside:auto}
}
