/* ==========================================================================
   NewLine Break — print
   A landing page is a screen artefact. On paper this becomes a plain
   document: ink on white, no chrome, links resolved, nothing clipped.
   ========================================================================== */

@page {
  margin: 18mm 16mm;
}

body::after { display: none !important; }

*,
*::before,
*::after {
  background: transparent !important;
  color: #000 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  animation: none !important;
  transition: none !important;
}

html, body {
  background: #fff !important;
  font-size: 11pt;
  line-height: 1.45;
}

/* Screen-only furniture. The figures go too: the copy beside them says the
   same thing in words. */
.hero__fig,
.hero__proof,
.contact__lede,
form.sheet,
.sheet--sent,
.nav,
.skip-link,
.band__gutter,
.seam__fig,
.build__fig,
.nav__toggle,
.hero__actions,
.footer__col nav,
.footer__col--elsewhere {
  display: none !important;
}

/* Reveals are granted by an observer as sections scroll into view. Printed
   from the top of the page, most of them never were, and would print blank. */
.reveal,
.head-line-in,
.hero__line-in {
  opacity: 1 !important;
  transform: none !important;
}

.plate__frame { clip-path: none !important; border: 0.5pt solid #999 !important; }

/* A page box is tall enough to satisfy the media query that pins the scroll
   scenes, so every pinned, stretched or dimmed state is undone by hand. */
.opening,
.opening__stage,
.opening__top,
.opening__bottom,
.opening__gap,
.seam,
.build,
.build__step {
  position: static !important;
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 1 !important;
  transform: none !important;
  overflow: visible !important;
}

.opening__inner { padding: 0 !important; }
.opening__top::after,
.opening__bottom::before { display: none !important; }

.seam__say { font-size: 13pt !important; max-width: none !important; margin-bottom: 4mm; }
.seam__blame { display: none !important; }

.build__step {
  padding-bottom: 5mm !important;
  border-bottom: 0.5pt solid #999 !important;
  break-inside: avoid;
}

.spec, .spec li { border-color: #999 !important; }

/* Sections become document blocks, not full-bleed panels */
.band {
  display: block !important;
  min-height: 0 !important;
  max-width: none !important;
  padding: 0 0 10mm !important;
  break-inside: auto;
}

.hero__lower { display: block !important; }

.hero__title {
  font-size: 24pt !important;
  line-height: 1.1 !important;
  margin-bottom: 4mm;
}

/* The coral return connector is a screen device and prints as a stray mark */
.hero__line--broken::before { display: none !important; }
.hero__line--broken { padding-left: 0 !important; }

.head__title { font-size: 15pt !important; max-width: none !important; }
.hero__lede  { font-size: 12pt !important; max-width: none !important; }

h1, h2, h3 { break-after: avoid; }
h2 { margin-top: 6mm; }

/* Grids collapse to readable columns */
.fact,
.step,
.term {
  display: block !important;
  break-inside: avoid;
  padding: 0 0 5mm !important;
  border-bottom: 0.5pt solid #999 !important;
}

.steps, .terms, .facts, .studio, .process__head, .footer__inner { display: block !important; }

.review { padding: 3mm 0 5mm !important; border: 0 !important; }
.term__value { font-size: 15pt !important; }

/* The drawings are documents, so they print: two to a row, in grey. */
.case, .case__text { display: block !important; position: static !important; }

.plates {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 5mm;
  margin-top: 6mm;
}

.plate { break-inside: avoid; }
.plate__frame { padding: 0 !important; aspect-ratio: auto !important; }
.plate img { filter: grayscale(1); }
/* A capture of a dark screen is a slab of ink on paper, so it is inverted to
   dark lines on white. Drawings are already dark lines on a light sheet. */
.plate--capture img { filter: grayscale(1) invert(1) contrast(1.15); }
/* The facts beside it say the same thing in words. */
.plate--figure { display: none !important; }

.stack { justify-content: flex-start !important; }
.stack li { border-color: #999 !important; }

/* The visible text is already the address, so resolving the href would only
   print "(mailto:...)" twice over. Left as-is deliberately. */
.contact__mail {
  font-size: 16pt !important;
  background-image: none !important;
}

.footer { border-top: 0.5pt solid #999 !important; }
