body {
  display: grid;
  grid-template-rows: auto 1fr auto;
}

:where(#main) {
  container-type: inline-size;
  inline-size: 100ch;
  margin-inline: auto;
  max-inline-size: 100vw;
  padding-block-end: clamp(var(--block-space), 5%, calc(var(--block-space) * 3));
  padding-inline: clamp(var(--inline-space), 5%, calc(var(--inline-space) * 3));
  text-align: center;

  @media (max-width: 70ch) {
    padding-inline: var(--inline-space);
  }

  @media print {
    font-size: 11pt;
    inline-size: unset;
    line-height: 1.3;
    margin: 0;
    orphans: 3;
    padding: 0;
    text-align: justify;
    text-justify: distribute;
    widows: 2;
  }
}

:where(#header) {
  max-inline-size: 100vw;
  view-transition-name: header;

  > nav {
    view-transition-name: nav;
  }

  > * {
    align-items: center;
    display: flex;
    gap: 1ch;
    justify-content: center;
    padding: var(--block-space-half) var(--inline-space);
  }

  .btn {
    --btn-size: 2.65rem;
    --btn-icon-size: 1.3rem;

    flex-shrink: 0;
  }
}

:is(#header) {
  @media print {
    display: none;
  }
}

:where(#timer) {
  inset: 0 0 auto;
  position: sticky;
  z-index: 1;
}
