/* The Adam Times -- broadsheet v2 stylesheet (2026-09-23). Replaces times.css for
   the v2 templates. Research brief: 6 columns ~170px, dominant photo across 4,
   lead story top-right, 5-7 stories above the fold, 4 headline sizes, flat
   neutral stage under the sheet, single soft shadow. Adam TG 8286: grey newsprint
   (his texture tile), sunlit table, shadow, gentle 3D curve. Type: variant A
   (Newsreader / Libre Franklin / Oswald) is the default; body.v-B swaps in the
   condensed-sans Picayune heads. Fonts are self-hosted subsets (assets/fonts). */
@font-face { font-family:'UnifrakturCook'; font-weight:700; font-display:swap; src:url('../fonts/IurA6Yli8YOdcoky-0PTTdkm56n05Xwy1oM.woff2') format('woff2'); }
@font-face { font-family:'Roboto Serif'; font-weight:100 900; font-stretch:50% 150%; font-display:swap; src:url('../fonts/R70IjywflP6FLr3gZx7K8UyuXDs9zVwDmXCb8lxYqGeKdA.woff2') format('woff2'); }
@font-face { font-family:'Roboto Condensed'; font-weight:100 900; font-display:swap; src:url('../fonts/robotocondensed-latin.woff2') format('woff2'); }
/* NEWSREADER / SOURCE SERIF 4 / LIBRE FRANKLIN / OSWALD faces are appended below by the build (faces.css) */

:root {
  --paper:#eeede9; --ink:#161616; --ink2:#2b2b2b; --muted:#5f5f5f; --rule:#1a1a1a; --hair:#9c9a95; --accent:#8b1e1e;
  --col:156px; --gut:20px; --body:12.5px; --lead:15px; --sheet:1120px;
  --nameplate:'UnifrakturCook',serif;
  --hed:'Newsreader',Georgia,serif; --deck:'Newsreader',Georgia,serif; --text:'Newsreader',Georgia,serif;
  --util:'Libre Franklin','Franklin Gothic Medium',Arial,sans-serif; --cond:'Oswald','Arial Narrow',sans-serif;
}
body.v-B { --hed:'Roboto Condensed','Arial Narrow',sans-serif; --deck:'Roboto Serif',Georgia,serif; --text:'Roboto Serif',Georgia,serif; --util:'Roboto Condensed',Arial,sans-serif; }
* { box-sizing:border-box; }
html { background:#8f7c62; }
body { margin:0; color:var(--ink); font:var(--body)/var(--lead) var(--text); font-kerning:normal; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
.skip-link { position:absolute; left:-9999px; top:0; z-index:9; padding:8px 13px; background:var(--ink); color:#fff; font:700 12px/18px var(--util); }
.skip-link:focus { left:8px; top:8px; }
.visually-hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---- stage: the table, the light, the paper */
.table { position:fixed; inset:0; z-index:-1; background:#b9a78d url('../img/table-light.jpg') center center / cover no-repeat; }
.table::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 15% 5%, rgba(255,250,235,.32), rgba(0,0,0,0) 50%), linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.22)); }
.book { display:grid; perspective:2600px; perspective-origin:50% 0; }
.book > .sheet { grid-area:1 / 1; }
.sheet {
  position:relative; isolation:isolate; width:100%; max-width:var(--sheet); margin:36px auto 70px; padding:26px 40px 34px;
  background:var(--paper); color:var(--ink);
  box-shadow:0 1px 1px rgba(0,0,0,.35), 0 6px 10px rgba(30,20,5,.22), 0 30px 50px rgba(30,20,5,.40), 0 70px 110px rgba(30,20,5,.28);
  transform:rotateX(1.2deg); transform-origin:50% 0;
}
.sheet::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:var(--paper) url('../img/newsprint-grey-tile.png') 0 0 / 512px 512px repeat; background-blend-mode:multiply; }  /* opaque: the bowed shadow slabs must only show OUTSIDE the sheet */
.sheet::after  { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; mix-blend-mode:multiply;
  background:
    linear-gradient(90deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.03) 6%, rgba(255,255,255,.08) 22%, rgba(255,255,255,0) 45%, rgba(0,0,0,.02) 70%, rgba(0,0,0,.10) 100%),
    repeating-linear-gradient(180deg, rgba(0,0,0,0) 0px, rgba(0,0,0,.035) 140px, rgba(0,0,0,0) 280px, rgba(255,255,255,.05) 400px, rgba(0,0,0,0) 520px); }
/* bowed shadow: two blurred slabs under the lower corners, tilted, so the sheet reads as lifted and wavy (Adam TG 8299) */
.sheet-shadow { position:absolute; z-index:-2; pointer-events:none; }
.sheet-shadow.l { left:14px; right:52%; bottom:18px; height:34%; transform:rotate(-2.4deg) skewX(-6deg); box-shadow:0 26px 30px rgba(30,20,5,.55); border-radius:0 0 40% 0 / 0 0 60% 0; }
.sheet-shadow.r { right:14px; left:52%; bottom:18px; height:34%; transform:rotate(2.4deg) skewX(6deg); box-shadow:0 26px 30px rgba(30,20,5,.55); border-radius:0 0 0 40% / 0 0 0 60%; }
.sheet-shadow.m { left:20%; right:20%; bottom:26px; height:20%; transform:rotate(0deg); box-shadow:0 34px 44px rgba(30,20,5,.30); border-radius:50% / 100% 100% 0 0; }

/* ---- masthead */
.skybox { display:flex; gap:18px; border-top:2px solid var(--rule); border-bottom:1px solid var(--rule); padding:8px 150px; }  /* 150px keeps the teasers out of the corner squares */
.tease { display:flex; gap:9px; flex:1; align-items:center; min-width:0; }
.tease img { width:64px; height:44px; object-fit:cover; flex:none; }
.tease span { font:600 11px/13px var(--util); }
.tease b { display:block; font:700 9px/12px var(--util); letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.plate { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:14px 0 8px; }
.ear { font:500 10px/14px var(--util); letter-spacing:.06em; text-transform:uppercase; color:var(--ink2); display:flex; flex-direction:column; justify-content:center; gap:2px; border:1px solid var(--hair); padding:6px 9px; width:176px; min-height:78px; }
.ear b { font-weight:800; letter-spacing:.1em; }
.ear-right { justify-self:end; text-align:right; }
.ear .price { font-weight:800; }
.name { text-align:center; padding:0 24px; }
.name .since { display:block; font:600 10px/12px var(--util); letter-spacing:.24em; text-transform:uppercase; }
.name .nameplate { margin:2px 0 0; font:700 96px/96px var(--nameplate); letter-spacing:-.01em; white-space:nowrap; }
.name .sub { display:block; margin-top:6px; font:600 9.5px/12px var(--util); letter-spacing:.2em; text-transform:uppercase; }
.dateline { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-top:1px solid var(--rule); border-bottom:3px double var(--rule); padding:5px 0; font:700 10.5px/14px var(--util); letter-spacing:.12em; text-transform:uppercase; }
.dateline .sections { display:flex; gap:14px; justify-self:center; }  /* true centre: the date and edition columns are equal, so the nav sits on the page axis (Adam TG 8337) */
.dateline > span:last-child { text-align:right; }
.dateline .sections a[aria-current='page'] { color:var(--accent); }

/* ---- grid */
.v2 .above { display:grid; grid-template-columns:calc(4 * var(--col) + 3 * var(--gut)) calc(2 * var(--col) + var(--gut)); column-gap:var(--gut); padding-top:14px; align-items:start; }
.centerpiece { position:relative; min-width:0; }
.centerpiece::after { content:''; position:absolute; top:0; bottom:0; right:calc(var(--gut) / -2); border-left:1px solid var(--hair); }
.rail { min-width:0; }
.hed { font-family:var(--hed); font-weight:700; margin:0 0 6px; text-wrap:balance; }
.hed-center { font-size:40px; line-height:42px; letter-spacing:-.012em; font-variation-settings:'opsz' 72; margin-bottom:10px; }
.hed-lead { font-size:31px; line-height:33px; letter-spacing:-.01em; font-variation-settings:'opsz' 60; }
h3.hed { font-size:19px; line-height:21px; font-variation-settings:'opsz' 36; }
.section-title { font:700 22px/26px var(--hed); margin:14px 0 0; padding-bottom:4px; border-bottom:1px solid var(--rule); letter-spacing:0; }
body.v-B .hed-center { font-size:44px; line-height:44px; }
body.v-B .hed-lead { font-size:34px; line-height:35px; }
body.v-B h3.hed { font-size:20px; line-height:21px; }
.art { margin:0 0 8px; }
.art img { width:100%; height:auto; display:block; background:#cfcdc8; }
.art-lead img { aspect-ratio:3/2; object-fit:cover; }
.art-rail img { aspect-ratio:16/10; object-fit:cover; }
.art figcaption { font:400 10.5px/13px var(--util); color:var(--ink2); margin-top:5px; }
.art .credit { font-size:8.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-left:6px; }
.under-art.flow { display:block; column-count:2; column-gap:var(--gut); column-rule:1px solid var(--hair); column-fill:balance; margin-top:6px; }
.under-art.flow > * { display:inline-block; width:100%; break-inside:avoid; }
.under-art.flow .story { border-top:1px solid var(--hair); margin-top:10px; padding-top:10px; }
.under-art.flow .lead-text .copy { text-align:justify; }
.deck { font:italic 400 15px/19px var(--deck); color:var(--ink2); margin:0 0 6px; font-variation-settings:'opsz' 18; }
body.v-B .deck { font-style:normal; font-weight:600; font-size:14px; line-height:18px; }
.rail .deck { font-size:14px; line-height:18px; }
.kicker { font:700 9.5px/12px var(--util); letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin:0 0 4px; }
.byline { font:600 9.5px/12px var(--util); letter-spacing:.08em; text-transform:uppercase; margin:0 0 6px; }
.byline .age { font-weight:400; letter-spacing:.02em; text-transform:none; color:var(--muted); }
.copy p { margin:0; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
.copy p + p { text-indent:1em; }
.copy .jump { text-indent:0; font:600 9.5px/14px var(--util); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:4px; text-align:left; }
.cols2 { column-count:2; column-gap:var(--gut); column-rule:1px solid var(--hair); }
.rail .story + .story { border-top:1px solid var(--hair); margin-top:12px; padding-top:12px; }
.rail .second .art { margin-bottom:6px; }
.index { border-top:3px double var(--rule); margin-top:14px; padding-top:6px; }
.index h4 { margin:0 0 4px; font:800 10px/14px var(--util); letter-spacing:.18em; text-transform:uppercase; }
.index ul { list-style:none; margin:0; padding:0; columns:2; column-gap:var(--gut); }
.index li { display:flex; justify-content:space-between; font:500 10.5px/16px var(--util); letter-spacing:.04em; text-transform:uppercase; border-bottom:1px dotted var(--hair); }
.fold { border:0; border-top:1px solid var(--rule); margin:16px 0 12px; }
.below-fold { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); column-gap:var(--gut); align-items:start; }
.below-fold.cols4 { grid-template-columns:repeat(4, minmax(0, 1fr)); }
.below-fold.cols4 h3.hed { font-size:17px; line-height:19px; }
.below-fold.cols4 .deck { font-size:13px; line-height:16px; }
.below-fold.cols4 .track .story .art-rail { float:none; width:100%; margin:0 0 6px; }
.below-fold.cols4 .track .story .art-rail img { aspect-ratio:16/10; }
.track { position:relative; min-width:0; }
.track + .track::before { content:''; position:absolute; top:0; bottom:0; left:calc(var(--gut) / -2); border-left:1px solid var(--hair); }
.track .story + .story, .track .lead-text + .story { border-top:1px solid var(--hair); margin-top:10px; padding-top:10px; }
.under-art.tracks2 { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:var(--gut); align-items:start; margin-top:6px; }
.briefs { border-top:3px double var(--rule); margin-top:16px; padding-top:6px; }
.briefs h4 { margin:0 0 6px; font:800 10px/14px var(--util); letter-spacing:.18em; text-transform:uppercase; }
.briefs ul { list-style:none; margin:0; padding:0; columns:3; column-gap:var(--gut); column-rule:1px solid var(--hair); }
.briefs li { break-inside:avoid; font:400 11.5px/14px var(--text); margin:0 0 6px; }
.briefs li b { font-family:var(--hed); font-weight:700; font-size:12.5px; }
.briefs .src { font:500 9px/12px var(--util); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.folio { display:flex; justify-content:space-between; padding-left:150px; padding-right:150px; border-top:1px solid var(--rule); margin-top:18px; padding-top:6px; font:600 9.5px/12px var(--util); letter-spacing:.14em; text-transform:uppercase; color:var(--ink2); }
.folio .folio-left, .folio .folio-right { display:flex; flex-direction:column; gap:2px; }
.folio .demo { color:var(--muted); font-weight:400; }
.folio .backlog { color:var(--accent); margin-left:10px; }
.folio .editions { color:var(--ink); margin-left:10px; }
.folio a[data-turn] { color:var(--ink); }
.page-book .folio .folio-right, .page-book .folio .turn-prev { display:none; }
/* section pages */
.v2.section .rail .story .art { margin-bottom:6px; }
.v2.section .centerpiece .lead-text { margin-top:6px; }
/* about page keeps the legacy classes readable */
.about-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:var(--gut); padding-top:14px; }
.about-grid h2 { font:700 18px/22px var(--hed); margin:12px 0 4px; }

/* ---- the book (peel.js) */
.page-book .book-stage { width:auto; display:flex; justify-content:center; margin:36px auto 70px; perspective:4200px; perspective-origin:50% 30%; }
.page-book .flipbook { position:relative; width:1120px; transform:rotateX(1.2deg); transform-origin:50% 0; }
.page-book .flipbook::before { content:''; position:absolute; inset:0; z-index:0; pointer-events:none; background:var(--paper);
  box-shadow:0 1px 1px rgba(0,0,0,.35), 0 6px 10px rgba(30,20,5,.22), 0 30px 50px rgba(30,20,5,.40), 0 70px 110px rgba(30,20,5,.28); }
.page-book .flipbook .leaf { position:absolute; left:0; top:0; background:var(--paper); overflow:hidden; }
.page-book .flipbook .leaf .sheet { box-shadow:none; margin:0; min-height:100%; transform:none; max-width:none; }
.page-book .flipbook.is-peeling { cursor:grab; }
.page-book .flipbook.is-peeling:active { cursor:grabbing; }
.page-book .flipbook .leaf.is-current { z-index:2; }
.peel-back { position:absolute; left:0; top:0; z-index:3; pointer-events:none; overflow:hidden; background:var(--paper); transform-origin:0 0; will-change:transform, clip-path; }
.peel-back::after { content:''; position:absolute; inset:0; pointer-events:none; background:url('../img/newsprint-grey-tile.png') 0 0 / 512px 512px repeat; mix-blend-mode:multiply; opacity:.9; }
.peel-back .peel-ghost { position:absolute; left:0; top:0; width:100%; height:100%; opacity:.09; pointer-events:none; }
.peel-back .peel-ghost .sheet { box-shadow:none; margin:0; min-height:100%; transform:none; }
.peel-shade { position:absolute; pointer-events:none; transform-origin:50% 50%; z-index:4; }
.leaf .peel-shade-front { z-index:5; }
.leaf.is-current { will-change:clip-path; }

/* ---- print */
@page { size:10.667in 16in; margin:0; }
@media print { .table { display:none; } .sheet { box-shadow:none; transform:none; margin:0; } .sheet::before, .sheet::after { display:none; } }

/* ---- narrow screens: the sheet is the viewport, columns collapse, no tilt */
@media (max-width:1179px) {
  :root { --sheet:100%; }
  .sheet { margin:8px; width:auto; padding:14px 14px 20px; transform:none; }
  .page-book .book-stage { margin:8px; } .page-book .flipbook, .page-book .flipbook .leaf { width:100%; transform:none; }
  .v2 .above { grid-template-columns:1fr; }
  .centerpiece::after, .beside::before { display:none; }
  .under-art { grid-template-columns:1fr; }
  .beside { border-top:1px solid var(--hair); margin-top:12px; padding-top:12px; }
  .rail { border-top:1px solid var(--hair); margin-top:12px; padding-top:12px; }
  .below-fold, .below-fold.cols4 { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .briefs ul { columns:2; }
  .name .nameplate { font-size:min(96px, 9.5vw); line-height:1.05; white-space:normal; }
  .plate { grid-template-columns:1fr; row-gap:8px; }
  .ear { width:auto; flex-direction:row; flex-wrap:wrap; gap:10px; justify-content:center; }
  .ear-right { justify-self:stretch; text-align:center; }
  .skybox { flex-wrap:wrap; padding:8px 0; }
  .folio { padding-left:0; padding-right:0; }
  .dateline { grid-template-columns:1fr; gap:6px 14px; justify-items:center; } .dateline > span:last-child { text-align:center; }
}
@media (max-width:699px) {
  :root { --body:15px; --lead:20px; }
  .below-fold, .below-fold.cols4 { grid-template-columns:1fr; } .briefs ul { columns:1; } .cols2 { column-count:1; }
  .hed-center { font-size:30px; line-height:32px; } .hed-lead { font-size:26px; line-height:28px; }
  .skybox { display:none; }
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 300 500;
  font-display: swap;
  src: url('../fonts/cY9CfjOCX1hbuyalUrK439vCgYhCFpY.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;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 300 500;
  font-display: swap;
  src: url('../fonts/cY9CfjOCX1hbuyalUrK439vCgIhCFpY.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 300 500;
  font-display: swap;
  src: url('../fonts/cY9CfjOCX1hbuyalUrK439vCjohC.woff2') format('woff2');
  unicode-range: U+0000-00FF, 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;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/cY9AfjOCX1hbuyalUrK439HyjJBG.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;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/cY9AfjOCX1hbuyalUrK439DyjJBG.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/cY9AfjOCX1hbuyalUrK4397yjA.woff2') format('woff2');
  unicode-range: U+0000-00FF, 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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/vEFH2_tTDB4M7-auWDN0ahZJW1ge6NmXq2ZbF8zBfb98SUr3aX2AzA.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/vEFH2_tTDB4M7-auWDN0ahZJW1ge6NmXq2ZbF8zBfb98SUr-aX2AzA.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/vEFH2_tTDB4M7-auWDN0ahZJW1ge6NmXq2ZbF8zBfb98SUr5aX2AzA.woff2') format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/vEFH2_tTDB4M7-auWDN0ahZJW1ge6NmXq2ZbF8zBfb98SUr1aX2AzA.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/vEFH2_tTDB4M7-auWDN0ahZJW1ge6NmXq2ZbF8zBfb98SUr0aX2AzA.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;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/vEFH2_tTDB4M7-auWDN0ahZJW1ge6NmXq2ZbF8zBfb98SUr6aX0.woff2') format('woff2');
  unicode-range: U+0000-00FF, 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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gW8tenXg.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gf8tenXg.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gY8tenXg.woff2') format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gU8tenXg.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gV8tenXg.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;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/vEFI2_tTDB4M7-auWDN0ahZJW1gb8tc.woff2') format('woff2');
  unicode-range: U+0000-00FF, 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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Libre Franklin';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/librefranklin-var-1.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Libre Franklin';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/librefranklin-var-2.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Libre Franklin';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/librefranklin-var-3.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;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Franklin';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/librefranklin-var-4.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;
}
/* latin */
@font-face {
  font-family: 'Libre Franklin';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/librefranklin-var-5.woff2') format('woff2');
  unicode-range: U+0000-00FF, 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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('../fonts/TK3IWkUHHAIjg75cFRf3bXL8LICs1_Fv40pKlN4NNSeSASz7FmlbHYjedg.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('../fonts/TK3IWkUHHAIjg75cFRf3bXL8LICs1_Fv40pKlN4NNSeSASz7FmlSHYjedg.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('../fonts/TK3IWkUHHAIjg75cFRf3bXL8LICs1_Fv40pKlN4NNSeSASz7FmlZHYjedg.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;
}
/* latin-ext */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('../fonts/TK3IWkUHHAIjg75cFRf3bXL8LICs1_Fv40pKlN4NNSeSASz7FmlYHYjedg.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;
}
/* latin */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('../fonts/TK3IWkUHHAIjg75cFRf3bXL8LICs1_Fv40pKlN4NNSeSASz7FmlWHYg.woff2') format('woff2');
  unicode-range: U+0000-00FF, 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;
}

/* fill lists (whitespace loop): related heads under the lead, more rail items, elsewhere-in-the-Times on section pages */
.more { border-top:1px solid var(--hair); margin-top:10px; padding-top:8px; }
.more h4 { margin:0 0 4px; font:800 9.5px/12px var(--util); letter-spacing:.16em; text-transform:uppercase; }
.more ul { list-style:none; margin:0; padding:0; }
.more li { font:700 12.5px/15px var(--hed); margin:0 0 5px; break-inside:avoid; }
.more li .src { font:500 9px/12px var(--util); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-left:4px; }
.more.cols { column-count:3; column-gap:var(--gut); column-rule:1px solid var(--hair); }
.more.cols li { display:inline-block; width:100%; }
.elsewhere { border-top:3px double var(--rule); margin-top:16px; padding-top:6px; }

/* more pictures: rail and below-fold stories carry their smart-cropped rail photo */
.track .art-rail, .rail .art-rail { margin:0 0 6px; }
.track .art-rail img { aspect-ratio:16/10; }

/* inset photos on track stories: a 46% float, 4:3, so a picture story is not
   three times the height of a text story (the balancer could not even things
   out with full-width photos); the rail proper keeps full-width art */
.track .story .art-rail { float:left; width:46%; margin:4px 12px 4px 0; }
.track .story .art-rail img { aspect-ratio:4/3; }
.track .story .art-rail figcaption { font-size:8.5px; line-height:11px; }
.track .story::after { content:''; display:block; clear:both; }
.track .lead-text + .story .art-rail, .track .story + .story .art-rail { margin-top:2px; }

/* ---- dog-ear (Adam TG 8308 + 8312): ONE small CSS curl at the top-right = next
   page, only when it exists; 30px, still at rest, unfurls a little on hover. */
.sheet { background:transparent; }
.sheet.has-next::before { clip-path:polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 0 100%); }
.dogear { position:absolute; top:0; width:30px; height:30px; z-index:6; display:block; text-decoration:none; }
.dogear::before { content:''; position:absolute; inset:0; transform-origin:top right; transition:transform .22s ease, filter .22s ease; }
.dogear-right { right:0; }
.dogear-right::before { background:linear-gradient(to bottom left, transparent 49.5%, #f3f2ef 50%, #e2e0da 72%, #c9c5bd 100%); filter:drop-shadow(-2px 3px 3px rgba(20,15,5,.30)); }
.dogear-right:hover::before, .dogear-right:focus-visible::before { transform:scale(2.2); filter:drop-shadow(-5px 7px 6px rgba(20,15,5,.36)); }
.dogear-left { display:none; }
.sheet.has-prev::before { clip-path:none; }
.sheet.has-prev.has-next::before { clip-path:polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 0 100%); }
.dogear .dogear-label { display:none; }
@media print { .dogear { display:none; } .sheet::before { clip-path:none; } }

/* ---- shelf desks (2026-09-23, Adam TG 8329): For You in the Telegram shelf's shape; X / arXiv / GitHub as a ruled index */
.shelf { border-top:3px double var(--rule); border-bottom:1px solid var(--rule); margin:10px 0 4px; padding:6px 0 8px; }
.shelf .shelf-head { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:4px 14px; border-bottom:1px solid var(--hair); padding-bottom:4px; margin-bottom:8px; }
.shelf h4 { margin:0; font:800 11px/15px var(--util); letter-spacing:.16em; text-transform:uppercase; }
.shelf .sub { font:500 9.5px/14px var(--util); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.shelf .lanes { columns:2; column-gap:var(--gut); column-rule:1px solid var(--hair); }
.shelf .lane { break-inside:avoid; margin:0 0 9px; }
.shelf .lane h5 { margin:0 0 2px; font:800 10px/14px var(--util); letter-spacing:.14em; text-transform:uppercase; }
.shelf .lane h5 .em { display:inline-block; width:1.5em; font-size:12px; letter-spacing:0; }
.shelf ul, .shelf ol { list-style:none; margin:0; padding:0; }
.shelf li { display:flex; justify-content:space-between; gap:10px; font:700 12.5px/16px var(--hed); border-bottom:1px dotted var(--hair); padding:2px 0 2px 1.5em; }
.shelf li a { text-decoration:none; }
.shelf li .when { flex:none; font:500 9px/16px var(--util); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
.shelf li.none { font:italic 400 11.5px/16px var(--text); color:var(--muted); }
.shelf.list ol { columns:2; column-gap:var(--gut); column-rule:1px solid var(--hair); }
.shelf.list li { padding-left:0; break-inside:avoid; }
.shelf.list li .n { flex:none; width:1.6em; font:800 10px/16px var(--util); color:var(--muted); }
.shelf.list li .t { flex:1 1 auto; min-width:0; }
.shelf.list li .when { white-space:normal; text-align:right; max-width:42%; line-height:12px; align-self:center; }
.byline .handle, .byline .meta { color:var(--muted); font-weight:500; }
@media (max-width:699px) { .shelf .lanes, .shelf.list ol { columns:1; } .shelf.list li .when { max-width:50%; } }
/* phone: 8 desks no longer fit one row, so the nav wraps instead of widening the page; the tilted right shadow slab spilled past the edge too, so clip sideways overflow (Adam TG 8350 "off center mobile") */
@media (max-width:699px) { html, body { overflow-x:clip; } .dateline .sections { flex-wrap:wrap; justify-content:center; gap:4px 14px; min-width:0; } .dateline .sections a { white-space:nowrap; } }
/* ---- phone + iPad pass (Adam TG 8355, 2026-09-23): measured in WebKit at 390-1366px, every page was 13-74px wider than
   the screen because the tilted shadow slabs poked out sideways; overflow-x:clip above didn't hold in Safari */
html, body { overflow-x:hidden; }
.sheet-shadow.l, .sheet-shadow.r { max-height:520px; }
@media (max-width:1179px) {
  .sheet-shadow.l, .sheet-shadow.r { display:none; }  /* narrow screens are flat (no tilt), so no bowed corners either */
  .ear { min-height:0; }
  .art-lead img { max-height:60vh; }
}
@media (max-width:699px) {
  .under-art.flow { column-count:1; } .under-art.tracks2 { grid-template-columns:1fr; }
  .track + .track::before { display:none; }
  .track + .track { border-top:1px solid var(--hair); margin-top:12px; padding-top:12px; }
  .folio { flex-direction:column; align-items:center; text-align:center; gap:8px; }
  .folio .folio-left, .folio .folio-right { align-items:center; }
}
