@font-face { font-family: "apiece Latin"; src: url('/fonts/apiece-latin.woff?v=20261103f') format('woff'); font-style: normal; font-weight: 100 1000; font-display: swap; }
@font-face { font-family: "apiece Text"; src: url('/fonts/apiece-text-400.woff?v=20261103f') format('woff'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "apiece Text"; src: url('/fonts/apiece-text-500.woff?v=20261103f') format('woff'); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "apiece Newsprint"; src: url('/fonts/apiece-newsprint-600.woff?v=20261103f') format('woff'); font-style: normal; font-weight: 600; font-display: swap; }

/* The reading journey shares the accepted hero's night palette; no hero rules live here. */
body.cinematic-landing { background: #0c151f; }
.reading-journey {
  --sans: "apiece Latin", "apiece Text", "Hiragino Sans", sans-serif;
  --serif: "apiece Newsprint", "Hiragino Mincho ProN", Georgia, serif;
  --journey-drift: 0;
  --journey-ink: #f1f2ef;
  --journey-muted: #b5c0cb;
  --journey-line: #ffffff2b;
  --journey-warm: #e8bf96;
  background: #0c151f;
  color: var(--journey-ink);
  font-family: var(--sans);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}
.reading-journey a:focus-visible,
.reading-journey button:focus-visible,
.reading-journey input:focus-visible,
.reading-journey summary:focus-visible,
.reading-journey [tabindex]:focus-visible { outline-color: var(--journey-warm); }
.journey-section { position: relative; padding-block: clamp(78px, 9vw, 140px); }
.journey-title {
  font-size: clamp(36px, 4.4vw, 58px);
  line-height: 1.35;
  font-weight: 500;
  letter-spacing: -.035em;
}
.journey-copy { font-size: 15px; color: var(--journey-muted); line-height: 1.9; letter-spacing: .015em; }
.journey-meta { margin-top: 18px; font-size: 13px; line-height: 1.75; color: #ccd5d5; }
.journey-note { font-size: 12px; line-height: 1.8; color: var(--journey-muted); }
.journey-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; }

.reader-chapter { padding-top: 104px; overflow: hidden; }
.reader-panel { position: relative; margin: 0; }
.reader-image { position: relative; display: block; width: min(320px, 100%); margin-inline: auto; border: 6px solid #05090d; border-radius: 32px; overflow: hidden; box-shadow: 0 26px 64px #0006, 0 0 0 1px #a6b1bd50; }
.reader-image img { width: 100%; }
.reader-panel figcaption { margin: 24px auto 0; max-width: 320px; color: var(--journey-muted); font-size: 11px; line-height: 1.9; }
.reader-chapter .journey-note { margin-top: 35px; border-top: 1px solid var(--journey-line); padding-top: 19px; }
.perspectives-chapter { overflow: hidden; background: #e6e4dc; color: #202b2d; }
.perspectives-chapter .journey-copy,
.perspectives-chapter .journey-note { color: #53616b; }
.perspectives-chapter a:focus-visible,
.perspectives-chapter button:focus-visible { outline-color: #526c80; }
.perspectives-action { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 27px; }
.follow-chapter { border-bottom: 1px solid var(--journey-line); }
.follow-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 95px; align-items: center; }
.follow-layout .journey-copy { margin-top: 30px; max-width: 500px; }
.follow-track { position: relative; padding-left: 30px; border-left: 1px solid #8294a2; }
.follow-moment { position: relative; padding-bottom: 46px; }
.follow-moment::before { content: ""; position: absolute; width: 7px; height: 7px; top: 10px; left: -34px; border-radius: 50%; background: #7b8c9c; }
.follow-moment:last-child { padding-bottom: 0; }
.follow-moment.is-current::before { background: var(--journey-warm); }
.follow-moment > span { font-size: 11px; color: var(--journey-muted); }
.follow-moment h3 { font-size: 25px; font-weight: 450; line-height: 1.6; margin-top: 12px; }
.follow-moment p { margin-top: 10px; font-size: 12px; color: var(--journey-muted); }
.follow-moment strong { display: block; margin-top: 13px; font: 400 clamp(90px, 9vw, 122px)/1 var(--sans); letter-spacing: -.065em; color: var(--journey-warm); }
.follow-chapter > .wrap > .journey-note { margin-top: 30px; }
.reading-capabilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 45px; margin-top: 55px; border-top: 1px solid var(--journey-line); }
.display-chapter { background: #111f2c; }
.display-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 85px; align-items: center; }
.display-copy .journey-copy { margin-top: 26px; max-width: 450px; }
.reading-journey .type-demo { border: 0; padding: 0; min-width: 0; }
.reading-journey .type-demo-controls { margin: 0 0 21px; justify-content: space-between; }
.reading-journey .theme-toggle { color: var(--journey-ink); border-color: #ffffff70; }
.reading-journey .type-scale input { accent-color: var(--journey-warm); }
.reading-journey .type-specimen { min-height: 320px; margin: 0; padding: 38px 35px; border: 1px solid #d2d8dc; background: #eef0eb; color: #24303a; font: 600 calc(24px * var(--sample-scale))/1.85 var(--serif); }
.reading-journey .type-demo[data-theme="dark"] .type-specimen { background: #080f17; color: #e9eeed; border-color: #70818f; }
.reading-journey .type-demo > .journey-note { margin-top: 15px; color: var(--journey-muted); }
.mechanism-chapter { background: #0a131d; }
.mechanism-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: 75px; align-items: end; }
.mechanism-head .journey-title { font-size: clamp(30px, 3.6vw, 44px); }
.mechanism-head .journey-copy { padding-bottom: 10px; }
.reading-journey .ai-panels { margin: 50px 0 0; }
.reading-journey .ai-panel h3 { font-size: 20px; font-weight: 500; line-height: 1.5; }
.reading-journey .ai-panel + .ai-panel { margin-top: 0; }
.reading-journey .ai-panel > p { max-width: 850px; font-size: 14px; line-height: 1.9; color: var(--journey-muted); }
.reading-journey .article-flow { gap: 30px; margin: 28px 0; padding-block: 33px; border-color: var(--journey-line); }
.reading-journey .flow-stop { text-align: center; }
.reading-journey .flow-stop b { display: block; font-size: clamp(22px, 3vw, 36px); font-weight: 450; letter-spacing: -.04em; }
.reading-journey .flow-stop small { margin-top: 11px; color: var(--journey-muted); font-size: 11px; }
.reading-journey .flow-arrow { color: var(--journey-warm); font-size: 25px; }
.reading-journey .providers { gap: 9px 25px; color: var(--journey-muted); font-size: 11px; }
.data-disclosure { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; margin-top: 40px; }
.data-disclosure > p { font-size: 13px; line-height: 1.9; color: var(--journey-muted); }
.reading-journey .testing-note { margin: 0; border-color: var(--journey-warm); }
.reading-journey .testing-note strong { font-size: 13px; font-weight: 500; color: var(--journey-ink); }
.reading-journey .testing-note p { font-size: 13px; color: var(--journey-muted); line-height: 1.9; }
.reading-journey .device-compat { border-color: var(--journey-line); margin-top: 45px; }
.reading-journey .spec th, .reading-journey .spec td { border-color: var(--journey-line); font-size: 13px; line-height: 1.85; }
.reading-journey .spec td { color: var(--journey-muted); }
.collection-chapter { position: relative; isolation: isolate; overflow: hidden; background: #101d2a; }
.collection-chapter::before { content: ""; position: absolute; z-index: -1; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), #ffffff04 calc(25% - 1px) 25%); }
.collection-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 85px; align-items: center; }

.collection-date { margin-top: 24px; font-size: 12px; color: var(--journey-muted); }
.collection-figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 30px; }
.collection-figures > div { padding-top: 19px; border-top: 1px solid #ffffff55; }
.collection-figures dt { color: var(--journey-muted); font-size: 12px; }
.collection-figures dd { margin: 12px 0 0; font: 400 clamp(30px, 3.4vw, 44px)/1.2 var(--sans); letter-spacing: -.055em; font-variant-numeric: tabular-nums; }
.collection-footnotes { margin-top: 38px; padding-top: 24px; border-top: 1px solid var(--journey-line); display: grid; grid-template-columns: 1.3fr .7fr; gap: 55px; }
.collection-footnotes p { font-size: 11px; line-height: 1.85; color: var(--journey-muted); }
.journey-faq { padding-bottom: 95px; }
.journey-faq-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; }
.journey-faq .journey-title { font-size: 38px; }
.journey-faq .journey-copy { margin-top: 23px; font-size: 13px; }
.reading-journey .faq-list { border-color: var(--journey-line); }
.reading-journey .faq-list details { border-color: var(--journey-line); }
.reading-journey .faq-list summary { padding-block: 24px; font-size: 15px; line-height: 1.7; }
.reading-journey .faq-list summary::after { top: 20px; color: var(--journey-muted); }
.reading-journey .faq-list details p { color: var(--journey-muted); line-height: 1.9; font-size: 14px; }
.reading-journey .stores { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.reading-journey .store { background: #edf0ea; border-color: #edf0ea; color: #13212b; min-height: 76px; padding-inline: 21px; }
.reading-journey .store:hover { background: #fff; }
.reading-journey .store small { font-size: 10px; }
.reading-journey .store b { font-size: 19px; }
.cinematic-landing > .journey-footer { color: #a7b4c0; border-color: #ffffff25; padding-block: 33px 38px; }
.journey-footer .credit, .journey-footer .photo-credit { font-size: 10px; }
.reading-journey .reveal-enter { animation: journey-enter .7s ease-out; }
.reading-journey.motion-paused *, .reading-journey.motion-paused *::before, .reading-journey.motion-paused *::after { animation: none !important; transition: none !important; }
/* Support and legal pages keep their actual HTML content, with a matching quiet reading surface. */
body.editorial:not(.landing) { background: #101b26; color: #e8ecec; }
.editorial:not(.landing) .page header { border-color: #ffffff35; }
.editorial:not(.landing) .page nav .nav-cta { color: #f1f3f3; border-color: #ffffff70; }
.editorial:not(.landing) .page nav .nav-lang { border-color: #ffffff35; }
.editorial:not(.landing) .page h2 { border-color: #ffffff30; }
.editorial:not(.landing) .page p, .editorial:not(.landing) .page li { color: #c6cfd5; }
.editorial:not(.landing) .page h1 { font-weight: 450; font-size: clamp(34px, 5vw, 57px); }
.editorial:not(.landing) .page h2 { font-weight: 450; }
.editorial:not(.landing) .page .btn { color: #15222c; background: #eef1ec; }
.editorial:not(.landing) .page code { background: #ffffff13; color: #f1f3ed; }
.editorial:not(.landing) .page td, .editorial:not(.landing) .page th, .editorial:not(.landing) .page footer { border-color: #ffffff30; }
.editorial:not(.landing) .page footer { color: #b5c1cc; }
.editorial:not(.landing) :focus-visible { outline-color: #e8bf96; }
.reading-journey:lang(en) .journey-title { line-height: 1.24; letter-spacing: 0em; font-weight: 500; font-kerning: normal; }
.reading-journey:lang(en) .reader-gallery h3, .reading-journey:lang(en) .flow-stop b { letter-spacing: 0em; font-kerning: normal; }
@keyframes journey-enter { from { transform: translateY(16px); } to { transform: translateY(0); } }
@media (max-width: 1100px) {
  .display-layout, .collection-layout { gap: 40px; }
  .journey-heading, .mechanism-head { gap: 40px; }
  .follow-layout { gap: 55px; }
  .journey-faq-layout { gap: 45px; }
  .reading-journey .store { padding-inline: 14px; gap: 10px; }
  .reading-journey .store b { font-size: 16px; }
}
@media (max-width: 760px) {
  .journey-section { padding-block: 65px; }
  .journey-title { font-size: clamp(30px, 8.2vw, 38px); line-height: 1.4; }
  .journey-copy { font-size: 14px; }
  .journey-heading, .follow-layout, .display-layout, .mechanism-head, .data-disclosure, .collection-layout, .collection-footnotes, .journey-faq-layout { grid-template-columns: 1fr; gap: 28px; }
  .reader-chapter { padding-top: 66px; }

  .reader-image { width: min(300px, 87%); border-radius: 30px; }
  .reader-panel figcaption { max-width: 300px; font-size: 11px; }
  .reader-chapter .journey-note { margin-top: 27px; font-size: 11px; }
  .perspectives-action { display: block; margin-top: 23px; }
  .perspectives-action .journey-note { margin-top: 17px; }
  .follow-layout .journey-copy { margin-top: 20px; }
  .follow-track { margin-top: 10px; }
  .follow-moment h3 { font-size: 23px; }
  .follow-moment strong { font-size: 58px; }
  .reading-capabilities { grid-template-columns: 1fr; margin-top: 35px; }
  .display-copy .journey-copy { margin-top: 20px; }
  .reading-journey .type-specimen { min-height: 280px; padding: 28px 24px; font-size: calc(clamp(19px, 5.2vw, 22px) * var(--sample-scale)); }
  .reading-journey .type-demo-controls { gap: 18px; }
  .reading-journey .type-demo > .journey-note { font-size: 11px; }
  .reading-journey .article-flow { gap: 10px; padding-block: 25px; margin-block: 23px; }
  .reading-journey .flow-stop b { font-size: 17px; }
  .reading-journey .flow-stop small { font-size: 9px; line-height: 1.9; }
  .reading-journey .flow-arrow { font-size: 18px; }
  .data-disclosure { margin-top: 28px; }
  .reading-journey .device-compat { margin-top: 30px; }
  .reading-journey .spec th, .reading-journey .spec td { font-size: 12px; }
  .collection-figures { margin-top: 10px; gap: 25px 23px; }
  .collection-figures dd { font-size: clamp(26px, 7.5vw, 40px); }
  .collection-figures dt { font-size: 11px; }
  .collection-date { font-size: 11px; margin-top: 20px; }
  .collection-footnotes { gap: 17px; margin-top: 28px; }
  .collection-footnotes p { font-size: 11px; }
  .journey-faq .journey-title { font-size: 30px; }
  .journey-faq .journey-copy { margin-top: 15px; }
  .reading-journey .faq-list summary { padding-block: 20px; font-size: 14px; }
  .reading-journey .faq-list summary::after { top: 17px; }
  .reading-journey .store { padding: 12px 13px; min-height: 68px; gap: 9px; }
  .reading-journey .store b { font-size: 16px; }
  .reading-journey .store small { font-size: 9px; }
}
@media (max-width: 370px) {
  .reading-journey .flow-stop b { font-size: 15px; }
  .reading-journey .flow-stop small { font-size: 8px; }
  .reading-journey .store b { font-size: 14px; }
  .reading-journey .store { padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .reading-journey *, .reading-journey *::before, .reading-journey *::after { animation: none !important; transition: none !important; }
}

/* Fictional multilingual front pages; this is an interlude, not the opening explanation. */
.press-chapter { overflow: hidden; background: #101c28; padding-block: clamp(64px, 6vw, 88px); }

.press-sheet { --paper-angle: 0deg; --paper-depth: 0px; position: absolute; width: 240px; min-height: 330px; padding: 22px; overflow: hidden; background: #e3e2d8; border: 1px solid #b8bcb5; color: #202726; box-shadow: 0 2px 1px #0004, 0 25px 50px #0005, inset 0 0 18px #84725312; font-family: var(--serif); transform: translate3d(0, calc(var(--journey-drift) * var(--paper-depth)), 0) rotate(var(--paper-angle)); }
.press-edition { border-block: 1px solid #6d777070; padding-block: 5px; font: 8px/1.4 var(--sans); letter-spacing: .07em; text-align: center; }
.press-name { padding-block: 10px 9px; border-bottom: 2px solid #28322c; font-size: 27px; font-weight: 600; line-height: 1.2; text-align: center; letter-spacing: -.045em; white-space: nowrap; }
.press-sheet h3 { font-size: 29px; line-height: 1.25; letter-spacing: -.04em; margin-block: 17px; font-weight: 500; }
.press-columns { columns: 2; column-gap: 12px; font-size: 8px; line-height: 1.8; text-align: justify; border-top: 1px solid #7c837870; padding-top: 10px; }
.press-photo { height: 100px; margin-block: 16px; background-image: url('/img/hero-city.jpg'); background-size: cover; filter: grayscale(1); }
.press-photo-one { background-position: 50% 35%; }
.press-photo-two { background-position: 80% 80%; }
.press-japanese .press-name { font-size: 29px; letter-spacing: .04em; }
.press-japanese h3 { font-size: 24px; line-height: 1.5; }
.press-arabic .press-name { font-size: 30px; }
.press-arabic h3 { font-size: 28px; line-height: 1.6; }
.press-arabic .press-columns { font-size: 10px; line-height: 1.9; }
.press-korean .press-name { font-size: 25px; }
.press-korean h3 { font-size: 24px; line-height: 1.5; }
/* All functionality and AI conditions are readable without opening a control. FAQ is the exception. */
.reader-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px; margin-top: 55px; }
.reader-gallery .reader-panel:nth-child(2) { margin-top: 65px; }
.reader-gallery .reader-panel:nth-child(3) { margin-top: 130px; }
.reader-gallery .reader-panel figcaption { max-width: 280px; margin: 0 auto 25px; }
.reader-gallery .reader-panel h3 { font-size: 24px; font-weight: 450; line-height: 1.5; letter-spacing: -.035em; }

.reading-capabilities article { padding-bottom: 24px; border-bottom: 1px solid var(--journey-line); }
.reading-capabilities article h3 { font-size: 18px; font-weight: 500; margin-top: 23px; }
.reading-capabilities article p { margin-top: 12px; color: var(--journey-muted); font-size: 14px; line-height: 1.9; }
.reading-journey .ai-panels { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 55px; }
.reading-journey .ai-panel { border-top: 1px solid var(--journey-line); padding-top: 24px; }
.reading-journey .ai-panel > p:first-of-type { min-height: 54px; }
.reading-journey .ai-panel .article-flow { gap: 12px; }
.reading-journey .ai-panel .flow-stop b { font-size: 20px; }
.reading-journey .ai-panel .flow-stop small { font-size: 10px; }
.reading-journey .ai-panel .flow-arrow { font-size: 20px; }
.reading-journey .device-compat > h3 { padding-block: 24px; font-size: 15px; font-weight: 500; }
@media (max-width: 1100px) {
  .press-sheet { width: 210px; min-height: 300px; padding: 17px; }
  .press-name { font-size: 24px; }
  .press-sheet h3 { font-size: 25px; }
  .reader-gallery { gap: 30px; }
  .reading-journey .ai-panels { gap: 35px; }
  .reading-journey .ai-panel .flow-stop b { font-size: 17px; }
}
@media (max-width: 760px) {

  .press-sheet { width: 180px; min-height: 250px; padding: 15px; }
  .press-name { font-size: 21px; }
  .press-edition { font-size: 6px; }
  .press-sheet h3 { font-size: 23px; margin-block: 12px; }
  .press-columns { font-size: 6.5px; }
  .press-photo { height: 76px; }
  .press-japanese .press-name { font-size: 24px; }
  .press-japanese h3 { font-size: 20px; }
  .press-arabic .press-name { font-size: 25px; }
  .press-arabic h3 { font-size: 23px; }
  .press-arabic .press-columns { font-size: 8px; }
  .press-korean .press-name { font-size: 21px; }
  .press-korean h3 { font-size: 20px; }
  .reader-gallery { grid-template-columns: 1fr; gap: 48px; margin-top: 33px; }
  .reader-gallery .reader-panel:nth-child(2), .reader-gallery .reader-panel:nth-child(3) { margin-top: 0; }
  .reader-gallery .reader-panel figcaption { max-width: 330px; margin-bottom: 22px; }
  .reader-gallery .reader-panel h3 { font-size: 25px; }

  .reading-journey .ai-panels { grid-template-columns: 1fr; gap: 30px; margin-top: 30px; }
  .reading-journey .ai-panel > p:first-of-type { min-height: 0; }
  .reading-journey .ai-panel .flow-stop b { min-height: 2.8em; font-size: 16px; line-height: 1.4; }
  .reading-journey .ai-panel .flow-stop small { min-height: 3em; font-size: 10px; line-height: 1.5; }
}

/* Finishing: distinct typography, tangible paper and the visible many-to-one story. */
.press-chapter { isolation: isolate; }
.press-sheet::before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(93deg, transparent 49.5%, #6a635018 50%, #fff5 50.4%, transparent 52%), radial-gradient(#26231e21 .4px, transparent .7px); background-size: 100% 100%, 3px 3px; opacity: .52; }
.press-sheet::after { content: "APIECE / PERSPECTIVES"; display: block; margin-top: 17px; padding-top: 6px; border-top: 1px solid #28322c60; font: 7px/1.4 var(--sans); letter-spacing: .13em; }
.press-french .press-name { font-family: Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: -.06em; }
.press-english .press-name { font-family: Georgia, serif; font-weight: 700; letter-spacing: -.045em; }
.reader-gallery { padding-bottom: 5px; }

.reader-gallery .reader-panel h3 { font-weight: 500; letter-spacing: -.025em; }
.reader-image::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 1px 1px 1px #ffffff50; }
.story-assembly { position: relative; display: grid; grid-template-columns: 1fr 120px 1fr; align-items: center; gap: 0; margin-top: 45px; padding: 20px 0; }
.source-spread { display: grid; border-top: 1px solid #a3aaa1; }
.source-edition { position: relative; padding: 25px 0 25px 56px; border-bottom: 1px solid #b8bdb2; }
.source-masthead { font: 500 12px/1.6 var(--sans); letter-spacing: .06em; color: #5f695f; }
.edition-number { position: absolute; left: 0; top: 21px; font: 400 31px/1 var(--sans); color: #737e71; letter-spacing: -.05em; }
.source-edition h3 { padding-top: 12px; font: 600 clamp(21px, 2.05vw, 26px)/1.55 var(--serif); letter-spacing: .005em; }

.story-link { position: relative; align-self: stretch; }
.story-threads { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; color: #8a7256; }
.story-threads path { stroke: currentColor; stroke-width: 1; opacity: .55; }
.story-threads circle { fill: currentColor; }
.gathered-story { position: relative; padding: 40px; background: #22342d; color: #f6f0df; }
.gathered-story .summary-label { padding-bottom: 24px; margin: 0 0 25px; border-bottom: 1px solid #b2bba34d; font: 500 11px/1.8 var(--sans); letter-spacing: .07em; color: #e1c79e; }
.gathered-story .sample-sources { display: flex; gap: 5px 15px; flex-wrap: wrap; font: 400 11px/1.8 var(--sans); color: #c7cec0; }
.gathered-story .sample-sources span::before { content: ""; display: inline-block; width: 4px; height: 4px; margin: 0 6px 2px 0; border-radius: 50%; background: #d2ba92; }
.gathered-story h3 { margin-top: 25px; font: 600 clamp(26px, 3vw, 40px)/1.45 var(--serif); letter-spacing: -.025em; }
.gathered-story > p:not(.summary-label) { margin-top: 22px; font-size: 14px; line-height: 2.1; color: #c7cec0; }
.reading-journey:lang(en) .source-edition h3 { font-family: Georgia, serif; font-size: 25px; line-height: 1.3; font-weight: 400; }
.reading-journey:lang(en) .gathered-story h3 { font-family: Georgia, serif; font-size: 36px; line-height: 1.3; font-weight: 400; letter-spacing: 0em; }
.follow-track { padding-block: 10px; }
.follow-moment.is-current { display: grid; grid-template-columns: 1fr auto; column-gap: 22px; }
.follow-moment.is-current > span { grid-column: 1 / -1; }
.follow-moment.is-current strong { grid-column: 2; grid-row: 2; margin-top: 15px; }
.follow-moment.is-current > p { grid-column: 1; grid-row: 2; align-self: end; max-width: 200px; margin-bottom: 8px; }
.reading-capabilities { gap: 0 65px; }

.reading-journey .type-specimen { background: #efeee5; border-color: #c5c6b8; letter-spacing: .025em; }
.collection-figures > div:first-child { grid-column: 1 / -1; padding-top: 20px; }
.collection-figures > div:first-child dd { font-size: clamp(80px, 11vw, 140px); line-height: 1.1; letter-spacing: -.065em; color: #f0e9da; }
.reading-journey .store { transition: transform .2s ease, background .2s ease; }
.reading-journey .store:hover { transform: translateY(-3px); }
.reading-journey .flow-stop { min-width: 0; }
@media (max-width: 1000px) and (min-width: 761px) {
  .story-assembly { grid-template-columns: 1fr 70px 1fr; }
  .gathered-story { padding: 28px; }
  .source-edition { padding-left: 44px; }
}
@media (max-width: 760px) {
  .press-sheet { transform: translate3d(0, calc(var(--journey-drift) * var(--paper-depth) * .45), 0) rotate(var(--paper-angle)); }
  .press-sheet::after { font-size: 6px; margin-top: 12px; }
  .reader-gallery { padding-bottom: 0; }

  .story-assembly { grid-template-columns: minmax(0, 1fr); margin-top: 35px; padding-inline: 0; }
  .source-spread { gap: 0; }
  .source-edition { padding: 22px 0 22px 42px; }

  .source-masthead { font-size: 12px; }
  .edition-number { font-size: 26px; }
  .source-edition h3 { font-size: 23px; }
  .story-link { height: 40px; }
  .story-link::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px solid #8a725680; }
  .story-threads { display: none; }
  .gathered-story { padding: 27px 24px; }
  .gathered-story h3 { font-size: clamp(24px, 6.8vw, 29px); }
  .gathered-story > p:not(.summary-label) { font-size: 13px; }
  .reading-journey:lang(en) .source-edition h3 { font-size: 24px; }
  .reading-journey:lang(en) .gathered-story h3 { font-size: 28px; }
  .follow-moment.is-current strong { font-size: 90px; }
  .reading-capabilities { gap: 0; }

  .collection-figures { gap: 25px 14px; }
  .collection-figures dt { font-size: 10px; }
  .collection-figures > div:first-child dd { font-size: clamp(95px, 26vw, 140px); }
}
@media (prefers-reduced-motion: reduce) {
  .press-sheet { transform: rotate(var(--paper-angle)); }
}

/* Phrase-aware typesetting: wide titles open out; narrow layouts break at authored units. */
.title-unit, .type-unit, .flow-unit { display: inline-block; white-space: nowrap; }
.reading-journey:lang(ja) { line-break: strict; }
.reader-chapter .journey-heading, .perspectives-chapter .journey-heading { display: block; }
.press-copy .title-unit, .follow-layout .title-unit, .display-copy .title-unit,
.collection-layout .title-unit, .gathered-story h3 .type-unit { display: block; }
.press-copy .journey-title wbr, .follow-layout .journey-title wbr,
.display-copy .journey-title wbr, .collection-layout .journey-title wbr,
.gathered-story h3 wbr { display: none; }
.reading-journey .journey-copy, .reading-journey .journey-note,
.reading-capabilities p, .reading-journey .ai-panel > p, .data-disclosure p,
.collection-footnotes p, .reading-journey .faq-list p { text-wrap: pretty; }
.source-edition h3, .reading-journey:lang(en) .gathered-story h3 { text-wrap: balance; }
@media (min-width: 761px) and (max-width: 1000px) {
  .mechanism-head, .reading-journey .ai-panels, .data-disclosure { grid-template-columns: 1fr; gap: 24px; }
  .mechanism-head .journey-copy { max-width: 680px; }
  .reading-journey .ai-panel > p:first-of-type { min-height: 0; }
}
@media (max-width: 760px) {
  .journey-title .title-unit { display: block; }
  .journey-title wbr { display: none; }
  .reading-journey:lang(en) .ai-panel .flow-stop b { font-size: 15px; }
}
@media (max-width: 370px) {
  .reading-journey:lang(en) .ai-panel .flow-stop b { font-size: 14px; }
  .reading-journey:lang(en) .ai-panel .article-flow { gap: 8px; }
}

/* A deliberately untidy world-press interlude, not a catalogue of supported feeds. */
.press-layout { display: block; }
.press-copy { position: relative; z-index: 20; text-align: center; }
.press-copy .journey-title { font-size: clamp(34px, 3.8vw, 48px); line-height: 1.25; }
.press-copy .title-unit:first-child { margin-bottom: 14px; color: var(--journey-muted); font-size: 16px; font-weight: 400; letter-spacing: .04em; }
.world-press { position: relative; left: 50%; transform: translateX(-50%); width: min(1560px, 100vw); height: 590px; margin-top: 38px; overflow: hidden; }
.world-press .press-sheet { width: 235px; padding: 18px; --paper-angle: 0deg; --paper-depth: 16px; }
.world-press .press-name { overflow: hidden; }
.press-english { left: calc(50% - 740px); top: 12px; z-index: 1; background-color: #e5e4d9; }
.press-japanese { left: calc(50% - 395px); top: 118px; z-index: 10; height: 390px; background-color: #f0f0e7; }
.world-press .press-japanese { width: 200px; --paper-depth: -14px; }
.press-japanese h3 { writing-mode: vertical-rl; float: right; height: 245px; margin: 15px 0 14px 13px; font-size: 23px; line-height: 1.65; letter-spacing: .04em; }
.press-japanese .press-columns { columns: 1; font-size: 9px; text-align: left; }
.press-french { left: calc(50% + 55px); top: 10px; z-index: 2; background-color: #d3d8d6; }
.world-press .press-french { width: 205px; }
.press-arabic { left: calc(50% - 110px); top: 175px; z-index: 12; background-color: #e9e4d7; font-family: "Geeza Pro", "Noto Naskh Arabic", serif; }
.world-press .press-arabic { width: 300px; --paper-depth: 26px; }
.press-spanish { left: calc(50% + 330px); top: 138px; z-index: 7; background-color: #dbdcd2; }
.press-korean { left: calc(50% + 535px); top: 345px; z-index: 6; background-color: #eff0e7; font-family: "AppleMyungjo", "Batang", serif; }
.world-press .press-korean { width: 225px; }
.press-chinese { left: calc(50% - 620px); top: 242px; z-index: 11; height: 370px; background-color: #dfd9c9; }
.world-press .press-chinese { width: 190px; --paper-depth: 22px; }
.press-chinese .press-name { font-size: 31px; letter-spacing: .08em; }
.press-chinese h3 { writing-mode: vertical-rl; float: right; height: 235px; margin: 15px 0 12px 14px; font-size: 29px; line-height: 1.6; }
.press-chinese .press-columns { columns: 1; font-size: 9px; text-align: left; }
.press-russian { left: calc(50% - 350px); top: 12px; z-index: 3; background-color: #e8e9e3; font-family: Georgia, serif; }
.world-press .press-russian { width: 380px; min-height: 260px; }
.press-russian .press-name { font-size: 29px; font-weight: 700; letter-spacing: -.055em; }
.press-russian h3 { font-size: 40px; line-height: 1.1; font-weight: 700; }
.press-hindi { left: calc(50% + 140px); top: 275px; z-index: 13; background-color: #ede4d1; font-family: "Devanagari Sangam MN", "Noto Serif Devanagari", serif; }
.world-press .press-hindi { width: 275px; min-height: 270px; --paper-depth: -18px; }
.press-hindi .press-name { font-size: 37px; line-height: 1.4; }
.press-hindi h3 { font-size: 28px; line-height: 1.5; }
.press-hindi .press-columns { font-size: 11px; line-height: 1.8; }
.press-thai { left: calc(50% - 565px); top: 70px; z-index: 5; background-color: #ddd9cb; font-family: "Thonburi", "Noto Serif Thai", serif; }
.world-press .press-thai { width: 240px; min-height: 260px; }
.press-thai .press-name { font-size: 27px; line-height: 1.5; }
.press-thai h3 { font-size: 25px; line-height: 1.5; }
.press-thai .press-columns { font-size: 10px; }
.press-portuguese { left: calc(50% + 420px); top: 28px; z-index: 4; background-color: #dedbd1; font-family: Georgia, serif; }
.world-press .press-portuguese { width: 330px; min-height: 275px; }
.press-portuguese .press-name { font-size: 37px; font-style: italic; }
.press-german { left: calc(50% - 430px); top: 400px; z-index: 14; background-color: #e1d4bb; font-family: Georgia, serif; }
.world-press .press-german { width: 310px; min-height: 220px; --paper-depth: -24px; }
.press-german .press-name { font: 500 22px/1.3 var(--sans); letter-spacing: .12em; }
.press-german h3 { font: 650 46px/1.05 var(--sans); letter-spacing: -.06em; }
.press-hebrew { left: calc(50% - 790px); top: 390px; z-index: 9; background-color: #eeece3; font-family: "Times New Roman", "Noto Serif Hebrew", serif; }
.world-press .press-hebrew { width: 225px; min-height: 285px; }
.press-hebrew .press-name { font-size: 34px; }
.press-hebrew h3 { font-size: 28px; line-height: 1.4; }
.press-hebrew .press-columns { font-size: 11px; }
.press-bengali { left: calc(50% - 40px); top: 415px; z-index: 15; background-color: #daddd3; font-family: "Bangla Sangam MN", "Noto Serif Bengali", serif; }
.world-press .press-bengali { width: 230px; min-height: 250px; }
.press-bengali .press-name { font-size: 30px; line-height: 1.4; }
.press-bengali h3 { font-size: 26px; line-height: 1.5; }
.press-bengali .press-columns { font-size: 11px; }
.press-caption { position: relative; z-index: 20; margin-top: 22px; font-size: 11px; text-align: center; }
@media (max-width: 760px) {
  .press-copy .journey-title { font-size: clamp(27px, 7.4vw, 34px); }
  .press-copy .title-unit:first-child { margin-bottom: 12px; font-size: 15px; }
  .reading-journey:lang(en) .press-copy .journey-title { font-size: clamp(25px, 6.8vw, 34px); }
  .world-press { height: 500px; margin-top: 28px; }
  .world-press .press-sheet { padding: 14px; --paper-depth: 10px; }
  .world-press .press-english { left: calc(50% - 290px); top: 4px; width: 220px; }
  .world-press .press-russian { left: calc(50% - 95px); top: -30px; width: 230px; }
  .world-press .press-portuguese { left: calc(50% + 150px); top: 10px; width: 210px; }
  .world-press .press-chinese { left: calc(50% - 240px); top: 130px; width: 150px; }
  .world-press .press-japanese { left: calc(50% + 80px); top: 100px; width: 160px; }
  .world-press .press-french { left: calc(50% - 55px); top: 110px; width: 195px; }
  .world-press .press-arabic { left: calc(50% - 120px); top: 265px; width: 220px; }
  .world-press .press-spanish { left: calc(50% + 110px); top: 325px; width: 180px; }
  .world-press .press-hindi { left: calc(50% - 280px); top: 350px; width: 195px; }
  .world-press .press-german { left: calc(50% - 40px); top: 420px; width: 210px; }
  .world-press .press-korean { left: calc(50% + 210px); top: 225px; width: 165px; }
  .world-press .press-thai { left: calc(50% - 290px); top: -40px; width: 170px; }
  .world-press .press-hebrew { left: calc(50% + 145px); top: -50px; width: 150px; }
  .world-press .press-bengali { left: calc(50% + 90px); top: 410px; width: 170px; }
  .press-chinese h3 { font-size: 24px; }
  .press-hindi .press-name { font-size: 30px; }
  .press-hindi h3 { font-size: 24px; }
  .press-russian .press-name { font-size: 25px; }
  .press-russian h3 { font-size: 28px; }
  .press-german .press-name { font-size: 17px; }
  .press-german h3 { font-size: 28px; }
}

/* A quiet, full-width closing poster after the practical information. No extra chapter. */
.journey-get {
  --journey-ink: #1d302a;
  --journey-muted: #626a60;
  --journey-warm: #3e5b4a;
  background: #eeece3;
  color: var(--journey-ink);
  padding-block: 86px 64px;
  overflow: hidden;
}
.closing-inner { min-height: 630px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.closing-heading { margin: 0; text-align: center; font: 500 clamp(30px, 3.4vw, 46px)/1.3 var(--sans); letter-spacing: -.035em; }
.reading-journey:lang(en) .closing-heading { letter-spacing: 0em; line-height: 1.35; font-kerning: normal; }
.closing-wordmark { width: 100%; margin-block: 22px 24px; text-align: center; font: 600 clamp(98px, calc((100vw - 2 * var(--gutter)) / 2.79), 416px)/1 Arial, Helvetica, sans-serif; letter-spacing: -.055em; color: #20342d; user-select: none; }
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .closing-wordmark { background: #20342d url('/img/hero-city.jpg') center 62% / cover; background-clip: text; -webkit-background-clip: text; color: transparent; }
}
.closing-actions { width: min(540px, 100%); text-align: center; }
.journey-get .store { min-height: 76px; background: #20342d; border-color: #20342d; color: #f7f1e3; padding-inline: 24px; justify-content: center; }
.journey-get .store:hover { background: #344c3f; border-color: #344c3f; transform: none; }
.closing-help { margin-top: 20px; font-size: 13px; line-height: 1.8; color: var(--journey-muted); }
.journey-get .journey-note { max-width: 600px; margin: 24px auto 0; text-align: center; font-size: 12px; line-height: 1.9; color: #596258; }
@media (max-width: 760px) {
  .journey-get { padding-block: 64px 50px; }
  .closing-inner { min-height: 560px; }
  .closing-heading { font-size: clamp(28px, 8vw, 36px); line-height: 1.35; }
  .closing-heading .title-unit { display: block; }
  .closing-heading .title-unit:first-child { font-size: 17px; margin-bottom: 13px; }
  .closing-heading wbr { display: none; }
  .reading-journey:lang(en) .closing-heading { font-size: clamp(26px, 7vw, 34px); }
  .closing-wordmark { margin-block: 40px 42px; }
  .journey-get .store { min-height: 72px; padding: 14px; gap: 12px; }
  .journey-get .store b { font-size: 18px; }
  .journey-get .store small { font-size: 10px; }
  .closing-help { margin-top: 18px; font-size: 12px; }
  .journey-get .journey-note { font-size: 11px; margin-top: 25px; }
}
@media (max-width: 370px) {
  .journey-get .store { padding-inline: 10px; gap: 9px; }
  .journey-get .store b { font-size: 16px; }
}

/* 2026-11-07：一覧の画面を4枚に（記事に聞く）と、iPad・Duo の見開きの節 */
.reader-gallery.has-four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.reader-gallery.has-four .reader-panel:nth-child(2) { margin-top: 52px; }
.reader-gallery.has-four .reader-panel:nth-child(3) { margin-top: 104px; }
.reader-gallery.has-four .reader-panel:nth-child(4) { margin-top: 156px; }
.wide-chapter { border-top: 1px solid var(--journey-line); }
.wide-chapter .journey-heading { display: block; }
.wide-chapter .journey-copy { margin-top: 26px; max-width: 560px; }
.wide-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px; margin-top: 55px; align-items: start; }
.wide-gallery .wide-panel:nth-child(2) { margin-top: 72px; }
.wide-panel { margin: 0; }
.wide-image { position: relative; display: block; border: 6px solid #05090d; border-radius: 24px; overflow: hidden; box-shadow: 0 26px 64px #0006, 0 0 0 1px #a6b1bd50; }
.wide-image img { display: block; width: 100%; height: auto; }
.wide-panel figcaption { margin-top: 18px; color: var(--journey-muted); font-size: 12px; line-height: 1.9; text-wrap: pretty; }
.wide-panel figcaption b { color: var(--journey-ink); font-weight: 500; }
.wide-chapter .journey-note { margin-top: 35px; border-top: 1px solid var(--journey-line); padding-top: 19px; }
@media (max-width: 1100px) and (min-width: 761px) {
  .reader-gallery.has-four { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 30px; }
  .reader-gallery.has-four .reader-panel:nth-child(3) { margin-top: 0; }
  .reader-gallery.has-four .reader-panel:nth-child(4) { margin-top: 52px; }
  .wide-gallery { gap: 30px; }
}
@media (max-width: 760px) {
  .reader-gallery.has-four { grid-template-columns: 1fr; gap: 48px; }
  .reader-gallery.has-four .reader-panel:nth-child(n) { margin-top: 0; }
  .wide-gallery { grid-template-columns: 1fr; gap: 34px; margin-top: 33px; }
  .wide-gallery .wide-panel:nth-child(2) { margin-top: 0; }
  .wide-image { border-width: 4px; border-radius: 16px; }
}
.wide-gallery.device-pair { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 56px; align-items: end; }
.wide-gallery.device-pair .wide-panel:nth-child(2) { margin-top: 0; }
.wide-panel.is-phone .reader-image { width: 100%; }
@media (max-width: 1100px) and (min-width: 761px) { .wide-gallery.device-pair { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 32px; } }
@media (max-width: 760px) { .wide-gallery.device-pair { grid-template-columns: 1fr; gap: 40px; } .wide-panel.is-phone .reader-image { width: min(260px, 80%); } .wide-panel.is-phone figcaption { text-align: center; } }
