* {  
      border: 0;  
      box-sizing: border-box;  
      margin: 0;  
      padding: 0;  
 }  
 :root {  
      --hue: 223;  
      --bg: hsl(var(--hue),10%,90%);  
      --fg: hsl(var(--hue),10%,10%);  
      font-size: calc(16px + (24 - 16) * (100vw - 320px) / (1280 - 320));  
 }  
 body, button {  
      color: var(--fg);  
      font: 1em/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;  
 }  
 body {  
      background-color: var(--bg);  
      height: 100vh;  
      display: grid;  
      place-items: center;  
 }  
 .progress-clock {  
      display: grid;  
      justify-content: center;  
      align-content: center;  
      position: relative;  
      text-align: center;  
      width: 16em;  
      height: 16em;  
 }  
 .progress-clock__time-date,  
 .progress-clock__time-digit,  
 .progress-clock__time-colon,  
 .progress-clock__time-ampm {  
      transition: color 0.2s linear;  
      -webkit-user-select: none;  
      -moz-user-select: none;  
      user-select: none;  
 }  
 .progress-clock__time-date,  
 .progress-clock__time-digit {  
      background: transparent;  
 }  
 .progress-clock__time-date,  
 .progress-clock__time-ampm {  
      grid-column: 1 / 6;  
 }  
 .progress-clock__time-date {  
      font-size: 0.75em;  
      line-height: 1.33;  
 }  
 .progress-clock__time-digit,  
 .progress-clock__time-colon {  
      font-size: 2em;  
      font-weight: 400;  
      grid-row: 2;  
 }  
 .progress-clock__time-colon {  
      line-height: 1.275;  
 }  
 .progress-clock__time-ampm {  
      cursor: default;  
      grid-row: 3;  
 }  
 .progress-clock__rings {  
      display: block;  
      position: absolute;  
      top: 0;  
      left: 0;  
      width: 100%;  
      height: 100%;  
      z-index: -1;  
 }  
 .progress-clock__ring {  
      opacity: 0.1;  
 }  
 .progress-clock__ring-fill {  
      transition:  
           opacity 0s 0.3s linear,  
           stroke-dashoffset 0.3s ease-in-out;  
 }  
 .progress-clock__ring-fill--360 {  
      opacity: 0;  
      stroke-dashoffset: 0;  
      transition-duration: 0.3s;  
 }  
 [data-group]:focus {  
      outline: transparent;  
 }  
 [data-units] {  
      transition: opacity 0.2s linear;  
 }  
 [data-group="d"]:focus,  
 [data-group="d"]:hover {  
      color: hsl(333,90%,55%);  
 }  
 [data-group="h"]:focus,  
 [data-group="h"]:hover {  
      color: hsl(33,90%,55%);  
 }  
 [data-group="m"]:focus,  
 [data-group="m"]:hover {  
      color: hsl(213,90%,55%);  
 }  
 [data-group="s"]:focus,  
 [data-group="s"]:hover {  
      color: hsl(273,90%,55%);  
 }  
 [data-group]:focus ~ .progress-clock__rings [data-units],  
 [data-group]:hover ~ .progress-clock__rings [data-units] {  
      opacity: 0.2;  
 }  
 [data-group="d"]:focus ~ .progress-clock__rings [data-units="d"],  
 [data-group="d"]:hover ~ .progress-clock__rings [data-units="d"],  
 [data-group="h"]:focus ~ .progress-clock__rings [data-units="h"],  
 [data-group="h"]:hover ~ .progress-clock__rings [data-units="h"],  
 [data-group="m"]:focus ~ .progress-clock__rings [data-units="m"],  
 [data-group="m"]:hover ~ .progress-clock__rings [data-units="m"],  
 [data-group="s"]:focus ~ .progress-clock__rings [data-units="s"],  
 [data-group="s"]:hover ~ .progress-clock__rings [data-units="s"] {  
      opacity: 1;  
 }  
 /* Dark theme */  
 @media (prefers-color-scheme: dark) {  
      :root {  
           --bg: hsl(var(--hue),10%,10%);  
           --fg: hsl(var(--hue),10%,90%);  
      }  
      .progress-clock__ring {  
           opacity: 0.2;  
      }  
 }  