/* ============================================================
   A BALLAD OF CHAOS — flat sub-pages (the author page, the lore pages)
   Loaded after css/style.css, which supplies tokens, nav, footer and the
   fixed cosmos/grain/vignette layers.
   ============================================================ */

.pg{position:relative;z-index:3}
.pg-sec{position:relative;z-index:3;padding:clamp(4rem,9vw,8rem) var(--gutter);
  max-width:1240px;margin:0 auto;scroll-margin-top:7rem}
.pg-sec + .pg-sec{padding-top:0}

.pg-eyebrow{display:block;font-family:var(--label);font-weight:700;font-size:.68rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin-bottom:.95rem;
  text-shadow:0 0 20px color-mix(in srgb,var(--accent) 60%,transparent)}
.pg-h2{font-family:var(--display);font-weight:600;font-size:clamp(1.7rem,3.2vw,2.7rem);
  line-height:1.1;color:var(--bone)}
/* wide enough that "Five movements, and the coda" stays on one line at desktop */
.pg-sec__head{max-width:min(100%,46rem);margin-bottom:clamp(2rem,4vw,3rem)}

/* ============================================================ MASTHEAD */
.pg-hero{position:relative;z-index:3;padding:clamp(8rem,14vw,12rem) var(--gutter) clamp(3rem,6vw,5rem);
  max-width:1240px;margin:0 auto}
.pg-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);
  gap:clamp(2.5rem,6vw,5.5rem);align-items:center}
.pg-hero__eyebrow{font-family:var(--label);font-size:.64rem;letter-spacing:.34em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem;display:block}
.pg-title{font-family:var(--display);font-weight:600;line-height:1.02;color:var(--bone);
  font-size:clamp(2.6rem,6vw,5rem);text-shadow:0 6px 40px rgba(0,0,0,.7)}
.pg-title em{display:block;font-size:.42em;font-style:italic;font-weight:500;
  color:var(--ash);margin-top:.5rem;letter-spacing:.01em}
.pg-lede{margin-top:1.8rem;font-size:clamp(1.12rem,1.7vw,1.44rem);line-height:1.6;
  color:var(--bone-dim);max-width:40ch}
.pg-lede .em{color:var(--accent);font-style:italic}

/* the portrait — desaturated until you look at it */
.pg-portrait{position:relative;justify-self:center;width:min(100%,380px)}
.pg-portrait img{width:100%;height:auto;display:block;
  filter:grayscale(1) contrast(1.06) brightness(.92);
  transition:filter .8s ease;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.95)}
.pg-portrait:hover img{filter:grayscale(.35) contrast(1.02) brightness(1)}
.pg-portrait::after{content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(201,162,75,.22);
  background:linear-gradient(180deg,transparent 55%,rgba(10,8,9,.5))}
/* the caption's own box IS the black band under the photo (the frame + gradient
   wrap the whole figure), so centre the text in it rather than hang it off a margin */
.pg-portrait figcaption{margin-top:0;min-height:2.9rem;display:flex;
  align-items:center;justify-content:center;font-family:var(--label);font-size:.54rem;
  letter-spacing:.24em;text-transform:uppercase;color:var(--ash-dim);text-align:center}

/* ============================================================ PROSE */
.pg-prose{max-width:64ch}
.pg-prose p{color:var(--ash);font-size:1.1rem;line-height:1.8}
.pg-prose p + p{margin-top:1.35rem}
.pg-prose p:first-of-type::first-letter{float:left;font-family:var(--display);font-weight:600;
  font-size:3.6em;line-height:.78;padding:.06em .12em 0 0;color:var(--accent)}
.pg-prose strong{color:var(--bone-dim);font-weight:600}

.pg-pull{margin:clamp(3rem,6vw,4.5rem) 0;padding-left:1.4rem;
  border-left:1px solid color-mix(in srgb,var(--accent) 55%,transparent)}
.pg-pull .quote{font-size:clamp(1.3rem,2.4vw,1.95rem);color:var(--bone);line-height:1.24}
/* clear the quote's drop cap so the attribution returns to the rule, not beside it */
.pg-pull .attrib{display:block;clear:left;margin-top:.8rem}

/* two-column: prose + a facts rail, same rhythm as the book pages */
.pg-cols{display:grid;grid-template-columns:minmax(0,1fr) 235px;
  gap:clamp(2.2rem,5vw,4rem);align-items:start;max-width:1140px}
.pg-facts{position:sticky;top:6.5rem;border-top:1px solid rgba(201,162,75,.2);padding-top:1.4rem}
.pg-facts dl{display:grid;gap:1.1rem}
.pg-facts dt{font-family:var(--label);font-size:.56rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ash-dim);margin-bottom:.24rem}
.pg-facts dd{font-family:var(--serif);font-size:1.02rem;color:var(--bone-dim);line-height:1.45}
.pg-facts dd a{border-bottom:1px solid color-mix(in srgb,var(--accent) 50%,transparent);transition:color .3s}
.pg-facts dd a:hover{color:var(--accent)}

/* ============================================================ THE WORK (book strip) */
.pg-works{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:clamp(1.2rem,3vw,2.2rem)}
.work{display:block;text-align:center;transition:transform .45s}
.work:hover{transform:translateY(-6px)}
/* display:block matters — these are <span>s, and an inline box ignores
   aspect-ratio, which drops the caption out of its grid row */
.work__cover{display:block;position:relative;aspect-ratio:.66;overflow:hidden;
  border:1px solid rgba(201,162,75,.16);
  box-shadow:0 24px 48px -22px rgba(0,0,0,.95);transition:border-color .45s,box-shadow .45s}
.work:hover .work__cover{border-color:var(--c,var(--accent));
  box-shadow:0 30px 60px -22px rgba(0,0,0,.95),0 0 44px -14px var(--c,var(--accent))}
.work__cover img{width:100%;height:100%;object-fit:cover;display:block}
.work__rom{display:block;margin-top:.9rem;font-family:var(--display);font-style:italic;
  font-weight:600;font-size:1rem;color:var(--c,var(--accent));line-height:1}
.work__ttl{display:block;margin-top:.3rem;font-family:var(--label);font-size:.55rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ash);line-height:1.5;transition:color .35s}
.work:hover .work__ttl{color:var(--bone)}

/* ============================================================ ELSEWHERE (links) */
/* five cards, one row — same rhythm as the five covers above. The column counts
   below are chosen so five cards never leave one stranded on a row of its own. */
.pg-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.plink{display:flex;flex-direction:column;gap:.3rem;padding:1.3rem 1.35rem;
  border:1px solid rgba(201,162,75,.18);background:rgba(255,255,255,.018);
  transition:border-color .35s,background .35s,transform .35s}
.plink:hover{border-color:var(--accent);background:rgba(255,255,255,.045);transform:translateY(-4px)}
.plink__k{font-family:var(--label);font-size:.53rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--accent)}
.plink__v{font-family:var(--display);font-weight:600;font-size:1.24rem;color:var(--bone);line-height:1.2}
.plink__n{font-size:.9rem;color:var(--ash-dim);font-style:italic;line-height:1.45}

/* ============================================================ IN PREPARATION (lore stubs) */
.pg-soon{max-width:1240px;margin:0 auto;padding:clamp(3rem,7vw,5rem) var(--gutter) clamp(6rem,11vw,9rem)}
.pg-soon__box{border:1px solid rgba(201,162,75,.18);
  background:linear-gradient(165deg,rgba(255,255,255,.03),rgba(255,255,255,.006));
  padding:clamp(2.4rem,5vw,3.6rem);max-width:58ch}
.pg-soon__k{font-family:var(--label);font-size:.56rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--accent);display:block;margin-bottom:1rem}
.pg-soon__box p{color:var(--ash);font-size:1.06rem;line-height:1.75}
.pg-soon__box p + p{margin-top:1rem}
.pg-soon__list{list-style:none;margin-top:1.8rem;display:grid;gap:.7rem}
.pg-soon__list li{display:flex;gap:.8rem;align-items:baseline;color:var(--ash-dim);
  font-size:.98rem;line-height:1.5}
.pg-soon__list li::before{content:"";flex:0 0 auto;width:5px;height:5px;margin-top:.5em;
  background:var(--accent);opacity:.75;transform:rotate(45deg)}

.pg-more{display:inline-flex;align-items:center;gap:.6em;margin-top:2.4rem;
  font-family:var(--label);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--bone);border-bottom:1px solid var(--accent);padding-bottom:4px;transition:color .3s,gap .3s}
.pg-more:hover{color:var(--accent);gap:1em}
.pg-more-row{display:flex;flex-wrap:wrap;gap:2.2rem}

/* ============================================================ RESPONSIVE */
@media(max-width:1040px){
  .pg-hero__grid{grid-template-columns:1fr;gap:2.6rem}
  .pg-portrait{order:-1;width:min(72%,300px)}
  .pg-cols{grid-template-columns:1fr}
  .pg-facts{position:static}
  .pg-links{grid-template-columns:repeat(3,minmax(0,1fr))}   /* 3 + 2, never a lone card */
}
@media(max-width:760px){
  /* THE "MORE" LINKS BECOME A LIST. Ankit, 23 Aug, of the row at the foot of the press page (and
     the eight other pages that carry one): *"this list of links on press kit mobile (and others)
     can be a normal unbulleted list like we have in footer"*.
     They were a wrapping flex row of inline links, each carrying its own `margin-top:2.4rem` for
     the single-link case, so on a phone five of them scattered into ragged rows with 38px of air
     between them. One per line, tight, left-aligned — the same shape the footer's link columns
     take. The accent underline stays: it is what marks them as links rather than labels. */
  /* Two shapes, decided by COUNT — because Ankit asked for both. Of the press page's five he said
     *"can be a normal unbulleted list like we have in footer"*; of the author hero's two,
     *"these links can be side by side"*. A pair reads as a pair; five do not.
     The row also carries the space the links used to bring themselves: zeroing `.pg-more`'s own
     `margin-top` is what makes either shape tight, and it took the gap after the paragraph above
     with it — *"there's none before the links"*. That belongs on the container.
     Counts per row today: 2 (author hero, characters, 404, privacy) · 3 (essays, poetry,
     alt-covers) · 4 (artwork) · 5 (press). */
  .pg-more-row{display:flex;flex-wrap:wrap;gap:.9rem 1.4rem;align-items:baseline;margin-top:2rem}
  .pg-more-row .pg-more{margin-top:0}
  /* four or more stop reading as a row — one per line, like the footer's columns */
  .pg-more-row:has(> .pg-more:nth-child(4)){
    display:grid;grid-template-columns:1fr;gap:.85rem;justify-items:start}

  .pg-hero{padding-top:7.5rem}
  .pg-sec,.pg-soon{padding-left:1.25rem;padding-right:1.25rem}
  .pg-works{grid-template-columns:repeat(auto-fit,minmax(108px,1fr))}
  .pg-links{grid-template-columns:1fr}
  .pg-soon{padding-bottom:6rem}
}
@media(prefers-reduced-motion:reduce){
  .work,.plink,.pg-portrait img{transition:none}
}
