@font-face {
  font-family: "Montserrat";
  src: local("Montserrat Light"), local("Montserrat-Light"), url("assets/fonts/Montserrat-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Montserrat";
  src: local("Montserrat Regular"), local("Montserrat-Regular"), url("assets/fonts/Montserrat-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Montserrat";
  src: local("Montserrat SemiBold"), local("Montserrat-SemiBold"), url("assets/fonts/Montserrat-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Montserrat";
  src: local("Montserrat Bold"), local("Montserrat-Bold"), url("assets/fonts/Montserrat-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: block;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #fff; }
body { width: 360px; height: 600px; overflow: hidden; }
.banner {
  position: relative;
  display: block;
  width: 360px;
  height: 600px;
  overflow: hidden;
  background: #d5111e;
  color: #fff;
  text-decoration: none;
  font-family: "Montserrat", Arial, sans-serif;
}
.base {
  position: absolute;
  inset: 0;
  width: 360px;
  height: 600px;
  display: block;
  z-index: 1;
}
.bodycopy {
  position: absolute;
  left: 24px;
  top: 376px;
  width: 315px;
  z-index: 4;
  color: #fff;
  font-size: 24px;
  line-height: 1.42;
  font-weight: 300;
  letter-spacing: -.55px;
  opacity: 0;
  transition: opacity 600ms ease;
}
.bodycopy.visible { opacity: 1; }
.bodycopy strong { font-weight: 600; }
.bodycopy .line { display: block; min-height: 34px; white-space: nowrap; }
.cursor {
  display: inline-block;
  width: 2px;
  height: 1.05em;
  margin-left: 2px;
  transform: translateY(3px);
  background: currentColor;
  opacity: 1;
}
.cursor.blink { animation: blink 260ms steps(1) 4; }
.cursor.hide { opacity: 0; }
@keyframes blink { 50% { opacity: 0; } }
.cta {
  position: absolute;
  left: 24px;
  top: 524px;
  z-index: 5;
  color: #000;
  font-size: 20px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -.35px;
  opacity: 0;
  transition: opacity 350ms ease;
  white-space: nowrap;
}
.cta.visible { opacity: 1; }
