:root {
  --i-width: calc(8 / 28);
  --copy-font: 'IBM Plex Serif', sans-serif;
  --copy-size: 11pt;
  --link-color: var(--c-aqua);
  scroll-behavior: smooth;
  scroll-padding-top: 2rem;
}

aqua {
  color: var(--c-aqua);
}

div.ticker {
  position: fixed;
  z-index: 10;
  margin-bottom: 2rem;
  background-color: var(--r-blue);
  padding: 1rem 0;
  width: 100vw;
  text-align: center;
}

div.ticker a {
  color: var(--white);
}

div.ticker a:link {
  text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }
}

html {
  color: var(--r-blue);
  font-family: 'Inter', sans-serif;
  overflow-wrap: break-word;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

.bg-c-aqua {
  --link-color: var(--white);
  background-color: var(--c-aqua);
}

h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span {
  -webkit-box-decoration-break: clone;
  display: inline;
  box-decoration-break: clone;
  background-color: var(--r-blue);
  padding: calc(var(--i-width) * 1.5ch);
  color: var(--white);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: -10;
}

h1 {
  max-width: 30ch;
  font-size: 2.3rem;
}

h1.unlimited {
  max-width: unset;
}

h2 {
  max-width: 30ch;
  font-size: 1.8rem;
}

h3 {
  max-width: 30ch;
  font-size: 1.5rem;
}

h4 {
  max-width: 30ch;
  font-size: 1.2rem;
}

.text-sans {
  --copy-font: 'Inter', sans-serif;
  --copy-size: 1rem;
}

.text-serif {
  --copy-font: 'IBM Plex Serif', sans-serif;
  --copy-size: 11pt;
}

p {
  text-wrap: balance;
  max-width: 60ch;
  font-weight: 'regular';
  font-size: var(--copy-size);
  line-height: 1.8;
  font-family: var(--copy-font);
}

p > a:link,
p > a:visited {
  text-decoration: underline;
}

a:link,
a:visited {
  color: var(--link-color);
  text-decoration: none;
}

body {
  height: 100dvh;
}

li {
  line-height: 1.8;
  font-family: var(--copy-font);
}

a:has(img) {
  display: block;
  margin: 1rem 0;
  padding: 0;
}

img,
a img {
  box-sizing: border-box;
  margin: 0;
  border: solid var(--white) 0.4rem;
  padding: 0;
  width: 100%;
}

img.border-br-blue {
  border-color: var(--r-blue);
}

div#group-selection {
  display: flex;
  flex-flow: row wrap;
  justify-content: start;
  gap: 1rem;
  width: fit-content;
  max-width: 80ch;
}

div.group {
  word-wrap: break-word;
  /* overflow: hidden; */
  text-wrap: balance;
  display: grid;
  align-content: center;
  justify-items: center;
  box-shadow: rgba(0, 0, 0, 0.1) 2px 4px 5px 0px;
  border-radius: 15px;
  background-color: #fff;
  padding: 0.15rem;
  aspect-ratio: 1 / 1;
  height: 100%;
  overflow: hidden;
}

div.group > span {
  display: block;
  width: 11ch;
  text-align: center;
}

div.group.active {
  box-shadow: rgba(0, 0, 0, 0.1) 1px 3px 4px 0px;
  background-color: #52f312;
}
