﻿section {
  display: inline-block;
  position: relative;
  padding: .375rem .375rem 0;
  height: 2.5rem;
  background: #A9ADB6;
  border-radius: .25rem;
  perspective: 300;
  box-shadow: 0 -1px 2px #fff, inset 0 1px 2px rgba(0,0,0,.2), inset 0 .25rem 1rem rgba(0,0,0,.1);
}


.button { opacity: 0; }

.cover {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  transform-origin: center bottom;
  transform-style: preserve-3d;
  font: 1.25em/2 "icon";
  color: white;
  text-align: center;
  pointer-events: none;
  z-index: 100;
}

.innie, .outie, .spine, .shadow { position: absolute; width: 100%; }

.innie, .outie {
  height: 100%;
  background-image: -webkit-linear-gradient(top, transparent 0%, rgba(0,0,0,.1) 100%);
  border-radius: .25rem;
}

svg {
    width: 40px;
    height: 40px;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.25))
}

.innie {
  background-color: #67E2FE;
  text-shadow: 0 -2px 4px rgba(0,0,0,.2);
}

.spine {
  top: .25rem;
  background: #20C7F3;
  height: .25rem;
  transform: rotateX(90deg);
  transform-origin: center top;
}

.shadow {
  top: 100%;
  left: 0;
  height: 3.5rem;
  transform-origin: center top;
  transform: rotateX(90deg);
  opacity: 0;
  z-index: 0;
  background-image: -webkit-linear-gradient(top, rgba(0,0,0,.6) 0%, transparent 100%);
  background-image: linear-gradient(to bottom, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: .4rem;

}

.outie {
  background-color: #2EC8FA;
  transform: translateZ(.25rem);
  text-shadow: 0 2px 4px rgba(0,0,0,.2);
}

section:hover { background: #EBEFF2; }
section:hover .button { opacity: 1; }

section:hover .cover, section:hover .innie, section:hover .spine, section:hover .outie, section:hover .spine { transition-timing-function: cubic-bezier(.2,.7,.1,1.1); }

section:hover .cover { transform: rotateX(-120deg);  }

section:hover .innie { background-color: #3ADAFC; }
section:hover .spine { background-color: #52B1E0; }
section:hover .outie { background-color: #2174A0; color: rgba(255,255,255,0); }

section:hover .shadow { 
  opacity: 1;
  transform: rotateX(45deg) scale(.95);
}


small {
  font: .8rem/1 sans-serif;
  padding-top: 4rem;
  color: #777;
}
small a { color: #222; text-decoration: none; border-bottom: thin solid #ccc; }
small a:hover { border-bottom-color: #222; }

.sma{
    display: none;
}

/*スマートフォンでは有効（改行する）*/
@media screen and (max-width:768px) {
    .sma{
        display: block;
    }
}