* {
  /* Include padding and border in size calculation. */
  box-sizing: border-box;
  /* Position based on immediate parent and allow adjusting top/right/bottom/left. */
  position: relative;
  /* Prevent grid and flex items from spilling out of viewport. */
  min-width: 0;
}

body {
  /* Ensure that body fills the evire viewport */
  min-height: 100dvh;
}

h1,
h2,
h3,
h4 {
  /* Balance heading across multiple lines into an even block */
  text-wrap: balance;
}

p {
  /* Prevent text orphans (single words on last line) */
  text-wrap: pretty;
}
