@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/
   v5.0.1 | 20191019
   License: none (public domain)
*/
@import url("https://fonts.googleapis.com/css?family=Catamaran:400,400i,700|PT+Sans:400,700&display=swap");
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, menu, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
  display: block;
}

/* HTML5 hidden-attribute fix for newer browsers */
*[hidden] {
  display: none;
}

body {
  line-height: 1;
}

menu, ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

body {
  font-family: Catamaran, sans-serif;
}

main {
  font-size: 20px;
  line-height: 1.5;
  overflow-wrap: break-word;
  font-kerning: normal;
  font-feature-settings: "kern", "liga", "clig", "calt";
  max-width: 33em;
  margin: 0 auto;
  padding: 0 20px;
  color: rgba(0, 0, 0, 0.65);
  z-index: 1;
}
main *,
main *:before,
main *:after {
  box-sizing: border-box;
}
main b,
main strong,
main dt,
main th, main b,
main strong,
main dt,
main th {
  font-weight: bold;
}
main h1,
main h2,
main h3,
main h4,
main h5,
main h6,
main hgroup,
main ul,
main ol,
main dl,
main dd,
main p,
main figure,
main pre,
main table,
main fieldset,
main blockquote,
main form,
main noscript,
main iframe,
main img,
main hr,
main address {
  margin-bottom: 20px;
}
main hr {
  background: currentColor;
  border: none;
  height: 1px;
  margin-bottom: 19px;
}
main ol,
main ul {
  list-style-position: outside;
}
main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  font-weight: bold;
  margin-top: 2em;
}
main h1 {
  font-size: 35.5555555556px;
  line-height: 1.125;
}
main h2 {
  font-size: 26.6666666667px;
  line-height: 1.25;
}
main h3,
main h4,
main h5,
main h6 {
  font-size: 20px;
  line-height: 1.5;
}
main :not(pre) > code,
main pre {
  font-family: monospace;
  font-size: 0.9em;
}
main ul {
  list-style-type: disc;
  margin-left: 1em;
}
main ol {
  list-style-type: numeric;
  margin-left: 1em;
}
main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  font-family: "PT Sans", sans-serif;
}
main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  color: rgba(0, 0, 0, 0.85);
}
main blockquote {
  border-left: 5px solid rgba(0, 0, 0, 0.2);
  padding-left: 10px;
}
main img {
  max-width: 100%;
}
main i,
main em {
  background-color: rgba(255, 239, 97, 0.4);
  padding: -3px 3px;
}

header {
  background-color: #00b159;
  background-image: url("/assets/build/duotone.a902073c.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 49%;
  --logo-h: 150px;
  overflow: hidden;
  padding-bottom: 50px;
}
@media only screen and (max-width: 500px) {
  header {
    --logo-h: 100px;
  }
}
header img {
  height: calc(var(--logo-h));
}
.debug header img {
  border: 1px solid magenta;
}
header .rotated {
  transform-origin: calc(var(--logo-h) * 3.577) top;
  transform: rotate(-5deg);
}
.debug header .rotated {
  border: 1px solid magenta;
}
header nav {
  background-color: white;
  padding: 320px;
  margin: -300px;
  padding-top: 0;
  margin-top: 0;
}
header article {
  font-size: 50px;
  color: white;
  font-family: "PT Sans", sans-serif;
  font-weight: bold;
  margin: 50px;
  margin-top: 0;
  max-width: 700px;
}
@media only screen and (max-width: 720px) {
  header article {
    font-size: 30px;
  }
}
@media only screen and (max-width: 400px) {
  header article {
    font-size: 20px;
  }
}
header article a {
  color: inherit;
  text-decoration: none;
  border: 0.12em solid white;
  border-radius: 0.36em;
  font-size: 0.5em;
  padding: 0.08em 0.6em;
}
header article a:hover {
  background-color: white;
  color: #00b159;
}

nav {
  font-family: "PT Sans", sans-serif;
  font-weight: bold;
  font-size: 24px;
  display: grid;
  grid-template: "logo nav curlyboi" auto "dates dates dates" auto/min-content auto 1fr;
  /*
    @media only screen and (max-width: 1160px) {
        grid-template: "logo dates" auto
                        "nav nav" auto / auto auto;
        &.home {
            grid-template: "nav" auto "dates" auto / auto;
        }
        font-size: 20px;
        #nav-logo img {
            height: 45px;
        }
        .dates {
            font-size: 10px;
            margin: 10px;
        }
    }
    */
}
nav.home {
  grid-template: "nav curlyboi" auto "dates dates" auto/auto 1fr;
}
nav:before {
  grid-area: curlyboi;
  content: "";
  font-size: 1px;
  background-image: url("/assets/build/Curlyboi.e78156b8.svg");
  background-size: auto 60%;
  background-repeat: no-repeat;
  background-position: center left;
  margin-left: 20px;
}
nav.home #nav-logo {
  display: none;
}
nav #nav-logo {
  grid-area: logo;
  margin: 0;
  padding: 0;
  display: flex;
}
nav #nav-logo img {
  height: calc(1em + 40px);
}
nav ul {
  grid-area: nav;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  display: flex;
  flex-direction: row;
}
nav li {
  display: inline-block;
  padding: 20px;
}
nav li a {
  color: inherit;
  text-decoration: none;
}
nav li a:hover {
  text-decoration: underline;
}
nav li:nth-child(1) {
  color: #00ab56;
}
nav li:nth-child(2) {
  color: #bd8d00;
}
nav li:nth-child(3) {
  color: #f36b35;
}
nav li:nth-child(4) {
  color: #e01d43;
}
nav li:nth-child(5) {
  color: #5b57a5;
}
nav .dates {
  grid-area: dates;
  color: #00ab56;
  margin: 0 10px;
  text-align: right;
  font-size: 15px;
}
nav .dates .location {
  font-weight: 400;
}
@media only screen and (max-width: 960px) {
  nav {
    grid-template: "logo curlyboi curlyboi" auto "nav nav dates" auto/min-content 1fr;
  }
  nav #nav-logo img {
    height: 40px;
  }
  nav ul {
    font-size: 15px;
  }
  nav ul li {
    padding: 10px;
  }
  nav .dates {
    font-size: 12px;
    margin: 0 5px;
  }
}
@media only screen and (max-width: 599px) {
  nav {
    grid-template: "logo curlyboi" 1fr "logo dates" min-content "nav nav" auto/min-content 1fr;
  }
  nav .dates {
    font-size: 10px;
  }
}

.lede {
  font-size: 1.333em;
}

.mailing-list-signup-form {
  --form-colour: #00b159;
  display: flex;
}
.mailing-list-signup-form > *:not(:last-child) {
  margin-right: 5px;
}
.mailing-list-signup-form input,
.mailing-list-signup-form button {
  font-size: inherit;
  padding: 5px;
  border-radius: 5px;
}
.mailing-list-signup-form input {
  flex: 1;
  border: 2px solid var(--form-colour);
}
.mailing-list-signup-form input:invalid {
  outline: 0 !important;
  box-shadow: none !important;
}
.mailing-list-signup-form input:invalid:focus {
  border-color: #e01d43;
}
.mailing-list-signup-form input:focus {
  border-color: #5b57a5;
}
.mailing-list-signup-form button {
  background-color: var(--form-colour);
  border: 0;
  padding: 5px 15px;
  color: white;
  font-weight: bold;
}
.mailing-list-signup-form button:focus {
  outline: 0 !important;
  border: 2px solid #5b57a5;
  padding: 3px 13px;
}

#covid-quote {
  font-size: 1.3333333333em;
  margin-bottom: 2em;
}
@media only screen and (min-width: 820px) {
  #covid-quote {
    width: 800px;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
  }
}
#covid-quote .source {
  font-size: 0.75em;
  display: grid;
  grid-template: "dash name" "dash title";
  grid-template-columns: max-content auto;
}
#covid-quote .source .name {
  grid-area: name;
}
#covid-quote .source .title {
  grid-area: title;
  font-size: 0.75em;
}
#covid-quote .source:before {
  content: "⸺";
  grid-area: dash;
  margin-right: 0.8ch;
}

main hr {
  background: rgba(0, 0, 0, 0.4);
  height: 2px;
  margin: 3em;
}

small {
  font-size: 0.75em;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
@media (max-width: 767.9999px) {
  html.schedule body {
    height: 100vh;
  }
}

#content {
  flex-grow: 1;
}

footer {
  display: grid;
  line-height: 1.3em;
  margin-top: 100px;
  color: #777;
  background-color: #eee;
  grid-template: "auspice video infra signup" "auspice video infra copyright";
  grid-template-columns: 1fr 1fr 1fr max-content;
}
@media (max-width: 767.9999px) {
  html.schedule footer {
    display: none;
  }
}
footer form {
  --form-colour: #777 !important;
}
@media only screen and (max-width: 959px) {
  footer {
    grid-template: "auspice" "video" "infra" "signup" "copyright";
  }
}
footer section {
  margin: 20px;
}
footer section.auspice {
  grid-area: auspice;
}
footer section.video {
  grid-area: video;
}
footer section.infra {
  grid-area: infra;
}
footer section.signup {
  grid-area: signup;
}
footer section.copyright {
  grid-area: copyright;
  align-self: end;
}
footer section.sponsor h1 {
  border-bottom: 1px solid #777;
  padding-bottom: 10px;
}
footer section.sponsor img {
  height: 200px;
  width: calc(100% - 60px);
  object-fit: contain;
  margin: 30px;
}
footer h1 {
  font-size: 1.25em;
  font-weight: bold;
  font-family: "PT Sans", sans-serif;
  margin-bottom: 10px;
}

.center-content {
  display: flex;
  justify-content: center;
}

.btn {
  text-decoration: none;
  background-color: #00b159;
  color: white;
  font: "PT Sans", sans-serif;
  display: inline-block;
  font-weight: bold;
  padding: 0.3em 1em;
  border-radius: 5px;
}
.btn.btn-chonk {
  font-size: 1.3333333333em;
  border-radius: 6.6666666667px;
}
.btn.btn-smol {
  font-size: 0.75em;
  border-radius: 3.75px;
}
.btn:focus {
  border: 3px solid #ffc518;
  margin: -3px;
}
.btn:hover {
  background-color: #007e3f;
}

.ytembed {
  width: 100%;
}

.profile {
  display: flex;
  flex-direction: row;
}
.profile img {
  width: 75px;
  height: 75px;
  border-radius: 1000px;
  object-fit: cover;
}
.profile .details {
  display: flex;
  flex-direction: column;
}
.profile .details:not(:first-child) {
  margin-left: 1em;
}
.profile b {
  font-size: 1.3333333333em;
}

.profile-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-gap: 2em;
}

.sponsorlogo {
  max-height: 250px;
  max-width: 350px;
  margin: 20px;
  margin-top: 100px;
}

#content {
  display: flex;
  flex-direction: column;
}

s-schedule-outer {
  flex: 1;
  display: block;
}
@media (max-width: 767.9999px) {
  s-schedule-outer {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    writing-mode: vertical-lr;
  }
}

s-schedule {
  display: grid;
}
@media (min-width: 768px) {
  s-schedule {
    width: 100%;
    grid-template-columns: auto auto repeat(var(--total-tracks), 1fr);
    grid-template-rows: auto repeat(calc(var(--day-end) - var(--day-start)), 1fr);
  }
}
@media (max-width: 767.9999px) {
  s-schedule {
    height: 100%;
    width: calc((var(--day-end) - var(--day-start)) * 5px);
    grid-template-rows: auto auto repeat(var(--total-tracks), 1fr);
    grid-template-columns: auto repeat(calc(var(--day-end) - var(--day-start)), 1fr);
    writing-mode: horizontal-tb;
  }
}

s-schedule a.session {
  z-index: 1;
  color: inherit;
  text-decoration: none;
  background-color: rgba(0, 177, 89, 0.2);
  border-radius: 5px;
  padding: 7px;
  margin: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1em;
}
.backstage s-schedule a.session.session-L, .backstage s-schedule a.session.session-None {
  background-color: rgba(0, 177, 89, 0.5);
}
@media (min-width: 768px) {
  s-schedule a.session {
    grid-column-start: calc(var(--track) + 2);
    grid-column-end: span 1;
    grid-row-start: calc(var(--start) - var(--day-start) + 2);
    grid-row-end: calc(var(--end) - var(--day-start) + 2);
    font-size: 16px;
  }
}
@media (max-width: 767.9999px) {
  s-schedule a.session {
    grid-row-start: calc(var(--track) + 2);
    grid-row-end: span 1;
    grid-column-start: calc(var(--start) - var(--day-start) + 2);
    grid-column-end: calc(var(--end) - var(--day-start) + 2);
    font-size: 14px;
  }
}
s-schedule a.session .speaker {
  font-size: 0.75em;
  font-weight: bold;
}
s-schedule a.session .time {
  font-size: 0.6em;
  font-weight: bold;
  font-family: "PT Sans", sans-serif;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

s-track,
s-tz-header {
  text-align: center;
  padding: 5px;
  position: sticky;
  top: 0;
  left: 0;
  background-color: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(4px);
  font-weight: bold;
  -webkit-backdrop-filter: blur(4px);
}
@media (min-width: 768px) {
  s-track,
s-tz-header {
    grid-row: 1;
    grid-column: calc(var(--track) + 2);
  }
}
@media (max-width: 767.9999px) {
  s-track,
s-tz-header {
    grid-column: 1;
    grid-row: calc(var(--track) + 2);
  }
}

@media (max-width: 767.9999px) {
  s-track {
    writing-mode: vertical-rl;
    transform: rotate(0.5turn);
    font-size: 13px;
  }
}

@media (min-width: 768px) {
  s-tz-header {
    grid-column: 1;
  }
  s-tz-header.local {
    grid-column: 2;
  }
}
@media (max-width: 767.9999px) {
  s-tz-header {
    grid-row: 1;
  }
  s-tz-header.local {
    grid-row: 2;
  }
}

s-time,
s-now {
  color: #aaa;
  padding: 3px;
  z-index: -2;
}
@media (min-width: 768px) {
  s-time,
s-now {
    text-align: center;
    grid-column: 1;
    grid-row-start: calc(var(--at) - var(--day-start) + 2);
    grid-row-end: span 60;
  }
  s-time.local,
s-now.local {
    grid-column: 2;
  }
}
@media (max-width: 767.9999px) {
  s-time,
s-now {
    grid-row: 1;
    grid-column-start: calc(var(--at) - var(--day-start) + 2);
    grid-column-end: span 60;
  }
  s-time.local,
s-now.local {
    grid-row: 2;
  }
}

@media (min-width: 768px) {
  s-time-rule,
s-now-rule {
    grid-column-start: 1;
    grid-column-end: calc(var(--total-tracks) + 3);
    grid-row: calc(var(--at) - var(--day-start) + 2);
  }
}
@media (max-width: 767.9999px) {
  s-time-rule,
s-now-rule {
    grid-row-start: 1;
    grid-row-end: calc(var(--total-tracks) + 3);
    grid-column: calc(var(--at) - var(--day-start) + 2);
  }
}

s-time-rule {
  z-index: -2;
}
@media (min-width: 768px) {
  s-time-rule {
    border-top: 1px solid #ddd;
  }
}
@media (max-width: 767.9999px) {
  s-time-rule {
    border-left: 1px solid #ddd;
  }
}

s-now-rule {
  z-index: -1;
}
@media (min-width: 768px) {
  s-now-rule {
    border-top: 1px solid rgba(224, 29, 67, 0.7);
  }
}
@media (max-width: 767.9999px) {
  s-now-rule {
    border-left: 1px solid red;
  }
}

.switcher {
  display: flex;
  flex-direction: row;
  margin: 0 auto;
  border: 2px solid #00b159;
  border-radius: 7px;
  padding: 2px;
  space-between: 2px;
  margin-bottom: 20px;
}
@media (max-width: 767.9999px) {
  .switcher {
    margin-bottom: 5px;
  }
}
.switcher a {
  border-radius: 4px;
  margin-right: 2px;
  font-family: "PT Sans", sans-serif;
  color: #00b159;
  font-weight: bold;
  text-decoration: none;
  font-size: 20px;
  padding: 6px 12px;
}
@media (max-width: 767.9999px) {
  .switcher a {
    font-size: 15px;
    padding: 3px 6px;
  }
}
.switcher a:last-child {
  margin-right: 0;
}
.switcher a:hover {
  background-color: rgba(0, 177, 89, 0.2);
}
.switcher a.selected {
  background-color: #00b159;
  color: white;
}

.tz {
  text-align: center;
  font-size: 0.75em;
  color: rgba(0, 0, 0, 0.6);
}

.backstage-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  background-color: white;
  padding: 10px;
  z-index: 10;
}
.backstage-bar .time {
  font-size: 2em;
}

.backstage-only {
  display: none;
}
.backstage .backstage-only {
  display: block;
}

.backstage-only-inline {
  display: none;
}
.backstage .backstage-only-inline {
  display: inline;
}

.backstage-block {
  background-color: #eee;
  padding: 10px;
  margin-bottom: 20px;
}
.backstage-block :last-child {
  margin-bottom: 0;
}

table td,
table th {
  padding: 3px;
}
table th {
  text-align: left;
}

.content-warning {
  background-color: rgba(243, 111, 58, 0.25);
  color: #5b1e06;
  padding: 5px 8px;
  border-radius: 5px;
  font-size: 0.75em;
  margin: 20px 0;
}
.content-warning p:last-child {
  margin-bottom: 0;
}

/*# sourceMappingURL=/assets/build/index.css.map */