/* The Reading Room (#221): page-specific dressing only. The frame's own layout is
   the SHARED /reading-frame.css (linked via BaseLayout extraCss, #219), and the
   engine's overlay dressing is /living-chart.css (#302); this file owes them nothing
   but the page around them. Palette tokens are BaseLayout's shell block (#263). */
body {
  padding: 2.5rem 1.5rem 5rem;
  line-height: 1.6;
}
main { max-width: 1100px; }
header { margin-bottom: 2rem; }
footer { margin-top: 3.5rem; }

/* Voice from /house.css (.intro, .warning, the control idiom); this file owes
   the room only its widths and margins (#324). */
.intro { max-width: 46rem; margin: 0 auto 1.6rem; }

.warning { max-width: 46rem; margin: 0 auto 1.2rem; }

/* #127 The Drafting Moment, reused: the chart settles onto the desk while its
   coastline draws itself in ink. startArrival (src/site/explorer/draw-ceremony.ts)
   sets --draw-len + the dasharray on the coast path and clears them on
   animationend, so WITHOUT these mount-scoped rules the ceremony never plays AND
   the inline stroke-dasharray is never cleaned off the live coastline. Collapses
   to instant under the shared reduced-motion rule in /motion.css. */
.rf-chart svg.arriving { animation: paperSettle var(--paper-settle) var(--ease-paper) both; }
.rf-chart svg.arriving #layer-land path {
  animation: inkDraw var(--ink-draw) var(--ease-paper) both,
             washDry var(--ink-dry) var(--ease-paper) 400ms both;
}
.rf-chart svg.arriving #layer-waterlines {
  animation: dryingInk var(--ink-dry) var(--ease-paper) 300ms both;
}
