:root{--paper:#f4efe3;--ink:#242721;--muted:#56594e;--red:#8b3029;--rule:#b9b4a7;--serif:Georgia,'Songti TC','PMingLiU',serif;--brush:'Kaiti TC','STKaiti','KaiTi','BiauKai','Songti TC',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang TC','Microsoft JhengHei',sans-serif}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font:20px/1.75 var(--sans)}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:8;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.zh{display:none!important}html[lang=zh-Hant] .en{display:none!important}html[lang=zh-Hant] .zh{display:revert!important}html[lang=zh-Hant] body{line-height:1.95}a{color:inherit;text-underline-offset:5px}button,summary{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button{border:0}a:hover{color:var(--red)}:focus-visible{outline:3px solid var(--red);outline-offset:5px}h1,h2,h3,p,figure,blockquote{margin:0}h1,h2,h3{font-weight:400}h1,h2,blockquote{font-family:var(--serif)}html[lang=zh-Hant] h1,html[lang=zh-Hant] h2{font-family:var(--brush)}p+p{margin-top:1.15em}img{max-width:100%;height:auto;display:block}figure{min-width:0}figcaption,.note,.source,small{font-size:16px;line-height:1.65}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}figcaption{margin-top:14px;color:var(--muted)}.skip{position:fixed;left:15px;top:-150px;z-index:30;background:var(--paper);padding:12px}.skip:focus{top:10px}.rail{position:fixed;inset:0 auto 0 0;width:76px;border-right:1px solid var(--rule);z-index:12;background:var(--paper);display:flex;align-items:center;justify-content:space-between;flex-direction:column;padding:24px 0}.seal{font:26px/1 var(--brush);background:var(--red);color:var(--paper);padding:10px;text-decoration:none;border:1px solid var(--red);outline-offset:4px}.seal:hover{color:white}.rail-word{writing-mode:vertical-rl;font:27px/1.2 var(--brush);letter-spacing:.3em}.rail-date{writing-mode:vertical-rl;font:15px var(--sans);letter-spacing:.15em}.shell{margin-left:76px}.top{position:sticky;top:0;z-index:15;background:var(--paper);border-bottom:1px solid var(--rule);min-height:78px;padding:12px 4vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font:18px var(--serif);text-decoration:none;display:flex;align-items:center;min-height:44px}.tools{display:flex;align-items:center;gap:26px}.lang{background:var(--red);color:var(--paper);min-width:76px;min-height:46px;padding:6px 16px;font-size:18px}.lang:hover{background:#70251f}.menu summary{font-size:17px;min-height:46px;display:flex;align-items:center;gap:15px;list-style:none}.menu summary::-webkit-details-marker{display:none}.menu summary:after{content:'+';font:30px var(--sans)}.menu[open] summary:after{content:'−'}.chapter-links{position:absolute;right:0;top:100%;background:var(--paper);border:1px solid var(--rule);padding:24px 4vw 32px;width:min(650px,100%);max-height:calc(100dvh - 90px);overflow:auto;box-shadow:0 15px 24px #24272116}.chapter-links a{display:grid;grid-template-columns:38px 1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-size:18px;min-height:48px}.chapter-links .date{font-size:15px;color:var(--muted)}.chapter-links a[aria-current=true]{color:var(--red)}.edition{font-size:14px;color:var(--muted);letter-spacing:.06em}.opening{padding:26px 5vw 32px}.opening-meta{display:flex;justify-content:space-between;gap:20px;font-size:15px}.opening-grid{display:grid;grid-template-columns:1.06fr 1fr;gap:5vw;align-items:center;padding:48px 0 30px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:15px;line-height:1.6;color:var(--red)}h1{font-size:clamp(64px,7.6vw,124px);line-height:.97;letter-spacing:-.06em;margin:25px 0}.name-cn{font:clamp(28px,3.4vw,52px)/1.4 var(--brush);letter-spacing:.13em;margin:24px 0 18px}.intro{max-width:31rem;font:23px/1.55 var(--serif)}.hero-photo{position:relative;padding:0 0 20px 20px}.hero-photo:before{content:'';position:absolute;inset:22px 22px 0 0;border:1px solid var(--red)}.hero-photo img{position:relative;width:100%;aspect-ratio:4/4.5;object-fit:cover;object-position:57% 45%;filter:sepia(.12) saturate(.7)}.hero-photo figcaption{position:relative;font-size:14px}.opening-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid var(--rule);padding-top:25px}.read-link{display:inline-flex;align-items:center;gap:45px;text-decoration:none;font-size:18px;min-height:48px}.read-link .arrow{font-size:30px}.horse-sign{display:flex;align-items:center;gap:15px}.horse-sign img{width:140px;height:96px;object-fit:contain}.horse-sign span{font:30px var(--brush);writing-mode:vertical-rl;letter-spacing:.15em}.prologue{padding:110px 8vw 120px;background:var(--ink);color:var(--paper)}.prologue .eyebrow{color:#e7bfb1}.prologue blockquote{max-width:1020px;margin:40px 0 30px;font-size:clamp(32px,4.5vw,68px);line-height:1.2;letter-spacing:-.035em}.prologue .note{color:#ddd7c9;max-width:46rem}.prologue a:hover{color:#e7bfb1}.prologue :focus-visible{outline-color:#e7bfb1}.translation{margin-top:25px;font:22px/1.65 var(--serif)}.section{padding:95px 7vw;border-bottom:1px solid var(--rule);scroll-margin-top:20px}.chapter-head{display:grid;grid-template-columns:180px 1fr;gap:4vw;margin-bottom:55px}.chapter-number{font:18px/1.5 var(--sans);color:var(--red);padding-top:12px}.chapter-number span{display:block}.chapter-number b{font:46px/1.1 var(--serif);display:block;margin-bottom:12px}.chapter-head h2{font-size:clamp(42px,5.3vw,82px);line-height:1.09;letter-spacing:-.04em}.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6vw;align-items:start}.story .copy{max-width:36rem}.story .copy p:first-child{font-family:var(--serif);font-size:25px;line-height:1.55}.story .copy .source{font-family:var(--sans);font-size:16px;line-height:1.65}.story-photo img{width:100%;max-height:640px;object-fit:contain;object-position:left;background:#e7e0d2}.source{margin-top:30px;color:var(--muted)}.source summary{min-height:44px;text-decoration:underline;text-underline-offset:4px;padding:8px 0}.source p{margin-top:12px!important;font:16px/1.7 var(--sans)!important}.subtle{background:#eae4d6}.education{list-style:none;padding:0;margin:35px 0}.education li{display:grid;grid-template-columns:78px 1fr;border-top:1px solid var(--rule);padding:17px 0;gap:15px}.education strong{font:26px var(--serif);color:var(--red)}.education small{display:block;color:var(--muted)}.ink-art{padding:35px 0 0}.ink-art img{width:100%}.art-caption{font:42px var(--brush);text-align:right;letter-spacing:.1em;color:var(--red)}.church-list{list-style:none;margin:30px 0 0;padding:0}.church-list li{border-top:1px solid var(--rule);padding:15px 0;font-size:18px}.church-list small{display:block;color:var(--muted)}.reading{max-width:800px;margin-left:auto}.writing-list{margin-top:38px;border-top:1px solid var(--rule)}.writing-row{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:25px 0;border-bottom:1px solid var(--rule)}.writing-row h3{font:30px/1.4 var(--brush)}.writing-row p{font-size:18px;line-height:1.65}.writing-row small{display:block;color:var(--muted);margin-top:5px}.wide-photo{margin-top:50px}.wide-photo img{width:100%;max-height:660px;object-fit:contain;background:#e7e0d2}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:45px;align-items:start}.photo-pair img{width:100%;height:auto}.closing{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:center;padding:95px 7vw}.closing h2{font:clamp(48px,6vw,90px)/1.2 var(--brush);letter-spacing:.1em}.closing img{width:100%}.closing p{margin-top:25px;max-width:34rem}.footer{background:var(--ink);color:var(--paper);padding:60px 7vw}.footer h2{font:36px/1.3 var(--serif);margin-bottom:25px}.footer p{font-size:16px;max-width:65rem;color:#ddd7c9}.footer a{display:inline-flex;min-height:44px;align-items:center;margin-top:25px}.footer a:hover{color:#e7bfb1}.footer :focus-visible{outline-color:#e7bfb1}html[lang=zh-Hant] h1{font-size:clamp(60px,6.4vw,98px);letter-spacing:.02em;line-height:1.15}html[lang=zh-Hant] .name-cn{font:22px var(--serif);letter-spacing:0}html[lang=zh-Hant] .chapter-head h2{line-height:1.35;letter-spacing:.03em}
@media(min-width:1700px){.opening,.section,.closing,.prologue,.footer{padding-left:max(7vw,calc((100vw - 1500px)/2));padding-right:max(7vw,calc((100vw - 1500px)/2))}}
@media(max-width:1000px){.rail{width:56px}.shell{margin-left:56px}.chapter-head{grid-template-columns:120px 1fr}.top{padding:12px 4vw}.tools{gap:20px}.intro{font-size:21px}.opening-grid{gap:30px}h1{font-size:68px}.story{gap:35px}}
@media(max-width:700px){body{font-size:19px}.rail{display:none}.shell{margin:0}.top{min-height:72px;gap:10px;padding:10px 20px}.brand{font-size:17px}.tools{gap:16px}.menu summary{font-size:16px;gap:7px}.lang{min-width:64px;padding:6px 12px}.opening{padding:23px 24px 30px}.opening-meta{font-size:14px}.opening-meta .edition{max-width:180px;text-align:right}.opening-grid{grid-template-columns:1fr;padding:35px 0 25px;gap:32px}h1{font-size:clamp(63px,15vw,90px);margin:20px 0}.name-cn{margin:16px 0;font-size:32px}.intro{font-size:22px}.hero-photo{padding:0 0 14px 14px}.hero-photo img{aspect-ratio:5/4;object-position:57% 46%}.opening-bottom{gap:10px}.horse-sign img{width:87px;height:66px}.horse-sign span{font-size:24px}.read-link{gap:20px;font-size:17px}.prologue{padding:70px 25px}.prologue blockquote{font-size:38px}.section{padding:65px 25px}.chapter-head{grid-template-columns:1fr;gap:20px;margin-bottom:32px}.chapter-number{display:flex;align-items:baseline;gap:18px;padding:0}.chapter-number b{font-size:30px;margin:0}.chapter-number span{display:inline;font-size:16px}.chapter-head h2{font-size:45px}.story{grid-template-columns:1fr;gap:35px}.story .copy p:first-child{font-size:23px}.story-photo{max-width:460px}.ink-art{padding:0}.art-caption{font-size:32px}.writing-row{grid-template-columns:1fr;gap:12px}.photo-pair{grid-template-columns:1fr;gap:30px}.closing{grid-template-columns:1fr;padding:65px 25px}.closing img{max-width:390px}.closing h2{font-size:54px}.footer{padding:50px 25px}.chapter-links{padding:12px 24px 24px}.chapter-links a{grid-template-columns:30px 1fr;font-size:17px}.chapter-links .date{grid-column:2}.translation{font-size:20px}html[lang=zh-Hant] h1{font-size:64px}.wide-photo{margin-top:32px}}

@media(max-width:360px){.top{padding:10px 14px}.brand{font-size:15px}.tools{gap:10px}.menu summary{font-size:15px}.lang{min-width:58px}.opening,.section{padding-left:20px;padding-right:20px}h1{font-size:60px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.rail,.top,.skip{display:none}.shell{margin:0}body:before{display:none}.section{break-inside:avoid}.prologue,.footer{background:white;color:black}.prologue .note,.footer p{color:black}}

/* English reading labels follow the same language selection as the story. */
html[lang=en] .seal{font:22px/1 var(--serif);letter-spacing:-.07em}
html[lang=en] .name-cn{font:clamp(25px,3vw,40px)/1.3 var(--serif);letter-spacing:0}
html[lang=en] .horse-sign span{writing-mode:horizontal-tb;font:19px/1.2 var(--serif);letter-spacing:0;max-width:60px}
html[lang=en] .closing h2{font-family:var(--serif);letter-spacing:-.035em;line-height:1.1}
.prologue .ring-poem figcaption{color:#ddd7c9}
@media(max-width:700px){html[lang=en] .horse-sign{gap:8px}html[lang=en] .horse-sign span{font-size:16px;max-width:42px}html[lang=en] .closing h2{font-size:52px}}
