@font-face {
  font-family: 'Panama';
  src: url(/assets/fonts/PanamaMonospace.woff); }

@font-face {
  font-family: 'Alte';
  src: url(/assets/fonts/AlteHaasGroteskRegular.ttf); }

* {
  box-sizing: border-box;
  position: relative;
  font: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased; }

a {
  text-decoration: none;
  cursor: none;
  text-decoration: underline; }

html {
  background: #060709;
  color: #ffffff;
  font-family: "Alte", sans-serif;
  font-size: 16px;
  line-height: 1.25;
  cursor: none; }
  @media (min-width: 768px) {
    html {
      font-size: 22px; } }

main {
  transition: color .25s;
  color: white; }
  main.transition {
    color: transparent; }

.cursor {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  mix-blend-mode: difference;
  z-index: 1000; }
  .cursor__top, .cursor__bottom, .cursor__left, .cursor__right {
    background: white;
    position: absolute; }
  .cursor__top, .cursor__bottom {
    left: 0;
    height: 1.25rem;
    width: 1px; }
  .cursor__top {
    bottom: 0; }
  .cursor__bottom {
    top: 0; }
  .cursor__left, .cursor__right {
    top: 0;
    width: 1.25rem;
    height: 1px; }
  .cursor__left {
    right: 0; }
  .cursor__right {
    left: 0; }
  .cursor--close .cursor__right {
    display: none; }
  .cursor--close .cursor__bottom {
    display: none; }
  .touch .cursor {
    display: none; }

.header {
  position: fixed;
  top: 0;
  z-index: 100;
  width: 100%;
  padding: 20px;
  z-index: 200; }
  .header--invert {
    mix-blend-mode: difference; }
  @media (min-width: 768px) {
    .header {
      padding: 20px 40px; } }
  .header a {
    text-decoration: none; }
  .header__title {
    display: flex;
    justify-content: space-between; }
    @media (min-width: 768px) {
      .header__title {
        display: block; } }
    .header__title span {
      margin-right: 1em; }
    .header__title span:first-child {
      display: none; }
      @media (min-width: 768px) {
        .header__title span:first-child {
          display: inline; } }
    @media (min-width: 768px) {
      .header__title a {
        display: none; } }
  @media (max-width: 768px) {
    .header__info {
      display: none; } }
  .header__info a {
    float: right; }

.byline {
  text-transform: uppercase; }

.footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  display: flex;
  align-items: flex-end;
  padding: 20px;
  pointer-events: none; }
  @media (min-width: 768px) {
    .footer {
      padding: 20px 40px; } }
  .footer--sizer {
    pointer-events: none; }
  .footer__title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  .footer a {
    pointer-events: visible; }
  .footer > * {
    flex-grow: 0;
    margin-right: 1em; }
    .footer > *:last-child {
      flex-grow: 1;
      text-align: right;
      margin-right: 0; }

.projects {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  padding-left: 20px;
  padding-right: 20px;
  padding-bottom: 20px; }
  @media (min-width: 768px) {
    .projects {
      padding-left: 40px;
      padding-right: 40px;
      padding-bottom: 40px; } }

.project-thumbnail {
  margin-bottom: 40px; }
  .project-thumbnail .page {
    filter: grayscale(100%); }

.project-info > * {
  display: inline;
  margin-right: 1em; }

.project-info p {
  font-style: italic; }

.project-description {
  text-transform: uppercase; }
  .project-description p {
    margin-bottom: 20px; }

.pages {
  margin-top: 20px; }

.page {
  position: absolute;
  background: white; }
  .page img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none; }

.project {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: black;
  z-index: 100; }
  .project__scroll {
    height: 100%;
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch; }
  .project__pages {
    height: 100%; }

.transition-renderer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: none;
  background: black;
  z-index: 2000; }

.credit {
  text-align: right; }
