html, body , .ui-page{ 
  height: 100%; /* Necessary for height based sizes */
  overflow: hidden;
}

body>div[data-role] { height: 100%; }

html { box-sizing: border-box; }
*, *:after, *:before { box-sizing: inherit; }

html { height: 100%; }
body { min-height: 100%; }

body { 
  font-size: 0;
  -webkit-user-select: none;  /* Chrome all / Safari all */
  -moz-user-select: none;     /* Firefox all */
  -ms-user-select: none;      /* IE 10+ */
  user-select: none;  
}
a { outline: none; }

#supportjpg { display: none; }
.notsupport #supportjpg { display: block; }
.notsupport #loading,
.notsupport #portraitmask,
.notsupport #main { display: none; }

.responsive-embed {
    height: 90%; /* Set height here */
    display: inline-block; /* Must be inline-block */
    position: relative; /* Keep the child element contained */
    left: 50%;
    -webkit-transform: translate(-50%,0);
       -moz-transform: translate(-50%,0);
        -ms-transform: translate(-50%,0);
         -o-transform: translate(-50%,0);
            transform: translate(-50%,0);
    overflow: hidden;
  /* min/max-height work as well! */
  /*
  min-height: 200px;
  max-height: 400px;
  */
  /* min/max-width will break the aspect ratio, but otherwise work as expected */
}
#supportjpg.responsive-embed {
    height: 90%;
    width: auto;
    position: static;
    text-align: center;
    -webkit-transform: translate(0,0);
       -moz-transform: translate(0,0);
        -ms-transform: translate(0,0);
         -o-transform: translate(0,0);
            transform: translate(0,0);
}

.ratio {
    max-height: 100%;
  height: 100%; /* Our ratio canvas is expanded to as tall as the height set above. */
  width: auto; /* Allows the width to adjust based in the height, keeping the aspect ratio */
  /*visibility: hidden;*/ /* Prevents non-transparent image or alt text from showing up */
  text-align: left;
}

.responsive-embed .embed {
  /* Force the child block to be same size as parent */
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  font-size: 12px;
}

.fbg { max-width: 100%; width: 100%; max-height: 100%; height: 100%; }
.embed .fbg{
    width: auto;
    height: 100%;
}

.greeting_img{
    opacity: 0;
    -webkit-transition: opacity 700ms linear 0s;
    -moz-transition: opacity 700ms linear 0s;
    -ms-transition: opacity 700ms linear 0s;
    -o-transition: opacity 700ms linear 0s;
    transition: opacity 700ms linear 0s;
}
.greeting_img.active {
    opacity: 1;
    -webkit-transition: opacity 1000ms linear 5s;
    -moz-transition: opacity 1000ms linear 5s;
    -ms-transition: opacity 1000ms linear 5s;
    -o-transition: opacity 1000ms linear 5s;
    transition: opacity 1000ms linear 5s;
}

.boctower_img {
  opacity: 0;
  transition: all 1.3s;
  transition-timing-function: linear;
}

.ballgroup1 {
    position: absolute;
    width: 8.1333%;
    height: 78.2%;
    top: -52%;
    left: 38%;
}
.ballgroup2a {
    position: absolute;
    width: 10.3%;
    height: 87.6%;
    top: -47.5%;
    left: 46.8%;
}
.ballgroup2b {
    position: absolute;
    width: 12.2%;
    height: 90.3333%;
    top: -33.9%;
    left: 42.8%;
}
.ballgroup3 {
    position: absolute;
    width: 10.8666%;
    height: 94.5333%;
    top: -64%;
    left: 70.2%;
}
.balltrigger {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 0;
    border-radius: 100%;
    border-top-left-radius: 100%;
    border-top-right-radius: 100%;
    border-bottom-left-radius: 100%;
    border-bottom-right-radius: 100%;
    cursor: pointer;
}
.active .balltrigger { cursor: default; }

.balltrigger:before {
    content: '';
    display: block;
    padding-top: 100%;
    border-radius: 100%;
border-top-left-radius: 100%;
border-top-right-radius: 100%;
border-bottom-left-radius: 100%;
border-bottom-right-radius: 100%;
}

.crystal_01 { position: absolute; width: 4.8%; height: 63.8666%; top: -26%; left: 35%; }
.crystal_02 { position: absolute; width: 4.5866%; height: 74.24%; top: -23%; left: 75%; }
.crystal_03 { position: absolute; width: 5.7333%; height: 92.8%; top: -67%; left: 87%;}

.blueball_01 { position: absolute; width: 8.1066%; height: 66.56%; top: -36%; left: 26.7%; }
.blueball_02 { position: absolute; width: 6.08%; height: 49.92%; top: -5%; left: 81%; }

.boc .boctower_img {  opacity: 0; }

.balltrigger { cursor: pointer; }
.active .balltrigger { cursor: default; }
.balltrigger img {
    position: absolute;
    left: 0;
    bottom: 0;
    top: 0;
    right: 0;
    margin: auto;
    width: 100%;
    height: 100%;
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
    border-radius: 100%;
    border-top-left-radius: 100%;
    border-top-right-radius: 100%;
    border-bottom-left-radius: 100%;
    border-bottom-right-radius: 100%;
    -webkit-transition: opacity 500ms, transform 1000ms;
    -moz-transition: opacity 500ms, transform 1000ms;
    -ms-transition: opacity 500ms, transform 1000ms;
    -o-transition: opacity 500ms, transform 1000ms;
    transition: opacity 500ms, transform 1000ms;
}
.active .balltrigger img { 
    opacity: 0; 
    -webkit-transform: scale(0.1);
    transform: scale(0.1); 
}

.sound { 
    position: absolute;
    margin: auto;
    top: 5%;
    right: 0;
    width: 50px;
    height: 50px;    
    opacity: 0; 
    -webkit-transition: opacity 500ms;
    -moz-transition: opacity 500ms;
    -ms-transition: opacity 500ms;
    -o-transition: opacity 500ms;
    transition: opacity 500ms;
    text-align: center;
    z-index: 1;
}
.sound > span {
    background-color: rgba(245,132,31,1);
    display: block;
    width: 100%;
    height: 100%;
    padding: 8px;
    border-radius: 100%;
border-top-left-radius: 100%;
border-top-right-radius: 100%;
border-bottom-left-radius: 100%;
border-bottom-right-radius: 100%;
}
.sound .fa-music {
    color: #fff;
    font-size: 32px;
}
.active .sound { 
    opacity: 1; 
}

.bling .bling_img { 
    opacity: 0;
    -webkit-transition: opacity 500ms;
    -moz-transition: opacity 500ms;
    -ms-transition: opacity 500ms;
    -o-transition: opacity 500ms;
    transition: opacity 500ms;
}
.bling.active .bling_img { opacity: 1; }
.bcg_img { display: none; }
.gif { 
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 100%;
    left: 0;
    bottom: 0;
    z-index: 0;
}
.leftgif,
.rightgif {
    position: absolute; 
    bottom: 0;
    width: 100%; height: 100%;
    -webkit-transition: all 700ms;
    -moz-transition: all 700ms;
    -ms-transition: all 700ms;
    -o-transition: all 700ms;
    transition: all 700ms; 
}

.leftgif { left: -100%; }
.gif.active .leftgif { left: 0%; }
.rightgif { right: -100%; }
.gif.active .rightgif { right: 0%; }
.greeting,
.greeting2 {
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 100%;
    left: 0;
    bottom: 0;     
}
.greeting .leftgif,
.greeting2 .leftgif { 
    -webkit-transition: all 700ms linear 0s;
    -moz-transition: all 700ms linear 0s;
    -ms-transition: all 700ms linear 0s;
    -o-transition: all 700ms linear 0s;
    transition: all 700ms linear 0s;
}
.greeting.active .leftgif,
.greeting2.active .leftgif { 
    -webkit-transition: all 700ms linear 5s;
    -moz-transition: all 700ms linear 5s;
    -ms-transition: all 700ms linear 5s;
    -o-transition: all 700ms linear 5s;
    transition: all 700ms linear 5s;
    left: 0%;
}

.snowman_img,
.tree_img { position: absolute; bottom: 0; }
.snowman_img { width: 14.0666%; height: 33.0666%; }
.tree_img { width: 8.2666%; height: 25.7333%; }

.tree_01 { left: 2.5%; }
.tree_02 { left: 30%; }
.tree_03 { left: 85%; }

.snowman_01 { left: 12.5%; }
.snowman_02 { left: 42.5%; }
.snowman_03 { left: 70%;  }

.logo_img {     
    position: absolute;
    width: 24.6666%;
    height: 22.6666%;
    top: 8%;
    left: 0;
}

#loading { 
    opacity: 1;
    z-index: 99999;
    -webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
    transition: all 1s; 
}
#loading { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff; }
.loaded #loading { z-index: -99999; opacity: 0; }

#loading .loading_img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; max-width: 300px; width: 100%; margin: auto; }

/* ==========================================================================
   SNS
   ========================================================================== */

.sns {
    height: 10%; 
    text-align: center; 
    padding: 10px 5px;
}
.sns a { margin-left: 5px; margin-right: 5px; }
.sns img { 
    width: auto;
    height: 100%; 
}

/* ==========================================================================
   Animate Control
   ========================================================================== */
.infinite{
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}
.light {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-name: lighton;
    animation-name: lighton; 
}
.light.l1 { -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-delay: 0s; animation-delay: 0s; }
.light.l2 { -webkit-animation-duration: 4s; animation-duration: 4s; -webkit-animation-delay: 0s; animation-delay: 0s; }
.light.l3 { -webkit-animation-duration: 1.7s; animation-duration: 1.7s; -webkit-animation-delay: 0s; animation-delay: 0s; }
.light.l4 { -webkit-animation-duration: 1.8s; animation-duration: 1.8s; -webkit-animation-delay: 0s; animation-delay: 0s; }
.light.l5 { -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-delay: 1s; animation-delay: 1s; }

.boc.active .boctower_01 { -webkit-animation: boc_01 10s linear 1 1s; animation: boc_01 10s linear 1 1s; }
.boc.active .boctower_02 { -webkit-animation: boc_02 10s linear 1 1s; animation: boc_02 10s linear 1 1s; }
.boc.active .boctower_03 { -webkit-animation: boc_03 10s linear 1 1s; animation: boc_03 10s linear 1 1s; }
.boc.active .boctower_04 { -webkit-animation: boc_04 10s linear 1 1s; animation: boc_04 10s linear 1 1s; }

.bling.active .bling_01 { -webkit-animation: lighton 2s linear infinite; animation: lighton 2s linear infinite; }
.bling.active .bling_02 { -webkit-animation: lighton 2s 2s linear infinite; animation: lighton 2s 2s linear infinite; }

.discoball .balltrigger { opacity: 0; }
.discoball .balltrigger.bgc1{ 
    -webkit-transition: opacity 500ms 1.9s;
    -moz-transition: opacity 500ms 1.9s;
    -ms-transition: opacity 500ms 1.9s;
    -o-transition: opacity 500ms 1.9s;
    transition: opacity 500ms 1.9s;
} 
.discoball .balltrigger.bgc2{
    -webkit-transition: opacity 500ms 1.6s;
    -moz-transition: opacity 500ms 1.6s;
    -ms-transition: opacity 500ms 1.6s;
    -o-transition: opacity 500ms 1.6s;
    transition: opacity 500ms 1.6s;
}
.discoball .balltrigger.bgc3{
    -webkit-transition: opacity 500ms 1.3s;
    -moz-transition: opacity 500ms 1.3s;
    -ms-transition: opacity 500ms 1.3s;
    -o-transition: opacity 500ms 1.3s;
    transition: opacity 500ms 1.3s;
}

.loaded .balltrigger.bgc3,
.loaded .balltrigger.bgc2,
.loaded .balltrigger.bgc1{
    opacity: 1;
}
.ball{
    -webkit-transition: top 700ms ;
    -moz-transition: top 700ms;
    -ms-transition: top 700ms;
    -o-transition: top 700ms;
    transition: top 700ms;
}
.ball.active {
    -webkit-transition: all 0s ease 0s;
    -moz-transition: all 0s ease 0s;
    -ms-transition: all 0s ease 0s;
    -o-transition: all 0s ease 0s;
    transition: all 0s ease 0s;
}

.ball.active.ballgroup1 { -webkit-animation-name: bounce; animation-name: bounce; }
.ball.active.ballgroup2a { -webkit-animation-name: bounce; animation-name: bounce; }
.ball.active.ballgroup2b { -webkit-animation-name: bounce; animation-name: bounce; }
.ball.active.ballgroup3 { -webkit-animation-name: bounce; animation-name: bounce; }


.ball.active.ballgroup1  { -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-delay: 1s; animation-delay: 1s; }
.ball.active.ballgroup2a { -webkit-animation-duration: 2.5s; animation-duration: 2.5s; -webkit-animation-delay: 0.5s; animation-delay: 0.5s; }
.ball.active.ballgroup2b { -webkit-animation-duration: 1.5s; animation-duration: 1.5s; -webkit-animation-delay: 0.5s; animation-delay: 0.5s; }
.ball.active.ballgroup3  { -webkit-animation-duration: 1.7s; animation-duration: 1.7s; -webkit-animation-delay: 0.3s; animation-delay: 0.3s; }

.speedcontrol.active .ball.active.ballgroup1  { -webkit-animation-duration: 4.5s; animation-duration: 4.5s; -webkit-animation-delay: 0.6s; animation-delay: 0.6s; }
.speedcontrol.active .ball.active.ballgroup2a { -webkit-animation-duration: 3s; animation-duration: 3s; -webkit-animation-delay: 0.5s; animation-delay: 0.5s; }
.speedcontrol.active .ball.active.ballgroup2b { -webkit-animation-duration: 2.5s; animation-duration: 2.5s; -webkit-animation-delay: 0.8s; animation-delay: 0.8s; }
.speedcontrol.active .ball.active.ballgroup3  { -webkit-animation-duration: 2.7s; animation-duration: 2.7s; -webkit-animation-delay: 0.3s; animation-delay: 0.3s; }


.bounceCrystal.active { -webkit-animation-name: bounce; animation-name: bounce; }
.bounceCrystal.active.bc1{ 
    -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-delay: 1s; animation-delay: 1s; -webkit-animation-iteration-count: 4;animation-iteration-count: 4;
}
.bounceCrystal.active.bc2{ 
    -webkit-animation-duration: 1.5s; animation-duration: 1.5s; -webkit-animation-delay: 0s; animation-delay: 0s; -webkit-animation-iteration-count: 6;animation-iteration-count: 6;
}
.bounceCrystal.active.bc3{ 
    -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-delay: 1s; animation-delay: 1s; -webkit-animation-iteration-count: 4;animation-iteration-count: 4;
}
.bounceCrystal.active.bc4{ 
    -webkit-animation-duration: 1.5s; animation-duration: 1.5s; -webkit-animation-delay: 0s; animation-delay: 0s; -webkit-animation-iteration-count: 6;animation-iteration-count: 6;
}
.bounceCrystal.active.bc5{ 
    -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-delay: 1s; animation-delay: 1s; -webkit-animation-iteration-count: 4;animation-iteration-count: 4;
}

.speedcontrol.active .bounceCrystal.active.bc1{ -webkit-animation-duration: 3.5s; animation-duration: 3.5s; -webkit-animation-delay: 0.5s; animation-delay: 0.5s; -webkit-animation-iteration-count: 3;animation-iteration-count: 3;  }
.speedcontrol.active .bounceCrystal.active.bc2{ -webkit-animation-duration: 2.5s; animation-duration: 2.5s; -webkit-animation-delay: 0.8s; animation-delay: 0.8s; -webkit-animation-iteration-count: 4;animation-iteration-count: 4; }
.speedcontrol.active .bounceCrystal.active.bc3{ -webkit-animation-duration: 3.5s; animation-duration: 3.5s; -webkit-animation-delay: 0.5s; animation-delay: 0.5s; -webkit-animation-iteration-count: 3;animation-iteration-count: 3;  }
.speedcontrol.active .bounceCrystal.active.bc4{ -webkit-animation-duration: 2.7s; animation-duration: 2.7s; -webkit-animation-delay: 0s; animation-delay: 0s; -webkit-animation-iteration-count: 4;animation-iteration-count: 4;  }
.speedcontrol.active .bounceCrystal.active.bc5{ -webkit-animation-duration: 2.5s; animation-duration: 2.5s; -webkit-animation-delay: 0.8s; animation-delay: 0.8s; -webkit-animation-iteration-count: 4;animation-iteration-count: 4; }

.balltrigger img {
    -webkit-animation: pulse 2s linear infinite; 
    animation: pulse 2s linear infinite;
}

.sound > span {
    -webkit-animation: pulse 1s linear infinite; 
    animation: pulse 1s linear infinite;
}

#portraitmask .portrait_phone { 
    -webkit-animation: portrait_phone 4s ease 1s infinite; 
    animation: portrait_phone 4s ease 1s infinite;
}

/* ==========================================================================
   keyframes 
   ========================================================================== */

@-webkit-keyframes bounce {
    0%,100% {
        -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        -webkit-transform: translate3d(0,0.0001%,0);
        transform: translate3d(0,0.0001%,0);
    }
    50% {
        -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        -webkit-transform: translate3d(0,-10%,0);
        transform: translate3d(0,-10%,0);
    }
}
@keyframes bounce {
    0%,100% {
        -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        -webkit-transform: translate3d(0,0.0001%,0);
        transform: translate3d(0,0.0001%,0);
    }
    50% {
        -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        -webkit-transform: translate3d(0,-10%,0);
        transform: translate3d(0,-10%,0);
    }
}


@-webkit-keyframes lighton {
    0%,100% { opacity: 0.9; }
    50% {  opacity: 0; }
}
@keyframes lighton {
    0%,100% { opacity: 0.9; }
    50% {  opacity: 0;  }
}

@-webkit-keyframes pulse {
    0%,100%{ -webkit-transform: scale(0.9); transform: scale(0.9); }
    50%{ -webkit-transform: scale(1); transform: scale(1); }
}
@keyframes pulse {
    0%,100%{ -webkit-transform: scale(0.9); transform: scale(0.9); }
    50%{ -webkit-transform: scale(1); transform: scale(1); }
}

@-webkit-keyframes boc_01 { 0%,100%{opacity: 0;}10%,90%{opacity: 1;} }
@keyframes boc_01 { 0%,100%{opacity: 0;}10%,90%{opacity: 1;} }

@-webkit-keyframes boc_02 { 0%,100%{opacity: 0;}20%,80%{opacity: 1;} }
@keyframes boc_02 { 0%,100%{opacity: 0;}20%,80%{opacity: 1;} }

@-webkit-keyframes boc_03 { 0%,100%{opacity: 0;}30%,70%{opacity: 1;} }
@keyframes boc_03 { 0%,100%{opacity: 0;}30%,70%{opacity: 1;}  }

@-webkit-keyframes boc_04 { 0%,100%{opacity: 0;}40%,60%{opacity: 1;} }
@keyframes boc_04 { 0%,100%{opacity: 0;}40%,60%{opacity: 1;} }

@-webkit-keyframes portrait_phone {  0%,100% { transform: rotate(0deg); }50%{ transform: rotate(-90deg); } }
@keyframes portrait_phone {  0%,100% { transform: rotate(0deg); }50%{ transform: rotate(-90deg); } }

@-webkit-keyframes light_bcg {  0%,100% { opacity: 0; } 15%,85%{ opacity: 1; } }
@keyframes light_bcg {  0%,100% {opacity: 0; }15%,85%{ opacity: 1; } }

/* ==========================================================================
   @media 
   ========================================================================== */

#portraitmask { position: fixed; top: 0; left: 0;  width: 100%; height: 100%; background-color: #fff; opacity: 0; z-index: -9999; }
#portraitmask .portrait_logo { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; max-width: 320px; max-height: 480px; width: auto; height: 100%; }
#portraitmask .portrait_phone { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; width: 52px; height: 104px; transform: rotate(0); }
#portraitmask .portrait_phone {
    -webkit-transition: transform 1s ease 0s;
    -moz-transition: transform 1s ease 0s;
    -ms-transition: transform 1s ease 0s;
    -o-transition: transform 1s ease 0s;
    transition: transform 1s ease 0s;
}
#portraitmask .portrait_text {
    position: absolute;
    bottom: 13%;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    height: 50px;
    color: #555;
    font-size: 16px;
    text-align: center;
}

@media only screen and (max-width: 768px) and (orientation: portrait) {
   /* .balltrigger span { 
        font-size: 18px;
        width: 35px;
        height: 35px;
        padding-top: 4px;
        box-shadow: 0 0 30px 5px rgba(255,255,255,1);
    }*/
}

@media screen and (max-device-width: 768px){

}

@media screen and (max-width: 768px) and (min-height: 300px) and (orientation: portrait) {
    #portraitmask { opacity: 1; z-index: 9999; }
    .loaded .discoball .balltrigger{ opacity: 0; } 
}

@media screen and (max-width: 768px) and (orientation: landscape) {
    #portraitmask { 
        z-index: -9999;
        opacity: 0; 
        -webkit-transition: opacity 1000ms;
        -moz-transition: opacity 1000ms;
        -ms-transition: opacity 1000ms;
        -o-transition: opacity 1000ms;
        transition: opacity 1000ms;
    }
    .loaded .discoball .balltrigger{ opacity: 1; } 

   /* .balltrigger span { 
        font-size: 24px;
        width: 35px;
        height: 35px;
        padding-top: 4px;
        box-shadow: 0 0 30px 5px rgba(255,255,255,1);
    }*/
    .balltrigger {
        position: absolute;
        width: 100%;
        left: 0;
        bottom: 0;
        border-radius: 100%;
        border-top-left-radius: 100%;
        border-top-right-radius: 100%;
        border-bottom-left-radius: 100%;
        border-bottom-right-radius: 100%;
        cursor: pointer;
    }

    .sound { 
        width: 35px;
        height: 35px;    
    }
    .sound > span {
        padding: 4px;
    }
    .sound .fa-music {
        color: #fff;
        font-size: 24px;
    }
    .sns {
        height: 10%; 
        text-align: center; 
        padding: 5px 5px;
    }
}

@media screen and (max-width:480px){
    .responsive-embed,
    #supportjpg.responsive-embed { height: 85%; }
    /*.balltrigger span { 
        font-size: 24px;
        width: 35px;
        height: 35px;
        padding-top: 4px;
        box-shadow: 0 0 30px 5px rgba(255,255,255,1);
    }*/

    .sns { height: 15%; }
}

@media screen and (max-width: 400px) and (min-height: 300px){ /* Android 4.0 fix */
    body #portraitmask { opacity: 1; z-index: 9999; }
    .loaded .discoball .balltrigger{ opacity: 0; }
}

/* Landscape */
@media screen 
  and (device-width: 320px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 2) 
  and (orientation: landscape) {

}

/* ==========================================================================
   Helper classes
   ========================================================================== */

/*
 * Image replacement
 */

.ir {
    background-color: transparent;
    border: 0;
    overflow: hidden;
    /* IE 6/7 fallback */
    *text-indent: -9999px;
}

.ir:before {
    content: "";
    display: block;
    width: 0;
    height: 150%;
}

/*
 * Hide from both screenreaders and browsers: h5bp.com/u
 */

.hidden {
    display: none !important;
    visibility: hidden;
}

/*
 * Hide only visually, but have it available for screenreaders: h5bp.com/v
 */

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

/*
 * Extends the .visuallyhidden class to allow the element to be focusable
 * when navigated to via the keyboard: h5bp.com/p
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

/*
 * Hide visually and from screenreaders, but maintain layout
 */

.invisible {
    visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */

.clearfix:before,
.clearfix:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.clearfix:after {
    clear: both;
}

/*
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */

.clearfix {
    *zoom: 1;
}
