/* Meridian Fountain iframe typography refinement.
   Inject via <link rel="stylesheet" href="./typography-refinement.css"> AFTER the inline <style>.
   Equal-specificity rules win by source order. Root 16px.
   Untouched: h1, .invitation, textarea, .receipt, .caption, the canvas/SVG sculpture,
   .still-words / .still-released, [hidden] / :empty states, and every motion rule. */

:root {
  --fm-meta: 0.75rem;
  --fm-label: 0.875rem;
  --fm-support: 0.9375rem;
  --fm-muted: #bcc4be; /* slightly brighter than --muted for small text on navy */
}

/* Room frame lines wrap instead of squeezing at 320px or 200% text. */
.topline,
.bottomline {
  flex-wrap: wrap;
  row-gap: 0.4rem;
  font-size: var(--fm-label);
  color: var(--fm-muted);
}

.topline p { letter-spacing: 0.08em; }

.eyebrow {
  font-size: var(--fm-label);
  letter-spacing: 0.08em;
}

/* Motion plaque: state is a label, the note an explanation. */
.motion-state {
  font-size: var(--fm-label);
  letter-spacing: 0.06em;
}

.motion-note { font-size: var(--fm-support); }

.motion-toggle {
  max-width: 100%;
  white-space: normal;
}

/* Form */
.actions {
  flex-wrap: wrap;
  row-gap: 0.5rem;
}

.release {
  max-width: 100%;
  white-space: normal;
}

#limit {
  color: var(--fm-muted);
  font-size: var(--fm-label);
}

.private {
  color: var(--fm-muted);
  font-size: var(--fm-support);
  line-height: 1.55;
}

/* Content columns must shrink when users enlarge text. */
.layout > * { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 820px) { .layout { grid-template-columns: minmax(0, 1fr); } }
