body {
  margin: 0px;
  min-height: 100%; }

p,
h1,
h2,
h3,
h4,
h5 {
  margin: 0;
  padding: 0; }

ul {
  margin: 0;
  padding: 0; }

li {
  margin: 0.5em 0; }

a {
  color: inherit;
  text-decoration: none; }

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }

figure {
  margin: 0;
  padding: 0; }

input[type=range] {
  -webkit-appearance: none;
  /* Hides the slider so that custom slider can be made */
  width: 100%;
  /* Specific width is required for Firefox. */
  background: transparent;
  /* Otherwise white in Chrome */ }

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; }

input[type=range]:focus {
  outline: none;
  /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */ }

input[type=range]::-ms-track {
  width: 100%;
  cursor: pointer;
  /* Hides the slider so custom styles can be added */
  background: transparent;
  border-color: transparent;
  color: transparent; }

/**
 *  Media Queries and Breakpoints
 */
.container {
  position: relative;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  -webkit-column-gap: 20px;
          column-gap: 20px;
  padding: 0 40px; }
  @media (max-width: 1024px) {
    .container {
      -webkit-column-gap: 20px;
              column-gap: 20px;
      padding: 0 20px; } }
  .container__collapse {
    padding: 0; }
    @media (max-width: 768px) {
      .container__collapse {
        padding: 0; } }

/*! Flickity v2.2.1
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled {
  position: relative; }

.flickity-enabled:focus {
  outline: 0; }

.flickity-viewport {
  overflow: hidden;
  position: relative;
  height: 100%; }

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%; }

.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.flickity-enabled.is-draggable .flickity-viewport {
  cursor: move;
  cursor: -webkit-grab;
  cursor: grab; }

.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: -webkit-grabbing;
  cursor: grabbing; }

.flickity-button {
  position: absolute;
  background: rgba(255, 255, 255, 0.75);
  border: none;
  color: #333; }

.flickity-button:hover {
  background: #fff;
  cursor: pointer; }

.flickity-button:focus {
  outline: 0;
  box-shadow: 0 0 0 5px #19f; }

.flickity-button:active {
  opacity: .6; }

.flickity-button:disabled {
  opacity: .3;
  cursor: auto;
  pointer-events: none; }

.flickity-button-icon {
  fill: currentColor; }

.flickity-prev-next-button {
  top: 50%;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }

.flickity-prev-next-button.previous {
  left: 10px; }

.flickity-prev-next-button.next {
  right: 10px; }

.flickity-rtl .flickity-prev-next-button.previous {
  left: auto;
  right: 10px; }

.flickity-rtl .flickity-prev-next-button.next {
  right: auto;
  left: 10px; }

.flickity-prev-next-button .flickity-button-icon {
  position: absolute;
  left: 20%;
  top: 20%;
  width: 60%;
  height: 60%; }

.flickity-page-dots {
  position: absolute;
  width: 100%;
  bottom: -25px;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
  line-height: 1; }

.flickity-rtl .flickity-page-dots {
  direction: rtl; }

.flickity-page-dots .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 8px;
  background: #333;
  border-radius: 50%;
  opacity: .25;
  cursor: pointer; }

.flickity-page-dots .dot.is-selected {
  opacity: 1; }

.ratio-box {
  position: relative;
  height: 0;
  display: block;
  width: 100%;
  background-color: #000000;
  /* padding-bottom is calculated and rendered in to HTML */ }

.video__thumb .ratio-box {
  background: none; }

.ratio-box img,
.ratio-box iframe,
.ratio-box video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  transition: opacity 0.4s;
  opacity: 0; }

.lazyload {
  opacity: 0; }

.ratio-box .lazyloaded {
  opacity: 1; }

img {
  width: 100%; }

/* Colour */
/* Type */
@font-face {
  font-family: "General Grotesque";
  src: url("/assets/fonts/GeneralGrotesque-Regular.woff2") format("woff2"), url("/assets/fonts/GeneralGrotesque-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: "General Grotesque";
  src: url("/assets/fonts/GeneralGrotesque-Book.woff2") format("woff2"), url("/assets/fonts/GeneralGrotesque-Book.woff") format("woff");
  font-weight: 500;
  font-style: normal; }

@font-face {
  font-family: "General Grotesque";
  src: url("/assets/fonts/GeneralGrotesque-BookItalic.woff2") format("woff2"), url("/assets/fonts/GeneralGrotesque-BookItalic.woff") format("woff");
  font-weight: 500;
  font-style: italic; }

@font-face {
  font-family: "General Grotesque";
  src: url("/assets/fonts/GeneralGrotesque-Demi.woff2") format("woff2"), url("/assets/fonts/GeneralGrotesque-Demi.woff") format("woff");
  font-weight: 600;
  font-style: normal; }

body {
  font-family: "General Grotesque";
  cursor: url("/assets/cursor.png") 0 0, pointer;
  /* Legacy */
  cursor: url("/assets/cursor.svg") 0 0, pointer;
  /* FF */
  cursor: -webkit-image-set(url("/assets/cursor.png") 1x, url("/assets/cursor@2x.png") 2x) 0 0, pointer;
  /* Webkit */ }

*:focus {
  outline-color: #000000; }

h1, .h1, .mobile-menu nav a {
  font-size: 50px;
  line-height: 60px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none; }
  @media (max-width: 1024px) {
    h1, .h1, .mobile-menu nav a {
      font-size: 28px;
      line-height: 33px; } }

h2, .h2 {
  font-size: 34px;
  line-height: 42px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none; }
  @media (max-width: 1024px) {
    h2, .h2 {
      font-size: 20px;
      line-height: 28px; } }

h3, .h3 {
  font-size: 20px;
  line-height: 28px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase; }
  @media (max-width: 1024px) {
    h3, .h3 {
      font-size: 12px;
      line-height: 19px; } }

p, .p, body {
  font-size: 24px;
  line-height: 32px;
  font-weight: 500;
  letter-spacing: 0.04em; }
  @media (max-width: 1024px) {
    p, .p, body {
      font-size: 14px;
      line-height: 19px; } }

p {
  text-indent: 2em; }
  p:first-of-type {
    text-indent: 0; }

figcaption, .caption {
  font-size: 20px;
  line-height: 27px;
  font-weight: 500; }
  @media (max-width: 1024px) {
    figcaption, .caption {
      font-size: 12px;
      line-height: 16px; } }

a {
  text-decoration: underline; }

button, .button {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border: none;
  font-size: inherit;
  border-radius: 0.62em;
  letter-spacing: inherit;
  font-family: inherit;
  line-height: 1;
  padding: 0.3em 0.7em 0.5em;
  font-weight: inherit;
  background: #EBEBEB;
  text-decoration: none; }
  button:hover, .button:hover {
    background: #C489FF;
    cursor: pointer; }
  button:active, .button:active {
    color: #FFFFFF; }

figure figcaption {
  margin-top: 0.5em; }

html {
  font-size: 10px; }
  @media (max-width: 1024px) {
    html {
      font-size: 7px; } }

body.menu-open {
  overflow: hidden; }

body, header .menu, .mobile-menu nav {
  transition: color 0.3s, background-color 0.3s; }

#main {
  transition: -webkit-filter 1s;
  transition: filter 1s;
  transition: filter 1s, -webkit-filter 1s; }

body.overlay-open, body.overlay-loading {
  overflow: hidden; }
  body.overlay-open #main, body.overlay-open .header, body.overlay-loading #main, body.overlay-loading .header {
    -webkit-filter: blur(10px);
            filter: blur(10px); }

body.ack-open, body.ack-closing {
  overflow: hidden; }
  body.ack-open #main, body.ack-open .header, body.ack-closing #main, body.ack-closing .header {
    -webkit-filter: blur(50px);
            filter: blur(50px); }

#main {
  padding-top: 75px; }

.sticky-button {
  position: -webkit-sticky;
  position: sticky;
  top: calc(100vh - 80px);
  z-index: 25;
  margin-left: 40px;
  display: block;
  align-self: flex-start; }
  @media (max-width: 1024px) {
    .sticky-button {
      margin-left: 20px;
      top: calc(100vh - 50px); } }

section.has-sticky-button:after {
  content: "";
  display: block;
  height: 8rem; }

section.has-sticky-button > *:nth-child(2) {
  margin-top: -43px; }
  @media (max-width: 1024px) {
    section.has-sticky-button > *:nth-child(2) {
      margin-top: -25px; } }

section {
  padding-top: 6rem; }

.overlay-image {
  grid-column: span 6;
  cursor: pointer;
  position: relative; }
  .overlay-image:hover svg {
    opacity: 1; }
  .overlay-image svg {
    color: #EBEBEB;
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    opacity: 0; }
  @media (max-width: 768px) {
    .overlay-image {
      pointer-events: none; } }

.video__thumb {
  position: relative; }
  .video__thumb:hover svg {
    color: #C489FF; }
  .video__thumb:hover .ratio-box img {
    -webkit-filter: blur(0px);
            filter: blur(0px); }
  .video__thumb .ratio-box {
    overflow: hidden; }
    .video__thumb .ratio-box img {
      -webkit-filter: blur(5px);
              filter: blur(5px);
      transition: -webkit-filter 0.7s;
      transition: filter 0.7s;
      transition: filter 0.7s, -webkit-filter 0.7s;
      -webkit-transform: scale(1.05);
              transform: scale(1.05); }
  .video__thumb svg {
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    position: absolute;
    width: 70px;
    transition: color 0.2s;
    color: #FFFFFF; }
    @media (max-width: 1024px) {
      .video__thumb svg {
        width: 50px; } }

.embed-container {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }
  .embed-container iframe {
    width: calc(177.78vh);
    height: calc(100vh);
    box-sizing: border-box;
    padding: 6rem 10.66667rem; }
    @media (max-aspect-ratio: 16 / 9) {
      .embed-container iframe {
        width: calc(100vw);
        height: calc(56.25vw);
        padding: 3.375rem 6rem; } }
    @media (max-width: 768px) {
      .embed-container iframe {
        padding: 0; } }

.audio {
  background: #EBEBEB;
  display: flex;
  align-items: center;
  padding: 2rem;
  font-size: 20px;
  border-radius: 5px; }
  @media (max-width: 1024px) {
    .audio {
      font-size: 14px;
      padding: 1.5rem; } }
  .audio button {
    padding: 0 1rem;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 0.5rem;
    flex-shrink: 0; }
    @media (max-width: 1024px) {
      .audio button {
        width: 35px; } }
    .audio button:hover {
      background: none; }
  .audio svg {
    color: #C489FF;
    width: 100%; }
    .audio svg:last-of-type {
      display: none; }
  .audio span {
    display: block;
    margin-right: 0.5rem;
    min-width: 50px;
    text-align: center;
    flex-shrink: 0; }
  .audio input {
    margin: 0 2rem; }
  .audio input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 30px;
    width: 30px;
    border-radius: 100%;
    background: #C489FF;
    cursor: pointer;
    border: none;
    margin-top: -14px;
    /* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */ }
    @media (max-width: 1024px) {
      .audio input[type=range]::-webkit-slider-thumb {
        height: 20px;
        width: 20px;
        margin-top: -9px; } }
  .audio input[type=range]::-moz-range-thumb {
    -webkit-appearance: none;
    height: 30px;
    width: 30px;
    border-radius: 100%;
    background: #C489FF;
    cursor: pointer;
    border: none;
    margin-top: -14px;
    /* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */ }
    @media (max-width: 1024px) {
      .audio input[type=range]::-moz-range-thumb {
        height: 20px;
        width: 20px;
        margin-top: -9px; } }
  .audio input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: 2px;
    cursor: pointer;
    background: #000000; }
  .audio input[type=range]::-moz-range-track {
    width: 100%;
    height: 2px;
    cursor: pointer;
    background: #000000; }

.audio--playing svg:first-of-type {
  display: none; }

.audio--playing svg:last-of-type {
  display: block; }

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 55;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s; }
  body.overlay-open .overlay {
    opacity: 1;
    pointer-events: auto; }
  .overlay button {
    position: absolute;
    top: 20px;
    right: 20px;
    padding: 0;
    margin: 0;
    background: none;
    border-radius: none; }
    .overlay button svg {
      display: block;
      color: #EBEBEB; }
      .overlay button svg:hover {
        color: #C489FF; }
  .overlay__container {
    height: 100%; }
  .overlay__video {
    height: 100%;
    -webkit-transform: translateY(80px);
            transform: translateY(80px);
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    transition: opacity 0.4s 0.6s, -webkit-transform 0.4s 0.6s;
    transition: transform 0.4s 0.6s, opacity 0.4s 0.6s;
    transition: transform 0.4s 0.6s, opacity 0.4s 0.6s, -webkit-transform 0.4s 0.6s; }
    body.overlay-open .overlay__video {
      -webkit-transform: none;
              transform: none;
      opacity: 1; }
  .overlay__image {
    height: 100%;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    -webkit-transform: translateY(80px);
            transform: translateY(80px);
    opacity: 0;
    padding: 4rem;
    box-sizing: border-box;
    transition: opacity 0.4s, -webkit-transform 0.4s;
    transition: transform 0.4s, opacity 0.4s;
    transition: transform 0.4s, opacity 0.4s, -webkit-transform 0.4s; }
    body.overlay-open .overlay__image {
      -webkit-transform: none;
              transform: none;
      opacity: 1; }
    .overlay__image img {
      height: 100%;
      width: 100%;
      -o-object-fit: contain;
         object-fit: contain; }

.ack {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 55;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s; }
  body.ack-open .ack {
    opacity: 1;
    pointer-events: auto; }
  .ack button {
    position: absolute;
    top: 20px;
    right: 20px;
    border-radius: none; }
  .ack__text {
    margin-top: 30px;
    grid-column: span 8; }
    @media (max-width: 1024px) {
      .ack__text {
        margin-top: 60px;
        grid-column: span 10; } }
    .ack__text p {
      font-size: 36px;
      line-height: 1.3; }
      @media (max-width: 1024px) {
        .ack__text p {
          font-size: 20px; } }

.tour-preview {
  background: #000000;
  overflow: hidden;
  padding: 5rem 0;
  display: block;
  min-height: 25vw;
  position: relative; }
  @media (max-width: 768px) {
    .tour-preview {
      min-height: 35vw; } }
  .tour-thumb--small .tour-preview {
    min-height: 18vw; }
    @media (max-width: 768px) {
      .tour-thumb--small .tour-preview {
        min-height: 35vw; } }
  .tour-preview__strip {
    width: 200%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%); }
    .tour-thumb--small .tour-preview__strip {
      width: 250%; }
    @media (max-width: 768px) {
      .tour-preview__strip {
        width: 300%; } }
    .tour-preview__strip > div {
      width: 15%;
      margin-right: 1.5%; }
  .tour-preview .ratio-box {
    background: none; }
  .tour-preview img {
    -o-object-fit: contain;
       object-fit: contain; }

.tour-thumb__text {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-column-gap: 40px; }
  .tour-thumb--small .tour-thumb__text {
    grid-template-columns: 1fr; }
  @media (max-width: 768px) {
    .tour-thumb__text {
      grid-template-columns: 1fr;
      grid-row-gap: 1rem; }
      .tour-thumb--small .tour-thumb__text {
        grid-row-gap: 0; } }
  .tour-thumb__text > div {
    margin-top: 0.5rem; }
    @media (max-width: 768px) {
      .tour-thumb__text > div {
        margin-top: 0;
        max-width: 500px; } }

.warning {
  background: #C489FF;
  padding: 14px 20px 20px;
  position: fixed;
  bottom: 40px;
  right: 40px;
  max-width: 400px;
  border-radius: 20px;
  padding-right: 100px;
  -webkit-transform: translateY(calc(100% + 40px));
          transform: translateY(calc(100% + 40px));
  transition: -webkit-transform 0.4s;
  transition: transform 0.4s;
  transition: transform 0.4s, -webkit-transform 0.4s;
  z-index: 26;
  min-height: 59px; }
  .warning--visible {
    -webkit-transform: translateY(0px);
            transform: translateY(0px); }
  @media (max-width: 1024px) {
    .warning {
      padding: 12px 100px 15px 15px;
      left: 15px;
      right: 15px;
      bottom: 15px;
      -webkit-transform: translateY(calc(100% + 15px));
              transform: translateY(calc(100% + 15px));
      min-height: 30px; }
      .warning--visible {
        -webkit-transform: translateY(0px);
                transform: translateY(0px); } }
  .warning button {
    position: absolute;
    top: 20px;
    right: 20px;
    padding: 0;
    margin: 0;
    background: none;
    border-radius: 0px; }
    @media (max-width: 1024px) {
      .warning button {
        top: 15px;
        right: 15px; } }
    .warning button svg {
      display: block;
      color: #EBEBEB; }
      .warning button svg:hover {
        color: #FFFFFF; }

.warning__close, .overlay-close {
  border-radius: 0px; }

.home-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(8, 1fr);
  grid-column-gap: 20px;
  grid-row-gap: 20px;
  height: 50vw;
  width: 100vw;
  padding: 30px;
  box-sizing: border-box; }
  @media (max-width: 1024px) {
    .home-grid {
      grid-template-rows: repeat(7, 1fr);
      pointer-events: none;
      grid-column-gap: 10px;
      grid-row-gap: 10px;
      height: 120vw; } }

.intro {
  padding-top: 0;
  min-height: calc(100vh - 75px);
  display: flex;
  flex-direction: column;
  justify-content: center; }

.area {
  box-sizing: border-box;
  position: relative;
  overflow: hidden; }
  .area--settling {
    pointer-events: none; }
  .area--1 {
    grid-area: 1 / 5 / span 3 / span 3; }
    .area--1 img {
      -o-object-position: bottom right;
         object-position: bottom right; }
    @media (max-width: 1024px) {
      .area--1 {
        grid-area: 1 / 1 / span 2 / span 8; } }
  .area--2 {
    grid-area: 1 / 8 / span 3 / span 2; }
    .area--2 img {
      -o-object-position: bottom left;
         object-position: bottom left; }
    @media (max-width: 1024px) {
      .area--2 {
        grid-area: 1 / 9 / span 3 / span 4; } }
  .area--3 {
    grid-area: 1 / 10 / span 5 / span 3; }
    .area--3 img {
      -o-object-position: bottom left;
         object-position: bottom left; }
    @media (max-width: 1024px) {
      .area--3 {
        grid-area: 4 / 1 / span 2 / span 3; } }
  .area--4 {
    grid-area: 4 / 3 / span 2 / span 2; }
    .area--4 img {
      -o-object-position: bottom right;
         object-position: bottom right; }
    @media (max-width: 1024px) {
      .area--4 {
        display: none; } }
  .area--5 {
    grid-area: 6 / 1 / span 3 / span 4; }
    .area--5 img {
      -o-object-position: top right;
         object-position: top right; }
    @media (max-width: 1024px) {
      .area--5 {
        display: none; } }
  .area--6 {
    grid-area: 6 / 5 / span 3 / span 3; }
    .area--6 img {
      -o-object-position: top left;
         object-position: top left; }
    @media (max-width: 1024px) {
      .area--6 {
        grid-area: 6 / 5 / span 2 / span 5; } }

.image-square {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  transition: -webkit-transform 0.55s;
  transition: transform 0.55s;
  transition: transform 0.55s, -webkit-transform 0.55s; }
  .image-square--moving {
    transition: 0s; }
  .area--swapping .image-square {
    transition: 0s; }
  .image-square img {
    height: 100%;
    width: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    pointer-events: none; }
  .image-square div {
    height: 100%;
    width: 100%; }
  .image-square img:nth-child(2) {
    position: absolute;
    left: 0;
    bottom: calc(-100% - 20px); }
  .image-square img:nth-child(3) {
    position: absolute;
    right: calc(-100% - 20px);
    bottom: 0; }
  .image-square img:nth-child(4) {
    position: absolute;
    left: calc(-100% - 20px);
    bottom: 0; }
  .image-square img:nth-child(5) {
    position: absolute;
    top: calc(-100% - 20px);
    left: 0; }

@media (max-width: 1024px) {
  .text {
    overflow: hidden; } }

.text svg {
  display: block;
  height: 100%; }

.text--1 {
  grid-area: 2 / 1 / span 2 / span 4; }
  @media (max-width: 1024px) {
    .text--1 {
      grid-area: 3 / 1 / span 1 / span 12; } }

.text--2 {
  grid-area: 4 / 5 / span 2 / span 4; }
  @media (max-width: 1024px) {
    .text--2 {
      grid-area: 4 / 1 / span 1 / span 12; }
      .text--2 svg {
        display: block;
        margin-left: auto;
        margin-right: auto; } }

.text--3 {
  grid-area: 6 / 8 / span 2 / span 5; }
  @media (max-width: 1024px) {
    .text--3 {
      grid-area: 5 / 1 / span 1 / span 12; } }
  .text--3 svg {
    display: block;
    margin-left: auto; }

.preload {
  position: fixed;
  opacity: 0;
  left: -99999px; }

.video-section .video {
  grid-column: span 6;
  align-self: start;
  position: -webkit-sticky;
  position: sticky;
  top: 40px;
  transition: top 0.3s; }
  body.header-visible .video-section .video {
    top: 115px; }
  @media (max-width: 768px) {
    .video-section .video {
      grid-column: span 12;
      position: static;
      margin-bottom: 3rem; } }

.video-section__text {
  grid-column: 8 / 13; }
  @media (max-width: 768px) {
    .video-section__text {
      grid-column: span 12; } }
  .video-section__text h2 {
    margin: -0.3em 0 3rem;
    max-width: 600px; }
    @media (max-width: 768px) {
      .video-section__text h2 {
        max-width: 420px;
        margin-top: 0; } }

.home-tours .h1, .home-tours .mobile-menu nav a, .mobile-menu nav .home-tours a {
  grid-column: span 12;
  margin-bottom: 3rem; }

.home-tours__thumb {
  grid-column: span 12;
  margin-bottom: 12rem; }

.home-program-detail > div {
  display: none; }
  .home-program-detail > div:first-of-type {
    display: block; }

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 75px;
  display: flex;
  align-items: center;
  transition: background-color 0.3s, -webkit-transform 0.3s, -webkit-filter 0.6s;
  transition: transform 0.3s, filter 0.6s, background-color 0.3s;
  transition: transform 0.3s, filter 0.6s, background-color 0.3s, -webkit-transform 0.3s, -webkit-filter 0.6s;
  background-color: #FFFFFF;
  z-index: 30; }
  .header.headroom--unpinned {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  @media (max-width: 1024px) {
    .header {
      height: 60px; } }

@-webkit-keyframes wobble {
  0% {
    -webkit-transform: rotate(5deg);
            transform: rotate(5deg); }
  50% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg); }
  100% {
    -webkit-transform: rotate(5deg);
            transform: rotate(5deg); } }

@keyframes wobble {
  0% {
    -webkit-transform: rotate(5deg);
            transform: rotate(5deg); }
  50% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg); }
  100% {
    -webkit-transform: rotate(5deg);
            transform: rotate(5deg); } }

.menu {
  display: flex;
  width: 100%;
  justify-content: space-between;
  padding: 0 40px;
  -webkit-transform: translateY(-3px);
          transform: translateY(-3px);
  font-weight: 500; }
  @media (max-width: 1300px) {
    .menu {
      font-size: 18px; } }
  @media (max-width: 1150px) {
    .menu {
      font-size: 16px; } }
  @media (max-width: 1024px) {
    .menu {
      display: none; } }
  .menu a {
    text-decoration: none;
    display: block;
    transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
    transition: transform 0.2s, -webkit-transform 0.2s; }
    .menu a span {
      display: inline-block;
      transition: -webkit-transform 0.3s;
      transition: transform 0.3s;
      transition: transform 0.3s, -webkit-transform 0.3s; }
    .menu a:hover span {
      -webkit-transform: translateY(-0.3em);
              transform: translateY(-0.3em); }
    .menu a.active {
      -webkit-transform: translateY(0.7em);
              transform: translateY(0.7em); }
      .menu a.active span {
        -webkit-transform: none;
                transform: none;
        -webkit-animation: none;
                animation: none; }

.mobile-header {
  padding: 0 20px;
  box-sizing: border-box;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  font-size: 16px;
  font-weight: 500;
  display: none; }
  @media (max-width: 1024px) {
    .mobile-header {
      display: flex; } }
  .mobile-header h1 {
    font-size: 16px;
    font-weight: 500; }
  .mobile-header button {
    display: block;
    text-transform: uppercase;
    background: none;
    -webkit-transform: translateX(0.7em);
            transform: translateX(0.7em); }
    .mobile-header button:active {
      color: #C489FF; }
  .mobile-header a {
    text-decoration: none; }

.mobile-menu {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 28;
  background: #FFFFFF;
  padding: 20px;
  display: none;
  padding-top: calc(60px + 10vh);
  opacity: 0;
  pointer-events: none;
  -webkit-transform: translateY(-40px);
          transform: translateY(-40px);
  transition: opacity 0.2s, -webkit-transform 0.35s 0.2s;
  transition: transform 0.35s 0.2s, opacity 0.2s;
  transition: transform 0.35s 0.2s, opacity 0.2s, -webkit-transform 0.35s 0.2s; }
  body.menu-open .mobile-menu {
    transition: opacity 0.2s, -webkit-transform 0.35s;
    transition: transform 0.35s, opacity 0.2s;
    transition: transform 0.35s, opacity 0.2s, -webkit-transform 0.35s;
    pointer-events: auto;
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  @media (max-width: 1024px) {
    .mobile-menu {
      display: block; } }
  .mobile-menu nav a {
    text-decoration: none;
    display: inline-block;
    background: #EBEBEB;
    border-radius: 15px;
    padding: 0.3em 0.5em 0.5em;
    margin: 0 0.3em 0.4em 0;
    transition: background-color 0s 0.5s; }
    .mobile-menu nav a.active {
      background: #C489FF; }

.awards {
  min-height: 100vh; }
  .awards h1 {
    grid-column: span 12;
    margin-bottom: 4rem; }
  .awards .thanks {
    grid-column: span 6;
    margin-bottom: 4rem; }
    @media (max-width: 768px) {
      .awards .thanks {
        grid-column: span 12; } }
  .awards__left {
    grid-column: 1 / 7;
    padding-bottom: 6rem; }
    .awards__left .award {
      margin-bottom: 2rem; }
    @media (max-width: 768px) {
      .awards__left {
        grid-column: span 12;
        padding-bottom: 0rem; } }
  .awards__right {
    grid-column: span 6;
    padding-bottom: 6rem; }
    .awards__right .award {
      margin-bottom: 2rem; }
    @media (max-width: 768px) {
      .awards__right {
        grid-column: span 12;
        padding-bottom: 0rem; } }

.grad-header h1, .grad-header h3 {
  grid-column: span 12; }

.grad-header h1 {
  margin-bottom: 1.5rem; }

.grad {
  margin-bottom: 16rem; }
  @media (max-width: 768px) {
    .grad {
      padding-top: 3rem; } }
  .grad__text {
    grid-column: span 6;
    max-width: 555px;
    position: -webkit-sticky;
    position: sticky;
    top: 40px;
    align-self: start;
    transition: top 0.3s; }
    body.header-visible .grad__text {
      top: 115px; }
    @media (max-width: 1024px) {
      .grad__text {
        top: 20px; }
        body.header-visible .grad__text {
          top: 80px; } }
    @media (max-width: 768px) {
      .grad__text {
        position: static;
        grid-column: span 12; } }
    .grad__text h1 {
      margin-bottom: 1.5rem; }
    .grad__text > h3:first-of-type {
      margin-bottom: 6rem; }
    .grad__text .tw {
      padding-bottom: 1rem; }
  .grad__links {
    margin-top: 3rem; }
    @media (max-width: 768px) {
      .grad__links {
        grid-column: span 12;
        margin-bottom: 6rem; } }
    .grad__links h3 {
      margin-top: 1rem; }
  .grad__media {
    grid-column: span 6; }
    @media (max-width: 768px) {
      .grad__media {
        grid-column: span 12; } }
    .grad__media figure {
      margin-bottom: 5rem; }

@media (max-width: 768px) {
  .grad-back {
    padding-bottom: 5rem; } }

.grad-back__button {
  grid-column: span 12; }

.grads {
  padding-top: 5rem;
  position: relative; }
  @media (max-width: 1024px) {
    .grads {
      padding-top: 0; } }

.grads-buttons {
  position: absolute;
  top: 4rem;
  right: 40px;
  z-index: 21; }
  @media (max-width: 1024px) {
    .grads-buttons {
      top: 0.5rem;
      right: 20px; } }

#grid-button {
  background: #C489FF;
  margin-right: 1rem; }
  .grads--list #grid-button {
    background: #EBEBEB; }

.grads--list #list-button {
  background: #C489FF; }

.grads-program {
  padding-top: 0;
  padding-bottom: 5rem; }
  .grads-program__header {
    width: 100%;
    position: -webkit-sticky;
    position: sticky;
    top: -1px;
    grid-column: span 12;
    margin-bottom: 2rem;
    padding: 1rem 0 2rem;
    z-index: 20;
    background: #FFFFFF;
    top: -1px;
    align-self: start;
    transition: top 0.3s; }
    body.header-visible .grads-program__header {
      top: 74px; }
    @media (max-width: 1024px) {
      body.header-visible .grads-program__header {
        top: 59px; } }
    @media (max-width: 768px) {
      .grads-program__header h1 {
        font-size: 20px;
        line-height: 26px; } }
  .grads-program__grid {
    grid-column: span 12;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    -webkit-column-gap: 20px;
            column-gap: 20px; }
  .grads-program__thumb {
    grid-column: span 3;
    margin-bottom: 3rem;
    text-decoration: none; }
    @media (min-width: 1025px) {
      .grads-program__thumb:hover span {
        color: #C489FF; } }
    @media (max-width: 1024px) {
      .grads-program__thumb {
        grid-column: span 4; } }
    @media (max-width: 768px) {
      .grads-program__thumb {
        grid-column: span 6; } }
    .grads-program__thumb span {
      transition: color 0.3s;
      display: block;
      margin-top: 1rem; }

.grads--list .grads-program__grid {
  display: block;
  -webkit-column-count: 4;
          column-count: 4;
  -webkit-column-gap: 3rem;
          column-gap: 3rem;
  grid-column: span 12;
  -webkit-column-fill: auto;
          column-fill: auto;
  height: 100%;
  min-height: 20vw;
  max-height: 400px; }
  @media (max-width: 768px) {
    .grads--list .grads-program__grid {
      min-height: none;
      max-height: none;
      height: auto;
      -webkit-column-count: 2;
              column-count: 2;
      -webkit-column-fill: balance;
              column-fill: balance; } }

.grads--list .grads-program__image {
  display: none; }

.grads--list .grads-program__header {
  display: block;
  -webkit-column-span: all;
          column-span: all;
  position: static; }

.grads--list {
  margin-bottom: 0rem; }
  .grads--list span {
    margin-top: 0; }

.programs h1, .programs .h1, .programs .mobile-menu nav a, .mobile-menu nav .programs a, .home-programs h1, .home-programs .h1, .home-programs .mobile-menu nav a, .mobile-menu nav .home-programs a {
  margin-bottom: 6rem; }
  @media (max-width: 768px) {
    .programs h1, .programs .h1, .programs .mobile-menu nav a, .mobile-menu nav .programs a, .home-programs h1, .home-programs .h1, .home-programs .mobile-menu nav a, .mobile-menu nav .home-programs a {
      margin-bottom: 4rem; } }

.programs__nav, .home-programs__nav {
  display: block;
  grid-column: span 12; }
  .programs__nav .button, .programs__nav button, .home-programs__nav .button, .home-programs__nav button {
    display: inline-block;
    margin: 0 0.1em 0.5em 0; }
    .programs__nav .button.active, .programs__nav button.active, .home-programs__nav .button.active, .home-programs__nav button.active {
      background: #C489FF; }

@media (max-width: 768px) {
  .program {
    padding-top: 3rem; } }

.program .container {
  grid-template-rows: auto 1fr; }
  @media (max-width: 768px) {
    .program .container {
      grid-template-rows: auto; } }

.program__text {
  grid-column: span 5;
  margin-bottom: 4rem; }
  .program--home .program__text {
    grid-column: span 4; }
    @media (max-width: 768px) {
      .program--home .program__text {
        grid-column: span 12; } }
  @media (max-width: 768px) {
    .program__text {
      margin-bottom: 3rem;
      grid-column: span 12; } }
  .program__text > div {
    margin-bottom: 3rem; }

.program__image {
  grid-column: 8 / 13;
  grid-row: span 2;
  display: block; }
  .program--home .program__image {
    display: none; }
  @media (max-width: 768px) {
    .program__image {
      grid-column: span 12;
      margin-bottom: 5rem; } }
  .program__image figcaption {
    text-decoration: none; }

.program__grads {
  grid-column: span 3; }
  @media (max-width: 768px) {
    .program__grads {
      grid-column: span 6; } }
  .program--home .program__grads {
    grid-column: 6 / 8; }
    @media (max-width: 768px) {
      .program--home .program__grads {
        display: none; } }

.program__staff {
  grid-column: span 3; }
  @media (max-width: 768px) {
    .program__staff {
      grid-column: span 6; } }
  .program--home .program__staff {
    grid-column: 9 / 11; }
    @media (max-width: 768px) {
      .program--home .program__staff {
        display: none; } }

.program-slider {
  margin: 8rem 0;
  display: none; }
  @media (max-width: 768px) {
    .program-slider {
      display: block; } }

.home-program-detail {
  margin-bottom: 6rem; }

.program-slide {
  width: 300px;
  margin-right: 3rem;
  display: block;
  height: 400px;
  display: flex;
  align-items: center; }
  .program-slide figure {
    width: 100%; }
  .program-slide--portrait {
    width: 200px; }
  .program-slide--square {
    width: 250px; }

.search__result {
  grid-column: span 12;
  margin-bottom: 5rem; }
  .search__result a {
    text-decoration: none; }

.search__bar {
  border: none;
  padding: .3em 0;
  margin-bottom: 4rem;
  grid-column: span 5;
  position: relative; }
  @media (max-width: 768px) {
    .search__bar {
      grid-column: span 12; } }
  .search__bar input {
    padding: 1.5rem;
    width: 100%;
    background-color: #EBEBEB;
    border: 0;
    border-radius: 1rem;
    font-family: inherit;
    -webkit-appearance: none; }
  .search__bar button {
    position: absolute;
    top: 2.2rem;
    right: 1.6rem;
    background-color: white;
    border-radius: 5px;
    padding: 0.2em; }
    @media (max-width: 1024px) {
      .search__bar button {
        top: 1.6rem;
        right: 1.1rem;
        padding: 0.3em; } }
    @media (max-width: 768px) {
      .search__bar button {
        top: 1.7rem;
        right: 1.3rem;
        padding: 0.3em; } }
  .search__bar button:hover {
    background-color: #C489FF; }
  .search__bar svg {
    width: 28px;
    height: 28px; }
    @media (max-width: 1024px) {
      .search__bar svg {
        width: 24px;
        height: 24px; } }
    @media (max-width: 768px) {
      .search__bar svg {
        width: 24px;
        height: 24px; } }

.staff {
  min-height: 100vh; }
  .staff h1 {
    grid-column: span 12;
    margin-bottom: 4rem; }
  .staff h3:nth-child(n+2) {
    padding-top: 2rem; }
  .staff p {
    text-indent: 0em; }
  .staff__text {
    grid-column: span 6;
    -webkit-column-count: 2;
            column-count: 2;
    -webkit-column-gap: 20px;
            column-gap: 20px;
    padding-bottom: 3rem; }
    @media (max-width: 768px) {
      .staff__text {
        -webkit-column-count: 1;
                column-count: 1; } }

.credits h1 {
  grid-column: span 12;
  margin-bottom: 4rem; }

.credits__text {
  grid-column: span 6;
  padding-bottom: 6rem; }
  .credits__text h3:nth-child(n+2) {
    padding-top: 2rem; }
  .credits__text p {
    text-indent: 0em; }
  @media (max-width: 768px) {
    .credits__text {
      padding-bottom: 3rem;
      grid-column: span 12; } }

body.template-tour {
  background: #000000;
  color: #FFFFFF; }
  body.template-tour .mobile-menu {
    color: #000000;
    background: #000000; }
  body.template-tour header {
    background: #000000;
    color: #FFFFFF; }
    body.template-tour header button {
      background: #000000;
      color: #FFFFFF; }
  body.template-tour .audio {
    color: #000000; }

.tour-header {
  margin-bottom: 10rem; }
  .tour-header__title {
    grid-column: span 12;
    max-width: 800px;
    margin-bottom: 6rem; }
  .tour-header__text {
    grid-column: span 5; }
    @media (max-width: 1230px) {
      .tour-header__text {
        grid-column: span 6; } }
    @media (max-width: 768px) {
      .tour-header__text {
        max-width: 550px;
        grid-column: span 12;
        margin-bottom: 6rem; } }
  .tour-header__artists {
    grid-column: 7 / 10; }
    @media (max-width: 1230px) {
      .tour-header__artists {
        grid-column: 8 / 11; } }
    @media (max-width: 768px) {
      .tour-header__artists {
        grid-column: 7 / 13; } }

.tour-row {
  margin-bottom: 15rem;
  padding-top: 0; }
  @media (max-width: 768px) {
    .tour-row {
      margin-bottom: 0; } }
  .tour-row .tour-block {
    grid-column: 3 / 10; }
    @media (max-width: 768px) {
      .tour-row .tour-block {
        grid-column: span 12;
        margin-bottom: 10rem; } }
  .tour-row--double .tour-block {
    grid-column: span 5; }
    @media (max-width: 768px) {
      .tour-row--double .tour-block {
        grid-column: span 9; } }
    .tour-row--double .tour-block:last-child {
      grid-column: 10 / 13; }
      @media (max-width: 768px) {
        .tour-row--double .tour-block:last-child {
          grid-column: 3 / 13; } }
  .tour-row--skew .tour-block:first-child {
    margin-top: 12rem; }
    @media (max-width: 768px) {
      .tour-row--skew .tour-block:first-child {
        margin-top: 0; } }
  .tour-row--flip .tour-block:first-child {
    order: 2;
    grid-column: 8 / 13; }
    @media (max-width: 768px) {
      .tour-row--flip .tour-block:first-child {
        grid-column: 3 / 13; } }
  .tour-row--flip .tour-block:last-child {
    order: 1;
    grid-column: span 3; }
    @media (max-width: 768px) {
      .tour-row--flip .tour-block:last-child {
        grid-column: span 10; } }

.tour-bio__text {
  grid-column: span 6; }
  @media (max-width: 768px) {
    .tour-bio__text {
      grid-column: span 12;
      max-width: 550px; } }
  .tour-bio__text a.button {
    margin-top: 8rem;
    display: inline-block;
    color: #000000; }
    @media (max-width: 768px) {
      .tour-bio__text a.button {
        margin-top: 4rem; } }

.tours h1 {
  grid-column: span 12;
  margin-bottom: 3rem; }

.tours__thumb {
  grid-column: span 6;
  margin-bottom: 12rem; }
  @media (max-width: 768px) {
    .tours__thumb {
      grid-column: span 12; } }
  .tours__thumb .h2 {
    margin-bottom: 2rem; }

footer {
  padding-bottom: 2rem; }
  footer a {
    text-decoration: none; }

.logo {
  width: 100px; }
  @media (max-width: 1024px) {
    .logo {
      width: 65px; } }
  @media (max-width: 768px) {
    .logo {
      grid-row: span 2; } }

.logo svg {
  margin-top: 0.8rem;
  width: 100%; }
  @media (max-width: 768px) {
    .logo svg {
      margin-top: 0.6rem; } }

.footer {
  font-size: 20px;
  line-height: 27px; }
  @media (max-width: 1024px) {
    .footer {
      font-size: 11px;
      line-height: 15px; } }
  .footer p {
    font-size: inherit;
    line-height: inherit; }
  .footer .container {
    grid-template-rows: auto, 1fr; }
  .footer__buttons {
    display: none; }
    @media (max-width: 768px) {
      .footer__buttons {
        display: block;
        font-size: 13px;
        padding-bottom: 2rem;
        grid-column: span 12; } }
  .footer__one {
    grid-column: span 4;
    max-width: 340px; }
    @media (max-width: 1024px) {
      .footer__one {
        max-width: 220px; } }
    @media (max-width: 768px) {
      .footer__one {
        grid-column: 2 / 12;
        margin-bottom: 1rem; } }
  .footer__two {
    grid-column: span 2; }
    @media (max-width: 768px) {
      .footer__two {
        display: none; } }
  .footer__three {
    grid-column: span 3; }
    @media (max-width: 768px) {
      .footer__three {
        grid-column: 2 / 12; } }
  .footer__circos {
    grid-column: span 12;
    margin: 30px 0 20px; }
