:root{--bg:#f7f5ee;--ink:#233c36;--muted:#6c756b;--line:#d9ddd1;--accent:#8d7048}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b29158;outline-offset:5px}header{max-width:1440px;margin:auto;padding:30px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;font:24px Georgia,serif}.brand small{display:block;font:9px/2.5 sans-serif;letter-spacing:2px}.seal{border:1px solid var(--accent);color:var(--accent);padding:8px 4px;writing-mode:vertical-rl;font-size:18px}nav{display:flex;gap:32px;font-size:13px}nav a:hover,.textlink:hover{color:var(--accent)}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;padding:65px 5% 70px;gap:65px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2.5px;color:var(--accent);font-weight:600}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.13}h1{font-size:clamp(48px,5.3vw,82px);letter-spacing:-3px;margin:30px 0}h1 em{font-weight:400;color:#708071}.intro{color:var(--muted);max-width:460px;font-size:16px}.actions{display:flex;gap:28px;align-items:center;margin-top:34px}.button{background:var(--ink);color:#fff;padding:14px 23px;font-size:13px;display:inline-flex;gap:40px}.button:hover{background:#466357}.textlink{font-size:13px;border-bottom:1px solid #a8b4a6;padding-bottom:4px}.hero-note,.fine{font-size:11px;color:var(--muted)}.hero-note{margin-top:24px}.landscape{height:535px;overflow:hidden;position:relative;background:linear-gradient(#e5e8db,#ece9d8 55%,#b7c3b7);border-radius:48% 48% 2px 2px}.sun{position:absolute;width:110px;height:110px;border-radius:50%;background:#c9ad77;opacity:.6;top:90px;left:calc(50% - 55px);box-shadow:0 0 60px #eee7d7}.mountain{position:absolute;inset:0;clip-path:polygon(0 70%,15% 48%,28% 59%,45% 32%,62% 50%,76% 37%,100% 66%,100% 100%,0 100%)}.far{background:#aebfb1;top:100px;opacity:.6}.middle{background:#78968b;top:190px;transform:scaleX(-1);opacity:.65}.near{background:linear-gradient(#496f63,#294c44);top:300px}.vertical{position:absolute;right:35px;top:90px;writing-mode:vertical-rl;letter-spacing:10px;color:#637366;font-family:serif;font-size:22px}.land-caption{position:absolute;bottom:23px;left:30px;color:#e6e9db;font-size:9px;letter-spacing:3px}.bridge{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:1296px;margin:0 auto 50px;padding:40px 0;display:grid;grid-template-columns:1fr 1.4fr 1.5fr;gap:35px;align-items:start}.bridge>p{font-size:9px;letter-spacing:2px;color:var(--accent)}h2{font-size:42px;margin:12px 0}.bridge h2{font-size:31px}.bridge div p{margin-top:8px;color:var(--muted);font-size:14px}.section{max-width:1440px;padding:60px 5% 80px;margin:auto}.section-head{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:34px}.section-head>p{max-width:370px;color:var(--muted);font-size:14px}.library-tools{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;margin-bottom:10px}.library-tools label{font-size:11px;color:var(--muted)}input[type=search]{display:block;border:0;border-bottom:1px solid var(--line);background:none;padding:9px 0;width:320px;color:var(--ink);font-size:14px}.library-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 25px}.volume{border-top:1px solid var(--line);padding:23px 0;display:block}.volume:hover{background:#eaece2}.volume span{font:11px sans-serif;letter-spacing:2px;color:var(--accent)}.volume h3{font-size:26px;margin:14px 0 8px}.volume small{color:var(--muted);font-size:11px}.books-section{background:#e9ede4}.book-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:100px;padding:30px 7%;align-items:center}.editorial-cover{background:#294a41;color:#eee7d2;text-align:center;max-width:310px;padding:40px 25px;box-shadow:10px 14px 24px #263f352b;border-left:7px solid #1e3932;transform:rotate(-3deg)}.editorial-cover>span{font-size:11px;letter-spacing:4px}.editorial-cover h3{font-size:38px;margin:24px 0}.editorial-cover small{font-size:8px;letter-spacing:2px}.editorial-cover p{font:20px Georgia}.cover-line{height:50px;border-top:1px solid #a99f76;border-radius:50%;margin-top:40px}.book-copy h3{font-size:34px}.book-copy p{font-size:14px;color:var(--muted)}.edition{display:flex;justify-content:space-between;padding:18px 0;border-top:1px solid #c4cebe;font-family:Georgia}.edition span{font:11px sans-serif}.book-copy>.textlink{display:inline-block;margin-top:24px}.about{text-align:center;max-width:850px;padding-top:95px;padding-bottom:110px}.about h2{font-size:48px}.about>p:not(.eyebrow){max-width:600px;margin:25px auto;color:var(--muted)}footer{border-top:1px solid var(--line);padding:40px 5%;display:flex;justify-content:space-between;gap:30px}footer p,footer small{font-size:11px;color:var(--muted)}.reader-top{display:flex;gap:25px;align-items:center;justify-content:space-between;padding:20px 5%;border-bottom:1px solid var(--line)}button{border:1px solid var(--line);padding:8px 12px;background:transparent;color:inherit;cursor:pointer;font-size:12px}.reader-layout{max-width:1200px;margin:35px auto;display:grid;grid-template-columns:190px 1fr;gap:65px;padding:0 25px}aside{position:sticky;top:20px;align-self:start}aside label{display:block;font-size:12px;margin-bottom:20px}aside select,aside input{display:block;width:100%;margin-top:7px}select{background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:6px;font-size:12px}.reading-column{max-width:760px;min-width:0}.reader-notice{font-size:10px;color:var(--muted);letter-spacing:1px;border-bottom:1px solid var(--line);padding-bottom:20px}.reader-notice small{letter-spacing:0;font-size:11px}article{font-family:Georgia,serif;font-size:20px;line-height:1.8;user-select:none;-webkit-user-select:none}article h2{font-size:32px;margin-top:35px}article h3{font-size:25px}article p{overflow-wrap:anywhere}article p.active{border-left:2px solid var(--accent);padding-left:14px}.reader-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:20px}.reader-pagination span{font-size:11px}body.sepia{--bg:#eee3cb;--ink:#4d4233;--muted:#786b57;--line:#d1c3aa}body.night{--bg:#1c2925;--ink:#e5e6d8;--muted:#b1baac;--line:#43534a;--accent:#d0b581}#status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 20px;font-size:12px;display:none}.skip{position:fixed;top:-80px;background:white;padding:10px;z-index:20}.skip:focus{top:0}[hidden]{display:none!important}@media(max-width:900px){header{gap:20px}.brand{font-size:20px}nav{gap:15px;font-size:11px}.hero{gap:30px}.landscape{height:450px}.bridge{margin:0 5%;grid-template-columns:1fr 2fr}.bridge>p{grid-column:1/-1}.library-grid{grid-template-columns:repeat(3,1fr)}.book-layout{gap:45px;padding:20px 0}.reader-layout{gap:25px;grid-template-columns:160px 1fr}}@media(max-width:600px){header{flex-wrap:wrap;padding:20px 6%}nav{width:100%;justify-content:space-between}.hero{grid-template-columns:1fr;padding:35px 6%;gap:30px}h1{font-size:57px}.landscape{height:340px}.sun{top:45px}.vertical{top:55px}.far{top:35px}.middle{top:90px}.near{top:160px}.actions{gap:18px}.bridge{display:block;padding:25px 0}.section{padding:40px 6%}.section-head{display:block}.section-head>p{max-width:none}h2{font-size:36px}.library-tools{display:block}.library-tools>a{display:inline-block;margin-top:18px}.library-grid{grid-template-columns:repeat(2,1fr);gap:0 15px}input[type=search]{width:100%}.book-layout{grid-template-columns:1fr}.editorial-cover{margin:auto;width:260px}.about h2{font-size:38px}footer{flex-direction:column;gap:8px}.reader-top{flex-wrap:wrap;gap:10px}.reader-top>span{font-size:12px}.reader-layout{display:block;padding:0 6%}aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:0 15px;margin-bottom:25px}aside .fine{grid-column:1/-1}article{font-size:19px}.reader-pagination{flex-wrap:wrap}}@media print{body>*{display:none!important}body:after{display:block;content:'© Naichen Chen. All rights reserved. This manuscript is provided for online reading. Printing is not offered.';color:#000}}

.published-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 25px;margin-top:55px}.published-volume{display:flex;align-items:center;gap:20px;border-top:1px solid #c4cebe;padding:25px 0}.book-number{font:38px Georgia;color:#8b9b85}.published-volume h3{font-size:24px;margin:0}.published-volume p{font-size:11px;margin:6px 0;color:var(--muted)}.published-volume small{font-size:11px;color:var(--accent)}.published-volume:hover h3{color:var(--accent)}body:has(#readerView:not([hidden])){scroll-behavior:auto}@media(max-width:900px){.published-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.published-grid{grid-template-columns:1fr}button,select{min-height:44px}nav a{padding:8px 0}.reader-top{padding:12px 6%}html:has(#readerView:not([hidden])){scroll-behavior:auto}}
/* Keep reading actions available throughout long manuscripts. */
.reader-top{position:sticky;top:0;z-index:10;background:var(--bg);box-shadow:0 2px 8px #00000008}
html:has(#readerView:not([hidden])){scroll-padding-top:110px}
@media(min-width:601px){.reader-layout aside{top:90px}}
@media(max-width:600px){.reader-top{display:grid;grid-template-columns:1fr auto;gap:8px 12px}.reader-top>#bookmark{grid-column:1/-1;width:100%}.reader-top>#readerTitle{text-align:right}html:has(#readerView:not([hidden])){scroll-padding-top:135px}}
/* Keep the complete inscription inside the arch at every artwork width. */
.landscape .vertical{top:32%;right:10%;font-size:clamp(18px,2vw,22px);letter-spacing:7px;white-space:nowrap;line-height:1.3}
@media(max-width:600px){.landscape .vertical{top:32%;right:10%;font-size:18px;letter-spacing:6px}}

@media(max-width:600px){header nav{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px}header nav a{min-height:40px;display:flex;align-items:center}}

.biography{max-width:1040px;padding-top:80px}.biography h1{margin-bottom:25px}.bio-lead{font:24px/1.6 Georgia,serif;color:var(--muted);padding-bottom:40px;border-bottom:1px solid var(--line)}.bio-body{max-width:700px;margin:50px 0 30px auto}.bio-body h2{font-size:32px;margin-top:45px}.bio-body p{color:var(--muted);margin:22px 0}.bio-body .button{margin-top:20px}@media(max-width:600px){.biography{padding-top:40px}.bio-lead{font-size:21px}}

/* Actual publisher covers, always shown in full without cropping. */
.catalogue-intro{max-width:680px;color:var(--muted);font-size:15px;margin:0 0 35px}.published-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:45px 30px;margin-top:30px}.published-volume{display:block;padding:0 0 22px;border-top:0;min-width:0}.cover-stage{height:310px;display:flex;align-items:center;justify-content:center;padding:18px;background:#e0e6da}.cover-stage img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(5px 8px 6px #1f38252b);transition:transform .2s}.published-volume:hover img{transform:translateY(-4px)}.edition-details{padding:20px 0 0}.edition-details .eyebrow{font-size:9px;letter-spacing:1.5px}.published-volume h3{font-size:27px;margin:10px 0}.published-volume p{font-size:12px;line-height:1.5;margin:8px 0 14px}.published-volume small{font-size:12px;border-bottom:1px solid #adb99f;padding-bottom:4px}@media(max-width:1100px){.published-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.published-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 22px}.cover-stage{height:300px}}@media(max-width:440px){.published-grid{gap:30px 16px}.cover-stage{height:235px;padding:10px}.published-volume h3{font-size:24px}.edition-details .eyebrow{font-size:8px;letter-spacing:.7px}}@media(prefers-reduced-motion:reduce){.cover-stage img{transition:none}.published-volume:hover img{transform:none}}

/* Persistent reading shortcuts, with room for touch targets on small screens. */
.reader-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.reader-actions button{min-height:44px;background:var(--bg)}.reader-actions button:disabled{opacity:.5;cursor:default}.reader-top>#readerTitle{min-width:0}.reader-top{gap:12px}html:has(#readerView:not([hidden])){scroll-padding-top:calc(var(--reader-toolbar-height,100px) + 20px)}
@media(max-width:900px){.reader-top{flex-wrap:wrap}.reader-actions{width:100%}.reader-actions button{flex:1}}
@media(max-width:600px){.reader-top>.reader-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.reader-actions #bookmark{grid-column:1/-1}.reader-actions button{font-size:11px;padding:8px}.reader-top{padding:8px 6%}}
