/* ==========================================================================
   REVORA — Journal page
   ========================================================================== */
html.js .nav__brand, html.js .nav__links a, html.js .nav__actions > * { opacity: 1; }

.btn--line-dark { color: var(--ink); --fill: var(--ink); }
.btn--line-dark:hover { color: var(--ivory); }

.jwrap { padding: clamp(32px, 4vw, 56px) 0 clamp(96px, 12vw, 180px); min-height: 70vh; }

/* Lead */
.jlead a { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(24px, 5vw, 88px); align-items: center; }
.jlead figure { aspect-ratio: 4/3; overflow: hidden; background: var(--grey); }
.jlead img, .jcard img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.jlead a:hover img, .jcard a:hover img { transform: scale(1.04); }
.jlead h2 { font-family: var(--f-head); font-weight: 600; font-size: clamp(30px, 4vw, 62px); letter-spacing: -.04em; line-height: 1.02; margin: 16px 0 18px; }
.jlead p:not(.label) { color: var(--ink-soft); max-width: 42ch; margin-bottom: 24px; }

/* Grid */
.jgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(40px, 5vw, 72px) clamp(16px, 2.4vw, 40px); margin-top: clamp(56px, 7vw, 112px); align-items: start; }
.jcard a { display: block; }
.jcard figure { aspect-ratio: 4/5; overflow: hidden; background: var(--grey); margin-bottom: 18px; }
.jcard:nth-child(3n+2) { margin-top: clamp(24px, 5vw, 80px); }
.jcard:nth-child(3n+2) figure { aspect-ratio: 4/3; }
.jcard:nth-child(3n) figure { aspect-ratio: 1/1; }
.jcard h3 { font-family: var(--f-head); font-weight: 600; font-size: clamp(20px, 1.8vw, 28px); letter-spacing: -.03em; line-height: 1.1; margin: 10px 0 10px; }
.jcard p:not(.label) { color: var(--ink-soft); font-size: 14.5px; margin-bottom: 16px; max-width: 38ch; }
.read i { display: inline-block; }
.jwrap .label { font-size: 10.5px; }

/* Reader */
.reader { width: 100%; height: 100%; margin: 0; background: var(--ivory); color: var(--ink); overflow-y: auto; overscroll-behavior: contain; }
.reader[open] { animation: sheetIn .6s var(--ease); }
.reader::backdrop { background: var(--ivory); }
.reader__bar { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; padding: 14px var(--gutter); background: linear-gradient(var(--ivory) 60%, rgba(244,242,237,0)); }
.reader__hero { max-width: 1280px; margin: 0 auto; padding: 0 var(--gutter); }
.reader__hero figure { aspect-ratio: 21/9; overflow: hidden; background: var(--grey); }
.reader__hero img { width: 100%; height: 100%; object-fit: cover; }
.reader__head { max-width: 860px; margin: clamp(32px, 5vw, 64px) auto 0; padding-inline: var(--gutter); }
.reader__title { font-family: var(--f-head); font-weight: 600; font-size: clamp(34px, 5.2vw, 76px); letter-spacing: -.045em; line-height: 1; margin: 18px 0 20px; }
.reader__dek { font-family: var(--f-serif); font-style: italic; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.28; color: var(--ink-soft); }
.reader__cols { max-width: 1120px; margin: clamp(32px, 5vw, 64px) auto 0; padding-inline: var(--gutter); display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(32px, 6vw, 96px); align-items: start; }
.reader__body p { font-family: var(--f-serif); font-size: clamp(20px, 1.7vw, 23px); line-height: 1.55; margin-bottom: 1.2em; }
.reader__body p.dropcap::first-letter { font-family: var(--f-head); font-weight: 600; float: left; font-size: 4.2em; line-height: .82; padding: .06em .1em 0 0; color: var(--gold); }
.reader__gallery { display: grid; gap: 14px; margin-top: 32px; }
.reader__gallery figure { overflow: hidden; background: var(--grey); }
.reader__gallery img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.reader__gallery figcaption { font-size: 12px; color: var(--ink-soft); padding: 8px 0; }
.reader__aside { position: sticky; top: 84px; }
.reader__aside h2 { font-family: var(--f-head); font-size: 10.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.reader__aside .facts { margin-bottom: 24px; }
.reader__aside .facts div { flex-direction: column; gap: 2px; }
.reader__aside .facts dd { text-align: left; }
.reader__links { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.reader__links .btn { justify-content: center; }
.reader__share { font-size: 13px; color: var(--ink-soft); border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.reader__rel { max-width: 1280px; margin: clamp(56px, 8vw, 112px) auto 0; padding: 40px var(--gutter) clamp(56px, 7vw, 96px); border-top: 1px solid var(--hair-light); }
.reader__rel h2 { font-family: var(--f-head); font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; margin-bottom: 24px; }
.reader__relgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.4vw, 40px); }
.reader__relgrid a { display: block; }
.reader__relgrid figure { aspect-ratio: 4/3; overflow: hidden; background: var(--grey); margin-bottom: 14px; }
.reader__relgrid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.reader__relgrid a:hover img { transform: scale(1.05); }
.reader__relgrid small { display: block; font-family: var(--f-head); font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-bottom: 4px; }
.reader__relgrid b { font-family: var(--f-head); font-weight: 600; font-size: 17px; letter-spacing: -.02em; line-height: 1.2; }

@media (max-width: 960px) {
  .jlead a { grid-template-columns: 1fr; }
  .jgrid { grid-template-columns: repeat(2, 1fr); }
  .jcard:nth-child(n) { margin-top: 0; }
  .jcard:nth-child(n) figure { aspect-ratio: 4/3; }
  .reader__cols { grid-template-columns: 1fr; }
  .reader__aside { position: static; }
  .reader__hero figure { aspect-ratio: 16/9; }
  .reader__relgrid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .jgrid { grid-template-columns: 1fr; }
  .reader__relgrid { grid-template-columns: 1fr; }
}

.facts { border-top: 1px solid var(--hair-light); }
.facts div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid var(--hair-light); font-size: 14px; }
.facts dt { font-family: var(--f-head); font-weight: 700; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); padding-top: 3px; }
.facts dd { text-align: right; }
