/* V03-J Articles: the Journal as an editorial magazine section (owner live review, 9 Nov 2026). Served as /r049/articles.css and
   linked by tools/publishing/visibility/articles_v03.mjs on /journal/ pages only, after journal.css (inline), /r042/* and
   /r049/layout.css. Every rule is scoped to main.psg-j-v3 (the transform's marker), so nothing else on the site changes.
   Tokens are the Journal's own (journal.css): ink #fcfcfc, reading #d5cebf, text #a7a7a7, mute #7d776d, bronze #c4a57a, hairline
   #2f2f2f; Syne for display, Inter for reading. No new animation: hover answers the pointer, the R026 scroll reveal is kept. */

/* ---- shared --------------------------------------------------------------------------------------------------------------------- */
.psg-j-v3{--j-mute:#8a8378}
.psg-j-v3 .psg-j-kicker{flex-wrap:nowrap;gap:0;min-width:0;margin:0 0 8px;font:500 13px/20px Inter,sans-serif;letter-spacing:.01em;text-transform:none;color:var(--j-mute)}
.psg-j-v3 .psg-j-kicker span{white-space:nowrap}
.psg-j-v3 .psg-j-kicker span:first-child{overflow:hidden;text-overflow:ellipsis;color:var(--j-bronze-2)}
.psg-j-v3 .psg-j-kicker span+span::before{inline-size:3px;block-size:3px;margin:0 10px 3px;opacity:.7}
.psg-j-v3 .psg-j-cover{border-radius:14px}
.psg-j-v3 .psg-j-stretch::after{border-radius:14px}
.psg-j-v3 .psg-j-card h3,.psg-j-v3 .psg-j-ritem h3{text-wrap:balance}
.psg-j-v3 .psg-j-card h3 a,.psg-j-v3 .psg-j-ritem h3 a{color:inherit;text-decoration:none}
/* one card language everywhere: 16:9 cover, kicker, title (max 3 lines), snippet (max 3 lines) */
.psg-j-v3 .psg-j-card{min-width:0}
.psg-j-v3 .psg-j-card .psg-j-cover{margin-bottom:20px}
.psg-j-v3 .psg-j-card h3{margin:0 0 8px;font:500 23px/1.25 Syne,Inter,sans-serif;letter-spacing:-.005em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.psg-j-v3 .psg-j-card .psg-j-snap{margin:0;font-size:15.5px;line-height:25px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.psg-j-v3 .psg-j-card:hover h3,.psg-j-v3 .psg-j-ritem:hover h3{color:#f3e6d2}

/* ---- index: masthead ------------------------------------------------------------------------------------------------------------ */
.psg-j-v3-index .psg-j-mast{grid-template-columns:minmax(0,1fr) minmax(0,380px);margin:0 0 56px}
.psg-j-v3-index .psg-j-h1{font-size:clamp(48px,6.4vw,96px);line-height:.98;letter-spacing:-.03em}
.psg-j-v3-index .psg-j-stand{max-width:38ch;color:var(--j-read);font-size:17px;line-height:27px;font-weight:400}

/* ---- index: featured story (the one large moment) ---------------------------------------------------------------------------------- */
.psg-j-v3-index .psg-j-feature{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:end;margin:0 0 104px}
.psg-j-v3-index .psg-j-feature .psg-j-cover{border-radius:18px;outline:1px solid rgba(196,165,122,.26);outline-offset:9px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 44px 90px -46px rgba(0,0,0,.95)}
/* K1: the featured cover sits in the dark page: a bronze hairline frame, a soft shade and a calmer colour that warms on hover */
.psg-j-v3-index .psg-j-feature .psg-j-cover img{filter:saturate(.8) brightness(.9)}
.psg-j-v3-index .psg-j-feature:hover .psg-j-cover img,.psg-j-v3-index .psg-j-feature:focus-within .psg-j-cover img{filter:saturate(.92) brightness(.97)}
.psg-j-v3-index .psg-j-feature .psg-j-cover picture::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(14,12,10,.06) 0%,rgba(14,12,10,0) 40%,rgba(14,12,10,.34) 100%),radial-gradient(120% 90% at 50% 40%,rgba(14,12,10,0) 60%,rgba(14,12,10,.28) 100%)}
.psg-j-v3-index .psg-j-feature .psg-j-stretch::after{border-radius:18px}
.psg-j-v3-index .psg-j-feature-text{padding-bottom:6px}
.psg-j-v3-index .psg-j-feature .psg-j-kicker{flex-wrap:wrap;row-gap:4px;margin-bottom:18px}
.psg-j-v3-index .psg-j-feature .psg-j-kicker span:first-child{color:var(--j-ink)}
.psg-j-v3-index .psg-j-feature .psg-j-kicker span:nth-child(2){color:var(--j-bronze-2)}
.psg-j-v3-index .psg-j-feature h2{margin:0 0 20px;font:500 clamp(34px,3vw,46px)/1.08 Syne,Inter,sans-serif;letter-spacing:-.018em;text-wrap:balance}
.psg-j-v3-index .psg-j-feature h2 a{color:inherit;text-decoration:none}
.psg-j-v3-index .psg-j-feature .psg-j-snap{margin:0;color:var(--j-read);font-size:17px;line-height:27px}
.psg-j-v3-index .psg-j-more{margin-top:28px;padding:11px 20px;border:1px solid rgba(196,165,122,.5);border-radius:999px;font-size:15px;line-height:20px;transition:background-color .3s,border-color .3s}
.psg-j-v3-index .psg-j-feature:hover .psg-j-more{background:rgba(196,165,122,.12);border-color:var(--j-bronze-2)}
/* K8 (owner, 10 Nov 2026: "Read the article is not clickable"): the reveal keeps its fade but no transform (a transform made each
   child the containing block of the title's stretched link, so the card-wide overlay stopped at the title); "Read the article"
   is a real link (articles_v03 featuredCta) above the overlay */
.psg-j-v3-index .psg-j-feature-text>*{animation-name:psg-j3-fade}
@keyframes psg-j3-fade{from{opacity:0}to{opacity:1}}
.psg-j-v3-index .psg-j-feature .psg-j-more{position:relative;z-index:4;color:var(--j-ink);text-decoration:none;cursor:pointer}

/* ---- index: browse block (filter on the rule, then the grid) ---------------------------------------------------------------------- */
.psg-j-v3-index .psg-j-browse{border-top:1px solid var(--j-line);padding-top:20px}
.psg-j-v3-index .psg-j-browse:empty{display:none}
.psg-j-v3-index .psg-j-browse>.psg-j-filter{justify-content:flex-end;margin:0 0 4px}
.psg-j-v3-index .psg-j-browse>.psg-j-filter>.psg-j-ftags{order:-1}
.psg-j-v3-index .psg-j-fbtn{min-height:42px;margin:0;padding:0 18px;border-color:rgba(255,255,255,.16);color:var(--j-read);font-size:14px}
.psg-j-v3-index .psg-j-fbtn:hover{border-color:rgba(196,165,122,.6)}
.psg-j-v3-index .psg-j-browse .psg-j-fpanel{inset-inline-start:auto;inset-inline-end:0}
.psg-j-v3-index .psg-j-browse>.psg-j-sec{margin:0}
.psg-j-v3-index .psg-j-browse .psg-j-sechead{margin:0 0 36px;padding-top:0;border-top:0}
.psg-j-v3-index .psg-j-browse>.psg-j-filter{position:relative;z-index:4;padding-inline-start:min(360px,40%);pointer-events:none}
.psg-j-v3-index .psg-j-browse>.psg-j-filter>*{pointer-events:auto}
.psg-j-v3-index .psg-j-browse>.psg-j-filter:not([hidden])~.psg-j-sec .psg-j-sechead{margin-top:-46px;min-height:42px;align-items:center;padding-inline-end:190px}
.psg-j-v3-index .psg-j-sechead h2{font:500 30px/38px Syne,Inter,sans-serif;letter-spacing:-.01em}
.psg-j-v3-index .psg-j-fempty{margin:24px 0 32px}

/* ---- index: grid of equal cards (rows share title and snippet lines through subgrid) ---------------------------------------------- */
.psg-j-v3-index .psg-j-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:72px 40px}
/* the parent grid has no row gap (it would open inside each card's subgrid tracks); rows are separated by the cards' margin */
@supports (grid-template-rows:subgrid){
  .psg-j-v3 .psg-j-grid{--j-rowgap:72px;row-gap:0!important}
  .psg-j-v3 .psg-j-grid>.psg-j-card{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;align-content:start;margin-bottom:var(--j-rowgap)}
  .psg-j-v3 .psg-j-grid>.psg-j-card>*{align-self:start}
  .psg-j-v3 .psg-j-grid{margin-bottom:calc(-1 * var(--j-rowgap))!important}
  .psg-j-v3-article .psg-j-coda .psg-j-grid{--j-rowgap:48px}
}

/* the R026 measure (33em) resolves on :root at 16 px while the body is set at 18 px (= 52 characters per line): ~64 here */
.psg-j-v3-article{--j-measure:37.5rem}
/* ---- article: head -------------------------------------------------------------------------------------------------------------- */
.psg-j-v3-article .psg-j-head{margin-bottom:44px}
.psg-j-v3-article .psg-j-head h1{font-size:clamp(36px,4.2vw,60px);line-height:1.06;letter-spacing:-.02em}
.psg-j-v3-article .psg-j-dek{color:var(--j-read);font-size:20px;line-height:31px}
.psg-j-v3-article .psg-j-byline{align-items:center;gap:4px 0;padding-top:18px;color:var(--j-mute);font-size:14px;line-height:22px}
.psg-j-v3-article .psg-j-byline span+span::before{content:"";display:inline-block;inline-size:3px;block-size:3px;margin:0 12px 3px;border-radius:50%;background:currentColor;opacity:.7;vertical-align:middle}
.psg-j-v3-article .psg-j-byline b{font-weight:500}
.psg-j-v3-article .psg-j-byline b a{color:var(--j-ink);text-decoration:none}
.psg-j-v3-article .psg-j-byline b a:hover{color:var(--j-bronze-2)}
.psg-j-v3-article .psg-j-hero{margin-bottom:64px}
.psg-j-v3-article .psg-j-hero .psg-j-cover{border-radius:18px}
.psg-j-v3-article .psg-j-hero figcaption{font-style:normal;color:var(--j-mute)}

/* ---- article: reading column ---------------------------------------------------------------------------------------------------- */
.psg-j-v3-article .psg-j-body{font-size:18px;line-height:1.75}
.psg-j-v3-article .psg-j-body>p:first-of-type{color:var(--j-ink);font-size:21px;line-height:1.6}
.psg-j-v3-article .psg-j-body h2:not(.psg-vh){margin:2.2em 0 .75em;font:500 30px/1.22 Syne,Inter,sans-serif;letter-spacing:-.012em;text-wrap:balance;scroll-margin-top:120px}
.psg-j-v3-article .psg-j-body h3{scroll-margin-top:120px;text-wrap:balance}
/* articles whose sections are h3 (the archive set): the same section heading as the h2 articles, one step smaller */
.psg-j-v3-article .psg-j-body:not(:has(>h2:not(.psg-vh)))>h3{position:relative;margin:2.1em 0 .7em;padding-top:26px;font:500 27px/1.24 Syne,Inter,sans-serif;letter-spacing:-.01em;color:var(--j-ink)}
.psg-j-v3-article .psg-j-body:not(:has(>h2:not(.psg-vh)))>h3::before{content:"";position:absolute;top:0;inset-inline-start:0;inline-size:64px;block-size:1px;background:linear-gradient(90deg,var(--j-bronze-2),rgba(196,165,122,0))}
.psg-j-v3-article .psg-j-body>p:last-child{margin-bottom:0}
/* K1: natural rag in the reading column. journal.css sets text-wrap:pretty on every paragraph; on long paragraphs Chrome then
   re-flows the last lines and breaks early before short words ("a / carefully selected"). Headings keep balance. */
.psg-j-v3-article .psg-j-body>p,.psg-j-v3-article .psg-j-dek{text-wrap:wrap}
.psg-j-v3-article .psg-j-body>p{margin-bottom:1.3em}
.psg-j-v3-article .psg-j-body>p:first-of-type{margin-bottom:1.15em}
/* a quotation the text already has (none is invented): set apart, bronze rule */
.psg-j-v3-article .psg-j-body blockquote{margin:2em 0;padding:4px 0 4px 24px;border-inline-start:2px solid var(--j-bronze-2);color:var(--j-ink);font:italic 400 1.15em/1.6 Inter,sans-serif}

/* ---- article: contents (desktop rail; phones and tablets: a closed disclosure above the text) ----------------------------------- */
.psg-j-v3-article .psg-j-aside{top:var(--j-rail-top,168px);gap:32px}
.psg-j-v3-article .psg-j-aside>.psg-j-toc{order:0}.psg-j-v3-article .psg-j-aside>.psg-j-read{order:1}.psg-j-v3-article .psg-j-aside>div:not(.psg-j-read){order:2}
/* reading progress in the rail: a quiet hairline that fills with the article (scroll-driven; absent where unsupported) */
.psg-j-v3-article .psg-j-read{display:none}
@supports (animation-timeline:view()) and (timeline-scope:--j-read){
  .psg-j-v3-article .psg-j-layout{timeline-scope:--j-read,--j-s1,--j-s2,--j-s3,--j-s4,--j-s5,--j-s6,--j-s7,--j-s8,--j-s9,--j-s10,--j-s11,--j-s12,--j-s13}
  .psg-j-v3-article .psg-j-body{view-timeline:--j-read block}
  .psg-j-v3-article .psg-j-read{display:block;position:relative;inline-size:100%;max-inline-size:220px;block-size:1px;background:var(--j-line)}
  .psg-j-v3-article .psg-j-read span{position:absolute;inset:-.5px 0;background:linear-gradient(90deg,var(--j-bronze),var(--j-bronze-2));transform-origin:0 50%;transform:scaleX(0);animation:psg-j-v3-read linear both;animation-timeline:--j-read;animation-range:contain 0% contain 100%}
  .psg-j-v3-article .psg-j-read span:dir(rtl){transform-origin:100% 50%}
  /* contents: the section being read, from the scroll position itself (journal.js's observer missed jumps and link clicks) */
  .psg-j-v3-article .psg-j-body [data-j-s]{view-timeline-axis:block;view-timeline-inset:0% 72%}
  .psg-j-v3-article .psg-j-body [data-j-s="1"]{view-timeline-name:--j-s1}.psg-j-v3-article .psg-j-body [data-j-s="2"]{view-timeline-name:--j-s2}.psg-j-v3-article .psg-j-body [data-j-s="3"]{view-timeline-name:--j-s3}.psg-j-v3-article .psg-j-body [data-j-s="4"]{view-timeline-name:--j-s4}
  .psg-j-v3-article .psg-j-body [data-j-s="5"]{view-timeline-name:--j-s5}.psg-j-v3-article .psg-j-body [data-j-s="6"]{view-timeline-name:--j-s6}.psg-j-v3-article .psg-j-body [data-j-s="7"]{view-timeline-name:--j-s7}.psg-j-v3-article .psg-j-body [data-j-s="8"]{view-timeline-name:--j-s8}
  .psg-j-v3-article .psg-j-body [data-j-s="9"]{view-timeline-name:--j-s9}.psg-j-v3-article .psg-j-body [data-j-s="10"]{view-timeline-name:--j-s10}.psg-j-v3-article .psg-j-body [data-j-s="11"]{view-timeline-name:--j-s11}.psg-j-v3-article .psg-j-body [data-j-s="12"]{view-timeline-name:--j-s12}
  .psg-j-v3-article .psg-j-toc a[data-j-s]{--j-act:calc(var(--j-on) - var(--j-off));animation-name:psg-j-v3-on,psg-j-v3-off;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-range:entry 0% entry 100%;
    color:color-mix(in srgb,var(--j-ink) calc(var(--j-act) * 100%),var(--j-text));border-inline-start-color:color-mix(in srgb,var(--j-bronze-2) calc(var(--j-act) * 100%),transparent);transition:none}
  .psg-j-v3-article .psg-j-toc a[data-j-s]:hover{color:var(--j-ink)}
  .psg-j-v3-article .psg-j-toc a[data-j-s="1"]{animation-timeline:--j-s1,--j-s2}.psg-j-v3-article .psg-j-toc a[data-j-s="2"]{animation-timeline:--j-s2,--j-s3}.psg-j-v3-article .psg-j-toc a[data-j-s="3"]{animation-timeline:--j-s3,--j-s4}
  .psg-j-v3-article .psg-j-toc a[data-j-s="4"]{animation-timeline:--j-s4,--j-s5}.psg-j-v3-article .psg-j-toc a[data-j-s="5"]{animation-timeline:--j-s5,--j-s6}.psg-j-v3-article .psg-j-toc a[data-j-s="6"]{animation-timeline:--j-s6,--j-s7}
  .psg-j-v3-article .psg-j-toc a[data-j-s="7"]{animation-timeline:--j-s7,--j-s8}.psg-j-v3-article .psg-j-toc a[data-j-s="8"]{animation-timeline:--j-s8,--j-s9}.psg-j-v3-article .psg-j-toc a[data-j-s="9"]{animation-timeline:--j-s9,--j-s10}
  .psg-j-v3-article .psg-j-toc a[data-j-s="10"]{animation-timeline:--j-s10,--j-s11}.psg-j-v3-article .psg-j-toc a[data-j-s="11"]{animation-timeline:--j-s11,--j-s12}.psg-j-v3-article .psg-j-toc a[data-j-s="12"]{animation-timeline:--j-s12,--j-s13}
}
@property --j-on{syntax:"<number>";inherits:false;initial-value:0}
@property --j-off{syntax:"<number>";inherits:false;initial-value:0}
@keyframes psg-j-v3-on{from{--j-on:0}to{--j-on:1}}
@keyframes psg-j-v3-off{from{--j-off:0}to{--j-off:1}}
@keyframes psg-j-v3-read{to{transform:scaleX(1)}}
.psg-j-v3-article .psg-j-aside h2{color:var(--j-mute);font:500 12px/16px Inter,sans-serif;letter-spacing:.08em}
.psg-j-v3-article .psg-j-toc a{padding:7px 0 7px 16px;font-size:14px;line-height:20px;text-wrap:pretty}
.psg-j-v3-article .psg-j-mtoc{display:none}
@media (max-width:1024px){
  .psg-j-v3-article .psg-j-mtoc{display:block;margin:-24px 0 40px;border-block:1px solid var(--j-line)}
  .psg-j-v3-article .psg-j-mtoc summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;color:var(--j-ink);font:500 15px/1 Inter,sans-serif;cursor:pointer;list-style:none}
  .psg-j-v3-article .psg-j-mtoc summary::-webkit-details-marker{display:none}
  .psg-j-v3-article .psg-j-mtoc summary::after{content:"";inline-size:9px;block-size:9px;margin-inline-end:4px;border-inline-end:1.5px solid var(--j-bronze-2);border-block-end:1.5px solid var(--j-bronze-2);transform:translateY(-3px) rotate(45deg);transition:transform .25s}
  .psg-j-v3-article .psg-j-mtoc[open] summary::after{transform:translateY(2px) rotate(-135deg)}
  .psg-j-v3-article .psg-j-mtoc ol{margin:0;padding:0 0 14px;list-style:none;counter-reset:mt}
  .psg-j-v3-article .psg-j-mtoc li a{display:flex;gap:14px;padding:9px 0;color:var(--j-read);font-size:15.5px;line-height:23px;text-decoration:none}
  .psg-j-v3-article .psg-j-mtoc li a::before{counter-increment:mt;content:counter(mt);flex:none;inline-size:18px;color:var(--j-bronze-2);font-variant-numeric:tabular-nums}
  /* the share tools follow the article instead of standing between the cover and the first paragraph */
  .psg-j-v3-article .psg-j-aside{order:0;margin:40px 0 0}
  .psg-j-v3-article .psg-j-aside>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}
  .psg-j-v3-article .psg-j-aside>div>h2{margin:0}
}

/* ---- article: one end block ------------------------------------------------------------------------------------------------------ */
.psg-j-v3-article .psg-j-coda{margin-top:104px;padding-top:56px;border-top:1px solid var(--j-line);display:flex;flex-direction:column;gap:72px}
.psg-j-v3-article .psg-j-coda .psg-j-sec{margin:0}
.psg-j-v3-article .psg-j-coda .psg-j-sechead{margin:0 0 28px;padding-top:0;border-top:0}
.psg-j-v3-article .psg-j-coda .psg-j-sechead h2{font:500 28px/36px Syne,Inter,sans-serif;letter-spacing:-.01em}
/* previous / next */
.psg-j-v3-article .psg-j-pn:not(:has(li)){display:none}
.psg-j-v3-article .psg-j-pn ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;margin:0;padding:0;list-style:none}
.psg-j-v3-article .psg-j-pn .psg-j-card{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:24px;align-items:start}
.psg-j-v3-article .psg-j-pn .psg-j-card[data-pn="next"]{grid-column:2}
.psg-j-v3-article .psg-j-pn .psg-j-card:only-child{grid-column:1}
.psg-j-v3-article .psg-j-pn .psg-j-cover{grid-row:1/3;margin:0;border-radius:10px}
.psg-j-v3-article .psg-j-pn .psg-j-stretch::after{border-radius:10px}
.psg-j-v3-article .psg-j-pn .psg-j-kicker{margin:4px 0 8px}
.psg-j-v3-article .psg-j-pn .psg-j-kicker span:first-child{color:var(--j-ink)}
.psg-j-v3-article .psg-j-pn .psg-j-kicker span:nth-child(2){overflow:hidden;text-overflow:ellipsis;color:var(--j-bronze-2)}
.psg-j-v3-article .psg-j-pn h3{margin:0;font-size:20px;line-height:1.3}
/* related articles (topic list from V02) and "More articles" (future pages): small equal cards */
.psg-j-v3-article .psg-j-coda .psg-j-grid,.psg-j-v3-article .psg-j-rlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px;margin:0;padding:0;list-style:none}
.psg-j-v3-article .psg-j-coda .psg-j-grid .psg-j-card h3{font-size:20px;line-height:1.3}
.psg-j-v3-article .psg-j-coda .psg-j-grid .psg-j-snap{font-size:15px;line-height:24px}
.psg-j-v3-article .psg-j-rlist li{position:relative;display:flex;flex-direction:column;padding:0;border:0}
.psg-j-v3-article .psg-j-rlist .psg-j-cover{margin:0 0 18px;border-radius:10px}
.psg-j-v3-article .psg-j-rlist .psg-j-stretch::after{border-radius:10px}
.psg-j-v3-article .psg-j-rlist h3{margin:0 0 8px;color:var(--j-ink);font:500 20px/1.3 Syne,Inter,sans-serif;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.psg-j-v3-article .psg-j-rlist h3 a{color:inherit;text-decoration:none}
.psg-j-v3-article .psg-j-rlist p{margin:0 0 10px;color:var(--j-text);font-size:15px;line-height:24px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.psg-j-v3-article .psg-j-rlist small{margin-top:auto;color:var(--j-mute);font-size:13px}
.psg-j-v3-article .psg-j-coda .psg-j-tool{padding:9px 16px;font-size:13.5px}
/* publisher + related at PSG: one quiet colophon, no boxes */
.psg-j-v3-article .psg-j-colophon{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;padding-top:36px;border-top:1px solid var(--j-line)}
.psg-j-v3-article .psg-j-colophon .psg-j-about{max-width:46rem}
.psg-j-v3-article .psg-j-colophon .psg-j-about{margin:0;padding:0;border:0;border-radius:0}
.psg-j-v3-article .psg-j-colophon h2{margin:0 0 12px;color:var(--j-mute);font:500 12.5px/18px Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.psg-j-v3-article .psg-j-colophon .psg-j-about p{margin:0 0 12px;color:var(--j-read);font-size:15.5px;line-height:1.65}
.psg-j-v3-article .psg-j-colophon .psg-j-about p:last-child{margin:0;color:var(--j-mute);font-size:14px}
.psg-j-v3-article .psg-j-colophon .psg-j-about a{color:var(--j-ink);text-decoration:none;border-bottom:1px solid rgba(196,165,122,.45);transition:border-color .3s,color .3s}
.psg-j-v3-article .psg-j-colophon .psg-j-about p:last-child a{color:var(--j-read);border-bottom-color:transparent}
.psg-j-v3-article .psg-j-colophon .psg-j-about a:hover{color:var(--j-ink);border-bottom-color:var(--j-bronze-2)}
.psg-j-v3-article .psg-j-colophon .psg-j-end{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:0;padding:0;border:0;animation:none}
.psg-j-v3-article .psg-j-colophon .psg-j-end h2{margin:0;font:500 12.5px/18px Inter,sans-serif}
.psg-j-v3-article .psg-j-colophon .psg-j-stones{display:flex;flex-wrap:wrap;gap:2px 0;margin:0;padding:0;list-style:none}
.psg-j-v3-article .psg-j-colophon .psg-j-stones li{flex:none;margin:0;padding:0;animation:none}
.psg-j-v3-article .psg-j-colophon .psg-j-stones li+li::before{content:"·";margin:0 10px;color:var(--j-mute)}
.psg-j-v3-article .psg-j-colophon .psg-j-stones a{display:inline;padding:0;border:0;border-bottom:1px solid rgba(196,165,122,.35);border-radius:0;background:none;color:var(--j-read);font:400 15px/24px Inter,sans-serif;text-decoration:none;transition:color .3s,border-color .3s}
.psg-j-v3-article .psg-j-colophon .psg-j-stones a:hover{color:var(--j-ink);border-bottom-color:var(--j-bronze-2);transform:none}

/* ---- responsive ------------------------------------------------------------------------------------------------------------------ */
@media (min-width:1600px){.psg-j-v3-index .psg-j-grid{gap:80px 48px;--j-rowgap:80px}}
@media (max-width:1180px){.psg-j-v3-index .psg-j-feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}}
@media (max-width:1024px){
  .psg-j-v3-index .psg-j-mast{grid-template-columns:1fr}
  .psg-j-v3-index .psg-j-feature{grid-template-columns:1fr;gap:28px;margin-bottom:80px}
  .psg-j-v3-index .psg-j-grid,.psg-j-v3-article .psg-j-coda .psg-j-grid,.psg-j-v3-article .psg-j-rlist{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 28px;--j-rowgap:56px}
  .psg-j-v3-article .psg-j-pn ul{grid-template-columns:1fr}
  .psg-j-v3-article .psg-j-pn .psg-j-card[data-pn="next"]{grid-column:auto}
}
@media (max-width:767px){
  .psg-j-v3-index .psg-j-mast{margin-bottom:40px}
  .psg-j-v3-index .psg-j-h1{font-size:48px;line-height:1}
  .psg-j-v3-index .psg-j-stand{font-size:16px;line-height:25px}
  .psg-j-v3-index .psg-j-feature{gap:22px;margin-bottom:64px}
  .psg-j-v3-index .psg-j-feature .psg-j-cover{outline-offset:6px}
  .psg-j-v3-index .psg-j-feature h2{font-size:30px;line-height:1.12}
  .psg-j-v3-index .psg-j-feature .psg-j-snap{font-size:16px;line-height:25px}
  .psg-j-v3-index .psg-j-more{margin-top:22px}
  .psg-j-v3-index .psg-j-browse>.psg-j-filter{padding-inline-start:0}
  .psg-j-v3-index .psg-j-browse>.psg-j-filter:not([hidden])~.psg-j-sec .psg-j-sechead{padding-inline-end:150px}
  .psg-j-v3-index .psg-j-browse>.psg-j-filter:has(.psg-j-ftag)~.psg-j-sec .psg-j-sechead{margin-top:16px;padding-inline-end:0}
  .psg-j-v3-index .psg-j-fbtn{padding:0 14px}
  .psg-j-v3-index .psg-j-sechead h2{font-size:26px;line-height:32px}
  .psg-j-v3-index .psg-j-grid,.psg-j-v3-article .psg-j-coda .psg-j-grid{grid-template-columns:1fr;gap:52px;--j-rowgap:52px}
  .psg-j-v3 .psg-j-card .psg-j-cover{margin-bottom:16px}
  .psg-j-v3 .psg-j-card h3{font-size:21px;line-height:1.28}
  .psg-j-v3 .psg-j-card .psg-j-snap{font-size:15px;line-height:24px}
  .psg-j-v3-article .psg-j-head h1{font-size:34px;line-height:1.1}
  .psg-j-v3-article .psg-j-dek{font-size:18px;line-height:28px}
  .psg-j-v3-article .psg-j-byline span:first-child{flex-basis:100%;margin-bottom:2px}
  .psg-j-v3-article .psg-j-byline span:nth-child(2)::before{display:none}
  .psg-j-v3-article .psg-j-pn .psg-j-kicker span:nth-child(2){display:none}
  .psg-j-v3-article .psg-j-hero{margin-bottom:44px}
  .psg-j-v3-article .psg-j-hero .psg-j-cover{border-radius:0}
  .psg-j-v3-article .psg-j-body{font-size:17px;line-height:1.72}
  .psg-j-v3-article .psg-j-body>p:first-of-type{font-size:19px;line-height:1.58}
  .psg-j-v3-article .psg-j-body h2:not(.psg-vh){font-size:25px}
  .psg-j-v3-article .psg-j-body:not(:has(>h2:not(.psg-vh)))>h3{font-size:23px}
  .psg-j-v3-article .psg-j-coda{margin-top:72px;padding-top:40px;gap:56px}
  .psg-j-v3-article .psg-j-coda .psg-j-sechead h2{font-size:24px;line-height:30px}
  .psg-j-v3-article .psg-j-pn .psg-j-card{grid-template-columns:120px minmax(0,1fr);column-gap:16px}
  .psg-j-v3-article .psg-j-pn h3{font-size:17.5px;line-height:1.3;-webkit-line-clamp:3}
  /* related list on phones: thumbnail beside the title, a compact list instead of tall cards */
  .psg-j-v3-article .psg-j-rlist{grid-template-columns:1fr;gap:24px}
  .psg-j-v3-article .psg-j-rlist li{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:16px;align-items:start}
  .psg-j-v3-article .psg-j-rlist li .psg-j-cover{grid-row:1/4;margin:0}
  .psg-j-v3-article .psg-j-rlist li:not(.psg-j-ritem){display:flex}
  .psg-j-v3-article .psg-j-rlist h3{font-size:17.5px;line-height:1.3;margin-bottom:6px}
  .psg-j-v3-article .psg-j-rlist p{display:none}
  .psg-j-v3-article .psg-j-rlist small{font-size:12.5px}
  .psg-j-v3-article .psg-j-rel .psg-j-grid{gap:20px;--j-rowgap:20px}
  .psg-j-v3-article .psg-j-rel .psg-j-grid>.psg-j-card{display:grid;grid-template-columns:120px minmax(0,1fr);grid-template-rows:auto 1fr;grid-row:auto;column-gap:16px;align-items:start}
  .psg-j-v3-article .psg-j-rel .psg-j-card .psg-j-cover{grid-row:1/3;grid-column:1;margin:0;border-radius:10px}
  .psg-j-v3-article .psg-j-rel .psg-j-card .psg-j-stretch::after{border-radius:10px}
  .psg-j-v3-article .psg-j-rel .psg-j-card .psg-j-kicker{grid-column:2;margin:2px 0 6px}
  .psg-j-v3-article .psg-j-rel .psg-j-card .psg-j-kicker span+span{display:none}
  .psg-j-v3-article .psg-j-rel .psg-j-card h3{grid-column:2;margin:0;font-size:17.5px;line-height:1.3}
  .psg-j-v3-article .psg-j-rel .psg-j-card .psg-j-snap{display:none}
  /* the current page's crumb on one line (the H1 below repeats it in full) */
  .psg-j-v3-article .psg-crumbs ol{flex-wrap:nowrap}
  .psg-j-v3-article .psg-crumbs li{flex:none}
  .psg-j-v3-article .psg-crumbs li:last-child{flex:0 1 auto;min-width:0}
  .psg-j-v3-article .psg-crumbs li:last-child>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
}
@media (prefers-reduced-motion:reduce){.psg-j-v3 .psg-j-mtoc summary::after{transition:none}}
@media print{.psg-j-v3 .psg-j-coda,.psg-j-v3 .psg-j-mtoc,.psg-j-v3 .psg-j-read{display:none!important}}
