@charset "UTF-8";
form,
img,
ul,
ol,
table,
td,
article,
figure,
figcaption {
  margin: 0;
  padding: 0;
}

a {
  outline: none;
  border: 0;
}

img {
  border: 0;
}

ul,
ol {
  list-style: none outside none;
}

table {
  border-spacing: 0;
}

td {
  vertical-align: top;
}

html {
  -webkit-text-size-adjust: none;
}

.hidden {
  display: none;
}

#debug {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 10;
  color: #f30;
}

@font-face {
  font-family: "Superstudio";
  font-weight: normal;
  font-style: normal;
  src: url("fonts/superstudio-heavy.eot");
  src: url("fonts/superstudio-heavy.eot?#iefix") format("embedded-opentype"), url("fonts/superstudio-heavy.woff") format("woff"), url("fonts/superstudio-heavy.ttf") format("truetype"), url("fonts/superstudio-heavy.svg#Superstudio") format("svg");
}
@font-face {
  font-family: "Executive";
  font-weight: normal;
  font-style: normal;
  src: url("fonts/executive-regular.eot");
  src: url("fonts/executive-regular.eot?#iefix") format("embedded-opentype"), url("fonts/executive-regular.woff") format("woff"), url("fonts/executive-regular.ttf") format("truetype"), url("fonts/executive-regular.svg#Executive") format("svg");
}
@font-face {
  font-family: "Executive";
  font-weight: normal;
  font-style: italic;
  src: url("fonts/executive-italic.eot");
  src: url("fonts/executive-italic.eot?#iefix") format("embedded-opentype"), url("fonts/executive-italic.woff") format("woff"), url("fonts/executive-italic.ttf") format("truetype"), url("fonts/executive-italic.svg#Executive") format("svg");
}
body {
  font-family: "Executive", Helvetica, Arial, sans-serif;
  font-weight: normal;
  font-size: 20px;
  line-height: 1.4;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
}
@media screen and (min-width: 0px) {
  body {
    font-size: 10px;
  }
}
@media screen and (min-width: 480px) {
  body {
    font-size: 12px;
  }
}
@media screen and (min-width: 640px) {
  body {
    font-size: 16px;
  }
}
@media screen and (min-width: 768px) {
  body {
    font-size: 18px;
  }
}
@media screen and (min-width: 960px) {
  body {
    font-size: 20px;
  }
}

h1,
h2,
h3 {
  font-size: 1em;
  font-weight: normal;
  margin: 0;
}

nav,
.overlay {
  font-family: "Superstudio", Helvetica, Arial, sans-serif;
  font-weight: normal;
}

nav {
  font-size: 2em;
  line-height: 1.4;
}

#content footer,
#content figcaption,
#content small,
#content .small p,
#content .small ul,
#content .small ol {
  font-size: 0.75em;
}
@media screen and (min-width: 0px) {
  #content {
    font-size: 1.5em;
  }
  #content .overlay {
    font-size: 0.6666666667em;
  }
}
@media screen and (min-width: 480px) {
  #content {
    font-size: 1.25em;
  }
  #content .overlay {
    font-size: 0.8em;
  }
}
@media screen and (min-width: 640px) {
  #content {
    font-size: 1.05em;
  }
  #content .overlay {
    font-size: 0.9523809524em;
  }
}
@media screen and (min-width: 768px) {
  #content {
    font-size: 1em;
  }
  #content .overlay {
    font-size: 1em;
  }
}
@media screen and (min-width: 960px) {
  #content {
    font-size: 1em;
  }
  #content .overlay {
    font-size: 1em;
  }
}

header {
  position: fixed;
  z-index: 4;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 1.5em;
  height: 7.198em;
}
header.open {
  height: 100%;
}
header.scroll {
  position: absolute;
}

nav {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto 0.75em;
  width: 100%;
  min-width: 290px;
  max-width: 960px;
  border-top: 0.75em solid #fffef2;
  overflow: hidden;
}
nav .steps {
  position: relative;
  z-index: 4;
  background: #fffef2;
  float: right;
  border: 0.0995em solid #40403d;
  border-left: 0;
  width: 0px;
  overflow: hidden;
  -webkit-transition: width 0.3s ease-out;
  -moz-transition: width 0.3s ease-out;
  transition: width 0.3s ease-out;
}
body.type-work nav .steps,
nav .steps .arrows {
  width: 2.6em;
}
nav .steps .arrows {
  position: relative;
  border-left: 0.0995em dotted #40403d;
  *zoom: 1;
}
nav .steps .arrows:before, nav .steps .arrows:after {
  content: " ";
  display: table;
}
nav .steps .arrows:after {
  clear: both;
}
nav .steps .arrows > * {
  cursor: pointer;
  float: left;
  padding: 0.25em 0.125em;
}
nav .steps .prev {
  margin-right: -0.125em;
}
nav .steps .prev:after {
  content: "⇐";
}
nav .steps .prev:active:after, body.hover nav .steps .prev:hover:after {
  content: "←";
}
nav .steps .next {
  margin-left: -0.125em;
}
nav .steps .next:after {
  content: "⇒";
}
nav .steps .next:active:after, body.hover nav .steps .next:hover:after {
  content: "→";
}
nav h1,
nav #menu {
  background: #fffef2;
}
nav h1 {
  position: relative;
  z-index: 2;
  border: 0.0995em solid #40403d;
  cursor: pointer;
}
nav h1 .home {
  display: none;
}
nav h1 .current {
  display: block;
}
nav h1 .home,
nav h1 .current {
  padding: 0.25em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
nav h1 .arrow {
  float: right;
  padding: 0.25em;
  padding-right: 0.5em;
  position: relative;
  z-index: 4;
}
nav h1 .arrow:after {
  content: "↓";
}
nav h1.active {
  background: #40403d;
  color: #fffef2;
}
nav h1.active .arrow {
  background: #40403d;
  border-right: 0.0995em solid #40403d;
  margin-right: -0.0995em;
}
nav h1.active .arrow:after {
  content: "→";
}
header.open nav {
  bottom: 0;
}
header.open nav .home {
  display: block;
}
header.open nav .current {
  display: none;
}
header.open nav h1 .arrow:after {
  content: "↑";
}
header.open nav #menu {
  display: block;
}
nav.selected h1 .arrow:after {
  content: "→";
}
nav #menu {
  display: none;
  position: absolute;
  border: 0.0995em solid #40403d;
  border-top-color: transparent;
  top: 1.9em;
  left: 0;
  right: 0;
  bottom: 0;
}
nav ul {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  max-height: 100%;
  border-top: 0.0995em solid transparent;
  padding: 0.25em 0 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
}
nav .scroll {
  position: absolute;
  left: 0;
  right: 0;
  text-align: center;
  cursor: pointer;
}
nav .scroll:after {
  position: relative;
  z-index: 2;
}
nav .up {
  top: 0;
}
nav .up:after {
  content: "↑";
}
nav .down {
  bottom: 0;
}
nav .down:after {
  content: "↓";
}
nav li {
  padding: 0 0.25em;
}
nav li:last-child {
  margin-bottom: 0.25em;
}
nav li a {
  display: block;
}
nav li div {
  text-indent: -1em;
  margin-left: 1em;
}
nav li.active, body.hover nav li:hover {
  background: #40403d;
}
nav li.active a, body.hover nav li:hover a {
  color: #fffef2;
}
nav hr {
  margin: 0.25em 0 0.25em 0;
  border: 0;
  border-top: 0.0995em solid #40403d;
}

body.loading #page {
  opacity: 0.5;
}
body.type-fullscreen nav {
  border-top: 0;
  margin-top: 0.75em;
}
body.type-fullscreen.loading #page {
  opacity: 1;
}

.headroom {
  -webkit-transition: transform 250ms linear;
  -moz-transition: transform 250ms linear;
  transition: transform 250ms linear;
}
.headroom.pinned {
  -webkit-transform: translateY(0%);
  -moz-transform: translateY(0%);
  -ms-transform: translateY(0%);
  -o-transform: translateY(0%);
  transform: translateY(0%);
}
.headroom.unpinned {
  -webkit-transform: translateY(-100%);
  -moz-transform: translateY(-100%);
  -ms-transform: translateY(-100%);
  -o-transform: translateY(-100%);
  transform: translateY(-100%);
}

body {
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
}

footer {
  padding-top: 0.75em;
  border-top: 1px solid;
  position: relative;
  *zoom: 1;
}
footer:before, footer:after {
  content: " ";
  display: table;
}
footer:after {
  clear: both;
}
footer > p {
  float: left;
}
footer aside {
  float: right;
}

img {
  background: none no-repeat center center;
  background-size: cover;
  opacity: 0;
}
img.loaded {
  opacity: 1;
}
body.hover img.loaded {
  -webkit-transition: opacity 0.3s ease-in;
  -moz-transition: opacity 0.3s ease-in;
  transition: opacity 0.3s ease-in;
}

article {
  *zoom: 1;
}
article:before, article:after {
  content: " ";
  display: table;
}
article:after {
  clear: both;
}

#page {
  position: relative;
  z-index: 1;
  min-width: 290px;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 1.5em 1.5em;
  margin-top: 7.198em;
}

.layout-small {
  display: block;
}

.layout-large {
  display: none;
}

@media screen and (min-width: 768px) {
  .layout-small {
    display: none;
  }

  .layout-large {
    display: block;
  }
}
.column {
  position: relative;
  margin: 0;
  padding: 0;
  min-height: 1px;
}
.column.one {
  *zoom: 1;
}
.column.one figure {
  width: 48%;
  float: left;
}
.column.one figure:only-of-type {
  width: auto;
  max-width: 345px;
  margin-left: auto;
  margin-right: auto;
  float: none;
}
.column.one figure:nth-of-type(2n) {
  margin-left: 4%;
}
.column.one:before, .column.one:after {
  content: " ";
  display: table;
}
.column.one:after {
  clear: both;
}
@media screen and (min-width: 768px) {
  .column {
    float: left;
    margin-bottom: 0.75em;
  }
  .column > *:last-child {
    margin-bottom: 0;
  }
  .column h2 {
    margin-top: 2.8em;
  }
  .column.one figure {
    width: auto;
    float: none;
  }
  .column.one figure:nth-of-type(2n) {
    margin-left: 0;
    float: none;
  }
  .column.one {
    width: 31.25%;
  }
  .column.two {
    width: 65.625%;
  }
  .column.three {
    width: 100%;
  }
  .column + .column {
    margin-left: 3.125%;
  }
}

.row {
  margin: 1.125em 0 0.25em;
  clear: left;
  *zoom: 1;
}
.row:before, .row:after {
  content: " ";
  display: table;
}
.row:after {
  clear: both;
}
.row:first-child {
  margin-top: 0;
}
.row.no-margin {
  margin-top: -0.25em;
}
.row.small-margin, .row.large-margin {
  margin-top: 2.25em;
}
@media screen and (min-width: 768px) {
  .row.large-margin {
    margin-top: 4.5em;
  }
}

html {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  background: #fffef2;
  color: #40403d;
}

p {
  margin: 0;
}

a {
  text-decoration: none;
  color: inherit;
}
a:focus {
  outline: none;
}
article a, footer a {
  border-bottom: 1px solid;
}
article a:hover, footer a:hover {
  color: #fffef2;
  background: #40403d;
  border-bottom-color: transparent;
}

article {
  padding-bottom: 0.75em;
}
article p,
article h2,
article h3,
article ul,
article ol {
  margin: 0 0 0.75em;
}
article h2,
article h3 {
  margin-top: 0.75em;
}
article h3:first-child {
  margin-top: 0;
}
article figure a:hover {
  margin: 0;
  padding: 0;
  color: inherit;
  background: inherit;
}
article figure img {
  display: block;
  margin: 0 auto;
}
article figure figcaption {
  margin-top: 0.3em;
}
article figure,
article .video,
article .slideshow {
  margin-top: 0.25em;
  margin-bottom: 1em;
}
article .slideshow figure {
  margin: 0;
}
article .slideshow.black {
  background: #000;
}
article em {
  font-style: italic;
  /*
  &:before {
    content: '«';
  }
  &:after {
    content: '»';
  }
  */
}
article ul ul,
article ul ol,
article ol ul,
article ol ol {
  margin-bottom: 0;
}
article ul > li {
  text-indent: -1em;
  margin-left: 1em;
}
article ul > li:before {
  content: "-";
  padding-right: 0.5em;
}
article ol {
  counter-reset: item;
}
article ol > li {
  text-indent: -1.5em;
  margin-left: 1.5em;
  margin-bottom: 1em;
}
article ol > li:before {
  text-indent: 0;
  display: inline-block;
  content: counter(item) ") ";
  counter-increment: item;
  width: 1.5em;
}
article blockquote {
  margin: 0;
}
article blockquote p {
  padding-left: 0.9em;
}
article blockquote p:first-child {
  text-indent: -0.9em;
}
article blockquote p:first-child:before {
  content: "“";
  padding-right: 0.5em;
}
article blockquote p:last-child:after {
  content: "”";
}
article cite {
  font-style: normal;
}
article cite:before {
  content: "–";
  padding-right: 0.5em;
}

.video {
  margin-left: auto;
  margin-right: auto;
}
.video figcaption {
  margin-top: 0.3em;
}

.video-container {
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  position: relative;
}
.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
body.touch .video-container iframe {
  padding-right: 15px;
}

.swipe {
  overflow: hidden;
  visibility: hidden;
  position: relative;
}
.swipe .arrows {
  position: absolute;
  overflow: hidden;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
.swipe .arrows .prev,
.swipe .arrows .next {
  position: absolute;
  cursor: pointer;
  z-index: 2;
  width: 20%;
  top: 0;
  bottom: 0;
}
.swipe .arrows .arrow {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  font-size: 2em;
  line-height: 1.4em;
  margin: -0.7em -0.2em 0;
  color: #fffef2;
}
.swipe .arrows .prev .arrow:after {
  content: "⇐";
}
.swipe .arrows .prev:active .arrow:after, .swipe .arrows .prev.active .arrow:after, body.hover .swipe .arrows .prev:hover .arrow:after {
  content: "←";
}
.swipe .arrows .next {
  right: 0;
  text-align: right;
}
.swipe .arrows .next .arrow:after {
  content: "⇒";
}
.swipe .arrows .next:active .arrow:after, .swipe .arrows .next.active .arrow:after, body.hover .swipe .arrows .next:hover .arrow:after {
  content: "→";
}
.swipe .overlay {
  top: 0;
}
.shadow .swipe .overlay {
  text-shadow: 0 2px 9px rgba(0, 0, 0, 0.3);
}
body.type-fullscreen .swipe .numbers,
body.type-fullscreen .swipe .numbers .content,
body.type-fullscreen .swipe .links,
body.type-fullscreen .swipe .links .content {
  left: 0;
  right: auto;
}
.swipe .links .content {
  z-index: 3;
}
.swipe .links .link {
  font-size: 0.4em;
  display: inline;
  font-weight: bolder;
  margin-right: 0.2em;
  cursor: pointer;
}
.swipe .links .link:after {
  content: "◇";
}
.swipe .links .link.active:after {
  content: "◆";
}

.swipe-wrap {
  overflow: hidden;
  position: relative;
}
.swipe-wrap figure {
  float: left;
  width: 100%;
  position: relative;
}

.slideshow > figcaption {
  margin-top: 0.3em;
}

.overlay {
  position: absolute;
  right: 0;
  bottom: 0;
  display: block;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.overlay .content {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
}
.overlay .content {
  color: #fffef2;
  font-size: 2em;
}

.overlay .content {
  margin: 0.75em 0.75em 0.55em 0.75em;
}
.overlay .arrow:after {
  margin: 0 0.75em;
}

.small-margin .overlay .arrow:after {
  margin: 0 0.375em;
}

#content .overlay .content {
  margin: 0.35em 0.35em 0.15em 0.35em;
}
#content .overlay .arrow:after {
  margin: 0 0.35em;
}
#content .small-margin .overlay .arrow:after {
  margin: 0 0.175em;
}
@media screen and (min-width: 480px) {
  #content .overlay .content {
    margin: 0.6em 0.6em 0.4em 0.6em;
  }
  #content .overlay .arrow:after {
    margin: 0 0.6em;
  }
  #content .small-margin .overlay .arrow:after {
    margin: 0 0.3em;
  }
}
@media screen and (min-width: 640px) {
  #content .overlay .content {
    margin: 0.75em 0.75em 0.55em 0.75em;
  }
  #content .overlay .arrow:after {
    margin: 0 0.75em;
  }
  #content .small-margin .overlay .arrow:after {
    margin: 0 0.375em;
  }
}

#fullscreen {
  z-index: 0;
  padding: 1.51em;
}
#fullscreen,
#fullscreen .swipe {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
#fullscreen .swipe {
  z-index: 1;
}
#fullscreen .swipe-wrap {
  width: 100%;
  height: 100%;
}
#fullscreen #content {
  position: relative;
  margin: 0 auto;
  height: 100%;
}
#fullscreen figcaption {
  position: absolute;
  z-index: 1;
  padding: 0.75em;
  bottom: 0;
  right: 0;
  background: #fffef2;
  -webkit-transition: bottom 0.25s ease-in-out;
  -moz-transition: bottom 0.25s ease-in-out;
  transition: bottom 0.25s ease-in-out;
}
#fullscreen figcaption a {
  display: block;
  margin: -0.75em;
  padding: 0.75em;
}
body.loading #fullscreen figcaption, #fullscreen figcaption.out {
  bottom: -9em;
}
#fullscreen figure {
  width: 100%;
  height: 100%;
}
#fullscreen figure figcaption {
  display: none;
}

.thumbnails {
  padding: 0.25em 0;
}
.thumbnails img {
  display: block;
}
.thumbnails figure {
  position: relative;
  margin-bottom: 1.5em;
}
.thumbnails figcaption {
  display: none;
  position: absolute;
  right: 0;
  bottom: 0;
  margin: 0.75em 0.75em 0.55em 0.75em;
  color: #fffef2;
}
#content .thumbnails figcaption {
  font-size: 1em;
}
body.touch .thumbnails figcaption {
  display: block;
}
@media screen and (min-width: 480px) {
  .thumbnails {
    *zoom: 1;
  }
  .thumbnails:before, .thumbnails:after {
    content: " ";
    display: table;
  }
  .thumbnails:after {
    clear: both;
  }
  .thumbnails figure {
    float: left;
    margin: 0 3.125% 3.125% 0;
    width: 48.4375%;
  }
  .thumbnails figure:nth-child(2n) {
    margin-right: 0;
  }
}
@media screen and (min-width: 768px) {
  .thumbnails figure {
    width: 31.25%;
  }
  .thumbnails figure:nth-child(2n) {
    margin-right: 3.125%;
  }
  .thumbnails figure:nth-child(3n) {
    margin-right: 0;
  }
}

.paperscript canvas {
  width: 100%;
}
