.clock
  .face
  .hour.hand
  .minute.hand
  .cover
  .second-bulb
  .second.hand
  .number 12
  .number 3
a.contrib(href="https://dribbble.com/shots/1059440-Clock" target="_blank") Based on design by Paco
a(href="http://nathan.tokyo" target="_blank").sig NATHAN.TOKYO
View Compiled
$a: #F0EEEd;
$b: #C9C3BC;
$c: #928779;
$d: #685D52;
$e: #917465;
$f: #C15C48;
$g: #E4E2E2;
$h: #776D63;

$sans: 'Open Sans', sans-serif;

html{
  font-size: 1vw;
  @media screen and (min-width: 700px){
    font-size: 7px;
  }
  @media screen and (max-width: 400px){
    font-size: 4px;
  }
}

body{
  width: 100vw;
  height: 100vh;
  background: linear-gradient(180deg, $a, $g);
  font-family: $sans;
  filter: hue-rotate(5deg) saturate(130%) blur(0.3px);
}

.clock{
  position: absolute;
  top: 40%;
  left: 50%;
  width: 40rem;
  height: 40rem;
  border-radius: 40rem;
  transform: translate3d(-50%,-50%,0);
  background: $a;
              //body main
  box-shadow: 1.5rem 3rem 2rem rgba($c, 0.15),
              //body close
              0.5rem 1rem 1.5rem rgba($d, 0.8),
              //body rim
              inset 0 0 0.4rem rgba($d, 0.2),
              //body rim bottom
              inset -0.2rem -0.1rem 0.4rem rgba($c, 0.4),
              //body long
              2rem 6rem 7rem rgba($c, 0.3);
}

.face{
  position: absolute;
  top: 50%;
  left: 50%;
  width: 35rem;
  height: 35rem;
  border-radius: 50rem;
  transform: translateX(-50%) translateY(-50%);
  background: $a;
              // inner rim
  box-shadow: 0 0 0.4rem rgba($d, 0.5),
              //inner rim bottom
              inset 0.2rem 0.1rem 0.4rem rgba($c, 0.4),
              //inner long
              inset 0.5rem 1rem 2rem rgba($c, 0.2),
              //inner main
              inset 0.25rem 0.5rem 1rem rgba($d, 0.4);  
}

.hand{
  position: absolute;
  left: calc(50% - 1rem);
  width: 2rem;
  border-radius: 50rem;
  background: $d;
  filter: blur(0.4px);
}

@keyframes big-tick{
  0%{
    transform: rotate(0deg);
    box-shadow: inset -0.2rem -0.2rem 0.2rem rgba(darken($d,10%), 0.5),
            //light from top
            inset 0.2rem 0.2rem 0.2rem rgba(lighten($d,20%), 1),
            //out long
            0.3rem 0.5rem 0.5rem rgba($d, 0.4);
  }
  25%{
    transform: rotate(90deg);
    box-shadow: inset -0.2rem 0.2rem 0.2rem rgba(darken($d,10%), 0.5),
            //light from top
            inset 0.2rem -0.2rem 0.2rem rgba(lighten($d,20%), 1),
            //out long
            0.3rem -0.5rem 0.5rem rgba($d, 0.4);
  }
  50%{
    transform: rotate(180deg);
    box-shadow: inset 0.2rem 0.2rem 0.2rem rgba(darken($d,10%), 0.5),
            //light from top
            inset -0.2rem -0.2rem 0.2rem rgba(lighten($d,20%), 1),
            //out long
            -0.3rem -0.5rem 0.5rem rgba($d, 0.4);
  }
  75%{
    transform: rotate(270deg);
    box-shadow: inset 0.2rem -0.2rem 0.2rem rgba(darken($d,10%), 0.5),
            //light from top
            inset -0.2rem 0.2rem 0.2rem rgba(lighten($d,20%), 1),
            //out long
            -0.3rem 0.5rem 0.5rem rgba($d, 0.4);
  }
  100%{
    transform: rotate(360deg);
    box-shadow: inset -0.2rem -0.2rem 0.2rem rgba(darken($d,10%), 0.5),
            //light from top
            inset 0.2rem 0.2rem 0.2rem rgba(lighten($d,20%), 1),
            //out long
            0.3rem 0.5rem 0.5rem rgba($d, 0.4);
  }
}

.hour{
  height: 11rem;
  transform-origin: 50% 10rem;
  top: calc(50% - 10rem);  
  animation: big-tick 43200s infinite linear;
  animation-delay: -36873s;
}

.minute{
  height: 14rem;
  transform-origin: 50% 13rem;
  top: calc(50% - 13rem);
  animation: big-tick 3600s infinite linear;
  animation-delay: -873s;
}

.cover{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate3d(-50%,-50%,0 );
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50rem;
  background: $d;
              // light from top
  box-shadow: inset 0.4rem 0.8rem 1rem rgba(lighten($d,15%), 0.6),
              //dark on bottom
              inset -0.4rem -0.8rem 1rem rgba(darken($d,10%), 0.6),
              //out main
              0.2rem 0.2rem 0.2rem rgba(darken($d,10%), 0.8);
  &:before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 100%;
    //out long
    transform: rotate(-25deg) scaleX(0.6);
    box-shadow: -0.5rem 1rem 2.5rem rgba($d, 0.8);
  }
  filter: blur(0.4px);
}
.second-bulb{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate3d(-50%,-50%,0 );
  width: 1rem;
  height: 1rem;
  border-radius: 50rem;
  background: $f;
              //out main
  box-shadow: 0.1rem 0.15rem 0.2rem rgba(darken($d,12%), 1);
  filter: blur(0.6px);
}

@keyframes little-tick{
  0%{
    transform: rotate(0deg);
    box-shadow: 0.5rem 1rem 0.7rem rgba($d, 0.4);
  }
  25%{
    transform: rotate(90deg);
    box-shadow: 1rem -0.5rem 0.7rem rgba($d, 0.4);
  }
  50%{
    transform: rotate(180deg);
    box-shadow: -0.5rem -1rem 0.7rem rgba($d, 0.4);
  }
  75%{
    transform: rotate(270deg);
    box-shadow: -1rem 0.5rem 0.7rem rgba($d, 0.4);
  }
  100%{
    transform: rotate(360deg);
    box-shadow: 0.5rem 1rem 0.7rem rgba($d, 0.4);
  }
}

.second{
  height: 17rem;
  transform-origin: 0.15rem 14rem;
  top: calc(50% - 14rem);
  transform: rotate(90deg);
  background: $f;
  width: 0.3rem;
  left: calc(50% - 0.15rem);
  border-radius: 0.2rem;
  //out main
  box-shadow: 1rem -0.5rem 0.7rem rgba($d, 0.4);
  
  animation: little-tick 60s infinite steps(15);
  animation-delay: -33s;
}

.number{
  position: absolute;
  left: 50%;
  top: calc(50% - 14.5rem);
  font-size: 3rem;
  font-weight: 500;
  font-family: Arial;
  transform: translate3d(-50%,-50%,0 );
  color: darken($e, 15%);
  filter: blur(0.4px);
  &:last-child{
    top: 50%;
    left: calc(50% + 15rem);
  }
}

.contrib{
  position: fixed;
  bottom: 5%;
  left: 50%;
  text-decoration: none;
  font-size: 2rem;
  font-weight: 100;
  font-family: sans-serif;
  color: rgba(0,0,0,0.4);
  letter-spacing: 2px;
  transform: translateX(-50%);
  text-decoration: underline;
}

.sig{
  position: fixed;
  bottom: 8px;
  right: 8px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 100;
  font-family: sans-serif;
  color: rgba(0,0,0,0.4);
  letter-spacing: 2px;
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js