@font-face {
    font-family: 'digital';
    src: url('/fonts/digital2.otf') format('opentype');
  }

  html, body {
    height: 100%;
    margin: 0;
    background-color: black;
    color: red;
    font-family: 'digital', 'Courier New', monospace;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 200ms ease, color 200ms ease;
    overflow: hidden;
  }

  .clock-circle {
    position: relative;
    width: 90vmin;
    height: 90vmin;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    transition: border-color 0.2s linear;
  }

  #circleCanvas {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
  }

  .digits-wrapper {
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1vmin;
  }

  #hours, #minutes, #seconds {
    font-size: 14vmin;
    font-weight: bold;
    text-align: center;
    min-width: 14vmin;
  }

  .colon {
    font-size: 15vmin;
    font-weight: bold;
    color: red;
    opacity: 0.5;
    line-height: 1;
    user-select: none;
    margin: 0;
    min-width: auto;
  }

  #timezoneDisplay {
    font-family: 'Roboto', sans-serif;
    font-size: 2.5vmin;
    opacity: 0.5;
    color: red;
    text-align: center;
    margin-top: -1vmin;
    margin-bottom: 2vmin;
    user-select: none;
  }

  #dateDisplay {
    font-family: 'Roboto', sans-serif;
    color: red;
    margin-top: 0vmin;
    text-align: center;
    user-select: none;
    display: flex;
    flex-direction: column;
    gap: 0.2vmin;
  }

  #weekdayDisplay,
  #dateOnlyDisplay {
    font-size: 3.5vmin;
    font-weight: normal;
  }


#logoWrapper {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 7vmin;
user-select: none;
}

#clockLogo {
max-width: 60vmin;
max-height: 10vmin;
height: auto;
width: auto;
filter: brightness(0) saturate(100%) invert(16%) sepia(100%) saturate(7000%) hue-rotate(0deg) brightness(50%) contrast(110%);
}


#clockFooter {
position: absolute;
bottom: 2vmin;
width: 100%;
text-align: center;
font-size: 1.5vmin;
font-family: 'Roboto', sans-serif;
color: red;
opacity: 0.4;
user-select: none;
letter-spacing: 0.05em;
}



/* Toggle button */
#themeToggle {
position: absolute;
top: 2vmin;
right: 2vmin;
z-index: 10;
background: none;
border: 0px solid red;
color: red;
font-size: 2vmin;
padding: 0.8vmin 1.2vmin;
border-radius: 5px;
cursor: pointer;
font-family: 'Roboto', sans-serif;
user-select: none;
opacity: 0.6;
transition: all 0.3s ease;
}

#themeToggle:hover {
opacity: 1;
}



#viewportSize {
position: absolute;
bottom: 1vmin;
right: 1vmin;
font-size: 2vmin;
color: red;
opacity: 0.4;
font-family: 'Roboto', sans-serif;
user-select: none;
z-index: 9999;
}


/* Light theme overrides */
html.light, body.light {
background-color: lightgray;
color: black;
transition: background-color 200ms ease, color 200ms ease;
}

body.light #circleCanvas,
body.light .colon,
body.light #timezoneDisplay,
body.light #dateDisplay,
body.light #clockFooter {
color: black;
opacity: 0.7;
}

body.light #themeToggle {
color: black;
border-color: black;
}

body.light canvas {
background-color: lightgray;
transition: background-color 200ms ease;
}




@media (max-width: 600px) {
#hours, #minutes, #seconds, #viewportSize {
  font-size: 10vmin;
  min-width: 10vmin;
}

.colon {
  font-size: 11vmin;
}

#timezoneDisplay,
#dateDisplay {
  font-size: 2.5vmin;
}

#themeToggle {
  font-size: 4vmin;
  top: 1vmin;
  right: 1vmin;
}
}


#drift {
font-family: 'Roboto', sans-serif;
font-size: 2vmin;
color: white;
text-align: center;
margin-top: 2vmin;
opacity: 0.4;
user-select: none;
}