:root {
  --light: #fbfbf2;
  --dark: #292929;
}
* { box-sizing: border-box }
html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: none;
  background-color: var(--light);
  color: var(--dark);
  font-family: 'Roobert', Helvetica, Arial, sans-serif;
}
.--menu-active {
	overflow-y: hidden;
}
a {
  color: var(--dark);
  text-decoration: none;
}
h1,
h2,
h3 {
  font-weight: normal;
  margin: 0;
}
h1,
h2,
h3 {
  text-transform: uppercase;
}
/*
 * Navigation
 */
.menu {
  display: flex;
  width: 100%;
  text-transform: uppercase;
  position: absolute;
  top: 0;
  left: 0;
  padding: 2.5rem;
  z-index: 1000;
}
.menu a:hover,
.footer a:hover {
  text-decoration: underline;
}
.menu-navigation {
  width: 100%;
  text-align: right;
}
.menu-navigation a {
  margin-left: 2rem;
}
.--menu-active .menu-navigation a {
  color: var(--light);
}
.main {
  margin: 2.5rem auto 3.5rem;
  padding: 0 2.5rem;
  max-width: 120rem;
}
.main.home {
  margin-bottom: 0;
}
.main p {
  font-size: 1.1rem;
  line-height: 1.5;
}
.logo {
  padding: 3rem 0 1.5rem;
}
.logo img {
  width: 100%;
}
.info .logo {
/*  padding-top: 1.5rem; */
}
.small.logo {
  position: relative;
  max-width: 15rem;
  margin: -3rem auto 0;
  z-index: 1000;
  padding-top: 0;
}
.menu-label summary::-webkit-details-marker {
  display:none;
}
.menu-label summary {
  list-style-type: none;
  cursor: pointer;
}
.menu-label-icon,
.menu-label-icon .close {
  display: none;
}
.--menu-active .menu-label summary {
  color: var(--light);
  text-decoration: underline;
}
.menu-label summary:hover {
  text-decoration: underline;
}
.menu-inner {
  display: none;
}
.menu-inner.active {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--dark);
  z-index: 1000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  z-index: -1;
  padding: 2.5rem;
}
.menu-inner a {
  color: var(--light);
  font-size: 6.5vw;
  opacity: 0;
  animation: .3s slideIn ease-out forwards;
  animation-delay: calc(var(--animation-order) * .05s);
  border-bottom: 1px solid var(--light);
  padding: .5rem 1.5rem .5rem 0;
  transition: .3s padding ease-out;
}
.menu-inner a:hover {
  text-decoration: none;
  padding-left: 1rem;
}
.menu-inner .logo {
  margin: 1.5rem 0 .15rem 0;
  padding: 0;
  mix-blend-mode: lighten;
}
.menu-inner .logo img {
  padding: 0;
}
.menu-inner .logo a {
  display: inline-block;
  opacity: 1;
  padding-right: 0;
  margin-bottom: 0;
}
.menu-inner .logo a:hover {
  padding-left: 0;
}
.menu-vertical {
  display: flex;
  flex-direction: column;
  max-width: 115rem;
  margin: 0 auto;
}
.--menu-active .logo.small {
  display: none;
}

/*
 * In viewport animation
 */
.iv {
  visibility: hidden;
  opacity: 0;
  transform: translateY(2rem);
  transition: all .5s ease-out;
}
.iv.--is-visible {
  visibility: visible;
  opacity: 1;
  transform: none;
}

/*
 * Splash animation
 */
.splash-animation {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.sa-spacer {
  width: 100%;
  height: calc(100vh - 2.5rem);
}
/*
 * Splash overview
 */
.splash {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: .3rem;
  width: 100%;
}
.featured-work {
  display: block;
  width: 100%;
  margin-bottom: 3rem;
  animation: .5s slideIn ease-out forwards;
}
@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(2rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.featured-work .featured-image {
  width: 100%;
  height: 0;
  padding-top: 120%;
  background: var(--dark) center / cover;
  margin: 0;
  position: relative;
}
.featured-image:hover .featured-gif {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: var(--dark) center / cover;
}
.featured-work .description {
  margin-top: .7rem;
  display: flex;
}
.category{
  display: inline-block;
  border: 1px solid var(--dark);
  border-radius: 1rem;
  padding: .225rem .5rem .25rem;
  font-size: .82rem;
  line-height: 1;
  letter-spacing: -.5px;
  font-weight: 500;
  text-transform: uppercase;
  margin-right: .75rem;
  min-width: 6.15rem;
  max-height: 1.4rem;
  text-align: center;
}
.featured-work h2 {
  display: inline-block;
  font-size: 1rem;
  text-transform: uppercase;
}
.featured-work:hover h2 {
  text-decoration: underline;
}

/*
 * Project detail
 */
.featured-image {
  width: 100%;
  margin: 0 0 2rem;
}
.featured-image img {
  width: 100%;
}
.video-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
  margin-bottom: 2rem;
}
.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.columns {
  display: flex;
}
.column {
  width: 100%;
}
.column:not(:last-child) {
  padding-right: 2rem;
}
.double.column {
  width: 200%;
}
.triple.column {
	width: 300%;
	margin-right: 3rem;
}
.project-title,
.project-information-heading {
  font-size: 1.8rem;
  display: inline-block;
}
.category.project-head {
  position: relative;
  top: -.25rem;
}
.project-images {
  padding: 2rem 0;
}
.project-image {
  width: 100%;
}
.project-image img {
  width: 100%;
}
.project-information p:first-of-type,
.project-credits p:first-of-type {
  margin-top: 0.25rem;
}
.project-information a,
.project-credits a {
  text-decoration: underline;
  font-size: 1.1rem;
}
.gutter-navigation {
  margin-top: 7rem;
  font-size: 1.8rem;
  text-transform: uppercase;
}
/*
 * Project grid
 */
.grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 1rem;
  width: 100%;
  margin-bottom: 3rem;
}
.grid-item.double {
  grid-column: span 2;
}
.grid .video-container {
  height: 100%;
  padding-bottom: 0;
}
.grid .video-container iframe,
.grid .video-container video {
  width: 100%;
  height: 100%;
}

/*
 * Info
 */
body.info {
  background: #d0c9c2;
}
.info-header {
  margin: 5.5rem 0 0;
}
.info-header > * {
  width: 100%;
  font-size: 1.8rem;
}
.hook,
.hook p {
  font-size: 4.5vw;
  line-height: 1.2;
  opacity: 0;
  animation: .5s slideIn ease-out forwards;
  margin: 0;
}
.hook p {
  padding-top: 2rem;
}
.post-hook .run-by {
  display: none;
  margin: 2rem 0 3rem;
  font-size: 1.8rem;
}
.bylines {
  padding-top: 4rem;
  margin-bottom: 4rem;
}
.bylines .column {
  opacity: 0;
  animation: .5s slideIn ease-out forwards .1s;
}
.bylines .column:nth-child(2) {
  animation-delay: .2s;
}
.bylines p {
  max-width: 33rem;
	font-size: 1.8rem;
	line-height: 1;
}
.run-by a,
.bylines a {
  position: relative;
	text-decoration: underline;
	text-decoration-thickness: 2px;
}
.run-by a::after,
.bylines a::after {
	content: ' \002197';
	letter-spacing: -2px;
}
.hover-card {
  position: absolute;
  top: 0;
  left: -16.5em;
  width: 11em;
  opacity: 0;
  transform: translateY(1rem);
  transition: .3s all ease-in-out;
  pointer-events: none;
  z-index: 1;
}
.run-by:hover .hover-card {
  opacity: 1;
  transform: translateY(0);
}
.hover-card img {
  width: 100%;
}
.info h2 {
  text-transform: none;
  font-size: 1rem;
}
.awards-and-screenings {
  font-size: 2rem;
  margin-bottom: 6rem;
}
.awards-and-screenings .year {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  font-size: 1rem;
  width: 3rem;
  height: 2rem;
  padding-right: .5rem;
}
.awards-and-screenings .list-item {
  display: flex;
  padding: .5rem 0;
  margin-right: .5rem;
  border-bottom: solid 1px var(--dark);
}
.list-label {
  padding-left: .75rem;
  padding-right: 3rem;
  width: 100%;
}
.list-label,
.list-label p {
  font-size: 2rem;
  line-height: 1.2;
}
.list-label p {
  margin: 0;
  display: inline-block;
}
.list-item .hover-card {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 15em;
  margin-top: .25rem;
}
.list-item .hover-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.list-item:hover .hover-card {
  opacity: 1;
  margin-top: 0;
}
@media (pointer: fine) {
  .awards .list-item:hover {
    color: var(--light);
    cursor: default;
  }
}
.awards-and-screenings .list-item:last-of-type {
  border-bottom: 0;
}
.team {
  position: relative;
  margin-bottom: 3rem;
}
.team img {
  width: 100%;
  padding-right: .5rem;
}
.team h2 {
  text-transform: unset;
  font-size: 2.35rem;
  margin: 0;
  line-height: 1;
}
.team h3 {
  font-size: 1rem;
  margin: .5rem 0 3rem;
}
.columns-rolling {
  columns: 2;
  column-gap: 2vw;
  position: absolute;
  bottom: 0;
}
.columns-rolling p {
	line-height: 1.45;
}
.columns-rolling p:first-of-type {
  margin-top: 0;
}

/*
 * Footer
 */
.footer {
  background: var(--dark);
  color: var(--light);
  width: 100%;
  padding: 2.5rem 2.5rem 3rem;
  display: flex;
  position: relative;
  text-transform: uppercase;
}
.footer .column {
  height: 17rem;
  position: relative;
}
.footer h3 {
  font-size: 1rem;
  font-weight: normal;
  text-transform: uppercase;
  margin-bottom: 2rem;
}
.footer ul {
  list-style: none;
  line-height: 1.75;
  padding: 0;
}
.footer a {
  color: var(--light);
}
.footer .logo {
  position: absolute;
  bottom: 1rem;
  right: 2rem;
  mix-blend-mode: lighten;
}
.footer .logo img {
  width: 5rem;
}
.footer .push {
  position: absolute;
  bottom: 0;
  line-height: 0.5;
}
.footer form {
  position: relative;
	margin: -.75rem 0 4rem;
	max-width: 28rem;
}
.footer input {
  font-family: 'Roobert', Helvetica, Arial, sans-serif;
  text-transform: uppercase;
}
.footer input[type="text"],
.footer input[type="email"] {
  width: 100%;
  background: none;
  color: var(--light);
  border: 0;
  border-bottom: 1px solid var(--light);
  font-size: 1rem;
  margin-top: -1rem;
  padding: 1.2rem .25rem .3rem 0;
  -webkit-appearance: none;
  border-radius: 0;
}
.footer ::placeholder {
	color: var(--light);
	opacity: 1;
}
.footer input[type="submit"] {
	position: absolute;
	top: -.8rem;
  right: 0;
  background: var(--light);
  color: var(--dark);
  border: 0;
  font-size: .9rem;
  padding: .5rem 1.2rem .7rem;
  border-radius: 0;
  font-weight: normal;
  -webkit-appearance: none;
}

/*
 * Shop
 */
h3.product-title {
  font-size: .95em;
  margin-bottom: .2em;
}
.product img {
  width: 100%;
}
.product .intro {
  position: relative;
  padding-right: 1rem;
  padding-bottom: 3rem;
}
.product .intro p {
  text-transform: uppercase;
  font-size: .95em;
  line-height: 1.1;
}
.product .intro p:first-of-type {
  margin-top: 0;
}
.product .cta {
  position: absolute;
  bottom: 1.45rem;
  display: inline-block;
  border: 1px solid var(--dark);
  border-radius: 1rem;
  font-size: 1.2em;
  padding: .2em 1.5em .265em;
  line-height: 1;
  letter-spacing: -.5px;
  font-weight: 500;
  text-transform: uppercase;
  text-align: center;
}
.embla {
  overflow: hidden;
}
.embla__container {
  display: flex;
  align-items: flex-start;
}
.embla__slide {
  flex: 0 0 100%;
  min-width: 0;
  min-height: 0;
}
.embla__controls {
  text-align: center;
}
.embla__dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-right: calc((2.6rem - 1.4rem) / 2 * -1);
}
.embla__dot {
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0.5);
  -webkit-appearance: none;
  appearance: none;
  background-color: transparent;
  touch-action: manipulation;
  display: inline-flex;
  text-decoration: none;
  cursor: pointer;
  border: 0;
  padding: 0;
  margin: 0;
  width: 1.2rem;
  height: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
.embla__dot:after {
  box-shadow: inset 0 0 0 1px var(--dark);
  width: .75rem;
  height: .75rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  content: '';
}
.embla__dot--selected:after {
  box-shadow: inset 0 0 0 1rem var(--dark);
}


/*
 * Breakpoints
 */
@media (min-width: 2000px) {
  .menu-inner a {
    font-size: 10rem;
  }
  .hook {
    font-size: 5.25vw;
  }
}
@media (max-width: 1400px) {
  .columns-rolling {
    columns: 1;
    position: relative;
    padding-right: 3rem;
  }
	.ftr.column {
		text-align: right;
	}
}
@media (max-width: 1024px) {
  .menu {
    padding: 2.5rem 1.25rem;
  }
  .menu .logo {
    top: 0;
  }
  .menu-label-text {
    display: none;
  }
  .menu-label-icon {
    display: block;
    margin-top: .2rem;
  }
  .menu-label-icon img {
    width: 1rem;
  }
  .--menu-active .menu-label-icon {
    filter: invert();
  }
  .--menu-active .menu-label-icon .open {
    display: none;
  }
  .--menu-active .menu-label-icon .close {
    display: block;
  }
  .main {
    padding: 0 1.25rem;
  }
  .menu-inner.active {
    padding: 1.25rem;
  }
  .menu-inner.active .logo {
    margin-top: 2rem;
  }
  .footer {
    padding: 2.5rem 1.25rem 3rem;
  }
  .menu-navigation {
    display: none;
  }
  .splash,
  .grid {
    grid-template-columns: 1fr;
  }
  .grid {
    margin-bottom: 0;
  }
  .grid-item.double {
    grid-column: span 1;
  }
  .columns {
    display: block;
    margin-top: 1rem;
  }
  .double.column,
  .triple.column {
    width: 100%;
  }
  .project-credits {
    margin-top: 3rem;
  }
  .gutter-navigation {
    margin-top: 3rem;
    display: flex;
    font-size: 1rem;
  }
  .gutter-navigation div:last-of-type {
    text-align: right;
  }
  .footer {
    display: block;
  }
  .footer .column {
    height: auto;
    margin-bottom: 5rem;
  }
  .footer .push {
    position: relative;
    bottom: 0;
    line-height: 1;
  }
  h1.info {
    margin-top: 1rem;
    margin-bottom: 2rem;
    font-size: .8rem;
  }
  .info-header .run-by {
    display: none;
  }
  .hook {
    font-size: 2.63rem;
    line-height: 1;
    padding-top: 1rem;
  }
  .hook p {
    font-size: 2.63rem;
  }
  .post-hook .run-by {
    display: block;
  }
  .bylines {
    padding-top: 2rem;
    font-size: 1.2rem;
    margin-bottom: 3rem;
  }
  .awards {
    margin-top: 8rem;
  }
  .screenings {
    margin-top: 4rem;
  }
  .team .column {
    padding-right: 0;
  }
  .team img {
    width: calc(100% + 2.5rem);
    margin: 0 -1.25rem;
    padding: 0;
  }
  .team h2 {
  	margin-top: 2rem;
  }
  .product.columns {
    margin-top: .25rem;
  }
  .product .column:first-of-type {
    padding-right: 0;
    padding-bottom: 1rem;
  }
}

/* drawing update */
canvas.pencil {
  display: none;
}
.drawing canvas.pencil {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
}
.startDrawing,
.stopDrawing {
  cursor: pointer;
  position: absolute;
  top: 2rem;
  right: 2rem;
}
.drawing .startDrawing,
.stopDrawing {
  display: none;
}
.startDrawing,
.drawing .stopDrawing {
  display: block;
}
.stopDrawing {
  text-align: right;
  font-size: .7em;
  padding: .2em .6em .4em;
  border: 1px solid #fff;
  z-index: 2000;
}

