* {
  box-sizing: border-box;
}

:root {
  --uptime-color: #14d433; /* up / green */
  --degraded-color: #ffce48; /* degraded / yellow */
  --downtime-color: #ff5996; /* down / red */
  --pending-color: #a3acba; /* pending / gray */

  --link-color: #635bff;
  --dark-link-color: #00d4f0;
  --button-background-color: #635BFF;

  --light-background: #F6F9FC;
  --dark-background: #0A2540;

  --uptime-box-color: #0D2E4F;
  --uptime-box-border-color: #2E3A55;

  --slate-2: #4F5B76;
  --slate-3: #727F96;
  --slate-5: #C4CCD8;

  --twitter-body-color: #3F4B66;
  --twitter-blue: #17ADF7;

  --footer-text-color: #30313d;
  --footer-link-color: #6a7383;

  --font-weight-normal: 300;
  --font-weight-semibold: 500;
  --font-weight-bold: 600;

  --guideSolidColor: rgba(66,71,112,0.06);
  --guideDashedColor: rgba(66,71,112,0.09);

  --section-background-color: #FFFFFF;

  --max-width: min(1068px, calc(100vw - 46px));
  --column-width: calc(var(--max-width) / 4);

  --diagonal-spacing: 11vw;

  --hover-transition: 150ms cubic-bezier(0.215,0.61,0.355,1);
}

.theme--Light {
  --section-background-color: var(--light-background);
}

.theme--Dark {
  --section-background-color: var(--dark-background);
  --guideSolidColor: rgba(66,71,112,0.3);
  --guideDashedColor: rgba(66,71,112,0.3);
}

@font-face {
  font-family: "Sohne";
  font-weight: 1 1000;
  font-display: block;
  unicode-range: U+0000-007E, U+00A9;
  src: url("/fonts/Sohne.woff2") format("woff2-variations");
}

body,div,dl,dt,dd,ol,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:"";}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}article,aside,dialog,figure,footer,header,hgroup,menu,nav,section{display:block;}

html, body {
  margin: 0;
  padding: 0;
}

body {
  font-family: "Sohne","Helvetica Neue","Arial",sans-serif;
  font-size: 18px;
  font-weight: var(--font-weight-normal);
  line-height: 28px;
  letter-spacing: 0.2px;
  color: #FFFFFF;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--link-color);
  text-decoration: none;
}

.centered-content {
  max-width: var(--max-width);
  margin: auto;
  padding: 0 16px;
}
@media (min-width: 600px) {
  .centered-content {
    padding: 0;
  }
}

/* Generic section styles */
header,
section,
footer {
  position: relative;
}

:where(header, section, footer) > * {
  position: relative;
  z-index: 1;
}

@media (min-width: 600px) {
  :where(header, section, footer) > .centered-content.centered-content {
    padding: 0 15px;
  }
}

.Section__background {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
  background-color: var(--section-background-color);
  height: 100%;
  width: 100%;
}

.Section--hasAngle {
  --base-section-top-padding: 100px;
  padding: min(300px, calc(var(--diagonal-spacing) + var(--base-section-top-padding))) 0 133px 0;
  overflow: hidden;
}

.Section--hasAngle .Section__background {
  transform: skewY(-6deg);
  transform-origin: 100% 100%;
}


/* Header */
.StatusSiteHeader {
  padding: 22px 0;
  line-height: 0;
}

.StatusSiteHeader .Section__background {
  background-image: linear-gradient(90deg,var(--guideDashedColor),var(--guideDashedColor) 50%,transparent 0,transparent);
  background-size: 8px 1px;
  background-position: bottom;
  background-repeat-y: no-repeat;
}


/* Uptime (bars) section */
.StatusSiteUptimeSection {
  --padding-bottom-base: 50px;
  padding-top: 64px;
  padding-bottom: calc(10vw + var(--padding-bottom-base));
  overflow: hidden;
  margin-bottom: calc(-1 * var(--diagonal-spacing));
}

.StatusSite__statusContainer {
  background-color: var(--uptime-box-color);
  border: 1px solid var(--uptime-box-border-color);
  border-radius: 8px;
  font-size: 15px;
  line-height: 24px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 40px;
  padding: 0 !important;
}

.StatusSiteUptimeStatus {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  gap: 15px;

  color: var(--slate-5);

  font-size: 15px;
  line-height: 24px;
  border-bottom: 1px solid var(--uptime-box-border-color);
  padding: 34px 15px 11px;
}

@media (min-width: 600px) {
  .StatusSiteUptimeStatus {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media (min-width: 600px) {
  .StatusSiteUptimeStatus {
    flex-direction: row;
  }
}

.StatusSiteUptimeStatus__legend {
  display: flex;
  flex-direction: column;

  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

@media (min-width: 900px) {
  .StatusSiteUptimeStatus__legend {
    flex-direction: row;
  }
}

.StatusSiteUptimeStatus__legendItem {
  display: flex;
  align-items: baseline;
  white-space: nowrap;
}
.StatusSiteUptimeStatus__legendItem:not(:last-child) {
  margin-right: 40px;
}

.StatusSiteUptimeStatus__title {
  display: block;
  color: #FFFFFF;
  font-size: 18px;
  font-weight: var(--font-weight-bold);
  line-height: 21px;
}

.StatusSiteUptimeStatus__legendColor {
  display: block;
  width: 12px;
  height: 12px;

  border-radius: 50%;
}

.StatusSiteUptimeStatus__legendItem label {
  display: block;
  font-size: 15px;
  margin-left: 8px;
}

.StatusSiteUptimeStatus__legendColor--up {
  fill: var(--uptime-color);
  background-color: var(--uptime-color);
}
.StatusSiteUptimeStatus__legendColor--mid {
  fill: var(--degraded-color);
  background-color: var(--degraded-color);
}
.StatusSiteUptimeStatus__legendColor--down {
  fill: var(--downtime-color);
  background-color: var(--downtime-color);
}

.StatusSite__graphs {
  padding: 25px 15px;
}

@media (min-width: 600px) {
  .StatusSite__graphs {
    padding: 57px 40px 40px;
  }
}

.StatusSiteUptimeStatusChart {
  display: flex;
  flex-direction: column;
  margin-bottom: 33px;
}

.StatusSiteUptimeStatusChart:last-child {
  margin-bottom: 0;
}

.StatusSiteUptimeStatusChart__title {
  display: flex;
  justify-content: space-between;
}

.StatusSiteUptimeStatusChart__percentage {
  color: var(--slate-5);
  float: right;
  text-align: right;
  padding-left: 10px;
  font-size: 15px;
}

.StatusSiteUptimeStatusChart__name {
  color: #FFFFFF;
  font-size: 18px;
  line-height: 21px;
  padding-right: 10px;
}

.StatusSiteUptimeStatusChart__warningIcon {
  width: 14px;
  height: 14px;
  margin-left: 8px;
  background-image: url(/images/warning_triangle.svg);
  display: none;
}
.StatusSiteUptimeStatusChart--warning .StatusSiteUptimeStatusChart__warningIcon {
  display: inline-block;
}

.StatusSiteUptimeStatus__barChart {
  padding-top: 7px;
  height: 100%;

  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  gap: 4px;
}

.StatusSiteUptimeStatus__bar {
  height: 28px;
  width: 7px;

  border-left: 1px;
  border-right: 1px;
  border-radius: 1px;

  transform: scaleY(0.85);
  transition: transform var(--hover-transition);
  will-change: transform;

  background-color: var(--uptime-color);
}

.StatusSiteUptimeStatus__barContainer {
  position: relative;
}

.StatusSiteUptimeStatus__barContainer:hover {
  z-index: 1;
}

.StatusSiteUptimeStatus__bar::before {
  content: "";
  position: absolute;
  left: 50%;
  transform-origin: bottom left;
  transform: translateY(-73%)rotate(-45deg);
  width: 50px;
  height: 50px;
  display: none;
}

.StatusSiteUptimeStatus__barContainer:hover .StatusSiteUptimeStatus__bar::before {
  display: block;
}

.StatusSiteUptimeStatus__barContainer:hover .StatusSiteUptimeStatus__bar {
  transform: scaleY(1.0);
}


.StatusSiteUptimeStatus__bar--mid {
  background-color: var(--degraded-color);
}
.StatusSiteUptimeStatus__bar--down {
  background-color: var(--downtime-color);
}
.StatusSiteUptimeStatus__bar--pending {
  background-color: var(--pending-color);
}

.StatusSiteUptimeStatus__barTooltip {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-4px);
  font-size: 13px;
  line-height: 20px;
  text-align: center;
  min-width: 136px;
  padding: 8px;

  transition: visibility 0ms ease-in 150ms, opacity var(--hover-transition), transform var(--hover-transition);
  visibility: hidden;
  opacity: 0;

  background-color: var(--dark-background);
  border: 1px solid var(--slate-2);
  border-radius: 8px;

  pointer-events: none;
}

.StatusSiteUptimeStatus__barContainer:hover .StatusSiteUptimeStatus__barTooltip {
  transition: opacity var(--hover-transition), transform var(--hover-transition);
  visibility: visible;
  opacity: 1;
  transform: translateX(-50%) translateY(-14px);

  pointer-events: unset;
}

.StatusSiteUptimeStatus__barTooltip--up {
  color: var(--uptime-color);
}
.StatusSiteUptimeStatus__barTooltip--degraded {
  color: var(--degraded-color);
}
.StatusSiteUptimeStatus__barTooltip--down {
  color: var(--downtime-color);
}
.StatusSiteUptimeStatus__barTooltip--delayed {
  color: var(--degraded-color);

}
.StatusSiteUptimeStatus__barTooltip::before,
.StatusSiteUptimeStatus__barTooltip::after {
  content: "";
  width: 15px;
  height: 15px;
  position: absolute;
  border-bottom-right-radius: 4px;
  transform: translateX(-50%) rotate(45deg);
  left: 50%;

  background-color: var(--dark-background);
  bottom: -7px;
}
.StatusSiteUptimeStatus__barTooltip::before {
  background-color: var(--slate-2);
  bottom: -8px;
}


/* Twitter section */
.StatusSiteTwitter__content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

@media (min-width: 600px) {
  .StatusSiteTwitter__content {
    flex-direction: row;
    justify-content: space-between;
    padding-right: 0 !important;
  }
}

@media (min-width: 900px) {
  .StatusSiteTwitter__content {
    gap: 60px;
  }
}

.StatusSiteTwitterIntro__title {
  font-size: 38px;
  font-weight: var(--font-weight-semibold);
  line-height: 45px;
  letter-spacing: -0.2px;

  color: var(--dark-background);

  flex: none;
  order: 0;
  align-self: stretch;
  flex-grow: 0;
}

.StatusSiteTwitterIntro__description {
  color: var(--twitter-body-color);
  max-width: 400px;
  font-size: 20px;
  letter-spacing: 0px;
  line-height: 30px;
  margin: 16px 0 32px;
}

.StatusSiteTwitterIntro__button {
  align-items: center;
  gap: 8px;
  padding: 4px 12px;

  background-color: var(--button-background-color);
  border-radius: 18px;
  border-style: hidden;
  cursor: pointer;

  color: #FFFFFF;
  font-family: inherit;
  font-size: 15px;
  font-weight: var(--font-weight-semibold);
  line-height: 24px;
  padding: 5px 20px;

  transition: background-color var(--hover-transition);
}

.StatusSiteTwitterIntro__button:hover {
  background-color: var(--uptime-box-color);
}

.StatusSiteTwitterIntro__link {
  font-weight: var(--font-weight-semibold);
}

.HoverArrow {
  --arrowSpacing: 5px;
  --arrowHoverOffset: translateX(3px);
  --arrowTipTransform: none;
  --arrowLineOpacity: 0;
  top: 1px;
  margin-left: var(--arrowSpacing);
  stroke-width: 2px;
  fill: none;
  stroke: currentColor;
}

.HoverArrow__linePath {
  opacity: var(--arrowLineOpacity);
  transition: opacity var(--hover-transition, var(--hover-transition));
}

.HoverArrow__tipPath {
  transform: var(--arrowTipTransform);
  transition: transform var(--hover-transition, var(--hover-transition));
}

.StatusSiteTwitterIntro__button:hover,
a:hover .HoverArrow__linePath {
  --arrowLineOpacity: 1;
}

.StatusSiteTwitterIntro__button:hover,
a:hover .HoverArrow__tipPath {
  --arrowTipTransform: var(--arrowHoverOffset);
}


/* Twitter feed */
.StatusSiteTwitterFeed {
  --feed-width: calc(var(--column-width) * 2 + 1px);
  min-width: var(--feed-width);
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

@media (min-width: 600px) {
  .StatusSiteTwitterFeed {
    width: var(--feed-width);
  }
}

.StatusSiteTwitterFeed__text {
  font-size: 15px;
  line-height: 24px;
  color: var(--twitter-body-color);
}

.StatusSiteTwitterFeed__item {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 16px;

  background-color: #FFFFFF;
  box-shadow: 0px 30px 60px -10px rgb(50 50 93 / 30%), 0px 30px 60px -50px rgb(0 0 0 / 50%);
  border-radius: 8px;
}

.StatusSiteTwitterFeed__item--empty {
  box-shadow: 0px 30px 60px -10px rgba(50, 50, 93, 0.25), 0px 30px 60px -50px rgba(0, 0, 0, 0.1);
}

.StatusSiteTwitterFeed__time {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding-right: 40px;

  font-size: 13px;
  line-height: 24px;
  color: var(--slate-3);
}

.StatusSiteTwitterFeed__content {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
}


/* Footer */
.StatusSiteFooter {
  padding: 34px 0 34px;
  font-size: 15px;
  line-height: 24px;
  color: var(--slate-2);
}

.StatusSiteFooter ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.StatusSiteFooter li {
  margin-bottom: 7px;
}

.StatusSiteFooter__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
}

@media (min-width: 600px) {
  .StatusSiteFooter__content {
    flex-direction: row;
  }
}

.StatusSiteFooter a {
  color: var(--footer-text-color);
  text-decoration: none;
  transition: color var(--hover-transition);
}
.StatusSiteFooter a:hover {
  color: var(--footer-link-color);
}


/* Guides */
.Guides {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.Guides__container {
  display: flex;
  justify-content: space-between;
  height: 100%;
}
@media (max-width: 599px) {
  .Guides__container {
    padding: 0;
  }
}

.Guides__guide {
  width: 1px;
  height: 100%;
  background: linear-gradient(180deg,var(--guideDashedColor),var(--guideDashedColor) 50%,transparent 0,transparent);
  background-size: 1px 8px;
}
.Guides__guide:first-of-type,
.Guides__guide:last-of-type {
  background: var(--guideSolidColor);
}

@media (max-width: 599px) {
  .Guides__guide:nth-child(2),
  .Guides__guide:nth-child(3),
  .Guides__guide:nth-child(4) {
    display: none;
  }
}


/* Reachability */
.StatusSiteReachabilitySection {
  padding-top: 64px;
  padding-bottom: 100px;
  min-height: calc(100vh - 198px);
}
.StatusSiteReachabilitySection .StatusSite__statusContainer {
  margin-bottom: 0;
}

.StatusSiteReachabilitySection .StatusSiteUptimeStatus {
  justify-content: unset;
  align-items: center;
}

.StatusSiteReachabilitySection .StatusSiteUptimeStatusChart__title {
  flex-direction: column;
  gap: 4px;
}

.StatusSiteReachabilitySection .StatusSite__graphs {
  padding-top: 40px;
}

.StatusSiteReachabilitySection ul {
  padding-left: 18px;
  margin-top: 0;
  margin-bottom: 24px;
}

.StatusSiteReachability__statContainer {
  display: flex;
  justify-content: space-between;
  max-width: 450px;
}
@media (max-width: 450px) {
  .StatusSiteReachability__statContainer {
    flex-direction: column;
  }
}

.StatusSiteReachability__statMarker--success {
  color: var(--uptime-color);
}
.StatusSiteReachability__statMarker--failure {
  color: var(--downtime-color);
}

.StatusSiteReachability__support {
  max-width: 468px;
}

.StatusSiteReachabilitySection textarea {
  margin-top: 10px;
  background: var(--dark-background);
  color: white;
  padding: 4px 8px 4px 16px;
  border: 1px solid var(--uptime-box-border-color);
  resize: none;
  width: 100%;
  display: block;
}


/* 404 page styling (extends reachability) */
.StatusSiteReachabilitySection--404 {
  padding-top: 32px;
}
.StatusSiteReachabilitySection--404 a {
  color: var(--dark-link-color);
  transition: color var(--hover-transition);
}
.StatusSiteReachabilitySection--404 a:hover {
  color: #FFFFFF;
}
