:root {
  font-family: Arial, Helvetica, sans-serif;
  color: #fff9df;
  background: #082d48;
  font-synthesis: none;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  min-height: 100vh;
  background: radial-gradient(ellipse at top, #19516b, #071f34);
}
main {
  width: min(1280px, 100%, calc((100dvh - 150px) * 1.578947 + 56px));
  margin: auto;
  padding: 0 28px;
}
header {
  height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand {
  text-decoration: none;
  color: #fff9df;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: -1px;
  display: flex;
  align-items: center;
}
.brand span {
  color: #ffe44f;
}
.brand i {
  margin-left: 14px;
  padding: 5px 7px;
  border: 1px solid #6a8995;
  border-radius: 4px;
  font-size: 9px;
  letter-spacing: 2px;
  font-style: normal;
}
.tools {
  display: flex;
  gap: 8px;
}
button {
  font: 700 12px Arial;
  color: #fff9df;
  background: #153f54;
  border: 1px solid #537486;
  border-radius: 9px;
  padding: 11px 16px;
  cursor: pointer;
}
button:hover {
  background: #255c70;
}
button:focus-visible {
  outline: 3px solid #ffe44f;
  outline-offset: 4px;
}
button:disabled {
  opacity: 0.45;
  cursor: default;
}
#stage {
  position: relative;
  border: 1px solid #587f8c;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 25px 70px #00152566;
  background: #103d53;
}
canvas {
  display: block;
  width: 100%;
  height: auto;
  touch-action: none;
}
#stage.playing canvas {
  cursor: none;
}
#overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  background: linear-gradient(
    90deg,
    #072e45f5 0%,
    #072e45ed 35%,
    #072e4570 62%,
    transparent 100%
  );
}
#overlay[hidden] {
  display: none;
}
.card {
  padding: 35px 6%;
  width: 64%;
}
.eyebrow {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 3px;
  color: #abe2bc;
}
h1 {
  font-size: clamp(40px, 6.8vw, 84px);
  line-height: 0.98;
  margin: 22px 0;
  font-weight: 900;
  letter-spacing: -4px;
}
h1 em {
  color: #ffe44f;
  font-style: normal;
}
p {
  font-size: 15px;
  line-height: 1.65;
  color: #c4d9db;
}
#instructions {
  display: grid;
  gap: 13px;
  margin: 28px 0;
  font-size: 13px;
}
#instructions b {
  color: #ffe44f;
  margin-right: 12px;
  font-size: 11px;
}
.primary {
  background: #ffe44f;
  color: #133e40;
  border: 0;
  box-shadow: 0 5px 0 #b99c23;
  padding: 17px 36px;
  font-size: 16px;
  border-radius: 12px;
}
.primary:hover {
  background: #fff188;
  transform: translateY(-1px);
}
.small {
  font-size: 11px;
  margin-top: 21px;
  color: #92b2bd;
}
footer {
  height: 60px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #8fabb7;
  font-size: 10px;
  letter-spacing: 1px;
}
footer b {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: #cfdddf;
  margin-left: 5px;
}
.dot {
  margin: 0 12px;
}
#stage:fullscreen {
  border: 0;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #082d48;
}
#stage:fullscreen canvas {
  width: auto;
  height: auto;
  max-width: 100vw;
  max-height: 100vh;
  aspect-ratio: 1200/760;
}
#stage:fullscreen #overlay {
  justify-content: center;
}
.paused #overlay {
  background: #072e45da;
}
.paused .card {
  width: 100%;
  text-align: center;
}
@media (max-width: 650px) {
  main {
    padding: 0 10px;
  }
  header {
    height: 68px;
  }
  .brand {
    font-size: 20px;
  }
  .brand i {
    display: none;
  }
  .tools button {
    padding: 8px;
    font-size: 10px;
  }
  #stage {
    border-radius: 14px;
  }
  canvas {
    min-height: 560px;
    object-fit: contain;
  }
  .card {
    width: 100%;
    padding: 28px;
  }
  #overlay {
    background: #072e45db;
  }
  h1 {
    letter-spacing: -2px;
    font-size: 56px;
  }
  #instructions {
    font-size: 12px;
  }
  footer {
    font-size: 8px;
  }
  footer > span:last-child {
    display: none;
  }
}

@media (max-width: 650px) {
  main {
    width: 100%;
  }
  #stage.playing canvas {
    min-height: 0;
  }
}
