/* reading-room, issue-read, September 2026.

   The Reading Room and one issue's page - what they say that _shared.css does not,
   in the mocks' own order.

   Built by scratchpad/design-2026/build-reading.py - do not edit by hand.
   Every at-rule is kept even when its contents look redundant: dropping one
   moves the ones around it.                                              */

/* ==== reading-room.html ==== */
/* What this design adds to the shared tokens. */
:root{--page:148/190}
.h2 em,h1 em,.big em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em;letter-spacing:0}
header.site.glass{background-color:transparent;color:#fff}
header.site.glass .flow a,header.site.glass .menu-word{color:#fff}
header.site.glass .flow a i{color:rgba(255,255,255,.85)}
header.site.glass .mk img{filter:invert(1) brightness(2)}
@keyframes rise{to{opacity:1;transform:none}}
.hero{position:relative;height:clamp(560px,84vh,920px);margin-top:calc(-1*var(--bar));overflow:hidden;background:var(--forest);color:#fff}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:drift 16s linear both}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.05)}}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,24,20,.46) 0,rgba(20,24,20,.12) 30%,rgba(20,24,20,.14) 45%,rgba(20,24,20,.7) 100%)}
.hero .in{position:absolute;left:0;right:0;bottom:clamp(56px,9vh,96px)}
.hero h1{font-family:var(--face);font-weight:400;font-size:min(clamp(42px,6vw,88px), 28px + (clamp(42px,6vw,88px) - 28px) * 0.6);line-height:1;letter-spacing:-.012em;max-width:14ch;text-wrap:balance}
.hero .where{margin-top:20px;font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.5vw,21px);line-height:1.45;max-width:56ch;color:rgba(255,255,255,.92)}
.hero .credit{position:absolute;right:var(--edge);bottom:clamp(56px,9vh,96px);font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hero .credit b{font-weight:600;color:#fff}
@media(max-width:820px){.hero .credit{display:none}}
.btn.quiet:hover{background:var(--ink);color:var(--paper)}
.forest .btn:hover{background:#fff;border-color:#fff}
.band{padding:clamp(56px,9vh,110px) 0}
/* the two ways to read: centred columns, buttons level */
.ways{padding:clamp(44px,7vh,80px) 0}
.ways .in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,72px)}
.way{display:flex;flex-direction:column;align-items:center;text-align:center}
.way h2{font-family:var(--face);font-weight:400;font-size:min(clamp(30px,3vw,44px), 28px + (clamp(30px,3vw,44px) - 28px) * 0.6);line-height:1.05}
.way h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em}
.way p{margin-top:14px;font-family:var(--serif);font-size:16.5px;line-height:1.6;color:var(--ink-75);max-width:36ch;text-wrap:pretty;margin-bottom:24px}
.way .btn{margin-top:auto}
@media(max-width:700px){.ways .in{grid-template-columns:1fr}}
/* the filter words and the shelf */
.tabs{display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,44px);margin-bottom:clamp(30px,4.5vh,48px)}
.tabs button{font-family:var(--face);font-weight:400;font-size:min(clamp(24px,2.4vw,34px), 28px + (clamp(24px,2.4vw,34px) - 28px) * 0.6);line-height:1.1;letter-spacing:-.005em;color:var(--ink-35);padding:4px 0;transition:color .3s}
.tabs button:hover{color:var(--ink-75)}
.tabs button.on{color:var(--ink)}
.shelf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(36px,4.5vh,56px) clamp(16px,2vw,28px)}
.cover{display:flex;flex-direction:column}
.cover.hide{display:none}
.c{display:block;position:relative;aspect-ratio:var(--tall);overflow:hidden;background:var(--stone-2);color:#fff}
.c.wide{aspect-ratio:var(--wide)}
.c h3{font-family:var(--face);font-weight:400;font-size:min(clamp(24px,2.2vw,30px), 28px + (clamp(24px,2.2vw,30px) - 28px) * 0.6);line-height:1.06;text-wrap:balance}
.c.wide h3{font-family:var(--serif);font-size:22px;line-height:1.14}
.acts2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto;padding-top:14px}
.acts2 > *{display:inline-flex;align-items:center;justify-content:center;height:44px;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);transition:background .22s,color .22s,border-color .22s}
.acts2 a:hover{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.acts2 > :only-child{grid-column:1/-1}
@media(max-width:1000px){.shelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.shelf{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* the issue open on the table: a spread drawn as it prints */
.open .in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,90px);align-items:center}
.spread{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--stone-2);padding:2px;box-shadow:0 40px 80px -40px rgba(65,64,66,.45)}
.spread img{width:100%;aspect-ratio:var(--page);object-fit:cover;background:#fff}
.open h2{font-family:var(--face);font-weight:400;font-size:min(clamp(36px,4.4vw,64px), 28px + (clamp(36px,4.4vw,64px) - 28px) * 0.6);line-height:1.02;letter-spacing:-.01em;text-wrap:balance}
.open h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em}
.open p{margin-top:20px;font-family:var(--serif);font-size:clamp(17px,1.4vw,19.5px);line-height:1.62;max-width:44ch;text-wrap:pretty}
.open .btns{margin-top:26px}
@media(max-width:900px){.open .in{grid-template-columns:1fr}}
/* the rail */
.arrows{display:flex;gap:8px}
.arrows button{width:46px;height:46px;display:grid;place-items:center;background:var(--forest);color:var(--paper);transition:background .2s,opacity .2s}
.arrows button:hover{background:var(--moss)}
.arrows button[disabled]{opacity:.3;cursor:default}
.arrows svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.rail{display:flex;gap:clamp(16px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);scrollbar-width:none;margin:0 calc(-1*var(--edge));padding:0 var(--edge);cursor:grab}
.rail > *{flex:0 0 clamp(300px,31.5vw,440px);scroll-snap-align:start}
/* the key */
.key .in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,5vw,90px);align-items:center}
.key h2{font-family:var(--face);font-weight:400;font-size:min(clamp(36px,4.4vw,66px), 28px + (clamp(36px,4.4vw,66px) - 28px) * 0.6);line-height:1.02;letter-spacing:-.01em;max-width:14ch;text-wrap:balance;color:#fff}
.key h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em}
.key p{margin-top:18px;font-family:var(--serif);font-size:18px;line-height:1.6;max-width:46ch}
@media(max-width:820px){.key .in{grid-template-columns:1fr}}
/* the issue page: the cover and the words on stone */
.top{padding:clamp(48px,8vh,96px) 0}
.top .in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,110px);align-items:center}
.top .cov{position:relative;aspect-ratio:var(--tall);overflow:hidden;background:var(--stone-2);max-width:460px}
.top .cov img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.top h1{font-family:var(--face);font-weight:400;font-size:min(clamp(44px,5.4vw,84px), 28px + (clamp(44px,5.4vw,84px) - 28px) * 0.6);line-height:1;letter-spacing:-.012em}
.top .season{display:block;margin-top:14px;font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.4vw,20px);color:var(--ink-75)}
.top p.lede{margin-top:24px;font-family:var(--serif);font-size:clamp(17px,1.4vw,19.5px);line-height:1.62;max-width:52ch;text-wrap:pretty}
.top .facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.top .facts span{display:inline-flex;align-items:center;gap:12px;padding-right:16px;font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-75)}
.top .facts b{width:46px;height:46px;display:grid;place-items:center;background:var(--forest);color:var(--paper);font-family:var(--face);font-weight:400;font-size:18px;letter-spacing:0}
.top .btns{margin-top:26px}
@media(max-width:820px){.top .in{grid-template-columns:1fr}}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(36px,4.5vh,56px) clamp(16px,2vw,28px)}
.piece{display:flex;flex-direction:column}
.piece p{margin-top:14px;font-family:var(--serif);font-size:16.5px;line-height:1.6;color:var(--ink-75);text-wrap:pretty}
@media(max-width:1000px){.grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.grid{grid-template-columns:1fr}}
/* the contents: rows in two columns, the page in a forest square */
.toc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vh,22px) clamp(28px,4vw,72px)}
.row{display:grid;grid-template-columns:104px 46px minmax(0,1fr);gap:18px;align-items:center}
.row .ph{display:block;aspect-ratio:var(--wide);overflow:hidden;background:var(--stone-2)}
.row .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.row:hover .ph img{transform:scale(1.04)}
.row .pg{width:46px;height:46px;display:grid;place-items:center;background:var(--forest);color:var(--paper);font-family:var(--face);font-size:17px;transition:background .2s}
.row .pg:hover{background:var(--moss)}
.row h3{font-family:var(--face);font-weight:400;font-size:clamp(19px,1.6vw,23px);line-height:1.12;text-wrap:balance;transition:color .3s}
.row h3:hover{color:var(--moss)}
.row .by{display:block;margin-top:4px;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ink-75)}
.row .mk{display:block;margin-top:6px;font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-55)}
@media(max-width:900px){.toc{grid-template-columns:1fr}}
/* the pages strip */
.strip{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1*var(--edge));padding:4px var(--edge)}
.strip::-webkit-scrollbar{display:none}
.strip a{flex:0 0 auto;width:clamp(96px,9vw,132px);aspect-ratio:var(--page);background:#fff;overflow:hidden;box-shadow:0 10px 24px -14px rgba(65,64,66,.4);transition:transform .6s var(--ease)}
.strip a:hover{transform:translateY(-4px)}
.strip a img{width:100%;height:100%;object-fit:cover}
.strip .more{display:grid;place-items:center;background:var(--forest);color:var(--paper);font-family:var(--face);font-size:15px;text-align:center;line-height:1.3;padding:10px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
@media(max-width:560px){.row{grid-template-columns:72px 40px minmax(0,1fr);gap:12px}.row .pg{width:40px;height:40px}}

/* ==== issue-read.html ==== */
@keyframes rise{to{opacity:1;transform:none}}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.05)}}
@media(max-width:820px){.hero .credit{display:none}}
@media(max-width:700px){.ways .in{grid-template-columns:1fr}}
@media(max-width:1000px){.shelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.shelf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.open .in{grid-template-columns:1fr}}
@media(max-width:820px){.key .in{grid-template-columns:1fr}}
@media(max-width:820px){.top .in{grid-template-columns:1fr}}
@media(max-width:1000px){.grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.grid{grid-template-columns:1fr}}
@media(max-width:900px){.toc{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
@media(max-width:560px){.row{grid-template-columns:72px 40px minmax(0,1fr);gap:12px}.row .pg{width:40px;height:40px}}
