:root{--paper:#f6f2e9;--paper-raised:#fbf8f1;--ink:#25211b;--ink-soft:#5c554a;--ink-faint:#8d8478;--seal:#9e2b25;--seal-soft:#b8554f;--line:#ddd5c6;--shadow:0 1px 2px rgba(40,32,18,0.06),0 8px 24px rgba(40,32,18,0.07);--shadow-lift:0 2px 4px rgba(40,32,18,0.08),0 16px 40px rgba(40,32,18,0.14);--serif:var(--font-serif),Georgia,serif;--tc:var(--font-tc),"Songti TC","Noto Serif TC",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.1rem;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit}.site-header{display:flex;align-items:baseline;justify-content:space-between;padding:1.2rem clamp(1.2rem,4vw,3rem);border-bottom:1px solid var(--line)}.site-mark{display:flex;align-items:center;gap:.8rem;text-decoration:none}.site-mark-logo{width:44px;height:44px;border-radius:6px;border:1px solid var(--line);box-shadow:var(--shadow)}.site-mark-title{font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.site-nav{display:flex;gap:1.6rem}.site-nav a{font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--ink-soft)}.site-nav a:hover{color:var(--seal)}.nav-offering-glyph{font-family:var(--tc);color:var(--seal)}.site-footer{border-top:1px solid var(--line);margin-top:6rem;padding:2.5rem clamp(1.2rem,4vw,3rem);text-align:center;color:var(--ink-faint);font-size:.95rem}.site-footer p{margin:.2rem 0}.offering{margin:0 auto 2.2rem;max-width:32rem}.offering-text{font-style:italic;color:var(--ink-faint);margin:0 0 1rem}.offering-link{display:inline-flex;align-items:baseline;gap:.6rem;padding:.55rem 1.5rem;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink-soft);letter-spacing:.08em;transition:color .2s ease,border-color .2s ease,background .2s ease}.offering-link:focus-visible,.offering-link:hover{color:var(--seal);border-color:var(--seal-soft);background:rgba(158,43,37,.05);outline:none}.offering-glyph{font-family:var(--tc);color:var(--seal)}.hall{max-width:1200px;margin:0 auto;padding:0 clamp(1.2rem,4vw,3rem)}.hall-hero{text-align:center;padding:4.5rem 1rem 3.5rem}.hall-hero-hanzi{font-family:var(--tc);font-size:clamp(3.2rem,9vw,5.5rem);font-weight:600;letter-spacing:.18em;color:var(--ink);margin:0;line-height:1.2}.hall-hero-title{font-size:clamp(1.3rem,3vw,1.8rem);font-weight:400;letter-spacing:.3em;text-transform:uppercase;margin:.6rem 0 0;color:var(--ink-soft)}.hall-hero-subtitle{font-style:italic;font-size:1.15rem;color:var(--ink-soft);margin:1.4rem 0 0}.hall-hero-translator{font-size:1rem;letter-spacing:.08em;color:var(--ink-faint);margin:.5rem 0 0}.hall-hero-rule{width:5rem;height:2px;background:var(--seal);border:none;margin:2.2rem auto 0}.hall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:1.1rem;gap:1.1rem;padding-bottom:2rem}.frame{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:var(--paper-raised);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow);padding:1.6rem .8rem 1.3rem;text-decoration:none;text-align:center;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.frame:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--seal-soft)}.frame-glyph{font-family:var(--tc);font-size:3.4rem;line-height:1.25;color:var(--ink)}.frame:hover .frame-glyph{color:var(--seal)}.frame-zhang{font-family:var(--tc);font-size:.85rem;color:var(--ink-faint);margin-top:.5rem}.frame-number{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--seal);margin-top:.3rem}.frame-title{font-size:.98rem;font-style:italic;color:var(--ink-soft);line-height:1.35;margin-top:.2rem}.room{max-width:880px;margin:0 auto;padding:0 clamp(1.2rem,4vw,3rem)}.room-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem 0;font-size:.95rem}.room-nav a{text-decoration:none;color:var(--ink-soft);letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-nav a:hover{color:var(--seal)}.room-nav-spacer{flex:1 1}.room-header{text-align:center;padding:2.5rem 0 1rem}.room-zhang{font-family:var(--tc);font-size:1.6rem;color:var(--seal);margin:0}.room-title{font-size:clamp(1.9rem,5vw,2.6rem);font-weight:500;margin:.7rem 0 0;line-height:1.25}.room-kicker{font-size:.9rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:.8rem 0 0}.room h2.part-heading{font-size:1rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--seal);text-align:center;margin:4rem 0 .4rem;scroll-margin-top:2rem}.section-rail{position:fixed;left:calc(50% + 464px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1.3rem;z-index:10}.rail-item{gap:.6rem;text-decoration:none;color:var(--ink-faint);transition:color .2s ease}.rail-glyph,.rail-item{display:flex;align-items:center}.rail-glyph{font-family:var(--tc);font-size:1.25rem;line-height:1;width:2rem;height:2rem;justify-content:center;border:1px solid transparent;border-radius:50%;transition:border-color .2s ease,color .2s ease}.rail-label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase}.rail-item.active,.rail-item:hover{color:var(--seal)}.rail-item.active .rail-glyph{border-color:var(--seal-soft)}@media (max-width:1199px){.section-rail{position:static;transform:none;flex-direction:row;justify-content:center;align-items:flex-start;flex-wrap:wrap;gap:1.4rem;margin:1.8rem 0 0}.rail-item{flex-direction:column;gap:.3rem}.rail-label{font-size:.6rem;letter-spacing:.14em}}.part-subtitle{text-align:center;color:var(--ink-faint);font-style:italic;margin:0 0 2rem;font-size:1rem}.wall{background:var(--paper-raised);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow);padding:clamp(1.4rem,4vw,2.8rem);display:flex;flex-direction:column;gap:.5rem;align-items:center}.wall-line{display:flex;flex-wrap:wrap;justify-content:center}.wall-char{font-family:var(--tc);font-size:clamp(1.7rem,4.5vw,2.4rem);line-height:1.5;padding:.05em .14em;background:none;border:none;border-radius:4px;color:var(--ink);cursor:pointer;transition:color .15s ease,background .15s ease,transform .15s ease}.wall-char:focus-visible,.wall-char:hover{color:var(--seal);background:rgba(158,43,37,.07);transform:scale(1.12);outline:none}.wall-hint{text-align:center;font-size:.92rem;font-style:italic;color:var(--ink-faint);margin-top:1rem}.couplet{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.couplet:last-child{border-bottom:none}.couplet-en{flex:1 1;font-size:1.15rem}.couplet-zh{font-family:var(--tc);color:var(--ink-soft);font-size:1.05rem;white-space:nowrap}@media (max-width:640px){.couplet{flex-direction:column;gap:.15rem}.couplet-zh{white-space:normal}}.analysis{width:100%;border-collapse:collapse}.analysis th{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--ink-faint);text-align:left;padding:.5rem .8rem;border-bottom:2px solid var(--line)}.analysis td{padding:.7rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}.analysis .a-char{font-family:var(--tc);font-size:1.8rem;line-height:1.3}.analysis .a-char button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0;transition:color .15s ease}.analysis .a-char button:hover{color:var(--seal)}.analysis .a-pinyin{font-style:italic;white-space:nowrap;color:var(--ink-soft)}.analysis .a-meaning{font-size:1.02rem}.commentary h3{font-size:1.3rem;font-weight:500;margin:2.6rem 0 .6rem;line-height:1.4}.zh{font-family:var(--tc)}.zh-char{font:inherit;color:inherit;background:none;border:none;padding:0;border-radius:3px;cursor:pointer;transition:color .15s ease,background .15s ease}.zh-char:focus-visible,.zh-char:hover{color:var(--seal);background:rgba(158,43,37,.07);outline:none}.epigraph{font-family:var(--tc);text-align:center;font-size:1.3rem;color:var(--seal);margin:1.4rem 0}.prose p{margin:1rem 0}.room-pager{display:flex;justify-content:space-between;gap:1rem;margin-top:4.5rem;border-top:1px solid var(--line);padding-top:1.6rem}.room-pager a{text-decoration:none;color:var(--ink-soft);max-width:45%}.room-pager a:hover{color:var(--seal)}.pager-label{display:block;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}.pager-title{font-style:italic}.pager-next{text-align:right}.vitrine-backdrop{position:fixed;inset:0;background:rgba(30,25,16,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:1.2rem;z-index:50;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.vitrine{background:var(--paper-raised);border-radius:6px;box-shadow:0 24px 80px rgba(20,14,4,.45);max-width:560px;width:100%;max-height:88vh;overflow-y:auto;padding:2.2rem 2.4rem 1.8rem;position:relative;text-align:center;animation:zoom-in .25s ease}@keyframes zoom-in{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.vitrine-close{position:absolute;top:.7rem;right:.9rem;background:none;border:none;font-size:1.6rem;line-height:1;color:var(--ink-faint);cursor:pointer;padding:.3rem}.vitrine-close:hover{color:var(--seal)}.vitrine-glyph{font-family:var(--tc);font-size:clamp(6rem,22vw,9rem);line-height:1.15;color:var(--ink);margin:0}.vitrine-pinyin{font-size:1.5rem;font-style:italic;color:var(--seal);margin:.2rem 0 0}.vitrine-meaning{text-align:left;font-size:1.05rem;margin:1.3rem 0 0}.vitrine-attribution{font-size:.9rem;font-style:italic;color:var(--ink-faint);margin-top:.8rem}.vitrine-position{font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-top:1.6rem}.vitrine-nav{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;gap:1rem}.vitrine-nav button{font-family:var(--serif);font-size:.95rem;letter-spacing:.08em;background:none;border:1px solid var(--line);border-radius:4px;color:var(--ink-soft);padding:.45rem 1rem;cursor:pointer;transition:color .15s ease,border-color .15s ease}.vitrine-nav button:hover:not(:disabled){color:var(--seal);border-color:var(--seal-soft)}.vitrine-nav button:disabled{opacity:.35;cursor:default}.about{max-width:760px;margin:0 auto;padding:3rem clamp(1.2rem,4vw,3rem) 0}.about h1{font-size:2.1rem;font-weight:500;text-align:center}.about .prose{margin-top:2rem}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/d7b29b398dd797a1-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/65303d7bdb6c1b1a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/891631c764a307b2-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/73b9b49ded63c2ac-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/59be34f4d8f1ff65-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/39a40c15606bb1f5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(/_next/static/media/23081e227a96aa1a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:EB Garamond Fallback;src:local("Times New Roman");ascent-override:106.26%;descent-override:31.44%;line-gap-override:0.00%;size-adjust:94.77%}.__className_9b4f42{font-family:EB Garamond,EB Garamond Fallback;font-style:normal}.__variable_9b4f42{--font-serif:"EB Garamond","EB Garamond Fallback"}