:root {
  --bg-color: #1e1e1e;
  --bg-accent: #303030;

  --fg-color: #cfcfcf;

  --clock-bg-color: #2e2e2e;
  --clock-handle-color: #fde400;
  --clock-border-color: #5e5e5e;
  --clock-size: 20px;
  --clock-handle-height: 3px;
  --clock-transition-speed: 300ms;
}

body {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  overflow: hidden;
  height: 100dvh;
  width: 100dvw;
}

.root {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100dvh;
  background-color: var(--bg-color);
  color: var(--fg-color);
  font-family: 'Courier New', Courier, monospace;
}

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: auto;
  height: auto;
  padding: 20px;
  border-radius: 20px;
  background-color: var(--bg-accent);
}

.clock-main {
  display: grid;
  grid-template-columns: repeat(2, 1fr) 50px repeat(2, 1fr) 50px repeat(2, 1fr);
  grid-template-rows: repeat(1, 1fr);
  gap: 5px;
  width: 100%;
  height: 100%;
}

.clock-cont {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(6, 1fr);
  gap: 3px;
}

.sep {
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-direction: column;
}

.dot {
  width: 20px;
  height: 20px;
  background-color: var(--clock-handle-color);
  border-radius: 50%;
  animation: blink 1s infinite;
  transition: all 0.3s ease;
}

/* ** --- Clock styles --- ** */
.clock {
  --clock-hand-1-angle: 45deg;
  --clock-hand-2-angle: 0deg;

  width: var(--clock-size);
  height: var(--clock-size);
  background-color: var(--clock-bg-color);
  border: 3px solid var(--clock-border-color);
  position: relative;
  transition: all 0.3s ease;
}

.clock::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50%;
  height: var(--clock-handle-height);
  transform: translate(0%, -50%) rotate(var(--clock-hand-1-angle));
  transform-origin: left;
  background-color: var(--clock-handle-color);
  transition: all var(--clock-transition-speed) ease;
}

.clock::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50%;
  height: var(--clock-handle-height);
  background-color: var(--clock-handle-color);
  transform: translate(0%, -50%) rotate(var(--clock-hand-2-angle));
  transform-origin: left;
  transition: all 0.3s ease;
}

/* ** --- Clock animations --- ** */
@keyframes blink {
  0%, 100% {
    opacity: 1;
  }
  35% {
    opacity: 0;
  }
}