@charset "UTF-8";
@media screen and (max-device-width: 480px) {
  html {
    font-size: 14px; } }

li {
  color: #5b5b5b;
  font-weight: 200;
  line-height: 184%; }

h1 {
  font-size: 1.8rem; }

h1, h2, h3, h4 {
  font-weight: 300;
  color: #444444;
  padding-top: 1.2rem; }
  h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover {
    border: none; }

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

h2 {
  margin-bottom: 5px; }
  h2 + h3 {
    margin-top: 1rem;
    padding-top: 0; }

h3 {
  margin-bottom: 2px; }

a {
  color: #12a5ce;
  text-decoration: none; }
  a:hover {
    text-decoration: none;
    color: #0e7f9f;
    -webkit-transition: .2s;
    transition: .2s; }
  a.doldis {
    color: #5b5b5b; }
    a.doldis:hover {
      color: #12a5ce; }

a:hover, .link:hover {
  cursor: pointer; }

.hidden {
  display: none; }

p {
  margin-top: 0;
  font-weight: 400;
  color: #5b5b5b;
  max-width: 30rem;
  margin-top: 4px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased; }
  p.full-width {
    max-width: none; }

body, a, p, li, code, button, label {
  text-rendering: optimizeLegibility; }

i {
  font-size: 110%;
  position: relative;
  font-style: normal; }
  i:before {
    content: "🐒 - ";
    font-style: normal;
    text-decoration: none; }

.italic {
  font-style: italic; }

.curious, .task {
  padding-left: 2.5rem;
  position: relative; }
  .curious:before, .task:before {
    display: block;
    position: absolute;
    font-size: 200%; }

.next-steps {
  padding-left: 0rem;
  position: relative; }
  .next-steps:before {
    display: block;
    position: absolute;
    font-size: 200%; }

.task:before {
  content: "👩🏾‍💻 ";
  font-style: normal;
  left: 0;
  top: -1rem; }

.task.block {
  display: block; }

.curious:before {
  content: "🐒";
  top: -1rem; }

.next-steps:before {
  content: "🐌";
  top: -1rem; }

h2.curious {
  padding-left: 2.6rem;
  margin-bottom: .8rem; }
  h2.curious:before {
    top: 0;
    left: -.9rem; }

h2.next-steps {
  margin-bottom: .8rem; }
  h2.next-steps:before {
    top: .6rem;
    left: -3.9rem; }

ul.tasks, ol.tasks {
  list-style: none;
  padding: 0 0 0 .42rem; }
  ul.tasks li:before, ol.tasks li:before {
    content: "👩🏾‍💻 ";
    font-style: normal; }

.bold {
  font-weight: bold; }

.tight-bottom {
  margin-bottom: 2px; }

.tight-top {
  margin-top: 2px; }

.keep-together {
  display: inline-block; }

.tiny {
  font-size: 80%;
  line-height: 1.1rem; }
  .tiny.rise {
    display: inline-block;
    position: relative;
    top: -3px; }

@font-face {
  font-family: "Nunito";
  src: url("../fonts/nunito/nunito-regular.eot");
  src: url("../fonts/nunito/nunito-regular.woff2") format("woff2"), url("../fonts/nunito/nunito-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/nunito/nunito-regular.woff") format("woff"), url("../fonts/nunito/nunito-regular.ttf") format("truetype"), url("../fonts/nunito/nunito-regular.svg#Nunito") format("svg"); }

body {
  font-family: sans-serif; }

.terminal code, code.terminal {
  background: #222 !important;
  color: #ddd !important;
  padding: 2px 5px 0;
  border-radius: 2px;
  margin-top: 0;
  font-weight: 100;
  text-rendering: optimizeLegibility;
  border: 4px solid #222;
  line-height: 1.2rem; }

.terminal {
  max-width: 100% !important; }
  .terminal.push-bottom {
    margin-bottom: 2rem; }

.terminal code {
  display: block; }

.terminal pre {
  margin-top: 0; }

code {
  overflow-x: auto; }

@-webkit-keyframes bounceInFromLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
            transform: translate3d(-3000px, 0, 0); }
  60% {
    -webkit-transform: translate3d(25px, 0, 0);
            transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
            transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
            transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
            transform: none;
    opacity: 1; } }

@keyframes bounceInFromLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
            transform: translate3d(-3000px, 0, 0); }
  60% {
    -webkit-transform: translate3d(25px, 0, 0);
            transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
            transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
            transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
            transform: none;
    opacity: 1; } }

@-webkit-keyframes bounceInFromRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
            transform: translate3d(3000px, 0, 0); }
  60% {
    -webkit-transform: translate3d(-25px, 0, 0);
            transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
            transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
            transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
            transform: none;
    opacity: 1; } }

@keyframes bounceInFromRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
            transform: translate3d(3000px, 0, 0); }
  60% {
    -webkit-transform: translate3d(-25px, 0, 0);
            transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
            transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
            transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
            transform: none;
    opacity: 1; } }

@-webkit-keyframes loading_dots {
  0% {
    background: transparent; }
  50% {
    background: #E4E4E4; }
  100% {
    background: transparent; } }

@keyframes loading_dots {
  0% {
    background: transparent; }
  50% {
    background: #E4E4E4; }
  100% {
    background: transparent; } }

@-webkit-keyframes showMe {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes showMe {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0; }
  to {
    opacity: 1; } }

@-webkit-keyframes swooshOut {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    position: relative;
    right: 0; }
  30% {
    right: -2rem; }
  55% {
    right: 1rem;
    margin-bottom: -1rem; }
  80% {
    right: 10rem;
    margin-bottom: -2rem; }
  to {
    right: 200vw;
    margin-bottom: -4rem; } }

@keyframes swooshOut {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    position: relative;
    right: 0; }
  30% {
    right: -2rem; }
  55% {
    right: 1rem;
    margin-bottom: -1rem; }
  80% {
    right: 10rem;
    margin-bottom: -2rem; }
  to {
    right: 200vw;
    margin-bottom: -4rem; } }

#waiting {
  background: #2bc2ed;
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 5px;
  -webkit-box-shadow: inset 0 1px 0 rgba(10, 10, 10, 0.1), 0 1px 0 rgba(255, 255, 255, 0.3);
          box-shadow: inset 0 1px 0 rgba(10, 10, 10, 0.1), 0 1px 0 rgba(255, 255, 255, 0.3);
  font-size: 1em;
  line-height: 1;
  padding: 0.125em 0 0.175em 0.55em; }
  #waiting span {
    background: transparent;
    border-radius: 50%;
    -webkit-box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.3);
            box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.3);
    display: inline-block;
    height: 0.6em;
    width: 0.6em;
    -webkit-animation: loading_dots 1.4s linear infinite;
            animation: loading_dots 1.4s linear infinite;
    margin: 0 .2rem; }
    #waiting span:nth-child(1) {
      -webkit-animation-delay: 0.4s;
              animation-delay: 0.4s; }
    #waiting span:nth-child(2) {
      -webkit-animation-delay: 0.8s;
              animation-delay: 0.8s; }

@-webkit-keyframes sweep {
  0% {
    opacity: 0;
    margin-top: -20px; }
  100% {
    margin-top: 0; } }

@keyframes sweep {
  0% {
    opacity: 0;
    margin-top: -20px; }
  100% {
    margin-top: 0; } }

@-webkit-keyframes fontsize {
  0% {
    font-size: inherit; }
  100% {
    font-size: 1.5rem; } }

@keyframes fontsize {
  0% {
    font-size: inherit; }
  100% {
    font-size: 1.5rem; } }

body {
  margin: 0;
  padding: 0;
  scroll-behavior: smooth; }

.container {
  margin: 0 auto;
  padding-left: 2rem;
  padding-right: 2rem;
  max-width: 900px; }

hr {
  display: none;
  border-left: none;
  border-right: none;
  border-top: 900px;
  background: none;
  margin: 0 auto; }

img {
  max-width: 100%; }

.hide {
  -webkit-transition: all .4s ease-out;
  transition: all .4s ease-out;
  opacity: 0;
  margin: 0 !important;
  font-size: 0 !important; }
  .hide.country-list {
    height: 0; }

.center-large-piece {
  margin: 0 auto;
  padding-left: 1rem;
  padding-right: 1rem; }

.background-dark {
  background: #63656a; }

h1:first-child {
  margin-top: 18vh; }

button {
  cursor: pointer; }

input {
  position: relative; }

#course-material-programming-bunko .container > ol > li > ol {
  margin-bottom: 1.2rem; }

#course-material-programming-bunko .container > ol > li:nth-child(2) > ol {
  position: relative;
  top: -2px; }

header {
  padding-top: 2rem; }

#header-logo {
  max-width: 3.4rem;
  display: inline-block; }
  #header-logo img {
    max-width: 100%; }

.tooltip {
  background: #fff;
  border-radius: 1rem;
  position: absolute;
  padding: 1rem 1.3rem;
  left: 2rem;
  -webkit-box-shadow: 2px 2px 10px rgba(48, 52, 80, 0.5);
          box-shadow: 2px 2px 10px rgba(48, 52, 80, 0.5); }
  .tooltip p {
    font-size: 1.2rem !important;
    text-align: left !important;
    line-height: 1.6rem;
    margin: 0; }
  .tooltip.error {
    color: #303450 !important; }
  .tooltip:before {
    background: #fff;
    content: '';
    height: 20px;
    width: 20px;
    left: 5rem;
    bottom: -.5rem;
    display: block;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    position: absolute; }
  .tooltip.hiddenForHeight {
    opacity: 0; }
  .tooltip .close {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: #303450 none repeat scroll 0 0;
    border: 3px solid #fff;
    border-radius: 50%;
    color: #fff;
    font-family: verdana;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: absolute;
    right: -9px;
    top: -9px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: block;
    padding: 6px 7px 8px;
    line-height: 13px;
    width: auto;
    height: auto;
    font-size: 16px; }

footer {
  margin-top: 10vh;
  border-top: 1px solid #ddd;
  padding: .2rem 0 3rem; }

#startpage-welcome {
  padding: 23vh 0 2rem;
  position: relative; }
  #startpage-welcome img {
    max-height: 29rem;
    max-width: 40vw; }
  #startpage-welcome .bouncer {
    margin-bottom: 40vh; }
  #startpage-welcome h1 {
    margin-top: 0; }

#course-material-articles {
  padding-top: 10vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 3rem; }
  #course-material-articles article {
    vertical-align: top;
    padding-top: 1rem;
    position: relative; }
  #course-material-articles h2 {
    font-size: 1.3rem; }
    #course-material-articles h2 a {
      color: #444444; }
  #course-material-articles h4 {
    margin-bottom: 1px;
    color: #5b5b5b; }

#happy-balloon {
  max-height: 6rem;
  position: absolute;
  top: -3.04rem;
  left: -3.38rem;
  max-width: 6rem; }

#instructor:not(:target) .instructor {
  display: none; }

#instructor:target .instructor {
  color: #ff4bb4;
  border: 1px solid green; }

#instructor:target .instructor li {
  color: #ff4bb4;
  display: inherit;
  font-size: 130%;
  line-height: 150%; }

#instructor > img {
  margin-left: 2.1rem; }

#workshop h2 {
  font-size: 1.4rem;
  margin: 2rem 0 .3rem; }

#workshop h3 {
  font-size: 1.3rem;
  margin: 2rem 0 0;
  font-weight: bold; }

#workshop p {
  font-size: 1.1rem;
  line-height: 155%;
  max-width: 42rem; }

#workshop ol, #workshop ul {
  font-size: 1.1rem; }

#workshop ol li {
  color: #333; }

img.logo {
  max-height: 4.2rem;
  max-width: 4.2rem; }

body[id^=course-material-] header {
  margin-bottom: 10vh; }

body[id^=course-material-] article {
  max-width: 42rem; }
  body[id^=course-material-] article img {
    display: block; }
    body[id^=course-material-] article img[src$=".svg"] {
      max-width: 13rem;
      margin: 0 auto -2rem; }
    body[id^=course-material-] article img.left {
      margin: 0 0 -2rem; }
  body[id^=course-material-] article > img:first-child {
    margin-top: 4rem; }

#workshop .help-plz {
  position: relative; }
  #workshop .help-plz:before {
    content: "🐷";
    -webkit-transition: all .2s ease-in;
    transition: all .2s ease-in;
    font-style: normal;
    font-size: .9rem;
    position: absolute;
    top: -.1rem;
    border-radius: 50%;
    -webkit-transform: rotate(11deg);
            transform: rotate(11deg);
    display: inline-block;
    left: .1rem;
    opacity: .84; }
  #workshop .help-plz:hover:before {
    font-size: 1.2rem;
    left: .2rem; }

@media screen and (max-device-width: 480px), (min-device-width: 481px) and (max-width: 699px) {
  h1 {
    font-size: calc(1.3rem + 1vw); }
  h2 {
    font-size: calc(1rem + 1vw); }
  .hide-if-small {
    display: none; }
  #startpage-welcome {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 13vh 0 3vh; }
    #startpage-welcome img {
      -webkit-box-ordinal-group: 1;
          -ms-flex-order: 0;
              order: 0;
      margin: 0 auto 2vh;
      max-width: 50%;
      max-height: 30vh; }
    #startpage-welcome > * {
      -webkit-box-ordinal-group: 2;
          -ms-flex-order: 1;
              order: 1; }
    #startpage-welcome br {
      display: none; }
    #startpage-welcome h1 {
      margin-bottom: 1px; } }

@media screen and (min-device-width: 700px) and (min-width: 700px) {
  #course-material-articles article {
    width: 30%;
    vertical-align: top;
    padding-bottom: 3rem; }
    #course-material-articles article:nth-child(3n + 2):last-child {
      margin-right: calc(100% - 65%); }
  #startpage-welcome h1 {
    margin-bottom: .5rem; }
  #startpage-welcome img {
    position: absolute;
    right: 2vw;
    top: 13vh; } }

.pink {
  color: hotpink; }

a.primary {
  font-size: 113%;
  font-weight: 100; }

hr {
  border-top: 1px solid #eee;
  display: block;
  margin: 13vh auto 1rem;
  border-bottom: none;
  max-width: 50%; }
  hr + p {
    text-align: center;
    max-width: 100%; }

.tabs {
  clear: both;
  margin: 25px 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .tabs label {
    background: #eee;
    padding: 10px;
    border: 1px solid #ccc;
    margin-left: -1px;
    position: relative;
    left: 1px;
    display: block;
    float: left;
    cursor: pointer; }
  .tabs [type=radio] {
    display: none; }

.content {
  top: 28px;
  left: 0;
  background: white;
  right: 0;
  bottom: 0;
  padding: 20px;
  border: 1px solid #ccc;
  display: none;
  -webkit-box-ordinal-group: 11;
      -ms-flex-order: 10;
          order: 10;
  width: 100%;
  position: relative;
  top: -1px; }

[type=radio]:checked + label {
  background: white;
  border-bottom: 1px solid white;
  z-index: 2; }
  [type=radio]:checked + label + .content {
    z-index: 1;
    display: block;
    left: 0; }

#page-not-found {
  padding: 4.2rem 2rem;
  max-width: 30rem;
  margin: 0 auto; }
  #page-not-found > p:first-of-type {
    text-align: center;
    font-size: 4.2rem;
    margin-bottom: 0; }
    #page-not-found > p:first-of-type + * {
      padding-top: 0;
      margin-top: 0; }

details {
  -webkit-transition: animate all 1s;
  transition: animate all 1s; }
  details:not([open]) summary:before {
    content: "🙈 ";
    color: green;
    display: inline-block;
    text-align: center; }
  details[open] {
    border-bottom: 1px dotted #ddd;
    margin: 0 0 3rem;
    padding: 0rem 0 2rem 3rem; }
    details[open] summary {
      font-weight: 600;
      color: #333;
      margin-left: -3rem;
      font-size: 1.4rem;
      -webkit-animation: fontsize .3s ease-in;
              animation: fontsize .3s ease-in; }
      details[open] summary:before {
        content: "🙉  ";
        overflow: hidden;
        top: .8rem;
        text-align: center;
        font-size: 1.8rem; }
      details[open] summary ~ * {
        -webkit-animation: sweep .5s ease-in-out;
                animation: sweep .5s ease-in-out;
        -webkit-animation-fill-mode: forwards;
                animation-fill-mode: forwards;
        margin-bottom: .5rem;
        line-height: 110%;
        font-weight: 200; }
  details summary {
    -webkit-transition: animate all 1s;
    transition: animate all 1s;
    color: #12a5ce;
    display: block;
    cursor: pointer;
    margin-bottom: 9px; }
    details summary:before {
      display: inline-block;
      width: 3rem;
      font-size: 150%;
      position: relative;
      top: 3px; }

details, details summary {
  background-image: none;
  -webkit-appearance: none; }

details summary:-webkit-details-marker {
  display: none; }

[id^=course-material-open-data] #about-author {
  display: none; }
