/* The public library: the reader's ink, warm paper and its own residents.
   Kept separate from the immersive experience; no content depends on motion. */
.public-page {
  --room:#f7f9ff; --sheet:#fffdf5; --carbon:#152747; --steel:#526079;
  --rule:#d5dbe5; --signal:#f6c445; --signal-ink:#795500;
  --pine:#244177; --pine-deep:#152747; --on-pine:#fffdf5;
  --bookink:var(--pine); --galley:#fffef9; --leaf:#f1deaf;
  --malachite:#28735b; --wrong:#a7332d;
  --bill:'LTL Cyrillic','Sofia Sans Extra Condensed','Arial Narrow',sans-serif;
  --serif:'LTL Cyrillic','Spectral',Georgia,serif;
  --sans:'LTL Cyrillic','Geologica',Arial,sans-serif;
  --text:var(--serif); --type-body:1rem; --type-control:1rem; --type-meta:.8rem;
  --type-prompt:clamp(1.4rem,2.5vw,1.8rem); --type-heading:clamp(1.7rem,3vw,2.3rem);
  margin:0; color:var(--carbon); background:var(--sheet);
  font:400 19px/1.75 var(--serif); -webkit-text-size-adjust:100%;
}
.public-page *, .public-page *::before, .public-page *::after { box-sizing:border-box; }
.public-page [hidden] { display:none!important; }
.public-page a { color:var(--bookink); text-decoration-thickness:1px; text-underline-offset:.2em; }
.public-page a:hover { color:var(--signal-ink); }
.public-page :where(a) .ic { width:16px; height:16px; vertical-align:-.15em; flex:none; }
.public-page .public-back-icon { display:inline-flex; transform:rotate(180deg); vertical-align:-.15em; }
.public-page .public-back-icon .ic { vertical-align:0; }
.public-page :is(a,button,input,summary):focus-visible { outline:3px solid var(--pine); outline-offset:5px; }
.public-page :is(button,input,select,textarea) { font-family:var(--sans); }
.public-page img { max-width:100%; }
.public-page audio { max-width:100%; }
.public-page ::selection { background:#f5df9d; color:var(--carbon); }
.public-skip { position:fixed; top:12px; left:16px; transform:translateY(-180%); padding:12px 18px;
  background:var(--pine-deep); color:var(--on-pine)!important; font:500 14px/1.4 var(--sans); z-index:50; }
.public-skip:focus { transform:none; }
.public-nav { width:min(1440px,100%); margin:auto; display:flex; align-items:center; justify-content:space-between;
  gap:28px; padding:26px clamp(22px,5vw,80px); border-bottom:1px solid var(--rule); }
.public-wordmark { display:flex; align-items:center; gap:13px; color:var(--carbon)!important; text-decoration:none;
  font:500 13px/1.45 var(--sans); letter-spacing:.035em; }
.public-wordmark .ltl-mark { flex:none; width:48px; height:48px; }
.public-wordmark em { font-family:var(--serif); font-size:15px; font-weight:400; }
.public-nav nav { display:flex; align-items:center; gap:clamp(18px,2.8vw,40px); }
.public-nav nav a { font:400 13px/1.5 var(--sans); text-decoration:none; min-height:44px; display:flex; align-items:center; }
.public-nav nav .public-nav-start { gap:18px; border-bottom:1px solid var(--pine); }
.public-nav-start .ic { width:18px; height:18px; flex:none; }
.public-page .sheet { display:grid; grid-template-columns:[full-start] minmax(0,1fr) [prose-start] minmax(0,760px) [prose-end] minmax(0,1fr) [full-end];
  width:min(1440px,100%); margin:auto; padding:0 clamp(22px,5vw,80px) 32px; column-gap:0; }
.public-page .sheet:focus { outline:none; }
.public-page .sheet > * { grid-column:prose-start/prose-end; min-width:0; }
.public-page .sheet > :is(.public-frontispiece,.rule,.shelf,.dossier,.wrap,.scroll,.public-footer) { grid-column:full-start/full-end; }
.public-page .public-frontispiece { display:grid; grid-template-columns:minmax(0,1fr) 180px; align-items:center; gap:40px;
  padding:70px 0 42px; margin:0; }
.public-page .public-heading { max-width:1020px; }
.public-page .eyebrow { font:400 11px/1.5 var(--sans); letter-spacing:.17em; text-transform:uppercase; color:var(--steel); margin:0 0 22px; }
.public-page h1 { font:400 clamp(42px,5.5vw,82px)/1.04 var(--serif); letter-spacing:-.045em;
  text-wrap:balance; max-width:25ch; margin:0; color:var(--pine-deep); overflow-wrap:break-word; }
.public-page .public-heading .dateline { margin:25px 0 0; max-width:62ch; font-size:11px; line-height:1.7; }
.public-resident { display:flex; flex-direction:column; align-items:center; align-self:end; padding:10px 0 4px; }
.public-resident img { width:154px; height:170px; object-fit:contain; position:relative; }
.public-resident > span:last-child { color:var(--steel); font:400 10px/1.5 var(--sans); letter-spacing:.13em; text-transform:uppercase; margin-top:14px; }
.public-resident-rule { width:70px; height:1px; background:var(--rule); margin-bottom:16px; }
.public-page .rule { width:100%; border:0; height:1px; margin:0 0 46px; background:var(--rule); }
.public-page p { margin:0 0 24px; }
.public-page .sheet > .rule + p:not(.meta) { font-size:clamp(21px,2.1vw,25px); line-height:1.58; letter-spacing:-.015em; }
.public-page .sheet > :is(p,ul,ol), .public-page .card p, .public-page .notice, .public-page .bi p { max-width:68ch; overflow-wrap:break-word; }
.public-page h2 { font:400 var(--type-heading)/1.2 var(--serif); letter-spacing:-.025em; text-wrap:balance;
  color:var(--pine-deep); margin:54px 0 19px; padding:0; }
.public-page h3 { font:500 16px/1.5 var(--sans); margin:30px 0 12px; color:var(--pine-deep); letter-spacing:0; }
.public-page strong { font-weight:600; }
.public-page em { font-style:italic; }
.public-page ul, .public-page ol { padding-left:1.3em; margin:0 0 26px; }
.public-page li { padding-left:.2em; margin-bottom:10px; }
.public-page .meta { font:400 12px/1.7 var(--sans); color:var(--steel); letter-spacing:.025em; text-transform:none; margin:0 0 16px; }
.public-page .notice { padding:21px 26px; margin:28px 0; background:var(--room); border:1px solid var(--rule); border-left:3px solid var(--pine);
  color:var(--steel); font:400 17px/1.65 var(--serif); }
.public-page .gap { display:inline-block; vertical-align:middle; padding:3px 8px; border:1px solid #e4d9b2;
  background:#f8efcf; color:#705219; font:500 10px/1.5 var(--sans); letter-spacing:.045em; white-space:normal; }
.public-page blockquote { margin:26px 0; padding:4px 0 4px 25px; border-left:2px solid #c7ac67; font-size:1.2em; }
.public-page hr:not(.rule) { border:0; border-top:1px solid var(--rule); margin:32px 0; }
/* Wide data keeps a table's relationships. Small measures keep a book's width. */
.public-page :is(.wrap,.scroll) { overflow-x:auto; max-width:100%; margin:7px 0 27px; overscroll-behavior-inline:contain; }
.public-page .wrap:has(> .measures) { grid-column:prose-start/prose-end; }
.public-page table { border-collapse:collapse; width:100%; margin:0; font:400 15px/1.65 var(--sans);
  border-top:1px solid var(--pine); border-bottom:1px solid var(--rule); }
.public-page th, .public-page td { text-align:left; vertical-align:top; padding:17px 20px 17px 0; border-bottom:1px solid var(--rule); }
.public-page tr:last-child td, .public-page tr:last-child th { border-bottom:0; }
.public-page th { font:500 11px/1.55 var(--sans); color:var(--steel); text-transform:uppercase; letter-spacing:.055em; }
.public-page thead th { background:var(--room); padding:15px 17px; }
.public-page thead th:first-child { padding-left:17px; }
.public-page td:first-child { padding-left:17px; }
.public-page td:last-child, .public-page th:last-child { padding-right:17px; }
.public-page td.num, .public-page th.num { text-align:right; font-variant-numeric:tabular-nums; }
.public-page td.acc { color:var(--pine); font-family:var(--text); white-space:nowrap; font-size:1.15em; }
.public-page table.measures th[scope=row] { width:32%; white-space:normal; padding-left:0; padding-top:20px; }
.public-page table.measures td { font-family:var(--serif); font-size:18px; padding-right:0; }
.public-page p.neighbours { display:flex; flex-wrap:wrap; gap:12px 24px; padding:20px 0; border-block:1px solid var(--rule); font-size:16px; }
/* Consecutive source/translation pairs work in every room and its Spanish twin. */
.public-page .bi { margin:0 0 26px; }
.public-page .bi p { margin:0; }
.public-page .bi p:nth-child(odd) { color:var(--carbon); font-size:21px; line-height:1.65; font-style:normal; margin-top:20px; }
.public-page .bi p:nth-child(even) { color:var(--steel); font-size:18px; line-height:1.65; font-style:italic; margin-top:4px; }
.public-page .bi p.big { font-size:clamp(25px,3.4vw,36px); }
.public-page .card { padding:26px 30px; background:var(--room); border:1px solid var(--rule); border-top:3px solid var(--pine); margin:12px 0 25px; box-shadow:none; }
.public-page .card :is(h2,h3) { margin:0 0 12px; padding:0; }
.public-page .card p { margin:0 0 10px; }
.public-page .card p:last-child { margin-bottom:0; }
.public-page .shelf-item { padding:25px 0; border-bottom:1px solid var(--rule); margin:0; }
.public-page .shelf-item :is(h2,h3) { margin:0 0 9px; }
.public-page .shelf-item p { margin:0 0 8px; }
.public-page details summary { cursor:pointer; padding:12px 0; min-height:44px; color:var(--pine); font:400 14px/1.5 var(--sans); }
.public-page details[open] > summary { margin-bottom:10px; }
.public-page .shelf-invitation { margin:0 0 6px; }
.public-page .shelf-invitation a { display:inline-flex; align-items:center; gap:18px; min-height:44px;
  font:500 13px/1.5 var(--sans); text-decoration:none; border-bottom:1px solid var(--pine); }
.public-page .shelf-invitation .ic { width:18px; height:18px; flex:none; }
.public-page .sheet > .shelf-ledger { grid-column:full-start/full-end; margin:0 0 26px; border-block:1px solid var(--rule); }
.public-page .shelf-ledger > summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:19px 0; list-style:none; font-size:13px; }
.public-page .shelf-ledger > summary::-webkit-details-marker { display:none; }
.public-page .shelf-ledger > summary .ic { width:18px; height:18px; flex:none; }
.public-page .shelf-ledger[open] > summary .ic { transform:rotate(45deg); }
.public-page .shelf-ledger[open] .wrap, .public-page .shelf-ledger[open] .scroll { margin-top:10px; }
.public-page .room-shelf .vol-ti-medium { font-size:20px; }
.public-page .room-shelf .vol-ti-long { font-size:17px; }
@media (max-width:600px) {
  .public-page .room-shelf .vol-ti-medium { font-size:16px; }
  .public-page .room-shelf .vol-ti-long { font-size:13px; }
  .public-page .room-shelf .vol-label { top:13%; }
}
/* The shelves keep their existing books, set with generous space and fine rules. */
.public-page .shelf { display:grid; grid-template-columns:repeat(auto-fit,minmax(205px,1fr)); gap:52px 34px;
  padding:35px 0 44px; margin:16px 0 28px; border-block:1px solid var(--rule); background:transparent; }
.public-page .vol-link { display:block; color:inherit; text-decoration:none; min-width:0; }
.public-page .vol-link article { height:100%; }
.public-page .vol-wrap { perspective:1100px; width:min(190px,88%); margin:0 auto 27px; }
.public-page .vol { position:relative; aspect-ratio:2/3; transform-style:preserve-3d; transform:rotateY(-17deg) rotateZ(-1deg);
  transition:transform .4s cubic-bezier(.2,.7,.2,1); filter:drop-shadow(9px 14px 9px rgba(21,39,71,.17)); }
.public-page .vol-link:is(:hover,:focus-visible) .vol { transform:rotateY(-6deg) rotateZ(0) translateY(-5px); }
.public-page .vol-front { position:absolute; inset:0; background:var(--cloth,#394c68); transform:translateZ(9px);
  border:1px solid rgba(0,0,0,.2); box-shadow:inset 7px 0 12px -7px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.1); }
.public-page .vol-front::before { content:''; position:absolute; inset:9px; border:1px solid rgba(243,226,183,.4); pointer-events:none; }
.public-page .vol-pages { position:absolute; top:3px; bottom:3px; right:0; width:18px; transform:rotateY(90deg) translateZ(9px); transform-origin:right;
  background:repeating-linear-gradient(180deg,#f5efdf 0 2px,#d9cfb7 2px 3px); border:1px solid rgba(0,0,0,.13); }
.public-page .vol-spine { position:absolute; inset:0 auto 0 0; width:18px; transform:rotateY(-90deg) translateZ(9px); transform-origin:left;
  background:color-mix(in srgb,var(--cloth,#394c68) 78%,#000); border:1px solid rgba(0,0,0,.2); }
.public-page .vol-label { position:absolute; left:14%; right:14%; top:17%; text-align:center; color:#f3e6c4; }
.public-page .vol-au { font:400 9px/1.55 var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.public-page .vol-ti { font:400 clamp(19px,1.8vw,26px)/1.08 var(--serif); margin:16px 0 20px; overflow-wrap:break-word; }
.public-page .vol-label::after { content:''; display:block; margin:0 auto; width:30px; border-top:1px solid rgba(243,226,183,.6); }
.public-page .vol-year { position:absolute; bottom:8%; left:0; right:0; text-align:center; font:400 9px/1.5 var(--sans); letter-spacing:.18em; color:var(--leaf); }
.public-page .vol-free { position:absolute; bottom:17%; left:25%; right:25%; padding:3px; text-align:center;
  border-block:1px solid rgba(243,226,183,.45); color:#fff3d3; font:400 9px/1.5 var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.public-page .vol-caption :is(h2,h3) { font:400 24px/1.15 var(--serif); letter-spacing:-.025em; margin:0 0 10px; }
.public-page .vol-caption .meta { margin-bottom:9px; font-size:10px; }
.public-page .vol-caption p { margin:0; font-size:16px; line-height:1.65; color:var(--steel); }
.public-page .vol-link:hover .vol-caption :is(h2,h3) { color:var(--pine); }
.public-page .dossier { display:grid; grid-template-columns:220px minmax(0,680px); gap:clamp(36px,6vw,90px); justify-content:center; align-items:center;
  margin:0 0 42px; padding:30px 0 45px; border-bottom:1px solid var(--rule); }
.public-page .dossier .vol-wrap { width:195px; margin:0 auto; }
.public-page .dossier .vol-ti { font-size:26px; }
.public-page .dossier p { margin-bottom:15px; }
/* Local line/quiz styles still own their interactions; shared controls gain a finish. */
.public-page .line { max-width:100%; }
.public-page .line .close { background:var(--room); border:1px solid var(--rule); padding:24px; }
.public-page .line .cta, .public-page .reading-action, .public-page button.count { border-radius:0; background:var(--pine); color:var(--on-pine); box-shadow:none; }
.public-page .line .pn, .public-page .line .go { gap:16px; }
.public-page .sheet:has(.reading-demo) .public-frontispiece h1 { max-width:23ch; }
/* One quiet colophon: doors first, further study on request, legal links in reach. */
.public-page .public-footer { margin-top:85px; border-top:1px solid var(--rule); padding:44px 0 0; color:var(--steel); font:400 13px/1.7 var(--sans); }
.public-footer-intro { display:grid; grid-template-columns:58px 1fr auto; align-items:center; gap:22px; margin-bottom:32px; }
.public-footer-intro > .ltl-mark { width:52px; height:52px; color:var(--carbon); }
.public-footer-intro > a .ic { width:20px; height:20px; flex:none; }
.public-footer-intro p { font:400 27px/1.2 var(--serif); color:var(--carbon); letter-spacing:-.02em; margin:0; }
.public-footer-intro > a { display:flex; align-items:center; gap:18px; min-height:44px; text-decoration:none; font-size:12px; }
.public-page .public-room-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:28px; }
.public-room-nav a { display:flex; align-items:center; gap:14px; padding:21px 16px; border:1px solid var(--rule); background:var(--room); text-decoration:none; transition:background .2s,border-color .2s; }
.public-room-nav a:hover { background:#edf1fa; border-color:#a3b0c6; }
.public-room-nav a img { object-fit:contain; opacity:.85; }
.public-room-nav small { display:block; font:400 9px/1.5 var(--sans); color:var(--steel); letter-spacing:.03em; }
.public-room-nav strong { font:400 25px/1.3 var(--serif); color:var(--carbon); }
.public-page .public-footer nav { display:flex; flex-wrap:wrap; gap:2px 24px; }
.public-page .public-footer nav a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; font:400 12px/1.5 var(--sans); }
.public-page .public-footer nav.public-room-nav { display:grid; gap:12px; }
.public-page .public-footer details { border-block:1px solid var(--rule); margin:18px 0 12px; }
.public-page .public-footer details > summary { padding:18px 0; font-size:12px; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.public-footer details > summary::-webkit-details-marker { display:none; }
.public-footer details > summary::after { content:''; flex:none; width:8px; height:8px; margin:0 5px 4px 20px; border-right:1px solid var(--pine); border-bottom:1px solid var(--pine); transform:rotate(45deg); }
.public-footer details[open] > summary::after { transform:rotate(225deg); margin-top:5px; }
.public-resource-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; padding:0 0 25px; }
.public-page .public-resource-groups nav { display:flex; flex-direction:column; align-items:flex-start; gap:0; }
.public-page .public-resource-groups h2 { font:500 11px/1.5 var(--sans); text-transform:uppercase; letter-spacing:.08em; margin:10px 0; }
.public-page .public-resource-groups nav a { min-height:38px; }
.public-page .public-footer .public-legal-nav a { color:var(--steel); font-size:11px; }
.public-page .public-footer .colophon { font:400 11px/1.7 var(--sans); margin:12px 0 0; color:var(--steel); max-width:none; }
.public-page .public-footer .colophon a { color:var(--steel); }
@media (min-width:1500px) { .public-page .public-frontispiece { padding-top:85px; padding-bottom:52px; } }
@media (max-width:900px) {
  .public-page .public-frontispiece { grid-template-columns:minmax(0,1fr) 126px; gap:25px; padding:48px 0 34px; }
  .public-resident img { width:116px; height:133px; }
  .public-resident > span:last-child { font-size:8px; }
  .public-nav { padding-block:20px; }
  .public-nav nav { gap:20px; }
  .public-nav nav a { font-size:11px; }
  .public-page .public-room-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .public-footer-intro { grid-template-columns:52px 1fr; }
  .public-footer-intro > a { grid-column:2; }
}
@media (max-width:600px) {
  .public-page { font-size:18px; }
  .public-nav { flex-wrap:wrap; gap:14px; padding:18px 22px 10px; }
  .public-wordmark { font-size:12px; }
  .public-wordmark .ltl-mark { width:40px; height:40px; }
  .public-nav nav { width:100%; justify-content:space-between; gap:12px; }
  .public-nav nav a { font-size:11px; }
  .public-nav nav .public-nav-start { gap:10px; }
  .public-page .sheet { display:block; padding-inline:22px; }
  .public-page .public-frontispiece { display:block; position:relative; padding:36px 0 28px; }
  .public-page .public-heading { position:relative; z-index:1; }
  .public-page h1 { font-size:clamp(38px,9.5vw,56px); max-width:100%; letter-spacing:-.04em; }
  .public-page .eyebrow { font-size:9px; letter-spacing:.12em; margin-bottom:18px; }
  .public-page .public-heading .dateline { margin-top:20px; }
  .public-resident { flex-direction:row; justify-content:flex-end; gap:12px; padding:20px 0 0; }
  .public-resident img { width:62px; height:68px; order:2; }
  .public-resident-rule { width:35px; margin:0; }
  .public-resident > span:last-child { margin:0; font-size:8px; }
  .public-page .rule { margin-bottom:28px; }
  .public-page .sheet > .rule + p:not(.meta) { font-size:22px; }
  .public-page h2 { margin-top:40px; font-size:29px; }
  .public-page h3 { font-size:15px; }
  .public-page :is(.wrap,.scroll) { margin-bottom:24px; }
  .public-page table { font-size:13px; }
  .public-page th, .public-page td { padding:13px 16px 13px 0; }
  .public-page th { font-size:10px; }
  .public-page table.measures td { font-size:16px; }
  .public-page table.measures th[scope=row] { width:33%; padding-top:17px; }
  .public-page .notice { font-size:16px; padding:18px 20px; }
  .public-page .shelf { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 20px; padding-top:26px; }
  .public-page .vol-wrap { width:min(150px,88%); margin-bottom:21px; }
  .public-page .vol-au { font-size:7px; }
  .public-page .vol-ti { font-size:19px; margin:12px 0; }
  .public-page .vol-free { font-size:7px; }
  .public-page .vol-year { font-size:7px; }
  .public-page .vol-caption :is(h2,h3) { font-size:22px; }
  .public-page .vol-caption p { font-size:14px; }
  .public-page .vol-caption .meta { font-size:9px; }
  .public-page .dossier { grid-template-columns:1fr; gap:28px; padding:10px 0 25px; }
  .public-page .dossier .vol-wrap { width:170px; }
  .public-page .dossier .vol-au { font-size:9px; }
  .public-page .dossier .vol-ti { font-size:24px; }
  .public-page .dossier .vol-free, .public-page .dossier .vol-year { font-size:8px; }
  .public-page .card { padding:22px; }
  .public-page .bi p:nth-child(odd) { font-size:20px; }
  .public-page .bi p:nth-child(even) { font-size:17px; }
  .public-page .public-footer { margin-top:58px; padding-top:30px; }
  .public-footer-intro { gap:15px; }
  .public-footer-intro p { font-size:24px; }
  .public-footer-intro > a { font-size:11px; }
  .public-room-nav a { padding:15px 10px; gap:9px; }
  .public-room-nav a img { width:39px; height:43px; }
  .public-room-nav strong { font-size:21px; }
  .public-room-nav small { font-size:8px; }
  .public-page .public-footer nav { gap:0 20px; }
  .public-page .public-footer nav a { font-size:11px; }
  .public-resource-groups { grid-template-columns:1fr; gap:14px; }
  .public-page .public-resource-groups nav { flex-direction:row; align-items:center; gap:0 22px; }
  .public-page .public-resource-groups h2 { width:100%; }
}
@media (max-width:360px) {
  .public-page .sheet, .public-nav { padding-inline:18px; }
  .public-nav nav { gap:8px; }
  .public-nav nav a { font-size:10px; }
  .public-page .vol-ti { font-size:16px; }
  .public-page .vol-au { letter-spacing:.03em; }
  .public-room-nav a { gap:7px; }
  .public-room-nav small { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .public-page *, .public-page *::before, .public-page *::after { animation:none!important; scroll-behavior:auto!important; transition:none!important; }
  .public-page .vol-link:is(:hover,:focus-visible) .vol { transform:rotateY(-17deg) rotateZ(-1deg); }
}
@media print {
  .public-page { font-size:12pt; background:white; color:black; }
  .public-nav, .public-resident, .public-footer, .public-skip { display:none!important; }
  .public-page .sheet { display:block; width:100%; padding:0; }
  .public-page .public-frontispiece { display:block; padding:0 0 20pt; }
  .public-page h1 { font-size:30pt; }
  .public-page :is(.wrap,.scroll) { overflow:visible; }
  .public-page h2 { break-after:avoid; }
  .public-page .bi { break-inside:avoid; }
}
/* Four-column summaries fit a phone; wider ledgers keep their own scroll area. */
@media(max-width:600px) {
  .public-page thead th { padding:12px 10px; font-size:9px; }
  .public-page thead th:first-child,.public-page td:first-child { padding-left:10px; }
  .public-page td:last-child,.public-page th:last-child { padding-right:10px; }
}

/* The illustrated editions. A shared visual grammar, with a different emphasis
   for bookshelves, stories, reference atlases and reading journals. */
.public-page { --edition-accent:#765a37; --edition-cloth:#304c76; background:#faf8f1; }
.public-page.room-de { --edition-accent:#38665a; --edition-cloth:#34574e; }
.public-page.room-es { --edition-accent:#994f38; --edition-cloth:#914b38; }
.public-page.room-fr { --edition-accent:#5b5483; --edition-cloth:#555278; }
.public-page .public-nav { width:100%; max-width:1560px; padding-block:21px; }
.public-nav nav .public-nav-start { padding:11px 20px; background:var(--carbon); color:var(--sheet); border:0; }
.public-page .sheet { width:min(1560px,100%); grid-template-columns:[full-start] minmax(0,1fr) [prose-start] minmax(0,750px) [prose-end] minmax(0,1fr) [full-end]; }
.public-page .public-frontispiece { position:relative; isolation:isolate; grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr); gap:24px 50px;
  padding:28px 0 48px; margin-bottom:14px; }
.edition-index { grid-column:1/-1; display:flex; justify-content:space-between; gap:20px; padding:0 0 20px; border-bottom:1px solid var(--rule);
  font:400 10px/1.5 var(--sans); text-transform:uppercase; letter-spacing:.13em; color:var(--steel); }
.public-page .public-heading { padding-top:25px; }
.public-page .public-frontispiece h1 { font-size:clamp(42px,4.8vw,76px); line-height:1.06; max-width:22ch; }
.public-page .public-heading .eyebrow { color:var(--edition-accent); font-size:10px; letter-spacing:.13em; }
.public-page .public-heading .dateline { font-size:10px; max-width:56ch; }
.edition-doors { grid-column:1; display:flex; align-items:center; flex-wrap:wrap; gap:22px; padding-top:8px; }
.edition-doors a { display:inline-flex; align-items:center; gap:13px; text-decoration:none; min-height:48px; font:400 12px/1.4 var(--sans); }
.public-page .edition-primary { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:50px; padding:14px 24px;
  background:var(--carbon); color:var(--sheet); text-decoration:none; font:500 12px/1.5 var(--sans); border:1px solid transparent;
  transition:background .2s,transform .2s; }
.public-page .edition-primary:hover { background:var(--edition-cloth); transform:translateY(-2px); }
.edition-primary .ic { width:20px; height:20px; }
.public-page .edition-art { position:relative; display:block; width:100%; max-width:390px; height:340px; align-self:center;
  grid-column:2; grid-row:2/4; padding:0; perspective:1200px; margin:12px auto 0; }
.edition-orbit { position:absolute; inset:18px -10px 6px; border:1px solid color-mix(in srgb,var(--edition-accent) 20%,transparent); border-radius:50%; transform:rotate(-24deg) scaleY(.85); }
.edition-orbit::after { content:''; position:absolute; inset:15px; border:1px solid color-mix(in srgb,var(--edition-accent) 10%,transparent); border-radius:50%; }
.edition-book { position:absolute; width:172px; height:240px; background:var(--edition-cloth); color:#f3e4c3; box-shadow:inset 6px 0 9px #0003,12px 18px 25px #15274726;
  border-radius:2px 4px 4px 2px; padding:28px 22px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.edition-book::before { content:''; position:absolute; inset:10px; border:1px solid #e6c88a70; pointer-events:none; }
.edition-book::after { content:''; position:absolute; top:4px; right:-8px; bottom:3px; width:8px; background:repeating-linear-gradient(#e4d8bf 0 1px,#fff9e9 1px 3px); transform:skewY(-24deg); transform-origin:left; }
.edition-book-back { left:16%; top:24px; transform:rotate(-16deg); filter:brightness(.8); font:400 25px/1.1 var(--serif); }
.edition-book-front { left:37%; top:49px; transform:rotate(9deg); transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.edition-art:hover .edition-book-front { transform:rotate(3deg) translateY(-8px); }
.edition-book-author { font:400 8px/1.4 var(--sans); text-transform:uppercase; letter-spacing:.1em; }
.edition-book-title { font:400 26px/1.1 var(--serif); overflow-wrap:anywhere; margin:20px 0 15px; max-height:116px; overflow:hidden; }
.edition-story .edition-book-title { font-size:20px; }
.edition-book-rule { width:35px; height:1px; background:#e6c88a; margin:6px auto; }
.edition-book-imprint { margin-top:auto; padding-top:14px; font:400 7px/1.3 var(--sans); letter-spacing:.14em; }
.public-page .edition-art .edition-resident { position:absolute; bottom:1px; left:0; width:115px; height:127px; z-index:3; transform:rotate(-5deg); }
.edition-note { position:absolute; bottom:12px; right:-4px; z-index:2; width:164px; padding:16px 16px 10px; background:#fffef8; box-shadow:0 5px 15px #15274717; transform:rotate(-6deg); border:1px solid #e0d7bd; }
.edition-note span { font:400 18px/1.3 var(--serif); color:var(--carbon); }
.edition-note-line { display:block; width:55px; border-bottom:3px solid #ebc565; margin:9px 0 0; }
.public-page .edition-art > .edition-art-caption { position:absolute; top:0; right:0; margin:0; font:400 9px/1.4 var(--sans); color:var(--steel); text-transform:uppercase; letter-spacing:.1em; }
.public-page.edition-shelf .public-frontispiece { background:var(--carbon); color:var(--sheet); margin:28px 0 38px; padding:25px 40px 40px; }
.edition-shelf .public-frontispiece .edition-index { border-color:#ffffff24; color:#bfcbdb; }
.public-page.edition-shelf .public-frontispiece h1 { color:var(--sheet); }
.public-page.edition-shelf .public-heading .eyebrow,.edition-shelf .edition-art-caption { color:#eed599; }
.edition-shelf .edition-doors a { color:var(--sheet); }
.public-page.edition-shelf .edition-doors .edition-primary { background:#f1ce7d; color:var(--carbon); }
.edition-shelf .edition-orbit { border-color:#ffffff21; }
.edition-shelf .edition-book-back { background:#c5a565; color:var(--carbon); }
.edition-shelf .public-frontispiece .edition-index span:last-child { color:#bfcbdb; }
.public-page.edition-atlas .public-frontispiece { background-image:linear-gradient(#38507408 1px,transparent 1px),linear-gradient(90deg,#38507408 1px,transparent 1px); background-size:32px 32px; }
.edition-atlas .edition-book-front { transform:rotate(0); }
.edition-atlas .edition-note { transform:rotate(0); }
.public-page .rule { margin-bottom:36px; background:var(--edition-accent); opacity:.35; }
.public-page.edition-shelf .public-frontispiece + .rule { display:none; }
.public-page .sheet > p:not(.meta) { line-height:1.85; }
.public-page .sheet > h2 { position:relative; padding-top:28px; margin-top:48px; border-top:1px solid var(--rule); scroll-margin-top:30px; }
.public-page .sheet > h2::before { content:''; position:absolute; top:-2px; left:0; width:35px; border-top:3px solid var(--edition-accent); }
.public-page .sheet > h2 a { text-decoration:none; }
.public-page .card { background:#f0f2ed; border:0; border-left:3px solid var(--edition-accent); padding:30px 34px; }
.public-page .card h2 { font-size:30px; }
.public-page .notice { background:#f3eee0; border:0; border-left:3px solid #c4a467; }
.public-page .bi { background:#fffdf6; padding:15px 30px 25px; border:1px solid #e6e0d1; box-shadow:4px 5px 0 #f0ebde; }
.public-page .bi p:nth-child(odd) { margin-top:20px; }
.public-page .bi p:nth-child(even) { padding-left:18px; border-left:2px solid #dfc893; }
.public-page table { background:#fffdf8; border-top:2px solid var(--edition-accent); }
.public-page thead th { background:#edf0ef; color:var(--carbon); }
.public-page tbody tr:nth-child(even) { background:#f6f4ed; }
.public-page tbody tr:hover { background:#eef1f6; }
.public-page .shelf { gap:0 30px; border-top:0; padding-top:15px; }
.public-page .vol-link { padding:35px 15px 30px; border-bottom:1px solid var(--rule); }
.public-page .vol-caption { margin-top:20px; }
.public-page .vol-caption h2 { font-size:26px; }
.public-page .vol-caption p { font-size:16px; }
.public-page .vol-link article { display:flex; flex-direction:column; }
.public-page .vol-link .vol-wrap { margin-bottom:10px; }
.public-page .vol { transform:rotateY(-22deg) rotateZ(-2deg); }
.public-page .vol-link:is(:hover,:focus-visible) .vol { transform:rotateY(-7deg) rotateZ(0) translateY(-9px); }
.public-page .edition-contents { grid-column:full-start/full-end; display:flex; gap:30px; border-bottom:1px solid var(--rule); padding:0 0 26px; margin-bottom:36px; }
.public-page .edition-contents[hidden] { display:none; }
.edition-contents-label { flex:0 0 140px; font:500 10px/1.6 var(--sans); text-transform:uppercase; letter-spacing:.1em; padding-top:10px; color:var(--edition-accent); }
.edition-contents > div { display:flex; flex-wrap:wrap; gap:5px 24px; }
.edition-contents a { display:flex; align-items:center; font:400 12px/1.5 var(--sans); min-height:36px; text-decoration:none; max-width:42ch; }
.public-page .edition-invitation { grid-column:full-start/full-end; display:grid; grid-template-columns:190px minmax(0,1fr); gap:45px; align-items:center;
  margin:75px 0 30px; padding:44px 60px; background:var(--carbon); color:var(--sheet); position:relative; overflow:hidden; }
.edition-invitation::after { content:''; width:360px; height:360px; border:1px solid #ffffff15; border-radius:50%; position:absolute; right:-100px; top:-160px; pointer-events:none; }
.edition-invitation-art { border:1px solid #ffffff24; border-radius:50%; width:175px; height:175px; display:grid; place-items:center; background:#ffffff06; }
.edition-invitation-art img { width:142px; height:158px; filter:drop-shadow(0 9px 6px #0002); }
.public-page .edition-invitation .eyebrow { color:#e7cb8c; font-size:9px; margin-bottom:15px; }
.public-page .edition-invitation h2 { margin:0 0 13px; color:var(--sheet); font-size:clamp(30px,3vw,44px); }
.public-page .edition-invitation p:not(.eyebrow) { font-size:18px; color:#c7d0dd; margin-bottom:24px; }
.public-page .edition-invitation .edition-primary { background:#edcc82; color:var(--carbon); }
.edition-invitation-small { display:inline-block; margin:14px 0 0 16px; font:400 11px/1.5 var(--sans); color:#c7d0dd; }
.public-page .public-footer { margin-top:55px; }
.public-page .public-room-nav a { border:0; border-bottom:2px solid #ccd4df; background:#eef0ee; padding:24px 20px; }
.public-page .public-room-nav a:hover { border-color:var(--edition-accent); background:#e8ece9; }
@media (min-width:1100px) {
 .public-page .dossier { background:#f0eee5; padding:45px; border:0; }
 .public-page.edition-story .public-frontispiece { grid-template-columns:minmax(0,1.4fr) minmax(280px,.75fr); }
}
@media (max-width:1000px) {
 .public-page .public-frontispiece { gap:22px; grid-template-columns:minmax(0,1fr) 260px; }
 .public-page .edition-art { transform:scale(.87); transform-origin:center right; }
 .public-page.edition-shelf .public-frontispiece { padding-inline:28px; }
 .edition-index span:last-child { display:none; }
 .public-page .edition-invitation { padding:35px; gap:28px; grid-template-columns:150px minmax(0,1fr); }
 .edition-invitation-art { width:140px; height:140px; }
 .edition-invitation-art img { width:116px; height:128px; }
}
@media (max-width:700px) {
 .public-page .public-frontispiece { grid-template-columns:minmax(0,1fr); padding:22px 0 30px; gap:0; }
 .public-page .public-heading { padding-top:25px; }
 .public-page .public-frontispiece h1 { font-size:clamp(37px,8vw,56px); max-width:100%; }
 .public-page .edition-art { grid-column:1; grid-row:auto; width:300px; max-width:100%; height:290px; transform:scale(.9); transform-origin:center; margin:12px auto 0; }
 .edition-doors { grid-column:1; gap:14px; padding-top:12px; justify-content:center; }
 .edition-doors a { font-size:11px; }
 .public-page .edition-primary { padding:12px 17px; gap:14px; }
 .public-page.edition-shelf .public-frontispiece { margin-top:20px; padding:20px 22px 28px; }
 .public-page .edition-art > .edition-art-caption { top:0; font-size:8px; }
 .public-page .edition-art .edition-resident { width:98px; height:108px; left:-8px; bottom:-25px; }
 .edition-book { width:144px; height:204px; padding:25px 20px; }
 .edition-book-title { font-size:23px; margin-block:13px; max-height:98px; }
 .edition-story .edition-book-title { font-size:18px; }
 .edition-book-back { left:11%; top:17px; }
 .edition-book-front { left:38%; top:35px; }
 .edition-note { width:145px; bottom:-15px; right:0; }
 .edition-note span { font-size:17px; }
 .public-page .edition-contents { display:block; padding-bottom:22px; }
 .edition-contents-label { display:block; margin-bottom:12px; }
 .edition-contents > div { gap:4px 20px; }
 .edition-contents a { font-size:11px; }
 .public-page .edition-invitation { display:block; padding:28px 24px; margin-top:48px; }
 .edition-invitation-art { float:right; margin:0 0 18px 15px; width:82px; height:82px; }
 .edition-invitation-art img { width:72px; height:79px; }
 .public-page .edition-invitation .eyebrow { max-width:22ch; }
 .public-page .edition-invitation h2 { font-size:32px; }
 .public-page .edition-invitation p:not(.eyebrow) { font-size:17px; clear:both; }
 .edition-invitation-small { margin-left:0; display:block; }
 .public-page .shelf { gap:0 20px; }
 .public-page .vol-link { padding:24px 0; }
 .public-page .vol-caption h2 { font-size:23px; }
 .public-page .vol-caption p { font-size:15px; }
 .public-page .card { padding:24px; }
 .public-page .bi { padding:8px 20px 22px; }
}
@media (prefers-reduced-motion:no-preference) {
 .edition-book-front { animation:edition-open .85s cubic-bezier(.2,.7,.2,1) both; }
 .edition-note { animation:edition-note .8s .15s cubic-bezier(.2,.7,.2,1) both; }
 @keyframes edition-open { from { transform:translateY(22px) rotate(15deg); } }
 @keyframes edition-note { from { transform:translateY(18px) rotate(-10deg); } }
}
@media print { .edition-art,.edition-doors,.edition-contents,.edition-invitation,.edition-index { display:none!important; } }
.public-page .edition-authors { grid-column:full-start/full-end; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:15px 0 35px; }
.edition-author-card { position:relative; padding:35px; background:#efeee5; border:1px solid #e0dfd4; }
.edition-author-number { display:block; color:var(--edition-accent); font:400 14px/1 var(--sans); margin-bottom:25px; }
.public-page .edition-author-card h2 { font-size:30px; margin:0 0 18px; }
.edition-author-card h2 a { text-decoration:none; }
.edition-author-card p { font-size:17px; }
.public-page .edition-author-link { display:inline-flex; align-items:center; gap:20px; min-height:44px; font:400 12px/1.5 var(--sans); text-decoration:none; border-bottom:1px solid var(--edition-accent); }
#edition-books { scroll-margin-top:30px; }
@media(max-width:700px) { .public-page .edition-authors { grid-template-columns:1fr; gap:15px; } .edition-author-card { padding:26px; } }
@media(max-width:360px) { .public-page .edition-art { width:245px; transform:scale(.8); transform-origin:top left; height:240px; } .edition-doors { flex-direction:column; align-items:stretch; } }
