/* The homepage's self-hosted fonts, loaded from cocode.dk (it serves them with CORS *), so a visitor
   downloads them once for every site. Latin subset; SIL OFL 1.1, see cocode.dk/fonts/OFL.txt. */
@font-face{font-family:'Ibarra Real Nova';font-style:normal;font-weight:400 700;font-display:swap;src:url(https://cocode.dk/fonts/ibarra-real-nova.woff2) format('woff2')}
@font-face{font-family:'Ibarra Real Nova';font-style:italic;font-weight:400 700;font-display:swap;src:url(https://cocode.dk/fonts/ibarra-real-nova-italic.woff2) format('woff2')}
@font-face{font-family:'Ysabeau Office';font-style:normal;font-weight:300 700;font-display:swap;src:url(https://cocode.dk/fonts/ysabeau-office.woff2) format('woff2')}
@font-face{font-family:'Ysabeau Office';font-style:italic;font-weight:300 700;font-display:swap;src:url(https://cocode.dk/fonts/ysabeau-office-italic.woff2) format('woff2')}
@font-face{font-family:'Ysabeau SC';font-style:normal;font-weight:400 700;font-display:swap;src:url(https://cocode.dk/fonts/ysabeau-sc.woff2) format('woff2')}
/* Without JavaScript the elements never upgrade and their own children show instead. This keeps
   those links on the site's column and in the site's colour rather than jammed in a corner. */
cocode-head:not(:defined), cocode-foot:not(:defined) {
  display: flex; flex-wrap: wrap; gap: 4px 16px; box-sizing: border-box;
  max-width: var(--cocode-max, 1240px); margin-inline: auto; padding: 16px var(--cocode-gutter, 20px);
  font-family: "Ysabeau Office", "Gill Sans", sans-serif;
}
cocode-head:not(:defined) a, cocode-foot:not(:defined) a { color: inherit; }
:root, .cd-131uk0 {
  --cd-1efnm5z: #233e8b;
  --cd-1hbv6aj: #f6efe0;
  --cd-19jaood: #ece2cf;
  --cd-2a28r9: #1d2130;
  --cd-1nh00w0: #4a4639;
  --cd-1uh11uy: #c8bca4;
}

:root, .cd-ykyo5x {
  --cd-1nkgimo: "Ibarra Real Nova","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --cd-11rvn69: "Ysabeau Office","Gill Sans","Trebuchet MS",sans-serif;
  --cd-1uneg0k: "Ysabeau SC","Ysabeau Office","Gill Sans",sans-serif;
}

:root, .cd-xwqxqo {
  --cd-bx442t: #ece2cf;
  --cd-19s4nmk: #f6efe0;
  --cd-c4thmp: #1d2130;
  --cd-1y2oprq: #4a4639;
  --cd-1innu9s: #c8bca4;
  --cd-133nj9q: #d8982c;
}

.cd-ou54vl:not(#\#) {
  gap: 16px;
}

.cd-195vfkc:not(#\#) {
  gap: 2px;
}

.cd-yqssrz:not(#\#) {
  gap: 8px 20px;
}

.cd-vueqy4:not(#\#) {
  margin-inline: auto;
}

.cd-p59q4u:not(#\#) {
  padding-block: 10px;
}

.cd-1xg6qyv:not(#\#) {
  padding-block: 22px;
}

.cd-1awh872:not(#\#) {
  padding-inline: 10px;
}

.cd-8oyotj:not(#\#) {
  padding-inline: var(--cocode-gutter, 20px);
}

.cd-1hl2dhg:not(#\#) {
  text-decoration: none;
}

@media (width <= 560px) {
  .cd-1u9xws8.cd-1u9xws8:not(#\#) {
    gap: 10px;
  }

  .cd-knyar9.cd-knyar9:not(#\#) {
    padding-inline: 7px;
  }
}

.cd-6s0dn4:not(#\#):not(#\#) {
  align-items: center;
}

.cd-123z7l4:not(#\#):not(#\#) {
  background-color: var(--cd-19jaood);
}

.cd-17heldd:not(#\#):not(#\#) {
  border-inline-start-color: var(--cd-1uh11uy);
}

.cd-1t7ytsu:not(#\#):not(#\#) {
  border-inline-start-style: solid;
}

.cd-pilrb4:not(#\#):not(#\#) {
  border-inline-start-width: 1px;
}

.cd-9f619:not(#\#):not(#\#) {
  box-sizing: border-box;
}

.cd-1heor9g:not(#\#):not(#\#) {
  color: inherit;
}

.cd-1vm82j7:not(#\#):not(#\#) {
  color: var(--cd-1efnm5z);
}

.cd-19jnqeu:not(#\#):not(#\#) {
  color: var(--cd-1nh00w0);
}

.cd-sxrv4j:not(#\#):not(#\#) {
  color: var(--cd-2a28r9);
}

.cd-1lliihq:not(#\#):not(#\#) {
  display: block;
}

.cd-78zum5:not(#\#):not(#\#) {
  display: flex;
}

.cd-3nfvp2:not(#\#):not(#\#) {
  display: inline-flex;
}

.cd-t0psk2:not(#\#):not(#\#) {
  display: inline;
}

.cd-1s85apg:not(#\#):not(#\#) {
  display: none;
}

.cd-1iyjqo2:not(#\#):not(#\#) {
  flex-grow: 1;
}

.cd-1a02dak:not(#\#):not(#\#) {
  flex-wrap: wrap;
}

.cd-1xlq2h0:not(#\#):not(#\#) {
  font-family: var(--cd-11rvn69);
}

.cd-1xz7amq:not(#\#):not(#\#) {
  font-family: var(--cd-1nkgimo);
}

.cd-fbew44:not(#\#):not(#\#) {
  font-family: var(--cd-1uneg0k);
}

.cd-yr29y3:not(#\#):not(#\#) {
  font-size: .95rem;
}

.cd-ngnso2:not(#\#):not(#\#) {
  font-size: 1.5rem;
}

.cd-1jchvi3:not(#\#):not(#\#) {
  font-size: 1rem;
}

.cd-1j61x8r:not(#\#):not(#\#) {
  font-style: normal;
}

.cd-11zgcw:not(#\#):not(#\#) {
  font-weight: 520;
}

.cd-3rbum1:not(#\#):not(#\#) {
  letter-spacing: -.005em;
}

.cd-1dgsrnt:not(#\#):not(#\#) {
  letter-spacing: .06em;
}

.cd-o9i9j7:not(#\#):not(#\#) {
  letter-spacing: .075em;
}

.cd-19s9pn4:not(#\#):not(#\#) {
  opacity: .82;
}

.cd-1hc1fzr:not(#\#):not(#\#) {
  opacity: 1;
}

.cd-bv930e:not(#\#):not(#\#) {
  outline-color: var(--cd-1efnm5z);
}

.cd-1ewu8gn:not(#\#):not(#\#) {
  outline-offset: 3px;
}

.cd-aatb59:not(#\#):not(#\#) {
  outline-style: solid;
}

.cd-1k57tk5:not(#\#):not(#\#) {
  outline-width: 0;
}

.cd-f7dkkf:not(#\#):not(#\#) {
  padding-inline-start: 16px;
}

.cd-znlhnb:not(#\#):not(#\#) {
  -webkit-text-decoration-color: var(--cd-1uh11uy);
  text-decoration-color: var(--cd-1uh11uy);
}

.cd-ujl8zx:not(#\#):not(#\#) {
  text-decoration-line: underline;
}

.cd-yi4chj:not(#\#):not(#\#) {
  text-decoration-thickness: 1px;
}

.cd-1jdncgf:not(#\#):not(#\#) {
  text-underline-offset: .25em;
}

.cd-uxw1ft:not(#\#):not(#\#) {
  white-space: nowrap;
}

.cd-784prv:focus-visible:not(#\#):not(#\#) {
  outline-width: 2px;
}

.cd-1o7uuvo:hover:not(#\#):not(#\#) {
  opacity: 1;
}

@media (width <= 560px) {
  .cd-1ds9a91.cd-1ds9a91:not(#\#):not(#\#) {
    display: inline;
  }

  .cd-l0nte0.cd-l0nte0:not(#\#):not(#\#) {
    display: none;
  }

  .cd-hpom7i.cd-hpom7i:not(#\#):not(#\#) {
    font-size: 1.3rem;
  }

  .cd-10rbhce.cd-10rbhce:not(#\#):not(#\#) {
    padding-inline-start: 10px;
  }
}

.cd-ac72e6:not(#\#):not(#\#):not(#\#) {
  border-bottom-color: var(--cd-1uh11uy);
}

.cd-xdu08m:not(#\#):not(#\#):not(#\#) {
  border-bottom-style: double;
}

.cd-2x41l1:not(#\#):not(#\#):not(#\#) {
  border-bottom-width: 3px;
}

.cd-1ed6o5f:not(#\#):not(#\#):not(#\#) {
  border-top-color: var(--cd-1uh11uy);
}

.cd-10xmss8:not(#\#):not(#\#):not(#\#) {
  border-top-style: double;
}

.cd-mn4e3e:not(#\#):not(#\#):not(#\#) {
  border-top-width: 3px;
}

.cd-1noizns:not(#\#):not(#\#):not(#\#) {
  max-width: var(--cocode-max, 1240px);
}

.cd-2lwn1j:not(#\#):not(#\#):not(#\#) {
  min-height: 0;
}

.cd-1gg8mnh:not(#\#):not(#\#):not(#\#) {
  min-height: 44px;
}

.cd-1wxaq2x:not(#\#):not(#\#):not(#\#) {
  min-height: 48px;
}

.cd-879a55:not(#\#):not(#\#):not(#\#) {
  min-height: 60px;
}
