/* Public design system. Load after legacy/component styles.
   Shared reading scales, without replacing the approved artwork or book covers. */
:root{
 --xu-content:1200px;--xu-gutter:40px;
 --xu-title:clamp(42px,5vw,72px);--xu-title-leading:1.12;
 --xu-section:clamp(30px,3vw,40px);--xu-subsection:26px;
 --xu-reading:16px;--xu-rhythm:64px;
 --public-paper:#f8f5ee;--public-ink:#18243a;--public-line:#ddd6c9;
}
html body.portal :is(header.editorial-hero,header.works-hero,header.events-hero,header.poster-page-hero) h1{
 font-size:var(--xu-title)!important;line-height:var(--xu-title-leading)!important;
 font-weight:600!important;letter-spacing:-.025em!important;
 margin-top:22px!important;margin-bottom:24px!important;
 overflow-wrap:anywhere;text-wrap:balance;
}
html body.portal :is(.editorial-hero>p,.editorial-art-copy>p,.works-hero>p,.events-hero-inner>p,.poster-page-hero-copy>p){
 font:400 17px/1.8 var(--xm-sans)!important;letter-spacing:0!important;
 text-wrap:pretty;margin-top:0!important;margin-bottom:0!important;
}
html body.portal :is(.editorial-kicker,.events-kicker,.poster-page-eyebrow){
 font:500 11px/1.65 var(--xm-sans)!important;letter-spacing:.12em!important;
}
/* One horizontal alignment for page titles and reading areas. */
html body.portal :is(header.editorial-hero:not(.editorial-art-hero),header.works-hero,header.events-hero){
 padding-left:max(var(--xu-gutter),calc((100vw - var(--xu-content))/2))!important;
 padding-right:max(var(--xu-gutter),calc((100vw - var(--xu-content))/2))!important;
}
html body.portal :is(main.editorial-body,main.poster-page-body,main.works-directory,main.events-main){
 background-color:var(--public-paper)!important;background-image:none!important;
}
html body.portal main.editorial-body{
 padding-left:max(var(--xu-gutter),calc((100vw - var(--xu-content))/2))!important;
 padding-right:max(var(--xu-gutter),calc((100vw - var(--xu-content))/2))!important;
}
html body.portal:is(.topics-redesigned,.public-access-page) main.editorial-body,
html body.portal.about-public-page main.poster-page-body{
 max-width:calc(var(--xu-content) + 2 * var(--xu-gutter))!important;
 padding-left:var(--xu-gutter)!important;padding-right:var(--xu-gutter)!important;
 margin-inline:auto!important;
}
html body.portal .editorial-grid{grid-template-columns:190px minmax(0,1fr);gap:64px}
html body.portal .editorial-aside{
 font:400 13px/1.65 var(--xm-sans)!important;letter-spacing:0!important;
 text-transform:none!important;overflow-wrap:anywhere;
}
html body.portal .editorial-aside a{display:block;padding-block:7px;color:#586270;border:0}
html body.portal .editorial-copy>h2,
html body.portal .editorial-copy>section>h2{
 font-size:var(--xu-section)!important;line-height:1.25!important;
 letter-spacing:-.02em!important;margin-bottom:24px!important;
}
html body.portal .editorial-copy>h3,
html body.portal .editorial-copy>section>h3{
 font-size:var(--xu-subsection)!important;line-height:1.35!important;letter-spacing:0!important;
}
html body.portal .editorial-copy>p,
html body.portal .editorial-copy>section>p{
 font:400 var(--xu-reading)/1.85 var(--xm-sans)!important;
 letter-spacing:0!important;margin-bottom:24px!important;
}
/* Secondary information remains comfortably legible. */
html body.portal .works-hero-stats{gap:20px 32px;margin-top:32px!important;max-width:720px}
html body.portal .works-hero-stats>span{font:400 11px/1.6 var(--xm-sans)!important;letter-spacing:.03em!important}
html body.portal .works-hero-stats b{font:500 30px/1.2 var(--xm-serif)!important;margin-bottom:7px}
html body.portal :is(.worldcat-strip a,.edition-actions a,.work-actions a,.book-detail-actions a,.works-jump button){
 font:500 12px/1.6 var(--xm-sans)!important;letter-spacing:0!important;
 text-transform:none!important;padding:11px 14px!important;min-height:44px;box-sizing:border-box;
}
html body.portal .worldcat-strip p{font:400 14px/1.75 var(--xm-sans)!important}
html body.portal .worldcat-strip>div>span{font:500 11px/1.7 var(--xm-sans)!important;letter-spacing:.07em!important}
html body.portal .works-toolbar :is(input,select){font-size:15px!important;min-height:48px}
html body.portal .events-ledger-intro h2{font-size:var(--xu-section)!important;line-height:1.25!important}
html body.portal .event-detail h2{font-size:28px!important;line-height:1.3!important}
html body.portal .event-detail p{font:400 15px/1.8 var(--xm-sans)!important}
/* Shared access-page body typography and controls. */
html body.access-network-page .access-network p{font-size:16px!important}
html body.access-network-page .access-network :is(.an-link,.an-jump a,.an-inline-links){font-size:14px!important;line-height:1.7!important}
html body.access-network-page .access-network :is(.an-link,.an-jump a){padding-block:9px}
html body.access-network-page .access-network :is(.an-note,.an-result-count){font-size:13px!important}
html body.access-network-page .an-worldcat-form :is(input,button){font-size:16px!important}
html body.portal :is(.editorial-body,.poster-page-body) :is(section[id],h2[id]){scroll-margin-top:120px}
/* Script-aware leading; do not force Latin tracking onto CJK or cursive scripts. */
html:is(:lang(zh),:lang(ja),:lang(ko),:lang(hi),:lang(ar),:lang(he),:lang(fa)){
 --xu-title-leading:1.25;
}
html:is(:lang(zh),:lang(ja),:lang(ko),:lang(hi),:lang(ar),:lang(he),:lang(fa)) body.portal
 :is(header.editorial-hero,header.works-hero,header.events-hero,header.poster-page-hero) h1{letter-spacing:0!important}
@media(max-width:1000px){html body.portal .editorial-grid{grid-template-columns:160px minmax(0,1fr);gap:36px}}
@media(max-width:900px){
 :root{--xu-gutter:24px;--xu-title:clamp(36px,6vw,52px);--xu-rhythm:44px}
 html body.portal .editorial-grid{grid-template-columns:1fr;gap:28px}
 html body.portal .editorial-aside{display:flex;flex-wrap:wrap;gap:0 20px}
 html body.portal .works-hero-stats{gap:18px 24px}
}
@media(max-width:620px){
 :root{--xu-title:clamp(32px,9.7vw,42px);--xu-section:30px;--xu-subsection:24px}
 html body.portal :is(.editorial-hero>p,.editorial-art-copy>p,.works-hero>p,.events-hero-inner>p,.poster-page-hero-copy>p){font-size:16px!important;line-height:1.8!important}
 html body.portal :is(header.editorial-hero,header.works-hero,header.events-hero,header.poster-page-hero) h1{margin-top:16px!important;margin-bottom:20px!important}
 html body.portal .works-hero-stats b{font-size:26px!important}
 html body.portal .event-detail h2{font-size:24px!important}
 html body.portal .works-toolbar :is(input,select){font-size:16px!important}
 html body.portal :is(.editorial-body,.poster-page-body) :is(section[id],h2[id]){scroll-margin-top:92px}
}
/* Compact, balanced catalogue metrics and a common quiet body canvas. */
html body.portal.books-page .works-hero-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));max-width:620px;gap:16px 24px}
html body.portal.books-page .works-hero-stats>span{min-width:0!important;width:auto!important;background:rgba(7,15,29,.32)!important}
html body.portal:is(.topics-redesigned,.public-access-page,.about-public-page,.events-page){background-color:var(--public-paper)!important;background-image:none!important}
html body.portal.events-page main.events-main{max-width:1280px!important;padding-inline:40px!important}
html body.portal.books-page main.works-directory{padding-inline:max(var(--xu-gutter),calc((100vw - var(--xu-content))/2))!important}
html body.portal.events-page .events-filter button{font:500 12px/1.5 var(--xm-sans)!important;letter-spacing:.02em!important;min-height:44px}
@media(max-width:620px){html body.portal.events-page main.events-main{padding-inline:24px!important}html body.portal.books-page .works-hero-stats{gap:12px}}
/* Resolve legacy locale selectors at the shared hero boundary. */
html:root body.portal :is(header.editorial-hero,header.works-hero,header.events-hero,header.poster-page-hero) p{font:400 17px/1.8 var(--xm-sans)!important;letter-spacing:0!important}
html:root body.portal.books-page .worldcat-strip nav a{font:500 12px/1.6 var(--xm-sans)!important;letter-spacing:0!important;text-transform:none!important}
@media(max-width:620px){html:root body.portal :is(header.editorial-hero,header.works-hero,header.events-hero,header.poster-page-hero) p{font-size:16px!important}}
/* Keep reception copy in the painting's intended open field in every script.
   Physical positioning follows the artwork; text alignment follows language. */
html:root body.portal:is(.translator-comments-page,.reception-page) .editorial-hero{
 height:auto!important;min-height:660px!important;align-items:stretch!important;
 padding-top:80px!important;padding-bottom:80px!important;
}
html:root body.portal .translator-overview h2{color:#d8b365!important}
html:root body.portal .translator-overview a{color:#f4ead6!important}
html:root body.portal:is(.translator-comments-page,.reception-page) .editorial-hero>:is(h1,p,.editorial-kicker){
 width:47%!important;max-width:600px!important;margin-left:0!important;margin-right:auto!important;
 text-align:start;
}
@media(max-width:1000px){
 html:root body.portal:is(.translator-comments-page,.reception-page) .editorial-hero{
  min-height:0!important;justify-content:flex-start!important;
  padding-top:54px!important;padding-bottom:280px!important;
  background-size:cover,auto 230px!important;background-position:center,right 24px bottom 24px!important;
 }
 html:root body.portal:is(.translator-comments-page,.reception-page) .editorial-hero>:is(h1,p,.editorial-kicker){width:100%!important;max-width:700px!important}
}
/* Four catalogue controls must fit the tablet reading width. */
@media(min-width:621px) and (max-width:1000px){
 html:root body.portal.books-page .works-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 html:root body.portal.books-page .works-toolbar>*{min-width:0!important;width:100%!important;box-sizing:border-box!important}
}
/* Source quotations may use a different script from the interface. */
html:root body.portal.reception-page .reception-review-card{min-width:0!important;max-width:100%!important}
html:root body.portal.reception-page .reception-review-card :is(blockquote,.academic-kicker){overflow-wrap:anywhere!important;min-width:0!important}

/* Homepage newsletter: a quiet two-column invitation above the footer. */
html:root body.portal .home-follow + .portal-newsletter{
 display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);
 align-items:center;gap:clamp(32px,4vw,80px);
 padding:clamp(56px,5vw,96px) clamp(24px,2vw,48px);
 background:#10162b;border-bottom:1px solid rgba(213,168,66,.28);
}
html:root body.portal .home-follow + .portal-newsletter>*{min-width:0}
html:root body.portal .home-follow + .portal-newsletter>div>span,
html:root body.portal .home-follow + .portal-newsletter>div>span>a{color:#d5a842!important}
html:root body.portal .home-follow + .portal-newsletter h2{
 margin:22px 0 18px;font-size:clamp(30px,3vw,60px);line-height:1.25;
 color:#f4ead6!important;-webkit-text-fill-color:#f4ead6!important;
}
html:root body.portal .home-follow + .portal-newsletter p{
 max-width:none;margin:0;font-size:clamp(14px,1.1vw,20px);line-height:1.8;
 color:#f4ead6!important;
}
html:root body.portal .home-follow + .portal-newsletter form{
 display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;
 align-items:start;min-width:0;width:100%;margin:0;
}
html:root body.portal .home-follow + .portal-newsletter form>label:not(.portal-newsletter-consent){
 grid-area:1 / 1;display:block;min-width:0;margin:0;
}
html:root body.portal .home-follow + .portal-newsletter input[type=email]{
 display:block;box-sizing:border-box;width:100%;min-width:0;min-height:64px;
 border:1px solid rgba(244,234,214,.42);border-radius:0;padding:0 20px;
 background:rgba(255,255,255,.07);color:#f4ead6;font-size:16px;
}
html:root body.portal .home-follow + .portal-newsletter input[type=email]::placeholder{color:#c6c2ba;opacity:1}
html:root body.portal .home-follow + .portal-newsletter button{
 grid-area:1 / 2;box-sizing:border-box;width:auto;min-height:64px;
 padding:12px 24px;border:1px solid #d5a842;border-radius:0;
 background:#d5a842;color:#10162b!important;font-size:15px;line-height:1.5;
 white-space:normal;overflow-wrap:anywhere;
}
html:root body.portal .home-follow + .portal-newsletter .portal-newsletter-consent{
 grid-area:2 / 1 / auto / -1;display:flex;flex-wrap:wrap;align-items:start;
 gap:4px 6px;margin:0;color:#d0cbc0;font-size:12px;line-height:1.6;
 letter-spacing:0;text-transform:none;
}
html:root body.portal .home-follow + .portal-newsletter .portal-newsletter-consent input[type=checkbox]{
 appearance:auto;box-sizing:border-box;flex:0 0 15px;width:15px;height:15px;
 min-height:15px;padding:0;margin:2px 2px 0 0;accent-color:#d5a842;
}
html:root body.portal .home-follow + .portal-newsletter .portal-newsletter-consent span{flex:1 1 220px}
html:root body.portal .home-follow + .portal-newsletter .portal-newsletter-consent a{color:inherit;text-underline-offset:3px}
html:root body.portal .home-follow + .portal-newsletter :is(input,button,a):focus-visible{outline:2px solid #f4ead6;outline-offset:4px}
@media(max-width:900px){
 html:root body.portal .home-follow + .portal-newsletter{grid-template-columns:minmax(0,1fr);padding:44px 24px;gap:28px}
 html:root body.portal .home-follow + .portal-newsletter h2{margin:16px 0 12px}
 html:root body.portal .home-follow + .portal-newsletter form{grid-template-columns:minmax(0,1fr) minmax(104px,.38fr)}
 html:root body.portal .home-follow + .portal-newsletter input[type=email]{min-height:56px;padding-inline:14px}
 html:root body.portal .home-follow + .portal-newsletter button{min-height:56px;padding:12px;font-size:14px}
}
