.menu, .menu ul {
  list-style: none;
  padding: 0;
}

.menu ul {
  margin: 0;
}

.menu > li {
  position: relative;
  display: inline-block;
  outline: 0;
}

.submenu {
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 0;
  overflow: hidden;
  
  overflow: hidden\0/ !important;
  max-height: 0;
  
  pointer-events: none;
}

.menu > li:hover .submenu, .menu > li:focus .submenu {
  pointer-events: auto;
  z-index: 10;
  max-height: 2000px;
  -webkit-transition: none;
     -moz-transition: none;
}


.submenu li {
  opacity: 0;

  -webkit-transition: opacity .4s, -webkit-transform .6s, max-height .6s;
     -moz-transition: opacity .4s,    -moz-transform .6s, max-height .6s;
      -ms-transition: opacity .4s,     -ms-transform .6s, max-height .6s;
       -o-transition: opacity .4s,      -o-transform .6s, max-height .6s;
          transition: opacity .4s,         transform .6s, max-height .6s;
}

.menu > li:hover .submenu li, .menu > li:focus .submenu li {
  opacity: 1;

  -webkit-transform: none;
     -moz-transform: none;
      -ms-transform: none;
       -o-transform: none;
          transform: none;
}


.bounce {
  overflow: visible;
}

.bounce li {
  -webkit-transform: translateX(-40%);
     -moz-transform: translateX(-40%);
      -ms-transform: translateX(-40%);
       -o-transform: translateX(-40%);
          transform: translateX(-40%);

  -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
     -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
      -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
       -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
          transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
}


.radial li {
  -webkit-transform: translateY(-120px) rotate(70deg);
     -moz-transform: translateY(-120px) rotate(70deg);
      -ms-transform: translateY(-120px) rotate(70deg);
       -o-transform: translateY(-120px) rotate(70deg);
          transform: translateY(-120px) rotate(70deg);

  -webkit-transform-origin: 0 0;
     -moz-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
       -o-transform-origin: 0 0;
          transform-origin: 0 0;
}


.winding {
  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.winding li {
  -webkit-transform: rotateY(90deg);
     -moz-transform: rotateY(90deg);
      -ms-transform: rotateY(90deg);
       -o-transform: rotateY(90deg);
          transform: rotateY(90deg);

  -webkit-transform-origin: 0 0;
     -moz-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
       -o-transform-origin: 0 0;
          transform-origin: 0 0;
}


.shield {
  overflow: visible;

  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.shield li {
  -webkit-transform: rotateX(90deg);
     -moz-transform: rotateX(90deg);
      -ms-transform: rotateX(90deg);
       -o-transform: rotateX(90deg);
          transform: rotateX(90deg);

  -webkit-transform-origin: 0 0;
     -moz-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
       -o-transform-origin: 0 0;
          transform-origin: 0 0;

  -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
     -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
      -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
       -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
          transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
}


.pop {
  overflow: visible;
}

.pop li {
  -webkit-transform: scale(.2);
     -moz-transform: scale(.2);
      -ms-transform: translateX(-80%);
       -o-transform: translateX(-80%);
          transform: translateX(-80%);

  -webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
     -moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
      -ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
       -o-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
          transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
}



.helix {
  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.helix li {
  -webkit-transform: rotateY(90deg);
     -moz-transform: rotateY(90deg);
      -ms-transform: rotateY(90deg);
       -o-transform: rotateY(90deg);
          transform: rotateY(90deg);
}


.wave li {
  -webkit-transform-origin: 0% 0%;
     -moz-transform-origin: 0% 0%;
      -ms-transform-origin: 0% 0%;
       -o-transform-origin: 0% 0%;
          transform-origin: 0% 0%;

  -webkit-transform: skewY(-90deg);
     -moz-transform: skewY(-90deg);
      -ms-transform: skewY(-90deg);
       -o-transform: skewY(-90deg);
          transform: skewY(-90deg);
}


.fan li {
  -webkit-transform-origin: 0% 0%;
     -moz-transform-origin: 0% 0%;
      -ms-transform-origin: 0% 0%;
       -o-transform-origin: 0% 0%;
          transform-origin: 0% 0%;

  -webkit-transform: rotate(90deg);
     -moz-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
       -o-transform: rotate(90deg);
          transform: rotate(90deg);
}


.papercut {
  -webkit-perspective: 600px;
     -moz-perspective: 600px;
      -ms-perspective: 600px;
       -o-perspective: 600px;
          perspective: 600px;

  -webkit-perspective-origin: 0% 0%;
     -moz-perspective-origin: 0% 0%;
      -ms-perspective-origin: 0% 0%;
       -o-perspective-origin: 0% 0%;
          perspective-origin: 0% 0%;
}

.papercut li {
  -webkit-transform-origin: 0% 0%;
     -moz-transform-origin: 0% 0%;
      -ms-transform-origin: 0% 0%;
       -o-transform-origin: 0% 0%;
          transform-origin: 0% 0%;

  -webkit-transform: skewY(30deg);
     -moz-transform: skewY(30deg);
      -ms-transform: skewY(30deg);
       -o-transform: skewY(30deg);
          transform: skewY(30deg);
}


.fly {
  -webkit-perspective: 400px;
     -moz-perspective: 400px;
      -ms-perspective: 400px;
       -o-perspective: 400px;
          perspective: 400px;
}

.fly li {
  -webkit-transform-origin: 50% 50% -50px;
     -moz-transform-origin: 50% 50% -50px;
      -ms-transform-origin: 50% 50% -50px;
       -o-transform-origin: 50% 50% -50px;
          transform-origin: 50% 50% -50px;

  -webkit-transform: rotateX( -180deg );
     -moz-transform: rotateX( -180deg );
      -ms-transform: rotateX( -180deg );
       -o-transform: rotateX( -180deg );
          transform: rotateX( -180deg );
}


.blind li {
  max-height: 0;
}

.menu > li:hover .blind li, .menu > li:focus .blind li {
  
  max-height: 30px;
}


.venitian li {
  -webkit-transform-origin: 50% 0;
     -moz-transform-origin: 50% 0;
      -ms-transform-origin: 50% 0;
       -o-transform-origin: 50% 0;
          transform-origin: 50% 0;

  -webkit-transform: scale(1,0);
     -moz-transform: scale(1,0);
      -ms-transform: scale(1,0);
       -o-transform: scale(1,0);
          transform: scale(1,0);
}


.jaws li {
  -webkit-transform-origin: 50% -100px;
     -moz-transform-origin: 50% -100px;
      -ms-transform-origin: 50% -100px;
       -o-transform-origin: 50% -100px;
          transform-origin: 50% -100px;
}

.jaws li:nth-child(odd) {
  -webkit-transform: rotate(90deg);
     -moz-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
       -o-transform: rotate(90deg);
          transform: rotate(90deg);
}

.jaws li:nth-child(even) {
  -webkit-transform: rotate(-90deg);
     -moz-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
       -o-transform: rotate(-90deg);
          transform: rotate(-90deg);
}


.fence {
  -webkit-perspective: 600px;
     -moz-perspective: 600px;
      -ms-perspective: 600px;
       -o-perspective: 600px;
          perspective: 600px;
}

.fence li:nth-child(odd) {
  -webkit-transform-origin: 0 50%;
     -moz-transform-origin: 0 50%;
      -ms-transform-origin: 0 50%;
       -o-transform-origin: 0 50%;
          transform-origin: 0 50%;

  -webkit-transform: rotateY(90deg);
     -moz-transform: rotateY(90deg);
      -ms-transform: rotateY(90deg);
       -o-transform: rotateY(90deg);
          transform: rotateY(90deg);
}

.fence li:nth-child(even) {
  -webkit-transform-origin: 100% 50%;
     -moz-transform-origin: 100% 50%;
      -ms-transform-origin: 100% 50%;
       -o-transform-origin: 100% 50%;
          transform-origin: 100% 50%;

  -webkit-transform: rotateY(-90deg);
     -moz-transform: rotateY(-90deg);
      -ms-transform: rotateY(-90deg);
       -o-transform: rotateY(-90deg);
          transform: rotateY(-90deg);
}


.zipper li:nth-child(odd) {
  -webkit-transform: translateX(-100%);
     -moz-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
       -o-transform: translateX(-100%);
          transform: translateX(-100%);
}

.zipper li:nth-child(even) {
  -webkit-transform: translateX(100%);
     -moz-transform: translateX(100%);
      -ms-transform: translateX(100%);
       -o-transform: translateX(100%);
          transform: translateX(100%);
}