/* Licensed local webfonts: see fonts/README.md and OFL notices. */
@font-face{font-family:'Intermission Sans';src:url("fonts/intermission-sans-v1.woff2") format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Intermission Title';src:url("fonts/intermission-title-v1.woff2") format('woff2');font-weight:200 400;font-style:normal;font-display:block}
@font-face{font-family:'Intermission News';src:url("fonts/intermission-news-v1.woff2") format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
/* Apostrophes inside Chinese headlines (Paris’s) stay proportional instead of full width. */
@font-face{font-family:'Intermission Apostrophe';src:url("fonts/intermission-news-v1.woff2") format('woff2');font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+2019}

/* Newspaper theme v4 · 幕间休息
   Tokens first; change colours, faces and measures here. Chinese copy is set in
   Noto Sans SC; Latin-language originals (lang≠zh) switch to Newsreader. */
:root{
  --wordmark-height:84px;
  --canvas:#f5f4f0; --paper:#f5f4f0; --white:#fbfbf9;
  --ink:#141312; --muted:#5e5c57; --line:#d3d1cb; --accent:#9e2a1f; --green:#3f453b;
  --serif:'Intermission Apostrophe','Intermission Sans','Noto Sans CJK SC','PingFang SC','Microsoft YaHei',sans-serif;
  --latin:'Intermission News',Georgia,'Times New Roman',serif;
  --display:'Intermission Sans','Noto Sans CJK SC',sans-serif;
  --sans:'Intermission Apostrophe','Intermission Sans','Noto Sans CJK SC','PingFang SC','Microsoft YaHei',sans-serif;
  --paper-width:1320px; --paper-gutter:32px; --headline-size:46px; --article-size:17px;
  --rule:1px solid var(--line); --rule-ink:1px solid var(--ink);
}
html{background:var(--canvas)}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-kerning:normal;font-synthesis:none;-webkit-font-smoothing:antialiased}
[lang]:not([lang^=zh]):not([lang=ja]):not([lang=ko]){font-family:var(--latin);hyphens:auto}
::selection{background:#dcdad3}
/* Glossy coated stock: a faint fixed reflection band and a soft fall-off, behind the text. */
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(118deg,#fff0 20%,#ffffffa6 36%,#ffffff33 44%,#fff0 58%),linear-gradient(180deg,#fff0 55%,#0000000a 100%)}

.paper-shell{max-width:var(--paper-width);margin:0 auto;padding:0 var(--paper-gutter)}
.text-link{font-family:var(--sans);font-size:13px;color:var(--ink);border-bottom:1px solid transparent}
.text-link:hover{border-bottom-color:currentColor}
.button{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:13px;padding:7px 16px;background:var(--ink);color:var(--paper);border:1px solid var(--ink)}
.button.secondary{background:transparent;color:var(--ink)}
.button.secondary:hover{background:var(--ink);color:var(--paper)}
.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
input,select,textarea{border:1px solid var(--line);background:var(--white);padding:6px 8px;border-radius:0;font-family:var(--sans);font-size:13px}
input[type=checkbox]{accent-color:var(--ink)}
.skip-link{background:var(--ink);color:var(--paper)}

/* Masthead: thin traditional Ming wordmark (Noto Serif TC subset; the 日 inside 間 is lit
   red) between a section lockup and a dated edition block, closed by the edge of a 35mm
   film strip — perforations and edge print. */
.masthead{padding-top:22px}
.nameplate{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;padding-bottom:16px}
.brand{display:block;line-height:0;justify-self:center}
.wordmark{display:block;height:var(--wordmark-height,92px);width:auto;aspect-ratio:4379/921;fill:var(--ink);overflow:visible}
.wordmark-light{fill:var(--wordmark-light,var(--accent))}
/* The red 日 is set through an inherited custom property so each <use> copy can light it
   on its own (selectors do not reach into <use> shadow trees). */
.brand:hover .wordmark{--wordmark-light:var(--ink)}
.brand-sections{display:flex;gap:1.1em;align-self:end;font-family:'Intermission Title',var(--serif);font-size:15px;font-weight:400;line-height:1;letter-spacing:.32em;padding-bottom:4px}
.edition-block{display:grid;grid-template-columns:auto auto;grid-template-rows:repeat(2,auto);column-gap:12px;justify-self:end;align-content:end;font-family:var(--sans);font-size:12px;line-height:1.35;text-align:left}
#edition-date{display:contents}
.edition-day{grid-row:1/3;grid-column:1;align-self:end;font-family:var(--latin);font-size:calc(var(--wordmark-height,92px) * .78);font-weight:300;line-height:.78;letter-spacing:-.03em;font-variant-numeric:lining-nums}
#edition-date span{grid-column:2;font-weight:600}
.film-edge{position:relative;height:24px;overflow:hidden;background:#171513 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='24'%3E%3Crect x='4' y='13' width='11' height='7' rx='1.6' fill='%23f5f4f0'/%3E%3C/svg%3E") repeat-x left top}
.film-edge span{position:absolute;left:10px;top:1px;white-space:nowrap;font-family:'Intermission Title',var(--sans);font-size:9.5px;line-height:12px;letter-spacing:.14em;color:#d99a3d}
.nav-button{font-family:var(--sans);font-size:15px;font-weight:600;padding:9px 0 7px;margin-right:30px;letter-spacing:.08em;border-bottom:3px solid transparent}
.nav-button:hover{border-bottom-color:var(--line)}
.nav-button.active{border-bottom-color:var(--accent)}
.footer-brand{display:block;line-height:0}
.footer-brand .wordmark{height:24px}
.paper-toolbar{position:relative;display:flex;align-items:center;gap:24px;border-bottom:var(--rule-ink);min-height:40px}
#navigation{display:flex;gap:0}
.nav-count{font-size:11px;font-weight:400;margin-left:4px;color:var(--muted)}
.topbar{display:flex;align-items:center;gap:16px;margin-left:auto}
.search-field input{width:220px;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:4px 0;font-size:13px}
.search-field input::placeholder{color:var(--muted)}
.search-field input:focus{outline:0;border-bottom-width:2px}

main{padding:0 0 40px;min-height:60vh}
main:focus{outline:0}

/* Section strip and headings */
.page-heading{padding:22px 0 0}
.page-heading h1{font-size:30px;font-weight:900;letter-spacing:.04em;line-height:1.2;padding-bottom:8px;border-bottom:3px solid var(--ink)}
body[data-page=today] .page-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.notice{display:flex;justify-content:space-between;gap:12px;font-family:var(--sans);font-size:12px;padding:8px 0;border-bottom:var(--rule)}
.notice b{color:var(--accent)}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;font-family:var(--sans);font-size:13px;padding:8px 0;border-bottom:var(--rule);margin-bottom:20px}
.tabs{display:flex;flex-wrap:wrap;gap:0}
.tab{padding:2px 12px;color:var(--muted);border-left:var(--rule)}
.tab:first-child{padding-left:0;border-left:0}
.tab.active{color:var(--ink);font-weight:700}
.tab:hover{color:var(--ink)}
.scope-links{display:flex;gap:14px;margin-left:auto}
.scope-links .text-link{color:var(--muted)}
.scope-links [aria-pressed=true]{color:var(--ink);font-weight:700}
.advanced-filters>summary{cursor:pointer;color:var(--muted);list-style:none}
.advanced-filters>summary::-webkit-details-marker{display:none}
.advanced-filters>summary::after{content:' ▾'}
.advanced-filters[open]{flex:1 0 100%;padding-top:8px;border-top:var(--rule)}
.advanced-filters[open]>summary::after{content:' ▴'}
.filter-selects{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding-top:8px}
.filter-selects select{font-size:12px;padding:4px 6px;background:transparent}
.filter-selects [aria-pressed=true]{font-weight:700}
.toggle-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}
.filter-summary{font-family:var(--sans);font-size:12px;color:var(--muted);margin:-12px 0 4px}

/* Common story parts */
.meta{display:flex;flex-wrap:wrap;gap:0 10px;font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--muted);margin-bottom:5px}
.channel-tag{color:var(--accent);font-weight:700;letter-spacing:.08em}
.copy-status{color:var(--muted)}
.card-title{display:inline;color:inherit}
.card-title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.card-summary-link{display:block;color:inherit}
.card-footer{display:flex;align-items:baseline;gap:8px;font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:8px}
.byline{min-width:0;overflow-wrap:anywhere;color:var(--ink)}
.dateline::before{content:'·';margin-right:8px}
.save-button{margin-left:auto;font-size:15px;line-height:1;color:var(--muted);padding:2px 0 2px 8px}
.save-button:hover,.save-button.saved{color:var(--ink)}
.save-inline{font-family:var(--sans);font-size:12px;white-space:nowrap;color:var(--muted)}
.save-inline.saved{color:var(--ink)}
.priority-tag{font-family:var(--sans);font-size:11px;color:var(--accent)}

figure.card-art,figure.feature-art{margin:0 0 10px}
.card-image-link{display:block}
.source-art{display:block;overflow:hidden;background:#e7e6e1}
.card-art .source-art{aspect-ratio:3/2}
.image-caption{display:block;font-family:var(--sans);font-size:10.5px;line-height:1.5;color:var(--muted);padding-top:4px;overflow-wrap:anywhere}

.content-card{padding:14px 0 16px;border-bottom:var(--rule);min-width:0}
.content-card:last-child{border-bottom:0}
.content-card h3{font-size:20px;font-weight:800;line-height:1.36;letter-spacing:.01em;margin-bottom:6px;overflow-wrap:anywhere;text-wrap:pretty}
.content-card h3:not([lang^=zh]){font-weight:700;letter-spacing:0;line-height:1.22;font-size:21px}
.card-summary{font-size:14.5px;line-height:1.75;color:#2a2824;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;overflow-wrap:anywhere;text-align:justify}
.card-summary:not([lang^=zh]){text-align:left;font-size:15px;line-height:1.55}
.bookmark-status{margin-top:10px;width:100%;font-size:12px}

/* Front page */

.feature-body .meta{margin-bottom:8px}
.feature h2{font-size:var(--headline-size);font-weight:900;line-height:1.16;letter-spacing:-.005em;margin-bottom:16px;overflow-wrap:anywhere;text-wrap:pretty}
.feature h2:not([lang^=zh]){font-weight:700;letter-spacing:-.015em;line-height:1.08;text-wrap:balance}
.feature-art .source-art{aspect-ratio:16/9}
.feature-art{margin-bottom:14px}
.feature-summary{font-size:15.5px;line-height:1.8;text-align:justify;margin-bottom:.8em;orphans:3;widows:3}
.feature-columns:not([lang^=zh]) .feature-summary{font-size:16.5px;line-height:1.6;text-align:left}
.feature-summary:last-child{margin-bottom:0}
.feature-footer{display:flex;align-items:baseline;gap:8px;font-family:var(--sans);font-size:12px;color:var(--muted);border-top:var(--rule);padding-top:8px;margin-top:12px}
.feature-footer .text-link{margin-left:auto;font-weight:700}
.feature-footer .save-button{margin-left:6px}

.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.card-grid>.content-card{padding:16px 18px 18px;border-bottom:var(--rule);border-left:var(--rule)}
.card-grid>.content-card:nth-child(4n+1){border-left:0;padding-left:0}
.card-grid>.content-card:nth-child(4n){padding-right:0}
.card-grid>.content-card:last-child{border-bottom:var(--rule)}

/* Agenda */
.agenda{margin-top:22px}
.agenda .section-title{display:block}
.agenda .section-title h2{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.3em;padding:5px 0;border-top:3px solid var(--ink);border-bottom:var(--rule-ink)}
.agenda-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;width:100%;padding:10px 0;border-bottom:var(--rule);text-align:left}
.agenda-item h3{font-size:14px;font-weight:700;line-height:1.45;margin:2px 0}
.agenda-item p{font-family:var(--sans);font-size:11px;color:var(--muted)}
.agenda-item:hover h3{text-decoration:underline}
.date-block{text-align:center;font-family:var(--sans);line-height:1.1}
.date-block small{display:block;font-size:10px;color:var(--muted)}
.date-block strong{display:block;font-family:var(--latin);font-size:26px;font-weight:600}
.event-badge{font-family:var(--sans);font-size:11px;color:var(--muted)}
.event-badge.urgent{color:var(--accent);font-weight:700}
.agenda-more{font-family:var(--sans);font-size:12px;font-weight:700;padding:8px 0}
.compact-note{font-family:var(--sans);font-size:12px;color:var(--muted);line-height:1.8;margin:8px 0}

/* Pagination, empty */
.news-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:10px;border-top:3px solid var(--ink);font-family:var(--sans);font-size:13px}
.news-pagination select{padding:2px 4px;margin:0 2px}
.empty{padding:60px 0;text-align:center}
.empty h2{font-size:22px;font-weight:800;margin-bottom:8px}
.empty p{font-family:var(--sans);font-size:13px;color:var(--muted);margin-bottom:12px}
.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.section-title h2{font-size:18px;font-weight:800}
.count-label{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--muted);margin-left:10px}

/* Calendar */
.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:0}
.calendar-layout>div:first-child{padding-right:24px;border-right:var(--rule-ink)}
.calendar-layout>.agenda{margin-top:0;padding-left:22px}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:8px}
.calendar-toolbar h2{font-size:24px;font-weight:900}
.month-controls{display:flex;gap:14px;font-family:var(--sans);font-size:13px}
.week-row,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.week-row{border-top:3px solid var(--ink);border-bottom:var(--rule-ink)}
.week-row div{font-family:var(--sans);font-size:12px;font-weight:700;text-align:center;padding:4px 0}
.calendar-day{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:84px;padding:5px 6px;border-right:var(--rule);border-bottom:var(--rule);overflow:hidden;text-align:left}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day>span:first-child{font-family:var(--latin);font-size:16px;font-weight:600}
.calendar-day.blank{background:transparent}
.calendar-day.reference>span:first-child{color:var(--paper);background:var(--ink);padding:0 5px}
.calendar-day.selected{background:#e7e6e1}
.calendar-day:hover:not(.blank){background:#ecebe7}
.calendar-dot{display:block;max-width:100%;font-family:var(--sans);font-size:10.5px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:6px;border-left:2px solid var(--muted)}
.calendar-dot.film{border-color:var(--accent)}
.calendar-dot.art{border-color:var(--ink)}
.calendar-dot.photography{border-color:#8b8576}
.calendar-legend{display:flex;gap:16px;font-family:var(--sans);font-size:11px;color:var(--muted);padding:8px 0}
.calendar-legend i{display:inline-block;width:10px;height:2px;background:var(--accent);vertical-align:middle;margin-right:5px}
.calendar-legend i.art{background:var(--ink)}.calendar-legend i.photography{background:#8b8576}
.event-list{margin-top:22px}
.event-list>.section-title{border-top:3px solid var(--ink);border-bottom:var(--rule-ink);padding:5px 0}
.event-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:var(--rule)}
.event-row-main{flex:1;min-width:0}
.event-row h3{font-size:17px;font-weight:800;line-height:1.4;margin:2px 0}
.event-row p{font-family:var(--sans);font-size:12px;color:var(--muted)}

/* Settings and coverage */
.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 40px}
.settings-panel{padding:14px 0 20px;border-top:var(--rule-ink);margin-top:22px}
.settings-panel h2{font-size:20px;font-weight:900;margin-bottom:12px}
.settings-panel p,.settings-panel li{font-size:14px;line-height:1.8;margin-bottom:8px}
.settings-panel ul,.settings-panel ol{padding-left:1.3em;margin-bottom:10px}
.settings-panel textarea{width:100%;min-height:72px;resize:vertical}
.form-field{display:flex;flex-direction:column;gap:5px;margin-bottom:16px;font-family:var(--sans);font-size:13px;font-weight:600}
.form-field small{font-weight:400;font-size:11.5px;color:var(--muted)}
.interest-options{display:flex;flex-wrap:wrap;gap:6px}
.interest-chip{display:inline-flex;align-items:center;gap:5px;font-weight:400;font-size:12px;padding:3px 8px;border:var(--rule);cursor:pointer}
.interest-chip:has(input:checked){border-color:var(--ink)}
.source-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:var(--rule);font-family:var(--sans);font-size:13px}
.source-row span{font-size:11.5px;color:var(--muted)}
.source-row input,.source-row>span:last-child{margin-left:auto}
.storage-note{font-family:var(--sans);font-size:12px;color:var(--muted);padding-top:10px}
.explanation{font-size:13px;margin:10px 0}
.explanation>summary,.project-details>summary{cursor:pointer;font-family:var(--sans);font-size:13px;color:var(--muted)}
.explanation[open]>summary{margin-bottom:8px}
.coverage-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0;border-top:var(--rule-ink)}
.coverage-stats div{padding:10px 12px 12px 0;border-bottom:var(--rule)}
.coverage-stats strong{display:block;font-family:var(--latin);font-size:30px;font-weight:600;line-height:1.2}
.coverage-stats span{font-family:var(--sans);font-size:12px;color:var(--muted)}
.coverage-source{border-bottom:var(--rule);padding:8px 0;overflow-wrap:anywhere}
.coverage-source summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer;font-family:var(--sans);font-size:13px}
.coverage-source summary span:last-child{color:var(--muted);font-size:12px}
.coverage-source p{font-size:13px;margin:8px 0}
.coverage-probe{border-bottom:var(--rule);padding:12px 0;overflow-wrap:anywhere}
.coverage-probe h3{font-size:16px;font-weight:800;margin-bottom:4px}

/* Reader */
.reader-page{max-width:1040px;margin:0 auto;padding-top:18px}
.reader-toolbar{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px}
.reader-page .eyebrow{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--sans);font-size:12px;color:var(--muted);padding-top:12px;border-top:3px solid var(--ink)}
.reader-page h1{font-size:44px;font-weight:900;line-height:1.2;letter-spacing:0;margin:10px 0 16px;overflow-wrap:anywhere;text-wrap:pretty}
.reader-page h1:not([lang^=zh]){text-wrap:balance;font-weight:700;letter-spacing:-.015em;line-height:1.1;font-size:48px}
.reader-tabs{display:flex;gap:0;border-top:var(--rule-ink);border-bottom:var(--rule-ink);font-family:var(--sans);font-size:13px}
.reader-tabs button{padding:6px 14px;color:var(--muted)}
.reader-tabs button:first-child{padding-left:0}
.reader-tabs button+button{border-left:var(--rule)}
.reader-tabs button[aria-selected=true]{color:var(--ink);font-weight:800}
.reader-document{font-size:var(--article-size);line-height:1.85;padding:16px 0 0;overflow-wrap:anywhere}
.reader-document:not([lang^=zh]){font-size:18px;line-height:1.6}
.reading-note,.reader-document>.reading-note{font-family:var(--sans);font-size:12px;line-height:1.7;color:var(--muted);margin-bottom:8px}
.article-status,.original-pending{font-family:var(--sans);font-size:12.5px;line-height:1.7;padding:6px 0;border-top:var(--rule);border-bottom:var(--rule);margin:10px 0}
.original-pending{margin-top:16px;font-weight:600}
.article-columns{column-count:2;column-gap:36px;column-rule:var(--rule);margin:16px 0 24px;text-align:justify;orphans:3;widows:3}
.reader-document:not([lang^=zh]) .article-columns{text-align:left}
.reader-document p{margin:0 0 1em}
.reader-document h2,.article-heading{font-size:21px;font-weight:800;line-height:1.35;margin:1em 0 .5em;break-after:avoid}
.reader-document blockquote{margin:1em 0;padding:4px 0 4px 14px;border-left:3px solid var(--ink);font-weight:600}
.article-list_item{padding-left:1em;text-indent:-1em}
.article-list_item::before{content:'· '}
.article-image{break-inside:avoid;margin:6px 0 16px}
.article-image img{display:block;max-width:100%;max-height:420px;height:auto;margin:0 auto}
.article-image figcaption{font-family:var(--sans);font-size:11.5px;line-height:1.6;color:var(--muted);padding-top:5px;text-align:left}
.article-references{font-family:var(--sans);font-size:11.5px;line-height:1.6;margin:-6px 0 12px;text-align:left}
.article-references a{border-bottom:var(--rule)}
.translation-pending{border-left:2px solid var(--line);padding-left:10px}
.translation-notes{font-family:var(--sans);font-size:13px;padding:8px 0;border-top:var(--rule);border-bottom:var(--rule);margin-bottom:14px}
.translation-notes h2{font-size:14px;margin:0 0 6px}
.reader-cover{margin:0 0 18px}
.reader-cover .source-art{max-height:560px}
.reader-cover .source-photo{object-fit:contain;max-height:560px}
.original-unavailable{padding:16px 0;font-size:15px}
.original-unavailable h2{font-size:20px;font-weight:800;margin-bottom:8px}
.original-excerpt{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 0;border-top:var(--rule);border-bottom:var(--rule)}
.reader-source-link{display:flex;gap:12px;font-family:var(--sans);font-size:12px;color:var(--muted);padding:10px 0 0;margin-top:10px;border-top:3px solid var(--ink);overflow-wrap:anywhere}
.reader-source-link a{min-width:0;color:var(--ink)}

/* Dialog */
dialog{background:var(--paper);color:var(--ink);border:0;border-top:4px solid var(--ink);padding:22px 26px 26px;box-shadow:0 18px 50px #0003}
dialog::backdrop{background:#1514124d}
.dialog-close{font-size:24px;line-height:1;width:28px;height:28px;background:var(--paper)}
.detail-art{margin-bottom:14px}
.detail-art .source-art{aspect-ratio:2}
.detail-title{font-size:26px;font-weight:900;line-height:1.3;margin:6px 0 8px}
.detail-original{font-family:var(--sans);font-size:12px;color:var(--muted)}
.detail-summary{font-size:15px;line-height:1.8;margin:10px 0}
.detail-facts{display:grid;grid-template-columns:84px 1fr;gap:6px 12px;font-family:var(--sans);font-size:13px;padding:12px 0;margin:14px 0;border-top:var(--rule-ink);border-bottom:var(--rule-ink)}
.detail-facts dt{color:var(--muted)}
.detail-facts dd{overflow-wrap:anywhere}
.detail-activity{padding:10px 0;border-bottom:var(--rule)}
.detail-activity h3{font-size:16px;font-weight:800;margin:3px 0}
.detail-activity p{font-family:var(--sans);font-size:12px;color:var(--muted)}
.detail-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.reading-section h3{font-size:15px;font-weight:800;margin:14px 0 6px}
.evidence.unverified{color:var(--accent)}

/* Footer and toast */
footer{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0 28px;border-top:3px solid var(--ink)}
.footer-links{display:flex;gap:18px}
#toast{background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:13px;padding:8px 18px}

/* Tablet */
@media(max-width:1100px){
  :root{--paper-gutter:24px;--headline-size:40px}
  :root{--wordmark-height:72px}
  .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .card-grid>.content-card:nth-child(n){border-left:var(--rule);padding:16px 16px 18px}
  .card-grid>.content-card:nth-child(3n+1){border-left:0;padding-left:0}
  .card-grid>.content-card:nth-child(3n){padding-right:0}
}
@media(max-width:860px){
  :root{--headline-size:36px}
  :root{--wordmark-height:58px}
  .brand-sections{font-size:13px;letter-spacing:.2em;gap:.8em}
  .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card-grid>.content-card:nth-child(n){border-left:var(--rule);padding:16px 0 18px 16px}
  .card-grid>.content-card:nth-child(2n+1){border-left:0;padding:16px 16px 18px 0}
  .calendar-layout{grid-template-columns:1fr}
  .calendar-layout>div:first-child{padding-right:0;border-right:0}
  .calendar-layout>.agenda{padding-left:0;margin-top:22px}
  .settings-grid{grid-template-columns:1fr}
  .coverage-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reader-page h1{font-size:38px}
  .reader-page h1:not([lang^=zh]){font-size:42px}
}
/* Phone: compact masthead, a sticky section bar that steps aside while reading,
   thumbnail story lists and a calm single-column article. */
.read-progress{display:none}
@media(max-width:600px){
  :root{--paper-gutter:16px;--headline-size:29px}
  html{-webkit-tap-highlight-color:transparent}
  :root{--wordmark-height:clamp(34px,10.6vw,44px)}
  .masthead{padding-top:16px}
  .nameplate{grid-template-columns:auto 1fr;gap:12px;padding-bottom:10px}
  .brand{justify-self:start}
  .film-edge{height:20px;background-position:left -3px}
  .film-edge span{font-size:8.5px;top:0}
  .brand-sections{display:none}
  .edition-day{font-size:calc(var(--wordmark-height) * .82)}
  .edition-block{column-gap:7px;font-size:11px;line-height:1.2;align-self:center}
  #edition-date span{font-weight:600}
  .footer-brand .wordmark{height:22px}
  .paper-toolbar{position:sticky;top:0;z-index:20;background:#f5f4f0eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);gap:14px;min-height:44px;transition:transform .22s ease}
  body.bar-hidden .paper-toolbar{transform:translateY(-110%)}
  #navigation{gap:16px}
  .nav-button{padding:10px 0 8px;margin:0;font-size:16px;letter-spacing:.02em}
  .nav-count{display:none}
  .topbar{flex:1;min-width:0;margin:0}
  .search-field{flex:1;min-width:0}
  .search-field input{width:100%;font-size:16px;padding:4px 0;border-bottom-color:var(--line)}
  input,select,textarea{font-size:16px}
  .filter-selects select{font-size:15px}
  .read-progress{display:block;position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
  .read-progress span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}

  .filters{gap:2px 14px;font-size:14px;margin-bottom:14px}
  .tab{padding:6px 10px}
  .scope-links{margin-left:0;gap:12px}
  .scope-links .text-link,.advanced-filters>summary{font-size:14px;padding:6px 0}
  .filter-selects{gap:12px}

  .feature-summary{font-size:16.5px;line-height:1.8}
  .feature-columns:not([lang^=zh]) .feature-summary{font-size:17px;line-height:1.55}

  /* Stories in lists: headline first, small picture on the right. */
  .content-card{padding:14px 0}
  .content-card.has-art .card-art{float:right;width:34%;max-width:132px;margin:2px 0 6px 14px}
  .content-card.has-art .card-art .source-art{aspect-ratio:1}
  .content-card.has-art .image-caption{font-size:9.5px;line-height:1.35}
  .content-card h3{font-size:19px;line-height:1.38}
  .content-card h3:not([lang^=zh]){font-size:20px;line-height:1.2}
  .card-summary{font-size:15px;line-height:1.7;-webkit-line-clamp:3;text-align:left}
  .card-summary:not([lang^=zh]){font-size:15.5px;line-height:1.5}
  .card-footer{clear:both;margin-top:6px}
  .save-button{min-width:44px;min-height:36px;margin:-10px -12px -10px auto;padding:0 12px;font-size:18px;text-align:center}
  .card-grid{grid-template-columns:1fr}
  .card-grid>.content-card:nth-child(n){border-left:0;padding:14px 0}
  .news-pagination{font-size:14px}
  .news-pagination .text-link{font-size:14px;padding:10px 0}
  .agenda-item{padding:12px 0}

  .page-heading{padding-top:16px}
  .page-heading h1{font-size:26px}
  .calendar-day{min-height:56px;padding:3px}
  .calendar-dot{font-size:9px;padding-left:3px}
  .event-row h3{font-size:16px}

  /* Article */
  .reader-page{padding-top:6px}
  .reader-toolbar .text-link{font-size:15px;padding:10px 0}
  .reader-page .eyebrow{padding-top:10px}
  .reader-page h1{font-size:27px;line-height:1.32;margin:8px 0 14px}
  .reader-page h1:not([lang^=zh]){font-size:30px;line-height:1.12}
  .reader-tabs{font-size:15px}
  .reader-tabs button{padding:9px 16px}
  .original-pending{margin-top:12px}
  .reader-document{font-size:18px;line-height:1.85;padding-top:10px}
  .reader-document:not([lang^=zh]){font-size:18.5px;line-height:1.58}
  .reader-document p{margin-bottom:1.05em}
  .reader-document h2,.article-heading{font-size:20px}
  .article-columns{column-count:1;margin:10px 0 0;text-align:left}
  .reader-document[lang^=zh] .article-columns{text-align:justify}
  .article-image{margin:4px -16px 18px}
  .article-image img{max-height:none;width:100%}
  .article-image figcaption{padding:5px 16px 0}
  .reader-cover{margin:0 -16px 16px}
  .reader-cover .image-caption{padding:4px 16px 0}
  .article-references{font-size:13px;margin:-8px 0 14px}
  .reader-source-link{flex-direction:column;gap:2px;margin-top:20px}
  .reader-end{margin-top:12px;border-top:var(--rule-ink)}

  .coverage-stats strong{font-size:24px}
  .coverage-source summary{flex-direction:column;gap:2px}
  dialog{padding:18px 16px 22px}
  .detail-title{font-size:22px}
  footer{flex-direction:column;align-items:center;gap:6px;padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .footer-links .text-link{font-size:14px;padding:6px 0}
  #toast{bottom:calc(20px + env(safe-area-inset-bottom))}
}
@media(max-width:600px) and (prefers-reduced-motion:reduce){.paper-toolbar{transition:none}}
.reader-end{display:none}
@media(max-width:860px){.reader-end{display:flex;padding-top:10px}}
/* Front page v5: the lead across the page, three desks (電影 / 藝術 / 攝影) divided by
   column rules, then a listings band set like a cinema timetable beside the industry notes. */
.broadsheet{padding-top:20px}
.lead-column{padding-bottom:22px;border-bottom:3px solid var(--ink)}
.feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"head head" "art text";column-gap:32px}
.feature-body{grid-area:head}
.feature h2{font-size:clamp(34px,3.6vw,52px);font-weight:900;line-height:1.14;letter-spacing:-.01em;margin:0 0 18px;max-width:22em;overflow-wrap:anywhere;text-wrap:pretty}
.feature h2:not([lang^=zh]){font-weight:700;letter-spacing:-.02em;line-height:1.04;text-wrap:balance}
.feature figure.feature-art{grid-area:art;margin:0}
.feature-art .source-art{aspect-ratio:3/2}
.feature-text{grid-area:text;display:flex;flex-direction:column;min-width:0}
.feature-columns{display:block;overflow-wrap:anywhere}
.feature-summary{font-size:16px;line-height:1.8;margin:0 0 .9em;text-align:left}
.feature-columns:not([lang^=zh]) .feature-summary{font-size:17px;line-height:1.55}
.feature-summary:nth-child(n+4){display:none}
.feature-footer{margin-top:auto}
.feature:not(:has(.feature-art)){grid-template-columns:1fr;grid-template-areas:"head" "text"}
.feature:not(:has(.feature-art)) .feature-columns{column-count:3;column-gap:32px;column-rule:var(--rule)}
.desks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:18px}
.desk{min-width:0;padding:0 24px}
.desk:first-child{padding-left:0}
.desk:last-child{padding-right:0}
.desk+.desk{border-left:var(--rule)}
.desk-name{font-family:'Intermission Title',var(--serif);font-size:22px;font-weight:400;letter-spacing:.5em;line-height:1;padding:2px 0 12px;border-bottom:var(--rule-ink)}
.desk .content-card:first-of-type h3{font-size:22px}
.content-card.compact{padding:12px 0}
.content-card.compact h3{font-size:16.5px;line-height:1.42;margin-bottom:4px}
.content-card.compact h3:not([lang^=zh]){font-size:17.5px;line-height:1.25}
.content-card.compact .card-summary{-webkit-line-clamp:2;font-size:13.5px;line-height:1.65}
.content-card.compact .card-footer{margin-top:4px}
.frontpage-foot{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);column-gap:32px;margin-top:30px;padding-top:18px;border-top:3px solid var(--ink)}
.frontpage-foot.single{grid-template-columns:1fr}
.industry-notes{padding-left:32px;margin-left:-1px;border-left:var(--rule)}
.listing{display:grid;grid-template-columns:4.2em minmax(0,1fr) auto;grid-template-areas:"date title state" "date place state";column-gap:16px;width:100%;padding:11px 0;border-bottom:var(--rule);text-align:left}
.listing-date{grid-area:date;font-family:var(--latin);font-size:24px;font-weight:400;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.listing-title{grid-area:title;font-size:15.5px;font-weight:700;line-height:1.4}
.listing-place{grid-area:place;font-family:var(--sans);font-size:12px;color:var(--muted)}
.listing-state{grid-area:state;align-self:center;font-family:var(--sans);font-size:12px;color:var(--muted);white-space:nowrap}
.listing-state.urgent{color:var(--accent);font-weight:700}
.listing:hover .listing-title{text-decoration:underline;text-underline-offset:.18em}
.reading-note:empty{display:none}
/* Bookmarks stay out of the way until wanted. */
.content-card .save-button{opacity:0;transition:opacity .15s}
.content-card:hover .save-button,.content-card .save-button:focus-visible,.content-card .save-button.saved,body[data-page=bookmarks] .content-card .save-button{opacity:1}
#edition-updated{font-family:var(--sans);font-size:12px;color:var(--muted)}
@media(hover:none){body:not([data-page=bookmarks]) .content-card .save-button:not(.saved){display:none}}
/* Reader: one comfortable column. */
.reader-page{max-width:760px}
.article-columns{column-count:1;margin:12px 0 0;text-align:left}
.reader-document[lang^=zh] .article-columns{text-align:justify}
@media(max-width:1100px){.desk{padding:0 18px}.feature{column-gap:24px}}
@media(max-width:860px){
  .feature{grid-template-columns:1fr;grid-template-areas:"head" "art" "text"}
  .feature figure.feature-art{margin-bottom:14px}
  .feature:not(:has(.feature-art)) .feature-columns{column-count:2}
  .desks{grid-template-columns:1fr 1fr}
  .desk:nth-child(3){grid-column:1/-1;border-left:0;padding:22px 0 0;margin-top:8px;border-top:var(--rule-ink)}
  .desk:nth-child(2){padding-right:0}
  .frontpage-foot{grid-template-columns:1fr}
  .industry-notes{padding:22px 0 0;margin:8px 0 0;border-left:0;border-top:var(--rule-ink)}
}
@media(max-width:600px){
  .broadsheet{padding-top:10px}
  .feature h2{font-size:28px;line-height:1.24;margin-bottom:12px}
  .feature h2:not([lang^=zh]){font-size:30px;line-height:1.08}
  .feature figure.feature-art{margin:0 -16px 12px}
  .feature-art .image-caption{padding:4px 16px 0}
  .feature-summary{font-size:16.5px}
  .feature-summary:nth-child(n+3){display:none}
  .feature:not(:has(.feature-art)) .feature-columns{column-count:1}
  .desks{display:block;padding-top:0}
  .desk,.desk:nth-child(n){padding:0;border:0;margin-top:26px}
  .desk-name{font-size:20px}
  .desk .content-card:first-of-type h3{font-size:20px}
  .listing{grid-template-columns:3.6em minmax(0,1fr);grid-template-areas:"date title" "date place" "date state";column-gap:12px}
  .listing-date{font-size:21px}
  .listing-state{align-self:start}
  .reader-page{max-width:none}
}

/* Opening page. The left half of the screen (on phones the golden section, 61.8%) is the title page of a
   vertical book on glossy coated stock: a small thin title in open space, crop marks as on a
   print proof, a colophon date, page edges at the fore-edge and a gutter that falls into the
   front page beside it. A click, key, wheel or swipe fades it away. Markup and the small
   script live in index.html. */
html.cover-open{overflow:hidden}
.cover{position:fixed;inset:0;z-index:200;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .9s cubic-bezier(.4,0,.2,1)}
.cover-veil{position:absolute;inset:0 0 0 50%;background:linear-gradient(to right,#00000038,#00000014 1.5%,#00000005 8%,#0000 22%)}
.cover-leaf{position:absolute;inset:0 50% 0 0}
.cover-leaf:focus{outline:0}
.cover-leaf:focus-visible .cover-turn{color:var(--ink)}
.cover-face{position:absolute;inset:0;overflow:hidden}
.cover-front{--mark:18px;background:radial-gradient(90% 55% at 30% 18%,#ffffffc7,#fff0 70%),linear-gradient(to left,#dcdbd6 0,#eceae6 2.5%,#f6f5f2 12%,#f9f9f7 55%,#f3f2ee 100%)}
/* fore-edge: the stacked leaves of the book, hairline by hairline */
.cover-front::before{content:'';position:absolute;top:0;bottom:0;left:0;width:7px;background:repeating-linear-gradient(to right,#d6d4cf 0 1px,#f4f3ef 1px 2px),#f4f3ef;box-shadow:1px 0 2px #0000000f}
.cover-marks{position:absolute;inset:7vh 7% 7vh calc(7% + 7px);background:linear-gradient(#9b9892,#9b9892) left top/var(--mark) 1px no-repeat,linear-gradient(#9b9892,#9b9892) left top/1px var(--mark) no-repeat,linear-gradient(#9b9892,#9b9892) right top/var(--mark) 1px no-repeat,linear-gradient(#9b9892,#9b9892) right top/1px var(--mark) no-repeat,linear-gradient(#9b9892,#9b9892) left bottom/var(--mark) 1px no-repeat,linear-gradient(#9b9892,#9b9892) left bottom/1px var(--mark) no-repeat,linear-gradient(#9b9892,#9b9892) right bottom/var(--mark) 1px no-repeat,linear-gradient(#9b9892,#9b9892) right bottom/1px var(--mark) no-repeat}
.cover-title{position:absolute;top:21vh;left:50%;height:50vh;width:auto;aspect-ratio:936/4486;transform:translateX(-50%);fill:#121110;overflow:visible}
.cover-title{--wordmark-light:#b3261e}
.cover-note{position:absolute;top:22vh;left:calc(50% - 50vh * .1044 - 4.2em);writing-mode:vertical-rl;white-space:nowrap;font-family:'Intermission Title',var(--serif);font-size:13px;font-weight:300;letter-spacing:.62em;line-height:1;color:#57534d}
.cover-colophon{position:absolute;left:0;right:0;bottom:calc(7vh + 34px);text-align:center;font-family:'Intermission Title',var(--serif);font-size:12px;font-weight:300;letter-spacing:.38em;color:#57534d}
.cover-colophon::before{content:'';display:block;width:22px;height:1px;margin:0 auto 16px;background:#b3261e}
.cover-turn{position:absolute;left:calc(7% + 7px + var(--mark) + 10px);bottom:calc(7vh - 6px);font-family:'Intermission Title',var(--serif);font-size:11px;letter-spacing:.5em;color:#9b9892}
.cover-title,.cover-note,.cover-colophon,.cover-turn,.cover-marks{transition:opacity .4s ease}
.cover.turning{opacity:0;pointer-events:none;transition-delay:.15s}
.cover.turning :is(.cover-title,.cover-note,.cover-colophon,.cover-turn,.cover-marks){opacity:0}
@media(max-width:700px){
  /* Phones: the leaf takes the golden section of the screen (61.8%), the front page the rest. */
  .cover-leaf{right:38.2%}
  .cover-veil{left:61.8%}
  .cover-front{--mark:12px}
  .cover-front::before{width:5px}
  .cover-marks{inset:5vh 9% 5vh calc(9% + 5px)}
  .cover-title{top:18vh;height:min(50vh,104vw)}
  .cover-note{top:19vh;left:calc(50% - min(50vh,104vw) * .1044 - 2.8em);font-size:10.5px;letter-spacing:.45em}
  .cover-colophon{bottom:calc(5vh + 26px);font-size:9.5px;letter-spacing:.16em}
  .cover-colophon::before{width:16px;margin-bottom:12px}
  .cover-turn{left:calc(9% + 5px + var(--mark) + 6px);bottom:calc(5vh - 5px);font-size:9.5px;letter-spacing:.3em}
}

/* Opening sequence · 門中見日. The title is projected onto the leaf: a warm lamp flickers up
   through film grain, the four characters arrive one frame-stutter at a time while the focus
   pulls in, then the 日 inside the gate of 間 strikes like a neon tube and leaves a red haze
   on the paper. A highlight runs once across the coated stock, and the turn hint breathes.
   Turning the leaf flares the light as the page fades. Total ≈3.4 s; any input skips it. */
.cover-grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .08 0 0 0 0 .07 0 0 0 0 .06 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E"),#1c1915;background-blend-mode:normal;animation:cover-lamp 2.6s linear both,cover-grain .32s steps(4) 8}
.cover-front::after{content:'';position:absolute;inset:-10% -60%;z-index:3;pointer-events:none;background:linear-gradient(104deg,#fff0 42%,#ffffff8c 47.5%,#ffffffd9 48.5%,#ffffff6b 50%,#fff0 55%);transform:translateX(-60%);animation:cover-sheen 1.9s cubic-bezier(.45,.05,.25,1) 2.75s}
.cover-marks{animation:cover-fade 1.2s ease .5s backwards}
.cover-title{animation:cover-focus 2.1s cubic-bezier(.2,.6,.3,1) .25s backwards,cover-ignite 1.1s linear 2s backwards}
.cover-char{animation:cover-char .9s cubic-bezier(.2,.7,.2,1) calc(.35s + var(--i) * .3s) backwards}
.cover-glow{opacity:.8;transform-box:fill-box;transform-origin:center;mix-blend-mode:multiply;animation:cover-glow 1.1s linear 2s backwards,cover-breathe 4.8s ease-in-out 3.1s infinite alternate}
.cover-note{animation:cover-rise 1s ease 2.35s backwards}
.cover-colophon{animation:cover-rise 1s ease 2.55s backwards}
.cover-colophon::before{animation:cover-rule .8s cubic-bezier(.2,.7,.2,1) 2.8s backwards}
.cover-turn{animation:cover-fade .8s ease 3.2s backwards,cover-hint 2.2s ease-in-out 4s infinite alternate}
.cover.turning .cover-turn{animation:none}
.cover.turning .cover-title{animation:none;--wordmark-light:#d0331f}
.cover.turning .cover-glow{animation:cover-flare .9s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes cover-lamp{0%{opacity:.86}5%{opacity:.5}8%{opacity:.78}12%{opacity:.3}15%{opacity:.6}21%{opacity:.16}26%{opacity:.3}38%{opacity:.12}100%{opacity:0}}
@keyframes cover-grain{0%{background-position:0 0}25%{background-position:-61px 37px}50%{background-position:43px -88px}75%{background-position:-97px -23px}100%{background-position:0 0}}
@keyframes cover-sheen{to{transform:translateX(60%)}}
@keyframes cover-fade{from{opacity:0}}
@keyframes cover-rise{from{opacity:0;transform:translateY(8px)}}
@keyframes cover-rule{from{transform:scaleX(0)}}
@keyframes cover-focus{from{filter:blur(6px)}to{filter:blur(0)}}
@keyframes cover-char{0%{opacity:0;transform:translateY(110px)}22%{opacity:.62}34%{opacity:.14}50%{opacity:.82}60%{opacity:.4}100%{opacity:1;transform:none}}
@keyframes cover-ignite{0%,8%,16%,29%,40%{--wordmark-light:#121110}4%,12%,22%,34%,100%{--wordmark-light:#b3261e}}
@keyframes cover-glow{0%,8%,16%,29%{opacity:0;transform:scale(.7)}4%{opacity:.7}12%{opacity:.85}22%{opacity:.6}34%{opacity:1;transform:scale(1.08)}100%{opacity:.8;transform:none}}
@keyframes cover-breathe{to{opacity:.5;transform:scale(.94)}}
@keyframes cover-hint{to{opacity:.35}}
@keyframes cover-flare{to{opacity:1;transform:scale(1.9)}}

/* Masthead: once the leaf is gone (or straight away on a deep link) the 35mm strip runs
   through the gate and stops — the intermission — and then the 日 of 間 strikes. */
.film-edge{animation:film-run 1.7s cubic-bezier(.12,.6,.22,1) .15s backwards}
.film-edge span{animation:film-run-print 1.7s cubic-bezier(.12,.6,.22,1) .15s backwards}
.brand .wordmark{animation:wordmark-ignite .9s linear 1.55s backwards}
html.cover-open :is(.film-edge,.film-edge span,.brand .wordmark){animation-play-state:paused}
@keyframes film-run{from{background-position-x:456px}}
@keyframes film-run-print{from{transform:translateX(456px)}}
@keyframes wordmark-ignite{0%,10%,22%,38%{--wordmark-light:var(--ink)}5%,16%,30%,100%{--wordmark-light:var(--accent)}}
@media(prefers-reduced-motion:reduce){
  .cover{transition-duration:.3s}
  .cover *,.cover *::before,.cover-front::after,.film-edge,.film-edge span,.brand .wordmark{animation:none!important}
}
@media print{
  .cover{display:none}
  html,body{background:#fff}
  .paper-toolbar,.filters,.reader-toolbar,.reader-tabs,.save-button,.news-pagination,footer{display:none}
  .content-card,.article-image{break-inside:avoid}
  a{color:#000!important}
}
