.tb{
  width: 500px;
  margin: auto; padding: 13px;	  
  list-style: none;
  counter-reset: li;
  background: #eee;
  -moz-box-shadow: 0 1px 2px rgba(0,0,0,.1) inset;
  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.1) inset;
  box-shadow: 0 1px 2px rgba(0,0,0,.1) inset;
            border-bottom-left-radius:10px;
          border-bottom-right-radius:10px;

}

.tb:before,
.tb:after {
  content: "";
  display: table;
}

.tb:after {
  clear: both;
}

.tb {
  zoom:1;
}

/* -------------------------------- */        

.tb li {
  position: relative;
  float: left;
  cursor: pointer;
  height: 120px; width: 245px;
  margin: 10px 0 0 10px;
  color: #fff;
} 

.tb li:hover, .tb li:focus{
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.2)), to(rgba(255,255,255,0)));
  background-image: -webkit-linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,0));
  background-image: -moz-linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,0));
  background-image: -ms-linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,0));
  background-image: -o-linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,0));
  background-image: linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,0));
}

.tb .cover{
  z-index: 2;
}

.tb .cover:focus{
  outline: 0;
}

/* -------------------------------- */

.tb li::after{
  content: counter(li);
  counter-increment: li;
  font: italic bold 10px serif, georgia;
  position: absolute;
  color: rgba(255,255,255,.1);
  opacity: 0;
  -webkit-transition: all .2s ease-out;
  -moz-transition: all .2s ease-out;
  -ms-transition: all .2s ease-out; 
  -o-transition: all .2s ease-out;  
  transition: all .2s ease-out;    
}      

.tb li:hover::after, .tb li:focus::after{
  font-size: 100px;
  opacity: 1; 
}

.tb .cover::after{
  z-index: -1;
}

/* -------------------------------- */       

.tb li:nth-child(1),
.tb li:nth-child(2){
  margin-top: 0;
}

.tb li:nth-child(1),
.tb li:nth-child(3){
  margin-left: 0;      
}

/* -------------------------------- */       

.tb li:nth-child(n),
.tb li:nth-child(n) .content,
.tb li:nth-child(n) .close{
  background-color: #2c618f;
}         
/* -------------------------------- */

.tb .content{
  opacity: 0; display: none;
  overflow: scroll;
  font: 12px Arial, Helvetica;
  position: absolute;
  height: 120px; width: 200px; /* Ideally: height: 100%; width: 100%; but works at it should just in FF */
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
  -ms-transition: all .3s ease-out; 
  -o-transition: all .3s ease-out;  
  transition: all .3s ease-out;      
}  

.tb .expanded{
  opacity: .95; display: block;
  overflow: visible;
  padding: 40px;
  height: 170px; width: 420px; /* Cover the entire area */
}


.tb li:nth-child(1) .content{ /* 3,6,9 */
  right: 0;
}
.tb li:nth-child(2) .content{ /* 3,6,9 */
  right: 0;
}
.tb li:nth-child(3) .content{ /* 3,6,9 */
  right: 0;
}
.tb li:nth-child(4) .content{ /* 3,6,9 */
  right: 0;
}

.tb li:nth-child(1) .expanded{ /* 2,5,8 */
  
  right: -255px;
}
.tb li:nth-child(2) .expanded{ /* 2,5,8 */
  
  
}
.tb li:nth-child(3) .expanded{ /* 2,5,8 */
  right: -255px;
  top: -130px;
  
}
.tb li:nth-child(4) .expanded{ /* 2,5,8 */
  
  top: -130px;
}



/* -------------------------------- */    

.tb .title{
  position: absolute;
  height: 100%; width: 100%;
  text-align: center;
  font: italic bold 1em/120px 'trebuchet MS', Arial, helvetica;
  opacity: .2;
}

.tb li:hover .title{
  opacity: .7;
}    

/* -------------------------------- */

.tb .close {
  display: none;
  border: 5px solid #fff;
  color: #fff;
  cursor: pointer;
  height: 40px; width: 40px;
  font: bold 20px/40px arial, helvetica;
  position: absolute;
  text-align: center;
  top: -20px; right: -20px;
  -moz-border-radius: 40px;
  -webkit-border-radius: 40px;
  border-radius: 40px;      
}

.tb .cover .close{
  display: block;
}