/* variables */
:root {
  --smooth-font: font-size ease 1s;
  --smooth-margin: margin ease 1s;
  --smooth-fill: fill ease 0.4s;
  --smooth-filter: filter ease 0.4s;
}

/* fonts */
@font-face {
    font-family: Montserrat;
    font-weight: 400;
    src: url("fonts/Montserrat-Regular.ttf") format("truetype");
}
@font-face {
    font-family: Montserrat;
    font-weight: 700;
    src: url("fonts/Montserrat-Bold.ttf") format("truetype");;
}

/* set margin & padding to default */
body, nav ul, h1, h2, p {
  margin: 0;
  padding: 0;
}

/* hide */
div h2 {
  position: absolute;
  top: -1000em;
  left: -1000em;
}


/* styling */
body {
  background-color: #fff;
}

nav {
  border-width: 0.125em;
  border-style: solid;
  border-image: 
    linear-gradient( 
      45deg,
      #e94e55,
      #00aaa0,
      #f16534,
      #80a932
    ) 0 1 100%;
  /* border gradient example from: https://codepen.io/chriscoyier/pen/XodmyY*/
}

nav ul {
  display: flex;
  max-width: 80em;
  margin: -0.05em 0 -0.25em -0.5em;
}

nav ul li {
  list-style-type: none;
}

nav ul li:nth-of-type(3) img {
  margin-top: -1%;
}

nav ul li:last-of-type img {
  margin-left: -0.15em;
}

li img {
  min-height: 2.5em;
  max-height: 5em;
  width: 100%;
}

h1 {
  font-family: Montserrat, "Helvetica Neue", "Segoe UI", "Roboto", sans-serif;
  font-weight: 700;
  font-size: 1.25em;
  color: #1d2951;
  line-height: 1.6em;
  margin: 1em auto;
  padding: 0 1em;
  text-align: center;
  min-width: 10.75em;
  max-width: 43em;
  transition: var(--smooth-font), var(--smooth-margin);
}

div {
  display: flex;
  flex-direction: column;
  min-width: 15em;
  max-width: 77em;
  margin: 0 0.5em 1.5em 0.5em;
}

div p:first-of-type {
  font-size: 0.75em;
  font-style: italic;
  text-align: center;
  margin: 0 auto;
  padding: 0 1em 0.75em 1em;
}

div.noscript {
  display: flex;
}

div p.noscript {
  align-items: stretch;
  font-size: 0.9em;
  font-weight: 700;
  font-style: normal;
  color: #89a4d6;
}

svg {
  /* make full screen width (code from: https://css-tricks.com/full-width-containers-limited-width-parents/) */
  position: relative;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  /* -- */
  background: rgba(023, 121, 243, 0.8);
}

path {
  fill: lightgreen;
  stroke: rgba(3, 2, 2, 0.05);
}

circle {
  fill: #483d8b;
  -webkit-filter: drop-shadow(0.25em 0.5em 0.9em rgba(0,0,0,0.4));
     filter: drop-shadow(0.25em 0.5em 0.9em rgba(0,0,0,0.5));
  transition: var(--smooth-fill), var(--smooth-filter);
}

circle:nth-of-type(n+3) {
    -webkit-filter: drop-shadow(0.25em 0.5em 0.9em rgba(0,0,0,0.7));
     filter: drop-shadow(0.25em 0.5em 0.9em rgba(0,0,0,0.7));
}

circle:last-of-type {
  -webkit-filter: drop-shadow(0.05em 0.1em 0.25em rgba(27,22,64,0.65));
     filter: drop-shadow(0.05em 0.1em 0.25em rgba(27,22,64,0.65));
}

circle:hover {
  cursor: pointer;
  fill: #1B1640;
  -webkit-filter: drop-shadow(0.25em 0.5em 1.1em rgba(27,22,64,0.75));
     filter: drop-shadow(0.25em 0.5em 1.1em rgba(27,22,64,0.75));
  transition: var(--smooth-fill), var(--smooth-filter);
}

circle:hover:nth-of-type(n+2) {
  -webkit-filter: drop-shadow(0.25em 0.5em 0.7em rgba(27,22,64,0.75));
     filter: drop-shadow(0.25em 0.5em 0.7em rgba(27,22,64,0.75));
}

circle:hover:last-of-type {
  -webkit-filter: drop-shadow(0.05em 0.1em 0.25em rgba(27,22,64,0.65));
     filter: drop-shadow(0.05em 0.1em 0.25em rgba(27,22,64,0.65));
}

#continents text {
  font-family: Montserrat;
  fill: #ECFF1C;
  -webkit-filter: drop-shadow(0em 0.1em 0.1em rgb(8, 4, 37));
     filter: drop-shadow(0em 0.1em 0.1em rgb(8, 4, 37));
}

#continents text:first-of-type {
  font-size: 1.25em;
  font-weight: 700;
}

#continents text:last-of-type {
  font-size: 1em;
  font-weight: 400;
}

div h3 {
  font-family: Montserrat, "Helvetica Neue", "Segoe UI", "Roboto", sans-serif;
  font-weight: 400;
  font-size: 1em;
  margin: 0.75em 0;
}

footer {
  max-width: 77em;
  margin: 0 0.5em 1.5em 0.5em;
}

footer h2 {
  margin: 0.5em 0;
}

footer p {
  font-size: 0.9em;
}

h2 {
  font-family: Montserrat, "Helvetica Neue", "Segoe UI", "Roboto", sans-serif;
  font-weight: 400;
  font-size: 1em;
  transition: var(--smooth-font), var(--smooth-margin);
}

p {
  font-family: Montserrat, "Helvetica Neue", "Segoe UI", "Roboto", sans-serif;
  font-weight: 400;
  color: #666666;
  margin: 0;
  transition: var(--smooth-font), var(--smooth-margin);
}

p a {
  color: #ea4e55;
  text-decoration: none;
  font-weight: 700;
}

p a:hover {
  animation: boop 2s; 
}

p > abbr {
  color: #696aff;
  text-decoration: none;
}

p > abbr:hover {
  cursor: pointer;
}

svg ~ p {
	margin: 1.5em 0;
}

svg + p {
	margin: 2em 0 0 0;
}

/* tablet */
@media screen and (min-width: 35em) and (max-width: 65em) {

  h1 {
    font-size: 1.5em;
    margin: 2em auto;
    padding: 0 2em;
    transition: var(--smooth-font);
  }
  
  footer {
    margin: 0 1.1em 1.5em 1.1em;
  }
  
  footer h2 {
    font-size: 1.15em;
    margin: 0.5em 0;
    transition: var(--smooth-font);
  }
  
  footer p {
    font-size: 1em;
    transition: var(--smooth-font);
  }
  
  div {
    margin: 0 1.1em 1.5em 1.1em;
  }
  
  div p:first-of-type {
    font-size: 0.9em;
    padding: 0 1em 0.9em 1em;
  }
  
  div h3 {
    font-size: 1.25em;
  }
  
  svg {
    left: 49%;
  }
  
}

/* laptop */
@media screen and (min-width: 65em) {
  
  nav ul {
    margin: -0.05em auto -0.25em auto;
  }

  h1 {
    font-size: 1.75em;
    margin: 1.5em auto;
    padding: auto;
    transition: var(--smooth-font), var(--smooth-margin);
  }
  
  footer {
    margin: 0 auto 2.5em auto;
  }
    
  footer h2 {
    font-size: 1.3em;
    transition: var(--smooth-font);
  }
  
  footer p {
    font-size: 1em;
    margin: 0.5em 0;
    transition: var(--smooth-font);
  }
  
  div {
    margin: 0 auto 1.5em auto;
  }
  
  div p:first-of-type {
    font-size: 1em;
    padding: 0 1em 1em 1em;
  }
  
  div h3 {
    font-size: 1.5em;
  }
  
  div svg {
    position: initial;
    width: initial;
    left: initial;
    margin-left: initial;
  }
  
}

/* animations */
@keyframes boop {
  0% {
    color: #ea4e55;
  }
  
  33% {
    color: #00aaa0;
  }
  
  66% {
    color: #80a932;
  }
}