/* Shared across all public pages; loaded last, after each page's layout styles. */
:root{--theme-paper:#faf8f3;--theme-ink:#2d302c;--theme-muted:#60635b;--theme-line:#d9d6cd;--theme-wine:#743c3e;--theme-soft:#f0ede5;--theme-hover:#5f3032;--theme-field:#fffdf9;--ui-font:Arial,Helvetica,sans-serif;--reading-font:Georgia,serif;--ui-small:14px;--ui-label:12px;--body:17px;--radius:4px}
body.night{--theme-paper:#242522;--theme-ink:#e7e1d5;--theme-muted:#c4bfb4;--theme-line:#484942;--theme-wine:#edc4bc;--theme-soft:#30322d;--theme-hover:#f4d9d3;--theme-field:#30322d}
:root,body,body.night,.top{--paper:var(--theme-paper);--ink:var(--theme-ink);--muted:var(--theme-muted);--line:var(--theme-line);--wine:var(--theme-wine);--soft:var(--theme-soft);--accent:var(--theme-wine);--card:var(--theme-soft)}
body{background:var(--paper);color:var(--ink);font-family:var(--ui-font);font-size:var(--body);line-height:1.7}
:is(a,button,input,textarea,select,summary):focus-visible{outline:3px solid var(--wine);outline-offset:4px}
button,input,select,textarea{font-family:var(--ui-font);color:inherit}
button,input,select,textarea,.button{border-radius:var(--radius)}
.eyebrow{font:600 var(--ui-label)/1.6 var(--ui-font);letter-spacing:1.8px;color:var(--wine)}
.top{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);line-height:1.7}
.top header.wrap{display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;width:min(1180px,calc(100% - 96px));height:auto;min-height:100px;margin:auto;padding:22px 0;border:0;gap:24px}
.top .brand{font:25px/1.7 Georgia,serif;letter-spacing:-.8px;text-decoration:none;color:var(--ink)}
.top .brand em{color:var(--wine);font-weight:400}
.top .brand small{display:block;font:11px/1.7 var(--ui-font);letter-spacing:1.7px;margin-top:9px;color:var(--muted);text-transform:uppercase}
.top header>nav{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-left:auto}
.top header>nav a{font:14px/1.7 var(--ui-font);text-decoration:none;padding:10px 0;color:var(--ink)}
.top header>nav a:hover,.top header>nav a[aria-current=page]{color:var(--wine)}
.top header>nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}
.top header>nav .nav-download,.primary{background:var(--wine);border:1px solid var(--wine);color:var(--paper);border-radius:var(--radius);padding:10px 18px;min-height:46px}
.top header>nav .nav-download:hover,.primary:hover{background:var(--theme-hover);border-color:var(--theme-hover);color:var(--paper)}
.site-languages{font:14px/1.5 var(--ui-font)}
.site-languages summary{min-width:52px;min-height:44px;border-radius:var(--radius);background:var(--paper);color:var(--ink);border-color:var(--line)}
.site-languages .language-options,.top .site-languages .language-options{background:var(--paper);border-color:var(--line);width:180px;min-width:180px}
.site-languages .language-options a{font:14px/1.5 var(--ui-font);color:var(--ink);min-height:42px;padding:10px 12px}
.site-languages .language-options a:hover,.site-languages .language-options a[aria-current=true]{background:var(--soft);color:var(--wine)}
.language-chevron{color:var(--muted)}
/* Reader tools use the same controls while keeping their reading-specific layout. */
.reader-page :is(button,select,input){font-size:14px;line-height:1.5;min-height:44px;border-color:var(--line)}
.reader-page button:hover{background:var(--soft)}
.reader-page .contents a{font-size:14px;line-height:1.6}
.reader-page .contents a span{font-size:12px;line-height:1.5}
.reader-page :is(.pdf-link,.notice,.byline,.page-marker,.page-original figcaption,.songs-intro,.song-meta,.songs-list details,.original-caption){font-size:14px;line-height:1.7}
.reader-page .page-marker{letter-spacing:0;text-transform:none;flex-wrap:wrap}
.reader-page .tabs button{font-size:14px}
.reader-page .tabs button[aria-pressed=true]{background:var(--wine);color:var(--paper)}
.reader-page .scan-area{background:var(--soft)}
.reader-page .chapter-songs>summary{background:var(--wine);border-color:var(--wine);color:var(--paper);border-radius:var(--radius);font:600 14px/1.5 var(--ui-font);min-height:44px;padding:10px 13px;box-shadow:none}
.reader-page .chapter-songs>summary:hover,.reader-page .chapter-songs[open]>summary{background:var(--theme-hover);border-color:var(--theme-hover);box-shadow:none}
.reader-page .songs-panel{border-radius:var(--radius)}
.reader-page .controls{flex-wrap:wrap}
.reader-page .page-original button{min-height:0}
.reader-page .reading h1{font-family:var(--reading-font)}
.reader-page .prose{font-family:var(--reading-font)}
/* Atlas colors distinguish map categories; surrounding controls share the site palette. */
.atlas-page :is(.explorer,.tour){background:var(--soft)}
.atlas-page .place:hover,.atlas-page .place[aria-pressed=true]{background:var(--soft)}
.atlas-page .place[aria-pressed=true]{box-shadow:inset 3px 0 var(--wine)}
.atlas-page :is(.filters button,.overview,#explorer-toggle,.tour button,.read){font:14px/1.5 var(--ui-font);min-height:44px;border-radius:var(--radius)}
.atlas-page :is(.filters button[aria-pressed=true],.tour button,.read){background:var(--wine);color:var(--paper);border-color:var(--wine)}
.atlas-page :is(.description,.current-name,.source,.explorer-footer,.section-label,.place small,.tag,.scan-label){font-size:14px;line-height:1.6;color:var(--muted)}
.atlas-page .description{color:var(--ink)}
.atlas-page .filters{flex-wrap:wrap}
.atlas-page .intro h1{font-size:clamp(36px,4.5vw,52px);line-height:1.18}
.atlas-page .intro>p{font-size:21px;line-height:1.65}
.atlas-page input{font-size:14px;min-height:44px}
/* The common footer is reused without removing reader status and download actions. */
footer.site-footer{--paper:#faf8f3;--ink:#faf8f3;--muted:#d8d4ca;--wine:#edc4bc;--accent:#edc4bc;--line:#62645c;--soft:#41443c;--card:#41443c;display:block;background:#34372f;color:var(--ink);border-top:1px solid var(--line);padding:40px 0 0;font:14px/1.7 var(--ui-font)}
.site-footer .wrap,.site-footer .footer-context,.site-footer .cookie-controls{width:min(1180px,calc(100% - 96px));margin:auto}
.site-footer .footer-row{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;padding-bottom:32px}
.site-footer .footer-row>div:first-child{max-width:440px;border-left:2px solid var(--wine);padding-left:22px}
.site-footer .footer-row .brand{display:inline-block;font:30px/1.2 Georgia,serif;letter-spacing:-.7px;color:var(--ink);text-decoration:none}
.site-footer .footer-row .brand em{font-weight:400;color:var(--wine)}
.site-footer .footer-row p{margin:12px 0 0;max-width:38ch}
.site-footer :is(p,a,button){font-size:14px;line-height:1.7;color:var(--muted)}
.site-footer .footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:4px}
.site-footer .footer-links .button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;min-width:132px;padding:11px 20px;border:1px solid var(--wine);border-radius:var(--radius);text-decoration:none;color:var(--wine);background:transparent}
.site-footer .footer-links .button:hover{background:var(--wine);color:#34372f}
.site-footer .footer-context{padding-bottom:24px}
.site-footer .footer-context nav{display:flex;gap:18px;flex-wrap:wrap}
.site-footer .cookie-controls{display:flex;justify-content:flex-start;border-top:1px solid var(--line);padding:16px 0 20px;gap:8px 24px;font:14px/1.5 var(--ui-font)}
.site-footer .cookie-controls :is(a,button){font:14px/1.5 var(--ui-font);color:var(--muted);padding:8px 0;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.site-footer .translation-notice{color:var(--muted);font:14px/1.7 var(--ui-font);max-width:1180px;margin:0 auto;padding:0 48px 24px}
.cookie-panel{background:var(--theme-paper);color:var(--theme-ink);border-color:var(--theme-line);border-radius:var(--radius);font-family:var(--ui-font)}
.cookie-panel h2{color:var(--theme-ink);font-family:var(--reading-font)}
.cookie-actions button{background:var(--theme-paper);border-color:var(--theme-wine);color:var(--theme-wine);border-radius:var(--radius);min-height:46px}
.cookie-actions button:hover{background:var(--theme-soft)}
.cookie-panel :focus-visible{outline-color:var(--theme-wine)}
@media(max-width:1100px){.top header.wrap{column-gap:18px}.top header>nav{gap:12px}}
@media(max-width:1000px){.top header.wrap,.site-footer .wrap,.site-footer .footer-context,.site-footer .cookie-controls{width:calc(100% - 48px)}}
@media(max-width:760px){.top header.wrap{position:relative;align-items:flex-start;gap:18px}.top header>.brand{padding-right:65px}.top header>.site-languages{position:absolute;right:0;top:20px}.top header>nav{width:100%;margin:0;gap:8px 16px}.top header>nav .nav-download{margin-left:0}.reader-page .toolbar{align-items:flex-start}.reader-page .controls{margin-left:0}.reader-page .chapter-songs{margin-left:0}.reader-page .page-original figcaption{font-size:14px}.site-footer .footer-row{flex-direction:column;gap:24px}.site-footer .footer-row .brand{font-size:28px}.site-footer .translation-notice{padding:0 24px 24px}.atlas-page .tour{flex-wrap:wrap}}
@media(max-width:700px){.top header.wrap,.site-footer .wrap,.site-footer .footer-context,.site-footer .cookie-controls{width:calc(100% - 40px)}.top header.wrap{padding:20px 0}.site-footer .translation-notice{padding-inline:20px}}
html:lang(zh-Hans){--reading-font:"Noto Serif CJK SC","Songti SC",SimSun,serif}
html:lang(zh-Hans) :is(.prose,.eyebrow,h1,h2){letter-spacing:normal}
@media print{.top,.site-footer,.cookie-panel{display:none!important}body{background:white;color:black}}
/* A scrolling place list must not set the mobile grid's minimum width. */
.atlas-page .atlas>*{min-width:0}
@media(max-width:800px){.atlas-page .atlas,.atlas-page .atlas.explorer-collapsed{grid-template-columns:minmax(0,1fr)}}
/* Form and gallery controls use the same field and action colors. */
.contact-form input:not([name="_gotcha"]),.contact-form textarea,.index-tools input,.reader-page :is(.chapter-filter,.search-form input){background:var(--theme-field);border-color:var(--line);border-radius:var(--radius)}
.photo-version-controls button{background:var(--wine);border-color:var(--wine);color:var(--paper);box-shadow:none;font-size:14px;border-radius:var(--radius)}
.photo-version-controls button:hover,.contact-form .primary:hover{background:var(--theme-hover);border-color:var(--theme-hover)}
.lightbox button,.photo-zoom-controls :is(button,output,span),#photo-version{font-size:14px}
.author-chronology{border-color:var(--line)}
.life-timeline>li:not(:last-child):before{background:var(--line)}
