@import "compass/reset";
@import "compass/css3/border-radius";
@import "compass/css3/box";
@import "compass/css3/box-shadow";
@import "compass/css3/box-sizing";
@import "compass/css3/images";
@import "compass/css3/text-shadow";
@import "compass/css3/background-size";
@import "compass/css3/transform";
@import "compass/css3/transition";

@mixin font-smoothing($val: antialiased) {
  -webkit-font-smoothing: $val;
  -moz-font-smoothing: $val;
  -ms-font-smoothing: $val;
  -o-font-smoothing: $val;
}

@mixin flexbox {
  display: -webkit-box !important;
  display: -moz-box !important;
  display: -ms-box !important;
  display: -o-box !important;
  display: box !important;
}

@mixin flex-center-center {
  @include box-orient(vertical);
  @include box-align(center);
  @include box-pack(center);
}

@mixin flex-left-center {
  @include box-orient(vertical);
  @include box-align(left);
  @include box-pack(center);
}

@mixin flex-right-center {
  @include box-orient(vertical);
  @include box-align(end);
  @include box-pack(center);
}

/**
 * Base SlideDeck Styles
 */
html {
  height: 100%;
  overflow: hidden;
}

body {
  margin: 0;
  padding: 0;

  opacity: 0;

  height: 100%;
  min-height: 740px;
  width: 100%;

  overflow: hidden;

  color: #fff;
  @include font-smoothing(antialiased);
  @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank.

  &.loaded {
    opacity: 1 !important;
  }
}

input, button {
  vertical-align: middle;
}

slides > slide[hidden] {
  display: none !important;
}

slides {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  @include transform(translate3d(0, 0, 0));
  @include perspective(1000);
  @include transform-style(preserve-3d);
  @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank.
}

slides > slide {
  display: block;
  position: absolute;
  overflow: hidden;
  left: 50%;
  top: 50%;
  @include box-sizing(border-box);
}

/* Slide styles */


/*article.fill iframe {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;

  border: 0;
  margin: 0;

  @include border-radius(10px);

  z-index: -1;
}

slide.fill {
  background-repeat: no-repeat;
  @include background-size(cover);
}

slide.fill img {
  position: absolute;
  left: 0;
  top: 0;
  min-width: 100%;
  min-height: 100%;

  z-index: -1;
}
*/
