/* Global Styles */

:root {
  --headline-distort: url(#turbulence-effect);
  --white: rgb(255, 248, 235);
}

html {
  font-size: 12px;
}

body {
  background: #3d3d3d;
  font-family: 'Terminal', sans-serif;
  margin: 0;
  padding: 0;
}

/* Typography */

/* Copyright 2010 The Raleway Project Authors (impallari@gmail.com), with Reserved Font Name "Raleway".
This Font Software is licensed under the SIL Open Font License, Version 1.1 . This license is available with an FAQ at: https://openfontlicense.org
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007  */
/* font Raleway - https://github.com/impallari/Raleway */

@font-face {
  font-display: swap;
  font-family: 'Raleway';
  font-style: normal;
  font-weight: 100 900;
  src: url(./raleway.woff2) format('woff2');
}

/* Copyright 2011, The VT323 Project Authors (peter.hull@oikoi.com) 
This Font Software is licensed under the SIL Open Font License, Version 1.1 . This license is available with an FAQ at: https://openfontlicense.org
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007  */
/* font VT323 - https://github.com/larsenwork/monoid/ */

@font-face {
  font-family: terminal;
  font-style: normal;
  font-weight: 400;
  src: local('Terminal'), url(./terminal.woff2) format('woff2')
}

a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: all 0.15s ease;
  cursor: pointer;
}

a:active {
  background-color: var(--white);
  color: black;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: all 0.15s ease;
  transition-duration: 200ms;
}

b {
  background: rgba(0, 0, 0, 0.8);
  color: var(--white);
  font-family: monospace;
  padding: 1rem;
  position: fixed;
}

p {
  margin: 0;
  padding: 0;
  width: 100%;
  line-height: 1;
}

/* Layout */

main {
  align-items: center;
  background-color: rgba(0, 0, 0, 0.744);
  color: var(--white);
  margin-top: 28rem;
  border-radius: 2px;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.65rem !important;
  line-height: 1.25rem;
}

#map,
#doggy {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 0.15rem;
  filter: grayscale(80%);
}

#map {
  background-image: url('/map.webp');
  min-width: 230px;
  height: 190px;
}

#doggy {
  background-image: url('/doggy.webp');
  min-width: 380px;
  height: 190px;
}

#map-container,
#doggy-container {
  border: 2px solid var(--white);
  display: flex;
  flex-direction: row;
  gap: 1rem;
  border-radius: 2px;
}

#doggy-container {
  margin: 1rem;
  margin-top: 0.5rem;
}

#map-container p,
#doggy-container p {
  text-align: start !important;
}

#map-text-container,
#doggy-text-container {
  display: flex;
  flex-direction: column;
  padding-top: 1rem;
}

#doggy-text-container {
  padding-left: 1rem;
}

/* Components */

.activity {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQ0lEQVQYV5WPSQ7AMAgDx/D/JyduDlGlKksTfDMDBnFQ+mfCWyiEq9HBJphCSbhQ394IKY3Lx7+Ma0c2TYe6KcP60we+YQ4LJKwtmAAAAABJRU5ErkJggg==) repeat;
  height: 100vh;
  left: 0;
  mix-blend-mode: multiply;
  opacity: 0.25;
  pointer-events: none;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 1000;
}

.centered {
  left: 50%;
  position: absolute;
  top: 15%;
  transform: translate(-50%, -40%);
}

.color-cube {
  animation: rotateCube 15s linear infinite;
  height: 280px;
  position: fixed;
  transform: rotateX(-20deg) rotateY(-40deg);
  transform-style: preserve-3d;
  width: 280px;
  z-index: 900;
}

.cube-face {
  border: 3px solid rgba(255, 255, 255, 0.25);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: background-color 500ms;
  width: 100%;
}

.cube-front {
  transform: translateZ(140px);
}

.cube-back {
  transform: rotateY(180deg) translateZ(140px);
}

.cube-bottom {
  transform: rotateX(-90deg) translateZ(140px);
}

.cube-top {
  transform: rotateX(90deg) translateZ(140px);
}

.cube-left {
  transform: rotateY(-90deg) translateZ(140px);
}

.cube-right {
  transform: rotateY(90deg) translateZ(140px);
}

.headline {
  color: var(--white);
  filter: var(--headline-distort);
  font-family: "Raleway", sans-serif;
  font-size: 12em;
  font-weight: 500;
  padding-right: 1rem;
  text-align: center;
  transition: color 0.6s cubic-bezier(0.860, 0.000, 0.070, 1.000);
  z-index: 800;
}

.inner-section-cube {
  align-items: center;
  color: var(--white);
  display: flex;
  flex-direction: column;
  font-weight: 700;
  justify-content: center;
  position: absolute;
}

.leaflet-container {
  height: 250px;
  width: 400px;
}

/* Media Queries */

@media (max-width: 600px) {
  main {
    border-radius: 0px !important;
    margin-top: 22rem;
  }

  .headline {
    font-size: 8.5em;
  }

  #map-container,
  #doggy-container {
    flex-direction: column;
    gap: 0;
  }

  #map-text-container,
  #doggy-text-container {
    padding-top: 0;
    padding: 0.65em;
    width: auto;
  }

  #map {
    box-sizing: border-box;
    height: 100px;
    width: 100%;
  }

  .calendar-container {
    flex-direction: column-reverse;
  }
}

header {
  padding: 1rem;
  padding-bottom: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  justify-content: center;
}

#footer {
  font-family: serif;
  line-height: 14px !important;
  font-size: 13px !important;
}

#footer a {
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

footer {
  box-sizing: border-box;
  border-top: 2px solid #fff;
  width: 100%;
  text-align: center;
  padding: 1rem;
  margin-top: 2rem;
}

.icon {
  fill: white;
  color: white;
  height: auto;
  width: 24px;
}

/* Animations */

@keyframes rotateCube {
  to {
    transform: rotateX(-20deg) rotateY(-400deg);
  }
}

/* Calendar */
.container {
  display: flex;
  justify-content: space-between;
  padding: 1rem;
  padding-top: 0;
  padding-bottom: 0;
}

.calendar-container {
  display: flex;
  width: 100%;
  gap: 0.5rem;
}

.calendar {
  border: 2px solid var(--white);
  width: 100%;
  border-radius: 2px;
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
}

.calendar th,
.calendar td {
  padding: 10px 6px;
  text-align: center;
  border: none;
}

.calendar th {
  background-color: var(--white);
  color: black;
}

.event {
  background-color: var(--white);
  color: black;
}

.info-container,
.upcoming-container {
  padding: 0.75rem;
  color: var(--white);
  border: 2px solid var(--white);
  border-radius: 2px;
}

.upcoming-container {
  padding-top: 0;
  padding-bottom: 0.5;
  min-width: 50%;
}

.upcoming-container h3,
.upcoming-container h2 {
  margin: 0;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.info-container p {
  font-size: 18px;
  line-height: 1.2;
}

code {
  font-size: 12px;
  background-color: white;
  color: black;
  padding: 0.25rem;
}

#events {
  list-style: none;
  padding: 0;
  margin: 0;
}

#events li {
  display: flex;
  align-items: end;
  border-bottom: 1px solid var(--white);
}

#events a {
  text-decoration: none;
  line-height: 20px;
}

h2 {
  margin-bottom: 1rem;
  margin-top: 1rem;
}

.date {
  background-color: var(--white);
  color: black;
  width: 30px;
  padding: 3px;
  text-align: center;
  align-self: flex-start;
}

.description {
  flex: 1;
  padding: 0 20px;
  min-height: 50px;
  display: flex;
  align-items: start;
  justify-content: start;
}

.description span {
  display: inline-block;
  vertical-align: middle;
  line-height: normal;
  line-height: 1.35rem;
  padding-bottom: 0.5rem;
  padding-top: 0.5rem;
}