

/* ---- 01_vars.css ---- */

:root {
  /* RESPONSIVE */

  --breakpoint-sm: 480px;

  /* COLOURS */

  /* Main Pallette */

  --leaf-darker: #556a5f;
  --leaf: #647d70;
  --leaf-lighter: #789385;

  --purple-darker: #5a4b6b;
  --purple: #806d88;
  --purple-lighter: #9a89a1;

  --cauliflower: #ede6cb;
  --cauliflower-lighter: #f6f2e5;
  --cauliflower-darker: #e2d6aa;

  --blueprint: #323f55;

  --dirt: #635049;
  --dirt-lighter: #7a5e50;
  --dirt-darker: #4f403a;

  --yellow: #ffdd62;
  --pink: #e19f83;

  --grass: #d0d882;
  --grass-lighter: #e0e8b0;

  /* Legacy colours */

  --grey0: #f1f4fe;
  --grey1: #e4e6ed;
  --grey2: #c8cad3;
  --grey3: #a9adb9;
  --grey4: #9094a3;
  --grey5: #7f8496;
  --grey6: #777c91;
  --grey7: #63687c;
  --grey8: #595e72;
  --grey9: #4a5167;

  --blue0: #d9e4d8;
  --blue1: #c3d5c2;
  --blue2: #acc6ad;
  --blue3: #96b898;
  --blue4: #7fa985;
  --blue5: #699b72;
  --blue6: #598664;
  --blue7: #4a7055;
  --blue8: #3b5a46;
  --blue9: #2c4436;

  --gumleaf0: #d9e4d8;
  --gumleaf1: #c3d5c2;
  --gumleaf2: #acc6ad;
  --gumleaf3: #96b898;
  --gumleaf4: #7fa985;
  --gumleaf5: #699b72;
  --gumleaf6: #598664;
  --gumleaf7: #4a7055;
  --gumleaf8: #3b5a46;
  --gumleaf9: #2c4436;

  --burnt-orange0: #fed3b4;
  --burnt-orange1: #fc7a44;
  --burnt-orange2: #fc8028;
  --burnt-orange3: #fb4e05;
  --burnt-orange4: #dd4403;
  --burnt-orange5: #be3a03;
  --burnt-orange6: #a53203;
  --burnt-orange7: #971f00;
  --burnt-orange8: #7a1900;
  --burnt-orange9: #270800;

  --green0: #d0e7d0;
  --green1: #b5d9b5;
  --green2: #9acc9a;
  --green3: #7ebe80;
  --green4: #60b066;
  --green5: #3fa24c;
  --green6: #009431;
  --green7: #00772a;
  --green8: #005c23;
  --green9: #00421c;

  /*--purple: #694582;
  --cauliflower: #eee7cc;*/

  --retrofit: #244410;
  --decommodify: #840000;
  --collectively: #ffb300;
  --solidarity: var(--purple);

  --main-content-width: 800px;

  --page-gutter: 1.5rem;
}

@media screen and (max-width: 576px) {
  :root {
    --page-gutter: 1em;
  }
}


/* ---- 02_base_typography.css ---- */

a {
  text-decoration: none;
}

h1 {
  margin-top: 0;
}

h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child,
h6:first-child {
  margin-top: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 0;
}

p:last-child {
  margin-bottom: 0;
}


/* ---- 03_color-themes.css ---- */

.on-dirt {
  color: var(--cauliflower-lighter);
  background-color: var(--dirt);

  h1,
  h2,
  h3,
  h4,
  strong {
    color: var(--grass);
  }

  em,
  ul {
    color: var(--cauliflower);
  }

  a,
  a:hover,
  a:visited,
  a:link,
  a:active {
    color: var(--grass);
  }

  a:hover {
    color: var(--grass-lighter);
  }

  nav.between-pages {
    border-color: var(--dirt-lighter);
  }
}

.on-blue {
  --highlight-color: var(--pink);
  --background-color: var(--blueprint);
  --color: white;
  --dimmed-color: var(--cauliflower);
  --link-color: var(--grass);
  --link-color-hover: var(--grass-lighter);

  nav.between-pages {
    border-color: var(--dirt-lighter);
  }
}

.on-leaf {
  --highlight-color: var(--cauliflower-lighter);
  --background-color: var(--leaf-darker);
  --color: var(--cauliflower);
  --dimmed-color: var(--cauliflower-darker);
  --link-color: var(--grass);
  --link-color-hover: var(--grass-lighter);

  h1 {
    --highlight-color: var(--grass);
  }
}

.on-blue,
.on-leaf {
  background-color: var(--background-color);
  color: var(--color);

  h1,
  h2,
  h3,
  h4,
  strong {
    color: var(--highlight-color);
  }

  em,
  ul {
    color: var(--dimmed-color);
  }

  a,
  a:hover,
  a:visited,
  a:link,
  a:active {
    color: var(--link-color);
  }

  a:hover {
    color: var(--link-color-hover);
  }
}


/* ---- 04_streams.css ---- */

/*.retrofit {
  --stream-color: var(--retrofit);
  --stream-color-on-dark: lch(from var(--retrofit) calc(l + 50) c h);
  --stream-background-color: var(--retrofit);
  --text-color-on-background: white;
}

.decommodify {
  --stream-color: var(--decommodify);
  --stream-color-on-dark: lch(from var(--decommodify) calc(l + 20) c h);
  --stream-background-color: var(--decommodify);
  --text-color-on-background: white;
}

.collectively {
  --stream-color: var(--collectively);
  --stream-color-on-dark: var(--collectively);
  --stream-background-color: var(--collectively);
  --text-color-on-background: black;
}

.solidarity {
  --stream-color: var(--solidarity);
  --stream-color-on-dark: lch(from var(--solidarity) calc(l + 20) c h);
  --stream-background-color: var(--solidarity);
  --text-color-on-background: white;
}

strong.retrofit,
strong.decommodify,
strong.collectively,
strong.solidarity {
  color: var(--stream-color);
}

article section.on-stream-background {
  background-color: var(--stream-background-color);
  color: var(--text-color-on-background);
}

article section.on-stream-background h2,
article section.on-stream-background h3,
article section.on-stream-background h4,
article section.on-stream-background h5,
article section.on-stream-background h6 {
  color: var(--text-color-on-background);
}*/


/* ---- 05_page_layout.css ---- */

/* LAYOUT */

body {
  color: #222;
  font-family: sans-serif;
  line-height: 1.5;
  padding: 0;
  margin: 0;
  background-color: #111111;
}

main {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

main .with-side-nav {
  display: flex;
  flex-direction: row;
  color: var(--grey1);
}


/* ---- 06_header.css ---- */

/* Header */

header {
  --color: var(--cauliflower);

  background: var(--leaf);
  display: flex;
  color: var(--color);
  padding: 0;
  align-items: stretch;
  justify-content: space-between;
  min-height: 70px;
}

header .brand {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: var(--page-gutter);
  margin-right: var(--page-gutter);
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

header h1 {
  margin: 0;
  line-height: 100%;

  font-size: 2em;
}

header h1 a {
  color: var(--color);
  text-decoration: none;
}

header nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 1rem;
  height: 100%;
  gap: 2px;
  margin-right: var(--page-gutter);
}

header nav li {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

header nav a {
  color: var(--eath8);
  font-size: 120%;
  font-weight: bold;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  line-height: 100%;
  padding: 0 0.8em;
}

header nav a:hover {
  color: var(--cauliflower-lighter);
  text-decoration: underline;
  background: var(--leaf-lighter);
}

/* "Hide" checkbox -- moves it off screen*/
#menu-btn {
  position: absolute;
  top: -100%;
  left: -100%;
}

/* Hide hamburger for bigger screens */
.menu-icon {
  visibility: hidden;
}

@media screen and (max-width: 576px) {
  header {
    display: grid;
    grid-template-areas:
      "title   title   hamburger"
      "nav     nav     nav";
    height: auto;
  }

  header .brand {
    grid-area: title;
  }

  header h1 {
    font-size: 1.5em;
    word-spacing: 30000px;
  }

  header .menu-icon {
    grid-area: hamburger;
    cursor: pointer;
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    padding: 30px 20px 30px 0;
    position: relative;
    user-select: none;
    visibility: visible;
  }

  header .navicon {
    background-color: var(--color);
    display: block;
    height: 3px;
    width: 24px;
    position: relative;
  }

  header .navicon:before {
    top: 7px;
  }

  header .navicon:after {
    top: -7px;
  }

  header .navicon:before,
  header .navicon:after {
    background-color: var(--color);
    display: block;
    width: 100%;
    height: 100%;
    content: "";
    position: absolute;
    transition: all 0.2s ease-out;
  }

  header > nav.menu {
    width: 100vw;
    grid-area: nav;
    max-width: unset;
    height: auto;
    max-height: 0;
    transition: max-height 0.2s ease-out;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
  }

  header > nav.menu > ul {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: 0;
  }

  header > nav.menu > ul > li {
    display: flex;
    flex-direction: row;
    justify-content: center;
  }

  header > nav.menu > ul > li > a {
    line-height: 100%;
    min-height: 2em;
  }

  header > nav.menu > ul > li > a > span {
    margin: 0.3em 0.5em;
    display: inline-block;
  }

  header > .menu-btn:checked ~ .menu {
    max-height: 240px;
  }

  header > .menu-btn:checked ~ .menu-icon .navicon {
    background: transparent;
  }

  header > .menu-btn:checked ~ .menu-icon .navicon:before {
    transform: rotate(-45deg);
  }

  header > .menu-btn:checked ~ .menu-icon .navicon:after {
    transform: rotate(45deg);
  }

  header > .menu-btn:checked ~ .menu-icon .navicon:before,
  header > .menu-btn:checked ~ .menu-icon .navicon:after {
    top: 0;
  }
}


/* ---- 07_footer.css ---- */

/* Footer */

footer {
  display: flex;
  padding: 1rem;
  color: var(--grey3);
  border-top: 2px solid black;
}

.footer-sections {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  max-width: var(--main-content-width);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.footer-section {
  font-size: 0.9rem;
}

footer a {
  color: var(--grey1);
  text-decoration: underline;
}

footer ul {
  list-style: none;
  padding-left: 0;
}

.footer-section > *:first-child,
.footer-section > *:first-child > ul {
  margin-top: 0;
}

.footer-section > *:last-child,
.footer-section > *:last-child > ul {
  margin-bottom: 0;
}


/* ---- 08_side_nav.css ---- */

/* Side nav */

nav.side-nav {
  background-color: var(--purple);
  padding: 1rem 0;
  display: flex;
  flex-direction: column;
  min-width: 240px;
}

nav.side-nav ul {
  list-style: none;
  padding: 0;
}

nav.side-nav ul ul {
  margin-left: 1em;
}

nav.side-nav a {
  color: var(--yellow);
  display: block;
  padding: 3px 1em;
}

nav.side-nav ul ul a {
  border-left: 2px solid var(--purple-darker);
}

nav.side-nav a:hover {
  background-color: var(--purple-darker);
}

nav.side-nav a.active {
  background-color: var(--leaf);
  color: var(--cauliflower);
}

.with-side-nav > .content {
  width: 100%;
}

@media screen and (max-width: 576px) {
  main .with-side-nav {
    flex-direction: column;
  }

  .with-side-nav nav.side-nav {
    padding-top: 0;
    padding-bottom: 0;
  }
}


/* ---- 09_article.css ---- */

/* Article */

article {
  &.home {
    padding: var(--page-gutter);
  }

  &.docs-page {
    /* padding: var(--page-gutter); */
    min-height: 80vh;
  }

  &.docs-page .article-inner {
    padding: var(--page-gutter);
  }

  nav.between-pages {
    margin-top: 2em;
    border-top: 3px dashed black;
    padding-top: 1em;
    max-width: var(--main-content-width);
    display: flex;
    flex-direction: row;
    justify-content: space-between;
  }

  nav.between-pages a {
    font-size: 120%;
    text-decoration: none;
  }

  nav.between-pages a:hover {
    text-decoration: underline;
  }

  /* ARTICLE TYPOGRAPHY */

  & > *:first-child {
    margin-top: 0;
  }

  & > *:last-child {
    margin-bottom: 0;
  }

  h1 {
    margin-bottom: 1.5rem;
  }

  p {
    max-width: var(--main-content-width);
  }

  ul,
  ol {
    max-width: calc(var(--main-content-width) * 0.8);
  }

  a {
    text-decoration: underline;
  }

  code {
    font-size: 1rem;
    display: inline-block;
    padding: 0 0.3rem;
    border-radius: 3px;
  }

  aside {
    border: 2px solid black;
    padding: 1rem;
    border-radius: 3px;
    max-width: calc(var(--main-content-width) * 0.9);
  }

  aside > *:first-child {
    margin-top: 0;
  }

  aside > *:last-child {
    margin-bottom: 0;
  }

  section.hero {
    font-size: 150%;
    max-width: var(--main-content-width);
    font-style: italic;
  }

  aside.user-story {
    border: 2px solid var(--burnt-orange3);
    padding: 1rem;
    border-radius: 8px;
    max-width: calc(var(--main-content-width) * 0.9);
    color: var(--grey4);
    display: grid;
    grid-template-columns: 10rem 2fr;
    gap: 0.4em;
  }

  aside.user-story > p {
    margin-top: 0;
    margin-bottom: 0;
  }

  aside.user-story em {
    color: var(--grey3);
    text-align: right;
    padding-right: 0.5rem;
  }

  aside.user-story strong {
    color: var(--grey1);
    font-size: 120%;
    font-weight: 500;
  }

  @media screen and (max-width: 576px) {
    aside.user-story {
      grid-template-columns: 1fr;
      gap: 0.2em;
    }

    aside.user-story em {
      text-align: left;
      padding-right: 0;
      padding-top: 0.5rem;
    }

    aside.user-story em:first-child {
      padding-top: 0;
    }
  }

  a.section-link {
    &,
    &:link,
    &:visited {
      --height: 40px;
      --color: var(--highlight-color);
      font-weight: bold;
      font-size: 1.3rem;
      background-color: var(--highlight-color);
      color: var(--background-color);
      display: inline-block;
      text-decoration: none;
      padding: 0 0.5em;
      position: relative;
      height: var(--height);
      line-height: var(--height);
      margin-right: calc(var(--height) / 2);
    }
  }

  a.section-link:after {
    --half-height: calc(var(--height) * 0.5);

    content: "";
    display: block;
    height: 0;
    width: 0;
    position: absolute;
    top: 0;
    right: calc(-1 * var(--half-height));
    border-left: var(--half-height) solid var(--color);
    border-top: var(--half-height) solid transparent;
    border-bottom: var(--half-height) solid transparent;
  }
}


/* ---- 10_roadmap.css ---- */

.roadmap-page {
  display: flex;
  align-items: stretch;
  flex-direction: column;
  padding: 1em var(--page-gutter) 2em var(--page-gutter);
  gap: 2em;

  background-image: url("/images/sections/blueprint/background_portrait.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center bottom;

  .section-header {
    display: flex;
    align-items: center;
    flex-direction: column;
  }

  .content {
    max-width: var(--main-content-width);
    margin-left: auto;
    margin-right: auto;
    width: 100%;
  }
}

/* Items List Layout */

.roadmap-items {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.roadmap-items:before {
  content: "";
  position: absolute;
  left: calc(50% - 2px);
  border-right: 4px dashed var(--highlight-color);
  height: 100%;
  z-index: 1;
}

.roadmap-rows {
  display: flex;
  align-items: stretch;
  flex-direction: column;
  gap: 2em;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  margin-top: 1em;
  margin-bottom: 2em;
}

@media screen and (max-width: 576px) {
  .roadmap-items:before {
    left: 0;
  }
}

/* Item Typography */

a.roadmap-item {
  --color: var(--dirt);
  --background-color: var(--cauliflower);
  --background-color-darker: var(--cauliflower-darker);

  text-decoration: none;
  min-width: 200px;
  max-width: 500px;
  background-color: var(--background-color);
  color: var(--dirt);
  border: 2px solid black;
  border-radius: 8px;
  box-shadow: 2px 3px 10px black;
  color: var(--dirt);
  display: flex;
  flex-direction: column;

  &,
  &:hover,
  &:visited,
  &:link,
  &:active {
    color: var(--color);
  }

  &:hover {
    text-decoration: none;
    background-color: var(--cauliflower-lighter);
  }

  .details {
    padding: 0.8em 1em 1em 1em;
    flex-grow: 1;
  }

  h2 {
    font-size: 1.2em;
    color: var(--color);
  }
}

/* Roadmap Item Status */

.roadmap-item-row .status-indicator {
  text-align: center;
  padding-left: 1em;
  padding-right: 1em;
  padding-top: 3px;
  padding-bottom: 4px;
  color: black;
  font-weight: bold;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
}

.has-status.status-in-progress {
  --status-color: var(--purple);
  --status-color-highlight: var(--purple-lighter);
  --status-color-text: black;
}

.has-status.status-proposed {
  --status-color: var(--dirt);
  --status-color-highlight: var(--dirt-lighter);
  --status-color-text: white;
}

.has-status.status-complete {
  --status-color: var(--leaf-darker);
  --status-color-highlight: var(--leaf);
  --status-color-text: var(--cauliflower);
  --background-color-darker: var(--leaf-darker);

  .roadmap-item {
    background-color: var(--leaf);
    color: var(--status-color-text);

    &:hover {
      background-color: var(--leaf-lighter);
    }

    h2 {
      color: var(--pink);
    }

    ul.tags {
      li.tag {
        background-color: var(--leaf-darker);
        color: var(--cauliflower);
        border-color: var(--cauliflower);
      }
    }
  }
}

.has-status.status-draft {
  --status-color: var(--grey8);
  --status-color-highlight: var(--grey7);
  --status-color-text: var(--grey0);
  opacity: 0.6;
}

.roadmap-item-row.has-status {
  .status-indicator {
    background-color: var(--status-color);
    color: var(--status-color-text);
  }

  a.roadmap-item {
    border-color: black;

    &:hover {
      .status-indicator {
        background-color: var(--status-color-highlight);
      }
    }
  }
}

/* Timeline dot */

.roadmap-rows .roadmap-milestone-container .roadmap-item-row::before {
  content: "";
  height: 12px;
  width: 12px;
  border: 1px solid black;

  background-color: var(--status-color, var(--highlight-color));
  border-radius: 999px;
  z-index: 3;
}

/* Item Row Leaf Node */

.roadmap-rows .roadmap-item-row {
  display: flex;
  flex-direction: row;
  width: 100%;
  position: relative;
  z-index: 2;
}

.roadmap-rows .roadmap-item-row.not-section .roadmap-item-container {
  display: flex;
  flex-direction: row;
}

@media screen and (min-width: 481px) {
  .roadmap-rows .roadmap-item-row.not-section::before {
    left: calc(50% - 7px);
    top: 50%;
    position: absolute;
  }

  .roadmap-rows .roadmap-item-row.not-section {
    width: calc(50% - var(--page-gutter));
    justify-content: flex-start;
  }

  .roadmap-rows .roadmap-item-row.not-section:nth-child(odd) {
    padding-right: calc(50% + var(--page-gutter));
    justify-content: flex-end;
  }

  .roadmap-rows .roadmap-item-row.not-section:nth-child(even) {
    padding-left: calc(50% + var(--page-gutter));
    justify-content: flex-start;
  }
}

@media screen and (max-width: 576px) {
  .roadmap-rows .roadmap-item-row.not-section {
    padding-left: var(--page-gutter);
    width: calc(100% - var(--page-gutter));
  }

  .roadmap-rows .roadmap-item-row.not-section::before {
    position: absolute;
    left: -6px;
    top: 50%;
  }
}

/* Section Item Row */

.roadmap-rows .roadmap-item-row.is-section {
  flex-direction: column;
  align-items: center;
}

.roadmap-rows .roadmap-item-row.is-section .roadmap-item-container {
  min-width: 50%;
  display: flex;
  flex-direction: row;
  justify-content: center;
}

@media screen and (min-width: 481px) {
  .roadmap-rows .roadmap-item-row.is-section::before {
    margin-bottom: -6px;
  }
}

@media screen and (max-width: 576px) {
  .roadmap-rows .roadmap-item-row.is-section {
    padding-left: var(--page-gutter);
    width: calc(100% - var(--page-gutter));
  }

  .roadmap-rows .roadmap-item-row.is-section::before {
    position: absolute;
    left: -6px;
    top: 50%;
  }
}

.roadmap-rows .roadmap-item-row.is-section .sub-pages {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  gap: 10px;
  padding-right: 12px;
  margin-bottom: 10px;
}

/* Stream grouping */

.roadmap-rows .roadmap-stream-group-container {
  margin-left: 0;
  margin-right: 0;
}

.roadmap-rows .roadmap-stream-group {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: center;
  gap: 1em;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 10px;
  z-index: 10;
  width: 100%;
}

.roadmap-rows > .roadmap-stream-group-container > .roadmap-stream-group > .roadmap-item-row {
  padding: 0;
  flex-grow: 1;
  flex-shrink: 1;
  max-width: 300px;
}

.roadmap-rows .roadmap-stream-group > .roadmap-item-row > .roadmap-item-container {
  height: 100%;
  width: 100%;

  .status-indicator {
    border-top-left-radius: 0px;
    border-top-right-radius: 0px;
  }
}

.roadmap-rows .roadmap-stream-group > .roadmap-item-row > .roadmap-item-container > a.roadmap-item {
  height: 100%;
  width: 100%;
}

.roadmap-rows .roadmap-stream-group > .roadmap-item-row:first-child {
  margin-left: calc(2 * var(--page-gutter));
}

.roadmap-rows .roadmap-stream-group > .roadmap-item-row:last-child {
  margin-right: calc(2 * var(--page-gutter));
}

.stream-indicator {
  background-color: black;
  color: var(--cauliflower);
  text-align: center;
  padding: 0.2em 0.5em;
}

.roadmap-item-row.type-stream.rad-stream a.roadmap-item h2 {
  color: var(--text-color-on-background);
}

@media screen and (max-width: 576px) {
  .roadmap-rows .roadmap-stream-group-container {
    margin-left: calc(-1 * var(--page-gutter));
    margin-right: calc(-1 * var(--page-gutter));
  }

  .roadmap-rows > .roadmap-stream-group-container > .roadmap-stream-group > .roadmap-item-row {
    max-width: 70vw;
    width: 70vw;
    flex-shrink: 0;
  }

  .roadmap-rows .roadmap-stream-group {
    justify-content: left;
  }
}

/* Types: Milestone */

.roadmap-rows .roadmap-milestone-container {
  max-width: var(--main-content-width);
  margin-left: auto;
  margin-right: auto;
}

/* Sub Pages */

.roadmap-item-row .sub-pages .sub-page {
  width: 12px;
  height: 12px;
  background-color: var(--grey3);
  border-radius: 9999px;
}

.roadmap-item-row .sub-pages .sub-page.has-status {
  background-color: var(--status-color, var(--grey5));
}

/* Roadmap item detail page */

article.roadmap-item-page {
  width: 100%;
  padding: var(--page-gutter);
  min-height: 80vh;

  .article-header {
    margin-bottom: 1.5em;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;

    h1 {
      margin: 0;
    }

    .status-indicator {
      --height: 32px;

      background-color: var(--status-color, var(--grey3));
      color: var(--status-color-text, black);
      padding: 0 1em;
      font-weight: bold;
      letter-spacing: 2px;
      position: relative;
      border: 1px solid;
      height: var(--height);
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 2px;
    }

    .status-indicator > span {
      line-height: 100%;
      padding-bottom: 0.1em;
      text-transform: uppercase;
    }

    .status-indicator:after {
      content: "";
      position: absolute;
      left: calc(-1 * var(--height));
      top: 0;
      bottom: 0;
      border: calc(var(--height) / 2) solid transparent;
      border-right: calc(var(--height) / 2) solid var(--status-color, var(--grey3));
    }
  }

  @media screen and (max-width: 576px) {
    .article-header {
      flex-direction: column;
      gap: 0.5em;
    }

    .article-header .status-indicator:after {
      display: none;
    }
  }

  .summary {
    max-width: var(--main-content-width);
    font-size: 120%;
  }
}

/* Roadmap Side Nav */

.roadmap-side-nav {
  background-color: var(--dirt);
  padding: 1rem 0;
  display: flex;
  flex-direction: column;
  min-width: 150px;
  border-right: 2px dashed var(--pink);

  ul {
    list-style: none;
    padding-left: 0;
    margin-left: 0;
    display: flex;
    flex-direction: column;
    margin: 0;

    li {
      border-bottom: 1px solid var(--dirt-darker);
    }

    li:last-child {
      border-bottom: none;
    }
  }

  a {
    text-decoration: none;
    color: var(--grass);
    padding: 0.3em 1em;
    display: block;
    position: relative;

    &:after {
      --size: 12px;

      position: absolute;
      content: "";
      display: block;
      background-color: var(--status-color, var(--grey5));
      width: var(--size);
      height: var(--size);
      border-radius: 9999px;
      right: calc(-1px - var(--size) / 2);
      top: calc(50% - var(--size) / 2);
    }

    &:hover {
      background-color: var(--dirt-lighter);
    }

    &.active {
      background-color: var(--leaf);
      color: var(--cauliflower);
    }

    &.section-step {
      font-weight: bold;
      padding-top: 1em;
      padding-bottom: 1em;
    }
  }
}

@media screen and (max-width: 576px) {
  .roadmap-side-nav {
    display: none;
  }
}

/* Footer */

.roadmap-item-page .parent-page-link {
  margin-top: 2em;
}

/* Tags */

ul.tags {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-bottom: 10px;
  padding: 0 12px;

  li.tag {
    color: var(--color);
    background-color: var(--background-color-darker);
    display: inline-block;
    padding: 2px 6px 3px 6px;
    border-radius: 6px;
    border: 2px solid var(--color);
    font-weight: bold;
  }
}


/* ---- 11_solo.css ---- */

.solo {
  padding-top: 2rem;
  padding-bottom: 2rem;
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
}

article.solo-page {
  max-width: var(--main-content-width);
  margin-left: auto;
  margin-right: auto;
  min-height: 50vh;
  width: 100%;
}


/* ---- 12_home.css ---- */

.home {
  font-size: 13pt;
}

article.home-page {
  width: 100%;

  .container {
    max-width: var(--main-content-width);
    margin-left: auto;
    margin-right: auto;
    padding: var(--page-gutter);
  }

  section p {
    &:first-child {
      margin-top: 0;
    }
  }

  .news-flash {
    background-color: var(--leaf-darker);
    color: var(--cauliflower);

    a {
      &,
      &:hover,
      &:visited,
      &:link,
      &:active {
        color: var(--yellow);
      }
    }

    a {
      &:hover {
        color: var(--yellow);
        filter: brightness(1.3);
      }
    }
  }

  section .with-side-image {
    display: flex;
    flex-direction: row;
    gap: 1em;
  }

  section.home-hero {
    font-size: 2.2em;
    line-height: 1.4;
    position: relative;

    background-color: white;
    background-image: url("/images/sections/bricks_background.svg");
    background-repeat: repeat-x;
    background-size: auto 100%;
    background-position: center;

    color: var(--cauliflower);

    p {
      margin: 0;
    }

    h1 {
      margin: 0;
      color: var(--cauliflower);

      @media screen and (max-width: 576px) {
        font-size: 1.8em;
      }
    }

    .slightly-dimmed {
      color: var(--cauliflower);
    }

    .home-hero-inner {
      background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%);
    }

    .rad {
      background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 1) 100%);
      font-size: 1.2rem;

      a {
        &,
        &:link,
        &:visited {
          color: rgb(0, 138, 230);
        }
      }

      .rad-purpose {
        font-size: 2.2rem;
        line-height: 1.4em;
        font-family: monospace;
        padding-bottom: calc(var(--page-gutter) * 0.5);
        padding-top: 0.5rem;

        .retrofit {
          background-color: var(--retrofit);
          color: white;
          padding: 0 0.2em;
        }

        .decommodify {
          background-color: var(--decommodify);
          color: white;
          padding: 0 0.2em;
        }

        .collectively,
        .solidarity {
          background-color: white;
          color: black;
          padding: 0 0.2em;
        }
      }
    }
  }

  section {
    &.project,
    &.values,
    &.seedling {
      font-size: 1.7rem;
    }

    strong,
    h2 {
      color: var(--highlight-color);
    }

    &.multi-house {
      font-size: 1.5rem;
    }

    &.multi-house h2 {
      font-size: 2rem;
    }

    &.topic {
      background-color: var(--background-color);
      color: var(--color);

      background-repeat: no-repeat;
      background-position: center top;
      background-size: cover;
    }

    &.topic .container {
      padding-top: calc(var(--page-gutter) * 2);
      padding-bottom: calc(var(--page-gutter) * 2);
    }

    .section-link-container {
      text-align: right;
    }
  }

  /* COLOR SECTIONS */

  .on-purple {
    --highlight-color: var(--yellow);
    --background-color: var(--purple);
    --color: var(--yellow);

    background-image: url("/images/sections/purple/background_landscape.svg");

    @media screen and (max-width: 576px) {
      background-image: url("/images/sections/purple/background_portrait.svg");
    }
  }

  .on-cauli {
    --highlight-color: var(--dirt);
    --background-color: var(--cauliflower);
    --color: var(--dirt);

    background-image: url("/images/sections/cauli/background_landscape.svg");

    @media screen and (max-width: 576px) {
      background-image: url("/images/sections/cauli/background_portrait.svg");
    }
  }

  .on-blue {
    --highlight-color: var(--pink);
    --background-color: var(--blueprint);
    --color: var(--pink);

    background-image: url("/images/sections/blueprint/background_landscape.svg");
    background-size: contain;
    background-position: center bottom;

    @media screen and (max-width: 576px) {
      background-image: url("/images/sections/blueprint/background_portrait.svg");
    }
  }

  .on-dirt {
    --highlight-color: var(--grass);
    --background-color: var(--dirt);
    --color: var(--grass);

    background-image: url("/images/sections/dirt/background_landscape.svg");
    background-position: center;

    @media screen and (max-width: 700px) {
      background-size: contain;
    }

    @media screen and (max-width: 576px) {
      background-size: contain;
      background-image: url("/images/sections/dirt/background_portrait.svg");
    }
  }

  .on-leaf {
    --highlight-color: var(--cauliflower-lighter);
    --background-color: var(--leaf);
    --color: var(--cauliflower);
  }

  .get-involved {
    text-align: center;

    p {
      font-size: 1.7rem;
      max-width: 500px;
      margin-left: auto;
      margin-right: auto;
    }

    h2 {
      font-size: 2.5rem;
    }

    .section-link-container {
      text-align: center;

      a.section-link {
        border-radius: 2px;

        &:after {
          display: none;
        }
      }
    }
  }
}


/* ---- 13_decorations.css ---- */

.decoration {
  max-width: 50%;
  margin-top: 2rem;
  margin-bottom: 2rem;
  margin-left: auto;
  margin-right: auto;
}
