// 从 https://blog.imsyy.top/ 扒下来的动画

.tab-pane
  animation: fade-in
  animation-duration: 0.3s
  -webkit-animation: fade-in 0.3s

div.tabs ul.nav-tabs li.tab.active a
  transition: 0.5s

div.tabs .tab-content .tab-pane.active
  animation: tabshow 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -moz-animation: tabshow 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -o-animation: tabshow 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -ms-animation: tabshow 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -webkit-animation: tabshow 0.2s cubic-bezier(0.23, 0, 0, 1.32)

#l_side
  animation: tabshow 0.5s
  -webkit-animation: tabshow 0.5s
  -moz-animation: tabshow 0.5s
  -o-animation: tabshow 0.5s
  -ms-animation: tabshow 0.5s

.container ul.list-v
  animation: sub_menus
  animation-duration: 0.3s
  -webkit-animation: sub_menus 0.3s

ul.list-v.rightmenu
  animation: header-effect 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -moz-animation: header-effect 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -o-animation: header-effect 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -ms-animation: header-effect 0.2s cubic-bezier(0.23, 0, 0, 1.32)
  -webkit-animation: header-effect 0.2s cubic-bezier(0.23, 0, 0, 1.32)


details summary:hover
  transition: 0.3s

details[open] > div.content
  -webkit-animation: header-effect 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
  -moz-animation: header-effect 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
  -o-animation: header-effect 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
  -ms-animation: header-effect 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
  animation: header-effect 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55)

//===============================================================================//
// fade-in, sub_menus, tabshow, header-effect
//===============================================================================//

// fade-in
@-moz-keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-o-keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

// sub_menus
@-moz-keyframes sub_menus {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes sub_menus {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes sub_menus {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes sub_menus {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}

// tabshow
@-moz-keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}

// header-effect
@-moz-keyframes header-effect {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
    -moz-transform: translateY(-50px);
    -o-transform: translateY(-50px);
    -ms-transform: translateY(-50px);
    transform: translateY(-50px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes header-effect {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
    -moz-transform: translateY(-50px);
    -o-transform: translateY(-50px);
    -ms-transform: translateY(-50px);
    transform: translateY(-50px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes header-effect {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
    -moz-transform: translateY(-50px);
    -o-transform: translateY(-50px);
    -ms-transform: translateY(-50px);
    transform: translateY(-50px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes header-effect {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
    -moz-transform: translateY(-50px);
    -o-transform: translateY(-50px);
    -ms-transform: translateY(-50px);
    transform: translateY(-50px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
