@charset "UTF-8";
/* Fonts
   ========================================================================== */
/**
 * 'PT Serif' font.
 */
@font-face {
  font-family: "PT Serif";
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url("https://textpattern.com/assets/fonts/pt-serif-v18-latin-regular.woff2") format("woff2");
}
@font-face {
  font-family: "PT Serif";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("https://textpattern.com/assets/fonts/pt-serif-v18-latin-italic.woff2") format("woff2");
}
@font-face {
  font-family: "PT Serif";
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url("https://textpattern.com/assets/fonts/pt-serif-v18-latin-700.woff2") format("woff2");
}
@font-face {
  font-family: "PT Serif";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("https://textpattern.com/assets/fonts/pt-serif-v18-latin-700italic.woff2") format("woff2");
}
/* Layout
   ========================================================================== */
/**
 * 1. Remove default margin.
 */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0; /* 1 */
  background-color: var(--clr-text);
  color: var(--clr-text-white-enforced);
  scroll-behavior: smooth;
  scroll-padding-top: 1rem;
}

@media (prefers-color-scheme: dark) {
  body {
    background-color: var(--clr-bkgd-form);
  }
}
/**
 * Remove default styling from iframes.
 */
iframe {
  border: 0;
}

/**
 * Polite `noscript` notice after footer.
 */
noscript {
  padding: 0.25em 1em;
  background-color: var(--clr-hilite-enforced);
  color: var(--clr-text-black-enforced);
  font-size: 0.75rem;
  text-align: center;
}

/**
 * Force blocks.
 */
.block {
  display: block;
}

/**
 * Force inline blocks.
 */
.inline-block {
  display: inline-block;
}

/**
 * Outer wrapper for main layouts.
 *
 * Example HTML:
 *
 * <div class="wrapper">
 *     <header class="site-header"></header>
 *     <div class="nav-container">
 *         <nav class="site-navigation"></nav>
 *     </div>
 *     <main></main>
 * </div>
 */
.wrapper {
  position: relative;
  padding-top: 1px;
  border-bottom: 1px solid var(--clr-bkgd);
  background: var(--clr-bkgd);
  color: var(--clr-text);
}

@media (prefers-color-scheme: dark) {
  .wrapper {
    border-bottom-color: var(--clr-brdr-x-dark);
  }
}
/**
 * Outer wrapper for footer.
 *
 * Example HTML:
 *
 * <div class="wrapper-footer">
 *     <aside class="container complementary-content"></aside>
 *     <footer class="site-footer">
 * </div>
 */
.wrapper-footer {
  flex: 1;
  padding-bottom: 0.5em;
  content-visibility: auto;
  contains-intrinsic-size: 0 320px;
}

/**
 * Containers for layouts, and for header/footer.
 *
 * Example HTML:
 *
 * <div class="wrapper">
 *     <div class="container">
 *         Content
 *     </div>
 * </div>
 */
.site-header,
.site-footer,
.container {
  width: 90%;
  max-width: 72rem;
  margin: 0 auto;
}

/**
 * Additional styling for site header.
 */
.site-header {
  position: relative;
}

.masthead {
  margin: 0.75em 0;
  font-size: 1rem;
}
.masthead a {
  overflow: hidden;
  text-indent: 110%;
  text-transform: capitalize;
  white-space: nowrap;
  display: block;
  width: 208px;
  height: 27px;
  background-size: 208px 27px;
}
.masthead a:hover {
  opacity: 0.8;
}

@media (prefers-color-scheme: dark) {
  .masthead a {
    filter: invert(1);
  }
}
.search-form {
  position: absolute;
  z-index: 3;
  top: 0;
  right: 48px;
}
.search-form [type=search] {
  width: 34px;
  height: 34px;
  padding-left: 32px;
  border-color: var(--clr-bkgd);
  background: var(--clr-bkgd-form) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='%23333'%3E%3Cpath d='M4,13c0-5,4-9,9-9s9,4,9,9s-4,9-9,9S4,18,4,13z M13,19c3.3,0,6-2.7,6-6s-2.7-6-6-6s-6,2.7-6,6S9.7,19,13,19z'/%3E%3Cpath d='M17.5,19l1.5-1.5l4.5,3L28,25c0,0,0,1.5-0.8,2.2S25,28,25,28l-4.5-4.5L17.5,19z'/%3E%3C/g%3E%3C/svg%3E") no-repeat left center;
  background-size: 32px 32px;
}
.search-form [type=search]:focus {
  transition: width 0.2s ease-in-out;
  border-color: var(--clr-focus);
}

@media (prefers-color-scheme: dark) {
  .search-form [type=search] {
    background-color: var(--clr-bkgd);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='%23ced4da'%3E%3Cpath d='M4,13c0-5,4-9,9-9s9,4,9,9s-4,9-9,9S4,18,4,13z M13,19c3.3,0,6-2.7,6-6s-2.7-6-6-6s-6,2.7-6,6S9.7,19,13,19z'/%3E%3Cpath d='M17.5,19l1.5-1.5l4.5,3L28,25c0,0,0,1.5-0.8,2.2S25,28,25,28l-4.5-4.5L17.5,19z'/%3E%3C/g%3E%3C/svg%3E");
  }
  .search-form [type=search]:focus {
    background-color: var(--clr-bkgd-form);
  }
}
/**
 * Large search field on certain pages.
 */
.search-hero {
  text-align: center;
}
.search-hero input {
  margin: 0.5em 0;
  font-size: 1.25rem;
}

/**
 * Additional styling for site footer.
 */
.community-details,
.host-details {
  display: none;
}

.community-links {
  padding: 0;
  list-style: none;
}

.host-details {
  margin-top: 1em;
  text-align: center;
}

.host-network {
  overflow: hidden;
  text-indent: 110%;
  text-transform: capitalize;
  white-space: nowrap;
  display: inline-block;
  width: 158px;
  height: 120px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 158 120'%3E%3Cpath d='m101.183 66.215c-.092-.09-.055-.052 0 0zm-11.673-23.611s1.258 1.434 1.93 2.104c.672.675 2.135 2.072 2.135 2.072s-.86-1.043-1.895-2.078-2.17-2.098-2.17-2.098zm6.197 2.458c-3.554-3.562-7.124-7.46-10.38-10.998l9.26-9.278c2.353-2.356 7.535-4.825 7.535-4.825l6.498-6.51 1.147-1.696-8.404-8.425-1.69 1.147-6.503 6.517s-2.46 5.194-4.812 7.552l-9.07 9.086c-.203-.208-.407-.418-.605-.614-3.405-3.413-9.053-8.542-11.583-10.82l6.08-6.094v-1.554s-1.236-1.744-4.014-4.528c-2.776-2.787-4.52-4.022-4.52-4.022h-1.55l-19.853 19.894v1.552s1.233 1.747 4.013 4.532c2.203 2.206 4.52 4.02 4.52 4.02h1.55l6.07-6.082c2.276 2.536 7.394 8.195 10.802 11.608.196.196.406.4.614.607l-19.426 19.469c-1.14 1.14-3.016 1.655-3.016 1.655l-1.79 1.795s1.438 2.29 3.275 4.13c1.836 1.843 4.305 3.486 4.305 3.486l1.8-1.806s.514-1.882 1.654-3.022l19.62-19.657c3.53 3.262 7.42 6.84 10.974 10.402 6.87 6.884 12.91 13.565 13.08 13.734.947.95 3.356-.145 5.672-2.464 2.44-2.445 3.32-4.82 2.51-5.63-.305-.302-6.897-6.278-13.763-13.161zm-27.537-26.775c2.852 2.586 7.15 6.538 9.924 9.32.194.193.4.407.604.615l-1.506 1.51-1.89-1.892s.892 1.14 1.71 2.07l-1.062 1.06c-1.2-1.22-2.22-2.25-2.63-2.663-1.224-1.228-2.514-2.485-3.032-3.004-.517-.52-1.412-1.59-1.963-2.142-.552-.552-1.48-1.38-2.136-2.036-.193-.192-.494-.487-.84-.824.32-.362.69-.704 1.067-1.008.897.97 1.923 2.057 2.907 3.04 2.532 2.537 5.356 4.987 5.356 4.987l-5.184-5.194c-1.03-1.032-2.05-2.056-2.938-2.944.578-.438 1.16-.776 1.612-.9.002 0 .002 0 0 0zm6.853 13.618-.477.477c-.386-.377-.754-.74-1.062-1.05-1.827-1.832-4.074-4.182-6.26-6.37-.83-.834-1.897-1.91-2.903-2.93.08-.225.174-.453.294-.68 1.113 1.067 2.325 2.24 3.264 3.183 1.237 1.24 3.17 2.864 3.17 2.864-1.428-1.468-3.157-3.397-3.77-4.012-.644-.646-1.573-1.497-2.486-2.328.106-.172.227-.342.363-.51.36.298.658.548.898.788.706.708 1.868 1.83 2.282 2.243.414.415 1.542 1.522 2.37 2.35.825.826 2.556 2.713 2.987 3.145.767.767 1.428 1.406 2.104 2.058l-.588.59c-2.398-2.227-5.32-4.886-5.32-4.886.602.606 2.71 2.682 5.135 5.068zm-20.961-21.063c-3.835 3.848-9.275 9.65-9.275 9.65s1.11 2.127 3.465 4.488 4.478 3.47 4.478 3.47l.252.715h-.94s-1.45-1.024-4.198-3.778-3.77-4.204-3.77-4.204v-.94l19.363-19.413h.94s1.45 1.024 4.198 3.777c2.748 2.754 3.77 4.205 3.77 4.205v.94l-.713-.252s-1.19-2.045-3.544-4.405c-2.357-2.362-4.4-3.554-4.4-3.554s-5.79 5.45-9.63 9.297zm10.172 11.5c1.385 1.328 2.81 2.697 3.43 3.32 1.39 1.392 3.452 3.646 4.717 4.913.39.39 1.166 1.12 2.045 1.932l-.295.295c-1.567-1.53-3.72-3.615-6.716-6.618-1.198-1.2-2.306-2.287-3.265-3.214.002-.21.03-.42.082-.627zm.74 2.51c-.458-.46-.696-.938-.785-1.416 1.698 1.646 3.623 3.522 4.974 4.877 1.357 1.36 3.14 3.077 4.81 4.65l-.445.448c-2.833-2.836-6.648-6.656-8.552-8.56zm-9.086 35.26c-1.362 1.367-2.043 2.96-2.043 2.96l-1.135 1.137 1.364 1.365s-2.374-1.722-3.63-2.98c-1.257-1.26-2.784-3.446-2.784-3.446l1.135-1.14s1.817-.453 3.18-1.817l35.72-35.796.082-.084 1.172-1.175c2.382-2.388 4.995-7.733 4.995-7.733l6.266-6.28 1.056-.715 7.434 7.45-.715 1.06-6.266 6.277s-6.47 1.48-8.853 3.867l-1.256 1.258-35.725 35.79zm52.464.713c-.885-.77-3.988-3.477-4.68-4.172-.812-.81-3.103-3.112-3.584-3.596-.482-.483-2.213-1.84-2.213-1.84s1.196 1.313 1.525 1.64c.326.328 2.152 1.848 3.513 3.21 1.17 1.173 4.29 4.35 5.148 5.225-.278.4-.643.857-1.11 1.37-.747-.652-3.103-2.723-4.14-3.763-1.24-1.243-2.344-2.244-3.653-3.56-1.308-1.31-2.6-2.46-3.754-3.615-1.153-1.157-4.477-4.635-4.477-4.635s3.393 3.887 4.65 5.146 2.15 1.88 3.65 3.383c1.5 1.502 3.763 3.867 4.658 4.764.724.726 2.316 1.99 2.903 2.45-.133.142-.268.282-.417.435-.226.227-.438.426-.646.614l.004-.004c-.21-.026-.44-.204-.72-.484-.316-.315-6.706-6.82-13.575-13.706-2.554-2.56-7.598-7.223-8.304-7.845-.57-.5-.842-1.003-.916-1.51.75.69 1.506 1.408 2.188 2.09 1.967 1.974 4.036 3.803 4.036 3.803s-3.367-3.474-4.85-4.96c-.33-.33-.82-.77-1.396-1.27.008-.286.073-.57.188-.852.937.925 1.637 1.614 1.93 1.908 1.464 1.468 3.136 3.28 3.996 4.144s3.236 3.313 3.236 3.313-3.203-3.626-5.062-5.487c-.9-.902-2.432-2.475-4.008-4.092.058-.116.12-.232.188-.352.062-.103.142-.208.22-.313 1.682 1.74 3.258 3.37 3.772 3.89 1.69 1.69 4.013 4.13 5.2 5.32 1.188 1.19 3.875 3.772 5.236 5.136 1.36 1.362 3.17 3.112 4.375 4.32 1.206 1.21 4.47 3.984 4.47 3.984s-5.193-5.13-7.053-6.994c-1.86-1.863-4.22-3.958-5.375-5.115-1.608-1.61-4.252-4.455-5.615-5.816-1.36-1.365-1.773-1.606-2.065-1.9-.21-.21-1.724-1.796-2.845-2.96.77-.98 2.103-1.993 3.042-2.07 2.892 3.142 6.002 6.5 9.095 9.6 6.87 6.886 13.663 13.063 13.733 13.134.054.048.31.67-.498 2.035zm-81.742 45.175h1.663l7.9 10.183v-10.183h2.08v14h-2.08l-7.484-10.182v10.182h-2.08m24.948-11.88v-2.12h-8.317v14h8.317v-2.12h-6.237v-3.818h5.82v-2.122h-5.82v-3.82m9.563-2.12v2.12h4.574v11.88h2.08v-11.88h4.572v-2.12m2.495 0 4.158 14h1.663l2.91-10.605 2.911 10.605h1.665l4.157-14h-2.08l-2.493 8.484-.416 2.123-.416-2.123-2.495-8.484h-1.664l-2.495 8.484-.416 2.123-.416-2.123-2.494-8.484m44.905 4.167c0 3.333-3.326 4.167-3.326 4.167l.832.833 3.326 5h-2.078l-3.742-5.65h-2.08v5.65h-2.078v-13.75s2.078-.417 3.742-.417c2.078 0 5.404.834 5.404 4.167m-7.068 2.5h1.664c1.246 0 3.326-.417 3.326-2.5s-2.08-2.292-2.91-2.292c-1.248 0-2.08.21-2.08.21zm-17.463.209c0-3.01 1.86-5.45 4.158-5.45s4.158 2.44 4.158 5.45c0 3.008-1.86 5.447-4.158 5.447-2.296 0-4.158-2.44-4.158-5.447zm4.158 7.124c3.444 0 6.236-3.19 6.236-7.124 0-3.936-2.79-7.126-6.235-7.126s-6.238 3.19-6.238 7.126c.002 3.935 2.793 7.124 6.237 7.124zm25.779-14h2.08v5.94h.83l4.99-5.94h2.495l-4.99 5.94-1.25.848 1.25.85 5.405 6.362h-2.494l-5.406-6.363h-.83v6.363h-2.08m-103.284-41.044c.062-.41.11-.87.14-1.372l.092-1.512c.03-.516.057-1.018.077-1.503.02-.49.03-.93.03-1.32v-.214l-18.049-.035v.43c0 .39.01.656.03 1.153.02.495.046 1.003.077 1.52.03.515.065 1.02.106 1.517.04.496.092.947.153 1.34l.028.18h1.076l1.61-4.16h4.295l.002 17.083c-.464.072-.906.162-1.314.268-.458.117-.917.256-1.367.413l-.142.05v1.21h8.946v-1.202l-.132-.054c-.434-.178-.89-.318-1.355-.417-.407-.088-.843-.174-1.307-.262l-.002-17.087h4.264l1.596 4.16h1.118l.028-.184zm11.075 1.02c-.556-.438-1.2-.757-1.91-.944-.704-.187-1.426-.28-2.147-.28-2.234 0-3.99.67-5.22 1.993-1.226 1.32-1.848 3.255-1.848 5.755 0 1.17.162 2.24.482 3.178.32.943.8 1.77 1.425 2.45.626.682 1.418 1.212 2.354 1.576.93.363 2.02.547 3.232.547.56 0 1.115-.064 1.656-.19.54-.13 1.043-.304 1.498-.52.458-.217.87-.48 1.228-.775.364-.306.638-.638.812-.988l.066-.133-.66-.714-.15.127c-.338.285-.862.522-1.557.705-.708.188-1.415.28-2.104.28-.837 0-1.574-.143-2.19-.427-.615-.28-1.13-.675-1.534-1.166-.405-.494-.714-1.084-.917-1.754-.188-.614-.29-1.28-.308-1.983h9.427l.034-.168c.083-.392.14-.764.17-1.104s.047-.682.047-1.01c0-1.063-.175-1.973-.52-2.698-.346-.726-.806-1.32-1.365-1.756zm-4.178.465c.967 0 1.655.328 2.104 1 .46.69.694 1.64.694 2.815 0 .15-.005.304-.015.46-.008.103-.016.202-.026.307h-6.268c.132-1.687.478-2.88 1.028-3.55.572-.695 1.383-1.03 2.483-1.03zm21.519 12.022c-.256-.1-.518-.196-.783-.288l-4.657-6.195 4.013-5.118c.733-.214 1.302-.452 1.69-.706l.096-.064v-1.09h-5.484v1.08l.082.063c.3.233.728.444 1.305.644l-2.76 3.895-2.81-3.894c.186-.065.362-.144.526-.232.24-.132.485-.274.726-.43l.098-.063v-1.062h-6.517v1.09l.1.065c.25.16.5.298.737.405.22.103.467.2.734.294l4.41 5.703-4.373 5.607c-.56.144-1.126.38-1.684.704l-.105.063v1.066h5.607v-1.072l-.11-.06c-.246-.138-.492-.267-.74-.385-.168-.08-.35-.16-.542-.232l3.064-4.31 3.036 4.31c-.162.063-.326.137-.488.223-.244.126-.508.27-.793.425l-.11.06v1.044h6.64v-1.063l-.1-.064c-.253-.164-.526-.303-.81-.413zm11.588-.799c-.367.13-.82.22-1.347.27-.538.047-.99.07-1.348.07-.71 0-1.225-.213-1.57-.647-.352-.444-.53-1.23-.53-2.34v-8.017h4.553v-2h-4.552v-4h-.967l-.083.02c-.346.155-.695.316-1.05.482-.368.173-.694.374-.97.6l-.078.06v2.425c-.81.21-1.592.552-2.328 1.015l-.1.062v1.336h2.428v8.837c0 1.53.342 2.66 1.017 3.358.675.7 1.658 1.055 2.924 1.055.48 0 .957-.062 1.417-.183.455-.12.88-.27 1.264-.45.383-.18.73-.372 1.028-.573.305-.202.547-.398.72-.588l.102-.11-.36-.74zm10.903-12.914c-1.215 0-2.22.314-2.982.938-.553.453-1.02 1.02-1.394 1.693v-2.63l-.995.002c-.656.1-1.33.233-2.006.4-.687.166-1.366.39-2.02.667l-.13.054v1.1l2.004.23v16.98c-.608.156-1.24.384-1.88.674l-.124.057v1.087h7.154v-1.072l-.105-.062c-.376-.22-.736-.39-1.072-.5-.274-.09-.55-.16-.827-.204v-4.144c.41.157.794.273 1.148.35.436.088 1.042.135 1.802.135 1.094 0 2.105-.192 3.007-.572.903-.38 1.684-.928 2.32-1.63.633-.7 1.128-1.572 1.47-2.592.34-1.013.513-2.158.513-3.403 0-2.635-.52-4.57-1.54-5.758-1.028-1.195-2.49-1.8-4.343-1.8zm2.554 7.555c0 .95-.1 1.832-.295 2.62-.197.784-.48 1.478-.84 2.06-.354.573-.79 1.022-1.296 1.335-.502.31-1.074.467-1.7.467-.71 0-1.293-.052-1.73-.155-.39-.092-.748-.226-1.068-.398v-8.034c.233-.998.632-1.79 1.184-2.36.544-.56 1.29-.843 2.22-.843.65 0 1.203.13 1.646.383.442.255.804.616 1.077 1.08.278.472.483 1.04.61 1.685.127.65.19 1.378.19 2.16zm17.049 4.698c-.02-.3-.03-.66-.03-1.08 0-.976.027-2.003.076-3.053.05-1.068.076-2.19.076-3.333 0-.548-.052-1.103-.154-1.652-.107-.564-.334-1.088-.676-1.555-.344-.467-.846-.853-1.494-1.145-.642-.29-1.502-.437-2.558-.437-1.165 0-2.24.128-3.194.38-.955.254-1.833.61-2.613 1.06l-.114.063.008.134c.04.604.14 1.228.294 1.85.153.62.333 1.228.537 1.805l.048.14h1.074l1.445-3.497c.298-.108.603-.176.907-.2.35-.027.664-.04.938-.04.562 0 1.02.116 1.354.35.34.234.6.57.775 1 .183.445.292.992.32 1.625.026.6.006 1.276-.06 2.02-1.344.076-2.545.185-3.57.32-1.086.147-2.016.392-2.76.724-.76.34-1.347.816-1.742 1.413-.396.598-.597 1.37-.597 2.29 0 1.21.418 2.2 1.24 2.95.812.74 1.875 1.117 3.157 1.117.67 0 1.275-.102 1.803-.3.523-.2.987-.463 1.38-.783.39-.32.712-.693.956-1.106.104-.172.19-.347.266-.52.018.354.04.688.062 1 .042.553.172 1.066.383 1.528l.057.12.925-.002c.57-.098 1.177-.243 1.8-.438.624-.193 1.2-.42 1.716-.675l.117-.06v-.922l-2.105-.287c-.014-.282-.032-.55-.047-.805zm-3.937.123c-.245.25-.555.47-.915.65-.354.177-.772.266-1.245.266-.72 0-1.268-.2-1.675-.614-.4-.406-.606-1-.606-1.765 0-.447.076-.85.226-1.193.143-.33.41-.61.793-.837.402-.234.97-.41 1.69-.52.688-.106 1.577-.164 2.644-.17v2.773c-.06.17-.16.382-.305.63-.154.264-.358.526-.607.78zm17.199.538c-.367.132-.82.22-1.348.27-.537.047-.992.07-1.348.07-.71 0-1.225-.212-1.57-.648-.352-.443-.53-1.23-.53-2.34v-8.016h4.555v-2h-4.553v-4h-.967l-.082.02c-.347.155-.695.316-1.05.482-.368.173-.694.374-.97.6l-.08.062v2.423c-.81.21-1.59.552-2.326 1.015l-.1.062v1.336h2.427v8.838c0 1.53.342 2.66 1.016 3.357.676.7 1.66 1.055 2.926 1.055.48 0 .957-.062 1.417-.183.453-.12.878-.27 1.263-.45.382-.18.728-.372 1.028-.573.305-.202.547-.398.72-.588l.104-.11-.36-.74c0 0-.172.058-.172.058zm11.231 0c-.367.132-.82.22-1.348.27-.538.047-.99.07-1.348.07-.71 0-1.225-.212-1.57-.648-.35-.443-.53-1.23-.53-2.34v-8.016h4.554v-2h-4.552v-4h-.966l-.083.02c-.346.155-.696.316-1.05.482-.37.173-.694.374-.97.6l-.08.062v2.423c-.81.21-1.59.552-2.327 1.015l-.1.062v1.336h2.428v8.838c0 1.53.344 2.66 1.018 3.357.675.7 1.66 1.055 2.925 1.055.48 0 .956-.062 1.416-.183.453-.12.878-.27 1.263-.45.383-.18.73-.372 1.03-.573.304-.202.546-.398.72-.588l.102-.11-.36-.74zm12.805-11.688c-.555-.438-1.198-.756-1.912-.944-.702-.187-1.424-.28-2.146-.28-2.235 0-3.99.67-5.22 1.993-1.227 1.32-1.848 3.256-1.848 5.756 0 1.172.162 2.24.48 3.18.32.942.8 1.768 1.426 2.448.625.683 1.418 1.213 2.354 1.577.93.363 2.018.547 3.23.547.56 0 1.115-.065 1.655-.192.54-.13 1.044-.303 1.497-.52.458-.216.872-.478 1.23-.774.364-.306.638-.638.81-.988l.065-.133-.658-.714-.15.128c-.34.285-.862.522-1.56.705-.706.188-1.414.28-2.102.28-.84 0-1.576-.143-2.19-.427-.616-.28-1.132-.675-1.535-1.166-.405-.493-.714-1.082-.917-1.753-.188-.614-.29-1.28-.307-1.983h9.43l.034-.168c.082-.393.14-.765.17-1.104.03-.34.047-.68.047-1.012 0-1.062-.175-1.97-.52-2.697-.344-.727-.803-1.32-1.362-1.757zm-4.18.465c.967 0 1.655.328 2.104 1 .46.69.692 1.64.692 2.815 0 .15-.004.304-.015.46l-.025.307h-6.268c.13-1.687.48-2.88 1.027-3.55.574-.695 1.385-1.03 2.484-1.03zm18.462-.709c-.114-.307-.247-.594-.395-.854l-.052-.093-.106-.012c-.57-.062-1.134-.005-1.677.167-.534.17-1.033.418-1.482.736-.447.316-.848.68-1.19 1.074-.204.235-.382.474-.532.71v-2.69l-.998.004c-.635.098-1.305.23-1.988.394-.697.165-1.38.39-2.035.66l-.13.054v1.085l2.003.23v11.005c-.273.067-.548.143-.822.224-.336.102-.695.252-1.068.45l-.11.06v1.064h7.578v-1.065l-.114-.06c-.418-.22-.84-.385-1.256-.494-.353-.092-.707-.16-1.06-.2v-8.355c.25-.646.53-1.14.84-1.47.293-.313.54-.53.735-.643h4.194v-.964l-.01-.064c-.104-.33-.21-.65-.323-.952zm18.1 13.148c-.51-.315-1.15-.55-1.904-.69v-7.145c0-1.21-.115-2.23-.343-3.025-.23-.812-.573-1.47-1.02-1.954-.45-.49-1.018-.835-1.688-1.03-.653-.187-1.402-.282-2.227-.282-1.175 0-2.192.337-3.025 1-.616.49-1.13 1.062-1.532 1.7v-2.7l-1.002.004c-.754.136-1.484.292-2.17.465-.694.178-1.314.375-1.846.59l-.133.052v1.09l2.003.23v11.022c-.77.203-1.403.43-1.887.667l-.117.06v1.07h6.97v-1.06l-.104-.063c-.552-.326-1.13-.556-1.718-.685v-8.242c.134-.374.315-.742.542-1.092.23-.357.51-.685.828-.97.314-.28.682-.508 1.093-.672.41-.163.86-.246 1.336-.246 1.102 0 1.835.38 2.245 1.16.428.815.645 1.95.645 3.374v6.703c-.598.186-1.16.407-1.674.66l-.116.058v1.071h6.94v-1.057l-.095-.062z' fill='%23fff'/%3E%3C/svg%3E") no-repeat;
  background-size: 158px 120px;
}

.digitalocean {
  overflow: hidden;
  text-indent: 110%;
  text-transform: capitalize;
  white-space: nowrap;
  display: inline-block;
  width: 178px;
  height: 30px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 178 30'%3E%3Cg fill='%23fff'%3E%3Cpath d='m15 30v-5.81c6.17 0 10.93-6.1 8.58-12.58-.87-2.4-2.79-4.32-5.19-5.19-6.48-2.35-12.58 2.41-12.58 8.58h-5.81c0-9.82 9.49-17.47 19.78-14.26 4.5 1.4 8.07 4.98 9.48 9.48 3.21 10.29-4.44 19.78-14.26 19.78z'/%3E%3Cpath d='m15.01 24.21h-5.79v-5.79-.01h5.79z'/%3E%3Cpath d='m9.22 28.66h-4.45v-.01-4.44h4.45v4.44z'/%3E%3Cpath d='m4.77 24.21h-3.73v-.01-3.72-.01h3.73v.01z'/%3E%3Cpath d='m52.84 8.67c-1.72-1.19-3.87-1.67-6.38-1.67h-5.46v17h5.46c2.5 0 4.65-.51 6.38-1.77.94-.67 1.68-1.6 2.2-2.77.52-1.16.78-2.53.78-4.08 0-1.52-.26-2.88-.78-4.02-.51-1.15-1.25-2.05-2.2-2.69zm-8.84 1.33h1.9c1.91 0 3.48.17 4.67.9 1.32.79 1.99 2.3 1.99 4.49 0 2.25-.67 3.83-2 4.69-1.14.75-2.7.92-4.64.92h-1.92z'/%3E%3Cpath d='m59.5 6.5c-.55 0-1.03.2-1.41.58-.39.37-.59.84-.59 1.4s.2 1.04.58 1.43c.39.39.86.59 1.42.59.55 0 1.03-.2 1.42-.59s.58-.87.58-1.43-.2-1.03-.58-1.4c-.39-.38-.87-.58-1.42-.58z'/%3E%3Cpath d='m58 12h3v12h-3z'/%3E%3Cpath d='m72.29 12.99c-.93-.82-1.96-1.3-3.08-1.3-1.7 0-3.1.58-4.19 1.73-1.1 1.14-1.65 2.61-1.65 4.36 0 1.72.55 3.18 1.63 4.35 1.09 1.14 2.51 1.71 4.21 1.71 1.18 0 2.2-.33 3.03-.98v.28c0 1.01-.27 1.79-.81 2.33-.53.54-1.27.81-2.2.81-1.42 0-2.31-.55-3.39-2.01l-2.09 2 .06.08c.45.63 1.14 1.25 2.06 1.84.91.58 2.06.88 3.41.88 1.82 0 3.3-.56 4.38-1.66 1.09-1.11 1.65-2.59 1.65-4.41v-11h-3.02zm-.81 7.18c-.54.61-1.23.9-2.11.9s-1.57-.29-2.09-.9c-.53-.6-.79-1.4-.79-2.38 0-.99.27-1.8.79-2.41.52-.6 1.23-.91 2.09-.91.88 0 1.57.3 2.11.91.53.61.81 1.42.81 2.4 0 .99-.28 1.79-.81 2.39z'/%3E%3Cpath d='m78 12h3v12h-3z'/%3E%3Cpath d='m79.5 6.5c-.55 0-1.03.2-1.41.58-.39.37-.59.84-.59 1.4s.2 1.04.58 1.43c.39.39.86.59 1.42.59.55 0 1.03-.2 1.42-.59s.58-.87.58-1.43-.2-1.03-.58-1.4c-.39-.38-.87-.58-1.42-.58z'/%3E%3Cpath d='m88 8.5h-3v3.5h-2v3h2v4.81c0 1.58.12 2.71.75 3.36s1.65.98 3.22.98c.5 0 1.53-.15 1.53-.15v-2.69l-.96.06c-.73 0-1.06-.13-1.29-.38-.23-.26-.25-.8-.25-1.61v-4.38h2.5v-3h-2.5z'/%3E%3Cpath d='m105 7h3v17h-3z'/%3E%3Cpath d='m139.09 19.78c-.55.61-1.11 1.14-1.54 1.42-.42.27-.96.41-1.59.41-.9 0-1.63-.33-2.23-1-.59-.67-.89-1.54-.89-2.57s.3-1.9.88-2.56c.58-.67 1.31-1 2.21-1 .99 0 2.03.61 2.93 1.66l2.03-1.94c-1.32-1.71-3.01-2.51-5.03-2.51-1.69 0-3.15.61-4.34 1.82-1.19 1.2-1.79 2.72-1.79 4.53s.6 3.34 1.79 4.54c1.19 1.21 2.65 1.82 4.35 1.82 2.22 0 4.02-.96 5.23-2.71z'/%3E%3Cpath d='m151.7 13.68c-.44-.6-1.03-1.09-1.76-1.45s-1.59-.53-2.54-.53c-1.71 0-3.12.63-4.17 1.87-1.02 1.23-1.54 2.77-1.54 4.56 0 1.84.57 3.37 1.69 4.53s2.61 1.75 4.44 1.75c2.07 0 3.77-.83 5.05-2.48l.07-.09-2-1.92c-.19.22-.45.48-.69.7-.3.28-.59.51-.89.66-.46.23-.97.34-1.55.34-.85 0-1.56-.25-2.09-.74-.5-.46-.8-1.11-.88-1.87l8.14.03.03-1.12c0-.79-.11-1.55-.32-2.26-.24-.72-.56-1.39-.99-1.98zm-6.7 2.86c.15-.58.4-1.07.79-1.44.42-.41.96-.61 1.61-.61.74 0 1.32.21 1.71.63.36.39.57.87.61 1.43h-4.72z'/%3E%3Cpath d='m163.49 12.89c-.93-.79-2.22-1.19-3.82-1.19-1.02 0-1.98.22-2.84.66-.8.4-1.58 1.07-2.08 1.95l.03.04 1.97 1.87c.81-1.29 1.71-1.73 2.9-1.73.64 0 1.17.17 1.58.51s.61.76.61 1.3v.59c-.76-.23-1.52-.35-2.26-.35-1.53 0-2.77.36-3.7 1.06-.94.71-1.41 1.74-1.41 3.04 0 1.14.4 2.07 1.19 2.76.8.66 1.8 1 2.97 1s2.26-.47 3.26-1.27v.87h3.02v-7.68c-.01-1.48-.48-2.63-1.42-3.43zm-5.45 6.6c.35-.24.84-.36 1.46-.36.74 0 1.52.15 2.33.44v1.19c-.67.62-1.56.93-2.65.93-.53 0-.94-.12-1.23-.35-.28-.23-.41-.52-.41-.88 0-.43.16-.74.5-.97z'/%3E%3Cpath d='m176.72 13.13c-.86-.95-2.06-1.43-3.57-1.43-1.22 0-2.21.35-2.95 1.04v-.74h-3.01v12h3.07v-6.57c0-.92.22-1.65.65-2.17s1.03-.77 1.82-.77c.7 0 1.22.23 1.61.69.39.47.59 1.11.59 1.91v6.91h3.07v-6.91c0-1.69-.43-3.02-1.28-3.96z'/%3E%3Cpath d='m101.14 12.89c-.93-.79-2.22-1.19-3.82-1.19-1.02 0-1.98.22-2.84.66-.8.4-1.58 1.07-2.08 1.95l.03.04 1.97 1.87c.81-1.29 1.71-1.73 2.9-1.73.64 0 1.17.17 1.58.51s.61.76.61 1.3v.59c-.76-.23-1.52-.35-2.26-.35-1.53 0-2.77.36-3.7 1.06-.94.71-1.41 1.74-1.41 3.04 0 1.14.4 2.07 1.19 2.76.8.66 1.8 1 2.97 1s2.26-.47 3.26-1.27v.87h3.02v-7.68c-.01-1.48-.49-2.63-1.42-3.43zm-5.46 6.6c.35-.24.84-.36 1.46-.36.74 0 1.52.15 2.33.44v1.19c-.67.62-1.56.93-2.65.93-.53 0-.94-.12-1.23-.35-.28-.23-.41-.52-.41-.88 0-.43.17-.74.5-.97z'/%3E%3Cpath d='m119.21 24.39c-4.93 0-8.93-3.99-8.93-8.89s4.01-8.89 8.93-8.89c4.93 0 8.93 3.99 8.93 8.89s-4 8.89-8.93 8.89zm0-14.65c-3.19 0-5.78 2.58-5.78 5.76s2.59 5.76 5.78 5.76 5.78-2.58 5.78-5.76-2.59-5.76-5.78-5.76z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 178px 30px;
}

.site-footer {
  position: relative;
  clear: both;
}

/**
 * 1. Allow positioning within `article` and `section` content.
 * 2. Prevent really, really long words in `article` and `section` from breaking layout.
 */
article,
section {
  position: relative; /* 1 */
  z-index: 1; /* 1 */
  word-wrap: break-word; /* 2 */
}

/**
 * Zebra striping in main content area.
 *
 * Example HTML:
 *
 * <div class="wrapper">
 *     <div class="inner-wrapper zebra">
 *         <div class="container">
 *             Content
 *         </div>
 *     </div>
 * </div>
 */
.wrapper-inner {
  position: relative;
  padding: 1em 0;
}

.zebra {
  background-color: var(--clr-bkgd-zebra);
}

.animation-wrapper {
  background-color: var(--clr-text-white-enforced);
}

/**
 * Sidebar layout. Overrode in third breakpoint.
 */
.sidebar {
  border-top: 2px dashed var(--clr-text);
}

/**
 * General articles and article teasers.
 */
main .layout-4col-3span {
  margin-bottom: 1.5em;
}

.teaser {
  margin-bottom: 1.5em;
  border-top: 2px dashed var(--clr-brdr);
}
.teaser:first-child {
  border-top: 0;
}

.teaser-container {
  border-top: 2px dashed var(--clr-brdr);
}

/**
 * Advertising links.
 */
.ads-area {
  margin: 0 -0.75em;
  text-align: center;
  content-visibility: auto;
  contains-intrinsic-size: 0 558px;
}
.ads-area header {
  margin: 0 0 0.25em;
  font-family: var(--font-serif);
  font-weight: 400;
}

.ads {
  display: inline-block;
  width: 300px;
  height: 250px;
  margin: 0.5em 0.75em;
}

.ads a {
  display: block;
}

/**
 * Homepage animation canvas.
 */
#animation-container {
  margin: 0 auto;
}

#animation {
  display: block;
  width: 100%;
  max-width: 1150px;
  margin: 0 auto;
}
#animation img {
  max-width: 100%;
  height: auto;
}

/* Homepage feature images.
   ========================================================================== */
/**
 * Showcase section.
 */
/**
 * Showcase images.
 */
/**
 * Hide `hr` in homepage CTA for smaller breakpoints.
 */
/**
 * Documentation site Kramdown footnotes.
 */
.footnotes {
  margin: 2em 0;
  border-top: 1px dashed var(--clr-brdr);
}

/**
 * Issue report statement.
 */
.report-issues {
  margin: 2em 0;
}
.layout-container .report-issues {
  margin-bottom: 0;
}

/**
 * Value bubbles (e.g. on GitHub Stars counter).
 */
.count-bubble {
  position: relative;
  padding: 0.375em;
  border: 1px solid var(--clr-btn-brdr);
  border-radius: 0.25em;
  background: var(--clr-bkgd);
  color: var(--clr-text);
  font-weight: 700;
}
.count-bubble:hover {
  border-color: var(--clr-btn-brdr-interact);
  filter: brightness(1.05);
  color: var(--clr-text);
  text-decoration: none;
}
.count-bubble:hover::before {
  border-color: transparent var(--clr-btn-brdr-interact);
}
.count-bubble:focus {
  border-color: var(--clr-focus);
  outline: 2px solid transparent;
}
.count-bubble:focus::before {
  border-color: transparent var(--clr-focus);
}

.count-bubble::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
  top: 50%;
  left: -8px;
  width: 0;
  margin-top: -8px;
  border-width: 8px 8px 8px 0;
  border-style: solid;
  border-color: transparent var(--clr-bkgd);
}

.count-bubble::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  top: 50%;
  left: -9px;
  width: 0;
  margin-top: -8px;
  border-width: 8px 8px 8px 0;
  border-style: solid;
  border-color: transparent var(--clr-btn-brdr);
}

/* Navigation
   ========================================================================== */
.nav-container {
  border-bottom: 2px solid var(--clr-text);
}

@media (prefers-color-scheme: dark) {
  .nav-container {
    border-bottom-color: var(--clr-brdr-x-dark);
  }
}
/**
 * Navigation toggle show/hide button for mobile first navigation.
 *
 * 1. Disables the default bubble shown when you touch and hold a touch target.
 *
 * Example HTML:
 *
 * <a id="site-navigation-toggle">
 */
/* Links
   ========================================================================== */
/**
 * 1. Specify link colour.
 * 2. Remove default underline style from non-hover state links.
 * 3. Interrupt the decoration line to let the shape of the text show through
 *    in supported browsers.
 * 4. Remove tap delay in modern browsers.
 */
a {
  color: var(--clr-a); /* 1 */
  text-decoration: none; /* 2 */
  text-decoration-skip-ink: auto; /* 3 */
  text-underline-offset: 0.125em;
  touch-action: manipulation; /* 4 */
}
a:hover, a:active {
  color: var(--clr-a-interact);
  text-decoration: underline;
}
a:focus-within {
  outline: 2px solid var(--clr-focus);
}

/**
 * Additional styling for heading links.
 *
 * 1. Expanded CSS level 3 `text-decoration-color` property in supported
 *    browsers, older browsers ignore this addition.
 */
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  color: var(--clr-text-promoted);
}
h1 a:hover, h1 a:active,
h2 a:hover,
h2 a:active,
h3 a:hover,
h3 a:active,
h4 a:hover,
h4 a:active,
h5 a:hover,
h5 a:active,
h6 a:hover,
h6 a:active {
  color: var(--clr-text-promoted);
  text-decoration-color: var(--clr-text-promoted-a50); /* 1 */
}

/**
 * Additional styling for links within complementary content and site footer.
 */
.complementary-content a:not(.button),
.site-footer a {
  color: var(--clr-a-alt);
}
.complementary-content a:not(.button):hover, .complementary-content a:not(.button):active,
.site-footer a:hover,
.site-footer a:active {
  color: var(--clr-a-alt-interact);
}

/**
 * Images as links.
 *
 * Example HTML:
 *
 * <a class="a--img">
 *     <img>
 * </a>
 */
.a--img img {
  border: solid 1px var(--clr-brdr);
}
.a--img:hover img {
  border-color: var(--clr-a-interact);
}
.a--img:focus {
  outline: 2px solid transparent;
}
.a--img:focus img {
  border-color: var(--clr-focus);
}

/**
 * Visually hide unfocussed/inactive ‘skip links’.
 *
 * Example HTML:
 *
 * <a class="a--skip-link">
 */
.a--skip-link {
  position: absolute;
  z-index: 2;
  top: 1px;
  left: 1px;
  padding: 0.25em 0.5em;
  transform: translateY(-5em);
  transition: transform 0.25s ease-in-out;
  background-color: var(--clr-nav-active);
  color: var(--clr-text);
}
.a--skip-link:focus, .a--skip-link:active {
  transform: translateY(0);
}

/**
 * Link group, with comfortable space between items.
 *
 * Example HTML:
 *
 * <p class="link-group">
 *     <a>Link 1
 *     <a>Link 2
 */
.link-group a {
  margin-right: 0.5rem;
}

/* Typography
   ========================================================================== */
/**
 * Establish baseline.
 *
 * 1. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.5;
  text-size-adjust: 100%;
  /* 1 */
  /*
   Variable font-scaling based on rems */
  --min-fs: .8125;
  --max-fs: 1;
  --min-vw: 20;
  --max-vw: 92;
  --min-fs-rem: var(--min-fs) * 1rem;
  --max-fs-rem: var(--max-fs) * 1rem;
  --min-vw-rem: var(--min-vw) * 1rem;
  --slope: (var(--max-fs) - var(--min-fs)) * (100vw - var(--min-vw-rem)) / (var(--max-vw) - var(--min-vw));
  font-size: clamp(var(--min-fs-rem), var(--min-fs-rem) + var(--slope), var(--max-fs-rem));
}

/**
 * Global font.
 *
 * 1. Enable font ligatures globally, where supported by OpenType fonts.
 */
body {
  font-family: var(--font-sans-serif);
  font-feature-settings: "liga";
  /* 1 */
}

/**
 * Block-level text alignment/justification.
 *
 * Example HTML:
 *
 * <p class="align-left">
 * <p class="align-right">
 * <p class="align-center">
 * <p class="align-justify">
 */
article.align-left,
aside.align-left,
blockquote.align-left,
dd.align-left,
details.align-left,
dialog.align-left,
div.align-left,
dl.align-left,
dt.align-left,
fieldset.align-left,
figcaption.align-left,
figure.align-left,
footer.align-left,
form.align-left,
h1.align-left,
h2.align-left,
h3.align-left,
h4.align-left,
h5.align-left,
h6.align-left,
header.align-left,
li.align-left,
main.align-left,
nav.align-left,
ol.align-left,
p.align-left,
pre.align-left,
section.align-left,
table.align-left,
ul.align-left {
  text-align: left;
}
article.align-right,
aside.align-right,
blockquote.align-right,
dd.align-right,
details.align-right,
dialog.align-right,
div.align-right,
dl.align-right,
dt.align-right,
fieldset.align-right,
figcaption.align-right,
figure.align-right,
footer.align-right,
form.align-right,
h1.align-right,
h2.align-right,
h3.align-right,
h4.align-right,
h5.align-right,
h6.align-right,
header.align-right,
li.align-right,
main.align-right,
nav.align-right,
ol.align-right,
p.align-right,
pre.align-right,
section.align-right,
table.align-right,
ul.align-right {
  text-align: right;
}
article.align-center,
aside.align-center,
blockquote.align-center,
dd.align-center,
details.align-center,
dialog.align-center,
div.align-center,
dl.align-center,
dt.align-center,
fieldset.align-center,
figcaption.align-center,
figure.align-center,
footer.align-center,
form.align-center,
h1.align-center,
h2.align-center,
h3.align-center,
h4.align-center,
h5.align-center,
h6.align-center,
header.align-center,
li.align-center,
main.align-center,
nav.align-center,
ol.align-center,
p.align-center,
pre.align-center,
section.align-center,
table.align-center,
ul.align-center {
  text-align: center;
}
article.align-justify,
aside.align-justify,
blockquote.align-justify,
dd.align-justify,
details.align-justify,
dialog.align-justify,
div.align-justify,
dl.align-justify,
dt.align-justify,
fieldset.align-justify,
figcaption.align-justify,
figure.align-justify,
footer.align-justify,
form.align-justify,
h1.align-justify,
h2.align-justify,
h3.align-justify,
h4.align-justify,
h5.align-justify,
h6.align-justify,
header.align-justify,
li.align-justify,
main.align-justify,
nav.align-justify,
ol.align-justify,
p.align-justify,
pre.align-justify,
section.align-justify,
table.align-justify,
ul.align-justify {
  text-align: justify;
}

/**
 * Harmonize size, style and vertical margin of headings.
 */
h1,
h2,
h3,
h4,
h5,
h6,
.article-description {
  clear: both;
  font-family: var(--font-serif);
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.article-description small {
  font-family: var(--font-sans-serif);
  font-size: 0.75em;
}

main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  color: var(--clr-text-promoted);
}

h1,
h2,
h3 {
  letter-spacing: -0.25px;
}

h1 {
  margin: 0.6315789em 0;
  font-size: 2.375rem;
  line-height: 1.1842105;
}

h2 {
  margin: 0.8571429em 0;
  font-size: 1.75rem;
  line-height: 1.25;
}

h3 {
  margin: 1em 0;
  font-size: 1.375rem;
  line-height: 1.3181818;
}

h4,
.article-description {
  margin: 0.8888889em 0;
  font-size: 1.125rem;
  line-height: 1.4444444;
}

h5,
h6 {
  margin: 1em 0;
  font-size: 1rem;
  line-height: 1.375;
}

/**
 * Call to action headings.
 *
 * Example HTML:
 *
 * <h1 class="cta">
 *     <span>Content</span>
 * </h1>
 *
 * Also see _responsive.scss
 */
.cta {
  margin-top: 0.6666667em;
  font-size: 1.5rem;
  line-height: 1.5;
}
.cta span {
  padding: 0 0.2em;
  background: var(--clr-hilite-enforced);
  color: var(--clr-text-black-enforced);
  box-decoration-break: clone;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: 700;
}

/**
 * Oxford English quote behaviour (quotes: ‘ ’, quotes within quotes: “ ”).
 */
q,
blockquote {
  quotes: "‘" "’" "“" "”";
}

/**
 * Additional styling for blockquotes.
 */
blockquote {
  margin: 1em 0;
  padding: 1px 1em 1px 1.5em;
  border-left: 0.25em solid var(--clr-hilite);
  border-radius: 0 0.5em 0.5em 0;
  background-color: var(--clr-hilite-box);
}

/**
 * Additional styling for examples (similar to blockquotes but no applied semantics).
 */
.example {
  padding: 1px 0 1px 1.5rem;
  border-left: 0.25rem solid var(--clr-info-brdr);
  color: var(--clr-text-demoted);
}

ol.example,
ul.example {
  padding: 1px 0 1px 3.25em;
}

ul.example {
  list-style: circle;
}

/**
 * 1. Remove the bottom border in Chrome 57+.
 * 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
 */
abbr[title] {
  border-bottom: 0;
  /* 1 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Harmonize size and style of computer text.
 *
 * 1. Don't use ligatures on monospace font.
 */
pre,
code,
kbd,
samp {
  border: 1px solid var(--clr-brdr-x-lite);
  border-radius: 0.2857143em;
  background-color: var(--clr-bkgd-box);
  color: var(--clr-text);
  font-family: var(--font-monospaced);
  font-feature-settings: normal;
  /* 1 */
  font-size: 0.875rem;
}

code,
kbd,
samp {
  padding: 1px 0.2142857em;
}

/**
 * Additional stylng for preformatted text/code.
 *
 * 1. Contain overflow in all browsers.
 * 2. Don't wrap long words.
 * 3. Set tab size to 4 spaces.
 */
pre {
  padding: 0.5714286em 1.1428571em;
  overflow-x: auto;
  /* 1 */
  word-wrap: normal;
  /* 2 */
  tab-size: 4;
  /* 3 */
}
pre code {
  padding: 0;
  border: 0;
  background-color: transparent;
  font-size: 1em;
  hyphens: none;
  word-wrap: normal;
  word-break: normal;
  word-spacing: normal;
  white-space: pre;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in all browsers.
 */
sub,
sup.footnote,
sup {
  position: relative;
  font-size: 0.75em;
  line-height: 0;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/**
 * Harmonize size and style of small text.
 */
small,
figcaption,
tfoot,
blockquote footer,
.footnote,
.footnotes,
.card-header,
.card-footer {
  font-size: 0.75rem;
}

figcaption {
  margin: 0.5em 0;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 24px;
  overflow: visible;
  /* 2 */
  border: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 24'%3E%3Cpath fill='%23333' d='M0,0c1.742,13.61,54.74,20.912,119.995,15.279C184.922,9.679,238.594,13.024,240,24c-1.744-13.613-54.742-20.913-120.005-15.284C55.078,14.32,1.405,10.973,0,0z'/%3E%3C/svg%3E") 50% 50% no-repeat;
  background-size: 240px 24px;
}

@media (prefers-color-scheme: dark) {
  hr {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 24'%3E%3Cpath fill='%23ced4da' d='M0,0c1.742,13.61,54.74,20.912,119.995,15.279C184.922,9.679,238.594,13.024,240,24c-1.744-13.613-54.742-20.913-120.005-15.284C55.078,14.32,1.405,10.973,0,0z'/%3E%3C/svg%3E") 50% 50% no-repeat;
  }
}
/**
 * Separator pipe between textual elements.
 *
 * Example HTML:
 *
 * <span class="separator" role="separator">|</span>
 *
 * Also see _responsive.scss
 */
.separator {
  margin: 0 0.25em;
  color: var(--clr-text-demoted);
}

/**
 * Overflow text with ellipsis.
 *
 * Example HTML:
 *
 * <p class="ellipsis">
 *
 * <ul class="ellipsis">
 *     <li></li>
 */
.ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
}
.ellipsis li {
  overflow: inherit;
  text-overflow: inherit;
}

/* Alert messages
   ========================================================================== */
/**
 * Alert labels.
 *
 * Example HTML:
 *
 * <span class="success">
 * <span class="error">
 * <strong class="success">
 * <strong class="error">
 */
.success {
  color: var(--clr-success-text);
}

.warning {
  color: var(--clr-warning-text);
}

.error {
  color: var(--clr-error-text);
}

.information {
  color: var(--clr-info-text);
}

/**
 * Highlighted background.
 *
 * Example HTML:
 *
 * <table>
 *     <tr>
 *         <td class="highlighted></td>
 *         <td></td>
 *     </tr>
 * </table>
 */
.highlighted {
  background: var(--clr-hilite-box);
}

/**
 * Alert boxes.
 *
 * 1. Prevent really, really long words from breaking layout.
 *
 * Example HTML:
 *
 * <p class="alert-block success">
 * <p class="alert-block error">
 */
.alert-block {
  padding: 0.5em 1em;
  border: 1px solid;
  border-radius: 0.25em;
  word-wrap: break-word; /* 1 */
}
.alert-block.success {
  border-color: var(--clr-success-brdr);
  background: var(--clr-success-bkgd);
}
.alert-block.warning {
  border-color: var(--clr-warning-brdr);
  background: var(--clr-warning-bkgd);
}
.alert-block.error {
  border-color: var(--clr-error-brdr);
  background: var(--clr-error-bkgd);
}
.alert-block.information {
  border-color: var(--clr-info-brdr);
  background: var(--clr-info-bkgd);
}

/**
 * Alert pills.
 *
 * Example HTML:
 *
 * <small class="alert-block alert-pill warning">
 */
.alert-pill {
  display: inline-block;
  padding: 0.125em 0.33em;
  font-weight: 400;
}

/* Embedded content
   ========================================================================== */
/**
 * Make embedded elements responsive.
 */
img,
video {
  max-width: 100%;
  height: auto;
}

/**
 * Images.
 *
 * 1. Remove the gap between images and the bottom of their containers.
 *
 * Image alignment (compatible with Textile markup syntax).
 *
 * Example HTML:
 *
 * <img class="align-left">
 * <img class="align-right">
 * <img class="align-center">
 */
img {
  vertical-align: middle; /* 1 */
}
img.align-left {
  margin: 1em 1em 1em 0;
  float: left;
}
img.align-right {
  margin: 1em 0 1em 1em;
  float: right;
}
img.align-center {
  display: block;
  margin: 1em auto;
}

/**
 * Bordered images.
 *
 * Example HTML:
 *
 * <img class="img--bordered">
 */
.img--bordered {
  border: 1px solid var(--clr-brdr-lite);
}

/**
 * Consistent margins on `figure`.
 */
figure {
  margin: 1em 0;
}

/* Tables
   ========================================================================== */
/**
 * Allow overflow scroll on tables.
 *
 * Example HTML:
 *
 * <div class="tabular-data">
 *     <table></table>
 * </div>
 */
.tabular-data {
  margin-bottom: 1em;
  overflow-x: auto;
}
.tabular-data:focus {
  outline: thin solid var(--clr-focus);
}

/**
 * Consistent tables.
 */
table {
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse;
}

/**
 * Styling of table captions.
 */
caption {
  margin-bottom: 0.5em;
  font-style: italic;
  text-align: left;
}

/**
 * Make table cells align top and left by default and include border.
 */
th,
td {
  min-width: 6em;
  padding: 0.5em;
  border: 1px solid var(--clr-brdr-lite);
  vertical-align: top;
  text-align: left;
}

/**
 * Emphasize table header.
 */
thead tr {
  background-color: var(--clr-grad-from);
}
thead th,
thead td {
  border: 1px solid var(--clr-brdr);
  color: var(--clr-text-promoted);
}

/**
 * 'Zebra striping' of `tbody` rows.
 */
tbody tr:nth-child(even) {
  background-color: var(--clr-bkgd-box);
}
tbody tr.selected {
  background-color: var(--clr-nav-active);
}
tbody th {
  font-weight: 400;
}

/**
 * Adjust padding of table footer due to smaller font size.
 */
tfoot th,
tfoot td {
  padding: 0.6666667em;
}

/**
 * Multi-row span vertical cell alignments.
 */
[rowspan] {
  vertical-align: middle;
}

/**
 * Range values right in numerical cells.
 *
 * Example HTML:
 *
 * <tr>
 *     <td></td>
 *     <td></td>
 *     <td class="numerical"></td>
 * </tr>
 */
.numerical {
  text-align: right;
}

/**
 * Set widths of `col` elements using classes whose numbers represent a percentage
 * width for that column - we leave one column free of a class so that column can
 * soak up the effects of any accidental breakage in the table.
 *
 * Example HTML:
 *
 * <table>
 *     <colgroup>
 *         <col class="t10">
 *         <col class="t10">
 *         <col class="t10">
 *         <col>
 *     </colgroup>
 */
.t10 {
  width: 10%;
}

.t20 {
  width: 20%;
}

.t25 {
  width: 25%;
}

.t33 {
  width: 33.333%;
}

.t50 {
  width: 50%;
}

.t66 {
  width: 66.666%;
}

.t75 {
  width: 75%;
}

.t80 {
  width: 80%;
}

.t90 {
  width: 90%;
}

/* Lists
   ========================================================================== */
/**
 * Address paddings set differently.
 */
menu,
ol,
ul {
  padding: 0 0 0 1.75em;
}

/**
 * Remove margins from nested lists.
 */
li > ul,
li > ol {
  margin: 0;
}

/**
 * Remove margins from first/last lists within table cells.
 */
th ul:first-of-type,
th ol:first-of-type,
td ul:first-of-type,
td ol:first-of-type {
  margin-top: 0;
}
th ul:last-of-type,
th ol:last-of-type,
td ul:last-of-type,
td ol:last-of-type {
  margin-bottom: 0;
}

/**
 * CSS Lists and Counters Module Level 3 list marker styling.
 */
li::marker {
  color: var(--clr-text-promoted);
}

/**
 * Style for definition lists.
 */
dl {
  padding-bottom: 1em;
  border-bottom: 1px solid var(--clr-brdr-lite);
}

dt {
  margin-top: 1em;
  margin-bottom: 1em;
  padding-top: 1em;
  border-top: 1px solid var(--clr-brdr-lite);
  color: var(--clr-text-promoted);
  font-weight: 700;
}
dt code {
  border-color: var(--clr-info-brdr);
  background-color: var(--clr-info-bkgd);
}

dd {
  margin: 0 0 0 1.75em;
}

/**
 * Have a list with no bullets/numerals.
 *
 * Example HTML:
 *
 * <ul class="list--no-bullets">
 * <ol class="list--no-bullets">
 */
.list--no-bullets {
  padding: 0;
  list-style: none;
}

/**
 * Have a numbered `ul` without the semantics implied by using an `ol`.
 *
 * Example HTML:
 *
 * <ul class="list--numbered">
 */
.list--numbered {
  list-style-type: decimal;
}

/**
 * Have a 'file-tree'-style list (without any semantics implied).
 *
 * 1. Don't use ligatures on monospace font.
 *
 * Example HTML:
 *
 * <ul class="list--tree">
 * <ol class="list--tree">
 */
.list--files,
.list--files ol,
.list--files ul {
  list-style: none;
}

.list--files {
  font-family: var(--font-monospaced);
  font-feature-settings: normal; /* 1 */
  font-size: 0.875rem;
}
.list--files ol,
.list--files ul {
  position: relative;
}
.list--files ol::after,
.list--files ul::after {
  content: "";
  position: absolute;
  bottom: 0.75em;
  left: 0.5em;
  height: 100%;
  border-left: 1px solid var(--clr-brdr-x-dark);
}
.list--files li {
  position: relative;
}
.list--files li::after {
  content: "";
  position: absolute;
  top: 0;
  left: -1.25em;
  width: 0.75em;
  height: 0.75em;
  border-bottom: 1px solid var(--clr-brdr-x-dark);
  border-left: 1px solid var(--clr-brdr-x-dark);
}
.list--files > li::after {
  display: none;
}

.list--files .directory::before,
.list--files .directory--open::before,
.list--files .document::before,
.list--files .image::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-bottom: -2px;
  padding-right: 0.5em;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 16px 16px;
  vertical-align: baseline;
  text-indent: -9999px;
}

@media (prefers-color-scheme: dark) {
  .list--files ol::after,
  .list--files ul::after {
    border-color: var(--clr-brdr);
  }
  .list--files li::after {
    border-color: var(--clr-brdr);
  }
  .list--files .directory::before,
  .list--files .directory--open::before,
  .list--files .document::before,
  .list--files .image::before {
    filter: brightness(3) sepia(1) hue-rotate(168deg) saturate(33%);
  }
}
/**
 * Have a compact definition list.
 *
 * Example HTML:
 *
 * <dl class="definitionlist--compact">
 */
.definitionlist--compact dt {
  margin-bottom: 0;
}
.definitionlist--compact dd {
  margin: 0;
}

/**
 * Floated right buttons on list items.
 */
.button-list {
  float: right;
}

/**
 * Reference-mark notes lists (6 items).
 *
 * Example HTML:
 *
 * <ol class="list--refmarks">
 */
.list--refmarks {
  padding: 0;
  list-style: none;
}
.list--refmarks li:nth-of-type(1)::before {
  content: "*" " ";
}
.list--refmarks li:nth-of-type(2)::before {
  content: "†" " ";
}
.list--refmarks li:nth-of-type(3)::before {
  content: "‡" " ";
}
.list--refmarks li:nth-of-type(4)::before {
  content: "§" " ";
}
.list--refmarks li:nth-of-type(5)::before {
  content: "¶" " ";
}
.list--refmarks li:nth-of-type(6)::before {
  content: "‖" " ";
}

/**
 * Documentation custom TOC lists. Allows for 2 sub-levels of nesting.
 *
 * Example HTML:
 *
 * <ul id="markdown-toc"> (generated via Kramdown)
 * <ul class="list--toc">
 */
/* stylelint-disable max-nesting-depth, selector-max-combinators, selector-max-compound-selectors, selector-max-type */
#markdown-toc,
.list--toc {
  padding: 0;
  list-style: none;
  counter-reset: toc-h2-counter;
}
#markdown-toc ul,
.list--toc ul {
  list-style: none;
}
#markdown-toc > li,
.list--toc > li {
  counter-increment: toc-h2-counter;
}
#markdown-toc > li::before,
.list--toc > li::before {
  content: counter(toc-h2-counter) " " " ";
}
#markdown-toc > li > ul,
.list--toc > li > ul {
  counter-reset: toc-h3-counter;
}
#markdown-toc > li > ul > li,
.list--toc > li > ul > li {
  counter-increment: toc-h3-counter;
}
#markdown-toc > li > ul > li::before,
.list--toc > li > ul > li::before {
  content: counter(toc-h2-counter) "." counter(toc-h3-counter) " " " ";
}
#markdown-toc > li > ul > li > ul,
.list--toc > li > ul > li > ul {
  counter-reset: toc-h4-counter;
}
#markdown-toc > li > ul > li > ul > li,
.list--toc > li > ul > li > ul > li {
  counter-increment: toc-h4-counter;
}
#markdown-toc > li > ul > li > ul > li::before,
.list--toc > li > ul > li > ul > li::before {
  content: counter(toc-h2-counter) "." counter(toc-h3-counter) "." counter(toc-h4-counter) " " " ";
}
#markdown-toc > li > ul > li > ul > li > ul,
.list--toc > li > ul > li > ul > li > ul {
  counter-reset: toc-h5-counter;
}
#markdown-toc > li > ul > li > ul > li > ul > li,
.list--toc > li > ul > li > ul > li > ul > li {
  counter-increment: toc-h5-counter;
}
#markdown-toc > li > ul > li > ul > li > ul > li::before,
.list--toc > li > ul > li > ul > li > ul > li::before {
  content: counter(toc-h2-counter) "." counter(toc-h3-counter) "." counter(toc-h4-counter) "." counter(toc-h5-counter) " " " ";
}
#markdown-toc > li > ul > li > ul > li > ul ul,
.list--toc > li > ul > li > ul > li > ul ul {
  counter-reset: toc-h6-counter;
}
#markdown-toc > li > ul > li > ul > li > ul ul li,
.list--toc > li > ul > li > ul > li > ul ul li {
  counter-increment: toc-h6-counter;
}
#markdown-toc > li > ul > li > ul > li > ul ul li::before,
.list--toc > li > ul > li > ul > li > ul ul li::before {
  content: counter(toc-h2-counter) "." counter(toc-h3-counter) "." counter(toc-h4-counter) "." counter(toc-h5-counter) "." counter(toc-h6-counter) " " " ";
}

/**
 * Article sequentially-numbered h2/h3/h4 headings to complement TOC above.
 *
 * Example HTML:
 *
 * <article class="article-with-toc">
 *     <ul class="list--toc">
 */
.article--with-toc {
  counter-reset: heading-h2-counter;
}
.article--with-toc h2 {
  counter-reset: heading-h3-counter;
}
.article--with-toc h2::before {
  content: counter(heading-h2-counter) " " " ";
  opacity: 0.66;
  counter-increment: heading-h2-counter;
}
.article--with-toc h3 {
  counter-reset: heading-h4-counter;
}
.article--with-toc h3::before {
  content: counter(heading-h2-counter) "." counter(heading-h3-counter) " " " ";
  opacity: 0.66;
  counter-increment: heading-h3-counter;
}
.article--with-toc h4 {
  counter-reset: heading-h5-counter;
}
.article--with-toc h4::before {
  content: counter(heading-h2-counter) "." counter(heading-h3-counter) "." counter(heading-h4-counter) " " " ";
  opacity: 0.66;
  counter-increment: heading-h4-counter;
}
.article--with-toc h5 {
  counter-reset: heading-h6-counter;
}
.article--with-toc h5::before {
  content: counter(heading-h2-counter) "." counter(heading-h3-counter) "." counter(heading-h4-counter) "." counter(heading-h5-counter) " " " ";
  opacity: 0.66;
  counter-increment: heading-h5-counter;
}
.article--with-toc h6::before {
  content: counter(heading-h2-counter) "." counter(heading-h3-counter) "." counter(heading-h4-counter) "." counter(heading-h5-counter) "." counter(heading-h6-counter) " " " ";
  opacity: 0.66;
  counter-increment: heading-h6-counter;
}

/* Forms
   ========================================================================== */
/**
 * 1. Address width being affected by wide descendants in Chrome, Firefox.
 * 2. Define consistent fieldset border, margin, and padding.
 */
fieldset {
  min-width: 0; /* 1 */
  margin: 1em 0; /* 2 */
  padding: 1px 1em; /* 2 */
  border: 1px solid var(--clr-brdr); /* 2 */
}

/**
 * Normalize styling of `legend`.
 *
 * 1. Correct wrapping not present in Edge 12/13.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  display: table; /* 1 */
  box-sizing: border-box; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 2 */
  white-space: normal; /* 1 */
}

/**
 * Margins above and below form fields.
 *
 * Example HTML:
 *
 * <div class="field">
 *     <label><br>
 *     <input>
 * </div>
 * <div class="field">
 *     <label><br>
 *     <textarea>
 * </div>
 */
.field {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

/**
 * Remove tap delay in modern browsers.
 */
input,
button {
  touch-action: manipulation;
}

/**
 * 1. Prevent elements from spilling out of their parent.
 * 2. Address margins set differently in Firefox 4+, Safari, and Chrome.
 * 3. Correct font properties not being inherited.
 */
button,
input,
select,
optgroup,
textarea,
.button {
  box-sizing: border-box;
  max-width: 100%; /* 1 */
  margin: 0; /* 2 */
  color: var(--clr-text-form);
  font-family: var(--font-sans-serif);
  font-size: 1rem; /* 3 */
  line-height: 1.375;
  vertical-align: baseline;
}

/**
 * Styling of form input fields.
 *
 * 1. Remove browser-specific default styling.
 */
[type=email],
[type=number],
[type=password],
[type=search],
[type=tel],
[type=text],
[type=url],
select,
textarea {
  height: 2em;
  padding: 0.25em 0.1875em;
  border: 1px solid var(--clr-brdr);
  border-radius: 0;
  background: var(--clr-bkgd-form);
  appearance: none; /* 1 */
}
[type=email]:hover,
[type=number]:hover,
[type=password]:hover,
[type=search]:hover,
[type=tel]:hover,
[type=text]:hover,
[type=url]:hover,
select:hover,
textarea:hover {
  border-color: var(--clr-brdr-x-dark);
}
[type=email]:focus,
[type=number]:focus,
[type=password]:focus,
[type=search]:focus,
[type=tel]:focus,
[type=text]:focus,
[type=url]:focus,
select:focus,
textarea:focus {
  border-color: var(--clr-focus);
  outline: 2px solid transparent;
}

@media (prefers-color-scheme: dark) {
  [type=email],
  [type=number],
  [type=password],
  [type=search],
  [type=tel],
  [type=text],
  [type=url],
  select,
  textarea {
    border-color: var(--clr-brdr-x-dark);
  }
  [type=email]:hover,
  [type=number]:hover,
  [type=password]:hover,
  [type=search]:hover,
  [type=tel]:hover,
  [type=text]:hover,
  [type=url]:hover,
  select:hover,
  textarea:hover {
    border-color: var(--clr-brdr-x-lite);
  }
  [type=email]:focus,
  [type=number]:focus,
  [type=password]:focus,
  [type=search]:focus,
  [type=tel]:focus,
  [type=text]:focus,
  [type=url]:focus,
  select:focus,
  textarea:focus {
    border-color: var(--clr-focus);
  }
}
/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  /* autoprefixer: off */
  appearance: none;
}

/**
 * Use indicator icon to signify the drop-down ability of `select`.
 */
select {
  padding-right: 1.5em;
  background: var(--clr-bkgd-form) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='5' viewBox='0 0 17 5'%3E%3Cpolygon fill='%23333' points='0,0 5,5 10,0'/%3E%3C/svg%3E") right center no-repeat;
  background-size: 1.0625em 0.3125em;
  text-transform: none;
}

@media (prefers-color-scheme: dark) {
  select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='5' viewBox='0 0 17 5'%3E%3Cpolygon fill='%23788591' points='0,0 5,5 10,0'/%3E%3C/svg%3E");
  }
}
/**
 * Override height and background set in a previous rule and allow auto height.
 */
select[size],
select[multiple] {
  height: auto;
  padding-right: 0.5em;
  background-image: none;
}

@media (prefers-color-scheme: dark) {
  select[size],
  select[multiple] {
    background-image: none;
  }
}
/**
 * Override height set in rule above and restrict to one line field.
 */
select[size="0"],
select[size="1"] {
  height: 2em;
}

/**
 * Normalize styling of `optgroup`.
 */
optgroup {
  font-style: normal;
  font-weight: 700;
}

/**
 * 1. Remove unwanted space below `textarea` in Safari, Chrome, Opera.
 * 2. Restrict to vertical resizing to prevent layout breakage.
 */
textarea {
  width: 100%;
  height: auto;
  min-height: 3em;
  vertical-align: top; /* 1 */
  resize: vertical; /* 2 */
}

/**
 * Make sure disabled elements really are disabled and styled appropriately.
 *
 * 1. Re-set default cursor for disabled elements.
 */
[disabled],
[disabled] option,
[disabled] optgroup,
span.disabled {
  border: 1px solid var(--clr-brdr) !important;
  opacity: 0.33 !important;
  background-color: var(--clr-bkgd-form-disabled) !important;
  box-shadow: none !important;
  cursor: default !important; /* 1 */
}

@media (prefers-color-scheme: dark) {
  [disabled],
  [disabled] option,
  [disabled] optgroup,
  span.disabled {
    opacity: 0.25 !important;
  }
}
/**
 * Width display options for `input` fields.
 *
 * Example HTML:
 *
 * <input size="8">
 * <input size="16">
 * <input size="24">
 * <input size="32">
 */
input[size="8"] {
  width: 25%;
}
input[size="16"] {
  width: 50%;
}
input[size="24"] {
  width: 75%;
}
input[size="32"] {
  width: 100%;
}

/**
 * Styling for form field validation.
 */
input:focus:invalid,
select:focus:invalid,
textarea:focus:invalid {
  border-color: var(--clr-error-text);
  box-shadow: none;
}

/**
 * Styling for Firefox-specfic form field validation.
 */
input:-moz-ui-invalid,
select:-moz-ui-invalid,
textarea:-moz-ui-invalid {
  border-color: var(--clr-error-text);
  box-shadow: none;
}

/**
 * Normalize form placeholder style across browsers.
 *
 * 1. Fix placeholder font properties inheritance.
 */
::placeholder {
  opacity: 1;
  color: var(--clr-text-placeholder);
  font: inherit; /* 1 */
}

/**
 * Styling for required field indicators.
 *
 * Example HTML:
 *
 * <abbr class="required" title="Required" aria-label="Required">●</abbr>
 */
abbr.required {
  color: var(--clr-warning-text);
  text-decoration: none;
}

/* Progress indicators
   ========================================================================== */
/**
 * 1. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  box-sizing: border-box;
  width: 100%;
  max-width: 10em;
  height: 0.75em;
  margin-right: 0.33em;
  border: 1px solid var(--clr-brdr);
  background-color: var(--clr-bkgd-box);
  vertical-align: baseline; /* 1 */
  appearance: none;
}

@media (prefers-color-scheme: dark) {
  progress {
    border-color: var(--clr-brdr-x-dark);
  }
}
progress::-webkit-progress-bar {
  background-color: var(--clr-bkgd-box);
}

progress::-webkit-progress-value {
  animation: progressbar-stripes linear 4s infinite;
  background-color: var(--clr-hilite);
  background-image: linear-gradient(135deg, hsla(0, 0%, 100%, 0.33) 25%, transparent 25%, transparent 50%, hsla(0, 0%, 100%, 0.33) 50%, hsla(0, 0%, 100%, 0.33) 75%, transparent 75%, transparent);
  background-size: 24px 24px;
}

progress:indeterminate::-webkit-progress-bar {
  animation: progressbar-stripes linear 4s infinite;
  background-color: var(--clr-brdr);
  background-image: linear-gradient(135deg, hsla(0, 0%, 100%, 0.33) 25%, transparent 25%, transparent 50%, hsla(0, 0%, 100%, 0.33) 50%, hsla(0, 0%, 100%, 0.33) 75%, transparent 75%, transparent);
  background-size: 24px 24px;
}

progress[value="1"]::-webkit-progress-value {
  background-image: none;
}

progress::-moz-progress-bar {
  animation: progressbar-stripes linear 4s infinite;
  background-color: var(--clr-hilite);
  background-image: linear-gradient(135deg, hsla(0, 0%, 100%, 0.33) 25%, transparent 25%, transparent 50%, hsla(0, 0%, 100%, 0.33) 50%, hsla(0, 0%, 100%, 0.33) 75%, transparent 75%, transparent);
  background-size: 24px 24px;
}

progress:indeterminate::-moz-progress-bar {
  /* autoprefixer: off */
  animation: progressbar-stripes linear 4s infinite;
  background-color: var(--clr-brdr);
  background-image: linear-gradient(135deg, hsla(0, 0%, 100%, 0.33) 25%, transparent 25%, transparent 50%, hsla(0, 0%, 100%, 0.33) 50%, hsla(0, 0%, 100%, 0.33) 75%, transparent 75%, transparent);
  background-size: 24px 24px;
}

progress[value="1"]::-moz-progress-bar {
  background-image: none;
}

/**
 * Numerical values alongside progress bars.
 */
.data-progress {
  display: inline-block;
  min-width: 2.75em;
  margin-right: 0.5em;
  font-size: 0.75rem;
}

.data-progress[data-progress="100"] {
  background: var(--clr-success-bkgd);
  color: var(--clr-success-text);
}

/* Disclosure boxes (summary/details)
   ========================================================================== */
/**
 * Example HTML:
 *
 * <details>
 *     <summary>Summary text</summary>
 *     <p>Detailed content.</p>
 * </details>
 */
summary {
  cursor: pointer;
}
summary:focus {
  outline: 1px solid var(--clr-focus);
}

/* Code highlighting (via Prism.js)
   ========================================================================== */
code[class*=language-],
pre[class*=language-] {
  direction: ltr;
  hyphens: none;
  text-align: left;
  word-wrap: normal;
  word-break: normal;
  word-spacing: normal;
  white-space: pre;
}

/**
 * Inline code.
 */
:not(pre) > code[class*=language-] {
  white-space: normal;
}

/**
 * Syntax colours/styles.
 */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: hsl(210, 13%, 50%);
}

.token.punctuation {
  color: hsl(0, 0%, 60%);
}

.namespace {
  opacity: 0.7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
  color: hsl(327, 100%, 30%);
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: hsl(80, 100%, 30%);
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
  color: hsl(30, 30%, 50%);
}

.token.atrule,
.token.attr-value,
.token.keyword {
  color: hsl(198, 100%, 33%);
}

.token.function {
  color: hsl(348, 68%, 58%);
}

.token.regex,
.token.important,
.token.variable {
  color: hsl(39, 100%, 47%);
}

.token.important,
.token.bold {
  font-weight: 700;
}

.token.italic {
  font-style: italic;
}

.token.entity {
  cursor: help;
}

/*
 * Line numbers (plugin).
 */
pre.line-numbers {
  position: relative;
  padding-left: 3.8em;
  counter-reset: linenumber;
}

pre.line-numbers > code {
  position: relative;
}

.line-numbers .line-numbers-rows {
  position: absolute;
  top: 0;
  left: -3.8em;
  width: 3em;
  border-right: 1px solid var(--clr-brdr-lite);
  font-size: 1em;
  letter-spacing: -1px;
  pointer-events: none;
  user-select: none;
}

.line-numbers-rows > span {
  display: block;
  counter-increment: linenumber;
  pointer-events: none;
}

.line-numbers-rows > span::before {
  content: counter(linenumber);
  display: block;
  padding-right: 0.8em;
  color: var(--clr-text-demoted);
  direction: ltr;
  text-align: right;
}

@media (prefers-color-scheme: dark) {
  .token.punctuation {
    color: var(--clr-text-white-enforced);
  }
  .token.property,
  .token.tag,
  .token.boolean,
  .token.number,
  .token.constant,
  .token.symbol,
  .token.deleted {
    color: var(--clr-error-text);
  }
  .token.selector,
  .token.attr-name,
  .token.string,
  .token.char,
  .token.builtin,
  .token.inserted {
    color: var(--clr-success-text);
  }
  .token.operator,
  .token.entity,
  .token.url,
  .language-css .token.string,
  .style .token.string {
    color: var(--clr-warning-text);
  }
  .token.atrule,
  .token.attr-value,
  .token.keyword {
    color: var(--clr-info-text);
  }
}
/* Pagination links
   ========================================================================== */
/**
 * Paginator (prev/next) navigation links on article lists.
 *
 * Example HTML:
 *
 * <nav class="paginator">
 *     <a rel="prev">
 *     <a rel="next">
 */
.paginator {
  margin: 1.5em 0 1em;
  padding-top: 1em;
  border-top: 2px dashed var(--clr-brdr);
}
.paginator a,
.paginator b {
  display: inline-block;
  padding: 0 0.1875em;
}

/**
 * Consistent margins for paginator navigation links on non-blog article lists.
 *
 * Example HTML:
 *
 * <nav class="paginator paginate-articles">
 */
.paginate-articles {
  margin-bottom: 2.5em;
}

/**
 * Numerical pagination link lists.
 *
 * Example HTML:
 *
 * <ul class="pagination">
 *     <li class="current">
 *         <b title="Current page">1</b>
 *     </li>
 *     <li>
 *         <a title="Go to page 2">2</a>
 *     </li>
 *     <li>
 *         <a title="Go to page 3">3</a>
 *     </li>
 */
.pagination {
  display: inline-flex;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}
.pagination li {
  display: inline-block;
}
.pagination li.current {
  background: var(--clr-text);
  color: var(--clr-text-white-enforced);
}
.pagination a,
.pagination b {
  min-width: 1.25em;
}
.pagination b {
  font-weight: 400;
  cursor: default;
}

@media (prefers-color-scheme: dark) {
  .pagination li.current {
    background: var(--clr-bkgd-form);
  }
}
/* Breadcrumb links
   ========================================================================== */
/**
 * Lists as breadcrumbs
 *
 * Example HTML:
 *
 * <ol class="breadcrumbs">
 *     <li></li>
 *     <li></li>
 * </ol>
 */
.breadcrumbs {
  margin: 0 -1.3333333em;
  padding: 0.5em 1.3333333em;
  background-color: var(--clr-bkgd-box);
  list-style: none;
  font-size: 0.75rem;
}
.breadcrumbs li {
  display: inline-block;
}
.breadcrumbs > li + li::before {
  content: " " "/" " ";
}

/* Social media
   ========================================================================== */
/**
 * Link list of social media channel icons.
 *
 * Example HTML:
 *
 * <ul class="social-channels l_beam">
 *     <li><a class="github">GitHub</a></li>
 *     <li><a class="mastodon">Mastodon</a></li>
 *     <li><a class="twitter">Twitter</a></li>
 * </ul>
 */
.social-channels {
  padding: 0;
}
.social-channels img {
  height: 2rem;
}

/* Miscellaneous
   ========================================================================== */
/**
 * Hide text but still allow screen reader access.
 *
 * Example HTML:
 *
 * <p class="accessibility">
 */
.accessibility {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
  white-space: nowrap;
}

/**
 * Hide completely.
 */
.not-shown {
  display: none;
}

/* HTTP error pages
   ========================================================================== */
.http-status-code {
  font-size: 3em;
}

.http-status-description {
  display: inline-block;
}

/* Blog section specific
   ========================================================================== */
/**
 * Date styling.
 *
 * Example HTML:
 *
 * <p class="article-date">
 *     <time>21 January 2016</time>
 * </p>
 */
.article-date {
  font-family: var(--font-serif);
  font-size: 1.5rem;
}

/**
 * Article footer styling.
 *
 * Example HTML:
 *
 * <footer class="article-footer">
 *     <span class="ui-icon ui-icon-pencil">By:</span>
 *     <span class="vcard">
 *         <a class="url">
 *             <span class="fn n">Phil Wareham</span>
 *         </a>
 *     </span>
 *     <span class="separator">|</span>
 *     <span class="ui-icon ui-icon-tag">Tags:</span>
 *     <span>
 *         <a>Releases</a>
 *         <a>Hope for the future</a>
 *     </span>
 * </footer>
 */
.article-footer {
  margin: 2em 0;
}

.article-footer,
.card-postinfo {
  font-size: 0.75rem;
}
.article-footer a,
.article-footer .article-author,
.article-footer .compatibility,
.card-postinfo a,
.card-postinfo .article-author,
.card-postinfo .compatibility {
  display: inline-block;
  margin-top: 0.5em;
  padding: 0.1666667em 0.6666667em;
  border: 1px solid var(--clr-text);
  border-radius: 1em;
  background: var(--clr-text);
  color: var(--clr-text-white-enforced);
}
.article-footer a:hover,
.article-footer a:active,
.card-postinfo a:hover,
.card-postinfo a:active {
  border-color: var(--clr-btn-primary-brdr-interact);
  background-color: var(--clr-hilite-enforced);
  color: var(--clr-text-btn);
  text-decoration: none;
}
.article-footer a:active,
.card-postinfo a:active {
  filter: brightness(0.95);
}
.article-footer a:focus,
.card-postinfo a:focus {
  border-color: var(--clr-focus);
  outline: 2px solid transparent;
  background-color: var(--clr-hilite-enforced);
}
.article-footer a + a,
.card-postinfo a + a {
  margin-left: 0.25em;
}

@media (prefers-color-scheme: dark) {
  .article-footer a,
  .article-footer .article-author,
  .article-footer .compatibility,
  .card-postinfo a,
  .card-postinfo .article-author,
  .card-postinfo .compatibility {
    border-color: var(--clr-bkgd-form);
    background: var(--clr-bkgd-form);
  }
  .article-footer a:hover,
  .article-footer a:active,
  .card-postinfo a:hover,
  .card-postinfo a:active {
    border-color: var(--clr-btn-primary-brdr-interact);
    background-color: var(--clr-hilite-enforced);
  }
  .article-footer a:focus,
  .card-postinfo a:focus {
    border-color: var(--clr-focus);
    background-color: var(--clr-hilite-enforced);
  }
}
/* Cards/article tiles
   ========================================================================== */
/**
 * Card container.
 *
 * Example HTML:
 *
 * <article class="card align-center">
 *     <small class="alert-block alert-pill success">FEATURED</small>
 *     <header class="card-header">
 *         ... Header content ...
 *     </header>
 *     <a><img class="card-img"></a>
 *     <div class="card-body">
 *         ... Body content ...
 *     </div>
 *     <footer class="card-footer">
 *         ... Header content ...
 *     </footer>
 * </article>
 */
.card {
  display: flex;
  position: relative;
  flex: 1 0 0%;
  flex-direction: column;
  margin: 0.5em 0 1.5em;
  border: 1px solid var(--clr-brdr-lite);
  word-wrap: break-word;
}
.card .alert-pill {
  position: absolute;
  top: 0;
  left: -1px;
  transform: translateY(-50%);
  border-radius: 0.25em 0.25em 0.25em 0;
}

.card.align-right .alert-pill {
  right: -1px;
  left: auto;
  border-radius: 0.25em 0.25em 0;
}

.card.align-center .alert-pill {
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 0.25em;
}

.card-body {
  flex: 1 1 auto;
  padding: 0 1rem;
}

.card-postinfo {
  margin-top: -1em;
}

.card-header,
.card-footer {
  padding: 0.33rem 1rem;
  background: var(--clr-bkgd-box);
}

.card-header {
  border-bottom: 1px solid var(--clr-brdr-lite);
}

.card-footer {
  border-top: 1px solid var(--clr-brdr-lite);
}

/* Icons
   ========================================================================== */
/**
 * jQuery UI icon sprites, various colourschemes depending of usage state.
 *
 * Example HTML:
 *
 * <span class="ui-icon ui-icon-tag">Tags:</span>
 */
.ui-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-bottom: -2px;
  overflow: hidden;
  background-size: 16px 16px;
  vertical-align: baseline;
  text-indent: -9999px;
}

@media (prefers-color-scheme: dark) {
  .ui-icon {
    filter: brightness(3) sepia(1) hue-rotate(168deg) saturate(33%);
  }
  .button .ui-icon {
    filter: none;
  }
}
/**
 * Red heart.
 */
.button:hover .ui-icon-heart,
.button:active .ui-icon-heart,
.button:focus .ui-icon-heart {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23e00' d='M10.5 2c2.5-.5 4.979 2.174 3.5 5.5C12 12 8 14 8 14s-4-2-6-6.5C.522 4.174 3 1.5 5.5 2 7.522 2.404 8 4 8 4s.479-1.596 2.5-2z'/%3E%3C/svg%3E");
}

/* Icons
   ========================================================================== */
.ui-icon-extlink {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='%23333'%3E%3Cpath d='M10 12H3V7h2l2-2H2v8h9V9l-1 1z'/%3E%3Cpath d='M13 3H9l1.25 1.25-4.5 4.5 1.5 1.5 4.5-4.5L13 7z'/%3E%3C/g%3E%3C/svg%3E");
}

.ui-icon-folder-collapsed,
.list--files .directory::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='%23333'%3E%3Cpath d='M14 2h-1V1h-3L9 2H1v12h13V2zM2 3h11v10H2V3z'/%3E%3Cpath d='M2 4h11v1H2z'/%3E%3C/g%3E%3C/svg%3E");
}

.ui-icon-folder-open,
.list--files .directory--open::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='M13 5V2h-1V1H9L8 2H0v12h13.5L16 5h-3zM1 3h11v2H3l-2 7V3zm11.5 10H2l2-7h10.5l-2 7z'/%3E%3C/svg%3E");
}

.ui-icon-document-b,
.list--files .document::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='%23333'%3E%3Cpath d='m10 15h-7v-14h10v11zm2-3v-10h-8v12h6z'/%3E%3Cpath d='m10 12v2h-1v-3h3v1z'/%3E%3C/g%3E%3C/svg%3E");
}

.ui-icon-tag {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='m7 15-6-6 7-7h6v6zm5-11h1v-1h-1zm-9 5 4 4 4-4-4-4z'/%3E%3C/svg%3E");
}

.ui-icon-home {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='%23333'%3E%3Cpath d='M13 14H3V8l5-5 5 5v6zM9 9H7v4h2V9z'/%3E%3Cpath d='M8 2L2 8H1l7-7 7 7h-1z'/%3E%3C/g%3E%3C/svg%3E");
}

.ui-icon-pencil {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='m4 14-3 1 1-3 8-8 2 2zm7-11 2-2 2 2-2 2z'/%3E%3C/svg%3E");
}

.ui-icon-heart {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='M10.5 2c2.5-.5 4.979 2.174 3.5 5.5C12 12 8 14 8 14s-4-2-6-6.5C.522 4.174 3 1.5 5.5 2 7.522 2.404 8 4 8 4s.479-1.596 2.5-2z'/%3E%3C/svg%3E");
}

.ui-icon-image,
.list--files .image::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='%23333'%3E%3Cpath d='M0 14V2h16v12H0zM15 3H1v10h14V3z'/%3E%3Cpath d='M2 12l3-3 1 1 4-4 4 4v2z'/%3E%3Ccircle cx='4' cy='6' r='2'/%3E%3C/g%3E%3C/svg%3E");
}

.ui-extra-icon-download {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='%23333'%3E%3Cpath d='M10 10h3V2H3v8h3v2H1V0h14v12h-5z'/%3E%3Cpath d='M8 16l3-3H9V6H7v7H5z'/%3E%3C/g%3E%3C/svg%3E");
}

.ui-extra-icon-twitter {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='M15 3.465a5.515 5.515 0 0 1-1.648.478 3.016 3.016 0 0 0 1.262-1.678c-.555.346-1.168.6-1.822.693A2.795 2.795 0 0 0 10.698 2c-1.586 0-2.87 1.357-2.87 3.031 0 .237 0 .469.074.693-2.385-.127-4.499-1.333-5.9-3.168a3.15 3.15 0 0 0-.388 1.524c0 1.052.506 1.98 1.276 2.524-.47 0-.912-.153-1.299-.379 0 1.468.983 2.694 2.302 2.973a2.747 2.747 0 0 1-.757.106h-.539c.365 1.205 1.424 2.078 2.622 2.078a5.56 5.56 0 0 1-3.563 1.299c-.232 0-.46 0-.656-.043A7.818 7.818 0 0 0 5.398 14c5.279 0 8.165-4.62 8.165-8.626v-.392c.566-.375 1.053-.908 1.437-1.517z'/%3E%3C/svg%3E");
}

.ui-extra-icon-mastodon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='m14.223 9.393c-.191.988-1.712 2.068-3.458 2.278-.911.109-1.807.209-2.763.165-1.563-.072-2.797-.375-2.797-.375 0 .153.009.298.028.435.203 1.55 1.53 1.643 2.787 1.686 1.268.044 2.398-.314 2.398-.314l.052 1.152s-.887.479-2.468.567c-.872.048-1.954-.022-3.214-.357-2.734-.727-3.204-3.654-3.276-6.624-.021-.883-.008-1.714-.008-2.41 0-3.037 1.981-3.927 1.981-3.927.999-.461 2.713-.654 4.494-.669h.044c1.782.015 3.497.208 4.495.669 0 0 1.981.89 1.981 3.927.001 0 .025 2.241-.276 3.797zm-2.633-5.352c-.395-.442-.911-.668-1.553-.668-.742 0-1.304.287-1.676.86l-.361.608-.361-.608c-.372-.573-.934-.86-1.676-.86-.641 0-1.158.226-1.553.668-.383.442-.573 1.039-.573 1.791v3.677h1.45v-3.569c0-.752.315-1.134.945-1.134.697 0 1.046.453 1.046 1.349v1.954h1.442v-1.954c0-.896.349-1.349 1.046-1.349.63 0 .946.382.946 1.134v3.569h1.45v-3.677c.001-.752-.19-1.349-.572-1.791z'/%3E%3C/svg%3E");
}

.ui-extra-icon-github {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='M7.999 1a7 7 0 0 0-2.212 13.642c.35.064.478-.152.478-.337 0-.166-.006-.606-.009-1.191-1.947.423-2.358-.938-2.358-.938-.318-.809-.777-1.024-.777-1.024-.636-.434.048-.426.048-.426.702.05 1.072.721 1.072.721.624 1.07 1.638.761 2.037.582.064-.452.245-.761.444-.936-1.554-.177-3.188-.777-3.188-3.46 0-.764.273-1.389.72-1.878-.072-.176-.312-.888.069-1.852 0 0 .588-.188 1.925.718A6.683 6.683 0 0 1 8 4.385c.594.003 1.193.08 1.752.236 1.336-.906 1.923-.718 1.923-.718.382.964.142 1.675.07 1.853.449.489.72 1.114.72 1.878 0 2.689-1.637 3.281-3.196 3.454.251.216.475.643.475 1.296 0 .936-.009 1.691-.009 1.92 0 .187.126.405.481.337A7.001 7.001 0 0 0 7.999 1z'/%3E%3C/svg%3E");
}

.ui-extra-icon-gitlab {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='m3.363 1.685c.078-.247.427-.247.506.002l1.631 4.814h5l1.631-4.814c.08-.249.427-.249.506 0l2.337 7.246c.072.222-.007.464-.192.602l-6.782 4.965-6.781-4.965c-.185-.138-.264-.381-.193-.602z'/%3E%3C/svg%3E");
}

.ui-extra-icon-bitbucket {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='m1.376 2.001c-.244.038-.41.268-.37.5l1.994 10.999c.036.208.277.503.5.501h9c.223.002.464-.293.5-.501l1.994-10.999c.04-.233-.126-.462-.37-.5zm8.124 8h-3l-.75-4h4.5z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Styling and layout for screen media at 1st breakpoint
   ========================================================================== */
@media (min-width: 30rem) {
  /**
   * Grid container.
   */
  .layout-container {
    display: grid;
    gap: 0 2em;
    grid-template-columns: repeat(12, 1fr);
  }
  /**
   * Generate sizes all for grid column cells.
   *
   * Because this is mobile first, cells are all initially a 1 column span
   * (full width, 12 cell span). We will then adjust them at various breakpoints.
   *
   * Example HTML:
   *
   * <div class="layout-1col"></div>
   *
   * <div class="layout-2col"></div>
   * <div class="layout-2col"></div>
   *
   * <div class="layout-3col-2span"></div>
   * <div class="layout-3col"></div>
   */
  .layout-1col,
  .layout-2col,
  .layout-3col,
  .layout-3col-2span,
  .layout-4col,
  .layout-4col-2span,
  .layout-4col-3span {
    grid-column: span 12;
  }
  /**
   * Cells for 4 column layouts are generated, but as 2 columns at this width.
   */
  .layout-4col:not(.sidebar) {
    grid-column: span 6;
  }
  /**
   * Allow two columns of text.
   */
  .layout-text2col,
  .layout-text3col,
  .layout-text4col {
    column-count: 2;
    column-gap: 2em;
  }
  .layout-text2col :first-child,
  .layout-text3col :first-child,
  .layout-text4col :first-child {
    margin-top: 0;
  }
  .layout-text2col li,
  .layout-text3col li,
  .layout-text4col li {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .layout-text2col .footnote,
  .layout-text3col .footnote,
  .layout-text4col .footnote {
    display: inline-block;
  }
  /**
   * Large search field on certain pages.
   */
  .search-hero input {
    font-size: 1.5rem;
  }
  /**
   * Overlay CTA on animation layer.
   */
  /**
   * Narrower, CTA text.
   */
  /**
   * Showcase section.
   */
  /**
   * Showcase images.
   */
}
/* ==========================================================================
   Styling and layout for screen media at 2nd breakpoint
   ========================================================================== */
@media (min-width: 48rem) {
  /**
   * Cells for 2 column and 3 column layouts are generated.
   *
   * Example HTML:
   *
   * <div class="layout-3col"></div>
   * <div class="layout-3col-2span"></div>
   */
  .layout-2col {
    grid-column: span 6;
  }
  .layout-3col {
    grid-column: span 4;
  }
  .layout-3col-2span {
    grid-column: span 8;
  }
  /**
   * Allow three columns of text.
   */
  .layout-text3col,
  .layout-text4col {
    column-count: 3;
  }
  /**
   * Changes in styling for site header.
   */
  /**
   * Changes in styling for search form.
   */
  /**
   * Large search field on certain pages.
   */
  /**
   * Changes in styling for navigation.
   */
  /**
   * Changes in styling for site footer.
   */
  /**
   * Larger, but narrower, CTA text.
   */
  /**
   * Show `hr` in CTA for larger breakpoints.
   */
  /**
   * Showcase images.
   */
  /**
   * Showcase section.
   */
}
@media (min-width: 48rem) and (prefers-color-scheme: dark) {
  .search-form [type=search] {
    background-color: var(--clr-bkgd-form);
  }
}
@media (min-width: 48rem) {
  .search-hero input {
    font-size: 1.75rem;
  }
  .wrapper-footer {
    contains-intrinsic-size: 0 374px;
  }
  .community-details,
  .host-details {
    display: block;
  }
  .cta {
    width: 68%;
    font-size: 1.75rem;
  }
  #animation-overlay hr {
    display: block;
  }
  .wrapper-inner .showcase-container {
    contains-intrinsic-size: 0 455px;
  }
  .showcase-container {
    margin-bottom: 2em;
  }
  .showcase-home-c {
    max-width: 450px;
  }
  .showcase-home-l,
  .showcase-home-r {
    bottom: 1.5em;
  }
  .showcase-landing section {
    margin: 0 -0.75em;
  }
  .showcase-landing .showcases {
    margin: 0.5em 1em;
  }
}
@media (max-width: 48rem) {
  /**
   * Changes in styling for search form.
   */
  .search-form [type=search] {
    padding-right: 0;
    cursor: pointer;
  }
  .search-form [type=search]:focus {
    width: 254px;
    cursor: auto;
  }
}
/* ==========================================================================
   Styling and layout for screen media at 3rd (final) breakpoint
   ========================================================================== */
@media (min-width: 60rem) {
  /**
   * Cells for 4 column layouts are generated.
   *
   * Example HTML:
   *
   * <div class="layout-4col-3span"></div>
   * <div class="layout-4col"></div>
   */
  .layout-4col,
  .layout-4col:not(.sidebar) {
    grid-column: span 3;
  }
  .layout-4col-2span {
    grid-column: span 6;
  }
  .layout-4col-3span {
    grid-column: span 9;
  }
  /**
   * Allow four columns of text.
   */
  .layout-text4col {
    column-count: 4;
  }
  /**
   * Larger, but narrowest, CTA text.
   */
  .cta {
    width: 60%;
    font-size: 2.375rem;
  }
  /**
   * Sidebar layout.
   */
  .sidebar {
    margin: 0 -1em;
    padding: 0 1em;
    border-top: 0;
    background-color: var(--clr-bkgd-box);
  }
  .ads-area {
    contains-intrinsic-size: 0 292px;
  }
  /**
   * Showcase images.
   */
  .showcase-landing section {
    margin: 0 -1em;
  }
  .showcase-landing .showcases {
    margin: 0.5em 1.25em;
  }
}
@media (max-width: 60rem) {
  /**
   * Separator as linebreak until 3rd breakpoint.
   */
  .separator {
    visibility: hidden;
    margin: 0;
  }
  .separator::after {
    content: "\a";
    white-space: pre;
  }
  /**
   * Forced linebreak until 3rd breakpoint.
   */
  .separator--passive {
    display: block;
    margin-top: 0.5em;
  }
}
@media (prefers-reduced-motion: reduce), (update: slow) {
  body {
    scroll-behavior: auto;
  }
  .js #site-navigation,
  #site-navigation.site-navigation-open,
  .search-form [type=search] {
    transition-duration: 0;
  }
  progress::-webkit-progress-value {
    animation: none;
    background-image: none;
  }
  progress:indeterminate::-webkit-progress-bar {
    animation: none;
    background-image: none;
  }
  progress::-moz-progress-bar {
    animation: none;
    background-image: none;
  }
  progress:indeterminate::-moz-progress-bar {
    animation: none;
    background-image: none;
  }
}
/* ==========================================================================
   CSS custom variables
   ========================================================================== */
/* stylelint-disable declaration-colon-space-after */
:root {
  --font-serif: "PT Serif", Georgia, serif;
  --font-sans-serif: system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  --font-monospaced: Menlo, Consolas, Monaco, monospace;
  --clr-text: hsl(0 0% 20%);
  --clr-text-promoted: hsl(0 0% 17%);
  --clr-text-promoted-a50: hsl(0 0% 17% / 0.5);
  --clr-text-demoted: hsl(0 0% 40%);
  --clr-text-form: hsl(0 0% 0%);
  --clr-text-placeholder: hsl(0 0% 60%);
  --clr-text-black-enforced: hsl(0 0% 20%);
  --clr-text-white-enforced: hsl(0 0% 100%);
  --clr-a: hsl(216 100% 35%);
  --clr-a-interact: hsl(216 100% 50%);
  --clr-a-alt: hsl(216 100% 80%);
  --clr-a-alt-interact: hsl(216 100% 95%);
  --clr-focus: hsl(216 100% 50% / 1);
  --clr-nav-interact: hsl(216 95% 85%);
  --clr-nav-active: hsl(216 100% 95%);
  --clr-bkgd: hsl(0 0% 100%);
  --clr-bkgd-zebra: hsl(0 0% 94%);
  --clr-bkgd-box: hsl(0 0% 97%);
  --clr-bkgd-form: hsl(0 0% 100%);
  --clr-bkgd-form-disabled: hsl(0 0% 89%);
  --clr-grad-from: hsl(0 0% 93%);
  --clr-grad-to: hsl(0 0% 87%);
  --clr-hilite: hsl(48 100% 63%);
  --clr-hilite-enforced: hsl(48 100% 63%);
  --clr-strong-hilite-box: hsl(48 100% 76%);
  --clr-hilite-box: hsl(48 100% 94%);
  --clr-brdr-x-lite: hsl(0 0% 85%);
  --clr-brdr-lite: hsl(0 0% 82.5%);
  --clr-brdr: hsl(0 0% 80%);
  --clr-brdr-dark: hsl(0 0% 75%);
  --clr-brdr-x-dark: hsl(0 0% 70%);
  --clr-text-btn: hsl(0 0% 20%);
  --clr-text-btn-interact: hsl(0 0% 17%);
  --clr-btn-grad-from: hsl(0 0% 93%);
  --clr-btn-grad-to: hsl(0 0% 87%);
  --clr-btn-brdr: hsl(0 0% 87%);
  --clr-btn-brdr-interact: hsl(0 0% 77%);
  --clr-btn-shadow: hsl(0 0% 67%);
  --clr-btn-primary-grad-from: hsl(48 100% 63%);
  --clr-btn-primary-grad-to: hsl(48 100% 57%);
  --clr-btn-primary-brdr: hsl(48 100% 57%);
  --clr-btn-primary-brdr-interact: hsl(48 100% 47%);
  --clr-btn-primary-shadow: hsl(48 100% 37%);
  --clr-btn-bkgd-disabled: hsl(0 0% 89%);
  --clr-success-text: hsl(120 60% 34%);
  --clr-success-bkgd: hsl(120 40% 90%);
  --clr-success-brdr: hsl(102 40% 68%);
  --clr-warning-text: hsl(41 100% 40%);
  --clr-warning-bkgd: hsl(41 64% 91%);
  --clr-warning-brdr: hsl(41 64% 71%);
  --clr-error-text: hsl(4 69% 36%);
  --clr-error-bkgd: hsl(4 43% 91%);
  --clr-error-brdr: hsl(4 43% 78%);
  --clr-info-text: hsl(200 50% 45%);
  --clr-info-bkgd: hsl(200 78% 95%);
  --clr-info-brdr: hsl(200 78% 82%);
}

@media (prefers-color-scheme: dark) {
  :root {
    --clr-text: hsl(210 14% 83%);
    --clr-text-promoted: hsl(0 0% 100%);
    --clr-text-promoted-a50: hsl(0 0% 100% / 0.5);
    --clr-text-demoted: hsl(210 14% 77%);
    --clr-text-form: hsl(0 0% 100%);
    --clr-text-placeholder: hsl(210 6% 48%);
    --clr-a: hsl(204 100% 81%);
    --clr-a-interact: hsl(204 100% 87%);
    --clr-focus: hsl(312 100% 50%);
    --clr-nav-interact: hsl(214 45% 19%);
    --clr-nav-active: hsl(214 51% 22%);
    --clr-bkgd: hsl(210 11% 24%);
    --clr-bkgd-zebra: hsl(210 7% 35%);
    --clr-bkgd-box: hsl(210 11% 21%);
    --clr-bkgd-form: hsl(210 11% 18%);
    --clr-bkgd-form-disabled: hsl(210 11% 18%);
    --clr-grad-from: hsl(210 7% 30%);
    --clr-grad-to: hsl(210 7% 36%);
    --clr-hilite: hsl(48 100% 63%);
    --clr-strong-hilite-box: hsl(48 42% 47%);
    --clr-hilite-box: hsl(48 20% 30%);
    --clr-brdr-x-lite: hsl(210 7% 33%);
    --clr-brdr-lite: hsl(210 7% 43%);
    --clr-brdr: hsl(210 7% 53%);
    --clr-brdr-dark: hsl(210 7% 21%);
    --clr-brdr-x-dark: hsl(210 7% 6%);
    --clr-success-text: hsl(100 60% 50%);
    --clr-success-bkgd: hsl(109 27% 20%);
    --clr-success-brdr: hsl(100 60% 50% / 0.33);
    --clr-warning-text: hsl(40 100% 62%);
    --clr-warning-bkgd: hsl(49 35% 21%);
    --clr-warning-brdr: hsl(40 100% 62% / 0.33);
    --clr-error-text: hsl(337 100% 60%);
    --clr-error-bkgd: hsl(348 34% 21%);
    --clr-error-brdr: hsl(337 100% 60% / 0.43);
    --clr-info-text: hsl(207 100% 63%);
    --clr-info-bkgd: hsl(207 68% 17%);
    --clr-info-brdr: hsl(207 100% 63% / 0.38);
  }
}

/*# sourceMappingURL=screen.css.map */
