
.airy     { --density: 3;  }
.spacious { --density: 2;  }
.dense    { --density: 1;  }
.crowded  { --density: .5; }
.packed   { --density: 0;  }

.airy-inside > *     { --density: 3;  }
.spacious-inside > * { --density: 2;  }
.dense-inside > *    { --density: 1;  }
.crowded-inside > *  { --density: .5; }
.packed-inside > *   { --density: 0;  }

.autodensity {
    --density: 1;
    @media (min-width: 768px)  { --density: 2 }
    @media (min-width: 1024px) { --density: 3 }
}
.vh, v-h {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	block-size: 1px;
	inline-size: 1px;
	overflow: hidden;
	white-space: nowrap;
}

.all\:initial {
	all: initial;
}

.bold { font-weight: bold }
.italic {
	font-style: italic;
	& em, & cite, & dfn, & var, & i, & address {
		font-style: normal;
	}
}

.allcaps {
	text-transform: uppercase;
	letter-spacing: .1rem;
}


.main-font, .primary-font { font-family: var(--main-font) }
.secondary-font { font-family: var(--secondary-font) }
.display-font { font-family: var(--display-font) }
.mono-font, .monospace { font-family: var(--mono-font) }

.massivetext {
    font-size: calc(.13 * var(--eff-line-length));
	line-height: 1em;
    letter-spacing: 0;
}

.background-clip\:text {
  background-size: cover;
  @supports (background-clip: text) {
    background-clip: text;
  }
  color: transparent;
}

.text-stroke {
  --stroke-width: 1px;
  --stroke-color: lch(from currentcolor calc(100 - l) c calc(h + 180));

  -webkit-text-stroke: var(--stroke-width) var(--stroke-color);
}

.aestheticbreak {
    display: block;
    margin: 0;
    padding: 0;
    height: calc(.5 * var(--gap));
}

@media screen {
  .hidden\@screen {
    display: none;
    & * { display: none; }
  }
}

@media print {
  .annotations\@print\:disabled :is(
    a:not([href^="#"]),
    abbr[title]
  )::after {
    display: none;
  }

  .hidden\@print {
    display: none;
    & * { display: none; }
  }
  .block\@print {
    display: block;

    & :is(
      .f-row, .flex-row, .f-col,
      .flex-column, .f-switch, .flex-switch,
      .grid
    ) > * { margin: revert; }
  }

  hr.page-break { break-before: page; display: none; }

  .break-before\:page { break-before: page }
  .break-after\:page  { break-after: page  }
  .break-inside\:avoid-page {
    break-inside: avoid-page;
    & * { break-inside: avoid-page; }
  }
}
