:root {
  --sentColor: #0b93f6;
  --receiveColor: #e5e5ea;
  --bg: #030000;
}

@font-face {
  font-family: handwritin;
  src: url("/assets/fonts/PixelHandwriting-Regular.otf");
}

body {
  margin: 0;
  color: oldlace;
  background-color: #030000;
  display: flex;
  /* justify-content: center; */
  font-size: 24px;
  font-weight: 500;
}

.handwriting {
  font-family: handwritin;
  font-size: 54px;
  text-align: center;
}

a {
  color: orangered;
  font-family: "Open sans", sans-serif;
}

.wrapper {
  max-width: 70vw;
  display: flex;
  align-items: center;
  flex-direction: column;
  margin: 80px auto;
}

.wrapper-horizontal {
  display: flex;
  flex-direction: row;
  padding: 80px;
}

.square {
  width: 700px;
  height: 700px;
  padding: 30px;
  margin-right: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

h2,
h1 {
  text-align: center;
}

.orange-border {
  border: 10px orangered inset;
}

.light-mode {
  color: black;
}

.square.light-mode:nth-of-type(3n + 1) {
  background-color: yellow;
  transform: rotate(-1deg);
}

.square:not(.square.light-mode) {
  justify-content: center;
  align-items: center;
}

.square.light-mode:nth-of-type(3n + 3) {
  background-color: oldlace;
  transform: rotate(2deg);
}

.image-lg {
  max-width: 50%;
}

.img-link {
}

/* text messages */
/* credit https://samuelkraft.com/blog/ios-chat-bubbles-css */

.list {
  --sentColor: #0b93f6;
  --receiveColor: #e5e5ea;
  --bg: #030000;

  display: flex;
  flex-direction: column;
  max-width: 450px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  font-family: "Open Sans", sans-serif;
}

[data-theme="dark"].list {
  --bg: #161515;
}

.bubble {
  position: relative; /* Setup a relative container for our psuedo elements */
  max-width: 255px;
  margin-bottom: 15px;
  padding: 10px 20px;
  line-height: 24px;
  word-wrap: break-word; /* Make sure the text wraps to multiple lines if long */
  border-radius: 25px;
}
.bubble:before {
  width: 20px;
}

.bubble:after {
  width: 26px;
  background-color: var(--bg); /* All tails have the same bg cutout */
}

.bubble:before,
.bubble:after {
  position: absolute;
  bottom: 0;
  height: 25px; /* height of our bubble "tail" - should match the border-radius above */
  content: "";
}

.sent {
  align-self: flex-end;
  color: white;
  background: var(--sentColor);
}
.sent:before {
  right: -7px;
  background-color: var(--sentColor);
  border-bottom-left-radius: 16px 14px;
}
.sent:after {
  right: -26px;
  border-bottom-left-radius: 10px;
}

.received {
  align-self: flex-start;
  color: black;
  background: var(--receiveColor);
}
.received:before {
  left: -7px;
  background-color: var(--receiveColor);
  border-bottom-right-radius: 16px 14px;
}

.received:after {
  left: -26px;
  border-bottom-right-radius: 10px;
}

.no-tail {
  margin-bottom: 2px;
}

.no-tail:before,
.no-tail:after {
  opacity: 0;
}

/* glow animation text */
/* credit: https://codepen.io/asp/pen/MWbxOz */
/********************/

.button {
  color: #6f6;
  font-family: "Open sans", sans-serif;
  font-size: 2.2em;
  background: none;
}
.button:hover {
  color: #afa;
  cursor: pointer;
}

@-webkit-keyframes pulseText {
  0% {
    text-shadow: 0px 0px 8px rgba(0, 255, 0, 0.7);
  }
  100% {
    text-shadow: 0px 0px 22px rgba(0, 255, 0, 1);
  }
}
@-moz-keyframes pulseText {
  0% {
    text-shadow: 0px 0px 8px rgba(0, 255, 0, 0.7);
  }
  100% {
    text-shadow: 0px 0px 22px rgba(0, 255, 0, 1);
  }
}
@-o-keyframes pulseText {
  0% {
    text-shadow: 0px 0px 8px rgba(0, 255, 0, 0.7);
  }
  100% {
    text-shadow: 0px 0px 22px rgba(0, 255, 0, 1);
  }
}
@keyframes pulseText {
  0% {
    text-shadow: 0px 0px 8px rgba(0, 255, 0, 0.7);
  }
  100% {
    text-shadow: 0px 0px 22px rgba(0, 255, 0, 1);
  }
}

.pulseText {
  -webkit-animation-name: pulseText;
  -moz-animation-name: pulseText;
  -o-animation-name: pulseText;
  animation-name: pulseText;
  -webkit-animation-duration: 0.8s;
  -moz-animation-duration: 0.8s;
  -o-animation-duration: 0.8s;
  animation-duration: 0.8s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  -o-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
  -moz-animation-direction: alternate;
  -o-animation-direction: alternate;
  animation-direction: alternate;
  -webkit-animation-timing-function: ease-in-out;
  -moz-animation-timing-function: ease-in-out;
  -o-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  border: 0px;
}

/* shaking animation */
/* credit https://www.w3schools.com/howto/howto_css_shake_image.asp */
.jiggle:hover {
  cursor: pointer;
  /* Start the shake animation and make the animation last for 0.5 seconds */
  animation: shake 0.5s;

  /* When the animation is finished, start again */
  animation-iteration-count: infinite;
}

@keyframes shake {
  0% {
    transform: translate(1px, 1px) rotate(0deg);
  }
  10% {
    transform: translate(-1px, -2px) rotate(-1deg);
  }
  20% {
    transform: translate(-3px, 0px) rotate(1deg);
  }
  30% {
    transform: translate(3px, 2px) rotate(0deg);
  }
  40% {
    transform: translate(1px, -1px) rotate(1deg);
  }
  50% {
    transform: translate(-1px, 2px) rotate(-1deg);
  }
  60% {
    transform: translate(-3px, 1px) rotate(0deg);
  }
  70% {
    transform: translate(3px, 1px) rotate(-1deg);
  }
  80% {
    transform: translate(-1px, -1px) rotate(1deg);
  }
  90% {
    transform: translate(1px, 2px) rotate(0deg);
  }
  100% {
    transform: translate(1px, -2px) rotate(-1deg);
  }
}

/* zpires atttempts things */
.clipped-box div {
  position: absolute;
  top: auto;
  left: 0;
  background: #4f9cc7;
  -webkit-transition: -webkit-transform 1.4s ease-in, background 0.3s ease-in;
  transition: transform 1.4s ease-in, background 0.3s ease-in;
}

.clipped-container {
  width: 300px;
  top: 150px;
  position: relative;
  margin: 0px auto;
}

.clipped-box {
  cursor: pointer;
  -webkit-transition: top 1.2s linear;
  transition: top 1.2s linear;
}
.clipped-box div {
  z-index: 9999999;
  color: cream;
  font-size: 1em;
  padding: 50px 20px;
  text-align: center;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  background: navy;
}

.clipped-box div h1 {
  text-shadow: 2px 2px rgba(0, 0, 0, 0.2);
}

.clipped-box,
.clipped-box div {
  width: 300px;
  height: 300px;
  position: relative;
}

.clipped-box div {
  position: absolute;
  top: auto;
  left: 0;
  background: red;
  -webkit-transition: -webkit-transform 1.4s ease-in, background 0.3s ease-in;
  transition: transform 1.4s ease-in, background 0.3s ease-in;
}
